BETA

Registra um feedback explícito (👍 ou 👎) do visitante sobre um turno da conversa, com um motivo opcional quando é 👎. Um 👎 também abre (ou reutiliza, se já existir) um caso de moderação interno para que a equipe da Mapaprop revise a resposta.

Esta API não tem identidade por usuário (apenas um cliente OAuth com escopo na conta): o feedback fica registrado em nome da conta, não de uma pessoa específica.

Informação do recurso
AutenticaçãoObrigatória (Token de API, Bearer)
Scopemapaprop-chat-ai
HTTP MethodPOST
ResponseJSON
Version1

URL do recurso

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

Parâmetros

KeyTypeRequiredDescrição
turnIdlongsimID do turno sobre o qual se dá o feedback. Vem na resposta de POST /chat (campo turnId) ou no evento SSE done de POST /chat/stream. Precisa pertencer à conta do token.
ratingstringsimup ou down.
reasonCodestringnãoMotivo do feedback: incorrect, not_resolved, irrelevant ou other.
reasonTextstringnãoComentário livre do visitante (máximo de 2000 caracteres).

Código de exemplo

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."
}

Resposta

ObjetoCampoTipoObrigatórioDescrição
Responsesuccessbooleansimtrue quando o feedback foi registrado corretamente.
turnIdlongsimO turnId que você enviou.
ratingstringsimO rating que você enviou (up ou down).
feedbackIdintsimID do registro de feedback criado.
caseCreatedbooleansimtrue somente quando esta chamada criou um caso de moderação NOVO. Em up, sempre false. Em down, é false se o turno já tinha um caso aberto de um feedback anterior (o mesmo caso é reutilizado, nunca é duplicado).
moderationCaseIdintnãoID do caso de moderação (novo ou existente). Só está presente quando rating é down.

Em caso de erro, não chega o shape acima com success: false: a requisição é cortada com um erro (ver tabelas a seguir).

Erros

ErroCausa
INVALID_PERMISSION (HTTP 403)O turnId enviado não existe, ou pertence à conversa de outra conta.

Erros de validação (a requisição é cortada, não chega success: false)

ErroCausa
REQUIRED_INPUT — "El campo 'turnId' es requerido"Falta o campo turnId, ou ele é menor ou igual a 0.
REQUIRED_INPUT — "El campo 'rating' es requerido ('up' o 'down')"Falta o campo rating, ou seu valor não é up nem down.
REQUIRED_INPUT — "El campo 'reasonCode' debe ser uno de: incorrect, not_resolved, irrelevant, other"Foi enviado reasonCode com um valor diferente dos permitidos.
INPUT_TOO_LONG — "El campo 'reasonText' es demasiado largo (max 2000 caracteres)"O reasonText enviado ultrapassa 2000 caracteres.

Exemplo de resposta

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

Exemplo de erro:

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