BETA

Registra un feedback explícito (👍 o 👎) del visitante sobre un turno de la conversación, con un motivo opcional cuando es 👎. Un 👎 además abre (o reutiliza, si ya existe) un caso de moderación interno para que el equipo de Mapaprop revise la respuesta.

Esta API no tiene identidad por usuario (solo un cliente OAuth scopeado a la cuenta): el feedback queda registrado a nombre de la cuenta, no de una persona en particular.

Información del recurso
AutenticaciónRequerida (Token de API, Bearer)
Scopemapaprop-chat-ai
HTTP MethodPOST
ResponseJSON
Version1

URL del recurso

https://mapaprop.app/api/action/mapaprop-chat-ai-v1/feedback

Parámetros

KeyTypeRequiredDescripción
turnIdlongID del turno sobre el que se da feedback. 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.
ratingstringup o down.
reasonCodestringnoMotivo del feedback: incorrect, not_resolved, irrelevant o other.
reasonTextstringnoComentario libre del visitante (máximo 2000 caracteres).

Código de ejemplo

POST /api/action/mapaprop-chat-ai-v1/feedback HTTP/1.1
Host: mapaprop.app
Content-Type: application/json
Authorization: Bearer {access_token}

{
    "turnId": 481512,
    "rating": "down",
    "reasonCode": "incorrect",
    "reasonText": "Me dijo que había 3 ambientes y en la foto se ve un monoambiente."
}

Respuesta

ObjetoCampoTipoRequeridoDescripción
Responsesuccessbooleantrue cuando el feedback se registró correctamente.
turnIdlongEl turnId que enviaste.
ratingstringEl rating que enviaste (up o down).
feedbackIdintID del registro de feedback creado.
caseCreatedbooleantrue solo cuando esta llamada creó un caso de moderación NUEVO. En up, siempre false. En down, es false si el turno ya tenía un caso abierto de un feedback anterior (se reutiliza el mismo caso, nunca se duplica).
moderationCaseIdintnoID del caso de moderación (nuevo o existente). Solo está presente cuando rating es down.

En caso de error, no llega el shape de arriba con success: false: la request se corta con un error (ver tablas siguientes).

Errores

ErrorCausa
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)

ErrorCausa
REQUIRED_INPUT — "El campo 'turnId' es requerido"Falta el campo turnId, o es menor o igual a 0.
REQUIRED_INPUT — "El campo 'rating' es requerido ('up' o 'down')"Falta el campo rating, o su valor no es up ni down.
REQUIRED_INPUT — "El campo 'reasonCode' debe ser uno de: incorrect, not_resolved, irrelevant, other"Se envió reasonCode con un valor distinto a los permitidos.
INPUT_TOO_LONG — "El campo 'reasonText' es demasiado largo (max 2000 caracteres)"El reasonText enviado supera los 2000 caracteres.

Ejemplo de respuesta

{
    "success": true,
    "turnId": 481512,
    "rating": "down",
    "feedbackId": 9031,
    "caseCreated": true,
    "moderationCaseId": 214
}

Ejemplo de error:

{
    "success": false,
    "error": "INVALID_PERMISSION"
}