Коробочные модули конструктора чат-ботов Zabotix позволяют запускать сценарии из внешних систем и даже других приложений Битрикс24. Для этого добавлены собственные методы в REST API Битрикс24.
Доступно только при использовании коробочных модулей конструктора.
Коробочный модуль чат-ботов для сотрудников - с версии 1.0.10
Коробочный модуль чат-ботов для открытых линий - с версии 1.0.13
Для доступа к методу необходимо назначить право в соответтсвии с модулем:
- Конструктор чат-ботов Zabotix (itees:chatbots) - Для ОЛ
- Чат-боты для сотрудников. Zabotix (itees:zabotixintranet) - Для интранета
Название метода в зависимости от модуля:
- itees:chatbots.script.node.run - Для Ол
- itees:zabotixintranet.script.node.run - Для интранета
ID сценария можно получить в списке сценариев
Номер узла можно получить при редактировании узла, он будет указан справа от названия.
Параметры методов, как и во всём rest Битрикса - регистрочувствительные. Если написано с большой буквы, так и надо указывать.
Параметры метода (для ОЛ):
- SCRIPT_ID - ID сценария. Сценарий в котором находится нужный узел. Обязательно, можно найти в списке сценариев.
- NODE_ID - ID узла. Номер узла, который нужно запустить. Обязательно, можно найти в карточке редактирования узла.
- CHAT_ID - ID чата. ID чата (не номер!), в котором нужно запустить узел. Данный параметр обязателен только в том случае, если не указан параметр ENTITY_ID.
- ENTITY_TYPE - Тип сущности. Тип crm-сущности к которой привязан чат (LEAD/DEAL/COMPANY/CONTACT/CRM). Обязательно, если не указан параметр CHAT_ID и если ENTITY_ID содержит только ID сущности.
- ENTITY_ID - ID сущности. ID crm-сущности к которой привязан чат. Это может быть как просто ID (число), так и Тип + ID (прим, DEAL_1893), если указывается вместе с типом, то можно не указывать ENTITY_TYPE отдельно. Обязательно, если не указан параметр CHAT_ID.
- CHECK_OPERATOR - Проверять наличие оператора в чате и не запускать, если оператор в чате. По умолчанию включено. Y - не запускать (т.е. проверять), N - запускать (т.е. не проверять).
Пример 1:
{
SCRIPT_ID: 4589
NODE_ID: 5,
CHAT_ID: 456,
CHECK_OPERATOR: "N"
}
Пример 2:
{
SCRIPT_ID: 4589
NODE_ID: 5,
ENTITY_TYPE: "DEAL",
ENTITY_ID: 1893,
CHECK_OPERATOR: "N"
}
Пример 4:
{
SCRIPT_ID: 4589
NODE_ID: 5,
ENTITY_ID: "DEAL_1893",
CHECK_OPERATOR: "N"
}
|
Параметры метода (для интранета):
- SCRIPT_ID - ID сценария. Сценарий в котором находится нужный узел. Обязательно, можно найти в списке сценариев.
- NODE_ID - ID узла. Номер узла, который нужно запустить. Обязательно, можно найти в карточке редактирования узла.
- USER_ID - ID пользователя. ID пользователя, которому нужно запустить узел. Может быть множественным, для этого ID пользователей нужно указать в массиве. Обязательно.
- USER_SCRIPT - Изолированный чат. По умолчанию включено. Y - изолированный, N - не изолированный. В случае изолированного чата скрипт будет запущен в отдельном чате, иначе в личном чате бота с пользователем.
- FROM_USER - ID пользователя от имени которого будет запущен узел. Не множественное. Обязательно.
Пример 1:
{
SCRIPT_ID: 4589
NODE_ID: 5,
USER_ID: 1232,
USER_SCRIPT: "Y",
FROM_USER: 132
}
Пример 2:
{
SCRIPT_ID: 4589
NODE_ID: 5,
USER_ID: [1232, 1254, 1324],
USER_SCRIPT: "Y",
FROM_USER: 132
}
|
В случае не указания параметра или отсутствия нужного узла метод выдаст соответствующую ошибку, в обычном формате rest Битрикса (код ошибки и описание).
Если в случае ОЛ нее удалось найти привязанный чат, метод также возвращает ошибку.
В случае успеха метод возвращает ответ в следующем формате.
Для ол:
{
ID чата: {
result: Результат,
error: Ошибка
}
}
|
Т.е. это массив с ключами в виде ID чатов в которых был запущен узел (т.к. в случае указания ENTITY_ID к нему может быть привязано несколько чатов и результат у всех может быть разным).
Результат - это либо true в случае успеха, либо false в случае неудачи.
Ошибка - это либо false при отсутсвии ошибки, либо описание ошибки при её наличии. Например, наличие оператора при CHECK_OPERATOR = Y будет ошибкой.
Для интранета:
{
ID пользователя: {
result: Результат,
error: Ошибка
}
}
|
Т.е. это массив с ключами в виде ID пользователей для которых был запущен узел (т.к. метод поддерживает множественность ID пользователей).
Результат - это либо true в случае успеха, либо false в случае неудачи.
Ошибка - это либо false при отсутсвии ошибки, либо описание ошибки при её наличии. Например, отсутсвие пользователя будет ошибкой.
Метод доступен как в приложениях, так и в вебхуках.