Salesforce Data Cloud DLO vs DMO — Complete Guide 2026 | Module 04

Salesforce Data Cloud DLO vs DMO Complete Guide 2026 | Module 04
☁ Data Cloud Complete Guide — Module 04

DLO vs DMO Deep Dive
Complete Guide 2026

Master Data Lake Objects and Data Model Objects — the most tested topic in every Data Cloud interview and the foundation of every successful implementation

📅 Updated May 2026 ⏲ 20 min read 🎓 Beginner to Advanced 🆕 Module 4 of 15
Course Progress
Module 4 / 15
📍 Data Lake Object — Complete Deep Dive
Understanding exactly what a DLO is, what it contains and what it cannot do

A Data Lake Object (DLO) is the raw data staging area that Data Cloud automatically creates when a Data Stream runs for the first time. It is the first landing point for all data entering Data Cloud — and it holds that data exactly as it arrived from the source system, with no modification whatsoever.

The DLO schema perfectly mirrors the source. If your Salesforce CRM Contact object sends data with a field called MobilePhone, the DLO will have a field called MobilePhone. If your marketing platform sends a field called email_address, the DLO has email_address. The DLO preserves source field names, data types and even the source system's quirks — including inconsistencies, null values and formatting differences.

This is intentional. The DLO captures a faithful, unmodified snapshot of the source data. Any cleaning, standardization or transformation happens downstream in the harmonization layer — never in the DLO itself.

DLO PropertyValueWhy It Matters
Created byAutomatically by Data Cloud on first Data Stream runNo manual creation needed — it just appears
Schema sourceMirrors source system exactlyEvery source has its own DLO schema
Editable?No — read-only staging areaCannot change field names or data in DLO
Used for segmentation?No — DLOs are invisible to segmentsMust map to DMO before data is usable
DeduplicationPrimary Key based — newest record winsSame record arriving twice = upsert
Data qualityRaw — includes errors, nulls, inconsistenciesCleaning happens in Data Transforms
One DLO perEach Data Stream creates its own DLO10 Data Streams = 10 DLOs
RetentionConfigurable — 90 to 365 days typicallyOlder data auto-archived to save credits
💡 Real World Analogy

DLO is Like the Inbox of Your Email

When an email arrives in your inbox it lands exactly as the sender wrote it — even if it has typos, unusual formatting or is in a different language. Your inbox does not automatically fix spelling errors or translate the content. It just stores what arrived.

That is exactly what a DLO does. Data arrives from the source exactly as it was sent — with all its flaws, inconsistencies and source-system quirks. The DLO just holds it faithfully.

Just as you need to process an email — read it, categorize it, respond to it — you need to process DLO data by mapping it to a DMO before it becomes useful for segmentation and insights.

📍 Data Model Object — Complete Deep Dive
The harmonized, standardized heart of your Data Cloud implementation

A Data Model Object (DMO) is the standardized, harmonized version of your customer data — mapped to Salesforce's canonical data model. Where the DLO mirrors your source system, the DMO speaks Salesforce's universal language. Every DMO follows the same standard schema regardless of which source the data originally came from.

The DMO is where your data becomes truly useful. Segments filter on DMO fields. Calculated Insights query DMO data via SQL. Identity Resolution matches records from DMOs to build Unified Profiles. Activation reads profile attributes from DMOs. The DMO is the foundation of everything that makes Data Cloud powerful.

Salesforce provides a library of Standard DMOs — pre-built objects with standard field names that cover the most common customer data types. You map your DLO fields to these standard DMOs. When a standard DMO does not fit your business needs, you can create a Custom DMO with your own field definitions.

📍 Why DMOs Are The Key to Everything

Data from your CRM calls the email field Email. Your marketing platform calls it email_address. Your website calls it user_email. After mapping all three to the Contact Point Email DMO, they all have the same field name. Identity Resolution can now match records across these three sources on the same field. Without DMOs this cross-source matching would be impossible.

📍 DLO vs DMO — The Complete Comparison
The most asked Data Cloud question in interviews — answered definitively

