JOPX on CRM, Cloud and Analytics

Occasional rantings about Dynamics CRM/365, Power BI, SharePoint, Office 365 and Azure cloud. Intrigued about how people collaborate and data driven decision making. Taking the first small steps in machine learning. Putting all of the above in practical use to help companies "embrace" their customers

Monday, January 15, 2018

I will be delivering a session about chat bots and Dynamics 365 at Dynamics 365 Saturday Amsterdam on the 3d of February. Registration is free.
Dynamics 365 Saturday is a Technical & Strategy event organized by the community with the following credo: “Learn & share new skills while promoting best practices, helping organizations overcome the challenges of implementing a successful digital transformation strategy with Microsoft Dynamics 365”.

Knowledge base articles are a base component of the Service Management module in Dynamics 365. The knowledge base is a repository of informational articles that can be used to help customer service representatives resolve cases. Knowledge base articles can be emailed to a customer, which can be sent either through the Dynamics 365 interface or through the Microsoft Dynamics apps for Outlook.
With the introduction of the new knowledge articles entity data model (KnowledgeArticle) in Dynamics CRM Online 2016 Update 1 and Microsoft Dynamics CRM 2016 SP1 (for on premise) (Release documentation 8.1 – January 2017) , the existing entities for knowledge management: KbArticle, KbArticleComment and KbArticleTemplate were deprecated.

You should now use the newer KnowledgeArticle in your code (See Important changes coming in future releases of Microsoft Dynamics 365), which also support versioning and translation support.
In version 8.1, these knowledge articles became visible in the interactive service hub which was revamped into the Customer Service Hub in version 9.0 (Dynamics 365 July 2017 update). The Customer Service Hub also contains a number Knowledge Base dashboard - one with "your knowledge base articles" and one specifically for a knowledge manager (see screenshot below).

Monday, January 08, 2018

Unfortunately the Office 365 Admin Portal, does not contain a predefined view to show all users who have the Dynamics 365 Service Administrator role – this role allows you to manage Dynamics 365 at tenant level (See Use the service admin role to manage your tenant for more details). But luckily you can also retrieve this information using PowerShell.

First make sure that you install the different prerequisites as outlined in Connect to Office 365 PowerShell – next open Windows Azure Active Directory Module for Windows PowerShell. To connect to Office 365, simply type connect-msolservice . Get-MsolRole will give you a list of all administrator roles. You will see that the internal role name which is listed is still "CRM Service Administrator". The last line will export all users with this role to a CSV file

Sunday, January 07, 2018

When you try to connect to Dynamics 365 9.0 from within a console app using the CrmServiceClient, you might still encounter an error “Unable to login to Dynamics CRM” even though you have updated to the latest version of the different assemblies (9.0.0.7 at the moment of writing).

This might be caused by the fact that you compiling against .NET 4.7 where the default value of the ServicePointManager.SecurityProtocol is SecurityProtocolType.SystemDefault (See What’s new in .NET 4.7 for more details).

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 https://www.statefarm.com/customer-care/faqs/auto-insurance 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 https://github.com/Microsoft/BotFramework-WebChat 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 :

Dynamics COE series on bot framework (some articles might not be applicable anymore since the Azure bot framework has undergone some significant changes in the last couple of months) is also a good starting point:

Tuesday, December 12, 2017

The last year I have been working as a solution architect for a large European company as part of the EA team and I must say, it has been quite an interesting experience. The vision/ideas that the other architects within EA have about software architecture made me explore a little bit on how software architecture has been perceived by the industry. During in this exploration I stumbled on a number of interesting articles that I want to share: