# conversation.created (/webhooks/events/conversation-created)

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](/webhooks#the-webhook-request).

## Example payload

```json
{
  "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": "jordan@example.com",
      "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`](/webhooks/events/conversation-updated) — a conversation's fields change
* [`conversation.status_changed`](/webhooks/events/conversation-status-changed) — a conversation's status transitions
* [`conversation.deleted`](/webhooks/events/conversation-deleted) — a conversation is deleted