📥 Data Lake Object (DLO)

  • Raw data exactly as received from source
  • Schema mirrors source system field names
  • Auto-created by Data Cloud — no manual setup
  • Read-only — cannot be edited or modified
  • Cannot be used directly in segments or insights
  • One DLO per Data Stream
  • Intermediate staging layer — temporary home for data
  • Data quality may be poor — nulls, inconsistencies
  • Field names come from source: MobilePhone, email_address
  • Exists even if no mapping has been done yet

🔧 Data Model Object (DMO)

  • Harmonized, standardized data in canonical schema
  • Schema follows Salesforce standard field names
  • Configured manually via field mapping from DLO
  • Can be queried via SQL for Calculated Insights
  • Used directly in segments, insights and activation
  • Multiple DLOs can map to the same DMO
  • Permanent home for customer data in Data Cloud
  • Data quality improved via Data Transforms before mapping
  • Field names are standard: ContactPointEmail, Individual
  • Only exists after field mapping is configured and run
📍 The Complete DLO to DMO Journey
📥
SOURCE DATA
CRM, Web, ERP
📦
DATA STREAM
Ingestion Pipeline
📜
DLO
Raw Staging
↓ Field Mapping + Data Transforms ↓
🔧
DMO
Harmonized Data
👥
UNIFIED PROFILE
Identity Resolution
🚀
SEGMENTS
Activation
📍 The Salesforce Canonical Data Model
The standardized schema that makes cross-source data work

The Canonical Data Model is Salesforce's pre-defined schema for organizing customer data in Data Cloud. It provides a library of standard DMOs with standard field names that represent the most common types of customer data across any industry.

The power of the canonical model is in its standardization. When you map a CRM Contact to the Individual DMO and a Marketing Cloud subscriber also to the Individual DMO — they now share the same field names. Identity Resolution can compare fields across both sources. Calculated Insights can aggregate across both. Segments can filter across both. Without a canonical model each source would remain siloed even after ingestion.

The canonical model is organized into Subject Areas — logical groupings of related DMOs. The Individual Subject Area contains all person-related objects. The Sales Order Subject Area contains all purchase-related objects. The Web and Mobile Subject Area contains behavioral event objects.

Subject AreaStandard DMOs IncludedCommon Use
IndividualIndividual, Unified Individual, Contact Point Email, Contact Point Phone, Contact Point Address, Contact Point ConsentCore customer identity and contact information
Sales OrdersSales Order, Sales Order Product, Product, Product CategoryPurchase history, transaction data, product catalog
Web and MobileWeb Cart, Web Cart Product, Web Page View, Mobile App EventWebsite and app behavioral events
Email EngagementEmail Engagement, Email Bounce, Email SendMarketing email interaction tracking
Cases and SupportCase, Case CommentCustomer service history and interactions
CampaignCampaign Member, Campaign, Marketing List MemberMarketing campaign participation and response
LoyaltyLoyalty Program Member, Loyalty LedgerLoyalty points, tiers and redemption history
📍 Every Standard DMO Explained
The DMOs you must know for interviews and implementations
👤
Individual
Profile
The core person or customer record. Contains name, demographics and personal attributes. Every other DMO links back to an Individual via the Individual ID field.
👥
Unified Individual
Profile
The merged, deduplicated customer record created by Identity Resolution. One Unified Individual per real-world customer. This is what segments filter on.
📧
Contact Point Email
Profile
All email addresses for a customer. One Individual can have multiple email records here — personal, work, old addresses. Primary matching field for Identity Resolution.
📞
Contact Point Phone
Profile
All phone numbers for a customer. Mobile, home, work numbers stored separately. Critical matching field alongside email in deterministic Identity Resolution rules.
🏠
Contact Point Address
Profile
Physical addresses — billing, shipping, home addresses. Used as secondary matching signal in probabilistic Identity Resolution and for location-based segmentation.
Contact Point Consent
Compliance
Opt-in and opt-out decisions per communication channel. Governs whether a customer is activated to email, SMS, push. Automatically applied during activation to enforce compliance.
🛍
Sales Order
Transactional
Individual purchase transactions — order date, total amount, currency, status. Links to Individual via Individual ID. Primary data source for LTV and purchase frequency Calculated Insights.
📴
Sales Order Product
Transactional
Line items within a Sales Order — which product was purchased, quantity and unit price. Links to both Sales Order and Product DMOs. Used for product affinity and category analysis.
🛠
Custom DMO
Custom
Business-specific objects you define yourself — Subscription DMO for SaaS companies, Loyalty Points DMO for retail, Vehicle DMO for automotive. Created when no standard DMO fits.
📍 DLO to DMO Mapping — Step by Step
The exact process of transforming raw DLO data into usable DMO data
01

