conversation.agent.replied
Fires when a human agent replies in a SparrowDesk conversation
Fires when a human agent replies in a conversation. Together with conversation.user.replied, this lets you compute metrics like first-response time in your own systems.
The payload carries the message that was sent as a conversation_message object.
For the envelope fields, see The webhook request.
Example payload
{
"id": "evt_019f419ad8657ed38e8cac718ac4b1e0",
"eventType": "conversation.agent.replied",
"timestamp": "2026-07-08T12:01:34.857Z",
"accountId": "1001",
"payload": {
"conversation_message": {
"id": "55179",
"body_html": "<p>Sure Jordan, we will look into this.</p>",
"body_text": "Sure Jordan, we will look into this.",
"attachments": [],
"author": {
"id": 8544,
"name": "Alex Carter",
"email": "[email protected]",
"phone": null,
"type": "agent"
},
"sent_at": 1783512094,
"conversation_id": "18",
"brand_id": 5182,
"account_id": 1001
}
},
"webhookMetadata": {
"webhookTargetId": "35",
"deliveryAttemptId": "019f419ad88977cf8257a08cc5aad967",
"deliveryAttemptNumber": 1
}
}The conversation_message object
| Field | Type | Description |
|---|---|---|
id | string | Message ID. |
body_html | string | The message body as HTML. |
body_text | string | The message body as plain text. |
attachments | array | Attachments on the message. |
author | object | Who wrote the message: { id, name, email, phone, type }. For this event, type is agent. |
sent_at | number | When the message was sent (Unix timestamp, seconds). |
conversation_id | string | ID of the conversation the message belongs to. |
brand_id | number | Brand ID. Useful for filtering events in multi-brand workspaces. |
account_id | number | The account (workspace) ID. |
Related events
conversation.user.replied— a customer repliesconversation.note.added— an internal note is added