[ELMA3] Интеллектуальные каналы взаимодействия

Система ELMA расширяет возможности BPM-систем по автоматизации рутинных операций не только с помощью роботизации участков процессов. Во многих случаях пользователю удобнее общаться с BPM-системой не через ее интерфейс, а через простые, понятные и привычные интерфейсы: чаты, телефон, голосовое управление.

Чат-боты

Опишем подключение интеллектуальных каналов взаимодействия к ELMA на примере подключения чат-ботов. Интеграция чат-ботов и бизнес-процессов осуществляется с помощью 3-х компонентов: сервер ELMA, сервер, реализующий логику чат-бота, модуль интеграции (на стороне ELMA, входит в Группу модулей для автоматизации операций).

В качестве сервера, реализующего логику чат-бота, используется Aimylogic. Это технологический партнер компании ELMA. Настройка чат-бота осуществляется на стороне Aimylogic. При этом из ELMA берутся параметры, необходимые для передачи данных и запуска процесса (Рис. 1).

Рис. 1. Схема взаимодействия Aimylogic и ELMA

На данный момент модуль интеграции на стороне ELMA реализует следующие действия:

  • запуск процесса с передачей входных данных;
  • запрос статуса интересующего процесса.

Запуск процесса в ELMA через обращение пользователя к чат-боту

В этом случае пользователь общается в привычном чате с чат-ботом (Telegram, Facebook, Vkontakte и т.п.), чат-бот собирает необходимый объем информации для запуска процесса и отправляет данные в ELMA, чтобы запустить этот процесс.

При старте процесса входные данные для его запуска хранятся в контекстных переменных. Набор входных параметров определяется в Дизайнере ELMA на этапе настройки бизнес-процесса, который необходимо интегрировать с чат-ботом.

В сценарии на стороне Aimylogic описывается логика поведения бота: в какой последовательности задаются вопросы, как бот будет реагировать на ответы пользователя, как он будет обрабатывать эти ответы, как будет взаимодействовать с внешней системой (в т.ч. с ELMA).

Опрос пользователя – сбор входных данных для ELMA – настраивается в Aimylogic, как и привязка переменной, в которую необходимо будет сохранить ответ пользователя для передачи в ELMA (Рис. 2).

Рис. 2. Настройка элемента опроса

Вопросы соединяются между собой и составляют сценарий поведения чат-бота (Рис. 3).

Рис. 3. Сценарий опроса

После сбора данных необходимо передать их в ELMA, это делается через POST-запрос. В настройках осуществляется сопоставление: из каких переменных бота в какие переменные ELMA будут переданы данные, в какой процесс, указываются данные модуля интеграции на стороне ELMA. Привязка к конкретному процессу осуществляется при помощи указания токена процесса в ELMA в скрипте передачи данных. В «action» – вид действия – указывается стандартная настройка «Start» (Рис. 4), например, для получения статуса экземпляра процесса «action = GetStatus» (подробнее см. ниже в п. «Запрос статуса интересующего процесса»).

Рис. 4. Токен процесса и токен модуля интеграции

Настроить процесс на взаимодействие с внешними системами, а также узнать токен можно в Дизайнере ELMA (Рис. 5).

Рис. 5. Настройка токена процесса

Кроме того, необходимо указать токен модуля интеграции. Уточнить токен можно в разделе «Администрирование – Система – Внешние приложения – Elma Bot – Токены приложения» (Рис. 6).

Рис. 6. Токен модуля интеграции ELMA

В общем случае простейший сценарий интеграции с передачей данных выглядит следующим образом (Рис. 7).

Рис. 7. Простейший сценарий логики чат-бота по запуску бизнес-процесса

Сценарий начинается приветствием, далее проходит опрос, и финальным действием является передача данных в ELMA и обработка событий завершения.

Запрос статуса процесса через чат-бот

Запрос статуса процесса осуществляется из Aimylogic с помощью POST-запроса (Рис. 8, Рис. 9).

Рис. 8. Настройки получения ответа от ELMA

Status – в данную переменную помещается значение статуса процесса, которое приходит из ответа ELMA.

Message и Success – переменные, содержащие сообщение и статус успеха передачи. Являются служебными, могут не выводиться.

В самом запросе необходимо указать:

  • Токен процесса – токен того процесса, по которому запрашивается статус экземпляров;
  • Вид действия – в данном случае указываем стандартное значение для запроса статуса действие «GetStatus»;
  • Токен модуля.

Рис. 9. Настройка вкладки BODY запроса статуса экземпляра процесса