Шаг «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.

Что стоит проверить перед тем, как поставить#

  1. Адрес отвечает. Проверьте его отдельно, до того как вставлять в сценарий.
  2. Адрес не секретный. Всё, что вы сюда впишете, увидит любой, у кого есть доступ к настройкам бота. Ключи в адресе — плохая идея.
  3. Чужая система выдержит поток. Шаг сработает столько раз, сколько человек через него пройдёт. На рассылке по большой базе это будет много запросов подряд.

Типичное применение#

ЗадачаЧто делает шаг
Записать человека в свою таблицуPOST со сведениями о нём
Уведомить свою систему о событииGET или POST на её адрес
Дёрнуть сторонний сервисОбращение по его инструкции

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