Перейти к содержимому
Приём данных

Приём данных из любого сервиса в Telegram-бота

Пришла оплата — бот сам написал клиенту. Без кода и без программиста.

Коротко

Вы создаёте приёмник и получаете один адрес. Этот адрес вставляете в настройки партнёра — платёжки, сайта, своей программы. Дальше их событие само запускает сценарий бота или продолжает тот, который ждал ответа.

Есть бесплатный тариф с небольшими лимитами.

Начните здесь

Выберите свой случай

Откройте тот, что про вас, — там четыре шага и всё. Подробности ниже, читать их не обязательно.

У меня платёжка — хочу, чтобы бот сам писал после оплатыЭто про вас, если оплату принимает сторонний сервис, а не Telegram.
  1. Создайте приёмникПриём данных → «Создать приёмник» → карточка «Платёжка присылает оплату». Правила заполнятся сами, вы ничего не пишете.
  2. Проверьте на своём примереВозьмите пример запроса из документации платёжки, вставьте в поле «Пример запроса от партнёра». Под ним сразу видно: order_id → A-1001. Если рядом с полем «не нашлось» — поменяйте имя поля на то, которое реально присылает платёжка.
  3. Отдайте адрес платёжкеСкопируйте адрес и вставьте его в настройках платёжки — поле обычно называется «webhook», «URL уведомлений» или «callback». Адрес показывается один раз, скопируйте сразу.
  4. Свяжите со сценариемВыберите бота и сценарий, который должен запуститься. Или поставьте в сценарии блок «Ждать данные» — тогда бот дождётся именно этой оплаты и продолжит с того места, где остановился.
У меня форма на сайте — хочу продолжать разговор в ботеЭто про вас, если человек заполняет форму на сайте, а дальше с ним общается бот.
  1. Создайте приёмникПриём данных → «Создать приёмник» → карточка «Форма с сайта». Поля имя, телефон, почта заполнятся сами.
  2. Добавьте в форму id человека в TelegramЭто единственное обязательное условие: боту нужно знать, КОМУ писать. Обычно человек приходит на сайт по ссылке из бота, и вы подставляете его id в скрытое поле формы.
  3. Отправляйте форму на наш адресУкажите адрес приёмника как адрес отправки формы. Если форму делает конструктор сайта — там это поле «куда отправлять» или «webhook».
  4. Выберите сценарий-приветствиеСвяжите приёмник с ботом и сценарием. Заполнил форму — бот сразу написал.
У меня своя программа или сервис из списка не подошёлЭто про вас, если событие присылает что-то своё — скрипт, CRM, склад, 1С.
  1. Создайте приёмникПриём данных → «Создать приёмник» → карточка «Свой сервис». Полей не заполнится — настроите под себя.
  2. Вставьте пример своего запросаСкопируйте один настоящий запрос, который присылает ваша программа, в поле «Пример запроса от партнёра».
  3. Добавьте правила по одномуПравило — это «взять такое-то значение и запомнить под понятным именем». Добавили правило — сразу видите под ним, что оно достало из вашего примера. Не угадали — поправили.
  4. Свяжите со сценариемВыберите бота и сценарий. Значения из запроса приедут в сценарий как переменные — их можно вставлять в сообщения клиенту.
Если не получилось

Четыре причины, из-за которых обычно не работает

Партнёр отправил, а событий нет

Откройте вкладку «Входящие». Если события там есть — приёмник работает, дело в сценарии. Если событий нет вообще — партнёр отправляет на другой адрес: проверьте, что вставили адрес целиком, вместе с длинной частью после /in/.

Событие есть, а переменных нет

Значит правила разбора не нашли значения. Откройте событие в журнале — там видно, что именно присылал партнёр и что достало каждое правило. Скопируйте оттуда настоящее имя поля в правило.

В журнале написано «некому обработать»

Приёмник не привязан к боту или сценарию, либо сценарий не опубликован. Ещё вариант: шаблон «как найти человека» указывает на значение, которого в событии нет — тогда бот не понимает, кому писать.

Клиенту пришло два одинаковых сообщения

Партнёр отправил событие дважды. Включите «Отсекать повторы» и задайте ключ повтора — например номер заказа и статус. Тогда второе такое же событие в работу не пойдёт.

Как это устроено

Что происходит между партнёром и ботом

