Referencia de API
Conversaciones y mensajes
Gestiona el inbox: lista conversaciones, cambia su estado, toma el control y envía mensajes. Requieren autenticación (API key o sesión).
Conversaciones
Sección titulada «Conversaciones»| Método | Ruta | Descripción |
|---|---|---|
GET | /workspaces/:workspaceId/conversations | Listar (ver filtros abajo) |
POST | /workspaces/:workspaceId/conversations | Crear/reutilizar una conversación abierta con un contacto |
GET | /workspaces/:workspaceId/conversations/:conversationId | Obtener conversación |
PATCH | /workspaces/:workspaceId/conversations/:conversationId | Actualizar status / assignedTo |
POST | /workspaces/:workspaceId/conversations/:conversationId/read | Marcar como leída |
PATCH | /workspaces/:workspaceId/conversations/:conversationId/take-control | Pausar la IA y tomar el control |
PATCH | /workspaces/:workspaceId/conversations/:conversationId/release-control | Devolver el control a la IA |
Filtros de GET .../conversations (query string, todos opcionales): status (OPEN/WAITING/RESOLVED/CLOSED), channel (WHATSAPP/WEB_WIDGET/PLAYGROUND), assignedTo (id de usuario), agentId (asistente que atiende la conversación), tagId (etiqueta del contacto), search (nombre/teléfono del contacto), isTest ('true' para listar solo conversaciones de prueba; por defecto quedan excluidas), page, limit.
status (ver estados de una conversación):
| Valor | Significado |
|---|---|
OPEN | Abierta, la IA responde normalmente. |
WAITING | En cola, esperando que un agente humano la tome. |
RESOLVED | Resuelta por un agente. |
CLOSED | Cerrada. |
take-control pone aiPaused: true y asigna la conversación al usuario que llama (falla si ya la tomó otro agente distinto). release-control la libera de nuevo hacia la IA.
Mensajes
Sección titulada «Mensajes»| Método | Ruta | Descripción |
|---|---|---|
GET | /workspaces/:workspaceId/conversations/:conversationId/messages | Listar mensajes (paginado; sin page trae la última página, es decir los más recientes) |
POST | /workspaces/:workspaceId/conversations/:conversationId/messages | Enviar mensaje |
POST | /workspaces/:workspaceId/conversations/:conversationId/send-template | Enviar una plantilla de WhatsApp aprobada |
POST | /workspaces/:workspaceId/conversations/:conversationId/attachment | Subir un adjunto (multipart, campo file, máx. 16 MB) y devolver su URL pública |
DELETE | /workspaces/:workspaceId/conversations/:conversationId/messages/:messageId | Eliminar mensaje |
PATCH | /workspaces/:workspaceId/conversations/:conversationId/messages/:messageId/feedback | Calificar una respuesta de la IA (helpful / not_helpful / null para quitar la calificación) |
GET .../messages acepta page y limit (por defecto 50) en la query string.
Ejemplo — enviar un mensaje
Sección titulada «Ejemplo — enviar un mensaje»/workspaces/:workspaceId/conversations/:conversationId/messages Cuerpo de la petición
Sección titulada «Cuerpo de la petición»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
content | string (máx. 10 000) | Sí | Contenido del mensaje. |
type | string | No | TEXT, IMAGE, AUDIO, DOCUMENT, TEMPLATE (por defecto TEXT). |
mediaUrl | string (máx. 2000) | No | URL del adjunto, si type no es TEXT. |
mediaMimeType | string | No | Tipo MIME del adjunto. |
filename | string | No | Nombre de archivo del adjunto. |
Ejemplo — tomar el control de una conversación
Sección titulada «Ejemplo — tomar el control de una conversación»/workspaces/:workspaceId/conversations/:conversationId/take-control Parámetros de ruta
Sección titulada «Parámetros de ruta»| Parámetro | Tipo | Descripción |
|---|---|---|
workspaceId | string | Identificador del workspace. |
conversationId | string | Conversación a tomar. |
Este endpoint no recibe cuerpo: el responsable es el usuario autenticado (vía sesión o el titular de la API key).
Relacionado
Sección titulada «Relacionado»- Bandeja de conversaciones · Tomar el control
- Los mensajes que llegan por el widget web se crean con el chat público del widget, no con este endpoint.