Navigate to Data Streams and select your stream

In Data Cloud Setup, go to Data Streams. Find the Data Stream whose DLO you want to map. Click on it to open the stream settings. You will see the auto-generated DLO schema showing all the fields that arrived from the source.

02

Click Field Mapping

Inside the Data Stream settings, find the Field Mapping tab. This is where you connect DLO fields to DMO fields. Click New Mapping if no mapping exists yet, or edit an existing mapping to add or modify field connections.

03

Select the target DMO

Choose which DMO this DLO data should map to. For CRM Contact data, you would typically map to the Individual DMO and also to the Contact Point Email DMO and Contact Point Phone DMO. One DLO can map to multiple DMOs if the source object contains multiple types of data.

04

Map DLO fields to DMO fields

For each DMO field, select the corresponding DLO source field. For example, the DMO field First Name might map to the DLO field FirstName from CRM. The DMO field Email Address maps to the DLO field Email. Data Cloud provides suggestions based on field name similarity but you must verify each mapping is correct.

05

Set the Primary Key field

Every DMO mapping requires a Primary Key — the field that uniquely identifies each record within this DMO. For CRM Contact data this is typically the Salesforce Record ID. For Marketing Cloud subscriber data it is the Subscriber Key. If two records arrive with the same Primary Key, the newer record replaces the older one.

06

Map the Individual ID field — CRITICAL

The Individual ID field is what links each DMO record to a Unified Customer Profile. This is the most important field in the entire mapping. For CRM data, the Individual ID is typically the Contact ID or a custom field that identifies which customer this record belongs to. Without Individual ID mapped, the DMO data is completely orphaned and cannot be used in segmentation.

07

Set the Event Time field for engagement data

For engagement DMOs like Email Engagement, Web Cart and Mobile App events, you must map a timestamp field to the Event Time field in the DMO. This field tells Data Cloud when the event occurred and is required for time-based filtering in segments — such as customers who opened an email in the last 30 days.

08

Save mapping and trigger DMO refresh

Save the field mapping configuration. Data Cloud will automatically run a DMO refresh to populate the DMO with existing DLO data. Check the DMO data in Data Cloud Explorer to verify records are appearing correctly. Then run Identity Resolution to link new DMO records to Unified Profiles.

⚠️ Most Critical Interview Point

Individual ID is the most important field in any DLO to DMO mapping. Without it, records land in the DMO but are completely invisible to segments, Calculated Insights and Identity Resolution. Every mapping must have Individual ID configured. This is the single most common mistake in real Data Cloud implementations and the most common question in interviews.

📍 Critical Fields — Primary Key and Individual ID
The two fields that determine whether your mapping works or fails
FieldPrimary KeyIndividual ID
What it doesUniquely identifies each record within the DMOLinks each DMO record to a Unified Customer Profile
Used forDeduplication — same key = upsert, newer winsIdentity Resolution — connects data to the right customer
Required?Yes — every DMO mapping must have a Primary KeyYes — for profile and engagement data
CRM Contact exampleSalesforce Record ID (18-character ID)Contact ID linking to the customer record
Marketing Cloud exampleSubscriber KeyContact Key linking to CRM Contact
What happens without itDuplicate records overwrite incorrectly or create duplicatesRecords in DMO but orphaned — invisible to segments
Data typeMust be unique string or number per recordMust match the Individual ID format used across all DMOs
💡 Key Insight About Individual ID

The Individual ID must be consistent across all DMOs for the same customer. If CRM uses Contact ID 001XX000001 as the Individual ID and Marketing Cloud uses a completely different Subscriber Key — Identity Resolution cannot link them. This is why establishing a common customer identifier across source systems is one of the first architectural decisions in every Data Cloud project.

