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

Внешнее событие пригодится, если вам нужно запустить бота из какой-то внешней системы или программы, например CRM.
Во Внешнем событии вы отправляете HTTP POST запрос в Ботмаму, чтобы запустить определенный экран бота для одного, нескольких или всех пользователей вашего бота. Еще вы можете передать в запросе переменные, которые будут храниться в объекте last_request.
Чтобы создать Внешнее событие, перейдите в НастройкиСобытия и нажмите кнопку Добавить событие. Введите имя события и выберите тип — Внешнее событие.
В Свойствах вы можете выбрать тип Внешнего события — Сообщение или Экран, которые будут отправлены пользователю, когда это Событие случится.
Чтобы сгенерировалась ссылка, нажмите кнопку сохранения в правом нижнем углу.
Для вызова События нужно отправить запрос на сгенерированный URL.
Чтобы удалить Событие, нажмите на крестик в правом верхнем углу.

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

Вам нужно из вашей программы или системы сделать POST запрос на выданный событием URL.
Нужно убедиться, что у запроса установлен заголовок Content-Type: application/json
Тело запроса должно быть в формате JSON.
Например, такой запрос запустит выполнение бота для пользователя c platform_id = 123456 внутри платформы Telegram в вашем боте:
{ 
  "platform": "tg",
  "users": [ "123456" ],
  "data": {}
}
Или такой запустит выполнение бота для всех пользователей всех платформ вашего бота:
{ 
  "platform": "any",
  "users": "everyone",
  "data": {}
}

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

POST по bm_id

Выбирать пользователей для события можно не только по идентификатору от платформы, но и по идентификатору состояния клиента в Ботмаме.
Получить его можно несколькими способами:
  • из переменной this_user.bm_id внутри бота;
  • из адресной строки конструктора
Зайдите в конструкторе в раздел диалоги, выберите нужного пользователя и кликнете на адресную строку браузера. Ваш адрес будет похожим на такой: https://app.botmother.com/bot/ffffffffffffffffffffffff/dialogs/aaaaaaaaaaaaaaaaaaaaaaaa, то что у вас будет вместо aaaaaaaaaaaaaaaaaaaaaaaa — это bm_id пользователя.
Собранные bm_id нужно отправлять в массиве users_bm.
Пример тела запроса:
{ 
  "users_bm": [ "5c517b7773515eaha3078e2f" ],
  "data": {}
}

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