ДескусДескус · Документация
Все разделыВебхуки

Формат событий

У всех событий одна обёртка: 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…

Заголовок

Что в нём

X-Deskus-Event

Тип события, как поле type

X-Deskus-Delivery

Доставка: у повтора — тот же. По нему ищите доставку в журнале

X-Deskus-Timestamp

Время отправки этой попытки, секунды Unix

X-Deskus-Signature

Подпись тела (как проверить)

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 хотя бы сутки и пропускайте известные.

Не нашли ответ? Напишите нам
Поддержка ответит в рабочее время.
Вы сотрудник «Дескус»?Изменить статью в Дескусе