Marketing Cloud Integration Architecture
Marketing Cloud is Salesforce’s B2C marketing platform — and architecturally it is a separate platform from Core Salesforce (Sales/Service Cloud). This separation creates unique integration challenges that surface regularly in CTA scenarios. Understanding the data model, sync mechanisms, and integration patterns is essential for any multi-cloud architecture.
Separate platform architecture
Marketing Cloud Engagement (MCE) was built on the ExactTarget acquisition and runs on its own infrastructure, database, and data model. It does NOT share the Salesforce object model. Every piece of data must be explicitly synced or integrated. This is the single most important fact for CTA candidates to internalize.
Architecture Overview
flowchart TB
subgraph Legend
direction LR
L1[🟢 NEW]
L2[⚪ KEEPING]
L3[🔴 RETIRING]
L4[🟠 INTEGRATION LAYER]
end
subgraph CoreSF["Core Salesforce Platform"]
direction TB
SALES["Sales Cloud"]
SERVICE["Service Cloud"]
DC["Data Cloud"]
FLOWS["Flows & Automation"]
end
subgraph MCE["Marketing Cloud Engagement"]
direction TB
ES["Email Studio"]
JB["Journey Builder"]
AS["Automation Studio"]
CB["Content Builder"]
MC_CB["Contact Builder"]
DE["Data Extensions"]
MS["Mobile Studio"]
end
subgraph MCC["Integration Layer — MC Connect"]
SYNC["Synchronized Data Sources"]
TS["Triggered Sends"]
CAMP["Campaign Sync"]
end
subgraph APIs["Integration Layer — API"]
REST["REST API"]
SOAP_API["SOAP API"]
AMPSCRIPT["AMPscript / SSJS"]
end
CoreSF <-->|"Near-real-time sync<br/>contacts, leads, campaigns"| MCC
MCC <-->|"Synchronized DEs<br/>tracking writeback"| MCE
CoreSF <-->|"REST / SOAP API<br/>transactional sends"| APIs
APIs <-->|"Journey entry<br/>content retrieval"| MCE
DC -->|"Segment activation<br/>audience push"| MCE
DC <-->|"Unified Profile<br/>identity resolution"| CoreSF
style CoreSF fill:#1565c0,color:#fff
style SALES fill:#1565c0,color:#fff
style SERVICE fill:#1565c0,color:#fff
style DC fill:#1565c0,color:#fff
style FLOWS fill:#1565c0,color:#fff
style MCC fill:#e65100,color:#fff
style SYNC fill:#e65100,color:#fff
style TS fill:#e65100,color:#fff
style CAMP fill:#e65100,color:#fff
style APIs fill:#e65100,color:#fff
style REST fill:#e65100,color:#fff
style SOAP_API fill:#e65100,color:#fff
style AMPSCRIPT fill:#e65100,color:#fff
style MCE fill:#868e96,color:#fff
style ES fill:#868e96,color:#fff
style JB fill:#868e96,color:#fff
style AS fill:#868e96,color:#fff
style CB fill:#868e96,color:#fff
style MC_CB fill:#868e96,color:#fff
style DE fill:#868e96,color:#fff
style MS fill:#868e96,color:#fff
Data Model: Contacts, Subscribers, and Keys
The Marketing Cloud data model is fundamentally different from Core Salesforce. Understanding the key identifiers is critical.
Key Identifiers
| Identifier | Scope | Description |
|---|---|---|
| Contact Key | All of MC | Unique identifier across all channels (email, SMS, push). You assign this value. |
| Subscriber Key | Email Studio | Legacy term — functionally identical to Contact Key in most implementations |
| Contact ID | Internal | System-generated numeric ID. Not user-facing. |
| Salesforce Lead/Contact ID | Core SF | The 18-character Salesforce record ID |
CTA best practice — key alignment
Always align the Contact Key / Subscriber Key with the Salesforce Contact ID (or an external unique identifier). Misalignment is the #1 root cause of data integrity issues in MC implementations. When MC Connect is configured, Salesforce recommends using the CRM Lead/Contact ID as the Subscriber Key.
Contacts vs Subscribers
| Concept | Definition | Implication |
|---|---|---|
| Contact | Any record in All Contacts — synced CRM records, API imports, mobile subscribers | Counts toward MC contact billing |
| Subscriber | A contact you have sent email to via Email Studio | Subset of contacts |
| All Contacts | Superset that includes everyone | CRM syncs add contacts even if never emailed |
Data Extensions (DEs)
Data Extensions are the primary data storage mechanism in MC — equivalent to custom objects in Core Salesforce, but with no relationships, triggers, or automation built in.
| DE Type | Sendable? | Use Case |
|---|---|---|
| Standard DE | Yes | Email sends, journey entry, segmentation |
| Non-Sendable DE | No | Lookup data, transaction history, reference tables |
| Synchronized DE | No | Mirror of CRM objects via MC Connect (read-only in MC) |
| Shared DE | Varies | Cross-Business-Unit data sharing in Enterprise accounts |
Synchronized DEs are not sendable
Synchronized Data Extensions from MC Connect cannot be used directly for sends or journey entry. You must use a SQL Query or Filter Activity in Automation Studio to copy data from the synchronized DE into a sendable DE. This is a common gotcha.
Marketing Cloud Connect (MC Connect)
MC Connect is the native connector between Core Salesforce and Marketing Cloud Engagement. It enables near-real-time data synchronization and integrated marketing workflows.
What MC Connect Provides
| Capability | Description |
|---|---|
| Synchronized Data Sources | Near-real-time sync of CRM objects (Contact, Lead, Account, User, custom objects) into MC Data Extensions |
| Salesforce Sends | Send emails from within Sales/Service Cloud using MC templates |
| Triggered Sends | Trigger email sends from Apex, Flow, or Process Builder based on CRM events |
| Campaign Member Sync | Sync Salesforce Campaign membership for journey entry |
| Tracking Data Writeback | Email open, click, bounce, and unsubscribe data written back to CRM |
| Journey Builder Entry | Use Salesforce data events as journey entry sources |
Sync Architecture
sequenceDiagram
participant CRM as Salesforce CRM
participant MCC as MC Connect
participant SDE as Synchronized DE
participant SQL as SQL Query Activity
participant TDE as Target DE
participant JB as Journey Builder
CRM->>MCC: Record created/updated
MCC->>SDE: Sync to Synchronized DE (near-real-time)
Note over SDE: Read-only, not sendable, max 250 fields
SQL->>SDE: Query synchronized data
SQL->>TDE: Populate sendable DE
JB->>TDE: Use as journey entry source
MC Connect Limitations
| Limitation | Detail |
|---|---|
| 250-field cap | Synchronized DEs limited to 250 fields per object |
| No delete sync | Deletes in CRM are not reflected in MC (records remain) |
| One-way read | Synchronized DEs are read-only in MC |
| Contact billing | Every synced Lead/Contact counts toward MC contact limit |
| Cannot move SDEs | Synchronized DEs exist at the top level; cannot move to shared folders |
| No undo | Once a sync is started, it cannot be deleted — only paused |
| Latency | Near-real-time (exact latency varies; typically minutes, not seconds) |
| No custom metadata | Custom metadata types and custom settings do not sync |
Integration Patterns
API Integration
MC exposes two primary API families, each covering different functional areas.
| API | Protocol | Covers | Authentication |
|---|---|---|---|
| REST API | REST/JSON | Journey Builder, Contacts, Content Builder, Transactional Messaging, MobilePush | OAuth 2.0 (Server-to-Server) |
| SOAP API | SOAP/XML | Email sends, Subscribers, Lists, Tracking, Data Extensions, Triggered Sends | OAuth 2.0 (legacy: username/password) |
API coverage split
REST API covers newer MC features (journeys, mobile, content). SOAP API covers legacy features (email sends, tracking, subscriber management). Many implementations require both. For new integrations, prefer REST API where available.
Triggered Sends
Triggered sends allow external systems or CRM automation to initiate real-time email sends.
| Method | Trigger Source | Best For |
|---|---|---|
| MC Connect Triggered Send | Salesforce Flow, Apex, Process Builder | CRM-initiated transactional emails (welcome, confirmation) |
| REST API Transactional Messaging | Any external system | Multi-channel transactional messages (email + SMS) |
| SOAP API Triggered Send | Any external system | Legacy email-only triggered sends |
| Journey Builder API Entry | REST API call | Complex multi-step journeys triggered by external events |
Programmatic Content: AMPscript and SSJS
| Language | Runs In | Use Case |
|---|---|---|
| AMPscript | Email, SMS, Landing Pages, CloudPages | Inline personalization, conditional content, data lookups |
| SSJS (Server-Side JavaScript) | CloudPages, Script Activities, Landing Pages | Complex logic, API calls within MC, WSProxy for SOAP calls |
| GTL (Guide Template Language) | Content Builder templates | Template-level logic and loops |
Journey Builder Architecture
Journey Builder is MC’s visual orchestration engine for multi-channel customer journeys.
Entry Sources
| Entry Source | Trigger | Typical Use |
|---|---|---|
| Data Extension | Schedule or API | Batch campaigns, segmented audiences |
| Salesforce Data Event | CRM record create/update | Welcome journey on new Contact creation |
| Salesforce Campaign | Campaign member added | Campaign-triggered drip sequence |
| API Event | REST API call | External system triggers (e-commerce, web app) |
| CloudPages Form | Form submission | Lead capture, preference center |
| Audience | Data Cloud segment | Segment-driven activation |
Activity Types
flowchart LR
subgraph Entry["Entry Sources"]
DE_ENTRY[Data Extension]
SF_EVENT[Salesforce Data]
API_ENTRY[API Event]
end
subgraph Messages["Message Activities"]
EMAIL[Email]
SMS_ACT[SMS]
PUSH[Push Notification]
AD[Advertising]
end
subgraph Flow["Flow Control"]
WAIT[Wait]
DECISION[Decision Split]
ENGAGE[Engagement Split]
RANDOM[Random Split]
EINSTEIN[Einstein Split]
end
subgraph Updates["Update Activities"]
UPD_CONTACT[Update Contact]
UPD_SF[Update Salesforce Object]
CUSTOM[Custom Activity]
end
Entry --> Messages
Messages --> Flow
Flow --> Messages
Flow --> Updates
Decision Logic Types
| Split Type | Logic Basis | Example |
|---|---|---|
| Decision Split | Contact attribute or DE field value | VIP status, location, product interest |
| Engagement Split | Prior message interaction | Opened email? Clicked link? |
| Random Split | Percentage-based random | A/B test: 50/50 split |
| Einstein Split | AI-predicted engagement | Einstein Engagement Scoring likelihood |
MC Engagement vs Account Engagement (Pardot)
A critical CTA decision: which marketing platform fits the scenario?
| Dimension | MC Engagement | Account Engagement (Pardot) |
|---|---|---|
| Primary use | B2C, high-volume consumer marketing | B2B, lead nurturing and scoring |
| Platform | Separate (ExactTarget infrastructure) | Native on Salesforce Platform |
| Data model | Data Extensions (separate from CRM) | Prospects linked to Leads/Contacts |
| Volume | Millions of contacts, billions of messages | Thousands to low hundreds of thousands |
| Channels | Email, SMS, Push, Social, Advertising, Web | Email, Landing Pages, Forms |
| Journey orchestration | Journey Builder (visual, multi-channel) | Engagement Studio (email-focused) |
| Personalization | AMPscript, Dynamic Content, Einstein | Merge fields, Dynamic Content, HML |
| Lead scoring | Not native (use Data Cloud or custom) | Native, tightly integrated with Sales Cloud |
| Reporting | Analytics Builder, Datorama/Intelligence | B2B Marketing Analytics (CRM Analytics) |
| CRM integration | MC Connect (sync required) | Native (same database) |
| Pricing model | Contact-based + super messages | Edition-based with prospect tiers |
| Best for CTA | Multi-channel B2C journeys, retail, media | B2B demand gen, ABM, considered purchases |
CTA decision framework
Ask three questions: (1) B2B or B2C? (2) How many contacts — thousands or millions? (3) How many channels beyond email? If the answer is B2C + millions + multi-channel, the answer is MC Engagement. If B2B + thousands + email-centric, Account Engagement. Some enterprises use both — MC Engagement for customer marketing, Account Engagement for prospect nurturing.
Data Cloud + Marketing Cloud
Data Cloud (formerly CDP, now Salesforce Data 360) is becoming the strategic integration layer between MC and the rest of Salesforce.
| Capability | Description |
|---|---|
| Unified Profile | Merges CRM, MC, Commerce, and third-party data into a single customer profile |
| Segment Activation | Create segments in Data Cloud, activate them as MC journey entry sources |
| Calculated Insights | Compute engagement scores, LTV, propensity — use in MC personalization |
| Real-time Events | Stream behavioral events (web, mobile) to Data Cloud, trigger MC journeys |
| Identity Resolution | Match and deduplicate contacts across systems before syncing to MC |
| Zero-Copy Partners | Connect Snowflake, BigQuery, Databricks data without replication |
Strategic direction
Salesforce’s strategic direction (Marketing Cloud Next, announced 2025) is to rebuild MC natively on the Salesforce Platform using Data Cloud as the foundation. For CTA scenarios set in the future state, position Data Cloud as the integration hub between CRM and marketing — replacing MC Connect for data sync and using Agentforce agents and flow-based orchestration alongside Journey Builder. Journey Builder is not being deprecated in the near term.
CTA Scenario Use Cases
Scenario 1: B2C Retailer — Omnichannel Welcome Journey
Situation: A national retailer with 5M loyalty members needs a welcome journey triggered when a customer registers in-store (POS) or online (Commerce Cloud). Journey must send email, push notification, and SMS over 14 days with personalized product recommendations.
Architecture Decision:
| Component | Choice | Rationale |
|---|---|---|
| Platform | MC Engagement | B2C, high volume, multi-channel |
| Data sync | Data Cloud segment activation | Unifies POS + Commerce + CRM profiles |
| Journey entry | API Event via Data Cloud activation | Real-time entry on registration |
| Personalization | AMPscript + Einstein Recommendations | Dynamic product content per customer |
| Channels | Email Studio + Mobile Studio (push + SMS) | Multi-channel orchestration |
| Fallback | MC Connect for CRM writeback | Track engagement back to Service Cloud |
Scenario 2: Financial Services — Regulatory Compliance with Marketing
Situation: A bank must send mandatory regulatory disclosures alongside marketing campaigns. Marketing team uses MC for campaigns, but compliance requires audit trails, opt-out enforcement, and content approval workflows.
Architecture Decision:
| Component | Choice | Rationale |
|---|---|---|
| Transactional emails | REST API Transactional Messaging | Separate from marketing sends, guaranteed delivery |
| Marketing emails | MC Engagement Journey Builder | Campaign orchestration with suppression lists |
| Consent management | Salesforce CRM as master | Single source of truth for consent, synced via MC Connect |
| Audit trail | SOAP API tracking extract + Data Extract Activity | Compliance reporting from MC tracking data |
| Content approval | Content Builder + approval workflow | Locked content blocks for legal-approved text |
Scenario 3: Healthcare — Patient Engagement Across Channels
Situation: A healthcare provider wants appointment reminders (SMS), wellness content (email), and post-visit surveys (CloudPages) — all personalized based on patient data in Health Cloud.
Architecture Decision:
| Component | Choice | Rationale |
|---|---|---|
| Platform | MC Engagement | Multi-channel (email + SMS + web) |
| PHI handling | Data Cloud with Shield encryption | HIPAA-compliant data handling |
| Data sync | MC Connect with field-level filtering | Sync only non-PHI fields; use tokenized patient IDs |
| Appointment reminders | Triggered Send via CRM Flow | Real-time SMS on appointment creation |
| Surveys | CloudPages with SSJS | Custom forms writing back to Health Cloud via API |
| Consent | CRM consent objects | Health Cloud consent model as single source of truth |
Common Gotchas
Data model mismatch
MC’s flat Data Extension model does not map cleanly to Salesforce’s relational object model. A CRM Contact with related Opportunities, Cases, and Activities becomes multiple flat DEs in MC. Plan your data model mapping carefully — denormalization is often required.
Contact billing surprises
Every record synced via MC Connect counts as a billable MC contact — even if you never send them a message. Sync filters are essential to avoid inflating your contact count and bill. Only sync records you intend to market to.
Sync latency assumptions
MC Connect “near-real-time” sync latency is near-real-time (exact latency varies; typically minutes, not seconds). Do not design journeys that depend on instant CRM data availability. For true real-time triggers, use API Events or Data Cloud real-time segments.
Subscriber Key migration is irreversible
Migrating your Subscriber Key strategy (e.g., from email address to CRM ID) is a one-time, irreversible operation that affects every contact and data extension in your MC account. Plan this at project inception, not after go-live.
Related Content
- Integration Patterns — the six canonical patterns apply to MC integration touchpoints
- Event-Driven Architecture — Platform Events and CDC can trigger MC journeys via MC Connect
- Salesforce API Landscape — MC has its own API surface distinct from Core Salesforce APIs
- Middleware Architecture — MuleSoft as an alternative to MC Connect for complex multi-system flows
- Error Handling Patterns — retry and idempotency patterns for MC API integrations
- Data Modeling — contrast the relational CRM model with MC’s flat DE model
Sources
- Marketing Cloud Connect (Salesforce Help)
- Synchronized Data Sources (Salesforce Help)
- Synchronized Data Sources Best Practices (Salesforce Help)
- Contact Model Relationships & Data Model (Trailhead)
- Synchronized Data Source Creation (Trailhead)
- MC Connect Setup (Trailhead)
- Effective Data Model Design (Trailhead)
- API Integration Best Practices (Trailhead)
- Triggered Email Scenario Guide (Salesforce Developers)
- Pardot vs. Marketing Cloud (Salesforce Ben)
- How Salesforce Is Rebuilding Marketing Cloud for the Age of AI (Salesforce Ben)
- Salesforce Data 360: The 3 Pillars of Implementation (Salesforce Ben)