Як налаштувати вебхуки для отримання сповіщень про події
Вебхук — це POST-запит, який SendPulse надсилає на ваш сервер, коли в акаунті стається подія, наприклад, з'являється нова угода або доставляється лист. У розділі Вебхуки (Webhooks) можна налаштувати сповіщення для CRM-системи, Automation, конструктора курсів, сервісу розсилок, SMS та SMTP в одному місці.
Наприклад, інтернет-магазин зберігає замовлення в CRM-системі, а залишки товарів — у власній обліковій системі. З вебхуком для подій угоди облікова система отримує кожну оплачену угоду за лічені секунди й резервує товар без ручного експорту.
Розглянемо, як створити й протестувати вебхук, вибрати події, перевірити підпис запиту й керувати вебхуками.
Переваги та приклади використання
Вебхуки надсилають дані на ваш сервер тієї ж миті, коли стається подія, тож вам не потрібно експортувати дані вручну чи опитувати API. У розділі Вебхуки (Webhooks) можна:
- отримувати події з CRM-системи, Automation, конструктора курсів, сервісу розсилок, SMS та SMTP на одну URL-адресу;
- вибирати, які з 70 доступних подій надсилає кожен вебхук;
- додавати заголовки авторизації й перевіряти підпис кожного запиту, щоб ваш сервер приймав запити лише від SendPulse;
- надсилати тестовий запит ще до появи реальних подій;
- переглядати кожен запит за останні 30 днів у журналі запитів і повторювати невдалі запити.
Ось як бізнес може використовувати вебхуки:
- Інтернет-магазин надсилає події Зміна стадії угоди та Завершення оплати угоди до своєї системи керування замовленнями, тож оплачена угода в CRM-системі стає підтвердженим замовленням без ручної роботи.
- Маркетингове агентство збирає події Доставлено, Відкриття листа, Клік за посиланням у листі, Hard bounce і Лист позначено як спам у власній аналітичній панелі, щоб звітувати клієнтам про доставлюваність.
- Онлайн-школа отримує події Студента зараховано на курс і Студент завершив курс і сповіщає службу підтримки в месенджері, коли студент записується на курс або завершує його.
Перевірте вимоги до вебхука
Перш ніж створювати вебхук, переконайтеся, що у вас є:
| Публічний HTTPS-URL на вашому сервері | URL-адреса має починатися з https://, бути доступною з інтернету, приймати POST-запити з тілом у форматі JSON і відповідати успішним кодом статусу. SendPulse не підтримує URL-адреси з http://, localhost, а також приватні або внутрішні мережеві адреси. |
| IP-адреси SendPulse, дозволені у вашому фаєрволі | Якщо ваш сервер приймає запити лише з дозволених IP-адрес, додайте адреси зі списку IP-адреси джерела вебхука (Webhook source IP addresses) у формі вебхука. Список може змінюватися без попередження, тож перевіряйте його, коли ваш сервер перестає отримувати запити. |
| Доступ до розділу «Вебхуки» | Власник акаунта має доступ за замовчуванням. Учаснику команди потрібне право Settings у групі Email and marketing campaigns його ролі користувача. |
SendPulse надсилає кожну подію як окремий POST-запит з об'єктом JSON у тілі. Про поля тіла запиту читайте в статті Перегляд деталей запиту.
Вебхуки для чат-ботів і попапів налаштовуються окремо — у кожному чат-боті чи попапі.
Створіть вебхук
Вебхук пов'язує одну URL-адресу на вашому сервері з набором подій, які ви хочете отримувати на цю адресу. Кожен вебхук в акаунті потребує власної URL-адреси.
Введіть URL вебхука
Перейдіть до Налаштувань акаунту > Вебхуки і натисніть Додати вебхук (Add webhook). Якщо вебхуків ще немає, натисніть Створити вебхук (Create webhook).

На сторінці Новий вебхук (New webhook) у полі URL вебхука (Webhook URL) введіть адресу на вашому сервері, яка отримуватиме запити, наприклад, https://api.example.com/webhooks/sendpulse.
Щоб переглянути IP-адреси, з яких SendPulse надсилає запити, розгорніть список IP-адреси джерела вебхука (Webhook source IP addresses). Якщо ваш сервер приймає запити лише з дозволених адрес, додайте їх до фаєрвола.

