Методы bot

bot.getData()

Получить значение данных бота

bot.getData(string $key)
Описание:

Возвращает значение данных бота по ключу.

Атрибуты:
Имя Тип Описание
key string Ключ данных бота

В качестве ключа можно указать:

Возвращает:

mixed - значение данных бота в формате, в котором они находятся в сущности

или

null - если таких данных не существует.

Пример:
let data = bot.getData('leadsCount');

bot.findLeads()

Получить лиды по атрибутам

bot.findLeads($columns = [], $where = [], $orderBy = [], ?int $limit = null, ?int $offset = null)
Описание:

Находит лида по указанным атрибутам и другим данным.

Атрибуты:
Имя Тип Описание
columns array Возвращаемые поля лидов, по умолчанию все поля. Вы можете вывести дополнительные поля: status_name, channel_name, channel_code
where array

Массив для поиска лидов по атрибутам, статусам и каналам. Подробнее читайте здесь.

orderBy array Массив сортировки возвращаемых значений. Подробнее читайте здесь.
limit int Максимальное число возвращаемых лидов. Можно вернуть диапазон от 1 до 100
offset int Числовое значение, указывающее количество записей, которые необходимо пропустить от начала результата выборки перед возвратом данных. Этот параметр используется для пагинации. Например, если limit установлен на 100, а offset равен 100, то будут возвращены записи, начиная со 101-го лида.
Возвращает:

array - массив полей лидов.

В массиве следующие поля:

 
Пример:
let leads = bot.findLeads(
    [],
    [
     ['lead_attributes.attribute_type', 'variable'],
     ['lead_attributes.attribute_key', 'nlpLastIntentName'],
     ['lead_attributes.attribute_value', 'позвать_человека'],
    ],
    [['updated_at']]
);

if (leads.length) {
    let statusName = leads[0].getData('id');
}

или получаем поля для первого найденного лида (без условий):

let leads = bot.findLeads(['status_name', 'channel_name', 'channel_code']);
if (leads.length) {
    let statusName = leads[0].getData('status_name');
    let channelName = leads[0].getData('channel_name');
    let channelCode = leads[0].getData('channel_code');
}

bot.scheduleScript()

Планирование скрипта

bot.scheduleScript(?int $scriptId, ?int $leadId, ?int $ticketId = null, $jobParams = [])
Описание:

Запускает скрипт в соответствии с указанными параметрами.

Атрибуты:
Имя Тип Описание
scriptId int ID скрипта, который будет запущен
leadId int ID лида, для которого будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение планирования скрипта.

Пример:
var result = bot.scheduleScript(1426, 6473, null, {
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.getScriptIdByName()

Получить ID скрипта по наименованию

bot.getScriptIdByName(?string $scriptName)
Описание:

Возвращает id скрипта по его наименованию.

Атрибуты:
Имя Тип Описание
scriptName string Наименование скрипта
Возвращает:

int - id скрипта в формате числа.

Пример:
let ScriptId = bot.getScriptIdByName('Меню');

bot.getScriptIdByCode()

Получить ID скрипта по коду

bot.getScriptIdByCode(?string $scriptCode)
Описание:

Возвращает id скрипта по его дополнительному идентификатору.

Атрибуты:
Имя Тип Описание
scriptCode string Код скрипта
Возвращает:

int - id скрипта в формате числа.

Пример:
let ScriptId = bot.getScriptIdByCode('menu');

bot.runScriptForLead()

Запустить скрипт для лида по ID

bot.runScriptForLead(?int $scriptId, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает скрипт бота для лида по указанному id скрипта.

Атрибуты:
Имя Тип Описание
scriptId int ID скрипта, который будет запущен
leadId int ID лида, для которого будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска скрипта.

Пример:
let ScriptId = bot.getScriptIdByName('Меню');

bot.runScriptForLead(ScriptId, 165784, null, true);

bot.runScriptByNameForLead()

Запустить скрипт для лида по наименованию

bot.runScriptByNameForLead(?string $scriptName, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает скрипт бота для лида по указанному имени скрипта.

Атрибуты:
Имя Тип Описание
scriptName string Наименование скрипта, который будет запущен
leadId int ID лида, для которого будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска скрипта.

Пример:
bot.runScriptByNameForLead('Меню', 165784, null, true);

bot.runScriptForPerson()

Запустить скрипт для персоны по ID

bot.runScriptForPerson(?int $scriptId, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает скрипт бота для персоны по указанному id скрипта.

Атрибуты:
Имя Тип Описание
scriptId int ID скрипта, который будет запущен
personId int ID персоны, для которой будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска скрипта.

Пример:
let ScriptId = bot.getScriptIdByCode('menu');

bot.runScriptForPerson(ScriptId, 24178, null, true);

bot.runScriptByNameForPerson()

Запустить скрипт для персоны по наименованию

bot.runScriptByNameForPerson(?string $scriptName, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает скрипт бота для персоны по указанному имени скрипта.

Атрибуты:
Имя Тип Описание
scriptName string Наименование скрипта, который будет запущен
personId int ID персоны, для которой будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска скрипта.

Пример:
bot.runScriptByNameForPerson('Меню', 24178, null, false);

bot.runScriptByCodeForLead()

Запустить скрипт для лида по коду

bot.runScriptByCodeForLead(?string $scriptCode, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает скрипт бота для лида по указанному коду скрипта.

Атрибуты:
Имя Тип Описание
scriptCode string Код скрипта, который будет запущен
leadId int ID лида, для которого будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска скрипта.

Пример:
bot.runScriptByCodeForLead("SEND_TOKEN", 135, null, false, {
  "run_at": "2021-03-23 19:05:30", 
});

bot.runScriptByCodeForPerson()

Запустить скрипт для персоны по коду

bot.runScriptByCodeForPerson(?string $scriptCode, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает скрипт бота для персоны по указанному коду скрипта.

Атрибуты:
Имя Тип Описание
scriptCode string Код скрипта, который будет запущен
personId int ID персоны, для которой будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска скрипта.

Пример:
bot.runScriptByCodeForPerson("SEND_TOKEN", 135, null, false, {
  "run_after_sec": 5, 
});

bot.clearJobsByScriptId()

Очистить джобы по id скрипта

bot.clearJobsByScriptId(?int $scriptId, ?int $leadId = null)
Описание:

Выполняется поиск и очистка джоб по id скрипта.

Атрибуты:
Имя Тип Описание
scriptId int ID серипта
leadId int ID лида
Возвращает:

bool - подтверждение очистки джоб.

Пример:
bot.clearJobsByScriptId(1342, 187);

bot.clearJobsByScriptName()

Очистить джобы по наименованию скрипта

bot.clearJobsByScriptName(?string $scriptName, ?int $leadId = null)
Описание:

Выполняется поиск и очистка джоб по наименованию скрипта.

Атрибуты:
Имя Тип Описание
scriptName string Наименование скрипта
leadId int ID лида
Возвращает:

bool - подтверждение очистки джоб.

Пример:
bot.clearJobsByScriptName("skript", 187);

bot.clearJobsByScriptCode()

Очистить джобы по коду скрипта

bot.clearJobsByScriptCode(?string $scriptCode, ?int $leadId = null)
Описание:

Выполняется поиск и очистка джоб по коду скрипта.

Атрибуты:
Имя Тип Описание
scriptCode string Код скрипта
leadId int ID лида
Возвращает:

bool - подтверждение очистки джоб.

Пример:
bot.clearJobsByScriptCode("SEND_TOKEN", 187);

bot.setAttr()

Установить значение переменной бота

bot.setAttr(string $key, string $value)
Описание:

Обновляет значение уже существующей глобальной переменной или создает новую переменную с указанным значением. Данные будут сохранены в БД.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
value string Значение переменной

Не возвращает значений, так как выполняет только установку переменной.

Пример:

Создание глобальной переменной бота bot_attribute:

bot.setAttr('bot_attribute', 'Значение глобальной переменной')

bot.getAttr()

Получить значение переменной бота

bot.getAttr(string $key)

Описание:

Возвращает значение уже существующей глобальной переменной.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
Возвращает:

mixed - объект того же типа и значения, что у запрашиваемой переменной.

Пример:

Получение значения глобальной переменной бота bot_attribute:

let bot_attribute_value = bot.getAttr('bot_attribute');

bot.getAllAttr()

Получить все переменные бота

bot.getAllAttr()
Описание:

Возвращает значение всех глобальных переменных.

Возвращает:

array - массив значений всех переменных.

Пример:

Получение значений всех глобальных переменных бота и сложение их значений:

let bot_attribute = null;
let all_bot_attributes = bot.getAllAttr();
for(let i = 0; i < all_bot_attributes.length; i++) {
  bot_attribute = bot_attribute + all_bot_attributes[i];
}

bot.issetAttr() и bot.isAttrExist()

Проверить наличие переменной бота

bot.issetAttr(string $key)

или

bot.isAttrExist(string $key)
Описание:

Проверяет существует ли глобальная переменная в боте.

Атрибуты:
Имя Тип Описание
key string Наименование переменной

Возвращает:

bool - подтверждение существования переменной.

Пример:

Проверка двумя способами существования глобальной переменной бота bot_attribute:

let bot_exists = bot.issetAttr('bot_attribute');
let bot_altexists = bot.isAttrExist('bot_attribute');

bot.scheduleTrigger()

Планирование триггера

bot.scheduleTrigger(?int $triggerId, ?int $leadId, ?int $ticketId = null, $jobParams = [])
Описание:

Запускает триггер в соответствии с указанными параметрами.

Атрибуты:
Имя Тип Описание
triggerId int ID триггера, который будет запущен
leadId int ID лида, для которого будет запущен триггер
ticketId int ID заявки, для которой будет запущен триггер
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение планирования триггера.

Пример:
var result = bot.scheduleTrigger(4213, 1426, null, {
  "is_periodic": true,
  "repeat_interval_sec": 10,
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.runTriggerByCodeForLead()

Планирование триггера по коду

bot.runTriggerByCodeForLead(?string $triggerCode, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает триггер в соответствии с указанными параметрами по коду.

Атрибуты:
Имя Тип Описание
triggerCode string ID триггера, который будет запущен
leadId int ID лида, для которого будет запущен триггер
ticketId int ID заявки, для которой будет запущен триггер
addToQueue bool Добавление в очередь триггеров
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение планирования триггера.

Пример:
var result = bot.runTriggerByCodeForLead('test', 1426, null, true, {
  "is_periodic": true,
  "repeat_interval_sec": 10,
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.runTriggerByCodeForPerson()

Планирование триггера по коду для последнего лида персоны

bot.runTriggerByCodeForPerson(?string $triggerCode, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает триггер в соответствии с указанными параметрами по коду для последнего лида указанной персоны.

Атрибуты:
Имя Тип Описание
triggerCode string ID триггера, который будет запущен
personId int ID персоны, для которой будет найден последний лид
ticketId int ID заявки, для которой будет запущен триггер
addToQueue bool Добавление в очередь триггеров
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение планирования триггера.

Пример:
var result = bot.runTriggerByCodeForPerson('test', 1426, null, true, {
  "is_periodic": true,
  "repeat_interval_sec": 10,
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.clearTriggerJobsForLead()

Удалить триггеры для лида

bot.clearTriggerJobsForLead(?int $leadId, ?int $ticketId = null)
Описание:

Удаляет все триггеры из очереди для лида.

Атрибуты:
Имя Тип Описание
leadId int ID лида, триггеры которого будут удалены
ticketId int ID заявки, триггеры которого будут удалены
Возвращает:

bool - подтверждение удаления триггеров.

Пример:
bot.clearTriggerJobsForLead(236178, 229715);

bot.clearTriggerJobsForAllPersonLeads()

Удалить триггеры для всех лидов персоны

bot.clearTriggerJobsForAllPersonLeads(?int $personId, ?int $ticketId = null)
Описание:

Удаляет все триггеры из очереди для всех лидов персоны.

Атрибуты:
Имя Тип Описание
personId int ID персоны, триггеры которой будут удалены
ticketId int ID заявки, триггеры которого будут удалены
Возвращает:

bool - подтверждение удаления триггеров.

Пример:
bot.clearTriggerJobsForAllPersonLeads(36178);

bot.getTriggerIdByName()

Получить ID триггера по наименованию

bot.getTriggerIdByName(?string $triggerName)
Описание:

Возвращает id триггера по указанному наименованию.

Атрибуты:
Имя Тип Описание
triggerName string Наименование триггера
Возвращает:

int - id триггера в формате числа.

Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');

bot.getTriggerIdByCode()

Получить ID Триггера по Коду

bot.getTriggerIdByCode(?string $triggerCode)
Описание:

Возвращает id триггера по указанному коду.

Атрибуты:
Имя Тип Описание
triggerCode string Код триггера
Возвращает:

int - id триггера в формате числа.

bot.runTriggerForLead()

Запустить триггер для лида по ID триггера

bot.runTriggerForLead(?int $triggerId, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает триггер для лида по указанному id триггера.

Атрибуты:
Имя Тип Описание
triggerId int ID триггера, который будет запущен
leadId int ID лида, для которого будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска триггера.

Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');
bot.runTriggerForLead(TriggerId, 236178, null, true, {
  "run_at": "2021-03-23 19:01:00", 
});

bot.runTriggerByNameForLead()

Запустить триггер для лида по наименованию

bot.runTriggerByNameForLead(?string $triggerName, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает триггер для лида по указанному имени триггера.

Атрибуты:
Имя Тип Описание
triggerName string Наименование триггера, который будет запущен
leadId int ID лида, для которого будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска триггера.

Пример:
bot.runTriggerByNameForLead('Триггер', 236178, null, true{
  "run_after_sec": 5, 
});

bot.runTriggerForPerson()

Запустить триггер для персоны по ID

bot.runTriggerForPerson(?int $triggerId, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает триггер для персоны по указанному id триггера.

Атрибуты:
Имя Тип Описание
triggerId int ID триггера, который будет запущен
personId int ID персоны, для которой будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска триггера.

Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');
bot.runTriggerForPerson(TriggerId, 36178, null, true);

bot.runTriggerByNameForPerson()

Запустить триггер для персоны по наименованию

bot.runTriggerByNameForPerson(?string $triggerName, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])
Описание:

Запускает триггер для персоны по указанному имени триггера.

Атрибуты:
Имя Тип Описание
triggerName string Наименование триггера, который будет запущен
personId int ID персоны, для которой будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
addToQueue bool Добавление в очередь скриптов
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение запуска триггера.

Пример:
bot.runTriggerByNameForPerson('Триггер', 36178, null, true);

bot.clearTriggerJobsById()

Очистить джобы по id триггера

bot.clearTriggerJobsById(?int $triggerId, ?int $leadId = null)
Описание:

Выполняется поиск и очистка джоб по id триггера.

Атрибуты:
Имя Тип Описание
triggerId int ID триггера
leadId int ID лида
Возвращает:

bool - подтверждение очистки джоб.

Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');
bot.clearTriggerJobsById(TriggerId);

bot.clearTriggerJobsByName()

Очистить джобы по наименованию триггера

bot.clearTriggerJobsByName(?string $triggerName, ?int $leadId = null)
Описание:

Выполняется поиск и очистка джоб по наименованию триггера.

Атрибуты:
Имя Тип Описание
triggerName string Наименование триггера
leadId int ID лида
Возвращает:

bool - подтверждение очистки джоб.

Пример:
bot.clearTriggerJobsByName('Триггер');

bot.clearTriggerJobsByScriptCode()

Очистить джобы по коду скрипта

bot.clearTriggerJobsByScriptCode(?string $scriptCode, ?int $leadId = null, ?int $ticketId = null)
Описание:

Выполняется поиск и очистка джоб триггеров по коду скрипта.

Атрибуты:
Имя Тип Описание
scriptCode string Код скрипта
leadId int ID лида
ticketId int ID заявки
Возвращает:

bool - подтверждение очистки джоб.

bot.clearTriggerJobsByIdForTicket()

Очистить джобы по id триггера и ID заявки

bot.clearTriggerJobsByIdForTicket(?int $triggerId, ?int $ticketId)
Описание:

Выполняется поиск и очистка джоб по id триггера и ID заявки.

Атрибуты:
Имя Тип Описание
triggerId int ID триггера
ticketId int ID заявки, джобы которой будут очищены
Возвращает:

bool - подтверждение очистки джоб.

Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');
bot.clearTriggerJobsByIdForTicket(TriggerId, 17256);

bot.clearTriggerJobsByNameForTicket()

Очистить джобы по наименованию триггера и ID заявки

bot.clearTriggerJobsByNameForTicket(?string $triggerName, ?int $ticketId)
Описание:

Выполняется поиск и очистка джоб по наименованию триггера и ID заявки.

Атрибуты:
Имя Тип Описание
triggerName string Наименование триггера
ticketId int ID заявки, джобы которой будут очищены
Возвращает:

bool - подтверждение очистки джоб.

Пример:
bot.clearTriggerJobsByNameForTicket('Триггер', 17256);

bot.scheduleBroadcast()

Планирование рассылки

bot.scheduleBroadcast(?int $broadcastId, ?int $ticketId = null, $jobParams = [])
Описание:

Запускает рассылку в соответствии с указанными параметрами.

Атрибуты:
Имя Тип Описание
broadcastId int ID рассылки, которая будет запущена
ticketId int ID заявки, для которой будет запущена рассылка
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)
condition_script_code (для перекрытия условия триггера/рассылки).

Для установки времени запуска:

run_at - точное время запуска (по часовому поясу сервера)
или
run_after_sec - для запуска через указанное кол-во секунд

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение планирования рассылки.

Пример:
var result = bot.scheduleBroadcast(1426, null, {
  "is_periodic": true,
  "repeat_interval_sec": 10,
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.scheduleBroadcastByCode()

Планирование рассылки по коду

bot.scheduleBroadcastByCode(?string $broadcastCode, ?int $ticketId = null, $jobParams = [])
Описание:

Запускает рассылку в соответствии с указанными параметрами по коду.

Атрибуты:
Имя Тип Описание
broadcastCode string Код рассылки, которая будет запущена
ticketId int ID заявки, для которой будет запущена рассылка
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)
condition_script_code (для перекрытия условия триггера/рассылки).

Для установки времени запуска:

run_at - точное время запуска (по часовому поясу сервера)
или
run_after_sec - для запуска через указанное кол-во секунд

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение планирования рассылки.

Пример:
var result = bot.scheduleBroadcastByCode('test_broadcast', null, {
  "is_periodic": true,
  "repeat_interval_sec": 10,
  "condition_script_code": "if (leadId == 135) { lead.setAttr('рассылка 127', 'выполнено. параметр name: ' + request.json.name); bot.runScriptForLead(7724, 135); }",
  "script_request_params": {
        "name": "Alex" 
  }
});

memory.setAttr('yes_or_not', result ? 'да' : 'нет');

bot.getBroadcastIdByCode()

Получить ID Рассылки по Коду

bot.getBroadcastIdByCode(?string $broadcastCode)
Описание:

Находит id рассылки по ее коду.

Атрибуты:
Имя Тип Описание
broadcastCode string Код рассылки
Возвращает:

int - id рассылки.

bot.getForwardEventType()

Проверка кто переключил на оператора

bot.getForwardEventType()
Описание:

Эта функция необходимо для того чтобы отличать событие Переключения на оператора обычным способом (через маршруты/скрипты бота) или при перехвате управления оператором.

Возвращает:

bool - "forwarded_by_operator" если контроль за диалогом забран оператором (по его инициативе).

bot.isForwardedToOperator()

Проверка переключения на оператора

bot.isForwardedToOperator()
Описание:

Проверяет переключен ли лид на оператора.

Возвращает:

bool - подтверждение того, что лид переключен на оператора.

bot.createTicket()

Создание заявки

bot.createTicket($data)
Описание:

Создает в боте заявку с указанными полями.

Атрибуты:
Имя Тип Описание
data json Данные о заявке в формате json. Возможные поля расписаны ниже
title string Заголовок заявки
ticket_type_id int Id типа заявки
status_id int Id статуса заявки

author_person_id

int Id автора заявки

client_person_id

int Id клиента заявки

assigned_person_id

int Id исполнителя заявки

description

string Описание заявки

Для избежания пересечения с полями заявки дополнительные поля по имени передаются отдельным блоком 'custom'.

Возвращает:

int - id созданной заявки в формате числа.

Пример:
let ticketData = {
  'title': 'Создано в боте',
  'ticket_type_id': 1006,
  'status_id': 1017
  'description': lead.getAttr('проблема')  
};

ticketData.custom = {
  'возраст': 99,
  'рост': 199
};

let newTicketId = bot.createTicket(ticketData);

Пример создания заявки с кастомным полем space типа выпадающий список: 

let $space = 0;

if (lead.getAttr('space') == 'Квартира') {
  $space = 1;
} else if (lead.getAttr('space') == 'Частный дом') {
  $space = 2;
} else if (lead.getAttr('space') == 'Общежитие') {
  $space = 3;
}

let ticketData = {
  'title': 'Создано в боте'
};

ticketData.custom = {
  'space': $space
}

let newTicketId = bot.createTicket(ticketData);

bot.updateTicketById()

Обновление заявки

bot.updateTicketById(int $ticketId, $data)
Описание:

Обновляет заявку по id.

Атрибуты:
Имя Тип Описание
ticketId int ID заявки
data json Данные о заявке в формате json. Возможные поля расписаны ниже
title string Заголовок заявки
ticket_type_id int Id типа заявки
status_id int Id статуса заявки

author_person_id

int Id автора заявки

client_person_id

int Id клиента заявки

assigned_person_id

int Id исполнителя заявки

description

string Описание заявки
Возвращает:

bool - подтверждение обновления заявки.

Пример:
bot.updateTicketById(4527, {
  'title': 'Создано в боте',
  'ticket_type_id': 1013,
  'status_id': 1096
})

bot.getMaxRejectsTicketCount()

Получить максимальное количество отказов

bot.getMaxRejectsTicketCount()
Описание:

Возвращает максимальное количество отказов от заявки.

Возвращает:

int - количество отказов в формате числа.

Пример:
let MaxRejects = bot.getMaxRejectsTicketCount();

bot.findTickets()

Поиск заявок

bot.findTickets($where = [], bool $findInAllBusinessBots = false, $orderBy = [], ?int $limit = null, ?int $offset = null)
Описание:

Находит заявки в соответствии с указанными параметрами и возвращает их массив.

Атрибуты:
Имя Тип Описание
where array Параметр по которому будет проверяться соответствие с найденными заявками
findInAllBusinessBots bool Параметр, показывающий нужно ли искать заявки во всех ботах бизнеса
orderBy array Параметр сортирующий найденные заявки
limit ?int Максимальное количество заявок, которое будет возвращено
offset ?int Параметр показывающий с какой по счету найденной заявки начать возвращать значения
Возвращает:

array - массив с id всех найденных заявок.

Пример:
let tickets = bot.findTickets();

for (let i = 0; i < tickets.length; i++) {
  lead.setAttr('tickets_' + i + '_tickets_title', tickets[i].getData('title'));
  lead.setAttr('tickets_' + i + '_client_contacts', tickets[i].getCustomData('client_contacts'));
  lead.setAttr('tickets_' + i + '_details', tickets[i].getCustomData('details'));
  lead.setAttr('tickets_' + i + '_статус_имя', tickets[i].getCustomData('статус.имя'));
}

lead.setAttr('found_tickets_count', tickets.length);

bot.findTicketIdByCustomField()

Найти id заявки по значению поля

bot.findTicketIdByCustomField(string $fieldName, $value)
Описание:

Находит Id первой заявки, у которой поле $fieldName имеет значение $value.

Атрибуты:
Имя Тип Описание
fieldName string Наименование поля заявки
value mixed Значение поля заявки
Возвращает:

int - id найденной заявки в формате числа.

Пример:
let TicketId = bot.findTicketIdByCustomField('title', 'Заявка');

bot.getTicketTypeIdByName()

Найти id вида заявки по наименованию

bot.getTicketTypeIdByName(string $typeName)
Описание:

Находит id вида заявки по наименованию вида заявки.

Атрибуты:
Имя Тип Описание
typeName string Наименование вида заявки
Возвращает:

int - id вида заявки в формате числа.

Пример:
let TicketId = bot.findTicketIdByCustomField('Заявка');

bot.getTicketStatusIdByName()

Найти id статуса заявки по наименованию

bot.getTicketStatusIdByName(string $statusName)
Описание:

Находит id статуса заявки по наименованию статуса заявки.

Атрибуты:
Имя Тип Описание
statusName string Наименование статуса заявки
Возвращает:

int - id статуса заявки в формате числа.

Пример:
let StatusId = bot.getTicketStatusIdByName('Статус');

bot.setCurrentTicketById()

Установить текущую заявку

bot.setCurrentTicketById(?int $ticketId)
Описание:

Устанавливает текущую заявку по id. Переменные с новым значением начинают работать со следующей команды после команды с вызовом bot.setCurrentTicketById. 

Атрибуты:
Имя Тип Описание
ticketId ?int ID заявки
Возвращает:

bool - подтверждение установки текущей заявки.

Пример:
bot.setCurrentTicketById(1432);

bot.clearTicketAssignedPersonsLog()

Очистить лог назначения тикета персонам

bot.clearTicketAssignedPersonsLog()
Описание:

Очищает лог назначения тикета персонам, чтобы можно было запустить один тикет повторно по той же очереди исполнителей.

Возвращает:

bool — подтверждение очистки лога.

bot.createPerson()

Создание персоны

bot.createPerson($data)
Описание:

Создает в боте персону с указанными полями.

Атрибуты:
Имя Тип Описание

data

json Данные о персоне в формате json. Возможные поля расписаны ниже

lead_id

integer|null Id лида, к которому будет привязана персона

person_role_id

integer Id персоны

is_external

bool

Если не устанавливать по умолчанию будет установлено 1, означающее что персона является клиентом.

А 0 означает что персона является работником бизнеса

user_id 

integer Id пользователя, привязываемого к персоне

firstname 

string|null Имя персоны

lastname 

string|null Фамилия персоны

middlename 

string|null Отчество персоны

email 

string|null Адрес электронной почты персоны

phone 

string|null Номер телефона персоны

organization_name

string|null Название организации

organization_address

string|null Адрес организации

comment 

string|null Комментарий к персоне
Возвращает:

int - id персоны в формате числа.

Пример:
let newPersonId = bot.createPerson({
  'lead_id': 2356,
  'is_external': 1,
  'lastname': 'Иванов'
});

bot.findPersons()

Поиск персоны

bot.findPersons($where = [], $orderBy = [], ?int $limit = null, ?int $offset = null, bool $isLogErrorIfManyPersonsFound = false)
Описание:

Находит персоны в соответствии с указанными параметрами и возвращает их массив.

Атрибуты:
Имя Тип Описание

where

array Параметр по которому будет проверяться соответствие с найденными персонами

orderBy

array Параметр сортирующий найденные персоны

limit

?int Максимальное количество персон, которое будет возвращено

offset

?int Параметр показывающий с какой по счету найденной персоны начать возвращать значения

isLogErrorIfManyPersonsFound

bool Возвращать ли лог с ошибкой, если найдено больше персон чем указано в limit
Возвращает:

array - массив с id всех найденных персон.

Пример:
//let persons = bot.findPersons([["firstname", "Alex"]], {}, null, null, true);
//let persons = bot.findPersons([["firstname", "Alex"], ["is_external", "=", 0]], {}, null, null, true);
//let persons = bot.findPersons([["persons.firstname", "=", "Alex"], ["persons.is_external", "=", 0], ["person_roles.name", "=", "test"]], {}, null, null, true);

let persons = bot.findPersons([["firstname", "Alex"]]);

for (let i = 0; i < persons.length; i++) {
  lead.setAttr('person_' + i + '_role_name', persons[i].getRoleName()); 
}

lead.setAttr('found_persons_count', persons.length);

bot.updatePersonById()

Обновить персону по id

bot.updatePersonById(int $personId, $data)
Описание:

Обновляет поля персоны в соответствии с БД. 

Атрибуты:
Имя Тип Описание

personId

int ID персоны

data

json Данные о персоне в формате json. Возможные поля расписаны ниже

person_role_id

integer Id персоны

is_external

bool

Если не устанавливать по умолчанию будет установлено 1, означающее что персона является клиентом.

А 0 означает что персона является работником бизнеса

user_id 

integer Id пользователя, привязываемого к персоне

firstname 

string|null Имя персоны

lastname 

string|null Фамилия персоны

middlename 

string|null Отчество персоны

email 

string|null Адрес электронной почты персоны

phone 

string|null Номер телефона персоны

organization_name

string|null Название организации

organization_address

string|null Адрес организации

comment 

string|null Комментарий к персоне

Возвращает:

bool - подтверждение обновления данных.

Пример:
bot.updatePersonById(15624, {
  'is_external': 1,
  'firstname': 'Иван',
  'lastname': 'Иванов'
});

bot.deletePersonById()

Удалить персону по id

bot.deletePersonById(int $personId)
Описание:

Удаляет персону по id. 

Атрибуты:
Имя Тип Описание

personId

int ID персоны

Возвращает:

bool - подтверждение удаления персоны.

Пример:
bot.deletePersonById(24376);

bot.getIntegrationIdByCode()

Получить id интеграции бота по коду

bot.getIntegrationIdByCode(?string $integrationCode)
Описание:

Находит id интеграции по ее коду.

Атрибуты:
Имя Тип Описание
integrationCode string Код интеграции
Возвращает:

int - id интеграции, если она принадлежит боту

или

null - если интеграция не найдена.

bot.getEnabledIntegrationIdByCode()

Получить id включенной интеграции бота по коду

bot.getEnabledIntegrationIdByCode(?string $integrationCode)
Описание:

Находит id интеграции по ее коду, если интеграция активна.

Атрибуты:
Имя Тип Описание
integrationCode string Код интеграции
Возвращает:

int - id интеграции, если она принадлежит боту и активна

или

null - если интеграция не найдена или не активна.

bot.isEnabledIntegrationById()

Проверить активность интеграции по id

bot.isEnabledIntegrationById(?int $integrationId)
Описание:

Проверяет есть ли такая интеграция по id и включена ли она.

Атрибуты:
Имя Тип Описание
integrationId int ID интеграции
Возвращает:

bool - подтверждение активности интеграции.

bot.isEnabledIntegrationByCode()

Проверить активность интеграции по коду

bot.isEnabledIntegrationByCode(?string $integrationCode)
Описание:

Проверяет есть ли такая интеграция по коду и включена ли она.

Атрибуты:
Имя Тип Описание
integrationId int ID интеграции
Возвращает:

bool - подтверждение активности интеграции.

bot.getLockNameForBot()

Сгенерировать имя блокировки по боту

bot.getLockNameForBot(string $lockName, string $lockPrefix = ''): string
Описание:

Генерирует имя блокировки по боту. 

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

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
Возвращает:

string - имя блокировки в формате строки.

Пример:
let lockName = bot.getLockNameForBot('lock', 'first');

bot.getLockNameForBusiness()

Сгенерировать имя блокировки по бизнесу

bot.getLockNameForBusiness(string $lockName, string $lockPrefix = ''): string
Описание:

Генерирует имя блокировки по бизнесу. 

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

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
Возвращает:

string - имя блокировки в формате строки.

Пример:
let lockName = bot.getLockNameForBusiness('lock', 'first');

bot.waitForBusinessLock()

Захватить блокировку по бизнесу

Описание:

Дожидается, когда блокировка будет освобождена, и затем захватывает ее.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
ttlSec  ?int Время жизни блокировки
maxWaitSec  int Максимальное время ожидания блокировки
Возвращает:

bool - подтверждение захвата блокировки.

Пример:
let lockName = 'my_lock_1';
let lockPrefix = '';
let ttlSec = 5;
let maxWaitSec = 300;

let isLocked = false;
isLocked = bot.waitForBusinessLock(lockName, lockPrefix, ttlSec, maxWaitSec);


bot.waitForBotLock()

Захватить блокировку по боту

Описание:

Дожидается, когда блокировка будет освобождена, и затем захватывает ее.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
ttlSec  ?int Время жизни блокировки
maxWaitSec  int Максимальное время ожидания блокировки
Возвращает:

bool - подтверждение захвата блокировки.

Пример:
let lockName = 'my_lock_1';
let lockPrefix = '';
let ttlSec = 5;
let maxWaitSec = 300;

let isLocked = false;
isLocked = bot.waitForBotLock(lockName, lockPrefix, ttlSec, maxWaitSec);


bot.releaseAllCurrentLocks()

Освободить все блокировки

Описание:

Освобождает все блокировки захваченные в текущем скрипте

Возвращает:

bool - подтверждение освобождения блокировки.

bot.releaseCurrentLockForBusiness()

Освободить блокировку скрипта по бизнесу

Описание:

Освобождает блокировку захваченную текущем скрипте по бизнесу.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
Возвращает:

bool - подтверждение освобождения блокировки.

Пример:
if (bot.releaseCurrentLockForBusiness('lockName')) {
    bot.sendText('Блокировка удалена')
} else {
    bot.sendText('Ошика удаления блокировки')
}


bot.releaseCurrentLockForBot()

Освободить блокировку скрипта по боту

Описание:

Освобождает блокировку захваченную текущем скрипте по боту.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
Возвращает:

bool - подтверждение освобождения блокировки.

Пример:
if (bot.releaseCurrentLockForBot('lockName')) {
    bot.sendText('Блокировка удалена')
} else {
    bot.sendText('Ошика удаления блокировки')
}


bot.releaseLockForBusiness()

Освободить блокировку по бизнесу

Описание:

Освобождает блокировку по бизнесу.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
Возвращает:

bool - подтверждение освобождения блокировки.

Пример:
if (bot.releaseLockForBusiness('lockName')) {
    bot.sendText('Блокировка удалена')
} else {
    bot.sendText('Ошика удаления блокировки')
}


bot.releaseLockForBot()

Освободить блокировку по боту

Описание:

Освобождает блокировку по боту.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
Возвращает:

bool - подтверждение освобождения блокировки.

Пример:
if (bot.releaseLockForBot('lockName')) {
    bot.sendText('Блокировка удалена')
} else {
    bot.sendText('Ошика удаления блокировки')
}

bot.hasLockForBot()

Проверка существования блокировки по боту

Описание:

Проверяет существование блокировки по боту.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
checkValue int Количество проверок
Возвращает:

bool - подтверждение существования блокировки.

Пример:
let hasLock = bot.hasLockLockForBot('lockName');

bot.hasLockForBusiness()

Проверка существования блокировки по бизнесу

Описание:

Проверяет существование блокировки по бизнесу.

Атрибуты:
Имя Тип Описание
lockName string Имя блокировки
lockPrefix  string Префикс, который будет добавлен к имени блокировки
checkValue int Количество проверок
Возвращает:

bool - подтверждение существования блокировки.

Пример:
let hasLock = bot.hasLockForBusiness('lockName');

bot.getForwardEventType()

Получить название события

bot.getForwardEventType()
Описание:

Возвращает строку "forwarded_by_operator" если действие выполнено оператором или null для контакт-центра. Ранее она использовалась только для интеграции с контакт-центром Facebook. Для Facebook аналогично, но в дополнение к  "forwarded_by_operator" может возвращать и другие строки, например "message_from_operator" или "operator_joined_dialog".

Возвращает:

string - строка "forwarded_by_operator", если действие выполнено оператором

или

null - если действие не выполнено оператором.

bot.canAutoForward()

Узнать доступно ли авто-назначение оператора в данном скрипте

Описание:

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

Возвращает:

bool - подтверждение доступа к авто-назначению.


bot.scheduleJob()

Планирование любой задачи

bot.scheduleJob($jobParams = [])

Описание:

Запускает задачу в соответствии с указанными параметрами.

Атрибуты:
Имя Тип Описание
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)
condition_script_code (для перекрытия условия триггера/рассылки).

Возможные параметры в jobParams:

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool — подтверждение планирования задачи.

 
Пример:
var result = bot.scheduleJob({
  "trigger_code": "trg31",
  "lead_id": lead.getData('id'),
  "is_periodic": true,
  "repeat_interval_sec": 10,
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.getIncomingMessage()

Получить текст входящего сообщения

bot.getIncomingMessage(bool $useOutputFilter = false)
Описание:

Возвращает текст входящего сообщения или текст подписи к вложению.

Атрибуты:
Имя Тип Описание
useOutputFilter  bool Используется для включения фильтра входящего сообщения, чтобы исключить не поддерживаемые системой символы
Возвращает:

string - текст входящего сообщения в формате строки.

bot.getWebhookJobId()

Получить id вебхука зарегистрированного в очереди Метабот

bot.getWebhookJobId()
Описание:

Возвращает id вебхука зарегистрированного в очереди Метабот.

Возвращает:

int - id вебхука

или

null - если таких данных не существует.

bot.getWebhookJob()

Получить информацию о вебхуке

bot.getWebhookJob()
Описание:

Возвращает информацию о вебхуке, т.е. запись из очереди Метабот. Данная запись также содержит поле payload, удобство использования данной функции в отличии от обработки «сырого» payload в том, что данные возвращаемые функцией уже обработаны и представлены в едином формате для любого мессенджера.

Возвращает:

array - массив индексов.

Параметры (индексы массива) которые возвращает данная функция:

bot.getWebhookPayload()

Получить payload входящего вебхука

bot.getWebhookPayload()
Описание:

Возвращает payload входящего вебхука в виде массива.

Возвращает:

array - массив payload входящего вебхука.

bot.getLastResultPayload()

Получить payload c данными о последнем ответе мессенджера

bot.getLastResultPayload()
Описание:

Возвращает payload c данными о последнем ответе мессенджера в виде массива.

Возвращает:

array - массив payload c данными о последнем ответе мессенджера

или

null - если таких данных не существует.

Пример:
  1. Мы отправили в мессенджер сообщения используя REST API.
  2. Мессенджер вернул ответ, этот ответ будет доступен с помощью функции getLastResultPayload().
  3. Например, таким способом можно получить file_id, который вернул Telegram после отправки файла или id сообщения который вернул Telegram, для того чтобы в дальнейшем отредактировать это сообщение или удалить.

bot.getChannelData()

Получить настройки канала лида

bot.getChannelData(string|null $key = null)
Описание:

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

Атрибуты:
Имя Тип Описание
key string|null Ключ настройки канала лида
Возвращает:

array - массив настроек канала

mixed - настройка канала в формате, в котором она находится в сущности

или

null - если таких данных не существует.

bot.disableBuffer()

Принудительное отключение буфера исходящих сообщений

bot.disableBuffer()
Описание:

Принудительное отключение буфера исходящих сообщений.

Если отключаете, не забывайте включать назад, в конце вашего JavaScript кода.

bot.enableBuffer()

Принудительное включение буфера исходящих сообщений 

bot.enableBuffer()
Описание:

Принудительное включение буфера исходящих сообщений.

Не влияет на аргумент $isDisableBuffer передаваемый в sendText / sendMessage / sendButtons.

bot.flushBuffer()

Принудительное освобождение буфера исходящих сообщений

bot.flushBuffer()
Описание:

Принудительное освобождение буфера исходящих сообщений. Отправка всех накопленных сообщений клиенту.

bot.getAllAttachments()

Получить вложения всех видов

bot.getAllAttachments(string|null $filesMimeExcludeFilter = 'image|video')
Описание:

Получить вложения всех видов, в т.ч. фото, видео, аудио, файлы и т.д., т.е. все вложения которые поддерживаем Метабот и данный канал.

На данный момент getAllAttachments работает только с Telegram, для других каналов функция возвращает пустой массив.

Атрибуты:
Имя Тип Описание
filesMimeExcludeFilter  'image|video' | null Тип исключаемых файлов
Возвращает:

array - массив вложений.

bot.getFiles()

Получить все вложения, которые распознаны как файл

bot.getFiles(string|null $mimeIncludeFilter = null, string|null $mimeExcludeFilter = 'image|video')
Описание:

Получить все вложения, которые распознаны как файл.

На данный момент getFilesработает работает только с Telegram, для других каналов функция возвращает пустой массив.

Атрибуты:
Имя Тип Описание
mimeIncludeFilter  string|null | null Тип добавляемых файлов
mimeExcludeFilter  'image|video' | null Тип исключаемых файлов
Возвращает:

array - массив вложений.

bot.getImages()

Получить все изображения

bot.getImages(string|null $mimeIncludeFilter = 'image')
Описание:

Получить все изображения, а также файлы, которые распознаны как изображение.

На данный момент getImagesработает  работает только с Telegram, для других каналов функция возвращает пустой массив.

Атрибуты:
Имя Тип Описание
mimeIncludeFilter   string|null Тип включаемых файлов
Возвращает:

array - массив вложений.

bot.getVideos()

Получить все видео

bot.getVideos(string|null $mimeIncludeFilter = 'video')
Описание:

Получить все видео, а также файлы, которые распознаны как видео.

На данный момент getVideos работает только с Telegram, для других каналов функция возвращает пустой массив.

Атрибуты:
Имя Тип Описание
mimeIncludeFilter  string | null Тип включаемых файлов
Возвращает:

array - массив вложений.

bot.sendPayload()

Отправить payload в мессенджер

bot.sendPayload(string|null $endpoint, array|object $payload)
Описание:

Отправить payload в мессенджер. Удобство использования данной функции в отличии от нативной передачи с помощью api.callEndpoint или api.postJson в том, что не нужно подставлять дополнительные параметры типа токена мессенджера.

Атрибуты:
Имя Тип Описание
endpoint string|null Ключ данных бота
payload array|object 
Возвращает:

mixed - payload в формате, в котором они находятся в сущности

или

array - массив payload 

или

string - payload в формате строки.

bot.sendText()

Отправить текст в мессенджер

bot.sendText(string|null|mixed $messageText, array|object|null $apiAdditionalParams = null, bool $isDisableBuffer = true)
Описание:

Отправляет текст пользователю в мессенджер.

Атрибуты:
Имя Тип Описание
messageText string|null|mixed Текст сообщения
apiAdditionalParams  array|object|null  Дополнительные параметры API
isDisableBuffer  bool  Отключение буфера
Возвращает:

bool - подтверждение успешной отправки сообщения.

bot.sendMessage()

Отправить сообщение в мессенджер

bot.sendMessage(string|null|mixed $messageText, array|object|null $buttons = null, array|object|null $attachments = null, array|object|null $apiAdditionalParams = null, bool $isDisableBuffer = true, bool $isUpdateMessageButtons = false)

Описание:

Отправить сообщение в мессенджер, сообщение может содержать текст, кнопки меню и вложения. Если мессенджер поддерживает, то все это будет отправлено в едином сообщении, иначе по отдельности, в порядке: сначала вложение, затем текст и кнопки меню.

Атрибуты:

Имя Тип Описание
messageText string|null|mixed Текст сообщения
buttons  array|object|null  Кнопки
attachments  array|object|null  Вложения
apiAdditionalParams  array|object|null  Дополнительные параметры, которые будут отправлены по REST API в мессенджер. Работают только для Telegram
isDisableBuffer  bool  Принудительное отключение буффера исходящих сообщений
isUpdateMessageButtons bool  true, для обновления последнего отправленного сообщения в логе,
чтобы не писать в лог повторы сообщений от GPT при апдейте

Возвращает:

bool - подтверждение успешной отправки сообщения.

Пример для Telegram:

Кнопки:

Пример Array of Array of Button без параметра line_num:

let inlineKeyboard = [[{
  "text": "🌳 Программа курса",           //Заголовок кнопки
  "callback_data": "btn_static_program",  //Данные которые отправляются в Telegram и прилетают во входящем вебхуке при нажатии кнопки
  "text_button_label": "1"                //Доп. заголовок, который клеится к тексту кнопки при выключеном inline режиме
}],
[{
  "text": "Открыть главное меню", 
  "callback_data": "btn_static_menu", 
  "text_button_label": "2"
}]];

Пример Array of Array of Button с параметром line_num:

let inlineKeyboard = [{
  "text": "🌳 Программа курса", 
  "callback_data": "btn_static_program", 
  "text_button_label": "1",
  "line_num": 0                           //Номер строки для группировки кнопок
},
{
  "text": "Открыть главное меню", 
  "callback_data": "btn_static_menu", 
  "text_button_label": "2",
  "line_num": 1
}];

Если в значении параметра содержится строка _static_ то платформа Метабот не будет автоматически удалять inline кнопки после принятия входящего вебхука.

Вложения:
let attachments = [{
        				"type": "image", 
        				"url": "https://image.png"
      			   },
                   {
        				"type": "file", 
        				"url": "https://file.pdf"
      			   }]

Типы вложений: 'image' 'video' 'audio' 'file'.

При отправке файлов (документов, не медиа) в Telegram по URL, нужно понимать, что только 'gif', 'zip', 'pdf' для документов отправляются по URL, для других расширений файл скачивается на сервер платформы а затем его содержимое отправляется в Telegram.

Дополнительные параметры:
let apiAdditionalParams = {
  							"endpoint": "deleteMessage",
  							"message_id": bot.getTelegramLastMessageId(),
        					"parse_mode": 'HTML',
  							"item": "параметр"
      			  		  }
Общий пример:
//Сообщение отправляемое методом--------------------------------
let messageText = "Текст сообщения";
//--------------------------------------------------------------

//Кнопки отправляемые методом--------------------------------
let msg = bot.getIncomingMessage().toLowerCase();
if (["btn_static_program", "1"].includes(msg)) {
  return {
    break: true,
    run_script_by_code: 'courseProgram',             //Код активируемого по кнопке скрипта
  };
} else if (["btn_static_menu", "2"].includes(msg)) {
  return {
    break: true,
    run_script_by_code: 'Menu',
  };
}

let inlineKeyboard = [[{
  "text": "🌳 Программа курса", 
  "callback_data": "btn_static_program", 
  "text_button_label": "1"
}],
[{
  "text": "Открыть главное меню", 
  "callback_data": "btn_static_menu", 
  "text_button_label": "2"
}]];
//--------------------------------------------------------------

bot.sendMessage(
      messageText, 
      inlineKeyboard, 
      [{
        "type": "image", 
        "url": "https://s3.objstor.cloud4u.com/unti-prod-people/file/project/ob87fkfvxa.png"
      }],
      {
        "parse_mode": 'HTML'
      }
);

Дополнительно доступен предопределенный параметр «endpoint» – для замены параметра конечной точки в URL, например чтобы направить сообщение Телеграм не по классическому пути sendMessage а «по пути» editMessageMedia для редактирования сообщения, также можно подменить «endpoint», чтобы удалить сообщение, но для данных действий необходимо запоминать и передавать дополнительно как минимум параметр message_id.

// Функции для работы с id последнего сообщения
let getLastTelegramMessageId = function() {
  return parseInt(lead.getAttr("last_telegram_message_id"))
}

let hasLastTelegramMessageId = function() {
  let messageId = getLastTelegramMessageId()
  return (!isNaN(messageId) && messageId > 0)
}

let saveLastTelegramMessageId = function() {
  lead.setAttr("last_telegram_message_id", bot.getTelegramLastMessageId())
}

// Задание apiAdditionalParams
if (hasLastTelegramMessageId()) {
  if (endpoint) {
    let apiAdditionalParams = {
  								"endpoint": "editMessageText",              //"deleteMessage"
  								"message_id": getLastTelegramMessageId(),
        						"parse_mode": 'HTML'
      			  		  	  }
  }
} else {
  let apiAdditionalParams = { "parse_mode": 'HTML' }
  saveLastTelegramMessageId();
}

Пример для остальных каналов:

Для всех каналов кроме Telegram не работает параметр apiAdditionalParams.

Также группировка кнопок меню по строкам с помощью line_num работает только в Telegram. Даже если указать номера строк, кнопки будут отправлены по порядку их определения в массиве.

//Сообщение отправляемое методом--------------------------------
let messageText = "Текст сообщения";
//--------------------------------------------------------------

//Кнопки отправляемые методом--------------------------------
let msg = bot.getIncomingMessage().toLowerCase();
if (["btn_static_program", "1"].includes(msg)) {
  return {
    break: true,
    run_script_by_code: 'courseProgram',             //Код активируемого по кнопке скрипта
  };
} else if (["btn_static_menu", "2"].includes(msg)) {
  return {
    break: true,
    run_script_by_code: 'Menu',
  };
}

let inlineKeyboard = [[{
  "text": "🌳 Программа курса", 
  "callback_data": "btn_static_program", 
  "text_button_label": "1"
}],
[{
  "text": "Открыть главное меню", 
  "callback_data": "btn_static_menu", 
  "text_button_label": "2"
}]];
//--------------------------------------------------------------

bot.sendMessage(
      messageText, 
      inlineKeyboard, 
      [{
        "type": "image", 
        "url": "https://s3.objstor.cloud4u.com/unti-prod-people/file/project/ob87fkfvxa.png"
      }]
);

Отправка файлов доступна для следующих каналов: Telegram, Metabot Wiget. Для остальных параметр attachments следует убрать из метода.

bot.sendButtons()

Отправить кнопки с сообщением в мессенджер

bot.sendButtons(string|null|mixed $messageText, array|object $buttons, array|object|null $apiAdditionalParams = null, bool $isDisableBuffer = true, bool $isUpdateMessageButtons = false)
Описание:

Отправить кнопки с сообщением в мессенджер.

Атрибуты:
Имя Тип Описание
messageText string|null|mixed Текст сообщения
buttons  array|object|null  Кнопки
apiAdditionalParams  array|object|null  Дополнительные параметры, которые будут отправлены по REST API в мессенджер
isDisableBuffer  bool  Принудительное отключение буффера исходящих сообщений
isUpdateMessageButtons bool  Чтобы не логировать сообщение "Выберите вариант с помощью кнопок ниже" для кнопок GPT, которые отправляются в Telegram для обновления сообщений
Возвращает:

bool - подтверждение успешной отправки сообщения.

bot.getTelegramFileInfoById()

Получить информацию о файле в Telegram

bot.getTelegramFileInfoById(string|null $fileId, bool $isShowOriginalInfo = false)
Описание:

Возвращает информацию о файле в Telegram по file ID.

Атрибуты:
Имя Тип Описание
fileId string|null|mixed ID файла
isShowOriginalInfo  array|object|null  Показать оригинальную информацию
Возвращает:

array - информация о файле в форме массива

или

null - если таких файлов нет.

bot.sendTelegramAttachmentAndGetFileId()

Отправить файл в Телеграм и получить file ID

bot.sendTelegramAttachmentAndGetFileId(string|null $messageText, array|object|null $attachment, array|object|null $buttons = null, array|object|null $apiAdditionalParams = null)
Описание:

Отправляет файл в Телеграм и возвращает file ID. При запуске данной функции буфер исходящих сообщений освобождается (высылаются накопленные сообщения), отключается буфер, после выполнения функции, включается назад.  Если включить буфер для выполнения данной функции, вы не сможете получить результат выполнения данной функции, тк отправка накопленного текста будет выполнена позже.

По этой же причине, чтобы было меньше проблем в работе с sendText / sendMessage / sendButtons буфер для них отключен по умолчанию. Логика работы отключения буфера для этих функций аналогична. Если же передаем параметр $isDisableBuffer = false, то ничего не происходит, т.е. текущее состояние буфера не изменяется, если необходимо, вы можете принудительно выключить буфер, передать аргумент $isDisableBuffer = false, сообщения отправятся с использованием буфера.

Атрибуты:
Имя Тип Описание
messageText string|null|mixed Текст сообщения
buttons  array|object|null  Кнопки
attachments  array|object|null  Вложения
apiAdditionalParams  array|object|null  Дополнительные параметры, которые будут отправлены по REST API в мессенджер
Возвращает:

array - ID файлов

или

null - если файл не был создан.

bot.editTelegramInlineKeyboard()

Отредактировать кнопки меню 

bot.editTelegramInlineKeyboard(int|string $chatId, int|string $messageId, string|null string $inlineMessageId, array|object|null $inlineKeyboardMarkup)
Описание:

Редактирует кнопки меню уже отправленного в Telegram сообщения. Выполняет API запрос «editMessageReplyMarkup» к Telegram Bots API.

Описание данного метода можно посмотреть в документации Telegram: https://core.telegram.org/bots/api#editmessagereplymarkup

Атрибуты:
Имя Тип Описание
chatId string|null  Обязателен, если не указан inline_message_id. Уникальный идентификатор целевого чата или имя пользователя целевого канала
messageId array|object|null  Обязателен, если не указан inline_message_id. Идентификатор сообщения для редактирования
inlineMessageId array|object|null  Обязателен, если не указаны Chat_id и message_id. Идентификатор встроенного сообщения
inlineKeyboardMarkup array|object|null 

В формате JSON объект для кнопок.

Возвращает:

string - информация о кнопках

или

null - если кнопки не были созданы.

bot.removeTelegramInlineKeyboard()

Удалить кнопки

bot.removeTelegramInlineKeyboard(int|string $chatId, int|string $messageId, string|null $inlineMessageId = null)
Описание:

Удаляет кнопки меню уже отправленного в Telegram сообщения. Выполняет API запрос «editMessageReplyMarkup» к Telegram Bots API, но кнопки (параметр «reply_markup») не передается в Telegram Bots API.

Описание данного метода можно посмотреть в документации Telegram: https://core.telegram.org/bots/api#editmessagereplymarkup

Атрибуты:
Имя Тип Описание
chatId string|null  Обязателен, если не указан inline_message_id. Уникальный идентификатор целевого чата или имя пользователя целевого канала
messageId array|object|null  Обязателен, если не указан inline_message_id. Идентификатор сообщения для редактирования
inlineMessageId array|object|null  Обязателен, если не указаны Chat_id и message_id. Идентификатор встроенного сообщения
Возвращает:

array - информация о кнопках

или

null - если кнопки не были созданы.

bot.getTelegramLastMessageId()

Получить ID последнего сообщения

bot.getTelegramLastMessageId()
Описание:

Возвращает ID последнего сообщения, отправленного в Telegram. Доступно только в текущем вебхуке, сразу после отправки сообщения. Функция считывает последний payload ответа API мессенджера и извлекает ID сообщения.

Возвращает:

int - ID сообщения

или

null - если сообщение не найдено.

bot.setCdnConfig()

Установить конфиг для доступа к CDN

bot.setCdnConfig(array|object|null $cdnConfig = null)
Описание:

Устанавливает конфиг для доступа к CDN.

Атрибуты:
Имя Тип Описание
cdnConfig  array|object|null  Конфиг
Возвращает:

bool - подтверждение успешной работы метода.

Пример:
let cdnConfig = {"ftp_host": "user115.upload.clients-cdnnow.ru", "ftp_login": "mylogin", "ftp_pass": "mypassword", "public_url": "https://user115.clients-cdnnow.ru"}

bot.setCdnConfig()

Передача конфига коннекта к CDN

bot.setCdnConfig(array|object|null $cdnConfig = null)
Описание:

Передача конфига коннекта к CDN в JS коде может быть не приемлема с точки зрения безопасности.

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

Атрибуты:
Имя Тип Описание
cdnConfig  array|object|null  Конфиг
Возвращает:

bool - подтверждение успешной работы метода.

bot.getCdnConfig()

Получить текущий конфиг CDN

bot.getCdnConfig()
Описание:

Возвращает текущий конфиг CDN.

Возвращает:

array - текущий конфиг

или

null - если данные не найдены.

bot.getFileInfoByUrl()

Получить информацию о файле по URL

bot.getFileInfoByUrl(string $fileUrl)
Описание:

Возвращает информацию о файле по URL.

Атрибуты:
Имя Тип Описание
fileUrl string URL файла
Возвращает:

array - возвращает массив вида:

[
	'exists' => (int) $httpResponseCode == 200,
	'size_kb' => (float) $fileSizeKb,
	'type' => $type,
	'mime_type' => (string|null) $mimeType,
]

Где

$httpResponseCode – HTTP код выполнения HEAD запроса (без чтения BODY);

$fileSize – размер файла в Кб;

$type – тип вложения определенный с помощью $mimeType ('image' / 'video' / 'audio' / 'file');

$mimeType – Mime Type определенный на основе расширения файла (извлекаемого из URL).

bot.downloadFileFromUrl()

Скачать файла с URL

bot.downloadFileFromUrl(string $fileUrl)
Описание:

Скачивает файл с URL и загрузить в хранилище файлов Метабот для вашего бизнеса. Желательно использовать своё CDN хранилище или самим загружать файлы с помощью своего, стороннего микросервиса.

Атрибуты:
Имя Тип Описание
fileUrl string URL файла
Возвращает:

array - скачанный файлы

или

string - скачанный файл.

bot.downloadTmpFileFromUrl()

Скачать файла с URL и загрузить во временное хранилище

bot.downloadTmpFileFromUrl(string $fileUrl)
Описание:

Скачивает файл с URL и загрузить во временное хранилище файлов Метабот для вашего бизнеса. Желательно использовать своё CDN хранилище или самим загружать файлы с помощью своего, стороннего микросервиса.

 Имейте ввиду, что такое хранилище периодически очищается.

Атрибуты:
Имя Тип Описание
fileUrl string URL файла
Возвращает:

array - скачанный файлы

или

string - скачанный файл.

bot.removeFile()

Удалить файл по URL 

bot.removeFile(string $fileUrl)
Описание:

Удаляет файл по URL из хранилища файлов Метабот для вашего бизнеса.

Атрибуты:
Имя Тип Описание
fileUrl string URL файла
Возвращает:

string - URL файла.

bot.removeTmpFile()

Удалить файл по URL из временного хранилища

bot.removeTmpFile(string $fileUrl)
Описание:

Удаляет файл по URL из временного хранилища файлов Метабот для вашего бизнеса.

Атрибуты:
Имя Тип Описание
fileUrl string URL файла
Возвращает:

string - URL файла.

bot.uploadFileToCdnAndGetNewUrl()

Залить файл на CDN и получить новую ссылку

bot.uploadFileToCdnAndGetNewUrl(string $fileUrl, array|object|null $cdnConfig = null)
Описание:

Заливает файл на CDN и возвращает новую ссылку, а также доп. параметры с описанием файла.

Атрибуты:
Имя Тип Описание
fileUrl string URL файла
cdnConfig  array|object|null  Конфиг
Возвращает:

array - данные файла.

В случае успеха возвращает массив вида:

[
	'result' => true,
	'type' => (string) $type,
	'url' => (string) $newUrl,
	'name' => (string) $fileName,
	'size_kb' => (float) $fileSizeKb,
	'max_size_by_type_kb' => (float) $maxFileSize,
]

Где

 $type – тип файла;

 $newUrl – ссылка на файла в CDN;

 $fileName – имя загруженного файла;

 $fileSizeKb – размер загруженного файла в Кб;

 $maxFileSize - максимальное ограничение размера файла в зависимости от типа файла.

 В случае провала возвращает массив вида:

[
	'result' => false,
	'error' => true,
	'error_code' => (string) ‘вид ошибки’, // например 'error_when_upload' или ‘file_size_exceeded’
	'error_message' => (string) описание ошибки,
]

bot.removeFileFromCdn()

Удалить файл из CDN

bot.removeFileFromCdn(string $fileUrl, $cdnConfig = null)
Описание:

Удаляет файл из CDN.

Атрибуты:
Имя Тип Описание
fileUrl string URL файла
cdnConfig  array|object|null Конфиг
Возвращает:

array - данные файла.

bot.randomStr()

Получить случайную буквенно-цифровую строку

bot.randomStr(int $length = 16)
Описание:

Генерирует случайную буквенно-цифровую строку.

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

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

Атрибуты:
Имя Тип Описание
length int Длина строки, по умолчанию 16
Возвращает:

string - строка.

bot.newGuid()

Получить случайный уникальный guid

bot.newGuid()
Описание:

Генерирует случайный уникальный guid (UUID версии 4).

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

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

Возвращает:

string - случайный уникальный guid.

bot.newOrderedGuid()

Получить случайный уникальный guid упорядоченный по времени

bot.newOrderedGuid()
Описание:

Генерирует случайный уникальный guid (UUID версии 4) упорядоченный по времени.

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

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

Возвращает:

string - случайный уникальный guid.

bot.sysLogInfo()

Вывести информацию в лог

bot.sysLogInfo($data, bool $isSendMessageToLead = false)
Описание:

Добавляет в лог системы информацию указанную в data, чтобы в дальнейшем было проще искать проблемы в боте или видеть цепочку выполнения по лиду. Если отправлять в мессенджер то сообщение увидит обычный лид, но только если у него включена отладка уровня только V8 (editor).

Атрибуты:
Имя Тип Описание
data mixed Информация
isSendMessageToLead  bool Отправлять или нет сообщение в мессенджер
Возвращает:

bool - успешное срабатывание метода.

bot.sysLogError()

Вывести информацию об ошибке в лог

bot.sysLogError($data, bool $isSendMessageToLead = false)
Описание:

Добавляет в лог системы информацию указанную в data, чтобы в дальнейшем было проще искать проблемы в боте или видеть цепочку выполнения по лиду. Если отправлять в мессенджер то сообщение увидит обычный лид, но только если у него включена отладка уровня только V8 (editor).

Атрибуты:
Имя Тип Описание
data mixed Информация об ошибке
isSendMessageToLead  bool Отправлять или нет сообщение в мессенджер
Возвращает:

bool - успешное срабатывание метода.

bot.sysLogInfoToAdmin()

Вывести информацию в лог для админа

bot.sysLogInfoToAdmin($data)
Описание:

Добавляет в лог системы информацию указанную в data, чтобы в дальнейшем было проще искать проблемы в боте или видеть цепочку выполнения по лиду. Если отправлять в мессенджер то сообщение увидит только лид-админ, т.е. если у него включен уровень отладки V8 и Exceptions (admin)

Атрибуты:
Имя Тип Описание
data mixed Информация
Возвращает:

bool - успешное срабатывание метода.

bot.sysLogErrorToAdmin()

Вывести информацию об ошибке в лог для админа

bot.sysLogErrorToAdmin($data)
Описание:

Добавляет в лог системы информацию указанную в data, чтобы в дальнейшем было проще искать проблемы в боте или видеть цепочку выполнения по лиду. Если отправлять в мессенджер то сообщение увидит только лид-админ, т.е. если у него включен уровень отладки V8 и Exceptions (admin).

Атрибуты:
Имя Тип Описание
data mixed Информация об ошибке
Возвращает:

bool - успешное срабатывание метода.

bot.debug()

Вывести информацию в мессенджер

bot.debug($data, bool $isStopBot = false)
Описание:

Добавляет в сообщения мессенджера информацию указанную в data, чтобы в дальнейшем было проще искать проблемы в боте или видеть цепочку выполнения по лиду. Функция идентична функции из глобального пространства имен debug(), 
по умолчанию не останавливает выполнение скрипта.

Атрибуты:
Имя Тип Описание
data mixed Информация
isStopBot bool Прерывать или нет выполнение скрипта
Возвращает:

bool - успешное срабатывание метода.

bot.getGeoLocation()

Геолокация лида

bot.getGeoLocation()
Описание:

Для Telegram вернет массив {latitude: n, longitute: m}, если в вебхуке пришла локация, иначе null. Для мессенджера отличного от Telegram вернет null.

Возвращает:

array - массив {latitude: n, longitute: m}

или

 

null - если локация не найдена.

bot.getAllData()

Получить все данные текущего бота

bot.getAllData()
Описание:

Возвращает все данные текущего бота.

Возвращает:

array - значение данных бота в формате массива: 

Пример:
let data = bot.getAllData();

bot.setData()

Установить значение данных бота по ключу

bot.setData(string $key, $value)
Описание:

Устанавливает значение данных текущего бота по ключу.

Атрибуты:
Имя Тип Описание
key string Ключ данных бота
value mixed Значение данных бота

В качестве ключа можно указать:

Возвращает:

self - значение данных бота в формате, в котором они находятся в сущности.

Пример:
let data = bot.setData('leadsCount', 4);

bot.scheduleScriptByCode()

Планирование скрипта по коду

bot.scheduleScriptByCode(string $scriptCode, int|null $leadId, int|null $ticketId = null, $jobParams = [])
Описание:

Планирует вызов скрипта по коду.

Атрибуты:
Имя Тип Описание
scriptCode string Код скрипта, который будет запущен
leadId int ID лида, для которого будет запущен скрипт
ticketId int ID заявки, для которой будет запущен скрипт
jobParams json

Передача в планируемую задачу входящих json параметров. Указывать через script_request_params

Возможные параметры в jobParams:

Если указать run_at и run_after_sec то будет использован только параметр run_at.

 
Возвращает:

bool - подтверждение планирования скрипта.

Пример:
var result = bot.scheduleScriptByCode('trigger', 6473, null, {
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.getScriptCodeById()

Получить ID скрипта по коду

bot.getScriptCodeById(int|null $scriptId)
Описание:

Возвращает id скрипта по его дополнительному идентификатору.

Атрибуты:
Имя Тип Описание
scriptId int Id скрипта
Возвращает:

int - id скрипта в формате числа

или

null - если таких данных не существует.

Пример:
let ScriptId = bot.getScriptCodeById(23121);

bot.getIntAttr()

Получить значение переменной бота в int формате

bot.getIntAttr(string $key, ?int|null $default = 0)

Описание:

Возвращает значение int переменной бота.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
default int
Возвращает:

int - объект int

или

null - если таких данных не существует.

Пример:

Получение значения глобальной переменной бота bot_attribute:

let bot_attribute_value = bot.getIntAttr('bot_attribute');

bot.getFloatAttr()

Получить значение переменной бота в формате float

bot.getFloatAttr(string $key, float|null $default = 0.0)

Описание:

Возвращает значение float переменной бота.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
default float
Возвращает:

float - объект формата float

или

null - если таких данных не существует.

Пример:

Получение значения глобальной переменной бота bot_attribute:

let bot_attribute_value = bot.getFloatAttr('bot_attribute');

bot.getBoolAttr()

Получить значение bool переменной бота

bot.getBoolAttr(string $key, bool|null $default = false)

Описание:

Возвращает значение bool переменной бота.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
default bool Если переменная пуста, то вернуть данное значение
Возвращает:

bool - значение bool переменной

или

null - если такой переменной нет.

Пример:
let bot_attribute_value = bot.getBoolAttr('bot_attribute');

bot.getAllJsonAttrs()

Получить значение всех JSON переменных бота

bot.getAllJsonAttrs()

Описание:

Возвращает значение всех JSON переменных бота.

Возвращает:

array - массив JSON переменных бота.

Пример:
let bot_attribute_value = bot.getAllJsonAttrs();

bot.setJsonAttr()

Установить значение JSON переменной бота

bot.setJsonAttr(string $key, $value)

Описание:

Устанавливает значение JSON переменной бота.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
value mixed JSON значение переменной
Возвращает:

self - объект того же типа и значения, что задан в методе.

Пример:
let bot_attribute_value = bot.setJsonAttr('bot_attribute', {
  															"id": 2415,
  															"name": "Имя"
															});

bot.getJsonAttr()

Получить значение JSON переменной бота

bot.getJsonAttr(string $key)

Описание:

Возвращает значение JSON переменной бота.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
Возвращает:

mixed - объект того же типа и значения, что у запрашиваемой переменной.

Пример:
let bot_attribute_value = bot.getJsonAttr('bot_attribute');

bot.issetJsonAttr() и bot.isJsonAttrKeyExist()

Проверить наличие JSON переменной бота

bot.issetJsonAttr(string $key)

и

bot.isJsonAttrKeyExist(string $key)

Описание:

Проверяет наличие JSON переменной бота.

Атрибуты:
Имя Тип Описание
key string Наименование переменной
Возвращает:

bool - подтверждение существования переменной.

Пример:
let bot_attribute_value = bot.issetJsonAttr('bot_attribute');

или

let bot_attribute_value = bot.isJsonAttrKeyExist('bot_attribute');

bot.scheduleTriggerByCode()

Планирование триггера по коду

bot.scheduleTriggerByCode(string $triggerCode, int|null $leadId, int|null $ticketId = null, $jobParams = [])
Описание:

Запускает триггер по коду в соответствии с указанными параметрами.

Атрибуты:
Имя Тип Описание
triggerCode string Код триггера, который будет запущен
leadId int ID лида, для которого будет запущен триггер
ticketId int ID заявки, для которой будет запущен триггер
jobParams json

Передача в планируемую задачу входящих json параметров. Можно указать script_request_params

Возможные параметры в jobParams:

 

Если указать run_at и run_after_sec то будет использован только параметр run_at.

Возвращает:

bool - подтверждение планирования триггера.

Пример:
var result = bot.scheduleTriggerByCode("trigger_code", 1426, null, {
  "is_periodic": true,
  "repeat_interval_sec": 10,
  "script_request_params": {
        "name": "Alex" 
  }
});

bot.clearTriggerJobsByScriptId()

Удалить джобы триггера по id скрипта

bot.clearTriggerJobsByScriptId(int|null $scriptId, int|null $leadId = null)
Описание:

Очищает джобы триггера по id скрипта.

Атрибуты:
Имя Тип Описание
leadId int ID лида, триггеры которого будут удалены
scriptId int ID скрипта, триггеры которого будут удалены
Возвращает:

bool - подтверждение удаления триггеров.

Пример:
bot.clearTriggerJobsByScriptId(236178, 36462);

bot.clearTriggerJobsByScriptName()

Удалить триггеры для лида

bot.clearTriggerJobsByScriptName(string|null $scriptName, int|null $leadId = null)
Описание:

Удаляет все триггеры из очереди для лида.

Атрибуты:
Имя Тип Описание
leadId int ID лида, триггеры которого будут удалены
scriptName string Наименование скрипта, триггеры которого будут удалены
Возвращает:

bool - подтверждение удаления триггеров.

Пример:
bot.clearTriggerJobsByScriptName("skript_name", 236178);

bot.clearTriggerJobsByCode()

Удалить джобы по коду триггера

bot.clearTriggerJobsByCode(string|null $triggerCode, int|null $leadId = null, int $ticketId = null)
Описание:

Очищает джобы по коду триггера.

Атрибуты:
Имя Тип Описание
triggerCode string Код триггера
leadId int ID лида, триггеры которого будут удалены
ticketId int ID заявки, триггеры которого будут удалены
Возвращает:

bool - подтверждение удаления триггеров.

Пример:
bot.clearTriggerJobsByCode("trigger_code" , 236178, 229715);

bot.clearTriggerJobsByCodeForAllPersonLeads()

Удалить триггеры для всех лидов персоны по коду

bot.clearTriggerJobsByCodeForAllPersonLeads(string|null $triggerCode, int|null $personId, int $ticketId = null)
Описание:

Удаляет триггеры для всех лидов персоны по коду.

Атрибуты:
Имя Тип Описание
triggerCode string Код триггера
personId int ID персоны, триггеры которой будут удалены
ticketId int ID заявки, триггеры которого будут удалены
Возвращает:

bool - подтверждение удаления триггеров.

Пример:
bot.clearTriggerJobsByCodeForAllPersonLeads("trigger_code", 236, 229715);

bot.clearTriggerJobsByCodeForTicket()

Удалить джобы по коду триггера и ID заявки

bot.clearTriggerJobsByCodeForTicket(string|null $triggerCode, int|null $ticketId)
Описание:

Очищает джобы по коду триггера и ID заявки.

Атрибуты:
Имя Тип Описание
triggerCode string Код триггера
ticketId int ID заявки, триггеры которого будут удалены
Возвращает:

bool - подтверждение удаления триггеров.

Пример:
bot.clearTriggerJobsByCodeForTicket("trigger_code", 229715);

bot.getTicketTypeNameById()

Получить наименование заявки по id вида заявки

bot.getTicketTypeNameById(int|null $ticketTypeId)
Описание:

Возвращает наименование заявки по id вида заявки.

Атрибуты:
Имя Тип Описание
ticketTypeId int Наименование тэга
Возвращает:

string - наименование заявки в формате строки.

Пример:
let TicketType = bot.getTicketTypeNameById(14);

bot.getDefaultPersonRoleId()

Получить id роли персоны по умолчанию

bot.getDefaultPersonRoleId()
Описание:

Возвращает id роли персоны по умолчанию.

Возвращает:

int - id роли

или

null - если таких данных нет.

Пример:
let RoleId = bot.getDefaultPersonRoleId();

bot.getWebhookJobRecord()

Получить запись вебхука зарегистрированного в очереди Метабот

bot.getWebhookJobRecord()
Описание:

Возвращает запись вебхука зарегистрированного в очереди Метабот.

Возвращает:

BotWebhookQueueRecord - запись в очереди

или

null - если таких данных не существует.

bot.run()

Запустить скрипт в рамках текущего потока бота

bot.run(array|object|null $jobParams = [])
Описание:

Запускает скрипт в рамках текущего потока бота. Можно использовать только в V8 команде/условии команды размещенной в скрипте конструктора, т.е. не применимо для запуска в JS триггера, маршрута, в внутреннего эндпоинта и т.д.

Атрибуты:
Имя Тип Описание
jobParams json

Передача в планируемую задачу входящих json параметров

Возможные параметры в jobParams:

 
Возвращает:

bool - подтверждение запуска скрипта.

Пример:
bot.run({
  "script_id": 111,
  "skip_till_command_id": 123, 
  "stop_current_flow": false,
})