Варианты взаимодействия внешних систем с платформой MarketBOT.biz

Редакция настоящего документа от 12.02.2021

На данный момент существует несколько вариантов интеграции внешних систем:

  1. Передача лидов с чат-бота на WebHook.
  2. Блок RPC.
  3. Отправка сообщения абонентам через Rest API.
  4. Активация промокода
  5. Уведомление о платеже

Используя заявки Вы не можете влиять на ход выполнения сценария, поэтому, если вам необходимо воспроизвести какую-то сложную логику в сценарии, пожалуйста, используйте блок RPC.

При возникновении вопросов, пожалуйста, обратитесь в Службу Поддержки клиентов МаркетБот: https://marketbot.biz/977

Передача лидов с чат-бота на WebHook.

Вы можете настроить блок “Заявка” в редакторе сценария таким образом, что все заявки будут отправляться на ваш личный сервер по мере поступления их от клиентов. Максимальная задержка передачи заявки при использовании данного способа составляет 5 минут.

Для заполнения доступно 2 параметра: URL и секретный ключ.
В поле “URL” введите адрес вашего обработчика на вашем сервере. Поддерживается только обращение по протоколам “http” и “https”.
Поле ключ нужно для того, чтобы вы смогли у себя подтвердить, что запрос на ваш обработчик отправила платформа MarketBOT, его значение вы придумываете самостоятельно (у вас должна быть проверка этого значения на серверной стороне, для исключения отправки лидов кем-попало со стороны).

Вы получите POST-запрос с данными закодированные при помощи “x-www-form-urlencoded”.

botidID-бота в системе
programМессенджер
chatАбонент, отправивший заявку (строка)
node_idID-блока “Заявка” в сценарии (уникальный в рамках сценария, всегда больше, чем 1)
user_loginНомер телефона или логин
nicknameИмя абонента (из профиля)
timeВремя создания лида
secretЗначение из поля “секретный ключ”
formdataВведенные данные формы (массив). Описание структуры смотрите внизу данного документа.

Блок RPC

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

Текст сообщенияТекст, отправляемый абоненту в чат (поддерживает Mustache, данные могут быть взяты из ответа вашего обработчика из “tpldata”)
URLАдрес вашего обработчика
Таймаут (сек)Время ожидания ответа от вашего сервера (включает время на подключение), по-умолчанию 15 секунд (максимальное значение 300 сек)
Доп.данныеСтрока, будет передана обработчику без изменений в “extra”

Ваш обработчик будет вызван сразу, а сценарий будет поставлен на паузу до момента получения ответа от вашего сервера. Данные отправляются сериализованные в JSON.

timeВремя инициализации запроса
formdataДанные форм (см. ниже)
extraДоп.данные
botref@deprecated, использование запрещено
chatИдентификатор чата
programМессенджер
profileПрофиль абонента (login, nickname)
messageОбъект сообщения, отправленного абонентом

Пример обработчика запроса блока RPC на языке PHP:

Отправка сообщения абонентам через Rest API.

Иногда может потребоваться отправить сообщение абоненту без его прямого взаимодействия с чат-ботом (например, сервисное уведомление через неделю).

Активация промокода

Вы можете сгенерировать промокоды для ваших клиентов через панель управления МаркетБОТ (раздел “Промокоды”). Один промокод действителен для ввода лишь 1 раз для 1 абонента.

Чтобы принять промокод у клиента установите блок “ввод данных” и укажите типа данных “промокод”. Если вы хотите вывести ваше сообщение, когда клиент вводит неверный промо-код, то соедините выход “клиент ошибся” с необходимой ветвью сценария (можно зацикливать).


В момент, когда ваш клиент введет код, ваш сервер может получить уведомление об этом (на URL указанный в настройках), если код все еще рабочий. Настройки доступны в разделе “Промокоды”.

Вы получите следующие данные методом POST: botid, abonent, code и class.

“abonent” содержит строку program:chat, где program — мессенджер, а chat — это идентификатор абонента.

“class” используется для дискриминации промокодов между собой, например, в случаях, если нужно выдать разные подарки клиенту после его ввода. Значение поля класс не может превышать 50 символов, рекомендуем вводить маленький JSON.

Обратим внимание еще раз, промокод считается использованным СРАЗУ после ввода его абонентом.

Уведомление о платеже

Будет отправлено на ваш сервер только лишь после успешной оплаты со стороны абонента.

POST имеет следующие поля:

  • botid = номер бота в системе
  • chat = абонент
  • program = мессенджер (GS|TL|VB|VK)
  • time = время оплаты в Unix time
  • lang = язык russian / english
  • currency = USD / RUB
  • amount = сумма платежа
  • goods_subject = товар или услуга (название)
  • payment_descr = описание платежа ТСП
  • promocode = ID использованного промокода (цифровой, а не текст)
  • node_id = номер блока “Оплата”

Структура элемента в “Formdata”

‘node_id’ID-блока “Ввод”, с которого было записано данное значение
‘key’Индекс, пример: prompt:55:value или menu:15:value
‘datatype’Тип сохраненных данных: integer|float|email|tel
‘field_name’Текст сообщения из блока (которое видел абонент)
‘uservar’Ваше название переменной, например: myvar0
‘value’Значение, которое ввел абонент
‘caseid’Только для меню, соответствует пункту меню (строчное рандомизированное значение, генерируемое единожды при создании пункта в блоке меню)
‘hash’md5-хэш от значения: md5(value)

Пример структуры сообщения

Текстовое{“type”:”text”,”_text”:”Hello world”}
Картинка{“type”:”image”,”_url”:”http://…”}
Музыка/аудио-сообщение{“type”:”audio”,”_url”:”http://…”}
Видео-файл{“type”:”video”,”_url”:”http://…”}
Документ{“type”:”file”,”_url”:”http://…”}

Заказать разработку и внедрение?

Наши партнеры с радостью разработают чат-бот с любым нужным вам функционалом (от 20 тыс рублей), обратитесь сюда, пожалуйста: https://marketbot.biz/977