Додайте заголовки авторизації
Ви також можете додати заголовки, які SendPulse включатиме в кожен запит від цього вебхука, наприклад, заголовок Authorization з токеном, який перевіряє ваш сервер.
Розгорніть секцію Додаткові заголовки (Additional headers) і натисніть Додати заголовок (Add header). У полі Назва (Name) введіть назву заголовка, а в полі Значення (Value) — його значення.
Щоб додати ще один заголовок, натисніть Додати заголовок ще раз. Кожен вебхук може мати до 10 заголовків.
Щоб видалити заголовок, натисніть іконку кошика поруч із ним.
Назва заголовка може містити від 1 до 128 символів, дозволених в іменах HTTP-заголовків, а значення — від 1 до 1024 друкованих символів ASCII. Не можна додавати заголовки, які SendPulse встановлює самостійно, як-от Content-Type та X-Signature.
Після збереження вебхука SendPulse маскує значення заголовків у формі та в журналі запитів. Щоб змінити значення пізніше, натисніть Змінити значення (Change value) поруч із ним.

Виберіть події
У секції Події (Events) виберіть події, які хочете отримувати. Події згруповано за інструментом SendPulse (CRM, Automation, Courses, Email, SMS і SMTP), а в межах інструмента — за об'єктом, як-от Угоди чи Завдання.
Щоб розгорнути групу, натисніть стрілку поруч із нею. Потім позначте чекбокс поруч із подією.
Щоб вибрати всі події інструмента чи об'єкта, позначте чекбокс поруч із його назвою.
Лічильник поруч із кожною групою показує, скільки її подій вибрано, а лічильник Вибрано (Selected) показує загальну кількість. Усі події та їхні описи наведено в розділі Виберіть події для отримання.

