Salesforce + Braze integration architecture

How to connect Salesforce and Braze today with APIs and middleware: systems of record, identity, consent, channels, measurement and error handling.

Banner for the GeekMidst reference architecture “Salesforce + Braze integration architecture”, covering Business context and Salesforce + Braze…

Many teams run Salesforce for CRM and Braze for customer engagement across app, web and messaging channels. Connecting them well means deciding which system owns each kind of data, moving changes reliably in both directions, and keeping consent consistent. This page gives a reference architecture for that integration as it can be built today.

This is a reference design. We validate the APIs, licences and permissions on both sides for each implementation, and GeekMidst can design and implement it through Salesforce and Braze integration.

Business context

Braze documents no native Salesforce connector, and its Technology Partners index does not list Salesforce. Braze documents one Salesforce recipe, "B2B Salesforce Sales Cloud", which uses Braze webhooks to create and update Lead records. Braze describes it as "a community-submitted integration and isn't directly supported by Braze", and it is one-way, from Braze to Salesforce. Braze's B2B data model guidance maps Salesforce Accounts and Opportunities to Braze Catalogs and Lead and Contact IDs to user aliases. Everything else is built with the two platforms' APIs and an integration layer. Third parties advertise connectors, but they are not Braze-documented. Read more in our Salesforce and Braze integration guide.

Salesforce + Braze reference architecture

Reference architecture: a reusable pattern, not a live client integration

Salesforce (your org and tenants)Your integration layerBraze workspace (separate company)SYSTEMS OF RECORDINTEGRATIONBRAZECHANNELS AND ENGAGEMENT DATASalesforce CRMSales and Service CloudMarketing Cloudif usedData 360if usedEvent and integration layermiddleware or iPaaSIdentity, consent, governancemapping rulesError queue and reconciliationreplay and auditMonitoringalerts and dashboardsBraze workspaceprofiles, events, catalogsCanvas and campaignsjourneys and messagesCurrentsengagement event streamEmailPush and in-appBraze SDKsSMS and WhatsAppsubscription groupsEngagement data storewarehouse or storagerecord changessegments and insightssuppression and consentmapping check/users/tracksubscription updatesfailed callsaudiences and triggersemailpush and in-appSMS and WhatsAppengagement eventsengagement summaryCRM updatesalerts
  • Salesforce product
  • Data and analytics
  • Engagement platform
  • Integration layer
  • Identity, policy and governance
  • Channel or touchpoint
  • People
  • Salesforce (your org and tenants)
  • Your integration layer
  • Braze workspace (separate company)
  • Dashed: asynchronous, optional or feedback
Diagram source (Mermaid)

Select a component to see what it is responsible for and how data moves to and from it.

Reference architecture. Systems of record, consent ownership and latency are confirmed per implementation. All Salesforce–Braze traffic passes through the integration layer.
Components and data flows (text version)
ComponentTypeResponsibility
Salesforce CRMSales and Service CloudSalesforce productSystem of record for accounts, contacts, leads, opportunities and cases, and the source of the customer ID.
Marketing Cloudif usedSalesforce productKeeps any programmes that stay on Marketing Cloud. Needs a clear rule on which platform messages whom.
Data 360if usedData and analyticsUnified profiles, insights and segments. Reaches Braze only through the integration layer or a warehouse share.
Event and integration layermiddleware or iPaaSIntegration layerSubscribes to Salesforce changes, maps them to Braze calls, and turns Braze engagement into CRM updates.
Identity, consent, governancemapping rulesIdentity, policy and governanceOwns the customer ID mapping, consent precedence rules and which fields may leave each system.
Error queue and reconciliationreplay and auditIntegration layerHolds failed messages with context for replay, and runs scheduled reconciliation between the two systems.
Monitoringalerts and dashboardsPeopleWatches throughput, errors, rate-limit responses and reconciliation results, with a named owner.
Braze workspaceprofiles, events, catalogsEngagement platformBraze user profiles keyed by external_id, with custom attributes, events, purchases and catalogs.
Canvas and campaignsjourneys and messagesEngagement platformBraze campaign execution: Canvas journeys and single-message campaigns, scheduled, action-based or API-triggered.
Currentsengagement event streamData and analyticsBraze describes Currents as a real-time stream of engagement events. It sends them to storage, CDPs or a Custom HTTP Connector, depending on your package. No Salesforce destination is listed.
EmailChannel or touchpointEmail from Braze, governed by Braze subscription states.
Push and in-appBraze SDKsChannel or touchpointPush, in-app messages and Content Cards delivered through the Braze SDKs.
SMS and WhatsAppsubscription groupsChannel or touchpointMessaging channels that require Braze subscription groups.
Engagement data storewarehouse or storageData and analyticsReceives Currents data so engagement can be summarised before it reaches CRM.

