Share via


Power Virtual Agents: Build an Automated Doctor Appointment Chatbot

  • Introduction
  • Business Use Case
  • Bot Creation
  • Book a Doctor Consultation
  • Building the Power Automate
  • Book Health Check up
  • Test the bot
  • Summary

Introduction

Power Virtual Agents helps us create intelligent conversational chat bots without any code implementation. With these bots we can engage with customers and employees in multiple languages across websites, mobile apps, Facebook, Microsoft Teams, or any channel supported by the Azure Bot Framework

In this article we will see how to create a basic Appointment Booking System using Power Virtual Agent, Power Automate and SharePoint Lists

Business Use Case

We have a requirement where we need to setup an automated appointment booking system which will let the users book a specific doctor of choice for consultation on a specific day and keep the appointment record in the hospital back end so that the hospital can pull daily appointment reports for operational activities.

To achieve this, we will create a SharePoint List in the back end to store the appointment details with the columns:

  • Patient Name
  • Appointment Date
  • Doctor Name

Bot Creation

Let’s create the bot by selecting the bot option from the top right corner and select “New bot”. It will open up the window where we can specify the bot name and language. Once the bot is provisioned, we can create a new topic and select the trigger phrases to define the words that will invoke the conversation with the bot

 

The trigger phrases will help in defining the words and phrases that will start the conversation with the bot. We have defined 7 such phrases and the more different and related words we add to it, better the chances of bot understanding the trigger condition.

Let’s add a welcome message to the Authoring Canvas

 

To get the customer’s name, we will add the node – Ask a question to get the customer details. Followed by that, we will add another ask a question node to get the reason why the user has initiated the conversation by giving choice options :

  • Book a Doctor Consultation
  • Book a Health Check Up

Based on the customer response, which is stored in the variable CustomerResponse, conditional branches will be automatically created in the authoring canvas. For the Book a Doctor Consultation branch, we will add another question, to give the user the option to select the doctor, while for the Book a Health Check up branch, we will give the user the option to type in the date and time for health check-up booking.

Book a Doctor Consultation

For each of the Doctor Selection, authoring canvas will again automatically create branches for each choice. For each branch, we will add the ask a question node to get the date and time of preferred booking and upon input from the user, we will show a message that the booking with the mentioned doctor has been booked.

As a last step in this branch, we will add the call an action node and connect to the Power Automate which will save the details to the back end SharePoint list.

Building the Power Automate

The Power Automate in the previous step is created by selecting the Call an action and clicking on Create a flow

This will open the Power Automate window where we will define the 3 input variables which contains the Patient Name,Doctor Name and Appointment Time.

We will then add the create item action to save the details to the SharePoint list which will act as the appointment records which the hospital can pull information daily. As we don’t have any specific data to be returned to the PVA, we will leave the return values empty. If we want to add additional appointment checking logic during item creation, we can return the success/failure message back to the PVA to make the system more robust.

Once the Flow is created, we can add the call an action node and select the recently created power automate flow and specify the required variables in the input section. We have done this for all the 5 branches that we saw in the above section

Book Health Check up

In case of health check-up, we will follow a similar pattern, where we will add the message to the end user that the booking is done and call the Power Automate and pass the required values which will be saved to the SharePoint list. Finally, we will end the conversation with a survey, if we intend to add more logic, we can extend the conversation with more question actions.

Test the bot

Now let’s test the bot with a trigger word – Book Appointment

Upon giving the inputs and selecting the doctor, we can specify the date and time. We can enter a specific date or even enter free text like Today which will be converted into equivalent date and time.

The appointment record has been created in the back end as well:

Summary

Thus, we saw how we can use Power Virtual agents to create automate doctor appointment booking system that invokes power automate to save the appointment records to the back-end SharePoint list. This can be expanded to implement enterprise scale appointment bots and published to Public Facing website as well as other channels like Teams, slack, Facebook etc: