Вебхуки срабатывают при изменениях в диалогах и новых сообщениях — это позволит запустить процессы вне Еадеска, например, создать задачу в таск-менеджере при новом диалоге.
Для работы с вебхуками требуются навыки программирования.
Вебхуки — инструмент для оповещения об изменениях в системе, работают по протоколу HTTP. В Еадеске поддерживаются следующие события:
Новый диалог — срабатывает, когда в Еадеске создаётся новый входящий или исходящий диалог.
Обновление диалога — срабатывает при любом изменении ответственного или статуса.
Новое сообщение — срабатывает, когда в существующем диалоге создаётся новое входящее или исходящее сообщение клиента или пользователя.
Вебхуки POST-запросом передают данные на указанный вами сервер. В ответ необходимо ответить кодом 200, иначе хук считается не успешно отправленным и наш сервер отправляет запрос повторно. После пяти неудачных попыток, сервер перестаёт отправлять запросы.
Вебхуки отправляются в формате JSON, объекты body (тело запроса) из POST-запроса по каждому типу описаны ниже.
Управление вебхуками
Вебхуки доступны только на старших тарифах и во время тестового периода. Смените тариф перед использованием.
Чтобы получать вебхуки, необходимо из интерфейса Еадеска задать серверы, на которые будут отправляться запросы. Для этого перейдите в Настройка → API и вебхуки и нажмите на «плюсик».
Для добавления вебхука заполните поля:
Название — поможет быстро различать добавленные сервера.
URL — адрес вашего сервера, на который будут отправляться POST-запросы.
События — отметьте галочками события, на которые будут отправляться вебхуки.
Когда все поля будут заполнены — нажмите «Сохранить», чтобы добавить новый сервер.
1. Новый диалог
Событие «Новый диалог» срабатывает, когда в Еадеске создаётся новый входящий или исходящий диалог. Пример данных из вебхука при создании:
Событие «Новое сообщение» срабатывает, когда в существующем диалоге создаётся новое входящее или исходящее сообщение клиента или пользователя. Пример данных из вебхука при создании нового входящего сообщения:
id ответственного. Необязательное поле, присутствует в хуках, связанных с назначением/сменой ответственного.
responsibleUserName
строка
имя ответственного. Необязательное поле, присутствует в хуках, связанных с назначением/сменой ответственного.
dialogId
строка
идентификатор диалога в Еадеске.
url
строка
ссылка на диалог в Еадеске.
title
строка
тема диалога.
contactsId
строка
id контактных данных, связанных с диалогом (автор).
origin
строка
источник диалога, типы:
mail для диалога из электронной очты,
chatra — Чатра,
pbx — телефония,
skype — Скайп,
fb — Фейсбук,
ig — Инстаграм,
telegram — Телеграм,
whatsapp — Вотсап,
vk — ВКонтакте,
custom — кастомный канал,
demo — служебный канал Еадеска.
status
строка
статус диалога. Необязательное поле, присутствует в хуках, связанных со сменой статуса.
channelId
строка
id канала из Еадеска, помогает определить через какой-канал был создан диалог и ведётся переписка.
channelName
строка
не уникальное название канала, помогает быстро ориентироваться между всеми каналами Еадеска.
labels
массив
перечень всех актуальных тегов в этом диалоге.
addedLabel
строка
один добавленный тег.
removedLabel
строка
один удалённый тег.
waitingTill
строка
дата в формате ISO, при достижении которой статус диалога будет сменен на 'opened'. Необязательное поле, присутствует в хуках, связанных с переводом диалога в ожидание.
closedBy
строка
id пользователя, закрывшего диалог, в Еадеске. Необязательное поле, присутствует в хуках, связанных с закрытием диалога.
contact
объект
объект контактных данных, состоит из _id (строка), name (строка), description (строка, необязательное поле), contacts (массив контактных данных).
contact.contacts
массив
состоит из объектов, каждый из которых содержит:
id — уникальный идентификатор элемента контактных данных.
value — например, "hello@yandex.ru".
type — например "mail", необходимый для интерпретации value.
service — например "mail", сервис для которого используется данное value.
origin — например "chatra", сервис, который создал данный элемент контактных данных.
Параметр
Тип
Описание
id
строка
уникальный идентификатор вебхука.
timestamp
число
количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Создается в момент конструирования данных перед их отправкой в очередь.
type
строка
для идентификации типа хука, в данном случае message creation.
dialogId
строка
идентификатор диалога в Еадеске.
url
строка
ссылка на диалог в Еадеске.
title
строка
тема диалога.
contactsId
строка
id контактных данных, связанных с диалогом (автор).
origin
строка
источник диалога, типы:
mail для диалога из электронной очты,
chatra — Чатра,
pbx — телефония,
skype — Скайп,
fb — Фейсбук,
ig — Инстаграм,
telegram — Телеграм,
whatsapp — Вотсап,
vk — ВКонтакте,
custom — кастомный канал,
demo — служебный канал Еадеска.
channelId
строка
id канала из Еадеска, помогает определить через какой-канал был создан диалог и ведётся переписка.
channelName
строка
не уникальное название канала, помогает быстро ориентироваться между всеми каналами Еадеска.
message
объект
объект сообщения, содержит в себе поля:
_id(строка) — id сообщения в Еадеске,
text(строка) — сообщение в текстовой форме. Необязательное поле (пример - в некоторых мессенджерах вложение передается как отдельное сообщение).
html(строка) — сообщение с форматированием. Необязательное поле (практически все мессенджеры не позволяют применять форматирование).
direction(строка) — направление сообщения (in/out). Необязательное поле, его отсутствие означает direction: 'out'.
attachments(число) — количество приложенных файлов.
messageAuthor
объект
объект пользователя, который инициировал создание сообщения. Состоит из:
id (строка) — id пользователя в системе,
type (строка) — пока передаёт единственное значение 'user', пользователь системы. Будет расширяться по мере обновления,
name (строка) — имя этого пользователя в Еадеске.
contact
объект
объект контактных данных, состоит из:
_id (строка)
name (строка)
description (строка, необязательное поле)
contacts (массив контактных данных)
contact.contacts
массив
состоит из объектов, каждый из которых содержит:
id — уникальный идентификатор элемента контактных данных.
value — например, "hello@yandex.ru".
type — например "mail", необходимый для интерпретации value.
service — например "mail", сервис для которого используется данное value.
origin — например "chatra", сервис, который создал данный элемент контактных данных.