Натисніть Зберегти (Save). Якщо не вибрано жодної події, з'являється повідомлення Виберіть принаймні одну подію, і вебхук не зберігається.
Вебхук з'являється у списку Вебхуки зі статусом Активний (Active). Вебхук готовий, і тепер SendPulse надсилає кожну вибрану подію на вашу URL-адресу як окремий POST-запит, зазвичай за кілька секунд після того, як вона стається.
SendPulse також генерує для вебхука секретний ключ. Використовуйте цей ключ, щоб перевірити підпис запиту.
Виберіть події для отримання
Вебхук може надсилати будь-яку комбінацію з наведених нижче 70 подій. Назви подій збігаються зі списком Події у формі вебхука.
Деякі події мають однакову назву в різних інструментах. Наприклад, Доставлено є в Email, SMS і SMTP.
Вибирайте подію під потрібним інструментом. Поле scope у тілі запиту показує, який інструмент надіслав подію.
CRM
Події CRM охоплюють компанії, контакти, угоди й завдання в CRM-системі і згруповані у формі в Компанії, Контакти, Угоди та Завдання. SendPulse надсилає такі події CRM:
| Створення компанії | Створено компанію. |
| Видалення компанії | Видалено компанію. |
| Оновлення компанії | Змінено дані компанії. |
| Створення контакту | Створено контакт. |
| Видалення контакту | Видалено контакт. |
| Оновлення контакту | Змінено дані контакту. |
| Створення угоди | Створено угоду. |
| Видалення угоди | Видалено угоду. |
| Завершення оплати угоди | Завершено оплату угоди. |
| Зміна статусу угоди | Змінюється статус угоди. |
| Зміна стадії угоди | Угода переходить на іншу стадію воронки. |
| Оновлення угоди | Змінено дані угоди. |
| Створення завдання | Створено завдання. |
| Видалення завдання | Видалено завдання. |
| Зміна статусу завдання | Змінюється статус завдання. |
| Зміна стадії завдання | Завдання переходить на іншу стадію. |
| Оновлення завдання | Змінено дані завдання. |
Automation
Події Automation охоплюють ланцюжки й листи, надіслані з них. SendPulse надсилає такі події Automation:
| Лист автоматизації доставлено | Лист, надісланий із ланцюжка, доставлено контакту. |
| Лист автоматизації відкрито | Контакт відкриває лист, надісланий із ланцюжка. |
| Ланцюжок запущено | Контакт запускає ланцюжок. |
| Змінну оновлено через Automation | Ланцюжок змінює значення змінної контакту. |
Courses
Події Courses охоплюють курси, студентів, форми й уроки в конструкторі курсів. У формі їх згруповано в Курси та Студенти; події Форму надіслано та Створення уроку наведено окремо. SendPulse надсилає такі події Courses:
| Створення курсу | Створено курс. |
| Видалення курсу | Видалено курс. |
| Курс запущено | Запущено курс. |
| Студент оплатив курс | Студент оплачує курс. |
| Оновлення курсу | Змінено дані курсу. |
| Студент отримав сертифікат | Студент отримує сертифікат. |
| Студент заповнив форму | Студент заповнює форму. |
| Студент завершив урок | Студент завершує урок. |
| Студент завершив курс | Студент завершує курс. |
| Видалення студента | Видалено студента. |
| Студента запрошено на курс | Студента запрошено на курс. |
| Студента зареєстровано | Реєструється новий студент. |
| Студента зараховано на курс | Студента зараховано на курс. |
| Студент розпочав урок | Студент розпочинає урок. |
| Оновлення даних студента | Змінено дані студента. |
| Форму надіслано | Надіслано форму. |
| Створення уроку | Створено урок. |
Події Email охоплюють підписників, теги й email-розсилки в сервісі розсилок. У формі події тегів згруповано під Теги. SendPulse надсилає такі події Email:
| Тег додано | Додано тег. |
| Створення тегу | Створено тег. |
| Видалення тегу | Видалено тег. |
| Тег прив'язано | Тег призначено підписнику або адресній книзі. |
| Тег відв'язано | Тег знято з підписника або адресної книги. |
| Оновлення тегу | Тег оновлено, наприклад, перейменовано. |
| Підписника видалено зі списку | Підписника видалено з адресної книги. |
| Доставлено | Лист розсилки доставлено підписнику. |
| Hard bounce | Лист розсилки не доставлено через постійну помилку, як-от неіснуючу email-адресу. |
| Новий підписник | Нового підписника додано до адресної книги. |
| Відкриття листа | Підписник відкриває лист розсилки. |
| Клік за посиланням у листі | Підписник натискає посилання в листі розсилки. |
| Soft bounce | Лист розсилки не доставлено через тимчасову помилку, як-от переповнену скриньку. |
| Лист позначено як спам | Підписник позначає лист розсилки як спам. |
| Зміна статусу розсилки | Змінюється статус розсилки, наприклад, коли починається надсилання. |
| Підписник відписався | Підписник відписується. |
SMS
Події SMS охоплюють SMS-розсилки, доставку повідомлень та імена відправників. У формі події розсилок згруповано під Розсилки. SendPulse надсилає такі події SMS:
| Розсилка на модерації | SMS-розсилку відправлено на модерацію. |
| Розсилку відхилено | Модератор відхиляє SMS-розсилку. |
| Доставлено | SMS доставлено одержувачу. |
| Зміна статусу імені відправника | Змінюється статус імені відправника. |
| Надіслано | SMS надіслано одержувачу. |
| Не доставлено | SMS не доставлено одержувачу. |
| Відписка | Одержувач відписується за посиланням у SMS. |
SMTP
Події SMTP охоплюють транзакційні листи, надіслані через SMTP або API. SendPulse надсилає такі події SMTP:
| Клік за посиланням | Одержувач натискає посилання в листі. |
| Доставлено | Лист доставлено одержувачу. |
| Hard bounce | Лист не доставлено через постійну помилку, як-от неіснуючу email-адресу. |
| Відкриття | Одержувач відкриває лист. |
| Повторна підписка | Одержувач, який раніше відписався, знову підписується через API-метод Resubscribe a recipient. |
| Soft bounce | Лист не доставлено через тимчасову помилку, як-от переповнену скриньку або проблему на поштовому сервері одержувача. |
| Позначено як спам | Одержувач позначає лист як спам і відписується. |
| Не доставлено | Лист не доставлено одержувачу. |
| Відписка | Одержувач відписується від подальших листів. |
Перевірте підпис запиту
SendPulse підписує кожен запит секретним ключем вебхука, тож ваш сервер може відхиляти підроблені запити. SendPulse генерує ключ, коли ви зберігаєте вебхук.
Щоб отримати ключ, у списку Вебхуки натисніть три крапки поруч із вебхуком і виберіть Редагувати (Edit). У полі Секретний ключ (Secret key) натисніть іконку ока, щоб показати ключ, та іконку копіювання, щоб його скопіювати.
Зберігайте ключ на своєму сервері, ніколи — у клієнтському коді.

