Dynamics 365 Case Cascading Rules

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

The OOTB cascading rules for Case are not optimal for the setup that I like to use. I will try to explain why, and at the same time show what I feel needs to be done for it to work better. Keyword is Parental Relationships that we have to STOP. If you wonder what I am talking about, below is the timeline from Case displaying activities.

What happens when you have parental relationship on, and you assign the case to another user, all of the related entities like Task, Emai, Phone Call etc will also be reassigned. Normally you you could ask why that would matter, but for CASE that is a real issue.

You also happen to change the “Modified On” data for the records leaving them potentially unsorted in a manner that will confuse the service agents. This applies to all activities, even the ones that have been closed as complete.

There are MANY other ways to sort activities, but Emails are almost always historical activities and happen at a given time. Tasks and Phone calls can be in the future. This is why I like modified on date, to keep a sort of chronological order. If possible the best sorting would be chronological order for completed activities, and due date sorted on top of that for open activities. Don’t think that is possible unfortunately.

Configuration

As you can see, the default behavior is Parental for Email, Phonecall and Task. I could have chosen more, but these are the entities I use the most in Case.

Do the following for all 3 relationships. Select Configurable Cascading and then Cascade None for the Assign. Microsoft DOCS cascading – If you wan to see more about Cascading Rules.

Why not NEW UI Config?

At the time of writing this blog, the configuration still isn’t possible for relationships. If you are familiar with configuring, the main point is just showing what I need to do for Dynamics.

Dynamics 365 – Email to Case

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

The new name for this function is now called “Automatic Record Creation and Update Rules”. You find it under Service Management in the settings area.

Setup

I will try to explain why I believe this is the proper way to set it up, even though many of you probably will have a different preference.

Queue:
Choose the queue that we created in the previous post

Create Cases for activities associated with a resolved case:
The purpose of this field is to create a new Case when you receive an email on an old existing case.

I believe this setting together with 1 minute is the correct setting. Many will argue that I m wrong, but there is a reason why. Dynamics doesn’t have an automatic case reopen when an email is received on a closed case (A mystery why they haven’t done anything about it yet). Without this feature the email would just land on the closed case and never bee seen. With this setup a new case will be created once you receive an email for a case that is closed.

Certain support metrics work against their purpose. Just think about the good old
“Number of cases closed in a day”
“Time Case was open before closed”

In the end, the customer wants to be treated well, and feel confident that the organizations can help with the issue. I try to educate that the case close confirmation should be done for every case.

With the current setting, emails will create Cases that Customer Service will be able to follow up. Sure you might get more cases, but you won’t loose any. A case not answered might be a customer lost!

Email Template:
The template provided here is a nice start. Do what you need for changes. Notice that the case number here is included in the subject, and this is something we want to use later on also! Stay tuned for later post:)

Creating the record

Once you choose CASE as entity to create, the system will provide with default values that are fine.

Email Router Tracking – Smart Matching vs Tracking Token

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

I am sure there are equally many opinions about the best practice here as there are for the Managed vs UnManaged discussion for solutions in Dynamics. I have my preference, and I hope it all makes sense when I am done with my blog series about Customer Service:)

Why I hate Tracking Token

Why someone at Microsoft thought this was a smart number to add to an email is beyond anything i can understand. Every support system I have tried uses this type of functionality in emails, but the number is always the same as the case number. Microsoft managed to choose this logic🤢

Struktur for sporingstoken

While this gives the system a fairly unique number to work with, the number itself is completely useless for reference. If a customer calls inn regarding this case number you will not get many hits in the Case search. This number is not even unique pr case. It will change based on who is answering the Case, just to confuse the users even more.

This number should be the case number, and that is what I will fix in a later post.

Why I hate Smart Matching

So Smart Matching is supposed enables us to not use Tracking Token…. Or does it? Smart Matching tries to understand the subject, to/from etc etc to figure out where to track this email. Does this process fail? You bet your sweet ass it does:) If you have a customer sending a new email with the same subject but for 2 completely different matters, it might connect it to the wrong record.

Is there a better solution?

Some prefer to combine the two options. I still don’t want the tracking token, so I have a slightly different approach. I will show you in a later post in the series, where I discuss how I handle the email subject.

Settings

Back to the actual post.

Lets open the System Settings to see what I choose. You can also go via https://admin.powerplatform.microsoft.com to navigate via new setup, but for some reason Microsoft doesn’t auto fill out the numbers below. I still do this old school.

