Вебхук (WebHook) - упрощенный вариант REST-событий и REST-команд, не требующий написания приложения.

Для создания вебхуков необходимо перейти в раздел Приложения - Вебхуки (https://helpdesk.bitrix24.ru/open/5408147/)

или Приложения - разработчикам 

Переходим в раздел Другое

выбираем опцию "исходящий вебхук" или "входящий вебхук"

Исходящий вебхук (если мы не используем новый виджет)

Создать 1 исходящий вебхук на адрес Логуса:

  • Создание контакта
  • Обновление контакта
  • Создание компании
  • Обновление компании
  • Создание сделки
  • Обновление сделки

В поле "Адрес обработчика" необходимо указать внешний (белый) адрес роутера объекта(без порта).

Если сервер Битрикс находится в облаке:
  1. В конфигурационном файле в настройках Битрикс указывается <EventsBaseUrl> - маска подключения к серверу Логуса (протокол и порт).
    Порт, запросы с которого будет отслеживать модуль Битрикс.
    Например: http://*:8080/
  2. Далее Администратор объекта должен настроить проброс портов, сопоставить локальный адрес сервера Логуса (например: 192.168.11.10:8080) с внешним (белым) адресом роутера объекта (например: 197.111.78.65:76765)
  3. Именно внешний (белый) адрес необходимо указывать в настройках Исходящих вебхуков в поле Адрес обработчика

В итоге, как происходит взаимодействие Битрикс и Логуса:

  1. Происходит какое-либо событие на стороне Битрикс (исходящий вебхук)
  2. Отправляется запрос по адресу 197.111.78.65:76765 - внешний (белый) адрес роутера объекта
  3. В соответствии с настройками проброса портов происходит перенаправление запроса на локальный адрес сервера Логуса 192.168.11.10:8080
  4. Модуль Битрикса получает запрос через 8080 порт и обрабатывает его
Если сервер Битрикс развёрнут локально на объекте.

В таком случае в настройках Исходящих вебхуков в поле Адрес обработчика прописывается локальный адрес сервера Логуса. То есть в нашем примере: 192.168.11.10:8080

Если Битрикс развёрнут локально у клиента, а не в облаке, то необходимо убедиться, что сервер Логуса доступен по локальному адресу с сервера Битрикс, например командой:

curl http://logus_server:8080/

где logus_server - локальный адрес сервера Логуса

Бывали случаи, когда теряли много времени, а сервер Битрикс оказывался в отдельном VLAN/DMZ и не имел доступа к серверу Логуса. В этом случае и сам Битрикс будет подвисать при операциях, требующих вызова вебхука - ожидать таймаута по 30 секунд.


Если Битрикс установлен локально, то необходимо обратиться в поддержку. В этом случае настраивается, что он это делает запросы через сервер авторизаций, который доступен по данным ip адресам:
["195.208.184.200", "89.208.230.2", "195.208.184.34", "89.208.228.219"]


Поля «Название» и «Комментарий» заполнить по желанию.

В поле «Cобытия» отметить 6 типов событий.

После сохранения вебхука будет сгенерирован Код авторизации(Токен) в виде строки из случайных знаков.

Этот код позволит внутри модуля Битрикс проверить, действительно ли обработчик вызван вашим Битрикс.

Проверку вебхуков можно выполнить через  <CheckWebHookAuthorizationCodes>

  • True - проверка вебхуков выполняется
  • False - проверка вебхуков выполняться не будет

Для безопасной и корректной работы синхронизации следует оставлять проверку включённой. <CheckWebHookAuthorizationCodes>True</CheckWebHookAuthorizationCodes>.

При активной проверке все коды авторизации необходимо добавить в конфиг в секции <WebHookAuthorizationCodes>. Коды перечисляются через запятую (пробелы, табуляции и переносы на новую строку допускаются, порядок кодов значения не имеет).

Исходящий вебхук (если мы используем новый виджет)

Создать 1 исходящий вебхук на адрес Логуса:

  • Создание контакта
  • Обновление контакта
  • Создание компании
  • Обновление компании

В поле "Адрес обработчика" необходимо указать внешний (белый) адрес роутера объекта(без порта).

В поле EventsBaseUrl указываем внутренний порт, <EventsBaseUrl>http://*:8080/</EventsBaseUrl>

Входящий вебхук

Создать один входящий вебхук, и предоставить ему права к следующим разделам: Пользователи (user), Списки (lists) и CRM (crm).

После сохранения изменений будет сформирован уникальный код.

Для настройки вебхука необходимо в logus.local.config в секции <Bitrix> 

В поле <Domain> прописать https://b24-vubtot.bitrix24.ru

В поле <WebHookId> прописать уникальный код (9a2omx22gcsc8stq) для авторизации вебхука.

Внимание! Данный код является конфиденциальной информацией. Его необходимо держать в секрете.

Вместе с кодом будет представлен образец URL, который нужно использовать при отправке данных из Логуса в Bitrix24 (для разработчиков системы):
https://********.bitrix24.ru/rest/1/5sb---------1wg/profile/ 
где:

  • ******** - имя вашего портала;
  • /rest/ - указание системе на то, что данный адрес относится в вебхукам;
  • /1/ - идентификатор пользователя, создавшего вебхук. Под правами этого пользователя будет работать этот вебхук.
  • /5sb---------1wg/ - код авторизации вебхука;
  • /profile/ - метод REST, который вы хотите выполнить, обращаясь к вебхуку. Разработчик должен сам подобрать метод из REST API в зависимости от целей создания вебхука.