Вебхуки є механізмом автоматичного надсилання даних між сайтами й застосунками за певних подій. Дані передаються за допомогою HTTP-запиту: один застосунок надсилає їх через інтернет на заздалегідь указану адресу іншого.

Можливості вебхуків
У FLOWIN вебхуки працюють із пересиланнями. Вони можуть спрацьовувати під час появи, зміни, видалення або закріплення повідомлення у вихідному чаті (джерелі), а також під час натискання кнопки в чаті, куди пересилаються повідомлення (призначенні).
Так можна пов’язати FLOWIN із соціальними мережами, біржами, таблицями та CRM (системами для роботи з клієнтами). Такий зв’язок називається інтеграцією й дає змогу:
- Автоматично додавати заявки з Telegram у CRM.
- Передавати торгові сигнали з Telegram на біржу для автослідування, тобто автоматичного укладання угод за цими сигналами.
- Пересилати повідомлення з Telegram в інші соціальні мережі.
- Копіювати дописи й повідомлення в Google Таблиці.
- Налаштувати автовідповідач у боті.
Для кожного сценарію потрібно налаштувати приймання даних і потрібну дію на боці сайту або застосунку.
Створення вебхука
Перевіримо вебхук на сайті webhook.site, який видає адресу для приймання даних і показує отримані запити. Надішлемо на нього текст нового повідомлення з Telegram.
Для цього потрібне налаштоване й робоче пересилання у FLOWIN.
Для першого тесту
Використовуйте окремий тестовий чат і вигадану заявку. Для перевірки достатньо передати текст без імен, телефонів та інших особистих даних.
Відкрийте @flow_in_bot, надішліть команду
/startі натисніть «Панель керування».Відкрийте webhook.site в окремій вкладці. Скопіюйте адресу для приймання запитів із поля «Your unique URL».
У панелі FLOWIN відкрийте «Меню» → «Вебхуки» й натисніть «Створити».
У верхнє поле вставте скопійовану адресу. У полі «Тіло запиту» вкажіть
{"message":"<message-text>"}і натисніть «Створити». Це шаблон даних, що надсилаються: замість<message-text>FLOWIN підставить текст повідомлення, а отримувач побачить його в поліmessage.Натисніть «Застосувати» біля створеного вебхука. Позначте потрібне пересилання й натисніть «Зберегти».
Надішліть у чат-джерело тестове повідомлення, наприклад «Заявка №1042: потрібен каталог меблів.». Поверніться на webhook.site: перший отриманий запит відкриється автоматично. У блоці «Request Content» з’явиться текст заявки в полі
message. Тепер FLOWIN автоматично надсилатиме текст кожного нового повідомлення на вказану адресу перед його пересиланням у чат призначення.
Налаштування вебхуків
Розглянемо налаштування на прикладі створеного вебхука: як їх змінити й що означає кожне поле.
Звідки брати налаштування
Для підключення іншого сайту або застосунку використовуйте його документацію. Зазвичай правила приймання даних містяться в розділі API, який описує взаємодію з іншими програмами. Там указано адресу, HTTP-метод і формат даних для заповнення полів нижче.
Як змінити налаштування вебхука
У списку «Вебхуки» натисніть «Змінити» біля потрібного вебхука.
Змініть потрібні поля й натисніть «Зберегти».
HTTP-метод
HTTP-метод задає дію запиту: POST передає дані на обробку, GET запитує дані, PUT замінює їх. За замовчуванням вибрано POST, який підходить для нашого тесту. Для іншого сайту або застосунку вибирайте метод, указаний у його документації.
URL-адреса
URL означає адресу в інтернеті. Тут указують адресу для приймання даних, отриману на підключуваному сайті або в застосунку. У нашому прикладі її видав webhook.site.
Тіло запиту
Тіло запиту містить дані, що надсилаються, у форматі JSON: пари «назва поля: значення». Склад полів залежить від вимог підключуваного сайту або застосунку.
Метатеги є позначеннями, замість яких FLOWIN підставляє дані повідомлення. Наприклад, <message-text> замінюється текстом, а <author-name> іменем автора. Список метатегів також відкривається за посиланням «метатеги» під полем.
Номери користувачів, повідомлень, чатів і тем у списку нижче означають їхні ідентифікатори (ID) у Telegram.
Повідомлення й автор
- Текст повідомлення:
<message-text>. - Дата повідомлення:
<message-date>. - Час повідомлення:
<message-time>. - Номер автора:
<author-id>. - Ім’я автора:
<author-name>. - Ім’я автора в HTML-посиланні на його профіль:
<author-name-link>. - Ім’я автора у вигляді хештегу:
<author-name-tag>. - Нікнейм автора:
<author-username>.
Джерело
- Текст повідомлення:
<src-message-text>. - Номер повідомлення:
<src-message-id>. - Посилання на повідомлення:
<src-message-link>. - Номер чату:
<src-chat-id>. - Назва чату:
<src-chat-name>. - Нікнейм чату:
<src-chat-username>. - Номер теми:
<src-topic-id>. - Назва теми:
<src-topic-name>.
Призначення
- Текст повідомлення:
<dst-message-text>. - Номер повідомлення:
<dst-message-id>. - Посилання на повідомлення:
<dst-message-link>. - Номер чату:
<dst-chat-id>. - Назва чату:
<dst-chat-name>. - Нікнейм чату:
<dst-chat-username>. - Номер теми:
<dst-topic-id>. - Назва теми:
<dst-topic-name>.
Номер і посилання повідомлення в призначенні з’являються після пересилання. Щоб передати їх, виберіть «Після надсилання» в полі «Тригер запиту».
Натискання кнопки
- Номер користувача, який натиснув кнопку:
<clicker-id>. - Ім’я користувача, який натиснув кнопку:
<clicker-name>. - Дані кнопки:
<clicker-data>. - Дата натискання:
<click-date>. - Час натискання:
<click-time>.
Вибір тексту
- Регулярний вираз задає правило пошуку тексту. Наприклад,
<regexp>(short|sell)</regexp>підставляє перший знайдений збіг ізshortабоsell. - Випадковий текст
<random>1|2|3|4|5</random>підставляє один із п’яти варіантів. Між тегами можна вказати власні варіанти, розділивши їх символом|.
Заголовки запиту
«Заголовки запиту» містять службові відомості для отримувача. Наприклад, ключ доступу дає змогу перевірити, хто надіслав запит. Заголовки задають у форматі JSON. Зазвичай це поле змінювати не потрібно; потрібні значення беруть із документації підключуваного сайту або застосунку.
Тригер запиту
«Тригер запиту» визначає подію та момент, коли вебхук має надіслати запит на вказану адресу. Як подію можна вибрати:
- «Надсилання» вибрано за замовчуванням. Вебхук спрацьовує під час пересилання нового повідомлення.
- «Редагування» спрацьовує під час обробки зміни повідомлення в джерелі.
- «Закріплення» спрацьовує під час обробки закріплення повідомлення в джерелі.
- «Видалення» спрацьовує під час обробки видалення повідомлення в джерелі.
- «Натискання кнопки» спрацьовує для кнопок зі зворотним викликом (callback) у чаті призначення. Така кнопка повідомляє боту про натискання й передає задані для неї дані. Звичайна кнопка з посиланням цей вебхук не запускає.
Момент надсилання визначає, на якому етапі пересилання піде запит:
- «До обробки»: запит надсилається до перекладу й обробки повідомлення штучним інтелектом (ШІ).
- «Після обробки»: запит надсилається після перекладу і обробки ШІ.
- «Після надсилання»: запит надсилається, коли повідомлення вже успішно надіслано або змінено в чаті призначення.
Доступні моменти надсилання
Усі три варіанти доступні для подій «Надсилання» та «Редагування». Для «Закріплення», «Видалення» та «Натискання кнопки» використовується «До обробки», вибрати інший момент не можна.
Опис
«Опис» слугує коментарем для вашої зручності й не впливає на роботу вебхука. Поле можна залишити порожнім.
Доступні дії з вебхуком
Створеними вебхуками можна керувати зі списку «Вебхуки»:
- «Змінити» відкриває основні налаштування вебхука.
- «Дублювати» в меню «Ще» створює копію налаштувань вебхука.
- «Вибрати проєкт» у меню «Ще» додає вебхук до проєкту.
- «Видалити» в меню «Ще» видаляє вебхук.
Крім того, у кожного вебхука є кнопка «Пересилання [N]», яка відкриває вибір пересилань, до яких він застосовується. N означає кількість вибраних пересилань. Якщо пересилання ще не вибрано, замість неї показано кнопку «Застосувати».
Поширені запитання
Що таке вебхук простими словами?
Це спосіб автоматично передати дані іншому застосунку за певної події. Наприклад, під час пересилання нового повідомлення FLOWIN надсилає його текст на вказану вами адресу за допомогою HTTP-запиту. Тут запит надсилає FLOWIN; метод Telegram setWebhook налаштовує інший напрям: доставлення оновлень від Telegram програмі, яка обслуговує бота.
Чи достатньо вказати адресу CRM?
Ні. Потрібна адреса для приймання даних із документації CRM, а також відповідні HTTP-метод, поля JSON і заголовки, якщо вони потрібні для доступу. Звичайна адреса сайту CRM для цього не підходить. FLOWIN надсилає запит, а створення заявки або інша дія залежить від того, як CRM обробляє отримані дані. Значення полів описано в розділі «Налаштування вебхуків».
Чому посилання на повідомлення в призначенні порожнє?
До успішного надсилання нового повідомлення у FLOWIN ще немає його номера й посилання в призначенні. Для передавання <dst-message-id> і <dst-message-link> виберіть подію «Надсилання» або «Редагування» і момент «Після надсилання» в полі «Тригер запиту». Посилання формується для каналів і супергруп. Для особистого чату або звичайної групи <dst-message-link> залишиться порожнім і після надсилання.
Чи можна запускати вебхук натисканням звичайної URL-кнопки?
Ні. Звичайна URL-кнопка відкриває посилання. Для події «Натискання кнопки» потрібна кнопка зі зворотним викликом (callback) у чаті призначення: вона передає боту дані про натискання. Цю відмінність описано в розділі «Тригер запиту».
Як перевірити, що зовнішній сервіс отримав дані?
Надішліть вигадане повідомлення й перевірте отриманий запит на боці сервісу. У прикладі з webhook.site текст заявки з’являється в блоці «Request Content». Успішне пересилання в Telegram саме по собі не підтверджує, що зовнішній сервіс прийняв дані або виконав потрібну дію. Для перевірки достатньо тексту без імен, телефонів та інших особистих даних.















