Puntos clave
- Programmable Conversations API de Bird unifica WhatsApp, Messenger y SMS en una sola capa de comunicación, simplificando el desarrollo de bots multicanal.
- Puedes crear rápidamente un prototipo de bot de lista de tareas en WhatsApp usando webhooks y solicitudes POST simples.
- Herramientas como ngrok te permiten exponer tu servidor local para probar webhooks sin una configuración de hosting compleja.
- El API gestiona conversaciones en múltiples canales, permitiendo una sola base de lógica para WhatsApp, WeChat y otras apps.
- Usa el endpoint archiveConversation para cerrar conversaciones o “topics,” ideal para soporte o seguimiento de flujos de trabajo.
- La lógica del bot puede gestionar conversaciones concurrentes de forma segura en memoria con una estructura de datos simple.
- El mismo handler de webhook funciona en todos los canales: Bird enruta automáticamente las respuestas según el ID de conversación de origen.
Bird lanzó recientemente Programmable Conversations. Permite a las empresas integrar plataformas de comunicación como WhatsApp, Messenger y SMS en sus sistemas, usando una sola API.
Quise probarlo, así que construí un bot de lista de tareas en WhatsApp, porque ¿quién no necesita una lista de tareas automatizada para organizar su día? Puede sonar complicado, pero en realidad fue fácil, y me gustaría contarte todo al respecto.
Yo trabajo en MessageBird, así que pude lanzarme directamente a construir. Si tú lo intentas, tendrás que solicitar acceso anticipado. Pero una vez que tengas configurado un canal de WhatsApp, puedes iniciar sesión en el Dashboard del sitio web de MessageBird y empezar.
Configuración del entorno de tu bot de WhatsApp
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 necesitaba ser accesible desde internet. Al construir APIs así, es importante seguir las mejores prácticas de versionado de API para facilitar el mantenimiento. Como apenas estaba empezando a programarlo, decidí usar ngrok. Crea un túnel desde internet público hasta tu querido localhost en el puerto 5007. ¡Adelante!
ngrok http 5007 -region eu -subdomain todobot
Creación de tu webhook y conexión con Bird
Después, 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í:
Perfecto. 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í se ve el payload de un webhook:
Queremos responder esos mensajes. Empecemos por repetirlos como eco, ¿te parece?
Envío de respuestas y manejo de mensajes
Ahora viene la parte interesante. Haz una solicitud POST a:
https://conversations.messagebird.com/v1/conversations/<conversationID>/messages para responder la solicitud.
Listo. Esto es todo lo que necesitas para crear un bot que actúa como un humano de 5 años.
Esta es la razón por la que usar Conversations API de Bird hace que el desarrollo de bots de WhatsApp sea rápido y escalable:
| Característica | Qué resuelve |
|---|---|
| ID de conversación unificado | Mantener un solo hilo en apps como WhatsApp, WeChat, Messenger |
| Una sola API para todos los canales | Reutilizar la lógica del bot sin reescribir para cada plataforma |
| Automatización basada en webhooks | Manejo rápido de respuestas sin polling |
| Archivar + reabrir temas | Organizar el historial de soporte y flujos de trabajo |
| Estructura segura para concurrencia | Manejar múltiples chats a la vez de forma confiable |
Ahora, avancemos 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 respond.
handle analizará los mensajes de forma simple, hará algo de 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 concurrencia que asocia IDs de conversación con listas de tareas.
Una lista de tareas es un slice de strings seguro para concurrencia. ¡Todo en memoria!
Archivado de conversaciones y escalado de tu bot
¡Otro punto importante! Puedes archivar conversaciones. En algunas aplicaciones, como los CRM, es importante llevar un registro de ciertas interacciones, por ejemplo, para medir la eficacia de los empleados de soporte al cliente. La API de Conversations te permite archivar una conversación para “close” el tema. Si el usuario/cliente envía otro mensaje, la API de Conversations abrirá un nuevo tema automáticamente.
Gestión del ciclo de vida de las conversaciones
Además, hacer una solicitud PATCH a https://conversations.messagebird.com/v1/conversations/{id} con el estado correcto en el body te permite archivar la conversación con ese id. Esto lo hacemos 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 omnicanal. ¿Qué pasa si quieres reutilizar el código del bot para una plataforma diferente, como WeChat? Este enfoque multicanal forma parte de la estrategia de derivar consultas a canales de menor costo. ¿Cómo lo harías?
¡Solo crea un nuevo webhook dirigido a ese canal! ¡Un webhook que envíe solicitudes a la misma https://todobot.eu.ngrok.io/create-hook url que usamos para WhatsApp!
Esto funciona porque el código del handler siempre usa el conversationID del payload del webhook para responder los mensajes, en lugar de un channelID fijo. Conversations API de MessageBird determinará automáticamente el canal de la conversación para enviar tu mensaje.
¿Quieres construir tu propio bot? Revisa el 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 Contact Sales para completar el formulario. ¡Feliz boteo!
Preguntas y respuestas
¿Qué tan difícil es construir un bot de WhatsApp usando API de Bird?
Es sorprendentemente fácil. Con un webhook y unas pocas llamadas a la API, puedes construir un bot funcional que lea y responda mensajes en minutos.
¿Necesito una configuración especial para recibir mensajes?
Sí: el bot debe ser accesible desde internet. Herramientas como ngrok ayudan a crear un túnel seguro desde tu máquina local.
¿Puedo usar el mismo código para diferentes apps de mensajería?
Por supuesto. La API de Conversations abstrae los canales, así que tu bot puede funcionar en WhatsApp, WeChat o Messenger usando la misma lógica.
¿Cómo cierro o reinicio un hilo de chat?
Envía una solicitud PATCH al endpoint de la conversación con el estado adecuado para archivarla. Cualquier mensaje nuevo abre automáticamente una nueva conversación.
¿Dónde puedo encontrar código de ejemplo?
R: La demo funcional completa, Wabot en GitHub, muestra la implementación del manejo de mensajes, concurrencia y archivado.
