n8n + WhatsApp Business: Automazioni AI per la Messaggistica
Perché n8n + WhatsApp Business nel 2026
WhatsApp ha superato i 3 miliardi di utenti attivi. Per un business italiano nel 2026, ignorare questo canale significa rinunciare al mezzo di comunicazione preferito dalla stragrande maggioranza dei clienti. Ma gestire manualmente ogni messaggio — notifiche ordini, supporto, conferme appuntamento — è semplicemente insostenibile.
Entra in gioco n8n + WhatsApp Business API: la combinazione che permette di orchestrare flussi di messaggistica intelligenti senza costruire un’infrastruttura da zero. Se hai già esplorato n8n + Claude per automatizzare il business, sai di cosa parliamo — qui spingiamo tutto verso la messaggistica conversazionale.
In questo articolo vedremo come configurare l’integrazione WhatsApp Business con n8n, costruire workflow reali (chatbot AI, notifiche e-commerce, qualificazione lead), e aggiungere intelligenza con un modello LLM. Il tutto con esempi di codice pronti all’uso e la logica che sta dietro ogni scelta architetturale.
Come funziona WhatsApp Business API con n8n
WhatsApp Business si divide in due prodotti: l’app consumer (per PMI con volumi bassi) e la Cloud API ufficiale di Meta, gratuita fino a 1.000 conversazioni al mese avviate dall’azienda. Per l’integrazione con n8n useremo la Cloud API.
Il flusso dati è questo: Meta invia i messaggi in arrivo al tuo webhook n8n, il workflow li processa, e risponde chiamando l’API REST di Meta. Per i messaggi in uscita (template o sessioni aperte) fai una richiesta POST diretta.
Prerequisiti tecnici:
- Account Meta Business verificato
- App Meta Developer con prodotto “WhatsApp” abilitato
- Numero di telefono dedicato (non già associato a WhatsApp personale)
- n8n self-hosted o cloud con URL pubblico per il webhook
- Token permanente o token di sistema Meta
Il nodo Webhook di n8n riceve i POST di Meta. Il nodo HTTP Request chiama graph.facebook.com/v19.0/{phone_number_id}/messages per rispondere. Niente plugin speciali: tutto con i nodi nativi.
{
"object": "whatsapp_business_account",
"entry": [
{
"id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
"changes": [
{
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": "+39XXXXXXXXXX",
"phone_number_id": "PHONE_NUMBER_ID"
},
"messages": [
{
"from": "393331234567",
"id": "wamid.XXX",
"timestamp": "1700000000",
"text": { "body": "Ciao, vorrei informazioni sul prodotto X" },
"type": "text"
}
]
},
"field": "messages"
}
]
}
]
}Questo è il payload che arriva al tuo webhook n8n da Meta ogni volta che qualcuno ti scrive. Il campo messages[0].text.body è il testo del messaggio, from è il numero del mittente.
Configurare il Webhook e la Verifica Meta
Meta richiede che il webhook risponda correttamente alla challenge di verifica prima di iniziare a inviare eventi. Quando configuri il webhook nel Meta Developer Portal, Meta fa una GET al tuo URL con tre parametri query: hub.mode, hub.verify_token e hub.challenge.
In n8n, usa il nodo Webhook impostato su metodo GET per gestire la verifica, e un secondo webhook POST per i messaggi. In alternativa, usa un singolo webhook con un nodo IF che discrimina tra GET e POST.
// Nodo "Code" in n8n per gestire la verifica Meta
// Input: $json dal nodo Webhook (query params)
const VERIFY_TOKEN = "mio_token_segreto_2026";
const mode = $json.query["hub.mode"];
const token = $json.query["hub.verify_token"];
const challenge = $json.query["hub.challenge"];
if (mode === "subscribe" && token === VERIFY_TOKEN) {
// Restituisce il challenge come testo plain
return [{ json: { challenge: challenge } }];
}
throw new Error("Token di verifica non valido");Una volta superata la verifica, Meta inizia a inviare i messaggi in arrivo al tuo webhook POST. Ricorda di configurare il campo Respond del nodo Webhook su “Using Respond to Webhook Node” per avere controllo completo sulla risposta HTTP.
🔧 Pro tip: Usa sempre HTTPS per il webhook. Meta non accetta URL HTTP in produzione. Con n8n Cloud hai HTTPS out of the box; con il self-hosted configura un reverse proxy nginx o Caddy davanti a n8n.
Workflow Reale: Chatbot AI con Claude/GPT
Il caso d’uso più richiesto: un chatbot WhatsApp che risponde alle domande dei clienti usando un LLM. Il workflow n8n ha questa struttura:
- Webhook POST — riceve il messaggio da Meta
- IF — filtra solo i messaggi di tipo “text” (esclude immagini, audio, ecc.)
- Code — estrae
from,body,phone_number_iddal payload - HTTP Request — chiama Claude API o OpenAI con il messaggio dell’utente
- HTTP Request — invia la risposta via WhatsApp
- Respond to Webhook — ritorna 200 OK a Meta
Per la parte AI, se hai già integrato la Claude API con tool use, puoi equipaggiare il chatbot con strumenti reali: ricerca ordini, verifica disponibilità, prenotazione appuntamenti. Qui vediamo la chiamata base:
// Nodo Code - Prepara il payload per Claude API
const userMessage = $json.body.entry[0].changes[0].value.messages[0].text.body;
const phoneFrom = $json.body.entry[0].changes[0].value.messages[0].from;
const systemPrompt = `Sei l'assistente AI di [Azienda]. Rispondi in italiano,
in modo conciso e professionale. Hai accesso alle informazioni sui prodotti
e alle FAQ. Se non sai rispondere, indica come contattare il supporto umano.`;
return [{
json: {
phoneFrom,
claudePayload: {
model: "claude-opus-4-5",
max_tokens: 300,
system: systemPrompt,
messages: [
{ role: "user", content: userMessage }
]
}
}
}];Il nodo HTTP Request successivo chiama https://api.anthropic.com/v1/messages con header x-api-key e anthropic-version: 2023-06-01. La risposta di Claude è in content[0].text.
Per gestire la memoria conversazionale (il bot ricorda i messaggi precedenti), puoi usare il nodo Redis di n8n per salvare la storia per ogni numero di telefono, oppure usare un Simple Memory se n8n è in versione recente. Se stai costruendo sistemi RAG, leggi la guida su RAG con Claude API per capire come iniettare contesto documentale nelle risposte.
Inviare Messaggi Template: Notifiche Ordini e Reminder
I messaggi in uscita avviati dall’azienda (fuori dalla finestra delle 24 ore) devono usare Template approvati da Meta. I template si configurano nel Business Manager e hanno una struttura fissa con variabili parametrizzate.
Scenario tipico: il tuo e-commerce spedisce un ordine e vuoi notificare il cliente su WhatsApp. Il workflow si aggancia al webhook del tuo CMS/Shopify, estrae i dati dell’ordine e chiama l’API WhatsApp con il template “order_shipped”. Per automatizzare la gestione ordini end-to-end, l’articolo sull’AI per l’e-commerce mostra l’intero stack.
{
"messaging_product": "whatsapp",
"to": "393331234567",
"type": "template",
"template": {
"name": "order_shipped",
"language": { "code": "it" },
"components": [
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Mario Rossi" },
{ "type": "text", "text": "#ORD-2026-4521" },
{ "type": "text", "text": "GLS" },
{ "type": "text", "text": "AB123456789IT" }
]
}
]
}
}Il nodo HTTP Request di n8n invia questo payload a https://graph.facebook.com/v19.0/{PHONE_NUMBER_ID}/messages con header Authorization: Bearer {TOKEN}. Nota: il campo to vuole il numero internazionale senza il simbolo +.
Per i reminder appuntamenti — un altro caso d’uso frequente — aggiungi un nodo Schedule Trigger che ogni mattina legge gli appuntamenti del giorno successivo da un Google Sheet o un database, e manda i messaggi template a ogni cliente. Se vuoi andare più a fondo sul topic appuntamenti, c’è un articolo dedicato su come l’AI gestisce gli appuntamenti.
Qualificazione Lead con Flow Conversazionale
Un workflow più sofisticato: un lead scrive su WhatsApp dopo aver visto un annuncio, e il bot lo qualifica raccogliendo budget, esigenze e disponibilità. Solo se il lead supera la qualificazione, una notifica viene inviata al team vendita.
La chiave è la macchina a stati: ogni numero di telefono è associato a uno stato (es. WELCOME, ASK_BUDGET, ASK_TIMELINE, QUALIFIED, DISQUALIFIED). n8n gestisce lo stato con un nodo Redis o con variabili statiche su un Google Sheet.
// Nodo Code - Gestione stato conversazione
const phone = items[0].json.from;
const message = items[0].json.message.toLowerCase();
const state = items[0].json.currentState || "WELCOME";
const transitions = {
WELCOME: {
reply: "Ciao! Sono l'assistente virtuale di [Azienda]. Stai cercando una soluzione per la tua azienda o per uso personale?",
next: "ASK_TYPE"
},
ASK_TYPE: {
detect: (m) => m.includes("aziend") ? "business" : "personal",
routes: {
business: {
reply: "Ottimo! Quanti dipendenti ha la tua azienda? (es: 1-10, 11-50, 50+)",
next: "ASK_SIZE"
},
personal: {
reply: "Capisco! Purtroppo serviamo solo clienti business al momento. Posso mandarti le nostre risorse gratuite?",
next: "DISQUALIFIED"
}
}
},
ASK_SIZE: {
reply: "Qual e' il tuo budget indicativo mensile? (es: sotto 500 euro, 500-2000, oltre 2000)",
next: "ASK_BUDGET"
},
ASK_BUDGET: {
detect: (m) => {
if (m.includes("oltre") || m.includes("2000")) return "hot";
if (m.includes("500-") || m.includes("500 -")) return "warm";
return "cold";
},
routes: {
hot: { reply: "Perfetto! Un nostro consulente ti contatterà entro 2 ore.", next: "QUALIFIED_HOT" },
warm: { reply: "Grazie! Ti mando subito una brochure e ti ricontatto entro domani.", next: "QUALIFIED_WARM" },
cold: { reply: "Capito. Ti invio le nostre risorse gratuite per iniziare.", next: "DISQUALIFIED" }
}
}
};
const currentStep = transitions[state];
return [{ json: { phone, currentStep, state, nextState: currentStep?.next || "END" } }];Questo approccio è scalabile: puoi aggiungere stati senza toccare la struttura del workflow. I lead qualificati vengono automaticamente aggiunti al CRM via Zapier/Make o con un nodo HTTP diretto su HubSpot. Il tema dei tool n8n avanzati è trattato in dettaglio nell’articolo n8n avanzato con subflow e error handling.
Error Handling, Rate Limit e Best Practice Produzione
In produzione, tre problemi ricorrenti con WhatsApp Business API:
1. Rate limiting: Meta impone limiti di messaggi per secondo. Con un piano standard puoi inviare circa 80 messaggi/secondo. Se vuoi fare invii massivi (newsletter WhatsApp), usa una coda con nodo Wait che introduce un delay di 50-100ms tra i messaggi.
2. Messaggi duplicati: Meta può re-inviare lo stesso webhook se non riceve un 200 OK entro 20 secondi. Usa sempre il nodo Respond to Webhook come primo passo del ramo principale, prima di qualsiasi chiamata API lenta. Salva il message_id in Redis con un TTL di 1 ora per deduplicare.
3. Sessioni scadute: La finestra di 24 ore si conta dall’ultimo messaggio del cliente. Se il cliente non risponde entro 24 ore, non puoi più inviare messaggi free-form: devi usare un template. Aggiungi un nodo IF che controlla il timestamp e sceglie il tipo di messaggio corretto.
Per l’error handling, il pattern consigliato è il try/catch a livello di workflow: abilita il nodo Error Trigger e invia una notifica Slack/email quando un workflow fallisce. È lo stesso approccio che vedi negli esempi di automazione email con n8n + Claude.
💡 Pro tip: Non elaborare mai i messaggi in modo sincrono nella stessa esecuzione del webhook. Usa il pattern “fire and forget”: il webhook risponde 200 OK immediatamente, poi chiama un secondo workflow tramite Execute Workflow per fare l’elaborazione pesante. Questo evita timeout di Meta.
Costi, Limiti e Alternative (2026)
Meta ha cambiato il modello di pricing nel 2024: ora si paga per conversazione (non per singolo messaggio), con prezzi diversi per tipo:
- Marketing: ~0.078 USD per conversazione (Italia)
- Utility: ~0.015 USD (notifiche transazionali)
- Authentication: ~0.045 USD (OTP, verifica)
- Service: gratis (risposte entro 24h a messaggi del cliente)
Per un’azienda con 500 conversazioni/mese di tipo utility, il costo è circa 7-8 euro al mese. Per volumi più alti, considera un BSP (Business Solution Provider) come Twilio, 360dialog o Respond.io che offrono prezzi negoziati e SDK più robusti.
Se vuoi confrontare n8n con altri strumenti di automazione prima di investire, l’articolo Zapier, Make o n8n: come scegliere analizza i pro e contro di ciascuno su use case reali.
FAQ e Domande Frequenti
Posso usare n8n con WhatsApp personale (non Business)?
Tecnicamente esistono librerie non ufficiali (come Baileys o WPPConnect) che simulano il client WhatsApp Web. Tuttavia Meta le vieta esplicitamente nei ToS e sospende regolarmente i numeri che le usano. Per un uso professionale e stabile, usa sempre la WhatsApp Business Cloud API ufficiale. Il rischio di ban del numero è troppo alto per qualsiasi uso serio.
n8n Cloud o self-hosted per WhatsApp?
n8n Cloud è la scelta più rapida: webhook pubblici out of the box, zero DevOps, SSL incluso. Self-hosted conviene se hai volumi alti (>50.000 esecuzioni/mese) o hai requisiti di privacy sui dati dei clienti. In entrambi i casi il workflow è identico. Se opti per il self-hosted, l’articolo n8n avanzato copre il deploy su VPS con Docker.
Quanto tempo ci vuole per andare in produzione?
Con un account Meta Business già verificato, un developer può avere il primo messaggio end-to-end in 2-4 ore. Il collo di bottiglia reale è la verifica del numero di telefono (istantanea se usi un numero nuovo) e l’approvazione dei template (normalmente 1-24 ore per template semplici). Il workflow n8n per un chatbot base si costruisce in meno di un’ora se conosci già lo strumento.
Posso mandare immagini e file via n8n?
Sì. L’API WhatsApp supporta messaggi di tipo image, document, audio, video e sticker. Per inviare un’immagine, cambia il campo type da text a image e aggiungi un oggetto image con link (URL pubblico dell’immagine). n8n gestisce tutto questo con il nodo HTTP Request standard — nessun nodo speciale necessario.
Conclusione
n8n + WhatsApp Business API è una delle combinazioni più potenti per automatizzare la messaggistica nel 2026. Con la Cloud API gratuita di Meta e n8n come orchestratore, puoi costruire chatbot AI, sistemi di notifica transazionale e flussi di qualificazione lead senza dipendere da piattaforme costose o codice custom.
Il valore reale emerge quando integri un LLM nel loop: non messaggi statici, ma risposte contestuali che migliorano l’esperienza del cliente e riducono il carico sul team. Il passo successivo naturale è costruire agenti AI più sofisticati con tool use — il terreno su cui n8n sta investendo molto nel 2026.
Inizia con un workflow semplice — magari le notifiche ordini — valida il setup, poi aggiungi la logica AI. Come sempre, la complessità si aggiunge incrementalmente.
Suggerimenti e Risorse
🔧 Risorsa tecnica: La documentazione ufficiale Meta per la Cloud API è su developers.facebook.com/docs/whatsapp/cloud-api. Usa il “Graph API Explorer” per testare le chiamate prima di implementarle in n8n.
💡 Pattern consigliato: Separa sempre la logica di ricezione dalla logica di elaborazione. Un workflow gestisce il webhook e risponde 200 immediatamente, un secondo workflow fa tutto il lavoro pesante (chiamata AI, CRM, ecc.). Questo elimina i timeout e semplifica il debug.
🎯 Quick win: Il primo workflow da costruire non è il chatbot — è la notifica ordine. Richiede zero AI, zero gestione stato, e porta valore immediato. Usalo per validare l’integrazione tecnica, poi aggiungi complessità.

