InloggenGratis proefperiode starten
Meta Tech Provider

WhatsApp-berichten beantwoorden met een Dify-app

Richt de webhook van het nummer naar een kleine ontvanger, zoals een n8n-workflow of een route in je eigen code, die elk bericht doorgeeft aan de Send Chat Message API van Dify en het antwoord terugstuurt via de Cloud API. In Dify kan de EasyCoexistence MCP-server als tool worden toegevoegd, zodat de agent zelf op het nummer kan handelen.

JSON only

Een Webhook Trigger van Dify verpakt een antwoordbody die geen JSON is in JSON, dus hij kan de ruwe challenge van Meta niet teruggeven.

POST /chat-messages

De Service API-aanroep van Dify die één gebruikersbericht naar een chatapp stuurt en het antwoord daarop teruggeeft.

OAuth

De MCP-tools van Dify halen OAuth-gegevens op via dynamic client registration, standaard ingeschakeld.

Kan Meta WhatsApp-berichten rechtstreeks naar Dify sturen?

Niet op een manier die de handshake afrondt. Voordat Meta iets aflevert, roept het de bestemming aan met een GET en verwacht het de waarde van hub.challenge terug als ruwe body van het antwoord. De Webhook Trigger van Dify accepteert per trigger één HTTP-methode, en volgens de documentatie wordt een antwoordbody die geen JSON is automatisch omgezet naar JSON, waardoor OK terugkomt als berichtobject. De challenge kan dus nooit exact worden teruggegeven, en Meta begint nooit met afleveren.

Daarom staat er iets kleins voor. Een n8n Webhook-node, een route in Python of Node, of een serverless functie beantwoordt de GET, accepteert de POST en geeft de tekst door aan Dify. In die ontvanger controleer je ook het lange willekeurige geheim in de webhook-URL, omdat de header X-Hub-Signature-256 is ondertekend met het app secret van de Tech Provider en door de klant niet kan worden gevalideerd.

Hoe praat de ontvanger met de Dify-app?

Met één aanroep naar de Service API van Dify: POST /chat-messages, geauthenticeerd met de API-sleutel van de app. De body bevat query, de tekst van de klant, en user, een identifier die je zelf bepaalt. Gebruik het WhatsApp-nummer van de afzender als user en bewaar de conversation_id die Dify teruggeeft, zodat het volgende bericht van dezelfde persoon hetzelfde gesprek voortzet.

response_mode is belangrijk. Blocking komt pas terug als het antwoord compleet is, en de documentatie van Dify waarschuwt dat op Dify Cloud een lange generatie door de edge-proxy kan worden afgekapt. Agent-apps ondersteunen alleen streaming, en een blocking-verzoek ernaartoe mislukt met 400. Een ontvanger die de stream leest en aan het einde één WhatsApp-bericht verstuurt, is de robuuste vorm.

Het antwoord gaat daarna als tekstbericht via de Cloud API naar hetzelfde nummer, en dat is gratis binnen het venster van 24 uur dat het bericht van de klant opende.

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

Wat voegt de MCP-server toe binnen Dify?

De mogelijkheid voor een Dify-agent om op het nummer te handelen zonder dat je elke aanroep zelf aanlegt. Dify maakt via HTTP verbinding met MCP-servers en registreert zich standaard bij de server via OAuth dynamic client registration, en dat ondersteunt de EasyCoexistence MCP-server. Voeg hem toe onder Tools, meld je één keer aan en de agent krijgt de tools: nummers weergeven, de status van een nummer controleren, een bericht sturen, een goedgekeurd template sturen, de status van een template lezen.

Dat is de juiste plek voor proactief werk: een Dify-workflow die de volgende dag opvolgt, moet send_template gebruiken, omdat vrije tekst buiten het venster foutcode 131047 geeft, en de toolbeschrijvingen zeggen dat tegen het model.

Wat MCP niet kan, is Dify wakker maken wanneer een klant schrijft. Het protocol werkt met verzoek en antwoord, dus inkomende berichten komen nog steeds binnen via de webhook en de ontvanger ervoor.

Veelgemaakte fouten

  • Een URL van een Dify Webhook Trigger gebruiken als webhook-bestemming. De challenge komt verpakt in JSON terug en Meta verifieert het endpoint nooit.
  • Een blocking-verzoek sturen naar een Dify Agent-app. Agent-apps ondersteunen alleen streaming en de aanroep mislukt met 400.
  • Bij elk bericht een nieuwe user-waarde gebruiken. Dify koppelt gesprekken aan user, dus elk bericht begint een nieuw gesprek zonder geheugen.
Dit doen met EasyCoexistence

Verbind het nummer op easycoexistence.com, richt de webhook-bestemming op je ontvanger en voeg de MCP-server toe aan Dify voor de acties van de agent. Vanaf US$ 9 per nummer per maand, aflopend tot US$ 1 naarmate je nummers toevoegt, met de eerste 3 dagen gratis.

Veelgestelde vragen

Heeft Dify een WhatsApp-kanaal?

Niet in de documentatie. Een Dify-app is bereikbaar via de Service API, dus WhatsApp koppel je via een ontvanger die die API aanroept.

Kan n8n de ontvanger zijn?

Ja. Een Webhook-node ontvangt, een eerste HTTP-node roept Dify aan en een tweede HTTP-node stuurt het antwoord via de Cloud API.

Kan het team nog vanaf de telefoon antwoorden?

Ja. Coexistence houdt de WhatsApp Business-app op het nummer werkend, en antwoorden vanaf de telefoon bereiken de ontvanger als echo-events.

Ziet EasyCoexistence het gesprek?

Nee. Meta levert rechtstreeks aan bij je ontvanger en de inhoud van berichten wordt bij ons nooit opgeslagen. De MCP-server leest de status van het account en de nummers.

Lees verder

Klaar om te beginnen?

Stel WhatsApp Coexistence in enkele minuten in, niet maanden. De app blijft op je telefoon werken.

Start je gratis proefperiode

Geverifieerd op

Dify op WhatsApp, officiële Cloud API