Filter: ^[\s]([\w]+\s?:[\s])+
Max number of subject: 20
Min diff: 0
Min Number: 2

Other Bloggers

You can head on over to CRM Ninja and Neil Parkhurst to see their opinions about the matter. Neil explains what is possible, and CRM Ninja talks about a certain case he had. https://neilparkhurst.com/2016/11/19/mb2-710-track-and-correlate-email/
https://dynamicsninja.blog/2019/04/18/when-smart-matching-became-dumb-matching/

Dynamics 365 QUEUE setup with shared mailbox

This post is a part of a series of posts for Customer Service. The complete GUIDE can be found here
I assume you have a Dynamics Environment at this point.

Exchange

Open https://admin.microsoft.com – login with the credentials you got from the trial, or make sure you are a Global Admin to complete the following tasks.

You now have a shared mailbox in Exchange. We will be using this email address to configure a queue in Dynamics Customer Service.

Dynamics 365 – Queue

If you don’t remember the address to your dynamics environment, you can always find your environments at https://admin.powerplatform.microsoft.com <- click … and then open.

Locate the queue setup from Dynamics Customer Service Hub. This is where we create a new queue for Support@. For the owner we choose Customer Service Team.

Click Save, and the system will automatically give you a new mailbox.

To configure the mailbox, we need to navigate to Advanced Settings.

Email Configure

Open Mailboxes and find Support@ that we created.

Your picture should look something like below. Following order
1. Approve Email – You must be global admin to do so.
2. Test & Enable Mailbox
3. Follow progress in Alerts

If you have done it right, you should see the following. This process can be tricky, and there are lots of great guides out there that might cover this better. Connecting Exchange with Dynamics it typically really easy, or really hard.

Lets se if it works

So after waiting for a few minutes, I now see the email in the queue 🙂

Dynamics Customer Service Autonumber

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

Why on earth did anyone think that this was a reasonable number to include in Customer Service cases?

This number is way to hard to relate to, and too hard to explain why came to be. It has absolutely nothing to do with the Email Tracking Token, leaving the customer utterly confused when talking about numbers.

Might be a little hard to see here, but I open my solution from https://make.powerapps.com and select the case entity. In the Case entity I have the default Case Number field. When choosing to edit this field I simplify the autonumber. This will make even more sense later on.

A larger image

All of this will be included in my Customer Service Solution later on in the guide.

Dynamics 365 Customer Service Team

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

I prefer to define a team with a security role when i create Customer Service solutions. The idea is that the incoming case is assigned to the Customer Service team. This way it is clear to see what cases are new and not yet assigned.

NB! Reassigning Cases to a new user Out Of The Box is not great. The cascading rules changes the sorting of emails because of modified on dates. I will therefore include a post on how to modify the cascading rules.

Security Role

Open Dynamics in any app and find the Advanced Settings

This will open up the good old Dynamics Setup. This is where we can access the security model.

We need to create a security role for the team.

These are the entities that I needed to make my scenario work. It is a very minimal role, but I won’t be needing more than this for Customer Service Team.

Team

Open teams and create a new team. I will call mine Customer Service. Make sure you assign the security role to the newly created team.

Dynamics APP for Outlook has changed… But why?

I know that change online is imminent, and is continuous. I don’t mind this, but i do mind how it’s done. I would never have noticed this if I had not created a new demo. It is a little annoying that the functionality introduced can’t be put to use in my existing environment.

This rant is just because I like to keep things vanilla as long as possible. The changes we see here make it even more clear that the platform where I work every day still is an open platform, and not at all a product. If certain things would act more like a product the changes would apply to everyone, and behave the same way. There will always be pro’s and con’s for Platform VS Product..

The following is provided from the documentation:
https://docs.microsoft.com/en-us/dynamics365/outlook-app/customize-the-track-regarding-card

Not sure when it happened, but the 1 form App for Outlook configuration has now become 2.

OLD

Form 1: App for Outlook Contact Card

NEW

Form 2: App for Outlook Contact Quick View – NEW

Why does this matter?

I am not sure yet, and that is the problem. Why split them up in the first place? Another extremely interesting thing about the new form is magic in the background that we can’t manipulate or recreate.

The new CASE subgrid looks like this

Not sure what this name means, but its obviously something they have defined after converting the old forms to the new forms.

Lets have a look why this is wierd:

The following picture is in a new untouched demo. The subgrids should have:
Account Name
Next Activity (Subgrid)
Last Activity (Subgrid)
Opportunity (Subgrid) – Showing
Case (Subgrid)

