Dynamics Relevance Search just got relevant 🙌

MAAAAAASIVE update in the search experience for Dynamics, and I am extremely excited about it. The global search has received a major face-lift and is now looking really good. I personally never used the old relevance search, because I thought it looked bad and was confusing for the end customer.

OLD Search

My customers personally fond this search confusing when the database started to grow. I therefore always told the users to chose categorized search instead.

This way it was easier for the user to find the Accound/Contact/Oppty they were looking for.

New Search experience ✨🎉👍

The new search places the search bar in the middle on top, just like many other office applications. A fairly intuitive placement for the global search, and the results look awesome!!!

Suggested search results on first click
Image from Microsoft Docs!!
Legend for new search experience
Image from Microsoft Docs!!
Suggested search results when you enter search queary
Image from Microsoft Docs!!

Read all about it at the Microsoft Docs Site 🙂

https://docs.microsoft.com/en-us/powerapps/user/relevance-search

Activating the experience

https://admin.powerplatform.microsoft.com/

Open settings

Activate both the Relevance search and the new search experience

Dynamics HR + CDS / Dataverse

This is not the average Dynamics CRM post, but I was challenged by Malin Martnes to see if we could integrate the competency part of of Dynamics HR with Customer Engagement. The reason we wanted to look into the matter was because we thought it would be really easy!!! Turns out we were wrong.. hehe 😂

The first thing we did was figuring out what tables were accessible in the CDS integration. At the time of reading the blog, the number of entities was not a lot. The ones that I needed were not there. The complete list of tables that write directly to CDS can be found here:
https://docs.microsoft.com/en-us/dynamics365/human-resources/hr-developer-entities

A lot of fields available, but just not the ones regarding competency.

What to do?!?!? Docs to the rescue !!

Thanks to a link from DOC’s I learned that Finance and Operations has a link to export data. You can choose whatever dataset you want, and export it to file. This has actually nothing to do with HR, but is a feature from Finance and Operations.

https://docs.microsoft.com/en-us/dynamics365/human-resources/hr-admin-integration-recurring-data-export

So I followed the blog but I used Flow instead of Logic Apps.

First start off by creating an export function in HR. Whenever this is called, it will answer your call with a file.

Export Workers data project

The flow looks like the logic app in structure, but I do a little extra in the end to extract the .zip file to excel.

The first hard part was actually finding the URL for HR. If you ask me it’s quite hidden. I had to have some help from Malin to figure out what my URL to the environment was.

The “Export Workers” has to be identical to the name of the export package. Then you have to decide what the name of the file I wanted to export was.

{
"definitionGroupId":"Export Workers",
"packageName":"talent_package.zip",
"executionId":"",
"reExecute":false,
"legalEntityId":"USMF"
}

The delay is there because the service can sometimes use a little time with the response. Just let it work:)

This part of the flow was just to see if .zip file had been completed. When it was complete, we could get the actual package.

At this point I had absolutely no idea what I was doing, but it was working. The body of the HTTP GET function returned a .zip file. This I could create directly in a OneDrive connector.

The last step was then to extract the file from the .zip, and voila. I now had an automated Excel export from Dynamics HR.

For the last part I could simply connect a DataFlow for importing to Dynamics:)

Was there even a point to this?

Well.. Yes, and no.. The positive thing about this was learning that Finance and Operations has an export function that I could use for extremely simple integrations. This I might be able to use at some later timer.

Later Malin told me that they had released the Virtual entities for Dynamics HR and CDS. You can read more about these here:
https://appsource.microsoft.com/en-us/product/dynamics-365/mscrm.d365hr_virtual_entity?tab=Overview
and
https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HfPD

I don’t know enough about the virtual entities yet, but I will have a go at that soon to see how it works with using the HR data within Dynamics.

The end goal is still to match competencies from HR to Field Service Dynamics 👍

Dynamics 365 – Rich text editor

Thanks to my good friend Rasmus he pointed out that wave 2 is announcing a PCF component for rich text editing. I had to try it out see what it actually was.

After adding the multiple lines field to the form, I added a few examples. Regular Text, Color Text, link to a site, and image via Copy/Paste

Definitely cool to see that we now can store Ritch Text with images in CRM. First copy/paste images to Emails, and then copy/paste images to regular forms. Getting more and more flexible every day!:)

How is it stored?

First off I thought it might store the data of image directly in the multiple lines of text as Base64, but to my surprise it doesn’t.

Is it storing the image in Azure Blob storage? Would love to learn more about this 🙂

<div data-wrapper="true" style="font-size:14px;font-family:'Segoe UI','Helvetica Neue',sans-serif;"> 

<div>Regular text</div>