Читать не обязательно — это для тех, кто хочет понять механику.

  1. Приёмник — это адрес

    Каждый приёмник — отдельный адрес для одного партнёра. Отдельный, чтобы вы могли отключить одного, не сломав остальных, и чтобы в журнале было видно, кто именно присылал.

  2. Мы принимаем событие и сразу отвечаем

    Партнёр получает ответ «принято» за считанные миллисекунды, а обработка идёт своим ходом. Так партнёр не считает доставку неуспешной из-за того, что ваш сценарий думает.

  3. Правила достают значения

    Из запроса берутся только те значения, которые вы назвали. Они становятся переменными сценария — их можно вставить в сообщение клиенту или сравнить в условии.

  4. Событие идёт по одному из двух путей

    Либо продолжает сценарий, который стоял на блоке «Ждать данные» и ждал именно это событие, либо запускает сценарий с начала. Первый путь — для «оплаты по конкретному заказу», второй — для «пришло что-то новое».

Откуда берутся значения

Шесть мест в запросе, откуда можно взять значение

В девяти случаях из десяти нужны первые три. Остальные — на редкие случаи, но они есть и не спрятаны.

Откуда взятьЧто именно взять
Поле JSONОбычное — так делают почти всегдаТак шлют почти все сервисы. Выберите это, если не знаете, что выбрать.Партнёр прислал {"order_id": "A-1"} → напишите order_id
Поле формыОбычное — так делают почти всегдаЕсли партнёр шлёт данные как обычная веб-форма.Партнёр прислал order_id=A-1&status=paid → напишите order_id
Параметр адресаОбычное — так делают почти всегдаДанные лежат прямо в ссылке, после знака вопроса.Адрес заканчивается на ?status=paid → напишите status
ЗаголовокСложнее — нужно редкоСлужебная строка запроса — например X-Event-Type.В запросе есть строка X-Event-Type: payment → напишите X-Event-Type
Шаблон по текстуСложнее — нужно редкоИскать кусок текста по образцу — когда обычные поля не подходят.В тексте написано Оплата A-1 прошла → напишите Оплата (\S+)
Всё тело целикомСложнее — нужно редкоВзять весь текст запроса целиком, как он пришёл.Весь текст запроса попадёт в переменную целиком, как пришёл
Защита

Чтобы под видом партнёра не пришёл кто угодно

Три способа проверки отправителя

От «достаточно знать адрес» до проверки подписи общим ключом. Способ диктует партнёр — выбираете тот, который он умеет. Ключ хранится в зашифрованном виде и больше никогда не показывается.

Адрес можно сменить в один клик

Если адрес куда-то утёк — меняете его, старый умирает сразу. Останется вставить новый в настройках партнёра.

Лимиты и размер запроса

Слишком большой запрос отклоняется до разбора. Наплыв запросов от одного партнёра ограничивается, чтобы он не мешал остальным вашим приёмникам.

Журнал всех событий

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

Вопросы

Частые вопросы

Что такое приём данных в Telegram-боте?

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

Это то же самое, что вебхук?

Да. «Вебхук» — техническое название для адреса, на который сторонний сервис присылает уведомления о событиях. Мы называем это приёмником, чтобы было понятно без словаря.

Нужно ли уметь программировать?

Нет. Вы выбираете, кто вам присылает, вставляете пример его запроса и видите, что из него достаётся. Ни строчки кода писать не нужно.

С какими сервисами это работает?

С любым, который умеет отправлять запрос на указанный адрес. Это умеют почти все платёжные сервисы, конструкторы сайтов, CRM и складские программы.

Как сделать, чтобы бот дождался оплаты и продолжил?

Поставьте в сценарии блок «Ждать данные» и задайте ключ ожидания — например номер заказа. Сценарий остановится, а когда придёт событие с тем же номером, продолжит с этого места.

Что будет, если оплата придёт слишком поздно?

У ожидания есть срок. Если событие пришло после него, сценарий уже не продолжится — но событие не потеряется: оно попадёт в журнал, а если у приёмника выбран сценарий-обработчик, запустит его с начала.

Партнёр присылает одно событие дважды — что делать?

Включите отсекание повторов и задайте ключ повтора из значений события, например номер заказа и статус. Одинаковые по этому ключу события в работу второй раз не пойдут.

Может ли кто-то прислать событие под видом партнёра?

Чтобы это исключить, есть проверка отправителя: согласованный секрет или подпись тела запроса общим ключом. Выберите то, что умеет ваш партнёр, — тогда чужой запрос будет отклонён.

Можно проверить, не подключая партнёра?

Да, двумя способами. Живой предпросмотр показывает, что достанут правила из вставленного примера, и ничего никуда не отправляет. Кнопка «Тестовый запрос» отправляет событие себе через настоящий конвейер — так проверяется вся цепочка до сценария.

Сколько приёмников можно создать?

Сколько позволяет тариф. Обычно один приёмник на одного партнёра — так их проще отключать по отдельности и видно, кто что присылал.

// Начните сегодня

Запустите Telegram-бота с Forgebot

Соберите первый сценарий, отвечайте подписчикам и смотрите аналитику — бесплатно, без кода.

Бесплатный тариф: 1 бот, 5 сценариев, 100 подписчиков. Без карты.