Шаг «Webhook»
Обращается к адресу в интернете. Это способ связать бота с чем-то снаружи: своей базой, таблицей, сторонней системой.
Шаг для тех, у кого есть, к чему подключаться. Если такой системы нет, он не нужен.
Настройка#
| Поле | Что задаёт |
|---|---|
| Url | Адрес, к которому обращаемся. |
| Method | Ровно два варианта: GET и POST. Других нет. |
| Body | Тело запроса. Появляется только у POST. |
У поля Body есть кнопка Beautify: она раскладывает JSON по строкам с отступами. Если текст не является правильным JSON, кнопка молча ничего не сделает — это и есть простейшая проверка, что вы не ошиблись в скобках.
Подстановки: как передать данные человека
Прямо в адрес и в тело можно вставлять метки в фигурных скобках, и на их месте окажутся настоящие данные того, кто дошёл до шага. Список меток показан прямо в окне, каждая копируется щелчком — набирать руками не нужно.
Про самого человека:
| Метка | Что подставится |
|---|---|
{id} | Внутренний номер диалога в CRM. |
{name} | Имя из Telegram. |
{username} | Имя пользователя в Telegram. |
{chatId} | Номер чата в Telegram. |
{stepKey} | С какого шага сценария ушёл запрос. |
{createdAt} | Когда начался диалог. |
Про то, откуда он пришёл:
| Метка | Что подставится |
|---|---|
{tracker.tracker_campaign} | Кампания. |
{tracker.tracker_source} | Источник. |
{tracker.tracker_source.name} | Название источника. |
{tracker.tracker_domain_id} | Домен. |
{tracker.tracker_landing_id} | Лендинг. |
{tracker.clickid} | Идентификатор клика. |
{tracker.tracker_campaign_type} | Тип кампании. |
{tracker.tracker_provider_type} | Тип поставщика. |
Ваши собственные поля тоже доступны. Каждое поле из раздела Custom
Fields настроек бота появляется в этом списке
меткой вида {Название поля} — сразу, как только вы его завели.
Пример адреса из подсказки в самом окне:
http://test/api?yourfield={chatId}
Чего он не делает#
Ответ чужой системы никуда не попадает. Бот отправляет запрос и идёт дальше, не дожидаясь и не разбирая, что ему ответили. Ветку «если система ответила да» на этом шаге построить нельзя.
Если нужно именно получить данные обратно и по ним ветвиться — правильный путь другой: чужая система присылает нам постбэк, тот меняет данные человека, а сценарий ветвится обычным Condition.
Что стоит проверить перед тем, как поставить#
- Адрес отвечает. Проверьте его отдельно, до того как вставлять в сценарий.
- Адрес не секретный. Всё, что вы сюда впишете, увидит любой, у кого есть доступ к настройкам бота. Ключи в адресе — плохая идея.
- Чужая система выдержит поток. Шаг сработает столько раз, сколько человек через него пройдёт. На рассылке по большой базе это будет много запросов подряд.
Типичное применение#
| Задача | Что делает шаг |
|---|---|
| Записать человека в свою таблицу | POST со сведениями о нём |
| Уведомить свою систему о событии | GET или POST на её адрес |
| Дёрнуть сторонний сервис | Обращение по его инструкции |
Не путайте с разделом Webhooks & API в настройках бота: тот раздел скрыт и не работает, а этот шаг — рабочий. Всё, что нужно от исходящих обращений, делается здесь.
