Submit feedback on a specific agent chat message. Users can rate a message (like/dislike), leave a comment, or both. Feedback is stored as an append-only log so all history is preserved.
Partial updates are supported: sending only rating carries forward the existing comment (and vice versa). To clear a field, send it explicitly as null.
Path parameters
UUID of the conversation the message belongs to.
UUID of the message to leave feedback on.
Request body
One of like, dislike, or null. Omit the key entirely to keep the current rating unchanged.
Free-text feedback comment. Omit the key entirely to keep the current comment unchanged. Send null to clear it.
Behavior matrix
rating | comment | Behavior |
|---|
"like" / "dislike" | omitted | Save rating, carry forward existing comment |
"like" / "dislike" | "text" | Save both |
"like" / "dislike" | null | Save rating, clear comment |
null | "text" | Clear rating, save comment |
| omitted | "text" | Keep existing rating, save comment |
null | null | No-op, returns 204 |
| omitted | omitted | No-op, returns 204 |
Example: rate a message
{
"rating": "dislike",
"comment": "The invoice total was incorrect"
}
{
"comment": "Could have included the payment link"
}
Response
Returns 200 with the saved feedback object:
{
"status": "success",
"data": {
"uid": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
"message_uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"rating": "like",
"comment": null,
"created_at": "2026-04-24T12:00:00+00:00"
}
}
Returns 204 with no body when both rating and comment are null or omitted.
Errors
| Status | Condition |
|---|
400 | Invalid rating value (not like, dislike, or null) |
404 | Conversation not found, or message does not belong to the conversation |
403 | User not authorized for this conversation’s organization |
Feedback is append-only. Every submission creates a new record rather than overwriting the previous one. The GET .../messages endpoint returns the latest feedback per message for the requesting user.