Torna alle risorse
WhatsApp Bot automazione · · 7 min di lettura · Riccardo Tran

Come creare un'automazione n8n

n8n è uno strumento di automazione visuale che collega applicazioni tra loro. A differenza di Zapier o Make, puoi installarlo sul tuo server senza pagare per il numero di operazioni.

TL;DR

Un workflow n8n parte da un trigger webhook, elabora i dati attraverso nodi collegati, e risponde tramite API. La parte più importante: testare ogni nodo in isolamento prima di collegare l'intero flusso. Per i bot WhatsApp, il nodo HTTP Request verso ManyChat è il punto di uscita.

Come creare un'automazione n8n

n8n è uno strumento di automazione visuale. Collega applicazioni tra loro e definisce cosa deve succedere quando si verifica un evento. Se Zapier o Make ti sembrano familiari, n8n funziona in modo simile con una differenza sostanziale: puoi installarlo sul tuo server, hai accesso al codice sorgente, e non paghi per il numero di operazioni.

Per il contesto di questo cluster, n8n è lo strato di logica sotto il bot WhatsApp descritto in Come vibe-codare un bot WhatsApp con Claude Code e n8n. Riceve i messaggi da ManyChat, decide come rispondere, aggiorna il database, chiama l'AI se serve.

Concetti base

Un'automazione n8n si chiama workflow. Un workflow è composto da nodi collegati tra loro. Ogni nodo fa una cosa sola: riceve dati, li trasforma, chiama un'API, scrive su un foglio Google, invia un'email.

L'esecuzione parte da un trigger: un evento che avvia il workflow. Il trigger più comune per i bot WhatsApp è il webhook: un URL che, quando viene chiamato con una richiesta HTTP, avvia l'esecuzione e passa i dati della richiesta al nodo successivo.

I dati passano da un nodo all'altro come oggetti JSON. Ogni nodo riceve l'output del nodo precedente, lo elabora, e passa il risultato al nodo successivo. È come una catena di montaggio: ogni stazione riceve il pezzo, lo modifica, e lo passa avanti.

Come installare n8n

Ci sono due opzioni principali: usare il cloud di n8n o installarlo su un server.

n8n Cloud è la versione gestita. Crei un account su n8n.io, scegli un piano (il piano Starter parte da circa 20 euro al mese) e hai un'istanza n8n pronta in pochi minuti, senza gestire server. È la scelta più rapida per iniziare.

Self-hosted è quello che abbiamo usato per il bot CPER. L'istanza gira su un dominio: un VPS con Docker che costa circa 5-10 euro al mese. Il vantaggio è il controllo totale e i costi più bassi per volumi alti. Il contro è che devi gestire gli aggiornamenti, i backup e il server.

Per installare n8n con Docker, hai bisogno di un server con Docker installato. Il comando base è:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n

Questo avvia n8n sulla porta 5678. Raggiungi l'interfaccia su http://localhost:5678. Per un deployment su server con dominio e HTTPS, serve configurare un reverse proxy (nginx o Caddy) e un certificato SSL. La documentazione ufficiale su docs.n8n.io copre questo in dettaglio.

Creare il primo workflow

Quando apri n8n per la prima volta, vedi una schermata vuota con un pulsante «New Workflow». Clicca lì.

Aggiungi un trigger. Clicca sul nodo «+» al centro e cerca «Webhook». Aggiungilo al canvas. Nel pannello laterale vedrai due cose: il metodo HTTP (GET o POST, usa POST per i bot) e l'URL del webhook, che assomiglia a qualcosa del tipo https://tuo-dominio/webhook/abc123. Questo è l'indirizzo che fornirai a ManyChat come destinazione.

Attiva il webhook in modalità test. Clicca «Test URL» nel pannello del nodo Webhook. n8n si mette in ascolto e aspetta una richiesta. Apri un client HTTP come Hoppscotch (hoppscotch.io, gratis, nel browser) e manda una richiesta POST a quell'URL con un body JSON:

{
  "phone": "393331234567",
  "message": "ciao",
  "step": 0
}

n8n riceve la richiesta, mostra i dati nel pannello di destra, e li passa al nodo successivo.

Aggiungi un nodo di risposta. Cerca «Respond to Webhook» e aggiungilo dopo il trigger. Configuralo per restituire un JSON con la risposta. Ora hai un webhook che riceve un messaggio e risponde.

Importare un workflow JSON

Per i workflow generati con Claude Code in vibe coding, la strada più rapida è l'importazione JSON.

