In today’s world, Can anything be better for your enterprises than providing faster response to your customers? Self-service is increasingly the preferred route for 24×7 access to information, and this has led forward thinking organizations to delight the customers with Chatbots and AI for customer care.

Dynamics 365 Virtual Agent for Customer Service is a AI based customer application built on the Microsoft Bot Framework that empowers customer service teams to create powerful bots using a guided, no-code, Microsoft’s intuitive interface and easy to use templates.

What’s more, since Power Virtual Agents is built on top of Azure Bot Framework it offers limitless extensibility – the full power of Azure Bot Framework and Azure Cognitive Services is only a few clicks away to extend to your services, either customer facing services, automation of business operation and internal business process, reduce the workload for IT Services and technical support services, determination of initial lead qualifications or simple speed up daily tasks. Microsoft Power Virtual Agents enables you to engage conversationally with your customers and employees

In today’s blog, we will outline How to create Chatbot with Microsoft Dynamics 365 Customer Service

1. Create Virtual Bot trial version

Logon to

Click sign-up for free and enter e-mail address

Select country region

Provide a name for Chat-bot (Virtual agent) and click create

Select an environment with which Chat-bot (Virtual agent) from the drop down

Wait for few and your Chat-bot (Virtual agent) will get up and running in few minutes

You will also receive an e-mail acknowledgement as well

2. Configure Topics & Power automate (flows)


  • Topics are the one which will trigger “Chatbot” to respond to user queries
  • There are 3 major sections,

  1. Trigger Phrase – Using these phrases Chatbot will initiate a conversation
  2. Canvas – is used to define flowchart/sequence of a conversation

Following are the options which are available under canvas,

  1. Ask a question – should be selected to get input from the user
  2. Call an action – is used for calling a Power automate (Microsoft flow)
  3. Show a message – pick this option acknowledging customer response or display the results
  4. Go to another topic – could be selected for calling “another topic” within a “topic”
  5. End the conversation – are the standard system responses for getting the feedback.

A process flow definition could be automated by using the combination of above mentioned 5 options.
Let’s create a scenario, where Chatbot should reply for status & priority of a “Case” by integrating with Microsoft Dynamics 365 – Customer service.

  • Define a new Topic and add “Trigger phrases” & Click “Go to authoring canvas”
  • Kindly note that, we can add/update/delete ‘n’ no. of trigger phrases anytime (even after publish the Chatbot)

Canvas section will be similar to one shown below

Let’s acknowledge the phrase to a user by adding a message “Okay I can help you with your query”

We should get the case ID from the user, so that we can provide the results. There are plenty of option to refine the questions and we can choose any one of them

Power automate (Microsoft flow) is required in order to fetch the details from Microsoft Dynamics 365 – Customer service

Power Automate:

Create a new solution, so that we can add all Chat-bot (Virtual agent) related flows

Select the solution and Click New flow

Overall flow definition will be similar to screenshot shown below

  1. HTTP is requested – whenever Chatbot provides value to flow
  2. Initialize variable – Assigning the value to a variable in flow
  3. List records – Using the variable to retrieve the records from Microsoft Dynamics 365 – Customer service database
  4. Condition – Validating the results, based on the variables
  5. Response – Passing the value to Chatbot

  • Define the first 2 steps as shown below,

  • Select the environment & entity, here we will select Microsoft Dynamics 365 – Customer service
  • It is mandatory to know the schema name of the field in the entity. As per the example, Case number’s schema name is “TICKET NUMBER

  • Definition of conditions are required to validate the case number provided exists in the database or not.

  1. If exist, then flow will respond by the status of a case
  2. If not available, then flow will respond saying “no records found”

For condition, expression is 
– coalesce(body(‘List_records’)?[‘value’]?[0]?[‘ItemInternalId’],’NULL’)
If yes, expression is
 – body(‘List_records’)[‘value’]?[0][‘_statuscode_label’]

  • Define the response as shown below

After flow definition, the same must be used within topics using “CALL AN ACTION

For displaying the results, we will have to use message box.

3. Test ChatBot

  • Before publishing the Chatbot, there is a provision of “TEST YOUR BOT” bottom left corner

We can test our conversation based on “trigger phrases” defined and BOT will respond

4.Publish ChatBot

  • Click “PUBLISH” from the left side of the menu

Click “DEMO WEBSITE” for seeing the final output

That’s it! You have successfully built a chatbot. If you still have the questions or learn more about our services then feel  free to reach out to us at

*This blog was originally posted here