Навіщо це потрібно
Людина купила курс на вашому сайті. Тепер вона не повинна отримувати прогрів «купіть курс» у жодному каналі: ні в Telegram, ні в Instagram, ні у WhatsApp.
Раніше для цього сайт мав запускати воронку «Покупка» в конкретному боті, і таку воронку доводилось копіювати в кожен бот. Забули копію в одному каналі — людина звідти й далі отримує прогрів.
Вебхук цілей — одна адреса на весь акаунт. Сайт, CRM чи будь-яка інша система надсилає на неї два ID: людини (Персони) і цілі. Сервіс записує, що людина досягла цілі. Більше нічого робити не треба:
- умова «Ціль воронки» («ціль досягнута» / «ціль не досягнута») у воронках бачить цю ціль у будь-якому каналі;
- та сама умова у фільтрах розсилок, публікацій, сегментів і таблиць Персон та Контактів теж її бачить;
- лічильники на сторінці «Дані» → «Цілі» її рахують.
Воронку вебхук цілей не запускає, він лише записує ціль. Людину не обов’язково мати в якомусь боті: ціль запишеться навіть Персоні, яка, наприклад, лише зареєструвалась на вебінар поштою.
Крок 1. Візьміть адресу і ID цілі
- Відкрийте «Дані» → блок «Цілі».
- Угорі блоку — «Вебхук цілей». Скопіюйте «Адреса вебхука» кнопкою поруч.
- У таблиці нижче знайдіть потрібну ціль, наприклад «Купив курс». Скопіюйте її ID: натисніть сірий напис «ID: …» у рядку цілі. На телефоні він у меню «⋮» рядка.
Потрібної цілі ще немає? Її можна створити кнопкою «нова ціль» під таблицею або в редакторі воронки: у дії «Зарахувати ціль» натисніть «Обрати ціль» → «Нова ціль».
Адреса — секретна. Хто її знає, той може проставляти цілі у вашому акаунті. Не публікуйте її і не вставляйте в код сторінок, які бачать відвідувачі. Вона має жити лише в налаштуваннях сервера сайту чи CRM.
Крок 2. Дайте сайту ID Персони
Сайт має знати, яку саме людину він повідомляє. Для цього потрібен ID Персони — номер людини в Sviteya, один на всі канали.
Де його взяти:
- Автоматично з воронки. Коли воронка надсилає на сайт дію «HTTP-запит (вебхук)» з порожнім полем «Тіло запиту», у запиті вже є ключ
person_id. Збережіть його на сайті в картці покупця. Якщо тіло ви пишете самі — вставте змінну «ID Персони» (у виборі змінних: «Системні»). - Вручну. У розділі «Персони» відкрийте картку людини — там є рядок «ID Персони». Так зручно перевірити вебхук на собі.
Крок 3. Налаштуйте запит на сайті
У системі, яка знає про покупку (WordPress, FunnelKit, CRM, платіжка), додайте вебхук на подію «оплата пройшла»:
- Метод:
POST - Адреса: та, що ви скопіювали в кроці 1
- Тип даних: JSON
- Тіло:
{
"personId": "ID Персони покупця",
"goalId": "ID цілі «Купив курс»"
}
Більше нічого в тілі не потрібно.
Один вебхук цілей обслуговує всі цілі акаунта. Різні товари — різні goalId на ту саму адресу.
Крок 4. Перевірте
- Візьміть свій ID Персони (картка себе в «Персони»).
- Надішліть із сайту чи будь-якого інструмента тестовий запит із вашим
personIdіgoalId. - Відкрийте «Дані» → «Цілі»: у рядку цілі лічильник людей має збільшитись на одного.
- Кожен запит видно в «Журнал вебхуків» (кнопка на сторінці «Інтеграції»): чи прийнято, а якщо ні — чому.
Що відповідає сервіс
| Ситуація | Відповідь |
|---|---|
| Ціль записано | 201 і {"ok": true} |
| Людина вже досягала цієї цілі | 201 і {"ok": true, "duplicate": true} — нічого не подвоюється |
У тілі немає personId або goalId |
400 «Потрібні personId і goalId» |
| Такої Персони немає у вашому акаунті | 404 «Персону не знайдено» |
| Такої цілі немає у вашому акаунті | 404 «Ціль не знайдено» |
| Невідома адреса | 404 |
| Увімкнено підпис, а він неправильний або його немає | 401 |
| Понад 300 запитів за хвилину | 429 — спробуйте трохи пізніше |
Повторний запит на ту саму людину й ту саму ціль безпечний. Якщо сайт надіслав покупку двічі (наприклад, через повтор після збою), у звітах вона порахується один раз.
Підпис запиту (необов'язково)
Для додаткового захисту в блоці «Вебхук цілей» є «Секрет підпису» і галочка «Вимагати підпис (HMAC-SHA256)».
- Галочка вимкнена — достатньо адреси. Так підключиться будь-який сайт чи конструктор.
- Галочка увімкнена — сервіс приймає лише запити з правильним підписом. Навіть якщо адреса потрапить у чужі руки, без секрету ціль не проставити.
Як підписати: порахуйте HMAC-SHA256 від сирого тіла запиту (саме тих байтів, що йдуть у запиті) ключем «Секрет підпису», у шістнадцятковому вигляді, і передайте в заголовку x-sviteya-signature. Приставка sha256= перед значенням теж приймається.
Вмикайте галочку лише тоді, коли ваш сайт уже вміє підписувати запити, інакше всі запити отримуватимуть 401.
Якщо секрет потрапив не туди, натисніть «Перевипустити секрет»: старий перестане діяти одразу, а новий треба вставити в зовнішню систему.
Що варто знати
Ціль — про людину, а не про бот. Людина купила на сайті — воронки й розсилки в Telegram, Instagram і WhatsApp однаково бачать, що ціль досягнута.
Аналітика воронки цю ціль не показує. Вона рахує лише те, чого людина досягла всередині цієї воронки. Покупка на сайті видна в «Дані» → «Цілі» і у фільтрах.
Щоб прогрів зупинився, воронка має питати про ціль. Поставте перед повідомленнями прогріву умову «Ціль воронки» → «ціль досягнута» з вашою ціллю, наприклад «Купив курс». Людину, яка вже купила, воронка поведе іншою гілкою. У розсилці прогріву додайте у фільтр «Ціль воронки» → «ціль не досягнута».
Часті питання
Людини ще немає в жодному боті, є лише пошта. Ціль запишеться?
Так, якщо в сайту є її ID Персони. Коли людина пізніше прийде в бот і сервіс упізнає, що це та сама Персона, ціль уже буде на ній.
А якщо сайт знає лише пошту, без ID Персони?
Вебхук цілей шукає людину тільки за ID Персони. Передайте сайту person_id раніше — з вихідного запиту воронки (крок 2).
Чи запускає вебхук цілей якусь воронку, наприклад «Дякуємо за покупку»?
Ні, він лише записує ціль. Якщо потрібне повідомлення після покупки, використовуйте окремо вхідний вебхук воронки (сторінка «Вхідні вебхуки»).
Можна змінити адресу, якщо вона потрапила не туди?
Самої адреси змінити не можна. Увімкніть галочку «Вимагати підпис» і за потреби перевипустіть секрет: тоді без актуального секрету адреса нічого не зробить.