conversation.created
Fires when a new conversation is created in SparrowDesk
Fires when a new conversation is created in your workspace, on any channel. Since SparrowDesk treats tickets and conversations as the same object, this covers new tickets too.
For the envelope fields (id, eventType, timestamp, accountId, webhookMetadata), see The webhook request.
Example payload
{
"id": "evt_019f41958ac875c881511bd27a454eff",
"eventType": "conversation.created",
"timestamp": "2026-07-08T11:55:47.321Z",
"accountId": "1001",
"payload": {
"conversation": {
"id": "18",
"brand": "Acme Support",
"brand_id": 5182,
"source": "Call",
"status": "Open",
"priority": "Medium",
"created_at": 1783511746,
"first_response_time": null,
"resolution_time": null,
"due": null,
"first_response_due": null,
"requested_by_email": "[email protected]",
"requested_by_phone": null,
"requested_by_id": 4254695,
"assigned_to_member_id": 8544,
"assigned_to_team_id": null,
"last_updated_at": 1783511747,
"subject": "API rate limit hit unexpectedly",
"description_html": "<p>I'm seeing \"API rate limit exceeded\" errors occasionally. Please look into it.</p>",
"description_text": "I'm seeing \"API rate limit exceeded\" errors occasionally. Please look into it.",
"tags": [],
"custom_fields": [],
"csat": {
"score": null,
"sentiment": null,
"feedback": null,
"scale": null
},
"properties": null
}
},
"webhookMetadata": {
"webhookTargetId": "34",
"deliveryAttemptId": "019f41958af870b09f0cdf5cd50af57e",
"deliveryAttemptNumber": 1
}
}The conversation object
| Field | Type | Description |
|---|---|---|
id | string | Conversation ID. |
brand | string | Name of the brand the conversation belongs to. |
brand_id | number | Brand ID. Useful for filtering events in multi-brand workspaces. |
source | string | The channel the conversation came from, for example Mail, Chat, Call. |
status | string | Current status, for example Open, Pending. |
priority | string | Priority, for example Low, Medium, High, Urgent. |
created_at | number | When the conversation was created (Unix timestamp, seconds). |
first_response_time | number | null | When the first agent response was sent (Unix timestamp), or null if there is none yet. |
resolution_time | number | null | When the conversation was resolved (Unix timestamp), or null. |
due | number | null | Resolution due time from the applicable SLA (Unix timestamp), or null. |
first_response_due | number | null | First-response due time from the applicable SLA (Unix timestamp), or null. |
requested_by_email | string | null | Email address of the requester. |
requested_by_phone | string | null | Phone number of the requester. |
requested_by_id | number | Contact ID of the requester. |
assigned_to_member_id | number | null | ID of the member the conversation is assigned to, or null. |
assigned_to_team_id | number | null | ID of the team the conversation is assigned to, or null. |
last_updated_at | number | When the conversation was last updated (Unix timestamp). |
subject | string | Conversation subject. |
description_html | string | The first message body as HTML. |
description_text | string | The first message body as plain text. |
tags | array | Tags on the conversation, as { "id": number, "label": string } objects. |
custom_fields | array | Custom field values set on the conversation. |
csat | object | CSAT response for the conversation: { score, sentiment, feedback, scale }. Fields are null until a survey response exists. |
properties | object | null | System-managed metadata. |
Related events
conversation.updated— a conversation's fields changeconversation.status_changed— a conversation's status transitionsconversation.deleted— a conversation is deleted