Якщо ключ стає відомим стороннім, у полі Секретний ключ натисніть іконку повторної генерації. SendPulse замінює ключ одразу, без підтвердження, і підписує наступний запит новим ключем, тож оновіть ключ на своєму сервері негайно.
Щоб перевірити запит, обчисліть хеш HMAC-SHA256 від сирого тіла запиту, використавши секретний ключ як текстовий рядок. Закодуйте хеш як шістнадцятковий рядок у нижньому регістрі й порівняйте його зі значенням заголовка X-Signature, яке надсилається у форматі sha256=<hash>.
Обчислюйте хеш від тіла в тому вигляді, в якому ви його отримали, перш ніж парсити JSON. Розпарсене й повторно серіалізоване тіло дає інший хеш.
Надішліть тестовий запит
Перш ніж стануться реальні події, перевірте, що ваш сервер приймає запити від SendPulse.
Щоб надіслати тестовий запит, у списку Вебхуки натисніть три крапки поруч із вебхуком і виберіть Редагувати. На сторінці Редагування вебхука (Edit webhook) натисніть Тестовий запит (Test request) під списком Події.
SendPulse надсилає на вашу URL-адресу вебхука POST-запит із типом події test, без даних події, з вашими додатковими заголовками й підписом. Поруч із кнопкою ви бачите код статусу, який повернув ваш сервер, і час відповіді, наприклад, 200 · 244 ms.
Зелена позначка вказує на успішний запит, а червона — на помилку, наприклад, 405 · 87 ms.
Якщо запит завершується помилкою, виправте свій сервер і натисніть Тестовий запит ще раз.
Кнопка Тестовий запит з'являється лише для збереженого вебхука. Тестові запити не відображаються в журналі запитів.
Про типові причини невдалого запиту читайте в статті Усунення проблем із вебхуками.

Керуйте вебхуками
Розділ Вебхуки показує всі вебхуки акаунта у вигляді карток. Кожна картка показує URL-адресу вебхука, вибрані події у вигляді тегів з іконкою інструмента та статус Активний або Неактивний (Inactive).
Щоб знайти вебхук, натисніть Фільтр (Filter). Введіть частину його URL-адреси в полі Пошук (Search), виберіть інструмент у списку Сервіс (Service) або виберіть Активний чи Неактивний у списку Статус (Status) і натисніть Застосувати (Apply).
Щоб знову показати всі вебхуки, натисніть Скинути (Reset).

Щоб відкрити дії вебхука, натисніть три крапки на його картці. Доступні такі дії:
| Редагувати | Змініть URL-адресу, заголовки, події чи статус, перегляньте або повторно згенеруйте секретний ключ і надішліть тестовий запит. |
| Журнал | Відкрийте журнал запитів вебхука. |
| Вимкнути |
Припиніть надсилати запити, не видаляючи вебхук. SendPulse зберігає налаштування й журнал запитів вимкненого вебхука. |
| Увімкнути | Відновіть надсилання запитів. |
| Видалити |
Видаліть вебхук назавжди після підтвердження дії в діалоговому вікні. Журнал запитів видаленого вебхука недоступний. |
Увімкнути чи вимкнути вебхук можна також перемикачем Статус на сторінці Редагування вебхука.
Вебхуки, які ви створили для сервісу розсилок і SMTP у колишньому розділі Налаштування акаунту > API та вебхуки, переносяться до цього списку автоматично. Знайти їх можна за URL-адресою. Вони продовжують працювати, а запити для їхніх подій також містять дані в попередньому форматі. Докладніше читайте в статті Перегляд деталей запиту.
Тепер кожна подія надходить як окремий запит з об'єктом JSON у тілі, а не як масив. Якщо ваш сервер очікує масив подій, оновіть свій обробник, як описано в статті Ваш обробник перестав обробляти події після перенесення.

Тепер ваш сервер отримує сповіщення про події від SendPulse в реальному часі.
Щоб перевірити, що події доходять до вашого сервера, і побачити, як він відповідає, перегляньте журнал запитів.
Дізнайтеся, як створити кастомну роль користувача для учасників команди, які керують вебхуками, і налаштувати вебхуки для чат-ботів та попапів.
Ви також можете надсилати події на no-code-платформи, як-от Make та n8n. Щоб створювати вебхуки й керувати ними зі своєї системи, використовуйте REST API.
або