Вебхуки: что это такое и как они помогают при интеграции внешних сервисов с Битрикс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:
При этом можно настроить вебхук как в личном кабинете (ЛК) Пинкит, так и через активити в бизнес-процессе (в нужном месте бизнес-процесса будет вызываться интеграция в ЛК Пинкит).
Итог
В статье мы разобрали, что такое вебхук и в каких случаях он может помочь. Но если вы не хотите заморачиваться, отправьте нам заявку, и мы предложим вам наиболее подходящий вариант для интеграции между вашими сервисами.
Искусство объяснить так, чтобы не стало понятно ничего ))
Сможете описать чтобы стало понятно? Т.е. вашу расшифровку в студию плз.
А я хз, мне надо было объяснить так, чтобы я понял. Аффтар с задачей не справился ))
неплохой заброс, пишите еще )
Вообще взяли это из википедии. Наши клиенты вебхуками называют любой скрипт, который что то дергает. Как это пояснение? )
Пиздец пояснение, теперь все ясно )) Спасибо. Хреновиной по загогулине.
А вот мы честно старались, как видите, подробно описали и что это такое, когда вебхук полезен, когда вреден, как его правильно использовать.
Неплохая попытка для Хабра, но здесь всем сиренево на такие заморочки.
Это как сказать, мы же не ищем среди тех, кто на VC клиентов. Мы на каждую страницу на VC готовим рассылку по своей базе и последовательно показываем нюансы своей клиентской базе, в первую очередь.
Есть противоречие, вы пишите, что внешние скрипты на PHP, это зло, однако, что представляет ваш сервис Пинкит? Те же PHP скрипты? 🤡
Далее вы пишите, что внешние PHP скрипты это плохо, потому, что могут создать большую нагрузку. Увольте, PHP 8 и выше отлично работает с памятью и кешем, от проблем с выстрелом в себе ногу также не защищен ваш сервис. 🤦🏼♂️
Далее, ваш сервис закроется, что делать заказчикам? А скрипты на своей VDS были и будут, пока будет оплачиваться серверное время. 🤝
Далее, ваш сервис закроется, что делать заказчикам? А скрипты на своей VDS были и будут, пока будет оплачиваться серверное время. 🤝
Полагаю, что Вы не серьезно это пишите. Иначе это означает что Вы против создания вебсервисов и " топите" за локальную разработку на своих серверах.
Каждый раз цитирование себя + лайк со своего аккаунта подсоса, просто бред.
🤡
Цитируя себя вот так, по каждому посту, боже, какой брееед.
🤦🏼♂️
А по сути комментариев можете что-то дополнить? Вы же явно грамотный человек.
Ну это ладно, это тоже самое нам говорить, а чего Вы на своем сайте эту публикацию не пишите, а пишите тут. Мы и Вам пишем, чтобы публикация поднялась повыше.
1.
Данный скрипт мог давать значительную нагрузку на сервер, а если в нем были допущены ошибки, это могло привезти к падению сервера.
А что в этом хорошего?
2.
Те же PHP скрипты? 🤡
Сейчас вебхуки создаются без разработки как интеграция между порталом А и порталом А (если это автоматизация одного портала). Благодаря Пинкит, мы поддерживаем всю библиотеку REST API Битрикс24 и теперь можем дотянуться до всех нужных полей внутри вашего портала Битрикс24:
У нас есть проверка запуска интеграции и система очередей.
т.е. это не тоже самое и мы поэтому и написали что у нас было раньше и к чему мы пришли в Пинкит.
Далее вы пишите, что внешние PHP скрипты это плохо, потому, что могут создать большую нагрузку. Увольте, PHP 8 и выше отлично работает с памятью и кешем, от проблем с выстрелом в себе ногу также не защищен ваш сервис. 🤦🏼♂️
Красиво написали, прямо хочется согласиться, если бы не куча прецендентов, когда установленный вебхук на сервере у клиента вызывал падение сайта, который там же расположен.
Котик, почему ты грустишь, котик. У тебя же милая мордашка.
Девушка, перелогиньтесь. Вас принимают за мущину ))