Триггеры
Функция позволяющая приводить в систему список некоторых действий или событий.
Логика запуска триггера описана на примере установки триггера.
Триггеры можно создавать в разделе главного меню Настройки бота подраздел Триггеры.
На экранной форме нажать кнопку Новый триггер
Пример 1
Создадим триггер без подписки на событие, для этого заполним следующие параметры:
- Наименование триггера - текстовое интуитивно понятное название триггера.
- Код - Дополнительный уникальный идентификатор. Используется для поиска текущего объекта, например, в JavaScript функциях.
- Список событий, на которые может быть подписан триггер с названием объекта, который будет подписан на данный тип события (например полное название тэга, контекста, атрибута и т.д).:
- Любое изменение Лида
- Изменение статуса Лида
- Изменение (добавление или удаление) Тэга Лида
- Изменение (добавление или удаление) Контекста Лида
- Изменение Атрибута Лида
- Любое изменение в Заказе
- JavaScript условие запуска Скрипта/Триггера - Условие при котором происходит активация скрипта.

Есть возможность выбора скрипта который будет срабатывать при соответствию условий или срабатывать при не соответствию условий заданных выше.
Выполняется добавление в очередь на запуск привязанного скрипта. В планировщике в установленное время выполняется запуск указанного Скрипта.
- Добавить тэги - Дополнительные теги скрипта.
- Удалить тэги - Удалить теги оригинального скрипта.
- Контекст запускаемого скрипта/триггера - От лица кого будет происходить активация скрипта. (точно ли??)
- Запускаемый скрипт - Какой скрипт будет вызываться триггером.
- Запускаемый триггер - значение выбирается из списка созданных триггеров.
Выполняется добавление в очередь на запуск привязанного триггера. В планировщике в установленное время выполняется запуск указанного Триггера. Если для запуска указан другой триггер, то проверка условия будет выполнена перед запуском второго триггера, т.е. по расписанию планировщика.
Для запуска могут быть указаны как Скрипт, так и Триггер одновременно.
- Запустить указанный Скрипт/Триггер в - указывается дата и время, в которое будет выполнен запуск триггера/скрипта точно в указанное время (с погрешностью в 1 минуту).
- Запустить указанный Скрипт/Триггер через (минут) - числовое значение в минутах, через которое будет выполнен запуск триггера/скрипта, спустя указанное количество минут.
Параметр Запустить указанный Скрипт/Триггер через (минут) игнорируется, если указано точное время запуска, т.е. если указан параметр Запустить указанный Скрипт/Триггер в.
- JavaScript условие запуска Скрипта/Триггера - условие, при выполнении которого произойдет запуск триггера.
Если запуск триггера должен быть выполнен как отложенный по времени (указано время запуска или время, через которое нужно запустить триггер), то проверка JS условия текущего триггера выполняется до запуска триггера, а не в момент наступления указанного времени.
Если поле JS условия пусто, то оно всегда истинно при проверке.
Нажать кнопку Создать.
При редактировании существующего триггера появляется галка включен. Что позволяет деактивировать ненужный в данный момент триггер.
На экранной форме в разделе Триггеры будет располагаться список созданных триггеров для данного бота.
Этапы запуска и установки триггера:
-
Наступление события для запуска триггера или отложенный запуск по расписанию.
-
Проверка JS условия.
-
Запуск связанного Скрипта / Триггера или добавление отложенного запуска в планировщик.
В разделе Триггеры располагается список созданных триггеров для данного бота с доступными операциями:
- Редактировать триггер
- Сообщения полученные подписчиками в результате выполнения триггера
- Подписчики получившие сообщение в результате выполнения триггера
- Удалить триггер
JS методы для работы с триггерами
С триггерами так же можно работать изс помощью JS следующимиметодов. методамиВсе объектаметоды и их описание вы можете посмотреть в bot:
bot.clearTriggerJobsForAllPersonLeads(?int $personId, ?int $ticketId = null): boolJS
bot.getTriggerIdByName(?string $triggerName): ?int
bot.getTriggerIdByCode(?string $triggerCode): ?int
bot.runTriggerForLead(?int $triggerId, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = []): bool
bot.runTriggerByNameForLead(?string $triggerName, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = []): bool
bot.runTriggerForPerson(?int $triggerId, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = []): bool
bot.runTriggerByNameForPerson(?string $triggerName, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = []): bool
Очистить джобы по id триггера
bot.clearTriggerJobsById(?int $triggerId, ?int $leadId = null): bool
Очистить джобы по наименованию триггера
bot.clearTriggerJobsByName(?string $triggerName, ?int $leadId = null): bool
Очистить джобы по коду скрипта
bot.clearTriggerJobsByScriptCode(?string $scriptCode, ?int $leadId = null, ?int $ticketId = null): bool
Очистить джобы по id триггера и ID заявки
bot.clearTriggerJobsByIdForTicket(?int $triggerId, ?int $ticketId): bool
Очистить джобы по наименованию триггера и ID заявки
bot.clearTriggerJobsByNameForTicket(?string $triggerName, ?int $ticketId): bool
Каждый из методов подробнее расписан ниже.
Планирование триггера
bot.scheduleTrigger(?int $triggerId, ?int $leadId, ?int $ticketId = null, $jobParams = [])Описание:
Запускает триггер в соответствии с указанными параметрами.
Атрибуты:
Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)condition_script_code (для перекрытия условия триггера/рассылки).
Для установки времени запуска:
run_at - точное время запуска (по часовому поясу сервера)илиrun_after_sec - для запуска через указанное кол-во секунд
Если указать 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(?string $triggerCode, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])Описание:
Запускает триггер в соответствии с указанными параметрами по коду.
Атрибуты:
Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)condition_script_code (для перекрытия условия триггера/рассылки).
Для установки времени запуска:
run_at - точное время запуска (по часовому поясу сервера)илиrun_after_sec - для запуска через указанное кол-во секунд
Если указать 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(?string $triggerCode, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])Описание:
Запускает триггер в соответствии с указанными параметрами по коду для последнего лида указанной персоны.
Атрибуты:
Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)condition_script_code (для перекрытия условия триггера/рассылки).
Для установки времени запуска:
run_at - точное время запуска (по часовому поясу сервера)илиrun_after_sec - для запуска через указанное кол-во секунд
Если указать 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(?int $leadId, ?int $ticketId = null)Описание:
Удаляет все триггеры из очереди для лида.
Атрибуты:
Возвращает:
bool - подтверждение удаления триггеров.
Пример:
bot.clearTriggerJobsForLead(236178);Удалить триггеры для всех лидов персоны
bot.clearTriggerJobsForAllPersonLeads(?int $personId, ?int $ticketId = null)Описание:
Удаляет все триггеры из очереди для всех лидов персоны.
Атрибуты:
Возвращает:
bool - подтверждение удаления триггеров.
Пример:
bot.clearTriggerJobsForAllPersonLeads(36178);Получить ID триггера по наименованию
bot.getTriggerIdByName(?string $triggerName)Описание:
Возвращает id триггера по указанному наименованию.
Атрибуты:
Возвращает:
int - id триггера в формате числа.
Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');Получить ID Триггера по Коду
bot.getTriggerIdByCode(?string $triggerCode)Описание:
Возвращает id триггера по указанному коду.
Атрибуты:
Возвращает:
int - id триггера в формате числа.
Запустить триггер для лида по ID триггера
bot.runTriggerForLead(?int $triggerId, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])Описание:
Запускает триггер для лида по указанному id триггера.
Атрибуты:
Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)condition_script_code (для перекрытия условия триггера/рассылки).
Для установки времени запуска:
run_at - точное время запуска (по часовому поясу сервера)илиrun_after_sec - для запуска через указанное кол-во секунд
Если указать 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(?string $triggerName, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])Описание:
Запускает триггер для лида по указанному имени триггера.
Атрибуты:
Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)condition_script_code (для перекрытия условия триггера/рассылки).
Для установки времени запуска:
run_at - точное время запуска (по часовому поясу сервера)илиrun_after_sec - для запуска через указанное кол-во секунд
Если указать run_at и run_after_sec то будет использован только параметр run_at.
Возвращает:
bool - подтверждение запуска триггера.
Пример:
bot.runTriggerByNameForLead('Триггер', 236178, null, true{
"run_after_sec": 5,
});Запустить триггер для персоны по ID
bot.runTriggerForPerson(?int $triggerId, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])Описание:
Запускает триггер для персоны по указанному id триггера.
Атрибуты:
Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)condition_script_code (для перекрытия условия триггера/рассылки).
Для установки времени запуска:
run_at - точное время запуска (по часовому поясу сервера)илиrun_after_sec - для запуска через указанное кол-во секунд
Если указать run_at и run_after_sec то будет использован только параметр run_at.
Возвращает:
bool - подтверждение запуска триггера.
Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');
bot.runTriggerForPerson(TriggerId, 36178, null, true);Запустить триггер для персоны по наименованию
bot.runTriggerByNameForPerson(?string $triggerName, ?int $personId, ?int $ticketId = null, $addToQueue = true, $jobParams = [])Описание:
Запускает триггер для персоны по указанному имени триггера.
Атрибуты:
Передача в планируемую задачу входящих json параметров. Можно указать script_request_params (для скрипта/триггера/рассылки)condition_script_code (для перекрытия условия триггера/рассылки).
Для установки времени запуска:
run_at - точное время запуска (по часовому поясу сервера)илиrun_after_sec - для запуска через указанное кол-во секунд
Если указать run_at и run_after_sec то будет использован только параметр run_at.
Возвращает:
bool - подтверждение запуска триггера.
Пример:
bot.runTriggerByNameForPerson('Триггер', 36178, null, true);Очистить джобы по id триггера
bot.clearTriggerJobsById(?int $triggerId, ?int $leadId = null)Описание:
Выполняется поиск и очистка джоб по id триггера.
Атрибуты:
Возвращает:
bool - подтверждение очистки джоб.
Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');
bot.clearTriggerJobsById(TriggerId);Очистить джобы по наименованию триггера
bot.clearTriggerJobsByName(?string $triggerName, ?int $leadId = null)Описание:
Выполняется поиск и очистка джоб по наименованию триггера.
Атрибуты:
Возвращает:
bool - подтверждение очистки джоб.
Пример:
bot.clearTriggerJobsByName('Триггер');Очистить джобы по коду скрипта
bot.clearTriggerJobsByScriptCode(?string $scriptCode, ?int $leadId = null, ?int $ticketId = null)Описание:
Выполняется поиск и очистка джоб триггеров по коду скрипта.
Атрибуты:
Возвращает:
bool - подтверждение очистки джоб.
Очистить джобы по id триггера и ID заявки
bot.clearTriggerJobsByIdForTicket(?int $triggerId, ?int $ticketId)Описание:
Выполняется поиск и очистка джоб по id триггера и ID заявки.
Атрибуты:
Возвращает:
bool - подтверждение очистки джоб.
Пример:
let TriggerId = bot.getTriggerIdByName('Триггер');
bot.clearTriggerJobsByIdForTicket(TriggerId, 17256);Очистить джобы по наименованию триггера и ID заявки
bot.clearTriggerJobsByNameForTicket(?string $triggerName, ?int $ticketId)Описание:
Выполняется поиск и очистка джоб по наименованию триггера и ID заявки.
Атрибуты:
Возвращает:
bool - подтверждение очистки джоб.
Пример:
bot.clearTriggerJobsByNameForTicket('Триггер', 17256);








