BETA

Records an implicit behavioral signal on a conversation turn: the visitor asked for the answer again (regenerate), copied the answer (copy), clicked a cited help article (citation) or a suggested button (bridge). Unlike POST /feedback, this is feedback inferred from the visitor's behavior, not an explicit rating, and it never opens a moderation case.

regenerate and copy carry an implied sentiment and are stored as down and up respectively. citation and bridge are plain engagement clicks with no sentiment of their own: they're stored without a forced rating.

Resource information
AuthenticationRequired (API Token, Bearer)
Scopemapaprop-chat-ai
HTTP MethodPOST
ResponseJSON
Version1

Resource URL

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

Parameters

KeyTypeRequiredDescription
turnIdlongyesID of the turn the signal is about. Comes in the response of POST /chat (turnId field) or in the done SSE event of POST /chat/stream. Must belong to the token's account.
kindstringyesregenerate, copy, citation or bridge.

Sample code

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

Response

ObjectFieldTypeRequiredDescription
Responsesuccessbooleanyestrue when the signal was recorded successfully.
turnIdlongyesThe turnId you sent.
kindstringyesThe kind you sent.

In case of error, the shape above with success: false is not returned: the request is cut off with an error (see the following tables).

Errors

ErrorCause
INVALID_PERMISSION (HTTP 403)The turnId sent doesn't exist, or belongs to another account's conversation.

Validation errors (the request is cut off, success: false is not returned)

ErrorCause
REQUIRED_INPUT — "El campo 'turnId' es requerido"The turnId field is missing, or is less than or equal to 0.
REQUIRED_INPUT — "El campo 'kind' es requerido (regenerate, copy, citation o bridge)"The kind field is missing, or its value isn't one of the allowed ones.

Sample response

{
    "success": true,
    "turnId": 481512,
    "kind": "regenerate"
}

Error example:

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