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:

  1. El cliente recibe su SMS saliente y responde con "SÍ"
  2. Su proveedor de SMS recibe el mensaje entrante en su número asignado
  3. El proveedor envía inmediatamente un HTTP POST a la URL de su webhook con los datos del mensaje.
  4. 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)
  5. Opcionalmente, su aplicación envía un SMS de respuesta a través de la misma API del proveedor.
  6. 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
Iniciar prueba gratuita →

Preguntas frecuentes: Webhooks de SMS bidireccionales

Los proveedores de SMS de buena reputación volverán a intentar las entregas fallidas de webhooks, normalmente con un retroceso exponencial (reintentar después de 30 segundos, 5 minutos, 30 minutos, etc.). Implemente idempotencia en su controlador de webhook usando el campo message_id para que las entregas duplicadas durante los reintentos no creen acciones duplicadas.

Para SMS bidireccionales estilo conversación, se recomienda encarecidamente un código largo dedicado (10DLC) o un código corto dedicado. Los códigos cortos compartidos hacen imposible identificar a qué empresa está respondiendo un consumidor, y los operadores estadounidenses de mensajería A2P los han desaprobado en gran medida. 10 Independientemente, se requiere el registro DLC para enviar mensajes de texto comerciales en los EE. UU.