[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 запроса статуса экземпляра процесса