Data flows

  1. Salesforce CRM → Event and integration layer: record changes. Change Data Capture or Platform Events over the Pub/Sub API, batched where volume is high. Replay from the retention window after an outage.
  2. Data 360 → Event and integration layer: segments and insights. Data actions call a webhook in the integration layer, or data is shared to a warehouse for Braze Cloud Data Ingestion.
  3. Marketing Cloud → Identity, consent, governance: suppression and consent. Opt-outs recorded in Marketing Cloud are extracted by the integration layer, through APIs or file exports, and applied by the consent rules so Braze does not message the same person.
  4. Event and integration layer → Identity, consent, governance: mapping check. Each payload is checked against ID mapping and consent rules before it is sent.
  5. Event and integration layer → Braze workspace: /users/track. Attributes, events and purchases by external_id. Respect Braze rate limits; on 429, back off using the rate-limit headers.
  6. Identity, consent, governance → Braze workspace: subscription updates. Consent changes use the Braze email status or subscription group APIs, so the owner's decision is applied.
  7. Event and integration layer → Error queue and reconciliation: failed calls. Failures are queued with the source ID and payload for replay; nothing is dropped silently.
  8. Braze workspace → Canvas and campaigns: audiences and triggers. Segments and API-triggered entries start Canvases and campaigns.
  9. Canvas and campaigns → Email: email. Sent to users whose subscription state allows it.
  10. Canvas and campaigns → Push and in-app: push and in-app. Push targets subscribed or opted-in users with foreground push enabled; in-app messages and Content Cards are delivered through the SDKs.
  11. Canvas and campaigns → SMS and WhatsApp: SMS and WhatsApp. Sent only to users subscribed to the right subscription group.
  12. Currents → Engagement data store: engagement events. Currents streams events in Avro to storage. Gaps are detected by comparing counts.
  13. Engagement data store → Event and integration layer: engagement summary. Summarised engagement, not raw events, is written back to CRM through the integration layer.
  14. Event and integration layer → Salesforce CRM: CRM updates. Engagement summaries and lead updates are written through Salesforce APIs as an integration user.
  15. Error queue and reconciliation → Monitoring: alerts. Queue depth and reconciliation differences raise alerts to the owner.

Systems of record

DataRecommended ownerWhy
Customer identitySalesforce CRM customer ID, mapped to Braze external_idCRM is where records are created and merged; Braze discourages email as external_id
ConsentOne owner per channel, applied to the other systemTwo owners lead to conflicting states; Braze push and SMS have their own subscription models
AudiencesData 360 or CRM for business segments; Braze for engagement segmentsKeep each segment defined in one place
EventsBraze for in-app and messaging events; CRM for business eventsSend only summaries back to CRM
Campaign executionBraze for its channels; Marketing Cloud only for programmes deliberately kept thereAvoid two platforms messaging one person

Component responsibilities

ComponentResponsible for
Salesforce CRMCustomer records, sales and service context, customer ID
Integration layerSubscriptions, mapping, retries, rate-limit handling, write-back
Identity and consent rulesID mapping, consent precedence, field allow-list
Error queueReplay, audit and reconciliation
BrazeProfiles, segmentation, Canvas, channel delivery
Currents and data storeEngagement export and summarisation

