WhatsApp-berichten versturen vanuit elk systeem met een webhook
Uw webshop, CRM of boekingstool weet al wanneer er een bestelling binnenkomt, een betaling mislukt of een afspraak wordt gemaakt. Met een webhook maakt u van elk van die gebeurtenissen een WhatsApp-bericht, zonder dat u zelf hoeft te programmeren. Zo plant, beveiligt en test u het.
MonoChat-team Bijgewerkt: 8 min leestijd
Op deze pagina
Om een WhatsApp-bericht te versturen wanneer er iets gebeurt in een ander systeem, richt u de webhook van dat systeem op een ontvanger die de klant op telefoonnummer opzoekt en een goedgekeurd WhatsApp-sjabloon verstuurt. Uw webshop, CRM of boekingstool stuurt al webhooks bij bestellingen, betalingen en afspraken. Het werk zit in het kiezen welke gebeurtenissen een bericht verdienen, het schrijven van de sjablonen, het beveiligen van de URL en het testen met echte verzoeken voordat klanten iets te zien krijgen.
Deze gids behandelt de planning, de WhatsApp-regels die daarop van invloed zijn en hoe u het in MonoChat bouwt met een flow die start vanaf zijn eigen webhook-URL.
Wat een webhook is, en wat niet
Een webhook is een HTTP-verzoek dat een systeem naar een door u opgegeven URL stuurt wanneer er een gebeurtenis plaatsvindt. Shopify kan er een sturen wanneer een bestelling wordt aangemaakt, WooCommerce wanneer een bestelling wordt bijgewerkt, een CRM wanneer een deal naar een volgende fase gaat en een boekingstool wanneer een afspraak wordt gemaakt. Het verzoek bevat de details van de gebeurtenis, meestal als JSON: een bestelnummer, een bedrag, de naam van de klant en, voor WhatsApp het belangrijkst, een telefoonnummer.
Een webhook stuurt zelf niets naar de klant. Er moet iets zijn dat het verzoek ontvangt, beslist wat ermee gebeurt en de WhatsApp Business API aanroept. Dat “iets” is code die u zelf schrijft en host, of een automatiseringsplatform dat u een webhook-URL geeft en waarmee u de rest zonder code bouwt.
Welke gebeurtenissen een WhatsApp-bericht verdienen
Niet elke gebeurtenis is een bericht waard. Een klant die vijf meldingen krijgt voor één bestelling, negeert ze op den duur allemaal. Kies de momenten waarop klanten echt wachten:
| Gebeurtenis | Bericht | Sjablooncategorie |
|---|---|---|
| Bestelling aangemaakt of betaald | Bevestiging met het bestelnummer en wat er nu gebeurt | Utility |
| Betaling mislukt of in behandeling | Een korte melding en een manier om opnieuw te betalen | Utility |
| Bestelling verzonden | Vervoerder en track-and-trace-link | Utility |
| Remboursbestelling aangemaakt | Een vraag: bestelling bevestigen, adres wijzigen of annuleren | Utility |
| Afspraak gemaakt, gewijzigd of morgen | Datum, tijd, locatie en een manier om te verzetten | Utility |
| Deal gewonnen of verloren in het CRM | Overdracht aan de accountmanager, of een vraag om feedback | Utility of marketing, afhankelijk van de tekst |
| Verlaten winkelwagen | Een herinnering, eventueel met een aanbieding | Marketing |
Meta bepaalt de categorie op basis van wat het sjabloon zegt, niet op basis van het label dat u kiest. Een bericht over een specifieke bestelling, betaling of boeking is utility; alles wat promoot, iets aanbiedt of probeert te overtuigen is marketing, en daarvoor is toestemming nodig die ook marketing dekt. Onze voorbeelden van WhatsApp-sjablonen bevatten teksten voor de utility-gevallen hierboven.
De WhatsApp-regels die gelden
De meeste webhookberichten hebben een sjabloon nodig
Een servicevenster gaat open wanneer een klant u een bericht stuurt of belt, en duurt 24 uur vanaf het laatste bericht van de klant. Binnen dat venster kunt u vrij antwoorden; daarbuiten kunt u alleen vooraf goedgekeurde sjabloonberichten versturen. Gebeurtenissen in een webshop of CRM vallen zelden binnen dat venster, dus plan elk webhookbericht als sjabloon en dien de sjablonen ter beoordeling in voordat u iets inschakelt.
Het telefoonnummer moet bruikbaar zijn
De webhook moet een telefoonnummer bevatten dat WhatsApp kan bereiken: in internationaal formaat, met de landcode (dus 31 in plaats van de 0 aan het begin). Veel webshops laten klanten hun nummer invullen zoals ze willen, dus controleer een paar echte bestellingen. Een nummer zonder landcode is de meest voorkomende reden dat een test werkt en de productie niet.
De prijzen zijn op 1 oktober 2026 veranderd
Meta rekent sinds 1 juli 2025 per afgeleverd bericht. Sinds 1 oktober 2026 worden utility-sjablonen die binnen een open servicevenster worden verstuurd weer in rekening gebracht, na een periode waarin ze gratis waren, en krijgt elk zakelijk telefoonnummer 1.000 gratis serviceberichten per maand. De tarieven hangen af van de categorie en het land van de klant. In de praktijk kost een orderbevestiging geld, of de klant u nu kort geleden heeft geschreven of niet. Stuur dus de berichten die ertoe doen en sla de rest over. De prijsgids voor de WhatsApp API legt de tariefkaart uit.
Beveilig de webhook-URL
Iedereen die een webhook-URL kent, kan die aanroepen. Als die URL WhatsApp-berichten verstuurt, betekent een uitgelekte URL dat iemand anders uw klanten in uw naam kan berichten, of uw rekening kan laten oplopen. Drie gewoonten voorkomen dat:
- Vereis een secret. Het verzendende systeem zet het secret in een header, of ondertekent de body van het verzoek ermee (HMAC-SHA256), zodat de ontvanger kan controleren dat het verzoek onderweg niet is gewijzigd. Verzoeken zonder geldig secret of geldige handtekening worden geweigerd.
- Eén URL per doel. Een bestelflow en een boekingsflow horen verschillende URL’s en secrets te hebben, zodat u er één kunt vervangen zonder de andere aan te raken.
- Let op fouten aan de verzendende kant. WooCommerce schakelt een webhook uit na meer dan vijf opeenvolgende mislukte afleveringen, en Shopify verwijdert een webhookabonnement waarvan de bestemming herhaaldelijk een ander antwoord dan 200 geeft. Een ontvanger die uitstaat of verkeerd is ingesteld, kan uw meldingen ongemerkt stilleggen.
Waar u de webhook aanmaakt in Shopify en WooCommerce
- Shopify: Settings › Notifications › Webhooks, daarna Create webhook. Kies één event (Order creation, Order payment, Fulfillment creation en nog veel meer), JSON als formaat en een
https://-URL. Het event kan na het aanmaken niet meer worden gewijzigd, dus maak één webhook per event. Met Send test controleert u of hij de URL bereikt. - WooCommerce: WooCommerce › Settings › Advanced › Webhooks, daarna Add webhook. Kies een topic (order-, customer-, coupon- of product-events), vul de delivery URL en een secret in; WooCommerce zet een hash van de payload, gemaakt met dat secret, in de headers van het verzoek.
- Een CRM of boekingstool: zoek naar “webhooks”, “automations” of “outgoing integrations”. Biedt het alleen een vast formaat, controleer dan in welk veld het telefoonnummer van de klant staat voordat u iets bouwt.
Test met echte verzoeken voordat u live gaat
Webhookpayloads zijn lang en elk platform noemt zijn velden anders: het telefoonnummer kan phone, billing.phone of customer.default_address.phone heten. Ga niet gokken. Stuur een echt testverzoek, bekijk wat er binnenkwam en koppel de velden op basis daarvan. Test daarna de randgevallen:
- een bestelling zonder telefoonnummer, of met een nummer zonder landcode;
- dezelfde gebeurtenis die twee keer binnenkomt, wat platforms doen wanneer ze opnieuw proberen;
- een bestelling om 3 uur ‘s nachts, als u liever hebt dat het bericht tot de ochtend wacht;
- een klant die op de melding reageert, zodat een medewerker of een AI-assistent klaarstaat om te antwoorden.
Zo doet u het in MonoChat
MonoChat is een officiële Meta Business Partner. Sinds versie 3.8.37 (oktober 2026) kan een flow starten vanaf een webhook, zodat uw webshop of CRM WhatsApp-berichten in gang kan zetten zonder dat u zelf hoeft te programmeren.
1. Start de flow met een node Webhook ontvangen. Voeg hem toe vanuit de event-nodes. Hij krijgt een eigen webhook-URL en secret. Kies het kanaal, bijvoorbeeld uw WhatsApp-nummer, en het Pad van identiteit: waar het telefoonnummer van de klant in het verzoek staat (standaard request.body.phone). MonoChat zoekt de klant op dat kanaal, of maakt hem aan, en voert de flow voor hem uit. De node antwoordt de afzender met 202 zodra de flow in de wachtrij staat, en met een duidelijke foutmelding wanneer het kanaal of het telefoonnummer niet wordt gevonden.
2. Zet Secret vereisen aan. De afzender kan het secret in de tokenheader zetten (standaard Authorization, los of als Bearer <secret>) of een HMAC-SHA256-handtekening van de ruwe body meesturen in de handtekeningheader (standaard X-Signature). Beide headernamen kunt u aanpassen aan het verzendende systeem.
3. Vang een echt verzoek op. Zet /test achter de webhook-URL en laat de testwebhook van uw webshop daarnaartoe wijzen. Zolang de instellingen van de node open staan, verschijnt het verzoek onder Ontvangen verzoek met body, query en headers, zonder dat de flow start. Gebruik het om de paden te vinden die u nodig hebt en sla ze op als flowvariabelen, bijvoorbeeld request.body.orderId als orderId.
4. Verstuur het bericht. Voeg een node Sjabloonbericht verzenden toe met uw goedgekeurde sjabloon en vul de variabelen met de flowvariabelen: het bestelnummer, het bedrag, de track-and-trace-link. Gebruik voorwaarden om per status een ander sjabloon te sturen.
5. Roep zo nodig uw eigen systeem aan. Een node HTTP-verzoek kan extra gegevens opvragen in uw eigen systeem, of het antwoord van de klant terugschrijven, bijvoorbeeld “bevestigd” bij een remboursbestelling. Hij gaat verder via Uitvoer wanneer de aanroep slaagt en via Bij mislukking wanneer dat niet zo is, zodat u een alternatief bericht kunt sturen of het gesprek aan een medewerker kunt toewijzen.
Wanneer de klant antwoordt, staat het gesprek in dezelfde MonoChat-inbox als de rest van uw WhatsApp-, Instagram- en Messenger-chats, waar uw team of een AI-assistent het kan overnemen. Flows bouwt u met workflowautomatisering.
Twee andere routes, afhankelijk van wie het werk doet:
- Uw ontwikkelaars roepen al een API aan. De app WhatsApp Template API verstuurt een goedgekeurd sjabloon met één API-aanroep, en antwoorden komen in de inbox terecht.
- U werkt met Shopify en wilt bestelgegevens in de chat. Shopify-chatautomatisering synchroniseert producten en bestellingen, zodat het team en de AI-assistent vragen over bestellingen kunnen beantwoorden.
Om te beginnen maakt u een gratis account aan op app.monochat.ai, koppelt u uw WhatsApp-nummer en vergelijkt u de abonnementen op de prijzenpagina.
Bronnen
- Meta for Developers: Send messages and the customer service window
- Meta for Developers: Pricing on the WhatsApp Business Platform
- Meta for Developers: Template categorization
- Shopify Helpcentrum: Webhooks
- WooCommerce-documentatie: Webhooks
- MonoChat-helpcentrum: flows, de nodes Webhook ontvangen en HTTP-verzoek
Pas dit toe in de praktijk met MonoChat