Вебхуки
Вебхуки срабатывают при изменениях в диалогах и новых сообщениях — это позволит запустить процессы вне Еадеска, например, создать задачу в таск-менеджере при новом диалоге.
Для работы с вебхуками требуются навыки программирования.
Вебхуки — инструмент для оповещения об изменениях в системе, работают по протоколу HTTP. В Еадеске поддерживаются следующие события:
Новый диалог — срабатывает, когда в Еадеске создаётся новый входящий или исходящий диалог.
Обновление диалога — срабатывает при любом изменении ответственного или статуса.
Новое сообщение — срабатывает, когда в существующем диалоге создаётся новое входящее или исходящее сообщение клиента или пользователя.
Вебхуки POST-запросом передают данные на указанный вами сервер. В ответ необходимо ответить кодом 200, иначе хук считается не успешно отправленным и наш сервер отправляет запрос повторно. После пяти неудачных попыток, сервер перестаёт отправлять запросы.
Вебхуки отправляются в формате JSON, объекты body (тело запроса) из POST-запроса по каждому типу описаны ниже.
Управление вебхуками
Вебхуки доступны только на старших тарифах и во время тестового периода. Смените тариф перед использованием.
Чтобы получать вебхуки, необходимо из интерфейса Еадеска задать серверы, на которые будут отправляться запросы. Для этого перейдите в Настройка → API и вебхуки и нажмите на «плюсик».
Для добавления вебхука заполните поля:
Название — поможет быстро различать добавленные сервера.
URL — адрес вашего сервера, на который будут отправляться POST-запросы.
События — отметьте галочками события, на которые будут отправляться вебхуки.
Когда все поля будут заполнены — нажмите «Сохранить», чтобы добавить новый сервер.
1. Новый диалог
Событие «Новый диалог» срабатывает, когда в Еадеске создаётся новый входящий или исходящий диалог. Пример данных из вебхука при создании:
Тело запроса содержит следующие параметры.
Параметр | Тип | Описание |
id | строка | уникальный идентификатор вебхука |
timestamp | число | количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Создается в момент конструирования данных перед их отправкой в очередь. |
type | строка | для идентификации типа хука, в данном случае - 'dialog creation'. |
dialogId | строка | идентификатор диалога в Еадеске. |
url | строка | ссылка на диалог в Еадеске. |
title | строка | тема диалога |
contactsId | строка | id контактных данных, связанных с диалогом (автор) |
origin | строка | источник диалога, типы:
|
channelId | строка | id канала из Еадеска, помогает определить через какой-канал был создан диалог и ведётся переписка. |
channelName | строка | не уникальное название канала, помогает быстро ориентироваться между всеми каналами Еадеска. |
contact | объект | объект контактных данных, состоит из _id (строка), name (строка), description (строка, необязательное поле), contacts (массив контактных данных) |
contact.contacts | массив | состоит из объектов, каждый из которых содержит:
|
2. Обновление диалога
Это событие срабатывает при любом изменении статуса диалога, тегов или ответственного.
2.1 Пример вебхука при закрытии диалога — смена статуса на «Закрыто»:
2.2 При изменении статуса на «Отложено» придёт такой вебхук:
2.3 При изменении ответственного пользователя внутри диалога:
2.4 Добавление тега:
2.5 Удаление тега:
Тело запроса содержит следующие параметры.
Параметр | Тип | Описание |
id | строка | уникальный идентификатор вебхука. |
timestamp | число | количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Создается в момент конструирования данных перед их отправкой в очередь. |
type | строка | для идентификации типа хука, в данном случае может принимать значения:
|
responsibleId | строка | id ответственного. Необязательное поле, присутствует в хуках, связанных с назначением/сменой ответственного. |
responsibleUserName | строка | имя ответственного. Необязательное поле, присутствует в хуках, связанных с назначением/сменой ответственного. |
dialogId | строка | идентификатор диалога в Еадеске. |
url | строка | ссылка на диалог в Еадеске. |
title | строка | тема диалога. |
contactsId | строка | id контактных данных, связанных с диалогом (автор). |
origin | строка | источник диалога, типы:
|
status | строка | статус диалога. Необязательное поле, присутствует в хуках, связанных со сменой статуса. |
channelId | строка | id канала из Еадеска, помогает определить через какой-канал был создан диалог и ведётся переписка. |
channelName | строка | не уникальное название канала, помогает быстро ориентироваться между всеми каналами Еадеска. |
labels | массив | перечень всех актуальных тегов в этом диалоге. |
addedLabel | строка | один добавленный тег. |
removedLabel | строка | один удалённый тег. |
waitingTill | строка | дата в формате ISO, при достижении которой статус диалога будет сменен на 'opened'. Необязательное поле, присутствует в хуках, связанных с переводом диалога в ожидание. |
closedBy | строка | id пользователя, закрывшего диалог, в Еадеске. Необязательное поле, присутствует в хуках, связанных с закрытием диалога. |
contact | объект | объект контактных данных, состоит из _id (строка), name (строка), description (строка, необязательное поле), contacts (массив контактных данных). |
contact.contacts | массив | состоит из объектов, каждый из которых содержит:
|
3. Новое сообщение
Событие «Новое сообщение» срабатывает, когда в существующем диалоге создаётся новое входящее или исходящее сообщение клиента или пользователя. Пример данных из вебхука при создании нового входящего сообщения:
Пример для исходящего сообщения:
Тело запроса содержит следующие параметры.
Параметр | Тип | Описание |
id | строка | уникальный идентификатор вебхука. |
timestamp | число | количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Создается в момент конструирования данных перед их отправкой в очередь. |
type | строка | для идентификации типа хука, в данном случае message creation. |
dialogId | строка | идентификатор диалога в Еадеске. |
url | строка | ссылка на диалог в Еадеске. |
title | строка | тема диалога. |
contactsId | строка | id контактных данных, связанных с диалогом (автор). |
origin | строка | источник диалога, типы:
|
channelId | строка | id канала из Еадеска, помогает определить через какой-канал был создан диалог и ведётся переписка. |
channelName | строка | не уникальное название канала, помогает быстро ориентироваться между всеми каналами Еадеска. |
message | объект | объект сообщения, содержит в себе поля:
|
messageAuthor | объект | объект пользователя, который инициировал создание сообщения. Состоит из:
|
contact | объект | объект контактных данных, состоит из:
|
contact.contacts | массив | состоит из объектов, каждый из которых содержит:
|
Last updated