5.1 Standard Bundles & Salesforce CRM Connectors (Sales/Service/Marketing)
Key Takeaways
- The Salesforce CRM Connector enables native bi-directional integration across multiple Salesforce orgs, authenticating via connected apps and requiring the Data Cloud Salesforce Connector and Data Cloud Integration User permission sets in source orgs.
- Standard Data Bundles (Sales Cloud, Service Cloud, B2C Commerce, Marketing Cloud Engagement) deploy pre-configured Data Lake Objects (DLOs) and automated mappings to standard Data Model Objects (DMOs) out-of-the-box, accelerating implementation velocity.
- When ingesting custom objects or fields, formula fields referencing cross-object relationships or non-deterministic functions (e.g., TODAY(), NOW()) cannot trigger Change Data Capture (CDC) events and must be evaluated inside Data Cloud using formula fields or Data Transforms.
- Ongoing incremental synchronization from Salesforce CRM relies natively on Change Data Capture (CDC), streaming record creates, updates, and deletes to Data Cloud near-real-time without custom polling APIs.
- In multi-org CRM environments, standard 18-character Salesforce record IDs can collide across orgs or sandbox clones; consultants must prefix record IDs with a source tenant identifier formula (e.g., Source_Org__c + '_' + Id) to guarantee globally unique primary keys in DLOs.
Standard Bundles & Salesforce CRM Connectors (Sales/Service/Marketing)
Salesforce Data Cloud is engineered to serve as the unified hyperscale engine across the entire Salesforce Customer 360 ecosystem. In most enterprise implementations, the foundational data ingestion pipeline begins with the Salesforce CRM Connector and the suite of Standard Data Bundles spanning Sales Cloud, Service Cloud, B2C Commerce, and Marketing Cloud Engagement. While these native connectors provide automated acceleration, certified Data Cloud consultants must understand the underlying synchronization mechanisms, permission dependencies, formula field constraints, and multi-org architectural traps that dictate real-world project success.
Salesforce CRM Connector Architecture & Setup
The Salesforce CRM Connector establishes a direct, high-throughput integration bridge between a Data Cloud instance and one or more Salesforce source orgs. Unlike external data lakes that require custom middleware (e.g., ETL/ELT pipelines, periodic scheduled exports, or REST API batch pollers), the CRM connector leverages Salesforce's native event-driven infrastructure.
Single-Org vs. Multi-Org Enterprise Topologies
Data Cloud supports two primary CRM connection topologies:
- Single-Org (Co-located / Local Connect): When Data Cloud is provisioned directly within the primary Salesforce CRM production tenant. The local CRM connection is configured automatically during tenant provisioning.
- Multi-Org (Hub-and-Spoke Connect): Global enterprises frequently operate multiple disparate Salesforce orgs—such as separate orgs for regional operating units (Americas, EMEA, APAC), distinct operating entities (Healthcare vs. Financial Services), or acquired subsidiaries. Data Cloud can connect to multiple external Salesforce orgs simultaneously, acting as the centralized Customer 360 hub while each connected org acts as an operational spoke.
┌───────────────────────────────┐ ┌───────────────────────────────┐
│ Salesforce Org A (Americas) │ │ Salesforce Org B (EMEA) │
│ - Sales Cloud (Leads/Opps) │ │ - Service Cloud (Cases/Accts)│
└───────────────┬───────────────┘ └───────────────┬───────────────┘
│ (Connected App / CDC) │ (Connected App / CDC)
▼ ▼
┌────────────────────────────────────────────────────────────────────────┐
│ Salesforce Data Cloud Tenant │
│ - Data Streams (Prefixed Primary Keys: "US_" and "EU_") │
│ - Data Lake Objects (DLOs) & Harmonized Data Model Objects (DMOs) │
│ - Global Identity Resolution & Customer 360 Unified Profiles │
└────────────────────────────────────────────────────────────────────────┘
Integration User & Permission Requirements
To establish a secure handshake between Data Cloud and an external Salesforce CRM org, the connection relies on an administrative user in the source org equipped with dedicated permission sets:
- Data Cloud Salesforce Connector: Granted to the administrator during the initial OAuth connected app handshake to authorize metadata retrieval and object discovery.
- Data Cloud Integration User: Automatically provisioned or assigned in the source CRM org. This user executes the ongoing data extraction queries and subscribes to event streams.
- Field-Level Security (FLS) & Object Permissions: The integration user must possess explicit Read permissions on all source objects and Read access on every field designated for synchronization. If a business creates a new custom field on the Contact object but neglects to grant Field-Level Security to the Data Cloud Integration User, Data Cloud cannot read the field. The ingestion pipeline does not throw an error; instead, it silently ingests
nullvalues for that attribute.
Ingestion Lifecycle: Historical Backfill vs. Incremental Synchronization
When a CRM Data Stream is deployed, Data Cloud executes a two-phase data ingestion lifecycle:
- Historical Backfill (Bulk Ingestion): Data Cloud issues a high-performance query against the source org using the Salesforce Bulk API v2 infrastructure to perform an initial extraction of all historical records matching the object filter.
- Ongoing Incremental Synchronization (Change Data Capture): Upon completion of the initial backfill, Data Cloud automatically establishes an event subscription to the source org's Change Data Capture (CDC) event bus. Any subsequent record insert, update, delete, or undelete in the source CRM org publishes a CDC event that is streamed into Data Cloud within seconds to minutes, ensuring near-real-time data freshness without manual polling.
Standard Data Bundles: Out-of-the-Box Accelerators
Manually configuring data streams, declaring schema definitions, and mapping hundreds of source fields to canonical Customer 360 Data Model Objects (DMOs) can require weeks of manual implementation effort. Salesforce Data Cloud resolves this through Standard Data Bundles.
A Data Bundle is an out-of-the-box metadata package that deploys pre-configured Data Stream templates, auto-provisions corresponding Data Lake Objects (DLOs), and applies pre-built, standardized mappings to the canonical Customer 360 Data Model Objects in a single administrative action.
1. Sales Cloud Data Bundle
Designed to ingest the core business-to-business (B2B) and relationship management entities from Salesforce Sales Cloud:
- Ingested CRM Objects:
Account,Contact,Lead,Opportunity,OpportunityContactRole,Campaign,CampaignMember. - Canonical DMO Mappings: Maps
LeadandContactdirectly to theIndividualandContact Point(Email, Phone, Address) DMOs; mapsAccountto theAccountDMO; mapsOpportunityandOpportunityContactRoleto theSales OrderandOpportunitysubject areas. - Data Stream Category: Categorized as Profile for identity entities (Account, Contact, Lead) and Other or Engagement for transactional records (Opportunity, Campaign Member).
2. Service Cloud Data Bundle
Engineered for customer service, omni-channel engagement, and case lifecycle management:
- Ingested CRM Objects:
Case,CaseHistory,CaseComment,Contact,Account. - Canonical DMO Mappings: Maps
Caserecords to the canonicalCaseDMO, linking customer issues directly toUnified IndividualandAccountentities, providing support agents with immediate visibility into unified customer sentiment and unresolved tickets. - Data Stream Category:
CaseandCaseCommentare typically categorized as Engagement data (representing timestamped interactions), whileContactandAccountremain Profile data.
3. B2C Commerce (Commerce Cloud) Bundle
Integrates transactional digital commerce storefronts into Data Cloud:
- Ingested Objects: Customer Profiles, Customer Addresses, Orders, Order Items, Product Catalog, Product Categories.
- Canonical DMO Mappings: Ingests product SKUs into the
ProductDMO subject area and customer purchases intoSales OrderandSales Order ProductDMOs, unlocking immediate calculated metrics like Lifetime Spend, Average Order Value (AOV), and Recency.
4. Marketing Cloud Engagement Data Bundles
Captures cross-channel marketing interactions and campaign telemetry directly from Marketing Cloud Engagement (formerly SFMC):
- Email Studio Bundle: Ingests Email Subscriber profiles, List Subscriptions, and deep behavioral engagement logs (
Sent,Open,Click,Bounce,Unsubscribe,Complaint). - MobileConnect Bundle: Synchronizes SMS messaging engagement, keyword responses, and opt-in/opt-out status changes.
- MobilePush Bundle: Captures push notification sends, opens, and in-app message impressions.
- Canonical DMO Mappings: Maps subscriber engagement records to the canonical
Engagementsubject area (e.g.,Email Engagement,Mobile Engagement), linking directly toIndividualandContact Point Email/Contact Point Phone.
Comparison Table: Standard Data Bundles
| Standard Data Bundle | Primary Source System | Core Source Objects Ingested | Primary Target Canonical DMOs | Default Data Stream Category |
|---|---|---|---|---|
| Sales Cloud Bundle | Salesforce Core CRM | Account, Contact, Lead, Opportunity, Campaign | Individual, Account, Contact Point Email, Sales Order, Opportunity | Mixed (Profile for Contact/Lead/Account; Other/Engagement for Opps) |
| Service Cloud Bundle | Salesforce Core CRM | Case, CaseHistory, CaseComment, Contact, Account | Case, Case Interaction, Individual, Account | Mixed (Engagement for Case/History; Profile for Contact/Account) |
| B2C Commerce Bundle | Commerce Cloud | Customer, Order, OrderItem, Product, Category | Individual, Sales Order, Sales Order Product, Product | Mixed (Profile for Customer; Engagement for Order/OrderItem; Other for Product) |
| Marketing Cloud Email Bundle | Marketing Cloud Engagement | Subscribers, Sent, Open, Click, Bounce, Unsub | Individual, Contact Point Email, Email Engagement | Mixed (Profile for Subscribers; Engagement for Sent/Open/Click/Bounce) |
| Marketing Cloud Mobile Bundle | Marketing Cloud Engagement | MobileConnect SMS, MobilePush Telemetry | Individual, Contact Point Phone, Device Application, Mobile Engagement | Mixed (Profile for Mobile Contacts; Engagement for SMS/Push events) |
Custom Object Ingestion & Advanced CRM Data Streams
Beyond standard bundles, enterprises frequently maintain proprietary custom objects (e.g., Warranty__c, Patient_Encounter__c, Vehicle__c, Loan_Application__c) within Salesforce CRM. Data Cloud provides the flexibility to ingest any custom object via Custom CRM Data Streams.
Selecting the Correct Data Stream Category
When configuring a custom data stream, the consultant must explicitly declare the Category. This decision governs how Data Cloud indexes, partitions, and retains the data:
- Profile: Applied to master identity entities that represent an individual, business account, or contact point (e.g., a custom
Loyalty_Member__cobject). Profile data requires a unique Primary Key and participates directly in Identity Resolution rulesets. - Engagement: Applied to time-series, append-mostly behavioral interaction events (e.g.,
Service_Inspection__corVehicle_Telemetry__c). Engagement data requires an Event Date/Time field (e.g.,CreatedDateor a customTimestamp__c), is optimized for high-volume time-window filtering in Segmentation, and can have automated retention schedules configured. - Other: Applied to contextual reference data, dimensions, or business metadata that neither describes a person nor represents a time-series event (e.g.,
Product_Warranty_Plan__corStore_Location__c).
The Formula Field Constraint & CDC Invalidation
A major technical challenge in Salesforce CRM ingestion centers on Formula Fields:
Formula Field Classification:
1. Deterministic (Record-Local) Formula:
Example: Full_Name__c = FirstName & " " & LastName
--> Evaluates entirely within the boundaries of the local record.
--> Eligible for standard synchronization.
2. Non-Deterministic / Cross-Object Formula:
Example A: Account_Region__c = Account.Region__c (Cross-Object Span)
Example B: Days_Open__c = TODAY() - Date_Opened__c (Time-Dependent)
--> PROBLEM: Modifying Account.Region__c does NOT update Contact.SystemModstamp
--> PROBLEM: Advancing midnight does NOT fire a Change Data Capture event
--> RESULT: Data Cloud does NOT receive an incremental sync update! Stale data ensues.
[!IMPORTANT] Formula Field Rule of Thumb: Do not ingest cross-object formula fields or non-deterministic formula fields directly from Salesforce CRM into Data Cloud. Instead, ingest the underlying raw fields (e.g., ingest
Account.Region__cfrom the Account object directly, and ingestDate_Opened__cfrom the Case object) and use Data Cloud Formula Fields on the DLO, Streaming Data Transforms, or Batch Data Transforms to calculate the derived values natively within Data Cloud.
Change Data Capture (CDC) Mechanics & Latency
Salesforce CRM connectors rely on the native Salesforce event bus:
- Automated CDC Allocation: When a Data Cloud connector is activated against a standard or custom object, Data Cloud automatically requests the creation of a Change Data Capture event channel for that object in the source CRM org.
- Header Metadata: CDC event payloads carry transaction headers containing the
changeType(CREATE,UPDATE,DELETE,UNDELETE), thecommitTimestamp, and the modified field set. - Soft Deletes vs. Hard Deletes: When a record is deleted in Salesforce CRM (moved to the Recycle Bin), a CDC
DELETEevent is broadcast. Data Cloud processes this event by writing a deletion marker (IsDeleted = True) to the corresponding DLO record. During downstream query processing and segmentation, deleted records are filtered out, maintaining consistency between CRM and Data Cloud.
Critical Exam Traps & Multi-Org CRM Architectures
[!WARNING] The Multi-Org Record ID Collision Trap An enterprise connects two distinct Salesforce CRM production orgs: Org A (US Retail) and Org B (European Commercial). Both orgs contain Contact records. A consultant sets up standard CRM data streams in both orgs, ingesting the standard 18-character Contact
Iddirectly as the DLO Primary Key.The Architectural Disaster: Salesforce 18-character record IDs are guaranteed to be unique within a single database instance, but they are NOT guaranteed to be universally unique across distinct production orgs (and are guaranteed to collide if one org was cloned from another or shares sandbox origins). Furthermore, if Org A Contact
0031x00000abc12and Org B Contact0031x00000abc12both stream to the same DLO, Data Cloud will treat them as the exact same record, causing Org B's sync to overwrite Org A's data!The Exam Solution: In multi-org architectures, you must never map the raw CRM
Idas the standalone DLO Primary Key. You must define a Formula Field on the Data Stream / DLO that generates a composite key by prefixing the Record ID with a unique Source System Tenant Identifier:CONCAT("CRM_US_", source_table.Id)for Org A, andCONCAT("CRM_EU_", source_table.Id)for Org B.
A global enterprise operates two separate Salesforce CRM orgs: one for its North American commercial division and one for its European retail division. The enterprise deploys Salesforce Data Cloud to unify customer profiles across both business units. During testing, the team observes that certain European contact records are intermittently overwriting North American contact records in Data Cloud. What is the root cause of this defect, and how should the consultant resolve it?
An architect configures a custom CRM Data Stream to ingest the Contact object from Sales Cloud. The business requires synchronizing a custom formula field, Customer_Lifetime_Days__c, defined as 'TODAY() - Customer_Since_Date__c'. In Data Cloud, the consultant notices that the value of Customer_Lifetime_Days__c never updates after the initial historical ingestion, despite the passage of several weeks. Why does this synchronization failure occur?
A Data Cloud consultant deploys the standard Sales Cloud Data Bundle to ingest Account and Contact objects. Following the successful initial data sync, an analyst notices that a critical custom attribute, Loyalty_Tier__c, is entirely populated with null values across all 200,000 ingested Contact records in the Data Lake Object, even though the field is fully populated in Sales Cloud. The data stream status is marked 'Active' with zero error logs. What is the most likely cause of this issue?