Automatiser WhatsApp avec n8n : tutoriel complet 2026
Vous voulez créer un chatbot WhatsApp sans payer 200€/mois de SaaS ? Ce tutoriel vous montre comment connecter l'API WhatsApp Business à n8n, de la configuration 360dialog à la première réponse automatique, étape par étape.

Hugo Fonseca
Fondateur d'HGO Automation
La plupart des tutoriels WhatsApp + n8n disponibles en ligne sont en anglais, incomplets ou basés sur des outils qui ont changé leur interface depuis. Ce guide est basé sur ce que nous déployons en production pour nos clients PME françaises en 2026 : API WhatsApp via 360dialog, n8n self-hosted sur VPS OVHcloud, et workflows testés en conditions réelles.
Ce que vous allez construire
À la fin de ce tutoriel, vous aurez un système capable de : recevoir des messages WhatsApp entrants dans n8n, analyser le contenu du message, envoyer une réponse automatique personnalisée, et créer une fiche contact dans votre CRM si le client est nouveau. Tout ça sans intervention humaine, 24h/24.
Prérequis avant de commencer :
- Un compte Meta Business Manager vérifié (document légal : kbis ou extrait Infogreffe)
- Un numéro de téléphone dédié (mobile, fixe ou virtuel VOIP — pas votre numéro WhatsApp actuel)
- Une instance n8n accessible depuis internet (self-hosted sur VPS ou n8n Cloud)
- Un compte 360dialog (BSP recommandé pour l'UE — hébergement Allemagne)
- Comptez 1 à 2 heures pour la configuration complète
Étape 1 — Configurer votre compte 360dialog et obtenir l'accès API
360dialog est un Business Service Provider (BSP) agréé par Meta. Il fait le pont entre votre numéro WhatsApp et l'API officielle. C'est l'option la plus économique pour les volumes faibles et moyens, avec des serveurs en UE (Allemagne).
Procédure d'inscription 360dialog :
- Créez un compte sur 360dialog.com avec votre email professionnel
- Dans le tableau de bord, cliquez 'Add Channel' → 'WhatsApp'
- Connectez votre Meta Business Manager via le bouton Facebook (autorisation OAuth)
- Entrez votre numéro de téléphone dédié et choisissez la méthode de vérification (SMS ou appel vocal)
- Entrez le code de vérification reçu — votre numéro est maintenant lié à l'API
- Copiez votre API Key depuis 360dialog Dashboard → Settings → API Keys
Important : une fois un numéro enregistré sur l'API WhatsApp Business, il ne peut plus recevoir de messages sur l'application WhatsApp standard. Utilisez toujours un numéro dédié. Un numéro virtuel VOIP (Zadarma, Twilio, OVH Telecom) coûte 2-5€/mois et fonctionne parfaitement.
Étape 2 — Configurer n8n pour recevoir les webhooks WhatsApp
n8n reçoit les messages WhatsApp via un webhook : 360dialog envoie une requête HTTP POST vers votre URL n8n dès qu'un message arrive. Votre workflow n8n est déclenché, traite le message, et répond via l'API 360dialog.
Configuration du webhook dans n8n :
- Dans n8n, créez un nouveau workflow et ajoutez un nœud 'Webhook' en trigger
- Sélectionnez la méthode POST et notez l'URL générée (ex: https://votre-n8n.com/webhook/whatsapp-entrant)
- Dans 360dialog Dashboard → Settings → Webhooks, entrez cette URL et cochez 'Message received'
- Enregistrez — 360dialog va envoyer un message de test immédiatement
- Dans n8n, activez votre workflow (toggle en haut à droite) pour commencer à recevoir les webhooks
- Testez en envoyant un message WhatsApp sur votre numéro dédié — vous devriez voir l'événement apparaître dans n8n
Le corps JSON reçu par n8n depuis 360dialog a cette structure : un objet 'messages' contenant le texte, l'ID du contact, le timestamp et le type (text, image, audio...). Retenez ces champs : messages[0].from (numéro expéditeur), messages[0].text.body (texte), messages[0].id (ID unique du message).
Étape 3 — Envoyer votre première réponse automatique
La réponse se fait via un appel à l'API 360dialog. Dans n8n, ajoutez un nœud 'HTTP Request' après le webhook.
Configuration du nœud HTTP Request pour répondre :
- Méthode : POST
- URL : https://waba.360dialog.io/v1/messages
- Headers : D360-API-KEY = votre_api_key_360dialog, Content-Type = application/json
- Body (JSON) : { "to": "{{ $json.messages[0].from }}", "type": "text", "text": { "body": "Bonjour ! Merci pour votre message. Notre équipe revient vers vous sous 24h." } }
- Testez le nœud — vous devriez recevoir la réponse sur votre téléphone WhatsApp
L'expression {{ $json.messages[0].from }} est la syntaxe n8n pour accéder aux données du nœud précédent. Elle injecte dynamiquement le numéro de l'expéditeur pour que la réponse parte au bon contact.
Étape 4 — Ajouter de la logique conditionnelle
Un bot qui répond toujours la même chose n'est pas très utile. Ajoutez un nœud 'IF' ou 'Switch' pour analyser le message et router vers des branches différentes.
Exemple de logique Switch sur le contenu du message :
- Ajoutez un nœud 'Switch' après le webhook
- Valeur à évaluer : {{ $json.messages[0].text.body.toLowerCase() }}
- Règle 1 : contient 'prix' ou 'tarif' → branche Tarification
- Règle 2 : contient 'rdv' ou 'rendez-vous' ou 'disponibilité' → branche Prise de RDV
- Règle 3 : contient 'urgence' ou 'urgent' → branche Escalade humaine
- Règle Default : message non reconnu → réponse menu général
Pour une logique plus sophistiquée (compréhension du langage naturel), ajoutez un nœud OpenAI avant le Switch : envoyez le message à GPT-4o avec un prompt demandant de catégoriser l'intention (PRIX, RDV, URGENCE, AUTRE) — utilisez ensuite cette catégorie dans votre Switch. La précision passe de ~70% (matching par mots-clés) à ~95% (LLM).
Étape 5 — Connexion CRM : créer une fiche contact automatiquement
Quand un nouveau contact envoie un message, créez automatiquement une fiche dans votre CRM. Voici l'exemple avec HubSpot, mais la logique est identique pour Notion, Airtable, Salesforce ou tout CRM avec une API REST.
Workflow complet pour un nouveau contact :
- Nœud 1 : Webhook → reçoit le message WhatsApp
- Nœud 2 : HubSpot → 'Search Contact' avec le numéro de téléphone comme critère
- Nœud 3 : IF → contact trouvé ? OUI → passer au traitement normal, NON → créer la fiche
- Nœud 4 (branche NON) : HubSpot → 'Create Contact' avec phone = {{ $json.messages[0].from }}
- Nœud 5 : Slack → notification interne 'Nouveau contact WhatsApp : +33XXXXXXXXX'
- Nœud 6 : HTTP Request → réponse de bienvenue personnalisée au client
Étape 6 — Gérer les messages non-texte (images, vocaux, documents)
WhatsApp permet d'envoyer des photos, des messages vocaux, des PDF. Le webhook 360dialog indique le type dans messages[0].type (text, image, audio, document). Ajoutez une branche dans votre Switch pour chaque type.
Exemples de gestion des types de messages :
- type = 'image' → télécharger l'image via l'API 360dialog, l'envoyer à GPT-4o Vision pour analyse, répondre selon le contenu
- type = 'audio' → télécharger le fichier audio, l'envoyer à Whisper (OpenAI) pour transcription, traiter le texte transcrit
- type = 'document' → télécharger le PDF, extraire le texte, traiter comme un message texte
- type = 'location' → récupérer les coordonnées GPS, utiliser dans un workflow de dispatch terrain
- type non géré → répondre 'Je gère uniquement les messages texte pour l'instant'
Étape 7 — Mettre en place l'escalade humaine
Un bot ne peut pas tout gérer. L'escalade humaine est indispensable pour les cas complexes ou sensibles. La bonne pratique : stocker le statut de chaque conversation dans une base de données (PostgreSQL, SQLite ou même un Google Sheet) et basculer en mode 'humain' quand le client le demande ou quand le bot ne trouve pas de réponse adaptée.
Logique d'escalade recommandée :
- Si le message contient 'humain', 'agent', 'parler à quelqu'un' → stocker status='escalade' pour ce numéro
- Si status='escalade' → ne pas répondre automatiquement, envoyer une notification Slack/email à votre équipe avec le message du client
- Le collaborateur répond depuis WhatsApp Business App (ou depuis votre interface) et met status='résolu'
- Si pas de réponse humaine sous 4h → bot envoie 'Nous revenons vers vous au plus vite' automatiquement
- Reset automatique du status='normal' après résolution ou après 24h d'inactivité
Créer vos premiers templates de messages (messages sortants)
Les messages que vous envoyez en dehors d'une fenêtre de 24h (après la dernière interaction du client) doivent obligatoirement utiliser des templates pré-approuvés par Meta. Les messages libres (sans template) ne fonctionnent que dans les 24h suivant le dernier message du client.
Procédure de création et validation d'un template :
- Dans 360dialog Dashboard → Templates → Create Template
- Choisissez une catégorie : MARKETING, UTILITY ou AUTHENTICATION
- Rédigez votre template en français avec des variables entre doubles accolades : 'Bonjour {{1}}, votre rendez-vous du {{2}} à {{3}} est confirmé.'
- Soumettez pour validation — délai Meta : 24 à 72h
- Une fois approuvé, appelez-le depuis n8n avec les valeurs de substitution dans le corps JSON
- Catégorie UTILITY (confirmation RDV, suivi commande) → validation plus rapide et moins de restrictions
Erreurs fréquentes et comment les résoudre
Problèmes courants :
- Webhook non déclenché : vérifiez que votre workflow n8n est bien activé (toggle vert) et que l'URL webhook est correctement saisie dans 360dialog. n8n doit être accessible depuis internet (pas depuis localhost).
- Erreur 401 sur l'API 360dialog : votre API Key est incorrecte ou expirée. Régénérez-la dans 360dialog Dashboard → Settings → API Keys.
- Message non reçu côté client : le numéro destinataire doit avoir WhatsApp installé. Testez avec votre propre numéro personnel d'abord.
- Template rejeté par Meta : les templates marketing avec des offres promotionnelles sont plus souvent rejetés. Reformulez en UTILITY (information transactionnelle) si possible.
- Boucle infinie (le bot répond à ses propres messages) : filtrez les messages entrants — ignorez si messages[0].from === votre_numero_api.
FAQ — n8n + WhatsApp
Combien coûte cette configuration par mois ?
Pour une PME avec 200 conversations/mois : VPS n8n ~15€ + 360dialog ~10€ de conversations (0,05€/conversation) + numéro virtuel ~3€ = environ 28€/mois. Comparez à 100-200€/mois pour un SaaS clé en main. L'économie est significative à partir de 50 conversations/mois.
Peut-on utiliser n8n Cloud à la place d'un VPS ?
Oui. n8n Cloud (cloud.n8n.io) propose un plan Starter à 20€/mois qui inclut l'hébergement et la gestion des mises à jour. L'URL webhook est fournie directement. C'est l'option recommandée si vous ne voulez pas gérer l'infrastructure. Le plan Starter suffit pour la plupart des PME (5 000 exécutions/mois).
Est-ce que ce tutoriel fonctionne avec Twilio à la place de 360dialog ?
Oui, la logique est identique. Twilio a des headers d'authentification différents et ses propres endpoints API, mais le principe webhook → n8n → réponse est le même. n8n dispose même d'un nœud Twilio natif qui simplifie la configuration. 360dialog reste notre recommandation pour les PME françaises (serveurs UE, tarification prévisible, bonne documentation).
Vous préférez qu'on le configure pour vous ? On livre un chatbot fonctionnel en 2 semaines.WhatsApp & TelegramCe tutoriel vous a montré la mécanique. Si vous voulez un chatbot WhatsApp opérationnel sans passer 2 jours à le configurer, HGO Automation le fait pour vous — clé en main, connecté à votre CRM, livré en 2 semaines.
Planifier un appel gratuit