📍 When and How to Create Custom DMOs
When standard DMOs are not enough for your business requirements

When Do You Need a Custom DMO?

Standard DMOs cover the most common customer data types. But every business has unique data that does not fit neatly into a standard schema. A SaaS company has subscription data with billing cycles, seat counts and feature flags. An automotive company has vehicle ownership records. A healthcare company has appointment and treatment records. None of these have corresponding standard DMOs.

You create a Custom DMO when:

  • No standard DMO exists for your data type
  • A standard DMO exists but lacks required fields for your business
  • You need to combine data from multiple sources into a unified business-specific object
  • Your industry has specialized data — insurance policies, vehicle records, clinical trials

How to Create a Custom DMO

  • Step 1: Navigate to Data Cloud Setup → Data Model → Data Model Objects → New
  • Step 2: Define the DMO name and API name following your naming convention
  • Step 3: Select the DMO Category — Profile or Engagement
  • Step 4: Add fields — define field names, data types (Text, Number, Date, Boolean) and whether they are required
  • Step 5: Mark one field as Primary Key
  • Step 6: Add the Individual ID relationship field linking this DMO to Unified Individual
  • Step 7: Save the custom DMO
  • Step 8: Create a DLO to DMO field mapping pointing your Data Stream DLO to this custom DMO
✅ Best Practice

Before creating a Custom DMO, always check the full Salesforce canonical model library to confirm no standard DMO fits. Custom DMOs require more maintenance when Salesforce releases updates to the canonical model. Standard DMOs receive automatic updates. When in doubt — extend a standard DMO with custom fields rather than creating a completely new custom DMO.

📍 Real-World Mapping Examples
How actual implementations map DLOs to DMOs
🌎 Real-World DLO to DMO Mapping Examples
How Different Source Systems Map to Standard DMOs

⚡ Salesforce CRM Contact → Multiple DMOs

One CRM Contact DLO maps to three separate DMOs simultaneously. Contact core fields (FirstName, LastName, Birthdate, Title) map to the Individual DMO. The Email field maps to Contact Point Email DMO with the contact's Salesforce ID as the Individual ID. The Phone and MobilePhone fields map to Contact Point Phone DMO. The MailingCity, MailingState and MailingCountry fields map to Contact Point Address DMO. One DLO, four mappings, four DMOs populated from the same source record.

📧 Marketing Cloud Subscriber → Individual + Contact Point Email

Marketing Cloud sends SubscriberKey, EmailAddress, FirstName, LastName and Status. EmailAddress maps to Contact Point Email DMO. SubscriberKey is the Primary Key and also the Individual ID — but only if CRM and Marketing Cloud share the same key format. If not, a separate match rule in Identity Resolution handles the cross-system linking. Status (Active, Unsubscribed) maps to a custom field in the Individual DMO to track subscription status.

🛒 E-Commerce Order History → Sales Order DMO

The order system sends order_id, customer_id, order_date, total_amount, currency_code and status. order_id is the Primary Key. customer_id maps to Individual ID — linking each order to the customer's Unified Profile. order_date maps to the OrderedDate field in Sales Order DMO. total_amount maps to GrandTotalAmount. Each line item in the order is a separate record mapping to the Sales Order Product DMO with a relationship back to the Sales Order via order_id.

🌐 Website Behavioral Events → Web Cart DMO

The web SDK sends event_type (add_to_cart, remove_from_cart), session_id, customer_id, product_id, product_price and event_timestamp. event_type and session_id combined form the Primary Key. customer_id is the Individual ID. product_id maps to the Product field in Web Cart DMO. event_timestamp maps to the Event Time field — critical for enabling time-based segment filters like customers who abandoned cart in the last 2 hours. This enables the real-time abandoned cart trigger via Data Actions.

📍 Common DLO and DMO Mistakes
The errors that derail real implementations and how to avoid them

Mistake 1: Forgetting to map Individual ID

The single most common mistake. Data flows beautifully into the DLO. Mapping looks correct. DMO shows records. But segments return zero results and Identity Resolution cannot match profiles. The root cause is always Individual ID not mapped. Every DMO mapping for profile and engagement data must have Individual ID configured. Make it the first field you check in any troubleshooting scenario.

