UN ASSISTENTE DIGITALE
Una storia che si ripete: arrivo in ufficio, apro l'app del pronto intervento, scarico l'export Excel, lo metto in una cartella, unisco i dati con quelli dei giorni precedenti, copia e incolla e....non lo faccio in realtà, mi piacerebbe, ma ci vuole troppo tempo.
Il problema
Coordino un'azienda che gestisce acquedotti anche in zone collinari e dissestate con km di tubi vecchi e pressioni variabili. Il pronto intervento è una delle attività più importanti. Quando un tubo perde, manca l'acqua, c'è poca pressione, o un tubicino gocciola, gli utenti chiamano il call center (esterno). L'operatore apre un ticket su un'app gestionale — fatta bene, per carità — che manda ai colleghi reperibili o in turno un una notifica via sms ed email per ogni segnalazione.
L'app funziona. Ma se voglio fare analisi? Se voglio sapere quanti guasti ci sono stati a Stradella questa settimana? O confrontare i dati con il mese scorso?
Devo:
- Entrare nell'app
- Esportare un file Excel
- Scaricarlo
- Metterlo in una cartella
- Unirlo ai precedenti
- Aprire tutto e cercare quello che mi serve
Con 3.000 segnalazioni all'anno, questo diventa una perdita di tempo maggiore dell'utilità. E condividere i dati con i colleghi? Auguri.
L'idea: "Ma io ricevo già le email..."
Un giorno, guardando la casella piena di notifiche, mi sono chiesto: perché devo riscaricare tutto dall'app se ho già le informazioni nelle email?
Le email del gestionale sono strutturate, sempre con gli stessi campi: numero ticket, comune, indirizzo, tipo di guasto, urgenza. Certo, non sono perfette — a volte la formattazione cambia, la descrizione è scritta in modi diversi a seconda dell'interpretazione dell'operatore — ma le informazioni ci sono.
🖼️ Esempio email di ticket in ingresso (clicca per aprire)
E così, seguendo un corso aziendale sull'intelligenza artificiale, il docente ha parlato di una cosa che si chiama n8n. Nella pausa sono andato a vedere cosa fosse e ho capito subito: "Ho trovato quello che mi serve". Sembrava facile, a portata di tutti, concettualmente comprensibile. Spinto dalla curiosità, con in mente le emails del pronto intervento, volevo fare qualche esperimento.
Ho deciso di provare. Qualche video su YouTube (per imparare veloce è fantastico), fare l'installazione, un tutorial, l'aiuto dei vari "ChatGPT"... e via.
Cosa succede oggi (senza che io faccia nulla)
Ogni mattina alle 8:00, un "assistente digitale" fa questo lavoro per me:
☑ Apre Gmail e legge le email delle ultime 24 ore
☑ Riconosce quali sono ticket veri (e ignora il resto)
☑ Estrae i dati: comune, indirizzo, tipo di guasto, urgenza
☑ Raggruppa le segnalazioni simili (Via Roma 46 + Via Roma 48 = stesso problema)
☑ Salva tutto in un database condiviso con i colleghi
☑ Mi manda un riepilogo chiaro, già pronto
🖼️ Esempio email report automatico giornaliero (clicca per aprire)
Ogni lunedì e venerdì, un secondo "assistente" genera un report settimanale con:
☑ Statistiche per comune (chi ha più guasti?)
☑ Statistiche per tipo di problema (perdite? mancanza acqua?)
☑ Grafici a barre pronti da allegare
☑ Un commento discorsivo scritto dall'AI
Il tutto arriva nella mia casella email e in quella dei colleghi. Apro, leggo, so già tutto.
🖼️ Esempio report automatico settimanale (clicca per aprire)



