Guarda un mensaje en una conversación existente sin invocar IA. Pensado para persistir pasos de un flujo guiado (por ejemplo, "el visitante hizo clic en 'Venta'") o mensajes de un asesor humano/sistema en el Inbox del cliente.
Este endpoint NO invoca IA ni consume tokens — a diferencia de POST /message, que siempre descuenta tokensUsed del saldo del cliente. Requiere una conversación ya iniciada: llamá antes a POST /init.
| Información del recurso | |
|---|---|
| Autenticación | Requerida (Token de API, Bearer) |
| Scope | mapaprop-chat-ai |
| HTTP Method | POST |
| Response | JSON |
| Version | 1 |
URL del recurso
https://mapaprop.app/api/action/mapaprop-chat-ai-v1/thread
Parámetros
| Key | Type | Required | Descripción |
|---|---|---|---|
| questionId | int | sí | ID de la conversación (obtenido de POST /init). |
| message | string | sí | El contenido del mensaje. |
| direction | int | sí | 1 = entrante/visitante, 2 = saliente/asesor o sistema, 3 = IA. |
| from | string | no | Nombre del remitente a mostrar en el Inbox. Default Visitante. |
Código de ejemplo
POST /api/action/mapaprop-chat-ai-v1/thread HTTP/1.1
Host: mapaprop.app
Content-Type: application/json
Authorization: Bearer {access_token}
{
"questionId": 481203,
"message": "El visitante seleccionó: Venta",
"direction": 1,
"from": "Visitante"
}
Respuesta
| Objeto | Campo | Tipo | Requerido | Descripción |
|---|---|---|---|---|
| Response | success | boolean | sí | true cuando el mensaje se guardó correctamente. |
En caso de error, no llega {"success": false}: la request se corta con un error (ver tabla siguiente).
Errores
| Error | Causa |
|---|---|
QUESTION_NOT_FOUND | El questionId enviado no existe o no pertenece a este cliente. |
SYSTEM_ERROR | Falló el guardado del mensaje por otro motivo (por ejemplo, error de base de datos). |
Errores de validación (se corta la request, no llega success: false)
| Error | Causa |
|---|---|
REQUIRED_INPUT — "questionId is required" | Falta el campo questionId. |
REQUIRED_INPUT — "message is required" | Falta el campo message. |
REQUIRED_INPUT — "direction is required" | Falta el campo direction. |
Ejemplo de respuesta
{
"success": true
}
Ejemplo de error:
{
"success": false,
"error": "QUESTION_NOT_FOUND"
}