But as you can see, it only shows content where content is present. If I add a case to the contact Thomas Outlook, it will dynamically show cases in App for Outlook.

This is a great feature, so why am I complaining about it? Well, i can’t reproduce it. That’s why!

This is the same setup in config, but Cases are constantly showing here. I tried every step in config to recreate the function, but no luck..

I even tried importing a UN-managed and Managed solution from the vanilla environment to my existing production without any luck.

Did I not get the memo on this change by any chance? 🙂

Dynamics 365 Customer Service Trial

There are many guides out there for this exact step. I only recreated this so all the content is on one page under my control.

In Private

Open a browser in private mode

Open Dynamics 365 Trials

Click the “Sign up here” !!

If you are a customer, click “no, continue signing up”. If you are a partner you should look for different places to create demos. Head on over to CDX Expereiences

It doesn’t matter what you choose here. If you ever turn this into production, the domain name will be something you can change at a later time.

Continue proving you are not a robot, and then wait for everything to finish up.

Start the setup when it’s done. Doesn’t matter what you choose in your setup of apps. It usually installs everything anyway. Eventually you will end up here, and you can open Customer Service HUB:

We have now completed the first step, and created a new trial for Customer Service.

Adding Exchange

With out Exchange added to your trial we won’t get far. Open https://admin.microsoft.com

Start “Get Free Trial”, and click the next next etc etc.

Back in the portal you want to open users, and locate your user. Choose the Microsoft E3 subscription and attach this to your contact. Remember to click “SAVE CHANGES” in the bottom when you are done.

SSIS – Importing 94,883 contacts to Dynamics/CDS

This is a quick guide to the simplest form of SSIS import. I will not cover all of the amazing ETL possibilities you can do with SSIS, because I am not the correct person to set this up:)

The background for this post is also trying to learn the differences between DataFlow and SSIS in regards to API stats online.

The setup

  1. Install BIDS LINK HERE – If you don’t have visual studio
  2. Install KingswaySoft LINK HERE
  3. Get Excel File with contacts (94,883)

The structure is very simple here. Get file, add one data column and then import to dynamics.

The flat file I am getting is a simple .csv file and you see the following columns.

Next step is a bit odd, but that’s how lookups work in SSIS. I have to create a new column that is called “account”, because i have to define the lookup type. This Derived Column does nothing else.

In the end we connect to Dynamics via the KingswaySoft connector.

I have chosen to use alternate keys. If you wonder what this is, look at my previous post about alternate keys and DataFlow.

Then I click on columns to map the fields

For the lookup we connect to ParentCustomer. Once you have mapped the field, i can choose to what field to match on the Account. I open the “…” and here I choose the primary key for account as matching. You could use whatever you want, but I have created alternate key for account on AccoundNumber.

The result

I ran this test during the night time at the same time as DataFlow. SSIS used 1 hour and 22 minutes for the exact same file, and that is fine by me. There are so many different variables in online load times, that 20 minutes doesn’t really prove anything.

What about the API?

I wrote a post about DataFlow and API. Mostly because I was curious about the analytics within CDS. I don’t understand the numbers i see, so I have written to Support about the numbers. What I heard back was because of the batch of records being entered, this should be about right…

If this is correct, SSIS is a lot more efficient in the API calls to Dynamics, but took more time in this one single test i performed.

SSIS = 3,501 API Calls
DataFlow = 13,544 API Calls

Some good tips from the pros

https://twitter.com/CrmKeeper/status/1242722929248526338

Have you checked you storage lately?

I was wondering why my storage had spiked lately, especially because I hadn’t imported any data to dynamics.

Dynamics 365 Sales
1 Javascript on opportunity
1 Button custom on account
Dynamics Portals installed
Dynamics Marketing installed

I would say this is a pretty standard CRM without heavy customizations. Portals and Dynamics Marketing are not standard for CRM installations yet, but that is not important.

https://admin.powerplatform.microsoft.com – Check capacity and storage

2 tables stand out, and they are both tables that I can’t do anything about.
RibbonClientMetadataBase
WebResourceBase

I can’t control the content of these tables, but they are above 3GB! I personally don’t feel it is reasonable that these tables are included in the storage count. If you feel the same way, please help vote this up:)

VOTE

https://experience.dynamics.com/ideas/idea/?ideaid=2d9d1f2f-e56c-ea11-b698-0003ff68dcfc