Вебхук (webhook)

Автор статьи
Марина Ибушева

Вебхук (webhook) — это механизм взаимодействия между сервисами. С помощью вебхуков сайты или приложения обмениваются данными в реальном времени.

Если объяснять простыми словами алгоритм, то вебхук работает следующим образом. Представим, что у нас есть Приложение А и Приложение Б. Мы даем команду Приложению А отправить сообщение, если на площадке произойдет важное для нас событие — например, пользователь оформит заказ или оставит комментарий под постом. 

Когда это событие происходит, Приложение А отправляет Приложению Б сообщение (HTTP-запрос). Приложение Б получает это сообщение и выполняет какие-то действия — к примеру, обновляет базу данных или отправляет уведомление администратору сайта о публикации комментария.

Как работает вебхук

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

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

Кроме того, вебхуки используют в интеграциях сервисов. Например, сервис для создания email-рассылок Unisender можно «связать» с конструктором сайтов Tilda, CMS «Битрикс 24», платформой для записи клиентов YCLIENTS и другими сервисами, чтобы автоматически отправлять письма клиентам.

Для чего нужны вебхуки и их отличие от API

Вебхуки и API — это инструменты для обмена данными между сервисами, которые позволяют системе получать информацию об изменениях. Однако работают они по-разному.

Вебхуки отправляют уведомление о событии, когда оно происходит. Администратор настраивает получение оперативного оповещения, а далее система автоматически «сообщает» об изменениях. Это экономит время и ресурсы компании.

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

Вебхуки API
Способ передачи данных Cервер автоматически отправляет данные при наступлении события Клиент запрашивает данные, отправляя запросы к серверу
Инициатор действия Сервер инициирует отправку данных Клиент инициирует запрос на получение или отправку данных
Использование ресурсов Требует меньше ресурсов Требует больше ресурсов из-за регулярных запросов
Оперативность Мгновенная отправка данных при событии Время между запросами и ответами зависит от частоты запросов
Настройка Более простая настройка уведомлений о событиях Более сложная настройка для работы с данными
Некоторые примеры использования Уведомления о новых заказах на сайтах и в интернет-магазинах.

Оповещения о новых сообщениях в чатах.

Мониторинг состояний сервера и системы, уведомления о сбоях и угрозах безопасности.

Уведомления о транзакциях.

Обновление статусов заказов.

Встраивание внешних сервисов, например «Яндекс Карт» или «Google Карт» на свой сайт.

Добавление сервисов приема платежей на сайт или в приложение.

Регистрация на сайте через социальные сети.

Интеграция сервисов аналитики на сайт.

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

Как выглядят и работают вебхуки

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

Как выглядит вебхук

В примере выше — вебхук, который отправляет данные event='order_placed' на URL https://example.com/webhook. В графе секретный ключ your_secret_key программист или администратор сайта должен указать действительный секретный ключ, используемый для аутентификации вебхука

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

Достаточно один раз настроить систему, в дальнейшем она автоматически будет отправлять информацию об изменениях на указанный URL. Сайт-получатель принимает данные через вебхук и использует их для дальнейших действий. Например, обновляет базу данных, отправляет уведомление пользователю или запускает внутренние процессы в случае обнаружения проблем с безопасностью.

Как вебхуки используют на практике

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

Маркетинг. Вебхуки помогают автоматизировать взаимодействие между маркетинговыми платформами. Например, если пользователь подписывается на рассылку на сайте, вебхук может создать уведомление в сервис email-маркетинга и запустить отправку приветственного письма. Также через вебхуки удобно отслеживать статус лидов или достижение конверсии.

Интеграция Unisender с другими сервисами

К примеру, настроив интеграцию сервиса рассылок Unisender с CRM, можно автоматизировать процесс отправки писем, создание шаблонов, сегментацию подписчиков. Это поможет оптимизировать работу с клиентами и повысить эффективность маркетинговых кампаний

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

Вебхуки на платформе Shopify

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