In n8n, vai su «Workflows» nel menu laterale, clicca il menu «...» in alto a destra, e scegli «Import from file» oppure «Import from URL». In alternativa, apri un workflow esistente e usa Ctrl+V per incollare direttamente il JSON nel canvas.

n8n riconosce il formato e costruisce il grafo dei nodi automaticamente. Alcune credenziali (Google Sheets, API keys) richiedono di essere riconfigurate dopo l'importazione: n8n non importa i segreti, solo la struttura.

Gestire le credenziali

Prima di usare nodi che si collegano a servizi esterni (Google Sheets, Gmail, Telegram), devi configurare le credenziali. Vai su «Credentials» nel menu laterale e aggiungi quelle che ti servono.

Per Google Sheets, n8n usa OAuth 2.0: clicca «Connect», si apre una finestra di autorizzazione Google, e dopo il consenso n8n può leggere e scrivere sui tuoi fogli. Per le API con chiave (come l'API di ManyChat), basta inserire il token nel campo corrispondente.

Le credenziali vengono cifrate nel database di n8n. Non appaiono mai nei log di esecuzione.

Leggere i log di esecuzione

È la skill più importante per il debugging. Ogni volta che un workflow gira, n8n registra l'esecuzione. Vai su «Executions» nel menu laterale.

Ogni esecuzione mostra lo stato (Success, Error, Waiting) e il tempo di elaborazione. Cliccando su un'esecuzione puoi vedere i dati in input e in output di ogni singolo nodo. Se un nodo fallisce, il log mostra esattamente il messaggio di errore e il dato che lo ha causato.

Questo è il punto di partenza per il debugging in vibe coding: copia il messaggio di errore, incollalo in Claude Code, e chiedi di identificare la causa e correggere il nodo corrispondente nel workflow.

Il problema dei 0 item

Un comportamento di n8n che colpisce quasi tutti alla prima implementazione di un bot: se un nodo produce 0 item in output, il branch successivo non viene eseguito. Nessun errore, nessuna notifica. L'esecuzione si ferma in silenzio.

Il caso tipico è il lookup su Google Sheets: se il lead non esiste nel foglio, il nodo restituisce 0 righe e il workflow si blocca. I nuovi lead non ricevono mai una risposta.

La soluzione è un nodo Code subito dopo il lookup:

const items = $input.all();
if (items.length === 0) {
  return [{ json: { _sheetsFound: false, phone: $('Webhook').first().json.phone } }];
}
return items.map(item => ({ json: { ...item.json, _sheetsFound: true } }));

Questo nodo restituisce sempre 1 item, con il flag _sheetsFound che indica se il lead esiste. Il nodo successivo usa quel flag per decidere se creare una nuova riga o continuare con i dati esistenti.

Leggi anche: Come vibe-codare un bot WhatsApp con Claude Code e n8n per vedere come questo pattern si inserisce in un bot completo.

Domande frequenti

n8n cloud o self-hosted: quale scelgo? Cloud se vuoi iniziare subito senza gestire server (piano Starter da circa 20 euro al mese). Self-hosted se hai un VPS disponibile e vuoi pagare 5-10 euro al mese invece di 20, o se hai volumi alti che su cloud costerebbero di più. Noi usiamo self-hosted su Docker per il bot CPER.

Devo saper programmare per usare n8n? Per i flussi base no: i nodi per Google Sheets, HTTP Request e Switch si configurano dall'interfaccia grafica. Per i workaround come il Safe Pass (che richiede un nodo Code in JavaScript) serve capire cosa fa il codice, anche se puoi generarlo con Claude Code descrivendo il problema in italiano.

Perché il workflow si ferma senza errori quando cerco un lead su Google Sheets? È il problema dei 0 item. Se il lookup non trova nessuna riga, n8n interrompe l'esecuzione del branch in silenzio, senza errori visibili. La soluzione è il Safe Pass node, un nodo Code subito dopo il lookup che restituisce sempre 1 item anche quando il foglio non ha trovato niente.

Come testo un webhook n8n senza usare ManyChat? Attiva il webhook in modalità test in n8n (pulsante «Test URL» nel nodo Webhook), poi manda una richiesta POST con un client HTTP come Hoppscotch (hoppscotch.io, gratuito, nel browser). Puoi simulare qualsiasi payload senza toccare WhatsApp.


Questo articolo fa parte del cluster su WhatsApp e Facebook Ads: Come integrare WhatsApp con Facebook Ads - guida pratica per aziende italiane

Vuoi implementare queste soluzioni?

Parliamone in una call gratuita di 30 minuti.

Prenota una call