Mistake 2: Using a non-unique field as the Primary Key

Setting the Primary Key to a field that is not truly unique — like customer city, product category or order status. When two records have the same Primary Key, the newer one replaces the older one. Using a non-unique Primary Key causes legitimate records to silently overwrite each other. Always use the source system's genuine unique identifier — Salesforce ID, database primary key or UUID.

Mistake 3: Mapping one DLO to one DMO only

A CRM Contact contains person identity data AND contact point data AND potentially address data. Mapping it only to the Individual DMO means email and phone data never reaches Contact Point Email and Contact Point Phone DMOs. Identity Resolution then has no email or phone to match on. Always analyze the source object fully and create mappings to every relevant DMO the data should populate.

Mistake 4: Not mapping the Event Time field for engagement data

Engagement DMOs like Email Engagement and Web Cart require a timestamp field mapped to Event Time. Without it, segment filters using time-based criteria — emails opened in last 30 days, cart abandoned in last 2 hours — cannot function. The data exists but all time-based segments return zero results because Data Cloud does not know when the event occurred.

Mistake 5: Creating custom DMOs when standard DMOs would work

Teams unfamiliar with the canonical model create custom DMOs for data that standard DMOs handle perfectly. A custom Product DMO when the standard Product DMO exists. A custom Email DMO when Contact Point Email exists. Custom DMOs require more ongoing maintenance, miss automatic Salesforce updates and create unnecessary complexity. Always check the full standard DMO library before creating custom objects.

🧠 Quick Knowledge Check
Test your understanding of Module 04 — answers are in the content above!
Question 01
Data has successfully arrived in a DLO but is not appearing in any segment filters. What is the MOST LIKELY cause?
A. The Data Stream schedule is set to weekly
B. The DLO has not been mapped to a DMO and Individual ID has not been set
C. The segment filter criteria are incorrect
D. Identity Resolution has not been enabled
Question 02
A CRM Contact object with email, phone and address fields needs to be ingested. How many DMOs should it map to?
A. One — only the Individual DMO
B. Two — Individual and Contact Point Email
C. Four — Individual, Contact Point Email, Contact Point Phone, Contact Point Address
D. It depends on which fields the segment needs
Question 03
What is the purpose of the Primary Key field in a DLO to DMO mapping?
A. It links the DMO record to the Unified Customer Profile
B. It uniquely identifies each record and controls deduplication within the DMO
C. It determines which segment the customer belongs to
D. It sets the order in which records are processed
Question 04
A segment filtering on customers who abandoned their cart in the last 2 hours is returning zero results even though cart events exist in the Web Cart DMO. What is most likely missing?
A. Individual ID is not mapped
B. The Event Time field is not mapped in the Web Cart DMO
C. The cart events are using batch ingestion instead of streaming
D. The segment refresh type is set to Full instead of Real-time
Question 05
Which field in a DLO to DMO mapping connects the DMO record to the right Unified Customer Profile?
A. Primary Key
B. Record ID
C. Individual ID
D. Subject Area ID
✅ Answers

Q1: B — DLO not mapped to DMO and Individual ID not set | Q2: C — Four DMOs | Q3: B — Unique identifier for deduplication | Q4: B — Event Time field not mapped | Q5: C — Individual ID

🎤 Interview Questions for This Module
DLO and DMO questions that come up in real Data Cloud interviews
Q1
What is the difference between a DLO and a DMO in Salesforce Data Cloud?

A Data Lake Object is the raw staging area automatically created when a Data Stream runs. It holds data exactly as received from the source system — same field names, same data types, same inconsistencies. A DLO is read-only and cannot be used for segmentation, Calculated Insights or activation. It is the intermediate landing zone for incoming data. A Data Model Object is the harmonized, standardized version of that data mapped to Salesforce's canonical schema. After mapping DLO fields to a DMO, the data follows consistent field names regardless of source and becomes available for segments, insights, Identity Resolution and activation. The key difference is that DLO is raw and source-specific while DMO is clean and standardized. You cannot skip the DMO — all Data Cloud features work exclusively on DMO data.

