Come creo un bot di assistenza clienti su WhatsApp con n8n?
Importi un JSON in n8n, inserisci le credenziali e descrivi la tua attività in un solo punto. Da lì ogni messaggio WhatsApp riceve una risposta dall'IA; se il cliente chiede una persona o il bot non sa rispondere, ti avvisa e tace in quella conversazione; e se rispondi tu dal telefono, il bot tace da solo. È qui sotto, gratis, con i 5 passi per farlo partire.
Come funziona
- Arriva il webhook di Connect
- Firma e token
- Già elaborato?
- Stato del contatto
- Decidere
- IA · persona · orari · media · disiscrizione
- POST /v1/messages
E a parte: message.echo (hai risposto dal telefono) → il bot tace in quella conversazione · message.status fallito → registro e avviso, nessun nuovo tentativo.
Cosa fa, uno per uno
- Controlla che il messaggio arrivi da Connect: il token nell'intestazione (lo controlla n8n prima di eseguire qualsiasi cosa) e la firma HMAC
X-Connect-Signature-256sutimestamp.corpo, con 5 minuti di tolleranza. Una firma sbagliata riceve 401. - Non risponde mai due volte. Connect riprova se non riceve un 2xx, e Meta a volte riconsegna lo stesso messaggio (Connect lo inoltra con un altro id evento ma lo stesso id WhatsApp). Il workflow registra l'id WhatsApp e invia anche un
Idempotency-Keylegato a esso: anche se qualcosa si ripete, Connect non invia un'altra risposta. - Risponde con l'IA leggendo le istruzioni della tua attività (cosa vendi, orari, tono) da un solo campo, con memoria per contatto. Il modello è un nodo a parte: c'è OpenAI e un nodo Claude pronto da scambiare.
- Passa a una persona se il cliente lo chiede o se l'IA non sa (risponde con un segnale che il cliente non vede mai): gli dice che lo seguirà qualcuno, ti avvisa e tace in quella conversazione per le ore che scegli.
- 🔑 Se rispondi tu dal telefono, il bot tace in quella conversazione per il tempo che scegli. È ciò che permette la coesistenza: Connect ti invia
message.echocon quello che hai scritto nell'app. Quando il bot torna, l'IA sa cosa hai detto. - Orari di apertura: fuori orario invia un messaggio e basta (non lo ripete a ogni messaggio).
- Audio, immagine, video, sticker, posizione: una risposta onesta («leggo solo testo, puoi scriverlo?»), non il silenzio.
- Disiscrizione: se scrivono «baja» o «stop», conferma una volta e non scrive più; «alta» o «start» li riporta dentro.
- Errori: se Connect rifiuta un invio (chiave sbagliata, prova scaduta, numero scollegato, quota) o Meta lo rifiuta dopo (per esempio la finestra di 24 ore), viene annotato in una tabella e ricevi un avviso. Non riprova mai, e un avviso fallito non genera un altro avviso: nessun loop possibile.
Scaricalo
Farlo partire in 5 passi
- Importalo. In n8n: Workflows → ⋮ → Import from File e scegli il JSON. Premi ▶ sul nodo Run once: create tables (crea le 3 tabelle che usa: duplicati, contatti, errori).
- Credenziali (il workflow non contiene segreti): Connect webhook token — tipo *Header Auth*, Name
X-Connect-Token, Value il tuo tokenwct_…; Connect API key — *Header Auth*, NameAuthorization, ValueBearer wc_live_…(nel pannello: API → Crea API key); OpenAI (o Anthropic); e SMTP se vuoi gli avvisi via email. - Config. Apri il nodo Config e descrivi la tua attività in
businessInstructions, gli orari inopeningHours, la tua email inownerEmail. Per controllare la firma, incolla il tuowhsec_…insigningSecret. - Attivalo (l'interruttore in alto) e copia la Production URL del nodo Connect webhook. ⚠ La Test URL ascolta una volta sola.
- In Connect → Webhook → Aggiungi endpoint: quell'URL, eventi
message.received,message.echoemessage.status, e genera il token statico. Premi Prova: deve dare 200. Poi mandati un WhatsApp da un altro telefono.
Non basta il nodo WhatsApp che n8n ha già?
n8n ha il suo nodo WhatsApp, che parla direttamente con Meta. Spesso basta, ed è gratis: se hai già un'app Meta, il tuo numero è sulla Cloud API e non usi l'app WhatsApp Business sul telefono, usa quello.
Cosa cambia con Connect, senza giri di parole (quello che diciamo del nodo di n8n viene dal suo codice, versione 2.40.7):
| Nodo WhatsApp di n8n | Con WAIA Connect | |
|---|---|---|
| Prezzo | Gratis (Meta addebita comunque i suoi messaggi) | Da US$ 12 al mese (Starter), 14 giorni di prova; Meta addebita comunque i suoi messaggi |
| App Meta | La crei e configuri tu (app, token, webhook) | Non serve: colleghi il numero con la registrazione di Meta dal pannello |
| Continuare a usare l'app sul telefono (coesistenza) | Il trigger non offre l'evento di ciò che si invia dal telefono (smb_message_echoes): il bot non sa che hai risposto tu | Sì: message.echo porta quello che hai scritto nell'app, e questo workflow tace da solo |
| Quanti workflow ricevono | Un trigger per app Meta (lo dice il nodo stesso) | Uno o più endpoint, per account o per numero |
| Se il tuo n8n va giù | Meta riprova dal suo lato | Connect prova fino a 5 volte in circa 2 ore e mezza, firmato e con lo stesso id, e ti avvisa prima di mettere in pausa |
Se non ti serve niente della colonna di destra, resta con il nodo di n8n. Il workflow ti serve comunque da esempio: le idee (registrare l'id WhatsApp, rispondere 200 prima dell'IA, non inviare testo libero fuori dalle 24 ore, non riprovare alla cieca) valgono con qualsiasi fornitore.
Da sapere prima
- Serve un n8n con Data tables (l'abbiamo provato su 2.40.7). Lì tiene i duplicati, lo stato di ogni contatto e gli errori; li vedi in Data tables.
- La memoria dell'IA vive in n8n: si perde quando n8n si riavvia e non funziona in queue mode. Per qualcosa di duraturo, sostituisci il nodo di memoria con quello di Postgres o Redis con la stessa chiave.
- Il segreto di firma resta dentro il workflow (nodo Config): n8n non permette a un nodo di leggere una credenziale. Cancellalo prima di esportare o condividere il workflow. Il token dell'intestazione e la API key stanno nelle credenziali.
- Il nodo Code di n8n non può usare
cryptoin un'installazione propria (è vietato per impostazione predefinita): per questo la firma si calcola con il nodo Crypto. - L'avviso sul tuo WhatsApp va come template, mai come testo libero: fuori dalla finestra di 24 ore Meta lo rifiuta. Senza un template approvato, usa l'email.
- I messaggi automatici dell'app (benvenuto, assenza) partono anch'essi dal telefono. Non siamo riusciti a misurarlo: se li hai attivi, possono contare come tua risposta e zittire il bot.
- Dal 1° ottobre 2026 Meta addebita anche le risposte dentro la finestra di 24 ore, per messaggio. Ogni risposta del bot ha quel costo di Meta; Connect non aggiunge nulla.
Il tuo bot vive in un foglio Google?
Se non usi n8n e hai costruito il bot su un foglio di calcolo, c'è la guida con Google Sheets. La forma esatta di ogni evento è in Ricevere il webhook (in inglese).
Fonti (consultate il 29/09/2026)
Connect your first number today
Meta-verified technology provider. Coexistence in one click.
Get started