Power Virtual Agents: Build an Automated Doctor Appointment Chatbot

Introduction

Power Virtual Agents helps us create intelligent conversational chatbots 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 set up an automated appointment booking system that 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 appointments 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 selecting “New bot”. It will open up the window where we can specify the bot’s 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, the better the chances of bot understanding the trigger condition.

Graphical user interface, text, application, email

Description automatically generated

Let’s add a welcome message to the Authoring Canvas

Graphical user interface, application, Teams

Description automatically generated

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
Graphical user interface, application

Description automatically generated

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.

Graphical user interface, application, Teams

Description automatically generated

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 the preferred booking and upon input from the user, we will show a message that the booking with the mentioned doctor has been booked.

A screenshot of a computer

Description automatically generated with medium confidence

As the 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.

Graphical user interface, application

Description automatically generated

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

Graphical user interface, application

Description automatically generated

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.

Graphical user interface

Description automatically generated

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.

Graphical user interface, text, application, email

Description automatically generated

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.

Graphical user interface, application

Description automatically generated

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.

Graphical user interface

Description automatically generated

Test the bot

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

Graphical user interface, text, application

Description automatically generated

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 an equivalent date and time.

Graphical user interface, application

Description automatically generated

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

Graphical user interface, application

Description automatically generated

Summary

Thus, we saw how we can use Power Virtual agents to create an automated 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 websites as well as other channels like Teams, Slack, Facebook, etc:

Related Articles

Author

Author

Priyaranjan KS is a Modern Workplace Architect primarily focused on developing and architecting solutions around Office 365,Power Platform and Azure.He is also a Microsoft Most Valuable Professional(MVP) and a Microsoft Certified Trainer(MCT)

Latest Articles