Belangrijkste punten
- Bird's Programmable Conversations API bundelt WhatsApp, Messenger en SMS in één communicatielaag, waardoor multi-channel botontwikkeling eenvoudiger wordt.
- Je kunt snel een prototype van een WhatsApp to-do-lijstbot bouwen met webhooks en eenvoudige POST-requests.
- Tools zoals ngrok stellen je in staat je lokale server beschikbaar te maken voor webhook-tests zonder complexe hostingconfiguratie.
- De API verwerkt gesprekken via meerdere kanalen, zodat je één logicabasis hebt voor WhatsApp, WeChat en andere apps.
- Gebruik het archiveConversation-endpoint om gesprekken te sluiten of “topics,” ideaal voor support- of workflowtracking.
- De botlogica kan gelijktijdige gesprekken veilig in het geheugen beheren met een eenvoudige datastructuur.
- Dezelfde webhook-handler werkt voor alle kanalen. Bird routeert antwoorden automatisch op basis van het oorspronkelijke conversation-ID.
Bird lanceerde onlangs Programmable Conversations. Hiermee kunnen bedrijven communicatieplatforms zoals WhatsApp, Messenger en SMS in hun systemen integreren, met één enkele API.
Ik wilde het uitproberen en bouwde daarom een WhatsApp-bot met een to-do-lijst, want wie heeft er geen geautomatiseerde to-do-lijst nodig om de dag te organiseren? Het klinkt misschien ingewikkeld, maar het was eigenlijk eenvoudig, en ik vertel je er graag alles over.
Ik werk bij MessageBird, dus ik kon meteen aan de slag. Als je dit zelf wilt proberen, moet je vroege toegang aanvragen. Maar zodra je een WhatsApp-kanaal hebt ingesteld, kun je inloggen op het Dashboard op de MessageBird-website en beginnen.
Je WhatsApp-botomgeving opzetten
Het eerste wat ik deed was de docs lezen. Ik leerde dat ik een webhook moest gebruiken om berichten van de bot te ontvangen. Dat betekende dat mijn bot bereikbaar moest zijn vanaf het internet. Bij het bouwen van API's zoals deze is het belangrijk om best practices voor API-versiebeheer te volgen voor onderhoudbaarheid. Omdat ik net begon met coderen, besloot ik ngrok te gebruiken. Het maakt een tunnel van het publieke internet naar je dierbare localhost-poort 5007. Aan de slag!
ngrok http 5007 -region eu -subdomain todobot
Je webhook aanmaken en Bird koppelen
Vervolgens moest ik de Programmable Conversations API aanroepen om de webhook aan te maken. Het is een POST naar https://conversations.messagebird.com/v1/webhooks en ziet er ongeveer zo uit:
Mooi. Nu gaat de Conversations API een POST-request doen naar:
https://todobot.eu.ngrok.io/create-hook telkens wanneer er een nieuw bericht wordt aangemaakt op het WhatsApp-kanaal dat je eerder hebt ingesteld.
Zo ziet een webhook-payload eruit:
We willen die berichten beantwoorden. Laten we beginnen met ze te echoën, goed?
Antwoorden versturen en berichten verwerken
Nu het interessante deel. Doe een POST-request naar:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages om het verzoek te beantwoorden.
Klaar. Dit is alles wat je nodig hebt om een bot te maken die zich gedraagt als een mens van 5 jaar oud.
Dit is waarom het gebruik van Bird's Conversations API de ontwikkeling van WhatsApp-bots snel en schaalbaar maakt:
| Functie | Wat het oplost |
|---|---|
| Unified conversation-ID | Eén thread aanhouden over apps zoals WhatsApp, WeChat, Messenger |
| Eén API voor alle kanalen | Botlogica hergebruiken zonder per platform te herschrijven |
| Webhook-gestuurde automatisering | Snelle afhandeling van antwoorden zonder polling |
| Archiveren + heropenen van onderwerpen | Supportgeschiedenis en workflows organiseren |
| Concurrency-veilige structuur | Meerdere chats tegelijk betrouwbaar afhandelen |
Laten we nu doorzetten en de volledige to-do-lijst bouwen. Pas eerst de functie createHookHandler iets aan zodat die de nieuwe functie handleMessage aanroept in plaats van respond.
handle zal de berichten op eenvoudige wijze parsen, wat werk doen en het antwoord kiezen. Laten we naar het “add”-commando kijken:
Hier stellen we in: list := manager.fetch(whp.Conversation.ID). In feite is “manager” een concurrency-veilige map die conversation-ID's koppelt aan to-do-lijsten.
Een to-do-lijst is een concurrency-veilige string-slice. Alles in het geheugen!
Gesprekken archiveren en je bot opschalen
Nog iets belangrijks! Je kunt gesprekken archiveren. In sommige toepassingen, zoals CRM's, is het belangrijk om bepaalde interacties bij te houden, bijvoorbeeld om de effectiviteit van klantenservicemedewerkers te meten. Met de Conversations API kun je een gesprek archiveren om het onderwerp te “close”. Als de gebruiker/klant een nieuw bericht stuurt, opent de Conversations API automatisch een nieuw onderwerp.
Gesprekslevenscyclus beheren
Door een PATCH-request naar https://conversations.messagebird.com/v1/conversations/{id} te doen met de juiste status in de body kun je het gesprek met dat ID archiveren. We doen dit met het “bye”-commando:
archiveConversation doet het PATCH-request en manager.close(whp.Conversation.ID) verwijdert het to-do-lijstgesprek.
Maar Programmable Conversations is een omni-channel oplossing. Wat als je de code van de bot wilt hergebruiken voor een ander platform, zoals WeChat? Deze multi-channel aanpak is onderdeel van een strategie om aanvragen naar goedkopere kanalen af te leiden. Hoe pak je dat aan?
Maak gewoon een nieuwe webhook aan voor dat kanaal! Een webhook die requests stuurt naar dezelfde https://todobot.eu.ngrok.io/create-hook-url die we voor WhatsApp gebruikten!
Dit werkt omdat de handlercode altijd het conversationID uit de webhook-payload gebruikt om berichten te beantwoorden in plaats van een hardcoded channelID. MessageBird's Conversations API bepaalt automatisch het kanaal van het gesprek om je bericht over te versturen.
Wil je je eigen bot bouwen? Bekijk de volledige code op GitHub: Wabot op GitHub, vraag vroege toegang tot WhatsApp aan door de WhatsApp-pagina te bezoeken en op de knop Contact Sales te klikken om het formulier in te vullen. Veel botplezier!
Veelgestelde vragen
Hoe moeilijk is het om een WhatsApp-bot te bouwen met Bird's API?
Het is verrassend eenvoudig. Met een webhook en een paar API-aanroepen kun je binnen enkele minuten een functionele bot bouwen die berichten leest en beantwoordt.
Heb ik een speciale configuratie nodig om berichten te ontvangen?
Ja, de bot moet bereikbaar zijn vanaf het internet. Tools zoals ngrok helpen een beveiligde tunnel vanaf je lokale machine te maken.
Kan ik dezelfde codebase gebruiken voor verschillende berichtenapps?
Absoluut. De Conversations API abstraheert kanalen, zodat je bot op WhatsApp, WeChat of Messenger kan draaien met identieke logica.
Hoe sluit of reset ik een chatthread?
Stuur een PATCH-request naar het endpoint van het gesprek met de juiste status om het te archiveren. Een nieuw bericht opent automatisch een nieuw gesprek.
Waar kan ik voorbeeldcode vinden?
A: De volledige werkende demo, Wabot op GitHub, toont de implementatie van berichtverwerking, concurrency en archivering.