Data flow, step by step

  1. A CRM record changes. Change Data Capture publishes it; the integration layer receives it over the Pub/Sub API.
  2. Rules are applied. The layer checks the ID mapping and consent rules and removes fields that should not leave Salesforce.
  3. Braze is updated. The layer calls /users/track with the external_id. Requests need an API key with the users.track permission; Braze documents a burst limit of 3,000 requests per three seconds for customers with data points in their pricing, otherwise by contract.
  4. Braze engages. Canvases and campaigns send through Braze channels to users whose subscription state allows it.
  5. Engagement is exported. Currents streams engagement events to storage, where they are summarised.
  6. CRM is updated. The layer writes summaries back to CRM records.
  7. Reconciliation runs. A scheduled job compares IDs and consent states and raises differences.

Trust boundaries and authentication

There are three trust zones: your Salesforce org, your integration layer and the Braze workspace. Braze REST API keys are scoped per endpoint and can have IP allowlists, which cannot be edited after creation, so create one key per purpose. On the Salesforce side, use an External Client App and a least-privilege integration user; connected apps support ends in Summer '27. Braze is a data processor and you are the controller, so plan data transfer terms with your legal adviser.

Failure scenarios and how to handle them

FailureEffectHow to handle it
Braze returns 429Updates delayedBack off using rate-limit headers; batch up to 75 objects per request
Salesforce subscriber falls behindMissed changesReplay within retention, then reconcile
Duplicate external_id or mergeSplit or merged profilesMerge in CRM first; use Braze /users/merge carefully
Consent differs between systemsMessage to an opted-out personOne owner per channel; reconcile daily
Write-back floods CRMLock errors and noiseSummarise; write once per period

Operational monitoring

Monitor events received and sent, Braze response codes, queue depth, write-back failures and reconciliation differences. Alert a named owner on consent mismatches first, because they carry the most risk.

Alternative approaches and trade-offs

Middleware (the pattern above) gives control and monitoring but needs building and running. Warehouse-first sharing to Braze Cloud Data Ingestion reduces custom code but adds sync delay. Third-party connectors may be faster to start; check their scope and support. The Braze webhook recipe suits only simple, one-way lead creation and updates, and Braze does not directly support it. Compare the platforms in Salesforce vs Braze.

Implementation checklist

  1. 01

    Agree systems of record

    Identity, consent, audiences, events and campaign execution

  2. 02

    Design the ID mapping

    CRM ID to external_id; aliases for leads

  3. 03

    Design consent precedence

    One owner per channel and how changes propagate

  4. 04

    Choose the integration layer

    Middleware or iPaaS with queues and replay

  5. 05

    Create scoped credentials

    One Braze key per purpose; Salesforce External Client App

  6. 06

    Build and test in sandbox

    Test volumes, 429 handling and replay

  7. 07

    Set up reconciliation

    Daily comparison of IDs and consent

  8. 08

    Monitor

    Throughput, errors and mismatches with owners

Questions we hear

Is there a native Salesforce to Braze connector?
No vendor-supported connector is documented. Braze documents a community webhook recipe for Salesforce leads, and the rest is built with APIs and middleware.
Will the acquisition change this architecture?
Not yet. The deal is pending, and until close the companies are separate. Braze says no decisions on post-close plans have been made.
Which system should own consent?
Choose one owner per channel and apply its decisions to the other system. Reconcile regularly.
Is this from a client project?
No. It is a reference design that we validate for each implementation.

Sources

  • https://www.sec.gov/Archives/edgar/data/0001108524/000119312526425881/d516983dex991.htm
  • https://www.sec.gov/Archives/edgar/data/0001676238/000095010326015917/dp255270_defa14a.htm
  • https://www.braze.com/docs/user_guide/get_started/b2b_use_cases/b2b_salesforce_sales_cloud
  • https://braze.com/docs/user_guide/get_started/b2b_use_cases/b2b_data_models/
  • https://www.braze.com/docs/api/endpoints/user_data/post_user_track
  • https://www.braze.com/docs/api/api_limits

Design your Salesforce and Braze integration

Tell us which systems you run and what should flow between them. We can define the systems of record and design the integration layer.

Book a consultation →

Tell us what you are trying to fix.

Share your Salesforce setup, goals and constraints. A practitioner reads every message and replies with questions, first thoughts or an honest view of whether you need outside help at all.

Talk to a Salesforce Expert
Book a Consultation