Skip to content

Integration Patterns: Quick Reference

All 6 official Salesforce integration patterns on one page, plus a selection matrix, timing guide, and middleware decision framework. For full details with sequence diagrams, see Integration Patterns Deep Dive.

The 6 Patterns — Master Table

#PatternDirectionTimingTechError StrategyUse When
1Request-ReplySF —> ExternalReal-timeREST/SOAP callout, Named CredentialsCircuit breaker + graceful degradationUser needs immediate response (validation, credit check)
2Fire-and-ForgetSF —> ExternalNear-RTPlatform Events, Outbound MessagesRetry + DLQ + idempotencyResponse not needed now (order fulfillment, notifications)
3Batch Data SyncBidirectionalBatchBulk API 2.0, ETL toolsPartial failure handling + reconciliationHigh volume, data freshness in hours is OK
4Remote Call-InExternal —> SFReal-timeREST/SOAP/Composite APIIdempotency keys + rate limitingExternal system owns the process (ERP push, portal writes)
5UI Update (Data Changes)SF —> SubscriberNear-RTCDC, Platform Events, Pub/Sub APIReplay from checkpoint + subscriber monitoringReact to changes without polling (dashboards, portals)
6Data VirtualizationSF —> ExternalOn-demandSalesforce Connect, External ObjectsFallback cache + high-availability external systemDisplay external data without replication

Pattern Selection Flowchart

flowchart TD
    A[Integration Need] --> B{Who initiates?}
    B -->|Salesforce| C{Need response<br/>to continue?}
    C -->|Yes| D{External responds<br/>within 10s?}
    D -->|Yes| E["P1: Request-Reply"]
    D -->|No| F{Can virtualize<br/>the data?}
    F -->|Yes| G["P6: Data Virtualization"]
    F -->|No| H["P2: Fire-and-Forget<br/>+ callback"]
    C -->|No| I{Volume > 2K<br/>records?}
    I -->|Yes| J["P3: Batch Sync"]
    I -->|No| K["P2: Fire-and-Forget"]
    B -->|External System| L{Reacting to SF<br/>data changes?}
    L -->|Yes| M["P5: UI Update / CDC"]
    L -->|No| N["P4: Remote Call-In"]

    style E fill:#e8f5e9
    style G fill:#e3f2fd
    style H fill:#fff3e0
    style J fill:#f3e5f5
    style K fill:#fff3e0
    style M fill:#e3f2fd
    style N fill:#e8f5e9

Timing Quick-Decision Table

Business NeedTimingDefault PatternDefault Tech
User waiting for answerReal-time (< 2s)Request-ReplyREST callout
Process can continue without answerNear-RT (seconds-minutes)Fire-and-ForgetPlatform Events
Data sync, reporting refreshBatch (hours)Batch Data SyncBulk API 2.0
Display external data inlineOn-demandData VirtualizationSalesforce Connect
External system pushes to SFReal-timeRemote Call-InREST API
React to SF changes externallyNear-RTUI UpdateCDC + Pub/Sub API

The #1 board mistake on patterns

Saying “we’ll use an API” without naming the pattern. Always say: “This is a Fire-and-Forget pattern using Platform Events through MuleSoft, with exponential backoff retry and a dead letter queue for failures.” Name the pattern, the tech, and the error strategy in one sentence.

Middleware Decision Framework

When to Recommend Middleware

SystemsRecommendationRationale
2 systems, simplePoint-to-pointMiddleware adds cost with no benefit
2 systems, will growConsider middlewareFuture-proofing may justify early investment
3-5 systemsHybridMiddleware for complex, P2P for simple
6+ systemsMiddlewareCentralized governance, reuse, monitoring

MuleSoft API-Led Connectivity (3 Layers)

flowchart TB
    subgraph EXP["Experience APIs"]
        E1[Mobile API] ~~~ E2[Web API] ~~~ E3[Partner API]
    end
    subgraph PROC["Process APIs"]
        P1[Order Processing] ~~~ P2[Customer 360]
    end
    subgraph SYS["System APIs"]
        S1[Salesforce] ~~~ S2[SAP] ~~~ S3[Database]
    end
    EXP --> PROC --> SYS

    style EXP fill:#e3f2fd
    style PROC fill:#fff3e0
    style SYS fill:#e8f5e9
LayerPurposeOwned ByExample
SystemExpose backend as reusable APIBackend teams”Salesforce Contact API”
ProcessOrchestrate across System APIs + business logicIntegration team”Customer 360 API”
ExperienceTailor for consumer (mobile, web, partner)Consumer teams”Mobile Customer API”

Why three layers matters at the board

It is not a MuleSoft marketing term — it is an architecture principle. It enables: reusability (System APIs shared by many Process APIs), agility (change Process without touching backends), governance (clear ownership per layer). Lead with benefits, not product names.

Middleware Platform Comparison

FactorMuleSoftDell BoomiInformaticaWorkato
Best forComplex enterprise, API programsMid-market, rapid deployData-heavy, MDMBusiness process automation
SF alignmentNative (SF-owned)Strong connectorStrong connectorGood connector
Cost$$$$$$$-$$$$$
When to recommendDefault for SF-heavyMuleSoft cost prohibitiveData quality is primaryBusiness users manage integrations

Reverse-Engineered Use Cases

Scenario 1: Insurance Claims Processing

Situation: Insurance company with Salesforce (CRM), Guidewire (claims), SAP (finance), and a customer portal. Claims status must appear on the portal within 30 seconds of update.

What you’d present:

  • Guidewire —> SF: Remote Call-In (REST API) for claim creation
  • SF claim status change —> Portal: UI Update (CDC + Pub/Sub API) for near-RT push
  • SF —> SAP: Fire-and-Forget (Platform Events + MuleSoft) for payment processing
  • Nightly reconciliation: Batch Sync (Bulk API 2.0 + MuleSoft batch)
  • Middleware justified: 4 systems, shared transformations, centralized monitoring

Scenario 2: Retail POS Integration

Situation: Retail chain needs real-time inventory checks at point of sale. External inventory system response time averages 800ms. 500 stores, peak of 2,000 checks/hour.

What you’d present:

  • POS —> Inventory check: Request-Reply (REST callout, < 1s response)
  • Fallback when inventory system is down: Circuit breaker opens, show cached inventory with staleness warning
  • Daily inventory sync: Batch Sync (Bulk API 2.0) to refresh cache and reconcile
  • No middleware needed: Only 2 systems, simple payload, no transformation

Scenario 3: Multi-Cloud Healthcare Platform

Situation: Healthcare org with Salesforce Health Cloud, Epic (EHR), Snowflake (analytics), and a patient portal. HIPAA compliance required. 50+ integration touchpoints planned.

What you’d present:

  • Epic —> SF: Remote Call-In (FHIR/REST API) for patient data sync
  • SF —> Patient Portal: UI Update (Platform Events, not CDC — custom event semantics for HIPAA-filtered payload)
  • SF —> Snowflake: Batch Sync (Bulk API 2.0 + MuleSoft batch, nightly)
  • MuleSoft mandatory: 50+ touchpoints, HIPAA audit trails, API governance, reusability across experience layer

Data Virtualization trap

External Objects support after insert/update/delete Apex triggers when change tracking is enabled. They cannot participate in approval processes or standard reports. If the scenario requires approval processes or standard reporting on external data, Data Virtualization is the wrong pattern. Replicate the data instead using Batch Sync.

Multi-Org Integration

When the scenario involves multiple Salesforce orgs (common in M&A, global enterprises, franchise models):

ApproachBest ForLimitations
Salesforce Connect (Cross-Org Adapter)Read-only access to another org’s data without replicationNo DML on external objects, no triggers, limited reporting
Platform Events (Cross-Org)Near-real-time business event sharing between orgsRequires Connected App auth between orgs, event retention limits
Salesforce-to-SalesforceNative record sharing between orgs with subscription modelBeing retired — use Salesforce Connect cross-org adapter or API-based integration instead

Reverse-Engineered Use Case: M&A Consolidation

Situation: Parent company acquires a subsidiary running its own Salesforce org. Parent needs consolidated reporting on Accounts and Opportunities across both orgs while the subsidiary operates independently during a 12-month integration period. What you’d present: Salesforce Connect cross-org adapter for read-only consolidated views in the parent org. Platform Events for near-RT sync of key business events (e.g., large deal closed). Batch Sync via Bulk API + MuleSoft for nightly reconciliation. After the integration period, migrate subsidiary data into the parent org and decommission the subsidiary org.

Default Decisions Cheat Sheet

DecisionDefaultOverride When
Sync vs AsyncAsyncUser is blocked without immediate response
Middleware vs P2PP2P (< 4 systems)4+ systems, complex transforms, governance
REST vs SOAPRESTLegacy WSDL requirement
ETL vs ELTETL (transform outside SF)Trivial transforms or SF-native logic needed
TimingBatch (cheapest)Business requires fresher data
EventsCDC for data changesCustom semantics or external publish needed

Sources