Вебхуки

Вебхук – это механизм в 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 и название задачи.

Если для одного события настроено несколько вебхуков, порядок их вызова определяется приоритетом: чем выше значение приоритета, тем раньше вызывается вебхук. Если выполнение одного вебхука завершается ошибкой, это не останавливает вызов остальных вебхуков для этого события.

Сценарий работы
с вебхуками

  1. Выбрать подходящее событие.
  2. Подготовить внешний URL-обработчик.
  3. Получить секретный ключ для проверки подписи в разделе Настройки системы или с помощью метода hook.get_secret.
  4. Создать вебхук в laxo в разделе Настройки системы или с помощью метода hook.add.
  5. При наступлении события принять POST-запрос на стороне внешнего сервиса.
  6. Проверить подпись запроса и обработать переданные данные.
  7. Вернуть 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.
Остались вопросы? Спросите в чате В нашем сообществе в Telegram можно быстро задать вопрос, получить подсказку от команды Laxo или обменяться опытом с другими пользователями.