{"id":14285,"url":"\/distributions\/14285\/click?bit=1&hash=346f3dd5dee2d88930b559bfe049bf63f032c3f6597a81b363a99361cc92d37d","title":"\u0421\u0442\u0438\u043f\u0435\u043d\u0434\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f","buttonText":"","imageUuid":""}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итог

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

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

Алексей Окара, основатель Пинол и продакт-менеджер Пинкит
0
21 комментарий
Написать комментарий...
Vasili Kubarev
Вебхук - метод расширения или изменения поведения веб-приложения с помощью обратных вызовов

Искусство объяснить так, чтобы не стало понятно ничего ))

Ответить
Развернуть ветку
Vitaly Shorin

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

Ответить
Развернуть ветку
Vasili Kubarev

А я хз, мне надо было объяснить так, чтобы я понял. Аффтар с задачей не справился ))

Ответить
Развернуть ветку
Пинол

неплохой заброс, пишите еще )

Ответить
Развернуть ветку
Пинол

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

Ответить
Развернуть ветку
Vasili Kubarev

Пиздец пояснение, теперь все ясно )) Спасибо. Хреновиной по загогулине.

Ответить
Развернуть ветку
Пинол

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

Ответить
Развернуть ветку
Vasili Kubarev

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

Ответить
Развернуть ветку
Пинол

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

Ответить
Развернуть ветку
Тот самый партизан

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

Ответить
Развернуть ветку
Пинол

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

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

Ответить
Развернуть ветку
Тот самый партизан

Каждый раз цитирование себя + лайк со своего аккаунта подсоса, просто бред.
🤡

Ответить
Развернуть ветку
Тот самый партизан

Цитируя себя вот так, по каждому посту, боже, какой брееед.
🤦🏼‍♂️

Ответить
Развернуть ветку
Пинол

А по сути комментариев можете что-то дополнить? Вы же явно грамотный человек.

Ответить
Развернуть ветку
Пинол

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

Ответить
Развернуть ветку
Пинол

1.

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

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

Ответить
Развернуть ветку
Пинол

2.

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

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

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

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

Ответить
Развернуть ветку
Пинол

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

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

Ответить
Развернуть ветку
ALEXEY OKARA
Ответить
Развернуть ветку
Сергей Тихонов

Котик, почему ты грустишь, котик. У тебя же милая мордашка.

Ответить
Развернуть ветку
Vasili Kubarev

Девушка, перелогиньтесь. Вас принимают за мущину ))

Ответить
Развернуть ветку
18 комментариев
Раскрывать всегда