Unify Your Data in Customer Insights

Follow this series to explore Dynamics 365 Customer Insights.
For an overview of Customer Insights, read the first post in the series here. The second post covers the topic of getting started and connecting your data to CI and can be found here.

After bringing in your data and making sure that the types of data have been correctly categorized, the next step is to unify all your data sources. To do this, you need to tell Customer Insights what represents a customer across different systems, how they might be matched up, and then create a “merged” customer profile from your source data. Unifying your data consists of three steps:

  • Map – Map your ingested data to a common model (CDS entity, for example)
  • Match – Determine what consists of a match from one data source to another
  • Merge – Create a unified “customer” entity for use in CI

Let’s consider a scenario where we have brought in data from four different data sources. Two of them have the idea of a contact – one is an eCommerce system that has a Contact entity, and the other is a Loyalty Card tracking system which refers to them as customers. The other two data sources have data about purchases and activities.

I want to determine how many unique people we interact with across the two systems that have data that represents people, and find out how many of them are in both systems. Then I will use that data to understand them more deeply.

I’ll start by going to “Map” under the Unify area and select the two tables that represent people:

Select the tables from your ingested data that represent people or customers.

Mapping at this point is a simple exercise. The system is intelligent enough to make some assumptions about the data types that have been brought over. For example, it will automatically assign model types to the DateOfBirth field of Person.BirthDate and the PostCode field is identified as a Location.PostalCode type. The main thing I need to do is to let CI know which field from each source represents the primary key:

Setting the primary key for the customer tables

In the matching step, start with the data source that represents the most complete and accurate representation of your customers. In this example, our eCommerce system has the most customer information, and the loyalty program data source is more of a subset. We’ll include all the records from both systems so we have a union of both data sources to work with.

Matching starts by selecting the data source that has the most complete info about customers

If you have a third or fourth dataset that represents customers/contacts, you can add these. CI will first check for matches between the Primary table and Entity2 and come up with a list of matches. It will then take that list and check for matches in Entity 3. From the resulting list it will then check for further matches in Entity 4, and so on.

After establishing that hierarchy, we want to specify a rule to match each customer that appears in both systems. You can match based on one or more conditions. For example, we want to look at the full name and email across both systems to find matches. You have some options for each condition:

  • Precision: Exact will only match precise matches, high/medium/low give you increasing levels of fuzzy matches. If you are going to create a segment for a marketing list, you might choose a lower match precision where customer records from the two systems are matched with a lower level of confidence, but if you are going to run financial analyses, you might choose a higher precision.
  • Normalize: The normalize option can be used to ignore whitespace, capitalization, numerals, or to only match if the fields are of the same attribute type
Set up rules that will determine how matches will be made between your data sources

After creating the rule, it will run against your data and you can see a preview of the different matches based on the confidence level that CI has in the match it has determined.


The last step in unifying your data is to create a “merged” Contact record in CI. The purpose of merging is to create the meta-customer record that you will see in CI and to instruct CI on how to reconcile conflicting matches. This merged contact is represented in CI as a “Customer Card”, also referred to as a profile. A merged attribute is an attribute that exists in more than one data source and represents the same piece of data. For example, both of our data sources have a FirstName attribute, but the rank shows that we will give preference to the FirstName field from our eCommerce data source in case they differ.

Merged fields from different data sources can be ranked to determine which source is the “truth” for that field.
Next up

The end result of mapping, matching and merging will be a Customer Card representing each person’s profile in Customer Insights. In the next article, we’ll take a look at the Customer Cards and some of the other ways you can configure Customer Insights to gain deeper understanding of your customers.

Published by Matt Wittemann

Sr. Technology Specialist, Microsoft Former 16-time Microsoft MVP

One thought on “Unify Your Data in Customer Insights

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: