Microsoft Power Virtual Agent(AI chatbot)

Working on Omnichannel for Customer Service, I came across Microsoft Power Virtual Agent which is an AI chatbot.

Power Virtual Agent helps us to create a bot with the no-code interface. Where it minimizes the effort required to deploy and maintain custom solutions. Also, Power Virtual Agent can answer many major issues using the bot service.

Advantages:

  • Allow a person to build a bot without any coding or AI experience
  • Common inquiries can be answered by the bot with any user intervention. This reduces the human agent’s effort and time.
  • Customers can self-help themselves 24/7 using a power virtual agent. This improves customer satisfaction experience.

Now, let’s dive into Power Virtual Agent, click here.

Sign In and follow the below steps:

There are multiple topic already present we can use system and sample topics.

User Topics and System Topics
Hit new topic for creating a new topic
For updating the topic flow click on Go to authoring canvas.

I tried with creating a sample bot for me.

Click here to check the video.

I hope this gives you and idea about Power Virtual Agent.

Omnichannel for Customer Service – Masking Chat Conversation

Omnichannel for Customer Service offers us the capability to mask chat data.

Why use data masking?

Data masking helps the organization to protect the customer sensitive data like Credit card details, SSN number, Account Number, etc.

How does it help any use case?

Any text that’s masked in a conversation will also be masked in the conversation transcript.

Masking rules can be implemented for customers, agents, or both.

Let’s start with setting up a masking rule, follow the below steps:

  • Go to Omnichannel Administration App
  • Under site map go to Settings –> Data Masking Settings
  • Enable Mask private customer data from the agent
  • Create a masking rule
Omnichannel Administration: Masking rule page
  • Mask private agent data from the customer: Data the agent sends is masked for both the customer and agent for live chat and async channel messages.
  • Mask private customer data from the agent: Data the customer sends is masked for both the customer and agent for live chat, but only for the user interface of the agent when using async channels.

For the masking rule to work, we need to Activate the desired rule.

Create New Masking Rule
Masking rule needed Regular Expression for masking the data.

Only 10 data-masking rules, including the rules provided out of the box, can exist in Omnichannel for Customer Service.

Let’s create a simple masking rule where the rule would mask(#) any incorrect word send via customer chat to our agent.
I have entered the few incorrect words inside the regular expression field. Now, if the customer enters any words(shit|donkey|fool|useless|angry|sue) which lies within this Regular Expression the word would be masked by “#”

Create Masking Rule

Name: Enter the masking rule name
Description: Provide the description of the created rule
Regular Expression: Regular Expression is required for masking data

Going to the portal, User-initiated the chat and type the incorrect word on the chat window.

Following the same chat, refer to the below slide.

I hope this helps!!!

Omnichannel for Customer Service – Part 3

This is part 3 of Omnichannel for Customer Service. Where we will be exploring on Omnichannel Insight for Dynamics 365.

For the previous parts of Omnichannel you can refer the below links:

Omnichannel Insight for Dynamics 365 provides us an insight into the customer service omnichannel delivery and it also provides the information about the customer sentiments.

This allow the Supervisors to perform the following tasks from the dashboard:

  • Monitor Omnichannel operational metrics across Channel, Queues and Agents.
  • Monitor support quality via sentiment analysis across Channels, Queues and Agents.
  • Monitor Bot operational metrics

Click here to access the Omnichannel Insight for Dynamics 365 from Microsoft App Source.

Omnichannel Insight for Dynamics 365

Click on GET IT NOW button.

For accessing the Omnichannel Insight under CRM Dashboard we will need to perform a few steps as shown below:

Go to Settings under Developer Resource, we have the Service Root URL of the instance

While connecting to the instance it asks for selecting the Authentication method and Privacy level setting for this data source.
There are 4 types of authentication provide for establishing the connection:

  • Anonymous
  • Basic
  • Key
  • OAuth2

Similarly, we have 4 types of privacy level settings:

  • None
  • Private
  • Organizational
  • Public
Values provided for establishing the connection

Here is our Omnichannel Insights for Dynamics 365, it’s a Power BI Dashboard.

Now, let’s do some setting for accessing the Omnichannel Insights dashboards inside our CRM instance.
For that we need to allow the user to embed Power BI reports under CRM by enabling Allow Power BI visualization embedding to Yes under the System Settings Reporting tab as shown below:

Allow Power BI visualization embedding to Yes

I hope this helps!!!

Dynamics 365 Healthcare Accelerator

Continuing to Dynamics 365 Healthcare Accelerator. Let’s learn how to setup the App on our trail instance. Click here to create a new instance. Once the trial instance is ready.

Go to Admin Center, and follow the below steps:

Healthcare Accelerator has few dependencies on other solutions like:

  • Field Service
  • Project Service Automation

Click here for navigating to Microsoft App Source and follow the below steps:

Going back to the solution we can see that installation for Dynamics 365 Electronic Medical Records has been started.

Once the installation is successfully completed we can see the Dynamics Health 365 app.

App: Dynamics Health 365 installed

Dynamics 365 Contact Entity Forms 

The Healthcare Accelerator combines standard CRM entities with customized entities to make it easier to build solutions on top. This section describes examples of built-in forms and views that demonstrate these entities. 

Patient/Practitioner 360 

This view shows Electronic Medical Record (EMR) data directly within a patient or practitioner-specific form in Dynamics. The data model shows appointments, procedures, medications, and other patient/practitioner data in context and a user-friendly interface. 


Patient/Provider Timeline

This view provides a sequential look at all activities that have occurred with the patient or provider. The timeline provides the ability to scale, leveraging a slider, and interact with data directly.

Care Team Viewer

A clear understanding of which member of a patient’s care team owns each facet of care is paramount, as this view clearly and concisely shows.

To know more about Dynamics 365 healthcare accelerator, Click here.

I hope this helps!!!

Omnichannel for Customer Service – Part 2

Continuing to Omnichannel for Customer Service. We will learn the process to setup a Live chat widget inside Dynamics CRM using the Omnichannel Administration app.

To know about, how to setup Omnichannel for Customer Service, Click here.

Select Queues from the site map and click +New button. A queue is required for routing the question from users to a particular department based on the business process.

  • Provide the Queue name and set the priority of the queue.
  • Add the users to the queue who would be taking the incoming chat request which comes under this queue.

Once the queue has been defined we need to create a record under Work Streams. 
Here we need to select the desired channel for our Work Stream. There are multiple channels like Live Chat, SMS, Facebook, WhatsApp, Twitter, Microsoft Teams, etc. Name the Channel and select the capacity. We are setting up Live Chat.
We can also identify the incoming chat preference based on the agent status. Let’s select the Allowed Presences value too Available, Busy. This means that the agent would get the live chat pop-up on their screen when they have the capacity and their status is either Available or Busy.

Create Work Stream for Live Chat

Now, we will create a Chat Widget. For that, we need to navigate to Chat from the site map.
Provide a name to the chat widget record, select the language, and the work stream which we create a minute before.

Under Agent display name, we have the option to select agent First Name, Last Name, Nick Name or Full Name.

Create Chat Widget record

Once the record is saved, we will get a code snippet.

Code snippet gets populated under Chat Widget. This will be required later.

After this, we need to go back to our work stream record and create a routing rule for Live Chat channel.

For creating of routing rule, we need to link it with the queue which we created and Work Stream created by us. Hit the Save button.
Once the record is saved, we need to add a condition to the routing rule as shown in the above image.

Assuming Portal is installed on the instance where the Omnichannel has been setup.
If not below are the step of Portal Configuration.

Under Instances tab, select Dynamics 365 Portals- Customer Self-Service Portal and Click Install.

Once we have the Customer Self-Service Portal installed on our instance.

Now, let’s go to Portal Management app –> under Content Snippets we need to paste the code snippet which we received from Chat Widget record.

Next, enable Portal Add-On as shown below:

We can see a Chat icon appearing on the Portal bottom right.

Now, open CRM using Test User credential which is has been part of our Live Chat channel. We can see a yellow box on the top right of the screenshot, the green icon denotes the status of our agent is available when the agent is busy it turns to be red.

Steps we need to perform for testing the Live Chat channel configuration.

Once the conversation is completed agent can close the chat session by clicking in the End button.

The comments provided by Agent after ending the chat session would stay within CRM only. For internal team references.

Here is the end of Omnichannel for Customer Service.

I hope this helps!!!

Dynamics 365 Healthcare Accelerator

Microsoft came up with Healthcare Accelerator app for their customers who serve in Healthcare domain. The app is built considering the HL7/FHIR based data model.

The app designed solution has:

Pre-built entities and forms: Access to a wide range of FHIR-based entities and relationships allowing for rapid development of new healthcare solutions

Compliance: Standard based model built on a foundation of trust within a platform that is fully compliant with industry compliance standards including HIPAA and HITRUST

Care Team Visualization: A connected view of the care team associated with a patient and their roles that can be configured to include family and other related relationships

Patient Timeline: Presentation of clinical information about a patient in chronological order enabling providers to visualize all patient interactions and make informed care decisions 

Native CDM Support: Health entities unified with standard CDM entities ensuring consistency across applications which allows rapid and seamless integration to 3rd party EMR and EHR systems

List of entities in support of the FHIR HL7 (Health Level Seven) specification:

PatientsHealthcare ServicesCare PlansEncounters
PractitionersClinical Impression ProblemsRisk AssessmentsSpecimens
OrganizationsAllergy IntolerancesObservationsMedications
DevicesMedication AdministrationEpisodes of CareLocations
Healthcare ServicesMedication Requests
Figure 1: Pre-built entity for Healthcare Accelerator App

In my next blog, we will learn how to setup and configure the Healthcare Accelerator app.

Omnichannel for Customer Service

Microsoft came up with an app called Omnichannel for Customer Service.

The app is a part of Customer Service which helps the organizations to immediately connect and engage with their customers on a digital platform, like Chat, SMS, Social Media(Facebook, Twitter, WhatsApp, Microsoft Teams, and many more).

We can test this on the trials instance. Click here to create a new instance.

Select Customer Service while creating a trial instance. If we select any other option, Omnichannel for Customer Service application will not get enabled in your tenant.

Figure 1: Select Customer Service for Trial Instance

Once the instance is setup. Check whether the Customer Service Hub is available or not.

Figure 2: Installed Customer Service Hub

Now, let’s go to the admin center to configure a few settings. Click on Billing -> Purchase services -> Add-ons

Figure 3: Steps to set up subscription

Here for trial purpose, if needed we can get Power BI (free) subscription. Also, there are multiple add-ons that we can have access to like Dynamics 365 Customer Service Digital Messaging add-on trial.

Once the add-ons are configured go to users and assign license accordingly.

Figure 5: Assign license to user

For Provisioning Omnichannel for Customer Service, we will have a provide the data access consent. For that we need to go to the Data access consent URL which would navigate us to the below page where we need to check the consent box and hit the Accept button.

Figure 7: The page appears once the Accept button is clicked.

Next, when we have the data access granted successfully. We need to go back to the admin center and start configuring Omnichannel for our instance.

Figure 8: Admin Center – Power Apps
Figure 9: Select Instance
Figure 10: Click Dynamics 365 Administration Center link
Figure 11: Go to Application tab, Select Omnichannel for Customer Service and hit Manage button

Go to the Application tab, select Omnichannel for Customer Service, and hit the Manage button. The manage button option allows us to configure and remove the channels which are use or no use.

Figure 12: Provide the Consent by clicking on the Check box and hit Accept
Figure 13: Add Environment on which Omnichannel needs to be configured.
Figure 14: Select the instance from the drop down.

For, practice let’s configure all the options which we have on trials instance. This can be turned off when needed.

Figure 15: Enable Chat Feature
Figure 16: Enable SMS feature
Figure 17: Enable Social Media
Figure 18: Enable Microsoft Team
Figure 19: Click on Finish button

By clicking on the Finish button, we confirm the options we opted for Chat, SMS, Social, and Teams. This would take some time to install all the option which we opted for Omnichannel.

Once the installation is completed under the selected instance (MRC), we would the below screen.

Figure 20: Omnichannel setup under MRC Instance

Navigate to My Apps, here we can see Omnichannel has been successfully installed.

Figure 21: Omnichannel successfully installed.

I hope this helps!!!

Add related entity view on the Main Form

Today will learn how to populate the related associated entity in the main form.

I have a Contact entity and it has a (1:N) parental relationship with the entity “Signs & symptom“. The aim of this blog is to populate the Signs & symptoms next to the Summary tab so that the number of clicks gets limited.

Figure 1: Contact Form
Figure 2: Signs & symptoms related entity.

Let’s navigate to the Contact entity form editor. There we will have to add a new tab just below the Summary tab.

Figure 3: Adding new tab on Contact Form, below Summary tab.
Figure 4: Add label to the tab as “Signs & symptoms”.

Now, we will add a sub-gird inside the Signs & symptoms tab.

Figure 5: Add Sub-Grid to Tab

Then we will set the properties of the sub-grid by providing it a name, label. We will also do the entity and view mapping.

Figure 6: Set Properties of a section
Figure 7: Entity Mapping and selecting the default view

Once this is done. Hit the OK button and publish the changes.

Figure 8: Contact related entity “Signs & symptoms” populate next to Summary tab

In the above image, we can see that the Contact related entity “Signs & symptoms” populates next to the Summary tab.

By clicking on the Signs & symptoms tab we would get the same associated view which we would get when we navigate from related to Signs & symptoms.

Hope this blog helps you.

Calculate Age using Power Automate

Today, let’s learn how to calculate a person’s age using Power Automate.

There are multiple ways to calculate a person’s age. The DOB field which I have is of string type. So, I thought of using Power Automate to achieve this.

Search for Common Data Service and the trigger should be When a record is created, updated, or deleted as shown in the below image. Next, enter the required details like the environment and the entity name.

Figure 1: Selecting trigger for this flow

Then we will add a condition to our flow, where we will check whether the Date of Birth field is null or not.

Figure 2: Check Date of Birth field is null or not

If the Data of Birth field is not null then we will calculate the age. For that when the condition is met the flow would go under IF yes condition, where we will have to provide the entity name and field under which the calculated age needs to be populated.

Figure 3: Mapping of entity under which the calculated age value to be populated
div(div(sub(ticks(utcNow('yyyy-MM-dd')),ticks(triggerBody()['new_dateofbirth'])),864000000000),365.25)

We will use the above expression for calculating the age. 
Place the cursor inside the Calculate Age field and paste the above expression under the expression section and click on the Update button.

Figure 4: Using expression for calculating value.

Now, we need to test our flow. Hit the Test button on the right top of your screen.

Figure 5: Test Flow

After a successful run of the flow. We can see age would have been populated under the Calculate Age field under the Contact entity.

Hope this helps anyone !!!

Retrieve data from Azure Cosmos DB using Power Automate

Let’s learn about how to fetch data from Cosmos DB using Power Automate and push into Dynamics CRM.

For retrieving the data from Azure Cosmos DB we will need a few details from Azure:

1. URI
2. Primary Key

Figure 1: Azure Key for Cosmos DB connectivity

Let’s jump to Power Automate and start adding the necessary component for achieving this activity.

I have used a manual trigger for reading the data from Azure Cosmos DB and pushing it into Dynamics CRM.
Chose an action –> Search for Azure Cosmos DB, then under action select Get all documents.

Figure 2: Creating Flow using Azure Cosmos DB component

We will use the Azure Cosmos DB detail for establishing the connection as shown in the below image. Access Key to your Azure Cosmos DB account here we have to enter Primary Key as shown under Figure 1. Hit Create button.

Figure 3: Establishing connection with Cosmos DB
Figure 4: Select the DB and table

Select the desired database under the Database ID and table under the Collection ID field and hit the + New step button.

After the connection has been successfully established. Search for Parse JSON and add Documents under the Content field. Paste the JSON output under the schema. Hit the + New step button.

Figure 5: Parse JSON as an output

Next, we will search for a control Apply to each.

Figure 6: Add control Apply to each

Under, Select an output from previous steps field pastes the Body from the Dynamic content and click Add an action button.

Figure 7: Add Body from Dynamic content
Figure 8: Search for Common Data Service(current environment), Action: Create a new record

The above action is needed as it will allow us to map the value coming from JSON to be stored inside Dynamics CRM entity attributes. 

Figure 9: Mapping CRM attributes with the output columns.

Now, we need to test our flow with a few more clicks to be performed. Click on the Test button which would appear on the right top of the screen.

Figure 10: Test Flow

The flow will start executing, once the flow has run successfully we will get the below screen. 

Figure 12: Flow execution

Now, go into CRM and we will see the records have been created under the expected entity.

Hope this help anyone!