One-Liner: "DLO is the raw data exactly as it arrived — source-specific, read-only, unusable for segments. DMO is the same data after mapping to the canonical schema — standardized, clean and the foundation for all Data Cloud features."
Q2
A customer tells you their Data Cloud data is not appearing in segments even though the Data Stream is running successfully. How do you diagnose this?

I would diagnose this in a sequential order. First I verify the Data Stream is actually delivering data by checking the DLO — if the DLO is empty, it is an ingestion problem not a mapping problem. If the DLO has data I move to field mapping — checking whether the DLO has been mapped to a DMO at all. If no mapping exists the data is completely invisible to segments. If mapping exists I check the two most critical fields — Primary Key and Individual ID. Without Individual ID mapped, DMO records cannot connect to Unified Profiles making them invisible to segmentation. Next I verify the DMO refresh has run after the mapping was saved. Then I check whether Identity Resolution has run and successfully linked profiles. Finally I review the segment filter criteria themselves to confirm they are actually matching the data values present in the DMO.

One-Liner: "Debug sequence: DLO has data? → Field mapping to DMO exists? → Individual ID mapped? → DMO refresh run? → Identity Resolution run? → Segment filter criteria match actual DMO values?"
Q3
Why is Individual ID the most important field in any DLO to DMO mapping?

Individual ID is the connective tissue that links every DMO record to its Unified Customer Profile. Think of the Unified Profile as the master customer record and the Individual ID as the key that unlocks it. When a Sales Order DMO record has Individual ID mapped, Data Cloud knows which customer made that purchase and can show it on their Unified Profile. When a Web Cart DMO event has Individual ID mapped, Data Cloud knows which customer abandoned that cart. Without Individual ID, data lands in the DMO perfectly but is completely orphaned — it exists in isolation with no connection to any customer profile. It cannot be used in segments, it does not contribute to Calculated Insights and Identity Resolution cannot match it to any profile. Every single DMO mapping for profile and engagement data must have Individual ID configured or the entire ingestion effort produces zero usable output.

One-Liner: "Individual ID links every DMO record to its Unified Customer Profile. Without it, data lands in the DMO but is completely orphaned — invisible to segments, Calculated Insights, Identity Resolution and activation."
Q4
When would you create a Custom DMO instead of using a standard DMO?

I create a custom DMO when no standard DMO exists that can represent the business-specific data I need to ingest. Before creating any custom DMO I always audit the full Salesforce canonical model library to confirm there is no suitable standard option. Common scenarios where custom DMOs are necessary include SaaS subscription data with billing cycles, seat counts and feature entitlements that have no standard equivalent. Automotive dealerships with vehicle ownership and service history records. Healthcare organizations with appointment, prescription and clinical trial data. Insurance companies with policy and claims records. The key principle is to prefer extending standard DMOs with custom fields when the core object fits but additional fields are needed — rather than creating a completely new custom DMO from scratch. Custom DMOs require more ongoing maintenance and do not receive automatic Salesforce canonical model updates.

One-Liner: "Create custom DMOs only when no standard DMO fits your data — SaaS subscriptions, vehicle records, clinical data. Always check the full canonical library first and prefer extending standard DMOs with custom fields over creating entirely new custom objects."
Q5
How does mapping a single CRM Contact DLO to multiple DMOs work and why is it necessary?

A Salesforce CRM Contact object contains multiple types of data in one record — person identity attributes, email addresses, phone numbers and physical addresses. The Salesforce canonical model treats each of these as separate DMOs because they represent fundamentally different data types with different cardinalities. A customer can have multiple email addresses stored in Contact Point Email DMO — personal and work. A customer can have multiple phone numbers in Contact Point Phone DMO. If all this data was forced into a single Individual DMO you would lose the ability to store multiple contact points per customer. By mapping the single Contact DLO to Individual DMO for name and demographics, Contact Point Email DMO for email, Contact Point Phone DMO for phone and Contact Point Address DMO for address — you correctly represent the one-to-many relationships and enable Identity Resolution to match on email and phone fields specifically.

One-Liner: "One CRM Contact DLO maps to four DMOs because the canonical model separates identity data from contact points. This preserves one-to-many relationships and gives Identity Resolution specific email and phone fields to match on across sources."