Обработка событий: Новое сообщение в сессии

Обработчик в модуле может фиксировать отправку исходящего или поступление входящего сообщения в сессии. После наступления одного из этих событий запускается скрипт или бизнес‑процесс.

Начало внимание

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

Конец внимание

Настроить обработчик отправки сообщения в сессии

Рассмотрим пример обработчика, который фиксирует ответ оператора в сессии.

Например, пользователь внешнего портала в карточке заявки обращается в линию с запросом. Для этого используется виджет Чат с операторами линий. В ELMA365 автоматически создаётся сессия. Когда оператор в ней отвечает, это фиксируется обработчиком и запускается бизнес‑процесс. В ходе процесса клиент получит на электронную почту уведомление о новом сообщении в сессии.

Шаг 1. Настройка бизнес‑процесса в модуле

  1. Перейдите в раздел Администрирование > Модули и создайте пользовательский модуль.
  2. В настройках модуля перейдите на вкладку Процессы и добавьте бизнес‑процесс, который будет выполняться каждый раз, когда оператор отправит сообщение в чате с клиентом.

Для нашего примера добавим процесс Оповещение о новом сообщении. В ходе его выполнения определится электронная почта клиента, на которую отправится ответ оператора. Настроим схему процесса следующим образом:

new-message-events-processing-1

  1. В контексте бизнес-процесса добавьте переменные, в которые обработчик после ответа оператора передаст данные, необходимые для отправки уведомления на электронную почту клиента:
  • Сессия (session— с типом Произвольное приложение (один), хранит сессию, в которой ведётся диалог;
  • Тип сообщения (kind— с типом Строка (строка), определяет сообщение, исходящее от оператора;
  • Сообщение (message— с типом Строка (строка), передаёт сообщение, отправленное оператором;
  • Email (email) — с типом Строка (строка), хранит адрес электронной почты, на который будет отправлено уведомление;
  • Заявка (application— с типом Приложение (один), хранит ссылку на заявку, в которой ведётся переписка с оператором.
  1. На схему процесса добавьте блок Скрипт с названием Определить email получателя оповещения. В его настройках создайте функцию getEmailRecipient, с помощью которой определится электронная почта клиента, на которую отправится уведомление.

Пример скрипта для определения электронной почты клиента

  1. Предусмотрим, чтобы ход процесса двигался по разным веткам в зависимости от того, получен адрес клиента или нет. Для этого добавьте на схему исключающий шлюз с названием Email получен? и двумя переходами — Да и Нет. Если почта определена, то клиенту отправится уведомление, если нет — процесс завершится. В качестве перехода по умолчанию выберите Нет.
  2. Для перехода Да добавьте блок Оповещение на email. В его настройках заполните обязательные поля, используя переменные, созданные на шаге 3.

new-message-events-processing-2

  • Получатель* — добавьте переменную {$email}, содержащую электронную почту клиента;
  • Тема письма* — напишите короткую тему и добавьте к ней переменную {$application}, чтобы клиент видел, по какой заявке пришёл ответ;
  • Текст письма* — вставьте переменную {$message} с ответом оператора.
  1. Сохраните и опубликуйте процесс.

Шаг 2. Настройка обработчика событий

После создания бизнес-процесса в модуле выполните следующие действия:

  1. В настройках модуля на вкладке Обработка событий нажмите + Обработчик. В открывшемся окне заполните и сохраните данные:
  • название обработчика, например, Новое сообщение;
  • тип обработчика — Запуск процесса;
  • домен события — Линии;
  • событие — Новое сообщение.
  1. В открывшемся окне на вкладке Настройки выберите созданный ранее процесс Оповещение о новом сообщении.
  2. Перейдите на вкладку Входные переменные и сопоставьте переменные из контекста процесса с аналогичными свойствами события.
  3. На верхней панели страницы нажмите Сохранить, а затем Опубликовать, чтобы активировать обработчик событий.
  4. Перейдите на страницу управления модулем и включите его.

Теперь, когда оператор отправит ответ в сессию, клиент своевременно получит уведомление об этом на свою электронную почту.