Programma
n8n si è affermato come un framework potente e popolare nell’AI agentica. Ti permette di creare flussi di lavoro automatizzati senza bisogno di codice complesso.
In questo articolo ti spiegherò passo passo come sfruttare al meglio questa piattaforma robusta per automatizzare due processi distinti:
- Per prima cosa, ti guiderò nella configurazione di un agente AI per elaborare automaticamente le email da Gmail, risparmiando tempo prezioso e riducendo il lavoro manuale.
- Poi creeremo un agente intelligente in grado di chattare su qualsiasi documento, offrendo accesso immediato alle informazioni.
Teniamo i lettori aggiornati sulle ultime novità in AI con The Median, la nostra newsletter gratuita del venerdì che riassume le notizie chiave della settimana. Iscriviti e resta sul pezzo in pochi minuti a settimana:
Cos’è n8n?
n8n è uno strumento di automazione open source che ci aiuta a collegare varie app e servizi per creare workflow, un po’ come su una catena di montaggio digitale. Consente di progettare visivamente questi flussi con dei nodi, ognuno dei quali rappresenta un diverso passaggio del processo.
Con n8n possiamo automatizzare attività, gestire il flusso dei dati e persino integrare API, il tutto senza competenze di programmazione avanzate. Ecco un esempio di automazione che costruiremo in questo tutorial:

Senza entrare nei dettagli, ecco cosa fa questa automazione:
- Accede al nostro account Gmail per controllare i nuovi messaggi di posta.
- Le nuove email vengono inviate a ChatGPT per l’elaborazione tramite AI.
- L’AI identifica le informazioni rilevanti, che vengono poi salvate in un foglio di calcolo.
Come usare n8n?
Abbiamo due opzioni per usare n8n:
- Usare la loro interfaccia web qui. Richiede un account e un abbonamento a pagamento, ma offre una prova gratuita di 14 giorni che puoi usare per seguire questo tutorial.
- Essendo open source, possiamo anche eseguirlo in locale o ospitarlo in autonomia. È gratuito e dà accesso a quasi tutte le funzionalità (alcune sono esclusive dei piani cloud o enterprise a pagamento).
Entrambe le opzioni ti permettono di seguire questo tutorial senza costi. Noi lo eseguiremo in locale, ma se preferisci usare l’interfaccia web, i passaggi sono gli stessi.
Novità in n8n 2.0
Nota: n8n 2.0 è stato rilasciato a fine 2025 e ha introdotto un sistema di workflow Bozza/Pubblica, il salvataggio automatico (gennaio 2026), un pannello di focus aggiornato per modificare i nodi senza perdere il contesto della canvas e i Task Runner che isolano l’esecuzione dei workflow per una maggiore sicurezza.
I workflow qui sotto funzionano sulla versione 2.x — se sei sulla 1.x, valuta l’aggiornamento prima di procedere.
Configurazione locale di n8n
Il repository ufficiale di n8n spiega come impostare n8n in locale. Il modo più semplice è:
-
Scarica e installa Node.js dal sito ufficiale.
-
Apri un terminale ed esegui il comando
npx n8n.
Tutto qui! Dopo aver eseguito il comando, dovresti vedere questo nel terminale:

Per aprire l’interfaccia, premi "o" sulla tastiera oppure apri l’URL di localhost mostrato nel terminale — nel mio caso, http://localhost:5678.
Capire n8n
Prima di costruire la nostra prima automazione, è utile capire come funziona n8n. Un workflow n8n è composto da una sequenza di nodi. Inizia con un nodo trigger che specifica una condizione per l’esecuzione del workflow.

I nodi si collegano per spostare ed elaborare i dati. In questo esempio, il nodo trigger di Gmail si collega a un nodo OpenAI. Ciò significa che l’email viene passata a ChatGPT per l’elaborazione. Infine, l’output di ChatGPT viene inviato a un nodo Google Sheet, che si collega a un Foglio Google nel nostro Google Drive e scrive una nuova riga in un foglio di lavoro.
Questo workflow utilizza ChatGPT per identificare le fatture da pagare e assegna una riga nel foglio con l’ID della fattura e l’importo.

