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