Being able to talk to a live chat agent is a popular website feature, especially in the Retail industry where staff are on hand to be able to manage and solve customer queries so they can get back to buying products. This became a popular service-oriented capability and more industries are adopting this feature, but one step further. Being able to embed bot technology before a real person is even required has now become the go-to strategy for customer service.

What are bots?

It is the capability to ask questions in a conversational format to what is essentially a predefined, routing experience normally based on Natural Language Processing. That is the ability to take common phrases that don’t have to be exact in nature and be able to route the user to what the most relevant topic, and therefore response, based on the subject of the query.

Why is this popular?

Once it has been implemented, they are normally based on machine learning models that can get smarter with the more questions asked, becoming much more fluent and likely to direct the user to the correct subject, and therefore the most suited response to the question. In addition, it takes the workload off real agents, so they can manage more complicated queries. Questions which are common, such as ‘What is your store in London’s opening hours?’ are questions easily managed by bots.  By freeing customer service agents up, it means they can focus on customers who require more specialised service, increasing the likelihood of good customer experience, a resolved query and importantly, a quickly resolved query as it often reduces wait times.

Until now, you had to have a level of developer knowledge to be able to utilise the Azure Bot Framework. This technology is not new, and the Azure Bot Framework technology has been around for quite some time, each year iterating and becoming more intelligent and easier to implement for organisations. Microsoft made it straightforward where there wasn’t much coding needed if you just wanted to spin up sample bots to integrate into more functional interfaces like LUIS, however, it was still something you had to provision and, if you wanted a customised, personalised service to your organisation, code yourself. It is, however, also still fairly difficult to manage exceptions in this interface and fallbacks.

Microsoft has now released in Public Preview the Virtual Agent capabilities for Dynamics 365 Customer Service Insights and Dynamics 365 Customer Service. Let’s just clarify:

  • Dynamics 365 Customer Service: Standard capabilities for Service in Dynamics. Case, Knowledge Article etc
  • Dynamics 365 Customer Service Insights: A specialised, AI driven set of Dashboards and capabilities to manage analytical data of Cases (or custom entities, mapped into Cases).

The Virtual Agent capability is a seperate licenced product, and you don’t have to licence the Dynamics 365 Customer Service Insights to use it.

This blog post takes a deep dive into getting started with the Virtual Agent creator experience. It will begin with a short tour of the application and create a custom bot using the Common Data Service and Microsoft Flow.

Provision the Trial

At the time of writing, Virtual Agent capabilities are only available in North America. Provision a North American trial environment of Dynamics 365 and go ahead and sign up to the public preview here –

Take a Tour and Familiarisation

1. When you first log in to the application, you will get asked which environment you wish to use. Only North American environments are available from the dropdown. Select yours to start provisioning your first bot. This takes about 2-3 minutes approx.

2. On the homepage you will see a sidebar on the right-hand side, this is your sitemap:

  • Home: Getting started with lots of helpful links and community forums
  • Topics: Topics are areas which hold triggering phrases and contain business logic for your bot. Topics can be triggered from conversation to conversation.
  • Analytics: Check how your bot is managing and the feedback it has been receiving from completed bot conversations
  • Deploy: Deploy your bot to a test site or your own site with an IFrame

3. Test Your Bot/Hide Bot (bottom left of the screen) – Toggle Control

This area opens your bot to test it. You can click it again to hide the test panel. Select tracing to be taken to the conversation flow in real time as you test it, so you can see yourself being routed through the business logic. You can also refresh the bot to load any changes you have made recently.

4. Click on Topics (as shown below). You’ll see the bot comes preloaded with 32 Topics.

5. Click on ‘Store Hours’ Topics to open this topic, as shown below:

Take a look around. You will see that each Topic is made up of Information – this is core name and description details. Secondly, it has ‘Trigger Phrases’. These are Phrases that your customer can enter in the bot which will trigger the conversation, which is to the right on the topic. These Trigger Phrases are based on Natural Language Processing, so a customer doesn’t have to say the exact phrase and as it is used, it learns based on the interaction.

5. Click ‘Edit’ in the Conversation section to open the Conversation Designer.

Navigate around the designer to become familiar with the UI. Click a plus icon as you hover over one of the connected lines to explore what options appear and see how the flow of control has been set up. This is just one way to create a conversation using the Bot, and in this particular case, it is triggered on a Customer asking about the times, prompts the user to select three options or a fallback and to then proceed accordingly.

Creating your Topic

6. Once you have finished reviewing, navigate back to the Topic screen, and click ‘New’.

7. Enter the following information, and then save the topic.

  • Name: Create a Case
  • Description: Creates a new Case
  • Trigger Phrases: I have a problem, Please can you help me, I have an issue, Log a support ticket, Please can I log a support ticket

8. Click ‘Edit’ on the Conversation to open up a blank Conversation. You will see the Trigger Phrase box, and the Bot Says box has been automatically created.

In the Bot Says box, enter the text “Of course. Please can you tell me what the issue is?” and click on ‘User Says’ as the next box.

9. Click the rubbish icon on the blank text (shown below) and click ‘Create Variable’. Click ‘Create Variable Again on the panel that appears to the right and enter ‘Case Title’ as the name and ‘Text’ as the type.

These variables can only be passed into Flows and used in this single conversation, and not yet passed between conversations. (You can call conversations from conversations to be able to design clean and structured experiences so they can be reused in other use conversations).

10. Delete the expression that was automatically created by clicking the three dots and ‘delete’. We do not need to evaluate an expression at the moment, so that’s why we can remove it.

Create another ‘Bot Says’ and enter the text “Can you provide me with any more information please?”.

11. Repeat the last step to create a second variable, calling it this time ‘Case Description’. Do the same for creating a ‘Bot Says’ and a ‘User Says’ for ‘Please can you provide me with your Full or Last Name?’ and ‘Please can you provide your email address?’. Ensure you delete all of the additional ‘Expressions’ the designer automatically adds.

Now we have all the information from the Customer to create a Contact and Log a Case.

12. At this point, save your Bot logic. We need to add an ‘Action’ using Microsoft Flow, by clicking the plus Icon, Actions and selecting the Flow, to create a new Case record for our customer and return back the information before closing out the case. I’ve broken this out into two posts, so check out creating your Custom Flow for Virtual Agents here, and then feel free to come back to this point to continue on.

I would recommend though completing this post and exploring some closing options first for the purpose of getting started. (Also, you may not want to use Flow right now in your experience!)

13. Closing out your Bot Conversation. There are a few different ways to close out, they can be End with Survey, which automatically prompts the user to review the experience which is compiled into the ‘Analytics’ page of the topic they are on.

14. A second way of closing out your Bot Conversation is to Escalate. This is where the Virtual Agent will hand over to a real user. The Escalate topic needs to be modified with a link to the live chat feature that your organisation provides (like the one provided by the Omni Channel Experience Hub!)

15. Lastly, another way is to point to the ‘Goodbye’ topic (or another topic) which closes the conversation using the Goodbye topic (or point to another topic of your choice).

Click the topic you need:

16. Save your conversation using ‘Save’ in the top right of the screen.

17. Now TEST your bot! Click ‘Test your Bot’ in the bottom left to open the window. Click ‘Tracing’ which allows you to see the real-time flow of business logic as you move through the conversation with the Bot. Also, click ‘Start over with the latest content’ so it picks up your changes.


I hope this helps you get started with Virtual Agents! If you have any questions, feel free to enter a comment below and I’ll do my best to help you!

Thanks for reading!