Wednesday, December 27, 2017

Bots and Dynamics 365 Part 1 : Introduction and building a Q&A bot

For those of you who want to see a glimpse of the potential of bots in combination with Dynamics 365 check out the Microsoft Data Amp 2017 Keynote (Channel 9 recording) but also some actual reference cases such as
Bots are officially a hype in Silicon Valley  and while stories like It begins – Bots are learning to chat in their own language might depict a bright future for bots due to the recent advances in machine learning and artificial intelligence, developing a good bot will still require a good design and up front thinking about how you want your users to interact with the bot.  The user experience of poorly designed chat bots will frustrate users trying to perform more complex tasks. And even when this will not become a headline such as Tay, the Microsoft that pranksters trained to spew racist comments you will still have disappointed a potential customer.  But companies which start early experimenting with chat bots, are able to leverage advances in natural language processing and artificial intelligence and a number of different bot building frameworks.  The important thing to realize is that building a bot is not so much about the underlying technology but about creating a memorable customer experience – a great example is Lemonade sets new world record which show how AI handles a filed insurance claim in under 3 seconds.

Luckily, building the underlying platform has become a lot easier and Microsoft has also made available a number of different tools to help you in designing a great experience. Microsoft not only provides the Bot Framework (publicly available since April 2016) which includes a Bot Builder SDK and Developer Portal but also launched the Azure Bot Service  in the November 2016. Azure Bot Service has been built on top of the Azure Bot Framework and provides a number of templates to get started with the creation of bots. In theory you can code your bot directly from within the built-in editor but you will probably switch over to Visual Studio afterwards as well as integrate with your source code repository by downloading the generated bot code to your local machine.

One of the basic templates which is available in Azure Bot Service to write your bot is the the Question&Answer template.  To get started you need to built up a knowledgebase with questions and answers, information which might already exists in content such as FAQs, documents,etc…  Microsoft QnA Maker  will be able to use these existing sources and provides both a web interface and REST API that trains AI to respond to user’s questions in a more natural, conversational way. I took the example of and used it as input for QnA Maker to build up a knowledge base. Within QnA Maker itself you can test it afterwards  to see how your bot reacts to specific questions.

The next step is creating a bot using the Azure Bot Service – next to the QnA template there are also other templates available – see Bot Service templates  for more details. You can start experimenting with the bot service framework at a very low cost, the free model allows you to test it out with 10000 messages/month and you will only pay for the consumption of the underlying Azure functions  or you can use the premium pricing model which provides an SLA as well as as access to premium channels. (See Azure Bot Service pricing for more details)

After the bot service has been created, you will still need to connect it to the QnA service that you published previously by filling in the QnAKnowledgebaseId and qnASubscriptionKey in the App Settings of your bot which you can retrieve from the QnA settings page.

User interact with your bot through channels, the Azure Bot service provides fourteen channels such as Cortana, Facebook Messenger, Kik but also embedded web chat.  Web chat is the channel which is enabled by default, and you can start quite quickly by just embedding an iframe in your web 

You can also use a DirectLine (not web chat) channel, and start from the source code available on  to build an embeddable web chat control which is both available as a React component and a self-contained control which is easily usable by non-React websites.

But if you really want to leverage the full potential of chat bots, you will need to integrate the chat bot channel into the core systems and data repositories of your organization such as Dynamics 365 for Customer Engagement and Service Management. From a Dynamics 365 perspective there are some interesting generic use cases for bots:
  • Customer Service – tier one support, bots can simulate 24/7 customer service representatives and act as tier one support and escalate case for follow-up by actual customer service representatives. 
  • Customer Service – appointment scheduling for servicing such as maintenance, repair, etc …
  • Lead generation - an embedded chat bot in your website can answer simple product and pricing inquiries from customers and at the same time create leads.
In a next post I will delve a little deeper into how you can integrate your bot with Dynamics 365 but you can already explore this topic yourself by looking into a number of blog series on this topic such as the series from @NishantranaCRM :
Other references:

No comments: