Comment créer un bot de service client WhatsApp dans n8n ?
Vous importez un JSON dans n8n, ajoutez vos identifiants et décrivez votre activité à un seul endroit. Dès lors, chaque message WhatsApp reçoit une réponse de l'IA ; si le client demande une personne ou si le bot ne sait pas, il vous prévient et se tait dans cette conversation ; et si vous répondez depuis votre téléphone, le bot se tait tout seul. Il est ci-dessous, gratuit, avec les 5 étapes pour le mettre en route.
Télécharger le workflow (JSON)
Vous codez avec une IA ? Connectez-la à votre compte par MCP : elle vérifie votre configuration, crée webhooks et modèles avec votre confirmation et écrit le code. Comment faire (en anglais) →
Comment ça marche
- Le webhook de Connect arrive
- Signature et jeton
- Déjà traité ?
- État du contact
- Décider
- IA · personne · horaires · média · désinscription
- POST /v1/messages
Et à côté : message.echo (vous avez répondu depuis le téléphone) → le bot se tait dans cette conversation · un message.status en échec → enregistré et signalé, sans nouvel essai.
Ce qu'il fait, point par point
- Il vérifie que le message vient de Connect : le jeton de l'en-tête (n8n le contrôle avant d'exécuter quoi que ce soit) et la signature HMAC
X-Connect-Signature-256surtimestamp.body, avec une tolérance de 5 minutes. Une mauvaise signature reçoit un 401. - Il ne répond jamais deux fois. Connect réessaie s'il ne reçoit pas de 2xx (le même événement, avec le même
id), et quand Meta redélivre un message, Connect ne le renvoie pas comme un nouvel événement. Le workflow note l'id WhatsApp et envoie aussi unIdempotency-Keyqui lui est lié : même si quelque chose se répète, Connect n'envoie pas une autre réponse. - Il répond avec l'IA en lisant les instructions de votre activité (ce que vous vendez, horaires, ton) dans un seul champ, avec une mémoire par contact. Le modèle est un nœud à part : OpenAI est branché, et un nœud Claude est prêt à le remplacer.
- Il passe la main à une personne quand le client le demande ou quand l'IA ne sait pas (elle répond par un marqueur que le client ne voit jamais) : il lui dit que quelqu'un va prendre le relais, vous prévient et se tait dans cette conversation pendant le nombre d'heures que vous choisissez.
- 🔑 Si vous répondez depuis votre téléphone, le bot se tait dans cette conversation pendant la durée que vous choisissez. C'est ce que permet la Coexistence : Connect vous envoie
message.echoavec ce que vous avez écrit dans l'app. Quand le bot reprend, l'IA sait ce que vous avez dit. - Horaires d'ouverture : en dehors, il envoie un message et rien d'autre (il ne le répète pas à chaque message).
- Audio, image, vidéo, sticker, position : une réponse honnête (« Je ne lis que du texte, pouvez-vous l'écrire ? »), pas le silence.
- Désinscription : si l'on écrit « baja » ou « stop », il confirme une fois et n'écrit plus jamais ; « alta » ou « start » réinscrit la personne.
- Erreurs : si Connect refuse un envoi (mauvaise clé, essai expiré, numéro déconnecté, quota) ou si Meta le refuse ensuite (par exemple la fenêtre de 24 heures), c'est noté dans une table et vous êtes prévenu. Il ne réessaie jamais, et un avertissement qui échoue n'en déclenche pas un autre : aucune boucle possible.
- 🔑 L'historique : si vous avez choisi de recevoir l'historique de la Coexistence lors de la connexion, il conserve les 30 derniers messages de chaque contact (jamais les centaines de milliers) et l'IA les lit comme « ce dont vous avez parlé avant » quand ce client écrit à nouveau. Un lot répété ne duplique rien. Quand c'est terminé (ou si l'historique n'a pas pu être enregistré), vous êtes prévenu.
Téléchargez-le
Télécharger le workflow (JSON)
Le mettre en route en 5 étapes
- Importez-le. Dans n8n : Workflows → ⋮ → Import from File et choisissez le JSON. Appuyez sur ▶ sur le nœud Run once: create tables (il crée les 4 tables qu'il utilise : doublons, contacts, erreurs et historique).
- Identifiants (le workflow ne contient aucun secret) : Connect webhook token — type Header Auth, Name
X-Connect-Token, Value votre jetonwct_…; Connect API key — Header Auth, NameAuthorization, ValueBearer wc_live_…(dans le panneau : API → Create API key) ; OpenAI (ou Anthropic) ; et SMTP si vous voulez les avertissements par e-mail. - Config. Ouvrez le nœud Config et décrivez votre activité dans
businessInstructions, vos horaires dansopeningHours, votre e-mail dansownerEmail. Pour vérifier les signatures, collez votrewhsec_…danssigningSecret. - Activez-le (l'interrupteur en haut) et copiez la Production URL du nœud Connect webhook. ⚠ La Test URL n'écoute qu'une seule fois.
- Dans Connect → Webhooks → Add endpoint : cette URL, les événements
message.received,message.echoetmessage.status(plushistory.batch,history.completedethistory.droppedsi vous avez choisi de recevoir l'historique lors de la connexion), et générez le jeton statique. Appuyez sur Test : vous devez obtenir 200. Ensuite, envoyez-vous un WhatsApp depuis un autre téléphone.
Le nœud WhatsApp de n8n ne suffit-il pas ?
n8n fournit son propre nœud WhatsApp, qui parle directement à Meta. Souvent, il suffit, et il est gratuit : si vous avez déjà une app Meta, que votre numéro est sur la Cloud API et que vous n'utilisez pas l'app WhatsApp Business sur le téléphone, utilisez-le.
Ce qui change avec Connect, sans détour (ce que nous disons du nœud de n8n vient de son code, version 2.40.7) :
| Nœud WhatsApp de n8n | Avec WAIA Connect | |
|---|---|---|
| Prix | Gratuit (Meta facture quand même ses messages) | À partir de US$ 12 par mois (Starter), essai gratuit de 14 jours ; Meta facture quand même ses messages |
| App Meta | Vous la créez et la configurez (app, jeton, webhook) | Inutile : vous connectez le numéro avec l'inscription Meta depuis le panneau |
| Continuer à utiliser l'app sur le téléphone (Coexistence) | Le déclencheur ne propose pas l'événement de ce qui est envoyé depuis le téléphone (smb_message_echoes) : le bot ne sait jamais que vous avez répondu | Oui : message.echo transmet ce que vous avez écrit dans l'app, et ce workflow se tait tout seul |
| Combien de workflows reçoivent | Un déclencheur par app Meta (le nœud lui-même le dit) | Un ou plusieurs endpoints, par compte ou par numéro |
| Si votre n8n tombe | Meta réessaie de son côté | Connect essaie jusqu'à 5 fois en environ 2 heures et demie, signé et avec le même id, et vous prévient avant de mettre en pause |
Si rien dans la colonne de droite ne vous est utile, restez avec le nœud de n8n. Le workflow vous servira quand même d'exemple : les idées (noter l'id WhatsApp, répondre 200 avant l'IA, ne jamais envoyer de texte libre hors des 24 heures, ne jamais réessayer à l'aveugle) valent pour n'importe quel fournisseur.
À savoir avant de commencer
- Il faut n8n 2.3.0 ou plus récent : il utilise les Data tables, et l'opération qui crée les tables est arrivée dans cette version. Nous l'avons testé de bout en bout sur 2.3.0 et sur 2.40.7. Sur n8n Cloud, vous êtes déjà sur une version récente ; en auto-hébergé, regardez la version en bas à gauche. C'est là qu'il garde les doublons, l'état de chaque contact et les erreurs ; vous les voyez dans Data tables.
- La mémoire de l'IA vit dans n8n : elle est perdue quand n8n redémarre et ne fonctionne pas en queue mode. Pour quelque chose de durable, remplacez le nœud de mémoire par celui de Postgres ou de Redis avec la même clé.
- Le secret de signature reste dans le workflow (nœud Config) : n8n ne permet pas à un nœud de lire un identifiant. Supprimez-le avant d'exporter ou de partager le workflow. Le jeton de l'en-tête et la clé API, eux, sont bien dans les identifiants.
- Le nœud Code de n8n ne peut pas utiliser
cryptosur une installation auto-hébergée (c'est interdit par défaut) : c'est pourquoi la signature est calculée avec le nœud Crypto. - L'avertissement sur votre WhatsApp part sous forme de modèle, jamais en texte libre : hors de la fenêtre de 24 heures, Meta le refuse. Sans modèle approuvé, utilisez l'e-mail.
- Les messages automatiques de l'app (accueil, absence) partent eux aussi du téléphone. Nous n'avons pas pu le mesurer : s'ils sont activés, ils peuvent compter comme votre réponse et faire taire le bot.
- Le service est le texte libre que vous répondez dans les 24 heures suivant le dernier message de votre client. Depuis le 1er octobre 2026, Meta le facture par message livré (dans sa grille, le même montant que le tarif utilité de chaque pays), ainsi que l'utilité envoyée pendant que la fenêtre est ouverte. Les 1 000 premiers messages de service par numéro et par mois sont gratuits ; au-delà, Meta facture chaque réponse et a besoin de votre carte enregistrée chez Meta. C'est Meta qui facture cela, pas WAIA Connect : votre essai reste gratuit. La fenêtre de 24 heures existe toujours et détermine si vous pouvez envoyer du texte libre. Connect n'ajoute rien à chaque réponse du bot.
Votre bot vit dans une feuille Google ?
Si vous n'utilisez pas n8n et avez construit votre bot sur un tableur, il y a le guide Google Sheets. La forme exacte de chaque événement est dans Recevoir le webhook.
Sources (consultées le 29/09/2026)
Connectez votre premier numéro dès aujourd'hui
Fournisseur de technologie vérifié par Meta. Coexistence en un clic.
Commencer