<div><span style="background-color:#27ae60;">Color Text</span></div>

<div><a href="https://crmkeeper.com">Link</a></div>

<div>&nbsp;</div>

<div>Image</div> <div><img height="131" loading="lazy" src="/api/data/v9.0/msdyn_richtextfiles(23cdb641-d10c-eb11-a813-000d3ab395a9)/msdyn_imageblob/$value?size=full" width="157"></div> </div>

Dataverse for teams DV4T – Exploring Data Migration

I will keep calling it CDS Lite in the smallest hope that this one day might get the name CDS Lite. It just makes perfect sense to give it a name like this. Allright, enough about the hope for a better naming future…

I know the system is only in preview and many things will change in the next months, but I thought I would give it a go at importing data from CDS to CDS Lite. I had no idea if this was possible, but I was curious to see how it would react.

At the moment there is no connecting to the database through normal tools I have had before

  1. XRM Toolbox
  2. SSIS – KingsWaySoft
  3. Excel Import

Every time I try to connect I get the response saying that I have to use an Oauth method to connect.

PS: Notice how Microsoft has put “LITE” in the error message? It’s a small hope, but it’s a hope 😂

So the only way I found out how to insert data in the Preview was via flow

Flow to the rescue

I am pretty sure that the current doc recommends using Flow for data to CDS Lite (Oakdale), but I am sure this will change in the future somehow. How else are you going to fill 2 million records (estimates from docs on the 2 gig DB size). Flow is not intended for data migration, but I had to use the tools I had available at the time 🙂

First I imported 5694 accounts to my CDS database (top row headings)

The CDS Lite (Oakdale) was empty for accounts, and only included the following columns.

The flow was a little tricky. I actually had to create the flow from the CDS Lite (Oakdale) environment. It did not work otherwise. Current environment connector was fine for writing to CDS – Lite (Oakdale).

The flow will only do 512 records if you don’t open up the paging. Go to settings of the connector and increase the threshold.

I started the flow and patiently waited.

27 minutes later the accounts had been migrated with a warning. I could only find 1 error in the migration, so I consider that a success. All of my accounts were now over to the CDS Lite (Oakdale).

What next

This is all just a beginning of a longer journey for the CDS Lite (Oakdale). Everything is in preview, so there are many things that will change once this is released, and a few years from now. I just wanted to see how to get data in to the system. The reason why might be more clear in a later post where I describe what I see in a future customer scenario for CDS and CDS Lite.

Dynamics 365 Customer Service in 1 hour or less ⏰

Did you know that it is possible to setup a fully functional Customer Service installation in less than one hour?

I am proud to present all 3 parts
1. The community solution – Download
2. The Video for installation
3. The Video for demonstrating the product

I have put a lot of hours into this configuration, because I wanted other consultants to see how nice and easy Customer Service could be delivered. I have been using countless hours every time I wanted to show a new demo, so I finally put in the extra work to make it complete. This will hopefully save you a LOT of work next time you want to demo Customer Service, or deliver a good solution to your customer.

1. Download

Go get my free community solution for Customer Service.

https://github.com/thomassandsor/CustomerService

2. Install the solution

See how install the solution within one hour

3. Demo the solution

This is a showcase of how I would demo the solution. Find your own pitch and make yourself comfortable with it. Just make sure you have good demo data!! Good Luck 😀

RegardingObjectID Type fix – Flow

How to fix the RegardingObjectID Type field in FLOW

When working with the Current Environment Connector (CDS), you have 2 options for a lookup (Value and Type). For some strange reason only one of them seems to work for me.

The Value is obviously the GUID, and the Type is “incidents, accounts, contacts, opportunities etc”.

Let’s look at the data:

As you see I have values for the GUID and the Type of regardingobjectid.

When adding them to the Compose the TYPE returns blank every time.

Peek kode

{    “inputs”: “@{triggerOutputs()?[‘body/_regardingobjectid_value’]}\n@{triggerOutputs()?[‘body/_regardingobjectid_value@Microsoft.Dynamics.CRM.lookuplogicalname‘]}”}

Flow is referencing the TYPE of lookup in a way that returned NULL every time.

Solution

Manually enter the expression:
triggerOutputs()?[‘body/_regardingobjectid_type’] <- change the VALUE with TYPE

Dynamics 365 Email to case – The New Way

Microsoft released a new way to do automatic record creation a few months ago, but I never got around to ckeck it out before now.

The most obvious reason for the new release is creating something that is possible use within new UI. Therefore you can only find this in the customer service app at the moment.

Heads up

At the current moment the new approach doesn’t work, for a contact that is known by the system with an account. I am working with support help them understand the error with the flow. Will update the post when they fix the error. This means that the new solution only works when the contact is not connected to a parent account.

