Формат событий
У всех событий одна обёртка: id, type, created_at, company_id и data. Внутри data — тикет, сообщение и клиент в той же форме, что в ответах API (поля).
Заголовки
POST /deskus/webhook HTTP/1.1
Content-Type: application/json; charset=utf-8
User-Agent: Deskus-Webhooks/1.0 (+https://deskus.ru/api)
X-Deskus-Event: ticket.updated
X-Deskus-Delivery: 2e7d0b9f-5c1a-4e3d-9b8f-6a2c4e0d1b75
X-Deskus-Timestamp: 1792832560
X-Deskus-Signature: sha256=9b1e…Заголовок | Что в нём |
|---|---|
| Тип события, как поле |
| Доставка: у повтора — тот же. По нему ищите доставку в журнале |
| Время отправки этой попытки, секунды Unix |
| Подпись тела (как проверить) |
ticket.created
{
"id": "evt_4c1f0e9a7b2d6c3e8f5a1b0d9c7e2f4a",
"type": "ticket.created",
"created_at": "2026-10-21T09:15:04.218Z",
"company_id": "6a0c4e8b-7d2f-4a1c-9e5b-8d3f2a7c0e19",
"data": {
"ticket": {
"id": "0b8f6c1e-5d2a-4c7b-9a31-6e2f7d4c9a10",
"number": "T-1042",
"subject": "Не пришёл заказ №4821",
"status": "new",
"priority": null,
"channel": "API",
"client_id": "5f1a9e7c-2b3d-4e8f-a0c1-7d6b5e4f3a21",
"assignee_id": null,
"team_id": null,
"merged_into_id": null,
"snoozed_until": null,
"created_at": "2026-10-21T09:15:04.218Z",
"updated_at": "2026-10-21T09:15:04.218Z",
"last_activity_at": "2026-10-21T09:15:04.218Z",
"closed_at": null,
"url": "https://app.deskus.ru/tickets/0b8f6c1e-5d2a-4c7b-9a31-6e2f7d4c9a10"
},
"client": {
"id": "5f1a9e7c-2b3d-4e8f-a0c1-7d6b5e4f3a21",
"name": "Мария Котова",
"email": "maria@example.com",
"phone": "+79001234567",
"company": null,
"city": "Казань",
"is_vip": false,
"created_at": "2026-10-21T09:15:04.102Z",
"updated_at": "2026-10-21T09:15:04.102Z"
}
}
}ticket.updated
{
"id": "evt_8e2b5d0c1a7f3e9b6d4c2a0f1e8b7c5d",
"type": "ticket.updated",
"created_at": "2026-10-21T11:02:40.115Z",
"company_id": "6a0c4e8b-7d2f-4a1c-9e5b-8d3f2a7c0e19",
"data": {
"ticket": {
"id": "0b8f6c1e-5d2a-4c7b-9a31-6e2f7d4c9a10",
"number": "T-1042",
"subject": "Не пришёл заказ №4821",
"status": "closed",
"priority": null,
"channel": "API",
"client_id": "5f1a9e7c-2b3d-4e8f-a0c1-7d6b5e4f3a21",
"assignee_id": null,
"team_id": null,
"merged_into_id": null,
"snoozed_until": null,
"created_at": "2026-10-21T09:15:04.218Z",
"updated_at": "2026-10-21T09:15:04.218Z",
"last_activity_at": "2026-10-21T09:15:04.218Z",
"closed_at": "2026-10-21T11:02:40.115Z",
"url": "https://app.deskus.ru/tickets/0b8f6c1e-5d2a-4c7b-9a31-6e2f7d4c9a10"
},
"changes": {
"status": { "from": "open", "to": "closed" }
}
}
}changes— только поля, которые есть в API и изменились:status,priority,subject,assignee_id,team_id,client_id,snoozed_until,merged_into_id. Время изменения и последнего действия событием не считаются.Несколько изменений подряд могут прийти одним событием — например,
open → closedвместо двух.changes: null— тикет появился раньше подписки, и прежнего состояния мы не знаем. Возьмитеticketкак есть.
message.created
{
"id": "evt_2a9d7f1c5e3b0a8d6f4e2c1b9a7d5f3e",
"type": "message.created",
"created_at": "2026-10-21T09:15:04.240Z",
"company_id": "6a0c4e8b-7d2f-4a1c-9e5b-8d3f2a7c0e19",
"data": {
"ticket": { "id": "0b8f6c1e-5d2a-4c7b-9a31-6e2f7d4c9a10", "number": "T-1042", "…": "…" },
"message": {
"id": "e6c3a9f1-4d7b-4c2e-9f8a-3b1d5e7c0a92",
"ticket_id": "0b8f6c1e-5d2a-4c7b-9a31-6e2f7d4c9a10",
"kind": "client",
"author": { "name": "Мария Котова", "user_id": null },
"body": "Заказала кило эфиопии три дня назад, посылки нет.",
"text": "Заказала кило эфиопии три дня назад, посылки нет.",
"delivery_status": null,
"created_at": "2026-10-21T09:15:04.240Z"
}
}
}Одно событие — одно сообщение. message.kind: client — написал клиент, reply — ответил сотрудник, note — заметка для своих. Системные записи событием не приходят.
client.created
{
"id": "evt_6f3b1d9e7c5a2f0d8b6e4c2a1f9d7b5e",
"type": "client.created",
"created_at": "2026-10-21T09:15:04.102Z",
"company_id": "6a0c4e8b-7d2f-4a1c-9e5b-8d3f2a7c0e19",
"data": {
"client": {
"id": "5f1a9e7c-2b3d-4e8f-a0c1-7d6b5e4f3a21",
"name": "Мария Котова",
"email": "maria@example.com",
"phone": "+79001234567",
"company": null,
"city": "Казань",
"is_vip": false,
"created_at": "2026-10-21T09:15:04.102Z",
"updated_at": "2026-10-21T09:15:04.102Z"
}
}
}ping
{
"id": "evt_0d7c5b3a1f9e8d6c4b2a0f1e3d5c7b9a",
"type": "ping",
"created_at": "2026-10-21T09:21:00.000Z",
"company_id": "6a0c4e8b-7d2f-4a1c-9e5b-8d3f2a7c0e19",
"data": { "message": "Проверка подписки Дескуса. Ответьте 2xx — и события начнут приходить." }
}id события постоянный: повтор доставки, повторный разбор — тот же id. Храните обработанные id хотя бы сутки и пропускайте известные.
