Вебхук – это механизм в laxo для автоматической реакции на события, которые происходят в портале. С помощью вебхуков можно передавать данные во внешние системы после создания или изменения сделок, контактов, задач и других поддерживаемых объектов.
Управление вебхуками находится в разделе Настройки системы. Вебхук состоит из названия, события, обработчика, статуса и приоритета. Событие определяет, когда должен сработать вебхук, например при создании сделки, изменении контакта или завершении задачи. Обработчик определяет, куда будут переданы данные. Для API в качестве обработчика используется URL внешнего сервиса.
| СПИСОК ПОДДЕРЖИВАЕМЫХ СОБЫТИЙ ВЕБХУКОВ | |
|---|---|
| Номер | Примечание |
contact_add | Срабатывает после создания контакта. Передает данные контакта, ID пользователя, поля и метки. |
contact_change | Срабатывает после изменения контакта. Передает данные контакта и список измененных полей. |
contact_delete | Срабатывает после удаления контакта. Передает ID и имя контакта. |
order_create | Срабатывает после создания сделки. Передает данные сделки, связанный контакт, поля и метки. |
order_change | Срабатывает после изменения сделки. Передает данные сделки и список измененных полей. |
order_status_change | Срабатывает после изменения статуса сделки. Передает ID сделки, старый статус и новый статус. |
order_delete | Срабатывает после удаления сделки. Передает ID и название сделки. |
job_create | Срабатывает после создания задачи. Передает ID задачи, название, срок и исполнителей. |
job_change | Срабатывает после изменения задачи. Передает данные задачи и список измененных полей. |
job_done | Срабатывает после завершения задачи. Передает данные задачи и результат выполнения. |
job_delete | Срабатывает после удаления задачи. Передает ID и название задачи. |
Если для одного события настроено несколько вебхуков, порядок их вызова определяется приоритетом: чем выше значение приоритета, тем раньше вызывается вебхук. Если выполнение одного вебхука завершается ошибкой, это не останавливает вызов остальных вебхуков для этого события.
Сценарий работы
с вебхуками
- Выбрать подходящее событие.
- Подготовить внешний URL-обработчик.
- Получить секретный ключ для проверки подписи в разделе
Настройки системыили с помощью методаhook.get_secret. - Создать вебхук в laxo в разделе
Настройки системыили с помощью методаhook.add. - При наступлении события принять POST-запрос на стороне внешнего сервиса.
- Проверить подпись запроса и обработать переданные данные.
- Вернуть HTTP-код результата обработки. Обработчик должен вернуть HTTP-код меньше
400. Если обработчик возвращает код400или выше, laxo считает вызов вебхука завершенным с ошибкой.
Проверка подписи
Подпись передается во внешний сервис в заголовке X-Laxo-Signature и формируется по алгоритму HMAC-SHA256:
HMAC_SHA256(timestamp + "." + raw_body, hook_secret)timestamp– значение заголовка X-Laxo-Timestamp;"."– символ точки (без кавычек);raw_body– исходное тело запроса без изменений;hook_secret– секретный ключ, полученный черезhook.get_secret.