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 | |
|---|---|
| Authentication | Required (API Token, Bearer) |
| Scope | mapaprop-chat-ai |
| HTTP Method | POST |
| Response | JSON |
| Version | 1 |
Resource URL
https://mapaprop.app/api/action/mapaprop-chat-ai-v1/signal
Parameters
| Key | Type | Required | Description |
|---|---|---|---|
| turnId | long | yes | ID 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. |
| kind | string | yes | regenerate, 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
| Object | Field | Type | Required | Description |
|---|---|---|---|---|
| Response | success | boolean | yes | true when the signal was recorded successfully. |
| turnId | long | yes | The turnId you sent. | |
| kind | string | yes | The 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
| Error | Cause |
|---|---|
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)
| Error | Cause |
|---|---|
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"
}