Envoyer des messages WhatsApp depuis n’importe quel système avec un webhook
Votre boutique, votre CRM ou votre outil de réservation sait déjà quand une commande est passée, qu’un paiement échoue ou qu’un rendez-vous est pris. Un webhook peut transformer chacun de ces événements en message WhatsApp, sans code de votre côté. Voici comment le préparer, le sécuriser et le tester.
Équipe MonoChat Mis à jour: 8 min de lecture
Sur cette page
Pour envoyer un message WhatsApp quand quelque chose se produit dans un autre système, faites pointer le webhook de ce système vers un récepteur qui retrouve le client grâce à son numéro de téléphone et lui envoie un modèle de message WhatsApp approuvé. Votre boutique, votre CRM ou votre outil de réservation déclenche déjà des webhooks pour les commandes, les paiements et les rendez-vous. Le vrai travail consiste à choisir les événements qui méritent un message, rédiger les modèles, sécuriser l’URL et tester avec de vraies requêtes avant que vos clients ne voient quoi que ce soit.
Ce guide couvre la préparation, les règles WhatsApp qui l’encadrent et la mise en place dans MonoChat avec un flow qui démarre depuis sa propre URL de webhook.
Ce qu’est un webhook, et ce qu’il n’est pas
Un webhook est une requête HTTP qu’un système envoie à une URL que vous lui indiquez quand un événement se produit. Shopify peut en envoyer un à la création d’une commande, WooCommerce à la mise à jour d’une commande, un CRM quand une opportunité change d’étape, un outil de réservation quand un rendez-vous est pris. La requête contient le détail de l’événement, le plus souvent en JSON : un numéro de commande, un montant, le nom du client et, ce qui compte le plus pour WhatsApp, un numéro de téléphone.
Un webhook n’envoie rien au client par lui-même. Il faut que quelque chose reçoive la requête, décide quoi en faire et appelle la WhatsApp Business API. Ce « quelque chose », c’est soit du code que vous écrivez et hébergez, soit une plateforme d’automatisation qui vous fournit une URL de webhook et vous laisse construire le reste sans code.
Quels événements méritent un message WhatsApp
Tous les événements ne valent pas un message. Un client qui reçoit cinq notifications pour une seule commande finit par toutes les ignorer. Choisissez les moments qu’il attend vraiment :
| Événement | Message | Catégorie du modèle |
|---|---|---|
| Commande créée ou payée | Confirmation avec le numéro de commande et la suite | Utilitaire |
| Paiement échoué ou en attente | Un mot bref et un moyen de payer à nouveau | Utilitaire |
| Commande expédiée | Transporteur et lien de suivi | Utilitaire |
| Commande en paiement à la livraison créée | Une question : confirmer la commande, changer l’adresse ou annuler | Utilitaire |
| Rendez-vous pris, modifié ou prévu demain | Date, heure, lieu et un moyen de le déplacer | Utilitaire |
| Opportunité gagnée ou perdue dans le CRM | Un passage de relais au chargé de compte, ou une demande d’avis | Utilitaire ou marketing, selon le texte |
| Panier abandonné | Une relance, éventuellement avec une offre | Marketing |
Meta décide de la catégorie d’après le contenu du modèle, pas d’après celle que vous choisissez. Un message sur une commande, un paiement ou une réservation précis est utilitaire ; tout ce qui fait la promotion, propose une offre ou cherche à convaincre relève du marketing et nécessite un consentement qui couvre le marketing. Nos exemples de modèles de message WhatsApp proposent des formulations pour les cas utilitaires ci-dessus.
Les règles WhatsApp qui s’appliquent
La plupart des messages déclenchés par webhook exigent un modèle
Une fenêtre de service client s’ouvre quand un client vous écrit ou vous appelle, et dure 24 heures à partir de son dernier message. À l’intérieur, vous répondez librement ; en dehors, vous ne pouvez envoyer que des modèles de message préapprouvés. Les événements d’une boutique ou d’un CRM tombent rarement dans cette fenêtre : prévoyez donc chaque message déclenché par webhook comme un modèle, et soumettez vos modèles à validation avant d’activer quoi que ce soit.
Le numéro de téléphone doit être exploitable
Le webhook doit transmettre un numéro que WhatsApp peut joindre : au format international, avec l’indicatif du pays. Beaucoup de boutiques laissent les clients saisir leur numéro comme ils veulent, alors vérifiez quelques vraies commandes. Un numéro sans indicatif est la raison la plus fréquente pour laquelle un test fonctionne et la production non.
Les tarifs ont changé le 1er octobre 2026
Meta facture chaque message délivré depuis le 1er juillet 2025. Depuis le 1er octobre 2026, les modèles utilitaires envoyés dans une fenêtre de service client ouverte sont de nouveau facturés, après une période de gratuité, et chaque numéro de téléphone professionnel dispose de 1,000 messages de service gratuits par mois. Les tarifs dépendent de la catégorie et du pays du client. Concrètement, une confirmation de commande coûte de l’argent, que le client vous ait écrit récemment ou non : envoyez les messages qui comptent et laissez tomber les autres. Le guide des tarifs de l’API WhatsApp Business détaille la grille tarifaire.
Sécuriser l’URL du webhook
Toute personne qui connaît une URL de webhook peut l’appeler. Si cette URL envoie des messages WhatsApp, une fuite permet à quelqu’un d’autre d’écrire à vos clients en votre nom, ou de faire grimper votre facture. Trois réflexes l’évitent :
- Exiger un secret. Le système émetteur ajoute le secret dans un en-tête, ou signe le corps de la requête avec lui (HMAC-SHA256) pour que le récepteur puisse vérifier que la requête n’a pas été modifiée en chemin. Les requêtes sans secret ou signature valide sont rejetées.
- Une URL par usage. Un flow de commandes et un flow de réservations doivent avoir des URL et des secrets différents, pour que vous puissiez renouveler l’un sans toucher à l’autre.
- Surveiller les échecs côté émetteur. WooCommerce désactive un webhook après plus de cinq échecs de livraison consécutifs, et Shopify supprime un abonnement webhook dont la destination renvoie à plusieurs reprises une réponse autre que 200. Un récepteur désactivé ou mal configuré peut stopper vos notifications sans que vous le remarquiez.
Où créer le webhook dans Shopify et WooCommerce
- Shopify : Settings › Notifications › Webhooks, puis Create webhook. Choisissez un événement (Order creation, Order payment, Fulfillment creation et bien d’autres), le format JSON et une URL en
https://. L’événement ne peut plus être modifié après la création du webhook : créez donc un webhook par événement. Send test vérifie qu’il atteint l’URL. - WooCommerce : WooCommerce › Settings › Advanced › Webhooks, puis Add webhook. Choisissez un topic (événements de commande, de client, de code promo ou de produit), saisissez l’URL de livraison et un secret ; WooCommerce ajoute aux en-têtes de la requête un hash du contenu calculé avec ce secret.
- Un CRM ou un outil de réservation : cherchez « webhooks », « automatisations » ou « intégrations sortantes ». S’il n’offre qu’un format fixe, vérifiez quel champ contient le numéro du client avant de construire quoi que ce soit.
Tester avec de vraies requêtes avant la mise en ligne
Les contenus de webhook sont longs et chaque plateforme nomme ses champs à sa façon : le numéro peut s’appeler phone, billing.phone ou customer.default_address.phone. Ne devinez pas. Envoyez une vraie requête de test, regardez ce qui est arrivé et associez les champs à partir de là. Testez ensuite les cas limites :
- une commande sans numéro de téléphone, ou avec un numéro sans indicatif ;
- le même événement livré deux fois, ce que font les plateformes quand elles réessaient ;
- une commande passée à 3 h du matin, si vous préférez que le message attende le matin ;
- un client qui répond à la notification, pour qu’une personne ou un assistant IA soit prêt à lui répondre.
Comment le faire dans MonoChat
MonoChat est un Meta Business Partner officiel. Depuis la version 3.8.37 (octobre 2026), un flow peut démarrer depuis un webhook : votre boutique ou votre CRM peut déclencher des messages WhatsApp sans code de votre côté.
1. Démarrez le flow avec un nœud Webhook reçu. Ajoutez-le depuis les nœuds d’événement. Il reçoit sa propre URL de webhook et son propre secret. Choisissez le canal, par exemple votre numéro WhatsApp, et le Chemin de l’identité, c’est-à-dire l’endroit de la requête où se trouve le numéro du client (request.body.phone par défaut). MonoChat retrouve le client sur ce canal, ou le crée, et exécute le flow pour lui. Le nœud répond à l’émetteur par 202 dès que le flow est mis en file d’attente, et par une erreur explicite si le canal ou le numéro est introuvable.
2. Activez Exiger un secret. L’émetteur peut placer le secret dans l’en-tête du jeton (Authorization par défaut, seul ou sous la forme Bearer <secret>) ou envoyer une signature HMAC-SHA256 du corps brut dans l’en-tête de signature (X-Signature par défaut). Les deux noms d’en-tête peuvent être adaptés au système émetteur.
3. Capturez une vraie requête. Ajoutez /test à la fin de l’URL du webhook et pointez le webhook de test de votre boutique dessus. Tant que les paramètres du nœud sont ouverts, la requête apparaît sous Requête reçue avec son corps, sa query et ses en-têtes, sans démarrer le flow. Servez-vous-en pour trouver les chemins dont vous avez besoin, puis enregistrez-les comme variables de flow, par exemple request.body.orderId sous le nom orderId.
4. Envoyez le message. Ajoutez un nœud Envoyer un message modèle avec votre modèle approuvé, et remplissez ses variables à partir des variables de flow : numéro de commande, montant, lien de suivi. Utilisez des conditions pour envoyer des modèles différents selon le statut.
5. Renvoyez l’information si besoin. Un nœud Requête HTTP peut aller chercher plus de données dans votre propre système, ou y écrire la réponse du client, par exemple « confirmée » sur une commande en paiement à la livraison. Il continue sur Sortie quand l’appel réussit et sur En cas d’échec sinon, ce qui vous permet d’envoyer un message de repli ou d’attribuer la conversation à une personne.
Quand le client répond, la conversation arrive dans la même boîte de réception d’équipe MonoChat que vos autres conversations WhatsApp, Instagram et Messenger, où votre équipe ou un assistant IA peut prendre le relais. Pour construire des flows, voir l’automatisation des workflows.
Deux autres options, selon qui doit faire le travail :
- Vos développeurs appellent déjà une API. L’application WhatsApp Template API envoie un modèle approuvé en un seul appel API, et les réponses arrivent dans la boîte de réception.
- Vous êtes sur Shopify et voulez les données de commande dans le chat. L’automatisation du chat Shopify synchronise produits et commandes pour que l’équipe et l’assistant IA puissent répondre aux questions sur les commandes.
Pour commencer, créez un compte gratuit sur app.monochat.ai, connectez votre numéro WhatsApp et comparez les forfaits sur la page des tarifs.
Sources
- Meta for Developers : envoyer des messages et la fenêtre de service client
- Meta for Developers : tarification de la WhatsApp Business Platform
- Meta for Developers : catégorisation des modèles
- Centre d’aide Shopify : Webhooks
- Documentation WooCommerce : Webhooks
- Centre d’aide MonoChat : les flows et les nœuds Webhook reçu et Requête HTTP
Mettez-le en pratique avec MonoChat