Всем привет! Сегодня хотелось бы поговорить про один из трендов нашей жизни, а именно, про так называемых виртуальных помощников или чат-ботов. Ни для кого не секрет что в настоящее время чат-боты вполне успешно вошли в нашу жизнь, и мы все чаще пользуемся возможностями данных сервисов. Практически на каждом сайте есть выскакивающие окна с заскриптованными шагами, которые ведут клиента к конечному этапу диалога. Сотовые операторы все чаще используют сервисы чат-ботов для ответов на часто возникающие вопросы пользователей (сколько денег на счету, какой у меня тариф, как подключить роуминг и так далее), тем самым снимая нагрузку с реальных сотрудников, вынужденных в день по миллиону раз отвечать на одни и те же вопросы. Кинотеатры, такси, авиакомпании, все используют чат-ботов для экономии ресурсов и автоматизации стандартных шагов информирования и услуг. И абсолютно также чат-боты используются внутри корпоративной культуры различных компаний, для автоматизации ряда внутренних бизнес-процессов. Например, намного проще подать заявку на отпуск или командировку, просто открыв соседний чат с ботом и написав ему ключевые слова для старта диалога. В ходе диалога бот уточнит необходимую для создания заявки информацию, после чего перешлет все собранные данные в требуемый сервис, где уже «под капотом» будут выполняться различные процессы подсчета сроков, назначения задач и уведомлений для ответственных лиц. И если раньше настройка подобных возможностей была прерогативой только разработчиков, то, с относительно недавних пор, стали появляться различные сервисы, которые позволяют настраивать логику чат-ботов абсолютно без программирования. Сегодня, в данной статье, я бы хотел показать, как можно автоматизировать подачу заявки на отпуск с помощью сервиса Virtual Agents относящемуся к линейке продуктов Power Platform от Microsoft.
Итак, давайте начинать.

В первую очередь, что же из себя представляет сервис Power Virtual Agents? Power Virtual Agents это облачный сервис для автоматизации логики диалогов чат-бота без программирования.
Данный сервис тесно интегрирован с большинством облачных сервисов от Microsoft, что позволяет легко выстраивать свою экосистему из решений на базе облачных продуктов Microsoft. Ну а теперь, давайте настроим нашего бота. В первую очередь, нам потребуется создать новый диалог. Кликаем на «New Topic»:

Переходим на экран создания нового диалога, указываем название диалога, а также накидываем триггер-фразы, которые будут расцениваться ботом, как стартовые для начала данного диалога, после чего переходим к редактированию логики диалога:

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

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

Далее уточним дату начала и дату окончания отпуска:

Обязательно спросим требуется ли дополнительный согласующий, кроме основного руководителя. Если дополнительный согласующий требуется, то уточним, кто именно:


Пользователь также может указать комментарии к заявке, если пожелает. Далее мы уточняем, всё ли было введено правильно и если да, то отправляем заявку в работу, а если нет, то завершаем диалог с просьбой ввести все данные заново:

Основная логика диалога сделана. Но как нам теперь передать информацию из диалога куда-то дальше, плюс запустить процесс согласования? Для этого прямо из диалога можно вызвать Power Automate (Flow) поток и передать в него необходимые параметры из переменных диалога:

Теперь делаем несложный Power Automate поток, который подхватит значения из переменных диалога, создаст элемент в списке SharePoint Online и запустит согласование по заявке. Выглядеть он будет следующим образом:

Итак, теперь у нас готов диалог в боте и процесс на стороне Power Automate, который подхватывает данные из диалога и передает их дальше в SharePoint. Давайте проверим, как это работает.
Для начала нужно опубликовать бота. Для этого, на странице настроек бота идем в раздел Publish и производим публикацию последних изменений:

Теперь давайте расшарим бота для участников команды Microsoft Teams. Для этого переходим в раздел Customize Channels и выбираем подходящий канал для публикации. Я выбрал канал Demo Web Site. Копируем адрес демо сайта в буфер обмена и подключаем его в команду Teams на отдельную вкладку:

Проверяем работу бота в Teams. Открываем вкладку в команде Teams:

По завершении диалога была создана заявка в SharePoint Online и запущен процесс согласования.
Как вы могли заметить, создание чат-бота через сервис Power Virtual Agents больше похоже на работу в конструкторе, где вы из готовых блоков собираете решение себе по вкусу. Настройка не отличается большой сложностью, а тесное взаимодействие со смежными облачными сервисами от Microsoft позволяет передавать информацию по цепочке к требуемой точке назначения. В следующих статьях мы с Вами посмотрим еще больше возможностей сервисов по созданию чат-ботов, сделаем бота-консультанта и разберемся как подключить бота к Microsoft Teams в качестве отдельного приложения. Спасибо за внимание и хорошего всем дня!
Итак, давайте начинать.

В первую очередь, что же из себя представляет сервис Power Virtual Agents? Power Virtual Agents это облачный сервис для автоматизации логики диалогов чат-бота без программирования.
Данный сервис тесно интегрирован с большинством облачных сервисов от Microsoft, что позволяет легко выстраивать свою экосистему из решений на базе облачных продуктов Microsoft. Ну а теперь, давайте настроим нашего бота. В первую очередь, нам потребуется создать новый диалог. Кликаем на «New Topic»:

Переходим на экран создания нового диалога, указываем название диалога, а также накидываем триггер-фразы, которые будут расцениваться ботом, как стартовые для начала данного диалога, после чего переходим к редактированию логики диалога:

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

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

Далее уточним дату начала и дату окончания отпуска:

Обязательно спросим требуется ли дополнительный согласующий, кроме основного руководителя. Если дополнительный согласующий требуется, то уточним, кто именно:


Пользователь также может указать комментарии к заявке, если пожелает. Далее мы уточняем, всё ли было введено правильно и если да, то отправляем заявку в работу, а если нет, то завершаем диалог с просьбой ввести все данные заново:

Основная логика диалога сделана. Но как нам теперь передать информацию из диалога куда-то дальше, плюс запустить процесс согласования? Для этого прямо из диалога можно вызвать Power Automate (Flow) поток и передать в него необходимые параметры из переменных диалога:

Теперь делаем несложный Power Automate поток, который подхватит значения из переменных диалога, создаст элемент в списке SharePoint Online и запустит согласование по заявке. Выглядеть он будет следующим образом:

Итак, теперь у нас готов диалог в боте и процесс на стороне Power Automate, который подхватывает данные из диалога и передает их дальше в SharePoint. Давайте проверим, как это работает.
Для начала нужно опубликовать бота. Для этого, на странице настроек бота идем в раздел Publish и производим публикацию последних изменений:

Теперь давайте расшарим бота для участников команды Microsoft Teams. Для этого переходим в раздел Customize Channels и выбираем подходящий канал для публикации. Я выбрал канал Demo Web Site. Копируем адрес демо сайта в буфер обмена и подключаем его в команду Teams на отдельную вкладку:

Проверяем работу бота в Teams. Открываем вкладку в команде Teams:

По завершении диалога была создана заявка в SharePoint Online и запущен процесс согласования.
Как вы могли заметить, создание чат-бота через сервис Power Virtual Agents больше похоже на работу в конструкторе, где вы из готовых блоков собираете решение себе по вкусу. Настройка не отличается большой сложностью, а тесное взаимодействие со смежными облачными сервисами от Microsoft позволяет передавать информацию по цепочке к требуемой точке назначения. В следующих статьях мы с Вами посмотрим еще больше возможностей сервисов по созданию чат-ботов, сделаем бота-консультанта и разберемся как подключить бота к Microsoft Teams в качестве отдельного приложения. Спасибо за внимание и хорошего всем дня!