I workflow n8n possono essere molto più complessi. n8n supporta oltre 400 integrazioni ufficiali (nodi core), più 600+ nodi sviluppati dalla community e connessioni personalizzate tramite il nodo HTTP Request — quindi non possiamo coprirli tutti in un tutorial.
Mi concentrerò invece sul darti un’idea generale di come funziona e il background necessario per esplorarlo in autonomia. Se c’è uno strumento che usi regolarmente, è probabile che n8n lo supporti o che tu possa integrarlo manualmente.
Esempio 1: automatizzare l’elaborazione delle fatture dalle email
In questa sezione impariamo a costruire il workflow mostrato sopra.
È un caso d’uso reale che utilizzo per gestire le fatture di affitto. Ho una casa con alcune stanze che affitto. Le bollette sono divise equamente tra tutti gli inquilini. Ogni volta che ricevo una fattura, devo aggiungere il totale a un foglio di calcolo condiviso con gli inquilini.
Ho un indirizzo email specifico a cui vengono inoltrate le fatture relative alle utenze della casa. In questo modo so che tutte le email in quella casella corrispondono a una fattura. Invio il contenuto dell’email a ChatGPT per identificare l’ID della fattura e l’importo totale da pagare. Quindi queste informazioni vengono aggiunte a una nuova riga nel foglio condiviso.
Configurare il trigger email
Per avviare un nuovo workflow, dobbiamo cliccare il pulsante "Add first step...".

Essendo il primo nodo, deve essere un trigger, quindi ci viene mostrato un pannello per selezionarlo. Un nodo trigger definisce le condizioni per cui il workflow viene eseguito.

Esiste un’ampia gamma di nodi trigger. Selezioniamo un nodo trigger Gmail digitando "gmail" nella casella di ricerca e cliccando sul nodo Gmail.

Poi scegliamo l’unico trigger disponibile per Gmail: "On message received".

Si aprirà il pannello di configurazione del nodo, dove dobbiamo impostare le credenziali di Gmail per consentire al workflow n8n di accedere al nostro account. Per farlo, clicca su "New credential". Verrà aperta la seguente finestra:

A destra (1) c’è una guida che spiega i passaggi necessari per configurare le credenziali su Google Cloud. Le guide di n8n sono piuttosto complete, quindi non ripeteremo i passaggi qui. Assicurati anche di abilitare la Gmail API nella Google Cloud Console.
Una volta configurato, dobbiamo copiare il client ID (2) e il client secret (3) da Google Cloud nella configurazione delle credenziali di n8n.
Per assicurarci che tutto sia configurato correttamente, possiamo testare il nodo cliccando "Fetch Test Event".

Dopo il test, dovremmo vedere nella sezione output l’email più recente ricevuta in posta in arrivo. Il contenuto dell’email è nel campo snippet.

Il campo snippet contiene il testo dell’email. Dice che la mia fattura internet di aprile è disponibile. Fornisce l’ID della fattura e il totale da pagare. Queste sono le informazioni che vogliamo aggiungere al foglio di calcolo.
Per i test, ti consiglio di fissare l’output cliccando il pulsante con la puntina in alto a destra:

Questo bloccherà il risultato al trigger, il che significa che ogni volta che eseguiremo questo workflow verrà usato sempre lo stesso output. Così è più semplice testare, perché i risultati non saranno influenzati da eventuali nuove email. Lo sbloccheremo quando il workflow sarà configurato correttamente.
A questo punto, il nostro workflow dovrebbe avere un solo nodo trigger (lo riconosciamo dal piccolo fulmine a sinistra).

