Salva uma mensagem em uma conversa existente sem invocar IA. Pensado para persistir passos de um fluxo guiado (por exemplo, "o visitante clicou em 'Venda'") ou mensagens de um atendente humano/sistema no Inbox do cliente.
Este endpoint NÃO invoca IA nem consome tokens — diferente de POST /message, que sempre desconta tokensUsed do saldo do cliente. Exige uma conversa já iniciada: chame antes POST /init.
| Informação do recurso | |
|---|---|
| Autenticação | Obrigatória (Token de API, Bearer) |
| Scope | mapaprop-chat-ai |
| HTTP Method | POST |
| Response | JSON |
| Version | 1 |
URL do recurso
https://mapaprop.app/api/action/mapaprop-chat-ai-v1/thread
Parâmetros
| Key | Type | Required | Descrição |
|---|---|---|---|
| questionId | int | sim | ID da conversa (obtido de POST /init). |
| message | string | sim | O conteúdo da mensagem. |
| direction | int | sim | 1 = entrante/visitante, 2 = saída/atendente ou sistema, 3 = IA. |
| from | string | não | Nome do remetente a exibir no Inbox. Default Visitante. |
Código de exemplo
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"
}
Resposta
| Objeto | Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
| Response | success | boolean | sim | true quando a mensagem foi salva corretamente. |
Em caso de erro, não chega {"success": false}: a requisição é cortada com um erro (ver tabela a seguir).
Erros
| Erro | Causa |
|---|---|
QUESTION_NOT_FOUND | O questionId enviado não existe ou não pertence a este cliente. |
SYSTEM_ERROR | Falhou o salvamento da mensagem por outro motivo (por exemplo, erro de banco de dados). |
Erros de validação (a requisição é cortada, não chega success: false)
| Erro | Causa |
|---|---|
REQUIRED_INPUT — "questionId is required" | Falta o campo questionId. |
REQUIRED_INPUT — "message is required" | Falta o campo message. |
REQUIRED_INPUT — "direction is required" | Falta o campo direction. |
Exemplo de resposta
{
"success": true
}
Exemplo de erro:
{
"success": false,
"error": "QUESTION_NOT_FOUND"
}