Se connecterCommencer l’essai gratuit
Meta Tech Provider

Répondre aux messages WhatsApp avec une app Dify

Faites pointer le webhook du numéro vers un petit récepteur, par exemple un workflow n8n ou une route dans votre propre code, qui transmet chaque message à la Send Chat Message API de Dify et renvoie la réponse via la Cloud API. Dans Dify, le serveur MCP d'EasyCoexistence peut être ajouté comme outil pour que l'agent agisse directement sur le numéro.

JSON only

Un Webhook Trigger Dify encapsule dans du JSON tout corps de réponse qui n'en est pas, il ne peut donc pas renvoyer le challenge brut de Meta.

POST /chat-messages

L'appel de la Service API de Dify qui envoie un message utilisateur à une app de chat et renvoie sa réponse.

OAuth

Les outils MCP de Dify obtiennent leurs identifiants OAuth par enregistrement dynamique de client, activé par défaut.

Meta peut-il envoyer les messages WhatsApp directement à Dify ?

Pas de manière à finaliser la poignée de main. Avant de livrer quoi que ce soit, Meta appelle la destination avec un GET et attend la valeur hub.challenge en corps de réponse brut. Le Webhook Trigger de Dify n'accepte qu'une seule méthode HTTP par trigger, et sa documentation indique qu'un corps de réponse non JSON est converti automatiquement en JSON : OK revient donc sous forme d'objet message. Le challenge ne peut jamais être renvoyé à l'identique, et Meta ne commence jamais à livrer.

Il faut donc placer un petit élément devant. Un nœud Webhook n8n, une route en Python ou Node, ou une fonction serverless répond au GET, accepte le POST et transmet le texte à Dify. C'est aussi ce récepteur qui vérifie le long secret aléatoire contenu dans l'URL du webhook, car l'en-tête X-Hub-Signature-256 est signé avec l'app secret du Tech Provider et ne peut pas être validé par le client.

Comment le récepteur dialogue-t-il avec l'app Dify ?

Avec un seul appel à la Service API de Dify : POST /chat-messages, authentifié par la clé d'API de l'app. Le corps contient query, le texte du client, et user, un identifiant que vous définissez. Utilisez le numéro WhatsApp de l'expéditeur comme user, et conservez le conversation_id renvoyé par Dify pour que le message suivant de la même personne poursuive la même conversation.

response_mode compte. Le mode blocking répond une fois la réponse complète, et la documentation de Dify avertit que sur Dify Cloud une longue génération peut être coupée par le proxy en bordure. Les apps de type Agent ne prennent en charge que le streaming, et une requête blocking échoue avec une erreur 400. Un récepteur qui lit le flux et envoie un seul message WhatsApp à la fin est la forme la plus robuste.

La réponse repart ensuite sous forme de message texte via la Cloud API vers le même numéro, sans frais dans la fenêtre de 24 heures ouverte par le message du client.

1MetaDelivers the message to your receiver
2ReceiverChecks the URL secret, answers 200
3DifyPOST /chat-messages with user = sender
4Cloud APISends the answer to the customer

Qu'apporte le serveur MCP dans Dify ?

La possibilité, pour un agent Dify, d'agir sur le numéro sans que vous câbliez chaque appel. Dify se connecte aux serveurs MCP en HTTP et, par défaut, s'enregistre auprès du serveur via l'enregistrement dynamique de client OAuth, ce que prend en charge le serveur MCP d'EasyCoexistence. Ajoutez-le dans Tools, connectez-vous une fois, et l'agent obtient les outils : lister les numéros, vérifier la santé d'un numéro, envoyer un message, envoyer un template approuvé, lire le statut d'un template.

C'est le bon endroit pour le travail proactif : un workflow Dify qui relance le lendemain doit utiliser send_template, car un texte libre hors de la fenêtre renvoie l'erreur 131047, et les descriptions des outils le précisent au modèle.

Ce que MCP ne peut pas faire, c'est réveiller Dify quand un client écrit. Le protocole fonctionne en requête et réponse : les messages entrants continuent donc d'arriver par le webhook et le récepteur placé devant.

Erreurs courantes

  • Utiliser l'URL d'un Webhook Trigger Dify comme destination du webhook. Le challenge revient encapsulé dans du JSON et Meta ne vérifie jamais l'endpoint.
  • Envoyer une requête blocking à une app Dify de type Agent. Ces apps ne prennent en charge que le streaming, et l'appel échoue avec une erreur 400.
  • Utiliser une nouvelle valeur de user à chaque message. Dify rattache les conversations à user : chaque message ouvre alors une nouvelle conversation sans mémoire.
Faire cela avec EasyCoexistence

Connectez le numéro sur easycoexistence.com, faites pointer la destination du webhook vers votre récepteur et ajoutez le serveur MCP à Dify pour les actions de l'agent. À partir de US$ 9 par numéro et par mois, jusqu'à US$ 1 à mesure que vous ajoutez des numéros, avec les 3 premiers jours gratuits.

Questions fréquemment posées

Dify dispose-t-il d'un canal WhatsApp ?

Pas dans sa documentation. Une app Dify est accessible via sa Service API : WhatsApp s'y connecte donc par un récepteur qui appelle cette API.

n8n peut-il servir de récepteur ?

Oui. Un nœud Webhook reçoit, un nœud HTTP Request appelle Dify, et un second nœud HTTP Request envoie la réponse via la Cloud API.

L'équipe peut-elle toujours répondre depuis le téléphone ?

Oui. Coexistence maintient l'app WhatsApp Business active sur le numéro, et les réponses envoyées depuis le téléphone parviennent au récepteur sous forme d'événements echo.

EasyCoexistence voit-il la conversation ?

Non. Meta livre directement à votre récepteur et le contenu des messages n'est jamais stocké chez nous. Le serveur MCP lit l'état du compte et des numéros.

Poursuivre la lecture

Prêt à commencer ?

Configurez WhatsApp Coexistence en quelques minutes, pas en quelques mois. L’application continue de fonctionner sur le téléphone.

Commencer l'essai gratuit

Vérifié le

Dify sur WhatsApp, Cloud API officielle