
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.
Quería probarlo, así que construí un bot de WhatsApp de lista de tareas, porque ¿quién no necesita una lista de tareas automatizada para ayudar a organizar su día? Puede sonar complicado, pero en realidad fue fácil, y me gustaría contártelo todo.
Ahora, trabajo en MessageBird, así que pude sumergirme y empezar a construir. Si pruebas esto, necesitarás solicitar acceso anticipado. Pero una vez que te registras con 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. Descubrí 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 estaba empezando a codificarlo, decidí usar ngrok. Crea un túnel desde el Internet público hasta tu querido puerto localhost 5007. ¡En marcha!
ngrok http 5007 -region eu -subdomain todobot
Luego, necesitaba 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 anteriormente.
Así es como se ve una carga útil de webhook:
Queremos responder a esos mensajes. Empecemos por repetirlos, ¿qué dices?
Ahora, la parte interesante. Haz una solicitud POST a:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages
para responder a la solicitud.
Listo. Esto es todo lo que necesitas para crear un bot que actúe como un humano de 5 años.
Ahora, vamos a avanzar hacia la construcción de toda la lista de tareas. Primero, modifica un poco la función createHookHandler para que llame a la nueva función handleMessage en lugar de responder.
handle analizará los mensajes de manera simplista, realizará algún trabajo y elegirá la respuesta. Veamos el comando “add”:
Aquí, configuramos: list := manager.fetch(whp.Conversation.ID). Básicamente, “manager” es un mapa seguro para la concurrencia que asigna IDs de conversación a listas de tareas.
Una lista de tareas es un segmento de cadenas seguro para la concurrencia. ¡Todo en memoria!
¡Otra cosa importante! Puedes archivar conversaciones. En algunas aplicaciones, como CRM, es importante hacer un seguimiento de ciertas interacciones, para controlar la efectividad de los empleados de atención al cliente, por ejemplo. 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.
Además, 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 esa id. Hacemos esto con el comando “bye”:
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 multicanal. ¿Qué pasa 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?
¡Solo crea un nuevo webhook para dirigirlo a ese canal! Un webhook que envía solicitudes a la misma URL https://todobot.eu.ngrok.io/create-hook
que usamos para WhatsApp!
Esto funcionará porque el código del controlador siempre utiliza 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 y enviará tu mensaje.
¿Quieres construir tu propio bot? Echa un vistazo al código completo en Github: https://github.com/marcelcorso/wabot, solicita acceso anticipado a WhatsApp visitando la página de WhatsApp y haz clic en el botón Contactar Ventas para llenar el formulario. ¡Feliz creación de bots!