IT. В сфере цифровой безопасности и разработки используют вебхуки, чтобы получать уведомления об ошибках, проблемах с производительностью, сбоях в работе серверов. Платформы вроде GitHub или GitLab используют вебхуки, чтобы уведомлять команды о выпущенных обновлениях и других событиях.

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

Ограничения при работе с вебхуками

Работа с вебхуками имеет ряд особенностей и ограничений. Перечислим некоторые из них:

  1. Нет гарантий, что уведомление будет доставлено. Если вебхук настроен неправильно либо в сети или на сервере произошел сбой, уведомление не будет доставлено.
  2. Для настройки вебхуков требуются определенные знания и навыки в области программирования. Хотя современные платформы предлагают готовые решения и максимально упрощают процесс настройки вебхуков, обычному пользователю может быть сложно разобраться, что и как подключать.
  3. Могут возникать проблемы безопасности. Вебхуки иногда становятся целью злоумышленников. Некорректная настройка и недостаточная аутентификация могут привести к внедрению вредоносного кода, атакам на сайты через вебхуки.
  4. Отправка вебхуков может перегружать сервер, особенно если событий много или они происходят одновременно. Если необходимо получать много уведомлений, нужно заранее просчитывать, сможет ли система выдержать нагрузку.
  5. Не все события можно настроить через вебхук. Так, не получится настроить вебхук для событий, которые происходят офлайн или в среде без доступа к интернету. Кроме того, некоторые приложения или платформы не имеют функционала для отправки вебхуков. Также вебхуки не следует использовать в тех случаях, когда важна абсолютная безопасность и надежность доставки — здесь потребуется дополнительная инфраструктура и протоколы шифрования.

Как повысить безопасность использования

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

  • Настройте проверку подписи входящих вебхуков, чтобы принимать запросы только от доверенных источников. 
  • Используйте расширение протокола HTTP — HTTPS, чтобы обеспечить шифрование данных и безопасную их передачу между серверами.
  • Ограничьте IP-адреса, с которых могут поступать запросы вебхуков. Это позволит уменьшить риски получения запросов от злоумышленников.
  • Отслеживайте все поступающие запросы, чтобы быстро реагировать на потенциальные угрозы безопасности.
  • По возможности отправляйте вебхуки на отдельный сервер. Это снижает риск взлома или утечки данных с основного сервера.

Как создать и проверить webhook

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

  1. Выбор события. На первом шаге необходимо определить, для какого события нужно настроить вебхук.
  2. Создание вебхука. В сервисе, который будет передавать данные, нужно создать вебхук и указать событие, по которому вебхук будет срабатывать. Эти настройки можно найти в административной панели сайта.
  3. Указание адреса для обработки вебхука. На этом этапе необходимо задать адрес, на который вебхук будет отправлять запрос. Это может быть URL сервера или облачного сервиса, который может принимать и обрабатывать данные.
  4. Настройка сервера для обработки вебхуков. Программа на сервере должна принимать HTTP-запросы и обрабатывать данные, которые поступят от вебхука.

Проверить работу webhook можно с помощью специальных сервисов. Например, Webhook.site и RequestBin предоставляют временные URL для тестирования — их можно использовать, чтобы увидеть входящие вебхук-запросы в реальном времени. Сервис Postman позволяет вручную отправить HTTP-запрос на указанный адрес и проверить его доставку.

Webhook.site

С помощью бесплатного сервиса Webhook.site можно создать уникальный URL для получения вебхуков, посмотреть, какие данные отправляются

Главные мысли

  • Это способ взаимодействия между сервисами, который позволяет получать уведомления в реальном времени о каком-либо произошедшем на сайте событии.
  • Принцип работы вебхука заключается в следующем: администратор сайта указывает события, при которых будет срабатывать вебхук, а также адрес получения уведомлений. При наступлении заданного события система отправляет информацию об изменениях. 
  • Вебхуки широко применяют в бизнесе, маркетинге, аналитике, в сфере IT и e-commerce. 

Вы нашли ответ?

1
0