Nota che, non avendo probabilmente una fattura in arrivo nella tua casella, più avanti ChatGPT potrebbe restituire una risposta senza senso. Se vuoi testare esattamente questo workflow, puoi inviarti un’email di prova con il seguente contenuto (o qualcosa di simile):
Dear customer,
Your internet invoice number FT 2025**/****** for April is now available in the attachment.
Amount
€**.**
This invoice must be paid by 19/05/2025.
Dopo averla inviata, devi sbloccare il risultato, rieseguire il nodo Gmail e fissare il nuovo risultato.
Configurare il nodo ChatGPT
Il passo successivo è configurare il nodo OpenAI. Inizia cliccando il pulsante "+" a destra del nodo trigger Gmail:

Digita "OpenAI" e seleziona l’opzione corrispondente dall’elenco.

Poi, sotto "Text Actions", seleziona il nodo "Message a model". Questo nodo serve per inviare messaggi a un LLM.

Come prima, dobbiamo creare una credenziale per accedere a OpenAI. Nota che una volta creata, può essere riutilizzata in qualsiasi workflow: non serve impostarla ogni volta.
Per la credenziale OpenAI ci serve solo una chiave API. Se non ne hai una, puoi crearla qui. Se riscontri problemi, n8n fornisce anche una guida.
Per la configurazione, dobbiamo selezionare il modello AI da usare e il messaggio da inviare al modello.
Per il modello useremo GPT-4.1. OpenAI nel frattempo ha rilasciato la famiglia GPT-5 (5.4, 5.4-mini, 5.5) e ha rimosso la 4.1 da ChatGPT, ma è ancora disponibile via API ed è più che sufficiente per un’estrazione semplice come questa.

Nel campo del messaggio, dobbiamo fornire il prompt. In questo esempio, diamo al modello il contenuto dell’email e gli chiediamo di identificare l’ID della fattura e l’importo totale da pagare. Ecco il prompt che ho usato:

Il contenuto dell’email è fornito come {{ $json.snippet }}. In n8n, il prompt può contenere variabili popolate dall’output dei nodi precedenti, nel nostro caso l’email. L’elenco dei campi disponibili è visibile a sinistra. Possiamo digitare il campo manualmente o trascinarlo nel prompt.

Per testare, clicchiamo il pulsante "Test Step" in alto nel pannello di configurazione. Il risultato viene mostrato a destra:

Il risultato è una stringa con la risposta del modello. Vorremmo però avere i due campi separati, così da non dover elaborare ulteriormente il messaggio. Possiamo ottenere questo cambiando l’output dell’LLM in JSON:

Testando di nuovo questo passaggio, otteniamo i due campi come dati JSON:

Inviare i dati a un Google Sheet
L’ultimo passaggio di questo workflow è inviare l’ID fattura e il prezzo in una nuova riga di un Google Sheet. A questo punto dobbiamo collegare l’output del nodo OpenAI a Google Sheets. Lo facciamo come prima cliccando il pulsante "+" a sinistra del nodo:

Qui vogliamo digitare Google Sheets e selezionare il nodo "Append row in sheet":

Possiamo usare le stesse credenziali utilizzate per l’accesso a Gmail. Ma dobbiamo abilitare le seguenti API nella Google Cloud Console:
- Google Sheets API
- Google Drive API
Per configurare il nodo Google Sheets, dobbiamo selezionare il foglio e indicare i valori per popolare i campi. Il foglio va creato manualmente con due colonne: una per l’ID della fattura e un’altra per il totale.

Questi valori sono presi dall’output del nodo OpenAI. Possiamo trascinarli direttamente nelle colonne.

Eseguire il workflow
Fatto! Ora abbiamo un workflow che inserirà automaticamente le nostre fatture in un Google Sheet. Possiamo testarlo cliccando "Test workflow" in basso:

Dopo l’esecuzione, se andiamo nel nostro Google Sheet, vedremo una nuova riga con i dati:

Per impostazione predefinita, un workflow viene eseguito ogni minuto. A seconda del workflow, dovremmo impostare una frequenza adeguata. In questo caso specifico, una volta al minuto è troppo. Una volta al giorno è più appropriato.
Possiamo configurarlo facendo doppio clic sul nodo trigger e impostando un valore diverso nel campo "Poll Times":

Esempio 2: creare un agente RAG
In questa sezione costruiamo un workflow RAG più complesso. RAG sta per retrieval-augmented generation, una tecnica che combina il recupero di informazioni rilevanti da un database o documento e l’uso di un modello linguistico per generare risposte basate sui dati recuperati.
È molto utile quando abbiamo una base di conoscenza specifica, come un documento lungo, e vogliamo costruire un agente AI in grado di rispondere a domande su di essa.
Mi piace giocare ai giochi da tavolo, ma spesso con i miei amici discutiamo sulle regole e finiamo per cercarle invece di giocare, il che può essere frustrante. Creare un agente RAG basato sulle regole del gioco è una buona soluzione, perché la prossima volta che avremo una domanda potremo semplicemente chiederla all’agente.
Per costruire questo agente, creeremo due workflow:
- Un workflow che eseguiremo una sola volta per caricare i dati in un database Pinecone.
- Un altro che alimenta l’agente RAG e usa il database Pinecone per rispondere alle nostre domande.
Caricare i dati in Pinecone
Pinecone è un tipo di database che gestisce dati sotto forma di vettori. Un database vettoriale come Pinecone è ottimo per il nostro agente RAG perché aiuta l’agente a cercare e comprendere rapidamente le informazioni rilevanti, rendendolo più efficiente nel fornire risposte accurate.
Poiché dobbiamo eseguire questo workflow una sola volta, possiamo usare un nodo trigger manuale. È un nodo trigger usato per avviare manualmente un workflow.

Collega il nodo trigger manuale a un nodo “Google Drive” per scaricare i dati da Google Drive.

Usa la seguente configurazione:

Ho usato il file pubblico mtgrules.txt con le regole del gioco di carte collezionabili Magic: The Gathering. Puoi usare qualsiasi file su cui desideri porre domande; il workflow è lo stesso.
Per configurare Pinecone, accedi a Pinecone, copia la chiave API e crea un indice cliccando il pulsante "Create index". Ho chiamato il mio indice rules e selezionato il modello text-embedding-3-small.

Tornando a n8n, collega l’output del nodo Google Drive a un nodo Pinecone Vector Store con l’azione "Add documents to vector store":
Per configurare il nodo, dobbiamo creare una credenziale incollando la chiave API e selezionando il Pinecone Index appena creato. Sotto il nodo Pinecone Vector Store vediamo due elementi da configurare: un modello di embedding e un data loader.

Per l’embedding, crea un nodo OpenAI Embedding con il modello text-embedding-3-small:

Per il data loader, creiamo un nodo Default Data Loader con tipo di dati binari:

Infine, il data loader richiede un nodo Text Splitter, che specifica come deve essere suddiviso il testo del file durante la creazione dello store vettoriale. Usiamo il nodo Recursive Character Text Splitter, consigliato nella maggior parte dei casi.

Lo configuriamo con una dimensione dei chunk pari a 1.000 e una sovrapposizione di 200:

Quando scegli la dimensione e la sovrapposizione dei chunk, valuta l’uso di chunk più grandi per documenti lunghi per catturare abbastanza contenuto e di una sovrapposizione più piccola per mantenere il contesto tra i segmenti senza ridondanza.
Ecco come appare il workflow finale per il caricamento dei dati:

Possiamo eseguirlo cliccando “Test workflow” e, una volta terminato, verificare in Pinecone che i dati siano stati caricati.
Creare un agente RAG
Ecco lo schema finale per l’agente RAG:

Come esercizio, ti incoraggio a provare a capirlo e magari anche a ricrearlo in locale prima di proseguire con la lettura.
Iniziamo con un nodo trigger "On chat message". Serve per creare un workflow di chat.

Successivamente colleghiamo il trigger della chat a un nodo "AI Agent" con le opzioni predefinite.

Sotto l’AI Agent, vediamo che possiamo configurare tre cose:
- Il modello AI usato dall’agente.
- La memoria, che definisce come l’agente ricorda il contesto della conversazione
- Gli strumenti a cui l’agente ha accesso. In questo caso forniremo il database Pinecone come tool, così l’agente potrà rispondere alle domande sul nostro documento.
Per il modello AI, selezioniamo un nodo "OpenAI Chat Model" e usiamo GPT-4.1, come prima. La famiglia GPT-5 è l’attuale famiglia di modelli di OpenAI, ma la 4.1 ha una finestra di contesto da 1M token e si adatta bene al RAG.

Per la memoria, usiamo un nodo "Simple Memory" con una finestra di contesto di lunghezza 5. Significa che l’agente ricorderà e considererà le cinque interazioni precedenti quando risponde.
Infine, come tool aggiungiamo un nodo "Pinecone Vector Store" con la seguente configurazione:

Nel campo descrizione è importante specificare quando usare gli strumenti. È ciò che l’agente userà per decidere se chiamare il tool.
L’ultima cosa da configurare è l’embedding usato dallo store vettoriale. Come prima, usiamo un nodo OpenAI Embedding con il modello text-embedding-3-small:

Il workflow è completo e possiamo chattare con l’agente. Ecco un esempio:

A destra possiamo vedere i passaggi eseguiti dall’agente per rispondere alla nostra domanda. In particolare, ha consultato il database Pinecone per recuperare le regole rilevanti.
Template n8n
n8n offre una funzionalità utile che può velocizzare sensibilmente la creazione dei nostri workflow: la libreria di template n8n.
Questa libreria è una raccolta di workflow predefiniti, creati dalla community e dagli esperti n8n. Che si tratti di automatizzare task semplici o processi più complessi, è probabile che qualcuno abbia già realizzato un workflow adatto alle nostre esigenze.
Importare un workflow nella nostra installazione n8n significa che non dobbiamo sempre partire da zero. Possiamo invece sfruttare le soluzioni creative sviluppate da altri utenti. Una volta importato, basterà configurarlo con le nostre credenziali e adattarlo ai requisiti specifici.
Per qualunque attività tu voglia automatizzare, dall’elaborazione delle email alla gestione dei social media, è molto probabile che nella libreria esista già un template.
Conclusione
n8n offre un vasto ecosistema di integrazioni, permettendoci di collegare oltre un migliaio di servizi e strumenti per creare agenti AI. In questo tutorial abbiamo appena scalfito la superficie di ciò che n8n può fare. Esplorando come usare n8n per creare agenti AI che automatizzano le attività quotidiane, abbiamo solo iniziato a intravedere il suo potenziale.


