Запуск сценария по таймеру | Слот Timer
Last updated
Last updated
Слот Timer (таймер) предназначен для запуска Сценарий агента Агента по истечении заданного времени после наступления определенных условий в конкретном Чате.
Например, с помощью слота Timer можно (значения времени в примерах могут быть любыми):
“разбудить” Агента через 2 часа после Закрытие диалога, если Собеседник не завершил оформлять заказ в Чате, чтобы напомнить ему завершить оформление
принудительно перевести Диалог на оператора, если с начала диалога прошло 10 минут, а вопрос Собеседника не решен
“напомнить” Собеседнику вернуться в Диалог, если Агент не получает ответа на вопрос в течение 5 минут
С периодичностью раз в сутки делать запросы о статусе доставки во внешнюю систему и уведомить Собеседника, если статус изменился
Слот Timer можно создать только после Слота Start при наличии обычной ветки обработки входящих через Канал Проекта сообщений.
Разрешено несколько слотов Timer в Сценарий агента, причем их параметры могут быть одинаковыми.
Вышеуказанные параметры по умолчанию следует читать так: завести таймер в режиме Interruptable на 1 час после закрытия диалога
Slot Name* — название слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов.
Count down* — время обратного отсчета, которое установится при Запуск таймера, после окончания отсчета этого времени произойдет Срабатывание таймера. Значение не может быть пустым, минимальное значение 1 минута, шаг 1 минута. При создании слота предустановлено значение времени, равное 1 ч.
При попытке ввода в поле min значения, равного или более 60, значение будет автоматически конвертировано в часы и перенесено в поле hours. При заполненном поле hours произойдет сложение конвертированного значения и ранее указанного в поле hours значения.При попытке ввода в поле hours значения, равного или более 24, значение будет автоматически конвертировано в дни и перенесено в поле day. При заполненном поле day произойдет сложение конвертированного значения и ранее указанного в поле day значения.
after* — событие которое запускает проверку условия if для Запуск таймера.
if: — условие, при котором таймер будет запущен при наступлении события after. Выражение в этом поле должно давать логический результат True или False (подробнее Синтаксис).
Примечание: без дополнительного условия есть риск бесконечного перезапуска таймера, например: Закрытие диалога запускает таймер на 5 минут → через 5 минут срабатывает таймер → Агент пишет что-то Собеседнику → это сообщение стартует новый Диалог → этот диалог будет снова закрыт, например, по таймауту → Закрытие диалога снова запускает таймер на 5 минут .... и так по кругу
Можно ввести Контекстная переменная, как признак того, напоминал ли Агент о себе, если она заполнена, то не стартовать таймер.
Mode* — режим работы таймера, он определяет, как таймер может быть прерван:
Interruptable: режим, при котором любое изменение Состояние общения останавливает таймер, например: Собеседник что-то написал, пришел Incoming Request, Агент продвинулся по сценарию, сработал другой таймер этого Агента.
Always on: режим, при котором изменение Состояние общения не останавливают таймер, его может остановить только Обучение Агента пользователем или запуск нового таймера из этого же слота (например, когда условия выполнились снова).
В Слоте Timer допустимо использование Выражение в поле If. Подробнее: Синтаксис.
Платформа мониторит Чаты на события-триггеры для каждого слота Timer в их Сценарий агента.
Dialog closed
Закрытие диалога по сценарию запускает таймер, если выполняется Дополнительное условие запуска таймера
Напомнить собеседнику, что он не закончил диалог, оформление заказа, бросил корзину
Отправить данные во внешнюю систему после окончания диалога
Периодически “ходить” во внешнюю систему за статусом задачи\заказа и уведомлять собеседника при его изменении
Отправить просьбу оценить качество обслуживания
Dialog started
Открытие диалога запускает таймер, если выполняется Дополнительное условие запуска таймера
принудительно подключить оператора, если диалог длится долгое время, но вопрос не решен
Variable changed
Изменение переменной на новое (другое) значение запускает таймер, если выполняется Дополнительное условие запуска таймера
через час после получения ключевых данных (например, номер телефона), отправить их во внешнюю систему, не зависимо от статуса диалога
Bot started waiting
Переход Агента в состояние ожидания ввода от Собеседника: Wait For Reaction, Slot Filling, Button Menu запускает таймер, если выполняется Дополнительное условие запуска таймера.
“пропинговать” собеседника, если он отвлекся от диалога
пригласить оператора в диалог, если собеседник не отвечает
Дальнейшие действия выполняются для каждого слота Timer в Агенте:
Если Триггер запуска таймера сработал, Платформа проверяет Дополнительное условие запуска таймера.
Когда Дополнительное условие запуска таймера выполняется, таймер запускается — в системе создается задание по расписанию. Если Дополнительное условие запуска таймера не выполняется — ничего не происходит.
Сам Запуск таймера не влияет на Общение и не изменяет Состояние общения, он просто создает задачу по расписанию в системе.
Запуск таймера прерывает предыдущий, еще не сработавший таймер, заведенный из этого же слота Timer, если такой Заведенный таймер есть.
Примечание: технически, в базе остается все тот же первоначальный Заведенный таймер, но в нем устанавливается новое время срабатывания.
Платформа проверяет, какие из Заведенный таймер закончили обратный отсчет (поле Count down) и выполняет активацию их Слотов Timer в соответствующих Чатах — происходит Срабатывание таймера, и в Чатах запускаются соответствующие Ветка сценария.Период проверки: 1 минута.Это означает, что возможна задержка между плановым и фактическим срабатыванием таймера до 1 минуты (59 секунд).
Если в Заведенный таймер обратный отсчет закончен до окончания очередной минуты, Срабатывание таймера все еще не произойдет, так как Платформа еще не произвела проверку и не знает, что отсчет времени закончен. Но как только эта минута закончится, Платформа произведет проверку таймер сработает.
Примечание: как показывает практика чаще всего задержка бывает в промежутке от 40 до 59 секунд, следует это учесть, при выставлении значения обратного отсчета.
По окончании каждой минуты срабатывают сразу друг за другом все таймеры, обратный отсчет в которых закончился за минуту. Т.е. они могли быть запущены “на одно и то же время” с промежутком в 1-59 секунды, но сработают “одновременно”, так как Платформа узнала об этом в рамках одной проверки (см. Несколько слотов Timer в одном Агенте)
Срабатывание таймера изменяет Состояние общения:
Текущий сценарий в Активный диалог “прервется”, т.к Агент незамедлительно “перескочит” на Ветка сценария после Слота Timer и продолжит общение со следующего за Слотом Timer Слота.
Если на этот момент в данном Чате нет Активный диалог, то Сценарий агента в Чате запустится, но Диалог будет открыт при первом входящем или исходящем сообщении.
Заведенный таймер может быть остановлен (сброшен, удален) определенными событиями, исходя из режима, в котором он запущен.Любой Заведенный таймер может быть сброшен запуском нового таймера из этого же Слота Timer.
Примечание: технически, в базе остается все тот же первоначальный Заведенный таймер, но в нем устанавливается новое время срабатывания.
Переобучение Агента или удаление/деактивация Канал Проекта удаляет все Заведенный таймер в сбрасываемых Чатах.
Interruptable
прерываемый таймер - режим, при котором изменение Состояние общения останавливает таймер, например: Собеседник что-то написал, пришел Incoming Request, Агент сдвинулся по сценарию, сработал другой таймер этого Агента .
Always оn
непрерывный таймер - режим, при котором изменение Состояние общения не останавливают таймер, его может остановить только запуск нового таймера из этого же слота (например, когда условия выполнились снова)
В одном Агенте допускается несколько слотов Timer, при чем их Режимы работы таймера, Триггеры запуска таймера, время отсчета и дополнительные условия могут частично или полностью совпадать.Каждый Слот Timer в Сценарий агента запускает свой отдельный таймер.
Каждый таймер запускается из своего Слота Timer независимо от других согласно порядку запуска — см. Запуск таймера.
Одновременно могут быть запущены несколько таймеров, в т.ч “одинаковых”.
Так как проверка таймеров в Платформа происходит с периодичностью один раз в минуту, то запущенные в одном Агенте таймеры, которые должны сработать в разницей меньше минуты, могут сработать “одновременно” и в случайном порядке:
Платформа при очередной ежеминутной проверке обнаружит все несработанные (заведенные) таймеры Агента, у которых закончился отсчет, и отправит их “на выполнение”
После чего произойдет их срабатывание в случайном порядке.
Т.е. одновременно если было запущено 2 таймера на один час, то неизвестно, какой из них сработает первым через час.
При этом, если среди "отправленных на выполнение” таймеров есть Interruptable-таймеры, то они уже не прервутся срабатыванием первого в очереди таймера.
Переменная указывается пользователем в новом поле, которое отображается при выборе этого пункта. Ввод переменной обязателен, имя переменной указывается без кавычек