API de SMS bidireccional con webhooks: creación de manejo automatizado de respuestas
🔑 Conclusiones clave:
- Los SMS bidireccionales convierten un canal de transmisión en una conversación: los clientes responden y su sistema responde de manera inteligente
- El manejo de respuestas basado en webhooks permite el enrutamiento de respuestas en tiempo real sin sondear mensajes nuevos
- La automatización basada en palabras clave (SÍ/NO/DETENER/INFO) maneja la mayoría de las respuestas sin participación humana
Los SMS unidireccionales son un sistema de notificaciones push. Funciona bien para alertas, recordatorios y confirmaciones donde no se espera respuesta. Pero en el momento en que envía un mensaje que invita a una respuesta ("envíe un mensaje de texto SÍ para confirmar" o "responda DETENER para optar por no participar"), necesita un sistema bidireccional que realmente maneje lo que regresa.
La arquitectura del webhook lo hace confiable y en tiempo real. En lugar de que su aplicación busque nuevas respuestas cada pocos minutos, su proveedor de SMS llama a su punto final en el instante en que llega una respuesta. Su sistema lo procesa inmediatamente y responde en consecuencia.
Cómo funcionan los webhooks de SMS entrantes
El flujo es simple una vez que comprende la dirección de los datos:
- El cliente recibe su SMS saliente y responde con "SÍ"
- Su proveedor de SMS recibe el mensaje entrante en su número asignado
- El proveedor envía inmediatamente un HTTP POST a la URL de su webhook con los datos del mensaje.
- Su aplicación procesa la carga útil entrante, ejecuta su lógica de negocios (confirmar cita, actualizar la base de datos, activar el siguiente mensaje)
- Opcionalmente, su aplicación envía un SMS de respuesta a través de la misma API del proveedor.
- Todo el ciclo se completa en menos de 3 segundos desde la respuesta hasta la acción.
Estructura de carga útil del webhook
Una carga útil típica de webhook de SMS entrante de un proveedor se ve así:
POST /webhooks/sms-inbound
{
"from": "+15551234567",
"to": "+18005550100",
"body": "YES",
"message_id": "msg_abc123",
"timestamp": "2025-05-24T14:30:00Z",
"media_urls": []
}
Su controlador recibe esto, normaliza el texto del cuerpo (recortar espacios en blanco, mayúsculas) y lo dirige a su controlador de palabras clave.
Creación de una lógica de respuesta basada en palabras clave
| palabra clave | Uso típico | Acción de respuesta automatizada |
|---|---|---|
| SI / CONFIRMAR / 1 | Confirmación de cita, opt-in | Actualizar el estado de la reserva, enviar confirmación, registrar actividad |
| NO / CANCELAR / 2 | Cancelación de cita, rechazo | Cancelar reserva, liberar franja horaria, notificar al personal, enviar alternativas |
| DETENER / BAJAR / SALIR / FINALIZAR | Exclusión voluntaria (TCPA obligatoria) | Suprimir inmediatamente todos los envíos futuros, enviar una confirmación de exclusión obligatoria |
| INICIAR/DESPARAR | Volver a inscribirse después de una parada anterior | Restaurar permisos de mensajería, enviar mensaje de bienvenida |
| AYUDA / INFORMACIÓN | Solicitud de soporte, información. | Enviar mensaje de información con opciones de contacto, opcionalmente dirigirlo a la cola de agentes humanos |
| [No reconocido] | Respuesta de texto libre | Ruta a la cola de agentes humanos o procesador de PNL; enviar acuse de recibo "Tu mensaje fue recibido" |
Gestión de sesiones para conversaciones de varios turnos
El manejo simple de palabras clave funciona para interacciones de un solo turno. Para conversaciones de varios pasos, como guiar a un cliente a través de un flujo de reprogramación, necesita gestión de sesiones:
Ejemplo de flujo de respuesta basado en sesión
Paso 1: El sistema envía "Su cita es el miércoles a las 3 p. m. Responda SÍ para confirmar o NO para reprogramar".
Respuestas del cliente: "NO"
Paso 2: El sistema lee el estado de la sesión (el cliente está en "reprogramar flujo") y envía "Tenemos disponible el jueves a las 2 p. m. o el viernes a las 10 a. m. Responda 1 para el jueves o 2 para el viernes".
Respuestas del cliente: "1"
Paso 3: El sistema procesa "1" en el contexto del paso 2, reserva el jueves a las 2 p.m., envía confirmación y cierra la sesión.
El estado de la sesión se puede almacenar en Redis (para sistemas de gran volumen), una tabla de base de datos o incluso una simple memoria caché para aplicaciones de menor volumen. La clave es que cada webhook entrante incluye el número "de", que actúa como clave de sesión.
Manejo de respuestas no reconocidas
No todos los clientes responderán con una palabra clave ordenada. "¡Claro!", "Suena bien", "¿A qué hora otra vez?", "¿En realidad podemos hacerlo a las 4 p.m.?": estos requieren procesamiento de PNL o enrutamiento a un agente humano. Diseñe su sistema teniendo en cuenta esta realidad:
- Para respuestas de formato libre que coincidan con la intención pero no con palabras clave exactas (por ejemplo, "sí", "absolutamente"), use concordancia aproximada o PNL simple para clasificar la intención.
- Para mensajes genuinamente no estructurados, envíe un acuse de recibo y diríjalo a una cola humana: "¡Gracias por su mensaje! Un miembro del equipo se comunicará con usted en breve".
- Realice un seguimiento de los patrones de respuesta no reconocidos: si el 30 % de las respuestas a su mensaje de confirmación son "¿a qué hora otra vez?", su mensaje original no incluye suficiente información.
Para obtener más información sobre cómo crear sistemas de participación del cliente por SMS bidireccionales, consulte nuestra guía para API de texto automatizadas y soluciones personalizadas.
Cree un sistema de SMS bidireccional que realmente responda
La API de Robotalker admite campañas de SMS salientes y manejo de respuestas entrantes con entrega de webhooks.
- ✔️ Webhooks de SMS entrantes en tiempo real
- ✔️ Números dedicados bidireccionales
- ✔️ Procesamiento automático de PARADA/exclusión voluntaria