Bot API

Обращение к боту из внешних систем

Концепция

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

Для того чтобы управлять поведением бота из внешних систем вам необходимо запланировать работу (job) с помощью Bot API.

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

Гибкость достигается это за счет использования встроенного языка программирования JavaScript и системы триггеров.

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

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

Таким образом работа с API бота из внешних систем представляет обращение к хранимым процедурам бота, которые вы создаете в интерфейсе веб-конструктора.

Доступ к API

Swagger доступен по адресу: https://app.metabot24.com/api/docs

Чтобы получить доступ, достаточно зарегистрировать любой аккаунт на платформе https://app.metabot24.com, затем создать бот и перейти в раздел пользователей бота https://app.metabot24.com/user и там создать API пользователя.

Ниже описан основной метод работы с ботом.

Schedule

POST https://test.cakes.com/bots/{botId}/jobs/schedule

Основной метод для планирования в боте работы.

Path Parameters

NameTypeDescription

botId

number

ID вашего бота

Headers

NameTypeDescription

Authentication

string

Ваш токен аутентификации. Настраивается в панели администратора в разделе "Пользователи бизнеса".

Request Body

NameTypeDescription

script_id

integer

ID скрипта (сценария диалога) для запуска, например, 1

trigger_id

integer

ID триггера для запуска, например, 1

broadcast_id

integer

ID рассылки для запуска, например, 1

script_code

string

Кодовое имя сценария диалога для запуска, например, "script_short_code"

trigger_code

string

Кодовое имя триггера для запуска, например, "script_short_code"

broadcast_code

string

Кодовое имя рассылки для запуска, например, "broadcast_short_code"

lead_id

integer

ID лида/пользователя для которого выполняем работу, например, 135

ticket_id

integer

ID тикета/таблицы в модели данных для которой выполняем работу, например, 7

run_at

string

Время выполнения в формате "ГГГГ-ММ-ДД чч:мм:сс", например, "2021-01-21 21:00:00"

run_after_sec

integer

Отсрочка выполнения в секундах, например, 300

is_periodic

boolean

Необходимо ли повторять работу, например, false

condition_script_code

string

Условие выполнения работы в виде JavaScript кода, например "if (leadId == 135) return true;" Работа будет запланирована и выполнена только при условии, что код условия вернет истину (true).

script_request_params

object

JSON-объект с входными параметрами к которым можно обратиться из триггера, скрипта или рассылки, например: { "first_param": 7, "second_param": { "any_key": "any_value" } }

add_tags

string

Список тэгов, которыми необходимо пометить пользователя, например, 'tag1,tag2'

remove_tags

string

Cписок тэгов, которые необходимо удалить у пользователя 'tag1,tag2'

{    "name": "Cake's name",    "recipe": "Cake's recipe name",    "cake": "Binary cake"}

Last updated