Внешнее событие

Внешнее событие пригодится, если вам нужно запустить бота из какой-то внешней системы или программы, например CRM.

Во Внешнем событии вы отправляете HTTP POST запрос в Ботмаму, чтобы запустить определенный экран бота для одного, нескольких или всех пользователей вашего бота. Еще вы можете передать в запросе переменные, которые будут храниться в объекте last_request.

Чтобы создать Внешнее событие, перейдите в Настройки ➝ События и нажмите кнопку Добавить событие. Введите Имя события и выберите ТипВнешнее событие.

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

Чтобы сгенерировалась ссылка, нажмите кнопку сохранения в правом нижнем углу.

Для вызова события нужно отправить запрос на сгенерированный URL.

Чтобы удалить событие, нажмите на кнопку Удалить.

Как отправить запрос на внешнее событие

Вам нужно из вашей программы или системы сделать POST запрос на выданный событием URL.

Нужно убедиться, что у запроса установлен заголовок Content-Type: application/json

Тело запроса должно быть в формате JSON.

Например, такой запрос запустит выполнение бота для пользователя c platform_id = 123456 внутри платформы Telegram в вашем боте:

{
  "platform": "tg",
  "users": [ "123456" ],
  "data": {}
}

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

{
  "platform": "any",
  "users": "everyone",
  "data": {}
}

Если массив users пустой, то событие уйдет всем пользователям указанной платформы, аналогично как если бы там было записано everyone.

Описание полей запроса внешнего события

Значения platform (обязательно одно значение, any— все) — tg, fb, viber, vk, any.

Значение users — массив platform_id или строка everyone.

Значение data — любой JSON, который запишется в боте в объект last_request.

POST по bm_id

Выбирать пользователей для события можно не только по идентификатору от платформы, но и по идентификатору состояния клиента в Ботмаме.

Получить его можно несколькими способами:

  • из переменной this_user.bm_id внутри бота;
  • из адресной строки конструктора

Зайдите в конструкторе в раздел диалоги, выберите нужного пользователя и кликните на адресную строку браузера. Ваш адрес будет похожим на такой: a href="https://app.botmother.com/bot/ffffffffffffffffffff...aaaaaaaaaaaaaaaaaaaaaaaa, то что у вас будет вместо aaaaaaaaaaaaaaaaaaaaaaaa — это bm_id пользователя.

Собранные bm_id нужно отправлять в массиве users_bm.

Пример тела запроса:

{
  "users_bm": [ "5c517b7773515eaha3078e2f" ],
  "data": {}
}

Описание значений запроса по bm_id

Значение users_bm — массив из bm_id.

Значение data — любой JSON, который запишется в боте в объект last_request.

Взаимодействие Внешнего события и чата

При отправке Внешнего события открытые чаты с оператором по умолчанию остаются открытыми. Если нужно, чтобы Внешнее событие закрывало открытые чаты, добавьте в тело запроса параметр stopDialog: true

{
  "platform": "any",
  "users": "everyone",
  "stopDialog": true,
  "data": {}
}

Была ли статья полезна?

Да Нет