Обработчик в модуле может фиксировать отправку исходящего или поступление входящего сообщения в сессии. После наступления одного из этих событий запускается скрипт или бизнес‑процесс.
Начало внимание
Настраивать обработчик может администратор системы при создании пользовательского модуля.
Конец внимание
Настроить обработчик отправки сообщения в сессии
Рассмотрим пример обработчика, который фиксирует ответ оператора в сессии.
Например, пользователь внешнего портала в карточке заявки обращается в линию с запросом. Для этого используется виджет Чат с операторами линий. В ELMA365 автоматически создаётся сессия. Когда оператор в ней отвечает, это фиксируется обработчиком и запускается бизнес‑процесс. В ходе процесса клиент получит на электронную почту уведомление о новом сообщении в сессии.
Шаг 1. Настройка бизнес‑процесса в модуле
- Перейдите в раздел Администрирование > Модули и создайте пользовательский модуль.
- В настройках модуля перейдите на вкладку Процессы и добавьте бизнес‑процесс, который будет выполняться каждый раз, когда оператор отправит сообщение в чате с клиентом.
Для нашего примера добавим процесс Оповещение о новом сообщении. В ходе его выполнения определится электронная почта клиента, на которую отправится ответ оператора. Настроим схему процесса следующим образом:

- В контексте бизнес-процесса добавьте переменные, в которые обработчик после ответа оператора передаст данные, необходимые для отправки уведомления на электронную почту клиента:
- Сессия (session) — с типом Произвольное приложение (один), хранит сессию, в которой ведётся диалог;
- Тип сообщения (kind) — с типом Строка (строка), определяет сообщение, исходящее от оператора;
- Сообщение (message) — с типом Строка (строка), передаёт сообщение, отправленное оператором;
- Email (email) — с типом Строка (строка), хранит адрес электронной почты, на который будет отправлено уведомление;
- Заявка (application) — с типом Приложение (один), хранит ссылку на заявку, в которой ведётся переписка с оператором.
- На схему процесса добавьте блок Скрипт с названием Определить email получателя оповещения. В его настройках создайте функцию getEmailRecipient, с помощью которой определится электронная почта клиента, на которую отправится уведомление.
Пример скрипта для определения электронной почты клиента
async function getEmailRecipient(): Promise<void> { |
- Предусмотрим, чтобы ход процесса двигался по разным веткам в зависимости от того, получен адрес клиента или нет. Для этого добавьте на схему исключающий шлюз с названием Email получен? и двумя переходами — Да и Нет. Если почта определена, то клиенту отправится уведомление, если нет — процесс завершится. В качестве перехода по умолчанию выберите Нет.
- Для перехода Да добавьте блок Оповещение на email. В его настройках заполните обязательные поля, используя переменные, созданные на шаге 3.

- Получатель* — добавьте переменную {$email}, содержащую электронную почту клиента;
- Тема письма* — напишите короткую тему и добавьте к ней переменную {$application}, чтобы клиент видел, по какой заявке пришёл ответ;
- Текст письма* — вставьте переменную {$message} с ответом оператора.
- Сохраните и опубликуйте процесс.
Шаг 2. Настройка обработчика событий
После создания бизнес-процесса в модуле выполните следующие действия:
- В настройках модуля на вкладке Обработка событий нажмите + Обработчик. В открывшемся окне заполните и сохраните данные:
- название обработчика, например, Новое сообщение;
- тип обработчика — Запуск процесса;
- домен события — Линии;
- событие — Новое сообщение.
- В открывшемся окне на вкладке Настройки выберите созданный ранее процесс Оповещение о новом сообщении.
- Перейдите на вкладку Входные переменные и сопоставьте переменные из контекста процесса с аналогичными свойствами события.
- На верхней панели страницы нажмите Сохранить, а затем Опубликовать, чтобы активировать обработчик событий.
- Перейдите на страницу управления модулем и включите его.
Теперь, когда оператор отправит ответ в сессию, клиент своевременно получит уведомление об этом на свою электронную почту.