Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

Узнайте, что такое вебхуки, как их использовать при автоматизации ваших проектов в Битрикс24. Разберем варианты их применения при автоматизации того или иного функционала в CRM.

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

1. Предыстория.

В этой статье мы рассказывали про интеграцию DashaMail и Битрикс24, которая автоматически передает статусы рассылки из DashaMail (прочитано, есть переход, отписался) в лид и контакт на стороне Битрикс24. Интеграции были реализованы с помощью поллинга (супер простыми словами, это отправка http-запросов на сервер API с целью проверки появления новых данных). То есть, это периодический опрос сервера стандартными пакетами: "Изменилось ли что-то"? Данная технология позволяла получать статусы из рассылки и записывать их в сущности Битрикс24.

Но один наш клиент отправил особенно большую рассылку — объем запросов превысил миллион за сутки (и это от одного клиента!). Естественно, такая нагрузка была выше допустимой и интеграция легла, не отработав как нужно (статусы в Битрикс24 не прилетели).

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

Проблема крылась именно в большом количестве почтовых сообщений. Многостадийный поллинг работал следующим образом: сначала уходит запрос на список рассылок, а потом — на письма из каждой рассылки.

Ранее этот функционал мы разработали для настройки интеграции с сервисом Webinar.ru. Там вопрос о перенагрузке удалось обойти, ограничив количество участников. Установив определенный лимит на подключения к вебинару, клиент обошелся без доработки. Но на самом деле, это не было оптимальным решением проблемы, и тогда мы решили использовать вебхуки.

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

2. Что же такое вебхук?

Вебхук - метод расширения или изменения поведения веб-приложения с помощью обратных вызовов

Вебхуками мы пользуемся достаточно давно. Часто от клиентов поступают запросы на реализацию какого-то их сценария, когда штатный функционал Битрикс24 не позволяет его реализовать. В таком случае, разработчик писал php-скрипт, который размещался на нашем сервере или сервере клиента:

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24
Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

В чем недостаток такого метода?

Данный скрипт мог давать значительную нагрузку на сервер, а если в нем были допущены ошибки, это могло привезти к падению сервера. Вебхук мы использовали, чтобы запустить этот скрипт, и настраивался он на стороне Битрикс24.

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

Оценить нагрузку вебхука на сервер можно с помощью инструмента Статистика использования REST: в разделе Битрикс24 "Приложения" —> "Маркет" —> "Разработчикам" —> "Статистика". Тут можно просмотреть количество запросов по каждому вебхуку:

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

Вернемся к случаю с клиентом, который делает большие рассылки. Чтобы не тормозили остальные интеграции в проекте, мы с помощью вебхуков вынесли часть запросов в отдельную очередь. Реализация на вебхуках позволила разгрузить очередь, и в этом случае мы получили больше плюсов, чем минусов.

Но основная проблема была в том, что локальные вебхуки находятся на сервере клиента, и когда он запускал, например, вебхук каждые 5 минут, то это могло положить сервер.

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

3. Как мы решили проблему с падениями серверов при использовании вебхуков

Благодаря нашей платформе Пинкит больше не нужно размещать PHP-скрипты на каком-то сервере, достаточно настроить интеграцию с нужным сценарием в личном кабинете Пинкит и запустить эту интеграцию с помощью вебхука, например, из бизнес-процесса:

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24
Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

Сейчас вебхуки создаются без разработки как интеграция между порталом А и порталом А (если это автоматизация одного портала). Благодаря Пинкит, мы поддерживаем всю библиотеку REST API Битрикс24 и теперь можем дотянуться до всех нужных полей внутри вашего портала Битрикс24:

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

При этом можно настроить вебхук как в личном кабинете (ЛК) Пинкит, так и через активити в бизнес-процессе (в нужном месте бизнес-процесса будет вызываться интеграция в ЛК Пинкит).

Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24

Итог

В статье мы разобрали, что такое вебхук и в каких случаях он может помочь. Но если вы не хотите заморачиваться, отправьте нам заявку, и мы предложим вам наиболее подходящий вариант для интеграции между вашими сервисами.

Осталось совсем немного до конца марта - успейте купить Пинкит по акции: цена снижена в 8 раз для вас!

Алексей Окара, основатель Пинол и продакт-менеджер Пинкит
Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс24
77
21 комментарий

Вебхук - метод расширения или изменения поведения веб-приложения с помощью обратных вызововИскусство объяснить так, чтобы не стало понятно ничего ))

4
Ответить

Сможете описать чтобы стало понятно? Т.е. вашу расшифровку в студию плз.

2
Ответить

Вообще взяли это из википедии. Наши клиенты вебхуками называют любой скрипт, который что то дергает. Как это пояснение? )

Ответить

Есть противоречие, вы пишите, что внешние скрипты на PHP, это зло, однако, что представляет ваш сервис Пинкит? Те же PHP скрипты? 🤡
Далее вы пишите, что внешние PHP скрипты это плохо, потому, что могут создать большую нагрузку. Увольте, PHP 8 и выше отлично работает с памятью и кешем, от проблем с выстрелом в себе ногу также не защищен ваш сервис. 🤦🏼‍♂️
Далее, ваш сервис закроется, что делать заказчикам? А скрипты на своей VDS были и будут, пока будет оплачиваться серверное время. 🤝

2
Ответить

Далее, ваш сервис закроется, что делать заказчикам? А скрипты на своей VDS были и будут, пока будет оплачиваться серверное время. 🤝

Полагаю, что Вы не серьезно это пишите. Иначе это означает что Вы против создания вебсервисов и " топите" за локальную разработку на своих серверах.

1
Ответить

1.

Данный скрипт мог давать значительную нагрузку на сервер, а если в нем были допущены ошибки, это могло привезти к падению сервера.

А что в этом хорошего?

1
Ответить

2.

Те же PHP скрипты? 🤡

Сейчас вебхуки создаются без разработки как интеграция между порталом А и порталом А (если это автоматизация одного портала). Благодаря Пинкит, мы поддерживаем всю библиотеку REST API Битрикс24 и теперь можем дотянуться до всех нужных полей внутри вашего портала Битрикс24:

У нас есть проверка запуска интеграции и система очередей.

т.е. это не тоже самое и мы поэтому и написали что у нас было раньше и к чему мы пришли в Пинкит.

1
Ответить