Инструкции по использованию
конструктора чат-ботов LeadConverter

Отправить через webhook

Вебхук используется для связи вашего бота с любыми сторонними платформами.

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

Данная возможность предназначена для опытных специалистов, однако она открывает невероятно широкие возможности для ваших ботов.

Параметры вебхука

  • URL-адрес обработчика - название говорит само за себя :) На данный адрес будет отправлен запрос.
  • Отправить запрос методом - один из шести методов (GET, POST, JSON POST, PUT, PATCH, DELETE), которым будет отправлен запрос. Назначения методов мы разберем немного позже.
  • Сохранить результат - здесь вы можете выбрать переменную, в которую будет помещен результат выполнения запроса.
  • Заголовки запроса
  • Параметры запроса

Методы запроса

Сейчас будет немного технической информации, но не стоит её пугаться. Вы сталкиваетесь с этим каждый день, и даже сейчас с этим работаете :)

Сервисы и платформы общаются между собой через протокол HTTP. Это один из протоколов передачи информации в сети интернет.

Метод указывает какое конкретное действие вы хотите сделать с ресурсом. 

Метод "GET" - Используется для получения информации. На эту страничку вы зашли именно этим методом. 

Метод "POST" - Используется для передачи информации в обработчик. Например, отправка формы. 

Метод "JSON POST" - То же самое, что и метод POST, только передается в формате JSON.

Эти методы встречаются чаще всего. Следующие - встречаются крайне редко, но о них все же стоит знать. 

Методы "PATCH" и "PUT" - используются для обновления уже созданного ресурса на сервере. Разница в том, что PATCH содержит набор инструкций, описывающих, как ресурс, находящийся в данный момент на исходном сервере, должен быть модифицирован. А в PUT содержится новая версия ресурса целиком.

Метод "DELETE" - Говорит серверу о необходимости удалить данный ресурс. 

Как мне выбрать, какой метод использовать? 

Это зависит от того, интеграцию с чем вы хотите сделать. Если это онлайн-платформа, например, Bitrix24 - метод, которым нужно отправлять данные будет описан в документации к ней.

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

Ну а если вы всё ещё не смогли определиться - напишите нам, мы с радостью поможем вам.

Заголовки запроса

Здесь всё просто, слева - название заголовка, справа - значение, которое необходимо передать в него :) 

Тело запроса

Здесь указываются параметры, которые вам необходимо передать в скрипт-обработчик.

Слева указывается название параметра, справа - его значение.

Так же вы можете подставлять переменные. Для этого используется такая-же конструкция, как при подстановке переменной в блоке сообщения.
({ имя_переменной })

Так же вы можете использовать зарезервированные переменные.

Передача многомерных массивов

Для того, чтобы создать вложенный массив, используйте точку в названии ключа там, где необходимо перейти на следующий уровень вложенности.

Это звучит слишком замудрённо, но на самом деле это просто. Давайте рассмотрим на примере.

Если вы хотите создать массив вида

[
  "user" => [
    "name" => имя_подписчика,
    "last_name" => фамилия_подписчика,
  ],
  "group" [
    "id" => ид_группы,
    "channel_name" => название_группы
  ]
]

используйте следующую запись:

Сохранение переменной

Если обработчик вернул не JSON объект - результат будет помещён в переменную как простой текст.

В случае, если обработчик вернул в ответ - JSON - он будет сохранён в переменную как объект. 

Объект позволяет в дальнейшем обращаться к вложенным параметрам. Рассмотрим пример.

Ответ сервера:

{
  promo: {
    code: "ABC",
    percent: 15,
  }
}

Чтобы получить значение вложенного поля code, необходимо указать полный путь к нему начиная от корня. 

Рассмотрим на примере. Допустим, результат запроса сохранён в переменную "result".

Чтобы получить значение поля "code", мы используем следующую запись:

({result.promo.code}) - в результате выполнения этой инструкции будет выведена строка "ABC".

Что, если не удалось выполнить вебхук?

В случае, если при выполнении запроса произошла ошибка (сервер вернул ошибку 4xx или 5xx), платформа ещё несколько раз постараетя отправить запрос.

Промежутки времени, через которые вебхук будет отправлен повторно:

  • Первая попытка - 5 секунд
  • Вторая попытка - 30 секунд
  • Третья поыпытка -  1 минута
  • Четвертая попытка - 30 минут
  • Пятая попытка - 2 часа

В случае, если попытки кончились - выполнения сценария приостанавливается.