WebHooks

Общее

Для получения уведомлений о событиях, происходящих в компании, можно подписаться на вебхуки. Это рекомендуемый способ получения уведомлений.

Подписка на вебхуки

Для подписки на вебхуки необходимо задать адрес, на который они будут приходить, указать, для какого из подключений вы хотите получать вебхуки и указать список событий, уведомления о которых вам нужны.
post
https://api.radist.online/v2
/companies/{company_id}/webhooks/
Create Item

Формат вебхука

Общий формат такой:
{
"company_id": 123,
"event_type": "string",
"event": {}
}
Содержимое event зависит от event_type:

messages.create:

{
"connection_id": 12345,
"contact_id": 12345,
"chat_id": "string",
"message": {}
}
Схема объекта message (см. модель Message): https://api.radist.online/v2/docs#/model-Message

messages.delivery.{delivered|read|error}:

{
"connection_id": 12345,
"contact_id": 12345,
"chat_id": "string",
"message_id": "string"
}

Замечания

  • Обрабатывайте вебхуки асинхронно. Сохранили в очередь, ответили, что приняли, и только потом обработали.
  • На обновление настроек вебхуков может потребоваться до 5 минут. В течение этого времени вебхуки всё ещё могут приходить на ранее указанные адреса.
  • Сервер вебхуков ожидает ответ со статусами 200, 201, 202 в течение 5 секунд.
  • Если был получен ответ со статусом 4xx, то повторной отправки вебхука не будет.
  • Если был получен другой ответ, то вебхук будет отправлен повторно до 60 раз с интервалом в 1 минуту.
  • Тело ответа/заголовки ответа игнорируются. Рекомендуем сократить их до минимума.

Примеры

{
"company_id": 12345,
"event_type": "messages.create",
"event": {
"connection_id": 123123,
"contact_id": 217140,
"chat_id": 1036686,
"message": {
"message_id": "99f84d61-be74-4115-8c18-1b0665e86c1a",
"source_message_id": "ABGGdJU3RRh_AhDiDXJCHmT_qvf821W6D4MV",
"chat_id": "79000000000",
"direction": "inbound",
"message_type": "text",
"created_at": "2022-04-20T14:22:54+00:00",
"delivered_at": null,
"read_at": null,
"error_at": null,
"text": {
"text": "Да"
}
}
}
}
{
"company_id": 12345,
"event_type": "messages.create",
"event": {
"connection_id": 123123,
"contact_id": 1,
"chat_id": 186008,
"message": {
"message_id": "4264f6ad-b750-45a1-956f-46baca4ffee9",
"source_message_id": "ABGGeRclMZhPAhB6PMPU6R42Cx0sqcp_iA_E",
"chat_id": "79000000001",
"direction": "inbound",
"message_type": "image",
"created_at": "2022-04-20T14:28:11+00:00",
"delivered_at": null,
"read_at": null,
"error_at": null,
"image": {
"caption": "Мятный карась",
"name": "e5dd4a70b5cb4e3c3957f64a.jpg",
"size": 73065,
"mime_type": "image/jpeg",
"url": "https://example.org/file.jpg
}
}
}
}
{
"company_id": 12345,
"event_type": "messages.delivery.delivered",
"event": {
"connection_id": 123123,
"contact_id": 217140,
"chat_id": 1036686,
"message_id": "3fe648ad-fbb4-4412-9081-2ee31b02a164"
}
}
{
"company_id": 12345,
"event_type": "messages.delivery.read",
"event": {
"connection_id": 123123,
"contact_id": 217140,
"chat_id": 1036686,
"message_id": "3fe648ad-fbb4-4412-9081-2ee31b02a164"
}
}