Registra una señal implícita de comportamiento sobre un turno de la conversación: el visitante volvió a pedir la respuesta (regenerate), copió la respuesta (copy), hizo clic en un artículo de ayuda citado (citation) o en un botón sugerido (bridge). A diferencia de POST /feedback, es feedback que se infiere del comportamiento del visitante, no una calificación explícita, y nunca abre un caso de moderación.
regenerate y copy tienen un sentimiento implícito y se guardan como down y up respectivamente. citation y bridge son clics de simple interacción, sin sentimiento propio: se guardan sin rating forzado.
| 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/signal
Parámetros
| Key | Type | Required | Descripción |
|---|---|---|---|
| turnId | long | sí | ID del turno sobre el que se registra la señal. Viene en la respuesta de POST /chat (campo turnId) o en el evento SSE done de POST /chat/stream. Debe pertenecer a la cuenta del token. |
| kind | string | sí | regenerate, copy, citation o bridge. |
Código de ejemplo
POST /api/action/mapaprop-chat-ai-v1/signal HTTP/1.1
Host: mapaprop.app
Content-Type: application/json
Authorization: Bearer {access_token}
{
"turnId": 481512,
"kind": "regenerate"
}
Respuesta
| Objeto | Campo | Tipo | Requerido | Descripción |
|---|---|---|---|---|
| Response | success | boolean | sí | true cuando la señal se registró correctamente. |
| turnId | long | sí | El turnId que enviaste. | |
| kind | string | sí | El kind que enviaste. |
En caso de error, no llega el shape de arriba con success: false: la request se corta con un error (ver tablas siguientes).
Errores
| Error | Causa |
|---|---|
INVALID_PERMISSION (HTTP 403) | El turnId enviado no existe, o pertenece a la conversación de otra cuenta. |
Errores de validación (se corta la request, no llega success: false)
| Error | Causa |
|---|---|
REQUIRED_INPUT — "El campo 'turnId' es requerido" | Falta el campo turnId, o es menor o igual a 0. |
REQUIRED_INPUT — "El campo 'kind' es requerido (regenerate, copy, citation o bridge)" | Falta el campo kind, o su valor no es uno de los permitidos. |
Ejemplo de respuesta
{
"success": true,
"turnId": 481512,
"kind": "regenerate"
}
Ejemplo de error:
{
"success": false,
"error": "INVALID_PERMISSION"
}