I vantaggi
Database sempre aggiornato — Tutti i ticket in un posto solo, consultabile in tempo reale. Basta cartelle Excel sparse.
Condivisione immediata — I colleghi accedono allo stesso database. Niente più "mi mandi il file aggiornato?".
Analisi veloci — Quanti guasti a Broni questo mese? Un filtro e ho la risposta.
Storico completo — Anni di dati, tutti interrogabili.
"Ma io non sono un programmatore..."
E qui sta la magia di strumenti come n8n.
Come funziona? Immagina di avere una rete di nodi intelligenti, ognuno con una funzione specifica. Li posizioni nello spazio, li colleghi con dei fili, e loro fanno il lavoro. Non scrivi codice: trascini i nodi su uno schermo e crei il percorso tra loro.
Ecco come ragiona il mio "assistente digitale", passo dopo passo:
- Il trigger (la sveglia) — Alle 8:00 di mattina, scatta. Come un timer che dice: "Ehi, è ora di lavorare!"
- Il blocco Gmail — Si collega alla mia casella email e pesca tutte le email arrivate nelle ultime 24 ore. Gli ho detto: "Prendi solo quelle che arrivano dal call center".
- Il blocco "analizza testo" — Ogni email viene letta. Il sistema cerca parole chiave: "Ticket", "Comune", "Indirizzo", "Urgenza". Se le trova, estrae i dati. Se non le trova, scarta l'email (era una newsletter, non un ticket).
- Il filtro — È un ticket vero o spazzatura? Se manca il numero ticket, via. Se c'è, avanti.
- Il database — I dati puliti vengono salvati in una tabella. Prima però controlla: "Questo ticket l'ho già visto?" Se sì, non lo salva due volte.
- L'intelligenza artificiale — Tutti i ticket del giorno vengono passati a un'AI che li riassume in linguaggio umano: "Oggi 8 segnalazioni, 3 a Stradella per mancanza acqua, 2 a Broni..."
- L'email finale — Il riepilogo parte e arriva nella mia casella. Pronto da leggere col caffè caldo.
Ci sono voluti tentativi, errori, un po' di pazienza all'inizio per capire il meccanismo. Ma una volta che funziona... funziona per sempre.
Il segreto non è essere esperti. È notare dove perdi tempo e chiederti: "Devo proprio farlo io, ogni volta?"
Nel video di sotto l'agente al lavoro, lui perde il tempo per te. I componenti sono i nodi.
📎 Appendice tecnica
Per i curiosi che vogliono sapere cosa c'è sotto il cofano.
Stack tecnologico
- n8n (self-hosted) — macchina generatrice di automazioni open source
- Gmail API — nodo di lettura email in arrivo
- Baserow (self-hosted) — database no-code per archiviare i ticket
- Google Gemini Flash — AI per generare i commenti discorsivi
- QuickChart — generazione grafici a barre
Flusso 1: Gestione giornaliera
[Trigger ore 8:00]
↓
[Gmail: leggi email ultime 24h]
↓
[JavaScript: parsing con regex]
→ Estrae: ID, data, comune, indirizzo, caso, descrizione
→ Gestisce formati variabili e pulizia testo
↓
[Filtro: è un ticket valido?]
↓
┌───┴────┐
↓ ↓
[Baserow] [Aggrega per AI]
↓ ↓
[Check [LLM: genera
duplicati] riepilogo HTML]
↓ ↓
[Salva] [Email report giornaliero]
Flusso 2: Report settimanale
[Trigger: lunedì e venerdì ore 8:00]
↓
[Baserow: leggi ticket ultimi 7 giorni]
↓
[JavaScript: calcola statistiche]
→ Ticket per comune
→ Ticket per tipo problema
→ Ticket per giorno
→ Tabelle pivot HTML
↓
┌───┴────┬────────┐
↓ ↓ ↓
[Grafico [Grafico [Grafico
comuni] tipi] giorni]
↓
[Merge grafici → immagini base64]
↓
[LLM: genera commento discorsivo]
↓
[Componi HTML finale + allega Excel]
↓
[Email report settimanale ai colleghi]
Prompt AI (sintesi)
L'AI riceve istruzioni per scrivere esattamente 5 frasi nei reports:
- Saluto fisso
- Periodo e totale ticket
- Giorni con più segnalazioni (con giorno settimana)
- Comuni più critici
- Tipi di problema più frequenti
Regole rigide: solo fatti numerici, niente suggerimenti o valutazioni.
Ho buttato il flusso dentro Flow e gli ho detto di adattarlo ad una acquedotto futuristico
Costi operativi
| Componente | Costo |
|---|---|
| n8n | €0 (self-hosted) |
| Baserow | €0 (self-hosted) |
| Gemini Flash | ~€0 (tier gratuito) |
| VPS | Già presente |
Costo marginale: praticamente zero (8 ore di configurazioni piu' saltuari affinamenti)

📋 Flusso 1: Descrizione tecnica dei nodi (clicca per espandere)
| # | Nodo | Cosa fa |
|---|---|---|
| 1 | Schedule Trigger | Si attiva ogni giorno alle 8:00 |
| 2 | Gmail - Get Messages | Recupera le email delle ultime 24 ore |
| 3 | Code - Parser | Estrae ID, Comune, Indirizzo, Caso, Descrizione |
| 4 | IF - Ticket Valido? | Scarta email non pertinenti |
| 5 | Loop Over Items | Elabora i ticket uno alla volta |
| 6 | Baserow - Check | Verifica se il ticket esiste già |
| 7 | IF - È nuovo? | Salta i duplicati |
| 8 | Baserow - Salva | Inserisce il ticket nel database |
| 9 | Code - Aggrega | Unisce i ticket in un testo per l'AI |
| 10 | LLM + Gemini | Genera il riepilogo discorsivo |
| 11 | Gmail - Send | Invia il report via email |

📋 Flusso 2: Descrizione tecnica dei nodi (clicca per espandere)
| # | Nodo | Cosa fa |
|---|---|---|
| 1 | Schedule Trigger | Si attiva ogni Lunedì e Venerdì alle 8:00 |
| 2 | Baserow - Get Rows | Recupera i ticket degli ultimi 7 giorni dal database |
| 3 | Code - Aggregatore | Uniforma i dati e prepara il testo per l'AI |
| 4 | Code - Statistiche | Calcola totali per Comune, Tipo Problema, Giorno |
| 5 | Code - Dati Grafico | Prepara i dati nel formato per generare i grafici |
| 6 | QuickChart - Comuni | Genera grafico a barre dei ticket per comune |
| 7 | QuickChart - Tipi | Genera grafico per tipo di problema |
| 8 | QuickChart - Giorni | Genera grafico dell'andamento giornaliero |
| 9 | Merge Grafici | Unisce i tre grafici in un pacchetto |
| 10 | Conversione Immagini | Converte i grafici in base64 per l'email |
| 11 | LLM + Gemini | Genera commento di 5 frasi sui dati |
| 12 | Merge Statistiche + AI | Combina tabelle e commento AI |
| 13 | Componi HTML Finale | Assembla il report completo con grafici |
| 14 | Edit Fields | Prepara i dati per l'export Excel |
| 15 | Convert to File | Genera il file Excel (.xlsx) allegato |
| 16 | Merge Finale | Unisce report HTML + allegato Excel |
| 17 | Gmail - Send | Invia il report settimanale ai colleghi |