Visión general
ConversaLabs ofrece dos puntos de extensión complementarios para desarrolladores:
- Canal de API: un inbox programable. En lugar de un canal listo (WhatsApp, correo, etc.),
creas una bandeja de entrada de tipo API y conectas tu propia aplicación. Los mensajes de entrada
llegan por la API REST y las respuestas de los agentes se entregan en tu
webhook_url. - Agent bot: un bot vía webhook (
bot_type: webhook). Se asigna a un inbox (de cualquier canal) y recibe los eventos de conversación/mensaje en suoutgoing_url. El bot procesa el evento y puede responder llamando de vuelta a la API con su token de acceso.
Cuándo usar cada uno:
- Usa el canal de API cuando necesites un canal a medida que la plataforma no ofrece de forma nativa.
- Usa un agent bot cuando quieras automatizar respuestas (clasificación, respuestas automáticas, IA) antes o junto con la atención humana, en cualquier inbox.
Ambos se pueden combinar: un inbox de API que además tiene un agent bot asignado.
Requisitos previos
- Permiso de administrador en la cuenta (crear inboxes y agent bots está restringido a admins).
- Un endpoint HTTPS accesible para recibir webhooks (el
webhook_urldel canal y/o eloutgoing_urldel bot). - Un token de acceso válido para autenticar las llamadas a la API REST.
Paso a paso
- Crea un inbox de tipo API: ve a Configuración → Bandejas de entrada → Agregar → API.
Indica un nombre y, opcionalmente, el
webhook_url. Tras crearlo, anota el identifier generado para el canal. - Envía un mensaje de entrada: crea/abre una conversación en ese inbox y publica el mensaje del
cliente vía API (
POST .../conversations/:id/messages), autenticando con el token de acceso. - Configura el
webhook_urldel canal para recibir los mensajes de salida: cuando un agente responde en la conversación, el payload se entrega en tu endpoint. - (Opcional) Crea un agent bot: en Configuración → Agentes de IA/Agent bots, indica nombre,
descripción y el
outgoing_url(bot_type= webhook). Luego asigna el bot al inbox para que empiece a recibir los eventos de esa bandeja de entrada.
Configuración y opciones
- Token de acceso del bot: lo usa el bot para llamar de vuelta a la API (crear respuestas, reaccionar, actualizar estado). Se puede regenerar con reset_access_token.
- Secreto del bot: se usa para firmar/verificar el payload del webhook enviado al
outgoing_url. Se puede regenerar con reset_secret. - Verificación HMAC del canal (
hmac_token,hmac_mandatory): valida la identidad del contacto. Conhmac_mandatoryactivo, los contactos solo se aceptan con un hash de identificación válido, calculado a partir delhmac_token. - Actualización de estado de mensaje: permitida solo en inboxes de API (por ejemplo, marcar entregado/leído o registrar un error de envío).
- Payload del bot (
webhook_data): identifica al bot en el evento con{ id, name, type: "agent_bot" }. - Mensajes con responsable (
receive_incoming_when_assigned): su valor predeterminado esfalse. Cuando estrue, un agent bot externo sigue recibiendo eventos de entradamessage_createdymessage_updatedaunque haya un agente humano asignado. La configuración pertenece al bot y se aplica a todas las bandejas vinculadas.
| Situación | Opción desactivada/omitida | Opción activada |
|---|---|---|
| Mensaje del cliente, sin responsable | Se entrega | Se entrega |
| Mensaje del cliente, con responsable humano | No se entrega | Se entrega |
| Mensaje de salida o evento de ciclo de vida | Se entrega | Se entrega |
Activa la opción en el formulario del bot o envía el campo tipado mediante la API:
{
"receive_incoming_when_assigned": true
}
El payload ya incluye conversation.assignee y conversation.assignee_type. Al activar la entrega,
guarda el evento para conservar el contexto, pero no respondas mientras un humano atienda la
conversación. La plataforma no bloquea automáticamente una respuesta creada con el token del bot.
Maestro no usa esta opción: siempre recibe los eventos y aplica su propia política de pausa y retención.
Casos de uso
- Canal a medida: conectar una aplicación propia (una app interna, un marketplace, un canal propietario) como un inbox vía API.
- Respuestas automáticas: un agent bot que hace la clasificación inicial, responde preguntas frecuentes y solo entonces pasa la conversación a un agente humano.
Consejos, límites y buenas prácticas
- Verifica siempre la firma HMAC del webhook (canal y/o secreto del bot) antes de procesar el payload.
- Garantiza la idempotencia: al crear mensajes de entrada, usa un
source_idúnico para deduplicar reentregas. - Define un punto de traspaso claro del bot al humano (por ejemplo, asignar la conversación a un agente/equipo y dejar de responder con el bot).
- Trata tokens y secretos como credenciales: nunca los expongas en el front-end.
Solución de problemas
- 401/403: token de acceso inválido, expirado o sin permiso.
- El bot no recibe eventos: confirma que el
outgoing_urles correcto y accesible, y que el bot está asignado al inbox. Si la conversación tiene un responsable humano, confirma también quereceive_incoming_when_assignedestá activado para ese bot. - HMAC inválido: el hash de identificación no coincide con el
hmac_token; vuelve a calcular la firma y revisa el orden/codificación de los campos.