
Bird heeft onlangs Programmable Conversations gelanceerd. Hiermee kunnen bedrijven communicatieplatforms zoals WhatsApp, Messenger en SMS in hun systemen integreren — met behulp van een enkele API.
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 eens proberen, dus bouwde ik een WhatsApp-bot takenlijst, omdat wie heeft er nou geen geautomatiseerde takenlijst nodig om hun dag te organiseren? Het klinkt misschien ingewikkeld, maar het was eigenlijk eenvoudig en ik wil jullie er alles over vertellen.
Nu werk ik bij MessageBird, dus ik kon er meteen induiken en beginnen met bouwen. Als je dit probeert, moet je wel vroegtijdige toegang aanvragen. Maar zodra je een WhatsApp-kanaal hebt opgezet, kun je inloggen op het Dashboard op de MessageBird-website en aan de slag gaan.
Het eerste dat ik deed, was de documentatie lezen. Ik leerde dat ik, om berichten van de bot te ontvangen, een webhook zou moeten gebruiken. Dit betekende dat mijn bot toegankelijk moest zijn vanaf het internet. Bij het bouwen van API's zoals deze is het belangrijk om de API-versionering beste praktijken te volgen voor onderhoudbaarheid. Omdat ik net begon met coderen, besloot ik ngrok te gebruiken. Het creëert een tunnel van het publieke internet naar je localhost poort 5007. Engage!
ngrok http 5007 -region eu -subdomain todobot
Vervolgens moest ik een oproep doen naar de Programmable Conversations API om de webhook te creëren. Het is een POST naar https://conversations.messagebird.com/v1/webhooks
en het ziet er ongeveer zo uit:
Mooi. Nu gaat de Conversations API een POST-verzoek doen naar:
https://todobot.eu.ngrok.io/create-hook
telkens wanneer er een nieuw bericht wordt gemaakt op het WhatsApp-kanaal dat je eerder hebt opgezet.
Dit is hoe een webhook-payload eruitziet:
We willen die berichten beantwoorden. Laten we beginnen met ze te echoën, wat zeg je?
Nu, voor het interessante gedeelte. Doe een POST-verzoek naar:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages
om het verzoek te beantwoorden.
Daar. Dit is alles wat je nodig hebt om een bot te maken die zich gedraagt als een 5-jarige mens.
Laten we nu een stap zetten richting het bouwen van de hele takenlijst. Pas eerst de createHookHandler-functie een beetje aan zodat het de nieuwe handleMessage-functie aanroept in plaats van antwoorden.
handle zal simpelweg de berichten parseren, wat werk doen en de reactie selecteren. Laten we eens kijken naar het “toevoegen”-commando:
Hier, stellen we in: list := manager.fetch(whp.Conversation.ID). In feite is “manager” een concurrency safe map die conversatie-ID's koppelt aan takenlijsten.
Een takenlijst is een concurrency safe string-slice. Alles in het geheugen!
Een ander belangrijk ding! Je kunt gesprekken archiveren. In sommige toepassingen, zoals CRM's, is het belangrijk om bepaalde interacties bij te houden — bijvoorbeeld om de effectiviteit van klantenservice medewerkers te volgen. De Conversations API stelt je in staat om een gesprek te archiveren om het onderwerp te “sluiten”. Als de gebruiker/klant een ander bericht stuurt, zal de Conversations API automatisch een nieuw onderwerp openen.
Ook. Door een PATCH-verzoek te doen naar https://conversations.messagebird.com/v1/conversations/{id}
met de juiste status in de body kun je het gesprek met die id archiveren. We doen dit met het “bye”-commando:
archiveConversation zal het PATCH-verzoek doen en manager.close(whp.Conversation.ID) zal het takenlijstgesprek verwijderen.
Maar hé, Programmable Conversations is een omni-channel oplossing. Wat als je de code van de bot opnieuw wilt gebruiken voor een ander platform, zoals WeChat? Deze multi-channel benadering is onderdeel van verwijzingsverzoeken naar goedkopere kanalen strategie. Hoe zou je dat aanpakken?
Creëer gewoon een nieuwe webhook voor dat kanaal! Een webhook die verzoeken stuurt naar dezelfde https://todobot.eu.ngrok.io/create-hook
url die we gebruikten voor WhatsApp!
Dit zal werken omdat de handlercode altijd de conversationID uit de webhook-payload gebruikt om de berichten te beantwoorden in plaats van een hardcoded channelID. MessageBird’s Conversations API zal automatisch het kanaal voor het gesprek bepalen om je bericht over te sturen.
Wil je je eigen bot bouwen? Bekijk de volledige code op Github: https://github.com/marcelcorso/wabot, vraag vroegtijdige 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 plezier met botten!