Вебхуки - это механизм автоматической отправки данных между сайтами и приложениями при определённых событиях. Данные передаются с помощью 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 сама по себе не подтверждает, что внешний сервис принял данные или выполнил нужное действие. Для проверки достаточно текста без имён, телефонов и других личных данных.















