Merge Salesforce Data Cloud Unified Profiles

Bring Salesforce Data Cloud Identity Resolution benefits to Salesforce CRM

This post describes a step-by-step approach to merge Salesforce Data Cloud Unified Profiles in Salesforce CRM using standard Duplicate Management features and OneMerge.

Problem Statement

Data Cloud Identity Resolution uses Match Rules to identity duplicate Individuals (or Accounts) and Reconciliation Rules to determine which fields to propagate to the Unified Profile (Individual or Account). Data Cloud profile unification delivers the single view of the customer for segmentation and activation purposes however this view is not communicated back to Salesforce CRM where operational productivity may remain impacted by duplicate data and data fragmentation.


This gap can be bridged with real-time automation implemented with the following components:

  • A Custom Field added to the Salesforce Object to store the Data Cloud Unified Profile Identifier.
  • A Data Cloud Triggered Flow which updates Salesforce CRM records with the unified profile identifier.
  • A Salesforce Matching Rule which matches records with common identifiers.
  • A Salesforce Duplicate Rule which reports duplicates as Duplicate Record Sets.
  • OneMerge which merges the Duplicate Record Sets in real-time (or via scheduled job).

The end result is alignment of Salesforce CRM data with the Data Cloud unified profiles meaning marketing and operational activities share the same view of the customer.

A second Data Cloud related use case for OneMerge is the deduplication of Salesforce data prior to import to Data Cloud to reduce credit consumption incurred by ingestion and profile unification activities. This use case isn’t covered by this post.

Step 1 – Configuration: Custom Field

The first step is create a new Custom Field to hold the Data Cloud Unified Profile Identifier e.g. Contact Unified Individual Id or Account Unified Account Id. The screenshot below shows 2 example person accounts with a blank value in the Unified Individual Id field and also blank values in the OneMerge merge related fields.

Test data within Salesforce CRM

Step 2 – Configuration: Data Cloud Triggered Flow

The second step is to configure a Data Cloud Triggered Flow which executes on record create and copies the Data Cloud Unified Profile Identifier to the Salesforce CRM record. In the example shown in the screenshot below the flow is triggered on the Unified Link Object named Unified Link Individual (IndividualIdentityLink__dlm); this object is populated by Data Cloud Indentity Resolution for each source record mapped to the Individual DMO with the Source Record Id (Individual Id) and its parent Unified Profile Id (Unified Individual Id). As such, each record create event triggered for this object can be used to copy the Unified Profile Id to the Custom Field added at Step 1.

Please note, if the data model is Account rather than Individual (Contact, Lead etc.) then the respective DMO is named Unified Link Account 1 assuming that the Ruleset ID is 1.

Data Cloud Triggered Flow


Step 3 – Configuration: Salesforce Duplicate Management

The third step is to configure the standard Salesforce Duplicate Management features to report a Duplicate Record Set whenever records are updated with a Unified Profile Id that is a duplicate. To do this, firstly a custom Matching Rule is configured with simple logic to exact match Person Accounts (in this case) based on the field. Secondly, a Duplicate Rule is configured to report the duplicate (Allow on Edit = True and Operations on Edit = Report). A condition is also added to restrict execution of the Duplicate Rule to records with a populated Unified Individual Id. The screenshot below shows the configured Duplicate Rule.

Salesforce Duplicate Rule

Step 4 – Data Cloud Ingestion and Harmonisation

For this step refresh (or create and refresh) the respective Data Stream to enable ingestion of test data into the Data Cloud Data Lake Objects (DLO) and subsequent harmonisation to the Data Model Objects (DMO). Once the Data Stream has refreshed the Data Explorer or Query Editor features can be used to verify the existence of the test data. The screenshot below shows the Query Editor option.

Salesforce Data Cloud Query Editor showing ingested data

Step 5 – Data Cloud Identity Resolution

With the test data ingested and harmonised to the Data Model Objects, the final Data Cloud step is to run (or create and run) an Identity Resolution Ruleset (IRR). This IRR should be configured for the Individual Primary Data Model Object (or Account if the test data is Accounts). The IRR should specify the required matching rules to identify duplicates and the required reconciliation rules to determine how fields propagate to the unified profile.

The screenshots below show an example Identity Resolution Ruleset and the outcome of the identity resolution process i.e. the 2 test records have been identified as duplicates, a Unified Profile (Unified Individual) has been created and 2 records have been created in the Unified Link Individual object.

Salesforce Data Cloud Identity Resolution Ruleset

Salesforce Data Cloud Query Editor showing unified data

Step 6 – Validation: Flow and Duplicate Management

Following Identity Resolution, the Flow created at step 2 should copy the Unified Profile Id to the test records. The successful outcome is shown in the first screenshot below. The Duplicate Management configuration should then create a Duplicate Record Set to report the duplication. Again, the successful outcome is shown in the second screenshot below. The Duplicate Record Set object and its child object Duplicate Record Item are standard Salesforce objects populated by Duplicate Management, records in these object are processed by OneMerge automations and subsequently deleted.

Test data within Salesforce CRM with populated Unified Profile Identifier

Duplicate Record Set

Step 7 – Merge

OneMerge provides Real-time Merge and Scheduled Merge Job options. The screenshots below show the scheduling of a Merge Job which will merge the Duplicate Record Set shown in the prior step. Merge Ruleset processing applies the configured logic to control the selection of the master record for a group of identified duplicates; this could be the oldest record or highest quality as examples. Merge rule processing then applies the configured logic to control the propagation of field values to the master record (newest contact details, most frequent phone number, highest quality address as examples).

7a – Schedule the Merge Job

OneMerge Guided Setup - Schedule Merge Job

OneMerge Merge Job options

7b – Merge Job Results

OneMerge Merge Job results

7c – Outcome

OneMerge supports two merge models (termed engines); Platform Merge where the duplicates are deleted and Custom Merge where the duplicates are retained and linked to the Master Record. In this latter (retained) model it is typical that the duplicates are hidden from business users by the Salesforce Sharing Model but visible to administrators for technical reasons (audit requirements, integration etc.). The screenshot below shows the outcome of Custom Merge, the losing duplicate record is linked to the Master Record via the Master Account relationship field.

Test data within Salesforce CRM with populated merge fields

OneMerge provides data lineage features which show the changes made by the merge process over time and provide the means to restore field values or rollback merge events. The first screenshot below shows this functionality in the Salesforce UI. The second screenshot below shows a Merge Result record where a complete analysis of the decisions taken by the merge engine is captured.

OneMerge data lineage

OneMerge Merge Result


The preceding steps show how standard Salesforce features such as Flow and Duplicate Management can work in concert with OneMerge to deliver a fully automated alignment of profile data between Salesforce Data and Salesforce CRM. For additional information in regards to OneMerge please contact us at

Thanks for reading.

Filed under