Data Cloud / Architects

Salesforce Data Cloud Contact Point Mapping Best Practices

By Mehmet Orun

Understanding Batch Profile Unification in Salesforce Data Cloud is crucial for obtaining a full view of your customers across diverse data sources. As the most expensive task in Data Cloud, meticulous planning and execution of the data-matching process is essential to prevent costly mistakes.

In this article, I will shed light on the importance of treating Data Kits as accelerators rather than a one-size-fits-all solution. I’ll also discuss best practices for how to customize Data Stream definitions to help manage contact points.

Batch Profile Unification Design is Important (And Expensive) 

In Salesforce Data Cloud, batch profile unification (matching) is a critical task. It allows organizations to have a comprehensive view of each customer across various data sources.

Batch profile unification is also the most expensive Data Cloud task, costing 100K credits per million records. Mistakes made in the design phase can lead to costly and time-consuming reiterations. This, in turn, affects budget allocations, project timelines, and, ultimately, the success of business use cases. It underscores the need for meticulous planning and execution in data-matching processes.

Data Cloud Data Kits are Accelerators (Not Conclusive Designs)

Data Cloud’s Data Kits facilitate data stream creation and initial mapping, but they do not cover all business requirements. Think of these kits as accelerators rather than all-encompassing solutions. 

To meet precise business objectives, organizations need to assess their unique data needs carefully. To achieve success, you must adequately prepare and map source fields to Data Model Objects (DMOs).

Data Kits Can Oversimplify Contact Point Mapping Requirements

The Data Kit mapping of Contact Point <Type> ID fields is the Contact ID. However, the Contact object has multiple phone numbers, and custom email fields (in my experience).

Out-of-the-box Data Kit mappings are insufficient for enterprise needs. 

This is because, originally, Salesforce Data Cloud (previously known as Customer 360 Audiences) focused on marketing use cases. In platforms like Marketing Cloud, a single contact point was essential for subscriber models. Thus, the Data Kit was built to support a single email or SMS-supporting phone number. 

If you want reliable, reconciled data for each contact point in your source object, consider ditching the out-of-the-box Data Kit mapping.

How to Manage Contact Points Distinctly in Data Cloud

When you want to maintain each contact point for a person distinctly, you need clear contact point identifiers in the source. This can be easily done by creating formula fields in Data Cloud Data Stream Definitions.

1. Identify Reliable Contact Point Fields

To start, define your scope by determining which source/DLO contact point fields have reliable data. Native data profiling solutions make this easy by providing field population rate statistics. 

2. Create a Formula Field for Each Contact Point

In the Data Streams tab, create a new formula field for each external ID field you identified in the previous step. Use the DLO field name as the prefix to capture more context and help you distinguish between formula fields. Use simple concatenation logic with the Record ID field.

Create composite keys for Contact Point IDs in Data Cloud.

Test your formula field, and then verify the content using Data Explorer. Remember, you’ll need to customize which fields are visible as you are limited to ten fields and 100 records in this preview. Sort by contact point in descending order to view the newly created composite keys and their data content.

3. Decide How to Map Your Source Contact Point Fields to the Contact Point DMOs

This step has two distinct options: map directly to the DMO or use an interim DLO. To decide which is right for your org, consider the trade-offs. Mapping to the DMO will save on credit consumption, but you will lose context about the contact point. Using an interim DLO will allow you to maintain information that may be essential.

For example, for personalized marketing use cases, it is insufficient to normalize emails. Given data privacy laws, you must understand whether you have consent to send messages to each address. Depending on the campaign, it can also be important to distinguish between personal and business email addresses or primary and secondary emails.

Option 1: Map only the formula field and the contact point field from the source DLO to the target DMO.  

Pros: You eliminate an interim DLO and associated querying costs to create it.

Cons: You cannot capture additional information about the contact point. The DMO will attempt to query records (and consume credits) even if the contact point field for that record is empty. 

Contact Point Mapping Option 1: Map composite key from source DLO to DMO.

Option 2: Create an interim DLO, so you can track additional information about your contact point and only act on contact point data that is relevant and reliable. Do not forget to add the custom DLOs into your Data Space and associated permission sets.

Pros: You can maintain all additional information about the contact point. The interim DLO will contain populated contact point fields only, making the DMO query more efficient. This also allows you to clean and standardize data before activating it.

Cons: You may consume additional credits from querying the first-level DLO.

I recommend the interim DLO approach because it mitigates data loss. Also, it’s highly likely that you have bad or inconsistent field values in your data – the only way to clean/standardize these values is with an interim DLO.

Contact Point Mapping Option 2: Create an Interium DLO and be mindful of Data Cloud’s expected data types.