Old

In the “old” days we created everything via settings in the navigation. You start off creating a new record and link it to a queue you want to listen to. I prefered the following setup, and I have explained why in my other post regarding Customer Service

When you created the role for creation of case, it would use the following standard setup. Notice that the contact here would be set if account and contact were known. Contact would be contact, and account would be customer.

New

The new way of doing things is a lot like the old, but there are some differences.

Don’t get fooled by the name in queue to monitor. This is a regular email queue, but I gave it the name “flow”. The first thing we have to create is a new rule for the queue.

Here is where we see the first major difference. The condition for creation seems to use the same visuals as the new advanced find.

At the bottom you choose the rule and click create. This brings you over to Microsoft flow. Instead of the old WF, MS autocreares a new flow for you.

Just like the old flow, Microsoft didn’t want to you touch the details of the flow.

The old flow filled out the contact and customer fields, while the new one for some reason doesn’t (yet). I will try to work with MS on this also.

What to do next?

I honestly don’t know when they expect all of these rules to be transfered over, but I guess it will have to be done in the future when they try to sunset the old WorkFlows.

In the meanwhile I hope they fix the flow, so that it works as expected:)

Dynamics Customer Service form – Simple yet functional

This post is a part of a series of posts for Customer Service. The complete GUIDE can be found here

Before we complete it all I will clean the form a bit. The demo I will be focusing on is the B2B space. If you use the B2C part of support, you might not need any of this. Just continue to the next post:)

Before

It looks good out of the box, but it doesn’t provide a great amount of value.

  1. Business Process Flow on the top of this case is close to useless. It only indicates that you can have a process that looks nice. The steps don’t make sense, and as always with BPF…. You can’t create a step without a mandatory field present. 😒
  2. The first quick view shows a view of the company information. It takes up a lot of space, and in my opinion displays relatively irrelevant information about the customer. If you want quick info about customer, you can “hover over” the customer field.
  3. The right side is setup with reference panels. I wrote an article about loving them a while back, but Customers seem to prefer normal subgrids when actually navigating. Recent Cases is actually just a quick view, and that doesn’t do us much good. Try opening one of the cases, and you won’t see much. We will have to clean this up for it to actually work. We will also remove entitlements, because it’s too much of a hassle in a simple Customer Service scenario.
  4. I hide the tabs on top for now, because I simply don’t need them. If at one point you want to expand, you can reintroduce them.
  5. Subjects.. Are they staying or going. I am not sure what the future holds for this. It’s quite confusing. At some parts of history it seemed very central for Customer Service and Knowledge Articles. Then Categories came along. I would like some clear information what is what. For simplicity I will use subjects for demo. Personally not to happy about it.
  6. The customer field here is as confusing at the customer field was originally for Opportunity. If you are using Customer Service for B2B this has to be linked to an account and not contact. If you use B2C I guess you can just leave it and never really see it as a problem. In my cases I always have to change this to store Account, and then use the Contact field for Contact. Opportunity has managed to change from Customer field to Account & Contact. Don’t see why Case can’t do the same…

Cleanup

1. BPF – Business Process Flow removal

Start off by deactivating the BPF from customization. Then we have to delete all records of the process running. Open Advanced Find, and look for the table that has the same name as the Business Process Flow

PS: If you happen to have a demo setup, it might also include Field Service demo data. Then you have to repeat the process for “Case to Work Order Business Process”.

2. Quick View

Does not give any extra added value. I am replacing this function with a similar value, but different way of working. I open in form editor and remove.

3. Remove Entitlements in Reference Panel

First make sure to remove the Entitlements

Then make sure that the view is set to Recent Cases. Don’t trust that the name of the subgrid is correct. You actually have to make sure that you have the Recent Cases view here.

Create a new section for Recent Cases, and move the Recent Cases out of the Reference Panel. This way we can actually click on a case and open it from the Quick View.

4. Hide tabs

Just hide it. Don’t need it for now

5. Fix Customer field – B2B scenario

In the B2B scenario we need to make a few adjustments to the customer field, and add some onload logic for the agent. In the B2B scenario we need the customer data to be good, and therefore we can’t accept cases where the contact is unknown.

Check this article on how to fix the Customer/Contact fields

6. Subject

Remove unwanted subjects.

Result

Let’s just agree that this doesn’t look very exciting, but it does the job. It does the job quite well!

This is how I want it to look. I have hidden a bunch of components that Microsoft includes as standard Customer Service. Normally it is just a little too much. This will lead to an easy training and a simple customer service view for the agent.

Removing the Business process flow we loose a lot of colors, but this is for actual production. Not a fancy demo to excite someone buying.