
Bird ha lanzado recientemente Conversaciones Programables. Permite a las empresas combinar plataformas de comunicación como WhatsApp, Messenger y SMS en sus sistemas, utilizando una única API.
Bird lanzó recientemente Programmable Conversations. Permite a las empresas combinar plataformas de comunicación como WhatsApp, Messenger y SMS en sus sistemas, utilizando una única API.
Quise probarlo, así que construí un bot de lista de tareas para WhatsApp, porque ¿quién no necesita una lista de tareas automatizada para ayudar a organizar su día? Puede parecer complicado, pero en realidad fue fácil, y me gustaría contarte todo al respecto.
Ahora, trabajo en MessageBird, así que pude empezar a construir de inmediato. Si pruebas esto, necesitarás solicitar acceso anticipado. Pero una vez que tengas configurado un canal de WhatsApp, puedes iniciar sesión en el Dashboard en el sitio web de MessageBird y comenzar.
Lo primero que hice fue leer la documentación. Aprendí que, para recibir mensajes del bot, tendría que usar un webhook. Esto significaba que mi bot necesitaría ser accesible desde Internet. Al construir APIs como esta, es importante seguir las mejores prácticas de versionado de API para el mantenimiento. Como recién empezaba a codificarlo, decidí usar ngrok. Crea un túnel desde Internet público hasta tu querido puerto localhost 5007. ¡Activa!
ngrok http 5007 -region eu -subdomain todobot
Luego, necesité hacer una llamada a la API de Programmable Conversations para crear el webhook. Es un POST a https://conversations.messagebird.com/v1/webhooks
y se ve algo así:
Genial. Ahora la API de Conversations va a hacer una solicitud POST a:
https://todobot.eu.ngrok.io/create-hook
cada vez que se cree un nuevo mensaje en el canal de WhatsApp que configuraste antes.
Así es como se ve una carga útil de webhook:
Queremos responder a esos mensajes. Comencemos por repetirlos, ¿qué te parece?
Ahora, la parte interesante. Haz una solicitud POST a:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages
para responder a la solicitud.
Ahí lo tienes. Esto es todo lo que necesitas para crear un bot que actúe como un humano de 5 años.
Ahora, avancemos hacia la construcción de la lista de tareas completa. Primero, modifica un poco la función createHookHandler para que llame a la nueva función handleMessage en lugar de responder.
handle analizará de manera simplista los mensajes, hará algún trabajo y eligirá la respuesta. Veamos el comando “añadir”:
Aquí, configuramos: list := manager.fetch(whp.Conversation.ID). Básicamente, “manager” es un mapa seguro para concurrencia que asigna IDs de conversaciones a listas de tareas.
Una lista de tareas es un slice seguro para concurrencia de strings. ¡Todo en memoria!
¡Otra cosa importante! Puedes archivar conversaciones. En algunas aplicaciones, como los CRM, es importante hacer seguimiento de ciertas interacciones, por ejemplo, para seguir la efectividad de los empleados de atención al cliente. La API de Conversations te permite archivar una conversación para “cerrar” el tema. Si el usuario/cliente envía otro mensaje, la API de Conversations abrirá un nuevo tema automáticamente.
También. Hacer una solicitud PATCH a https://conversations.messagebird.com/v1/conversations/{id}
con el estado correcto en el cuerpo te permite archivar la conversación con ese id. Hacemos esto con el comando “adiós”:
archiveConversation hará la solicitud PATCH y manager.close(whp.Conversation.ID) eliminará la conversación de la lista de tareas.
Pero oye, Programmable Conversations es una solución omnicanal. ¿Qué pasaría si quisieras reutilizar el código del bot para una plataforma diferente, como WeChat? Este enfoque multicanal es parte de la estrategia de desviar consultas a canales de menor costo. ¿Cómo lo harías?
¡Simplemente crea un nuevo webhook para dirigir ese canal! ¡Un webhook que envíe solicitudes a la misma URL https://todobot.eu.ngrok.io/create-hook
que usamos para WhatsApp!
Esto funcionará porque el código del manejador siempre usa el conversationID de la carga útil del webhook para responder los mensajes en lugar de un channelID codificado. La API de Conversations de MessageBird determinará automáticamente el canal para la conversación para enviar tu mensaje.
¿Quieres construir tu propio bot? Echa un vistazo al código completo en Github: Wabot en Github, solicita acceso anticipado a WhatsApp visitando la página de WhatsApp y haciendo clic en el botón Contactar Ventas para completar el formulario. ¡Feliz desarrollo de bots!