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 – Team

The setup of this team will make more sense later on in the series. For now, just make sure you create a new Team.

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