Skip to content

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

IdentifierScopeDescription
Contact KeyAll of MCUnique identifier across all channels (email, SMS, push). You assign this value.
Subscriber KeyEmail StudioLegacy term — functionally identical to Contact Key in most implementations
Contact IDInternalSystem-generated numeric ID. Not user-facing.
Salesforce Lead/Contact IDCore SFThe 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

ConceptDefinitionImplication
ContactAny record in All Contacts — synced CRM records, API imports, mobile subscribersCounts toward MC contact billing
SubscriberA contact you have sent email to via Email StudioSubset of contacts
All ContactsSuperset that includes everyoneCRM 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 TypeSendable?Use Case
Standard DEYesEmail sends, journey entry, segmentation
Non-Sendable DENoLookup data, transaction history, reference tables
Synchronized DENoMirror of CRM objects via MC Connect (read-only in MC)
Shared DEVariesCross-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

CapabilityDescription
Synchronized Data SourcesNear-real-time sync of CRM objects (Contact, Lead, Account, User, custom objects) into MC Data Extensions
Salesforce SendsSend emails from within Sales/Service Cloud using MC templates
Triggered SendsTrigger email sends from Apex, Flow, or Process Builder based on CRM events
Campaign Member SyncSync Salesforce Campaign membership for journey entry
Tracking Data WritebackEmail open, click, bounce, and unsubscribe data written back to CRM
Journey Builder EntryUse 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

LimitationDetail
250-field capSynchronized DEs limited to 250 fields per object
No delete syncDeletes in CRM are not reflected in MC (records remain)
One-way readSynchronized DEs are read-only in MC
Contact billingEvery synced Lead/Contact counts toward MC contact limit
Cannot move SDEsSynchronized DEs exist at the top level; cannot move to shared folders
No undoOnce a sync is started, it cannot be deleted — only paused
LatencyNear-real-time (exact latency varies; typically minutes, not seconds)
No custom metadataCustom metadata types and custom settings do not sync

Integration Patterns

API Integration

MC exposes two primary API families, each covering different functional areas.

APIProtocolCoversAuthentication
REST APIREST/JSONJourney Builder, Contacts, Content Builder, Transactional Messaging, MobilePushOAuth 2.0 (Server-to-Server)
SOAP APISOAP/XMLEmail sends, Subscribers, Lists, Tracking, Data Extensions, Triggered SendsOAuth 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.

MethodTrigger SourceBest For
MC Connect Triggered SendSalesforce Flow, Apex, Process BuilderCRM-initiated transactional emails (welcome, confirmation)
REST API Transactional MessagingAny external systemMulti-channel transactional messages (email + SMS)
SOAP API Triggered SendAny external systemLegacy email-only triggered sends
Journey Builder API EntryREST API callComplex multi-step journeys triggered by external events

Programmatic Content: AMPscript and SSJS

LanguageRuns InUse Case
AMPscriptEmail, SMS, Landing Pages, CloudPagesInline personalization, conditional content, data lookups
SSJS (Server-Side JavaScript)CloudPages, Script Activities, Landing PagesComplex logic, API calls within MC, WSProxy for SOAP calls
GTL (Guide Template Language)Content Builder templatesTemplate-level logic and loops

Journey Builder Architecture

Journey Builder is MC’s visual orchestration engine for multi-channel customer journeys.

Entry Sources

Entry SourceTriggerTypical Use
Data ExtensionSchedule or APIBatch campaigns, segmented audiences
Salesforce Data EventCRM record create/updateWelcome journey on new Contact creation
Salesforce CampaignCampaign member addedCampaign-triggered drip sequence
API EventREST API callExternal system triggers (e-commerce, web app)
CloudPages FormForm submissionLead capture, preference center
AudienceData Cloud segmentSegment-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 TypeLogic BasisExample
Decision SplitContact attribute or DE field valueVIP status, location, product interest
Engagement SplitPrior message interactionOpened email? Clicked link?
Random SplitPercentage-based randomA/B test: 50/50 split
Einstein SplitAI-predicted engagementEinstein Engagement Scoring likelihood

MC Engagement vs Account Engagement (Pardot)

A critical CTA decision: which marketing platform fits the scenario?

DimensionMC EngagementAccount Engagement (Pardot)
Primary useB2C, high-volume consumer marketingB2B, lead nurturing and scoring
PlatformSeparate (ExactTarget infrastructure)Native on Salesforce Platform
Data modelData Extensions (separate from CRM)Prospects linked to Leads/Contacts
VolumeMillions of contacts, billions of messagesThousands to low hundreds of thousands
ChannelsEmail, SMS, Push, Social, Advertising, WebEmail, Landing Pages, Forms
Journey orchestrationJourney Builder (visual, multi-channel)Engagement Studio (email-focused)
PersonalizationAMPscript, Dynamic Content, EinsteinMerge fields, Dynamic Content, HML
Lead scoringNot native (use Data Cloud or custom)Native, tightly integrated with Sales Cloud
ReportingAnalytics Builder, Datorama/IntelligenceB2B Marketing Analytics (CRM Analytics)
CRM integrationMC Connect (sync required)Native (same database)
Pricing modelContact-based + super messagesEdition-based with prospect tiers
Best for CTAMulti-channel B2C journeys, retail, mediaB2B 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.

CapabilityDescription
Unified ProfileMerges CRM, MC, Commerce, and third-party data into a single customer profile
Segment ActivationCreate segments in Data Cloud, activate them as MC journey entry sources
Calculated InsightsCompute engagement scores, LTV, propensity — use in MC personalization
Real-time EventsStream behavioral events (web, mobile) to Data Cloud, trigger MC journeys
Identity ResolutionMatch and deduplicate contacts across systems before syncing to MC
Zero-Copy PartnersConnect 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:

ComponentChoiceRationale
PlatformMC EngagementB2C, high volume, multi-channel
Data syncData Cloud segment activationUnifies POS + Commerce + CRM profiles
Journey entryAPI Event via Data Cloud activationReal-time entry on registration
PersonalizationAMPscript + Einstein RecommendationsDynamic product content per customer
ChannelsEmail Studio + Mobile Studio (push + SMS)Multi-channel orchestration
FallbackMC Connect for CRM writebackTrack 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:

ComponentChoiceRationale
Transactional emailsREST API Transactional MessagingSeparate from marketing sends, guaranteed delivery
Marketing emailsMC Engagement Journey BuilderCampaign orchestration with suppression lists
Consent managementSalesforce CRM as masterSingle source of truth for consent, synced via MC Connect
Audit trailSOAP API tracking extract + Data Extract ActivityCompliance reporting from MC tracking data
Content approvalContent Builder + approval workflowLocked 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:

ComponentChoiceRationale
PlatformMC EngagementMulti-channel (email + SMS + web)
PHI handlingData Cloud with Shield encryptionHIPAA-compliant data handling
Data syncMC Connect with field-level filteringSync only non-PHI fields; use tokenized patient IDs
Appointment remindersTriggered Send via CRM FlowReal-time SMS on appointment creation
SurveysCloudPages with SSJSCustom forms writing back to Health Cloud via API
ConsentCRM consent objectsHealth 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.



Sources