Regardless of the option you choose, make sure to refer to the DMO data model reference guide and specify the fields whose content matters. Ensure you adhere to the same data types as the target DMO. In CRM, we expect indicators or flags to be booleans or checkboxes.

However, Data Cloud instead represents many of these fields as text data types. Choosing the wrong data types may cause you to waste data transform credits as you will need to correct the data types before mapping the fields to the target DMO.

READ MORE: What Are the 3 Data Stream Categories in Data Cloud?

4. Populate Normalized Contact Points to the Interim DLO

If you took my advice in step three and created an interim DLO, it’s now time to create logic to populate it correctly. Use formula fields to populate values that should be carried forward, including explicit source names if you want to retain that information. Data Cloud should automatically track source DLO lineage. 

Batch transformation logic for populating interim DLO.

When populating the DLO, make sure to follow best practices for data quality:

  • Do scrub known fake field values during Contact Point data transformation. Number six on the list of the most common design mistakes is not realizing fake data points are in your source data. This can lead to incorrect profiles and subsequent reprocessing costs. You can use field value frequency from your DLO data profiling insights to identify incorrect or fake contact point values (e.g. noemail@noemail.com). 
  • Do consider maintaining known fake field values in a DLO and allowing your data steward to maintain the list. As you identify new incorrect values, the scrubbing operation can take place automatically.
  • Do not forget about consent fields. Make sure you represent consent consistently (e.g. standardize OptIn vs. HasOptedOut fields). 

5. Map Your DLO to Your DMO

Now that you have a unique ID for each of your contact point type instances, you can map your new DLOs to the target DMOs.  

Map Party ID – this should contain the Primary Key of the source DLO in the interim DLO to Party ID field in your DMO. Map the field-specific unique identifier to your Contact Point ID, and also map the additional values as appropriate.

Map interim DLO to DMO.

6. Create Identity Resolution Matching Rules Based on the Normalized Contact Point DLOs

You are now in the final stage. Now, you can configure match rules regardless of your starting point. Build complete profiles with distinct contact point instances, including purpose, consent, and other relevant details.

Do not forget about reconciliation rules, especially for consent. These should reflect your organization’s policies.

Summary

While Data Cloud Kits provide a useful starting point for data stream creation, they can’t address every business requirement – it’s crucial that you carefully assess your unique data needs and map source fields to Data Management Objects.

Hopefully, the steps outlined above will help you manage your contact points and achieve success in your data-driven initiatives.

The Author

Mehmet Orun

Mehmet is a Salesforce veteran and data management SME, having worked with Salesforce since 2005 as a customer, employee, practice lead, and partner. Now GM and Data Strategist for PeerNova, an ISV partner focused on data reliability, as well as Data Matters Global Community Leader.

Comments:

    Terry Cole
    September 06, 2024 5:03 pm
    Wow! This is just what I've been struggling with as a nonprofit. Good or bad, we do the "hard work" of trying to be omniscient and match all the data manually in every NPSP org in the world, keeping up with personal, business, and work emails, home, work, and mobile phones. It's impossible as you scale, but that's the assigned task for nonprofits. I believe Data Cloud offers a better way, but not unless we figure out how to map our contacts, so we do get identity resolution from matching phones and emails. Like it or not, a human may be the best source of knowledge. Ideally, it might have been separate SF records (email contact points and phone contact points) so that we never got into this custom field stuff in the first place. I remain uncertain how NP should best use this to scale and take away the need for the all-knowing individuals to manage to keep all the contact points fresh for constituents. It's costly, slow and error prone and simple doesn't scale. Anyway... thinking about this implementation from the blog or actually unraveling it at the source and creating a phone and email custom object (like it should have been for good architecture design from the beginning) and attaching them to contacts in the original database. Then humans have a way to add mappings when they discover them, Data Cloud has a way to add mappings back for benefit of humans when they get noticed due to new info popping up in a register, and we can start ingesting all the databases that would benefit from being tied to contacts. Every nonprofit has way more static databases than they think. I made a list and think it's something like 43 databases of never-changing data in my relatively small org (~1M$/yr 10 people) : donations (actually a conglomerate of static data tables--check registers, credit card registers, Paypal registers, venmo registers, meta registers--that we all struggle to munge into NPSP regularly), phone call registers, text registers, social media message registers, visitor logs, marketing logs, email logs, event attendance sheets, benefits recipient lists, volunteer logs, in-kind donor logs, and much, much more. We all think of needing to transform them before we enter, but really we should enter them in as natural a format as possible (preferably with electronic entry from the beginning with a mobile divide) and then let Data Cloud do the mapping and munging. It's a pretty radical overhaul but I think it has huge benefits.

Leave a Reply