Salesforce and Braze Integration

A reference pattern for connecting Salesforce CRM and Braze: data ownership, identity, consent, the integration controls to agree, and when not to build it.

Type
Solution
Topic
Braze
Reading time
6 min
Updated
Author
GeekMidst Team
Reviewed by
Site owner
Banner for the GeekMidst solution “Salesforce and Braze Integration”, covering The business problem and Five kinds of data, and where each usually…

Salesforce and Braze do different jobs. Salesforce CRM holds the commercial relationship: accounts, contacts, leads, opportunities and cases. Braze, which describes itself as a customer engagement platform, holds user profiles, app and web events, and the journeys that message people across channels. The real work is deciding which system owns each kind of data and each decision. This page sets out a reference pattern, its controls, and when a simpler design is better.

The business problem

Sales cannot see app engagement, Braze messages someone with an open complaint, an unsubscribe in one system is ignored by the other, and the same person exists twice. These come from unclear ownership, not from a missing API.

Five kinds of data, and where each usually lives

DataWhat it isUsual ownerTypical flow
CRM dataAccounts, contacts, leads, opportunities, cases, ownersSalesforce CRMSelected fields go to Braze as attributes, user aliases or catalog items
Marketing engagement dataSends, opens, clicks, unsubscribes, conversionsBraze, for Braze-sent messagesDetail to cloud storage via Currents, or to Snowflake via Snowflake Data Sharing; summaries to CRM
Event streamsSessions, sign-ups, purchases and other app or web behaviourYour apps, through the Braze SDKsStraight to Braze; to CRM only when a sales or service process needs it
Customer profilesThe person-level view used to target and personaliseBraze profile for engagement; CRM contact for the relationship; Data 360 if licensedKept in step through agreed identifiers
Activation destinationsWhere a decision becomes a message or a taskBraze channels; CRM tasks or lead updatesDefined per use case

Proposed architecture

The diagram is a reference design; we validate the APIs, edition and permissions for each implementation. The Salesforce and Braze reference architecture covers trust boundaries and failure scenarios in more depth.

Salesforce and Braze: reference integration pattern

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

Your Salesforce orgYour integration estateBraze workspace (separate vendor)SYSTEMS OF RECORDINTEGRATION AND CAPTUREENGAGEMENTDELIVERY AND ANALYTICSData 360if licensedSalesforce CRMSales Cloud and Service CloudApps and websitesBraze SDKsData warehouseoptionalIntegration layermiddleware, iPaaS or custom serviceBraze workspaceprofiles, Canvas, CampaignsChannelsemail, push, SMS, in-app and moreCurrents destinationcloud storage or analytics toolrecord changesdata actionszero copy sharingSDK dataCDI syncs/users/trackmessagesCurrents eventswebhooks, Currents HTTPengagement summary
  • Salesforce product
  • Data and analytics
  • Engagement platform
  • Integration layer
  • Channel or touchpoint
  • Your Salesforce org
  • Your integration estate
  • Braze workspace (separate vendor)
  • 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 design, not a built system. Systems of record, consent ownership, APIs and latency are confirmed for each implementation.
Components and data flows (text version)
ComponentTypeResponsibility
Data 360if licensedData and analyticsOptional unified profile and segmentation layer. No native Braze connector is documented, so its output leaves through activations, data actions or data sharing.
Salesforce CRMSales Cloud and Service CloudSalesforce productSystem of record for accounts, contacts, leads, opportunities, cases and owners. Publishes record changes through Change Data Capture or Platform Events.
Apps and websitesBraze SDKsChannel or touchpointProduct surfaces that send sessions, custom events and purchases to Braze through the Braze SDKs, identifying users with changeUser.
Data warehouseoptionalData and analyticsOptional staging point for bulk and modelled data. Braze Cloud Data Ingestion reads from Snowflake, Redshift, Databricks, BigQuery or Microsoft Fabric.
Integration layermiddleware, iPaaS or custom serviceIntegration layerMaps fields and identifiers, batches calls, applies retries and throttling, and keeps API credentials server-side. Owns the dead-letter queue and replay.
Braze workspaceprofiles, Canvas, CampaignsEngagement platformHolds engagement profiles, segments, subscription states and journeys, and decides who receives which message and when.
Channelsemail, push, SMS, in-app and moreChannel or touchpointMessages sent by Braze on the channels configured for the workspace. Subscription groups control which users each sending resource can reach.
Currents destinationcloud storage or analytics toolData and analyticsReceives the Braze engagement event stream in Avro, for example in Amazon S3, Google Cloud Storage or Azure Blob Storage. Salesforce is not a listed Currents destination.

Data flows

  1. Salesforce CRM → Integration layer: record changes. Change events through the Pub/Sub API. High-volume change events are kept for 72 hours, so a consumer that falls behind can replay from its last position.
  2. Data 360 → Integration layer: data actions. Data actions sent to a webhook that the integration layer receives. This is not a native Braze connection.
  3. Data 360 → Data warehouse: zero copy sharing. Insights shared out to a supported warehouse. Confirm the warehouse and feature availability for your org.
  4. Apps and websites → Braze workspace: SDK data. Sessions, custom events and purchases from the Braze SDKs. Users are identified only once they can be uniquely identified.
  5. Data warehouse → Braze workspace: CDI syncs. Scheduled Cloud Data Ingestion syncs, as often as every 5 minutes (the dashboard default minimum is 15). Alert on failed runs.
  6. Integration layer → Braze workspace: /users/track. Attributes, events and purchases, up to 75 objects per request. On a 429, wait for the retry header and resend; 401 and 403 go to the dead-letter queue.
  7. Braze workspace → Channels: messages. Canvas and Campaign sends, filtered by subscription state and subscription groups.
  8. Braze workspace → Currents destination: Currents events. Engagement events streamed in Avro. Profile merges are not reflected in Currents, so reconcile merged profiles downstream.
  9. Braze workspace → Integration layer: webhooks, Currents HTTP. Canvas webhooks and the Currents Custom HTTP Connector send lifecycle and engagement changes to the integration layer.
  10. Integration layer → Salesforce CRM: engagement summary. Aggregated fields or Lead updates written through the Salesforce API by a dedicated integration user. Failures are queued and retried.

Which platform owns which responsibility

ResponsibilitySalesforceBrazeIntegration layer
Account, opportunity and case recordsOwnsReads selected fieldsMoves changes
Person identityOwns contact and lead IDsStores them as external_id or user aliasesMaps and validates
App and web behaviourReceives summaries if neededOwns, through SDKs and /users/trackOptional forwarding
Journeys and messagingSales and service processesCanvas and CampaignsTriggers API-triggered entry where needed
ConsentOne agreed owner per channelSubscription states and groupsSyncs changes both ways
Engagement historySummary fields onlyFull detail, exported by CurrentsAggregates before writing to CRM

Data flows and integration patterns

  • CRM to Braze. Change Data Capture or Platform Events, read through the Pub/Sub API, feed the integration layer, which batches updates into /users/track. Braze's B2B data model guide maps Accounts and Opportunities to Catalogs and Lead or Contact IDs to user aliases.
  • Warehouse to Braze. Cloud Data Ingestion (CDI) syncs attributes, events, purchases, subscription statuses and user deletes. See Braze data activation.
  • Braze to Salesforce. Braze documents Canvas webhooks that create and update Leads, calling it "a community-submitted integration" that "isn't directly supported by Braze"; it is one-way and Lead-only. Currents lists no Salesforce destination.
  • Third-party connectors. Massive Rocket, a third-party firm, lists a "Braze to Salesforce Connector" on the Braze marketplace with no technical detail, and Workato, Tray.ai and RudderStack also advertise connectors. None is part of Braze's own documentation. For Data 360, see Data 360 and Braze.

Integration controls to agree before the build

ControlWhat to decide
Field mappingWhich CRM fields go to Braze, with types and owners; Braze strings hold up to 255 characters
Event schemasNames, required properties and versions, agreed before development
Identity resolution rulesWhich ID becomes the external_id; Braze discourages email, and identified users cannot revert to anonymous
Consent ownershipOne system of record per channel and subscription group
API authenticationBraze REST keys are scoped per endpoint and cannot be edited later; a least-privilege Salesforce integration user
Rate limits/users/track: 75 objects per request; 3,000 requests per three seconds burst for data-point pricing, otherwise by contract. /subscription/status/set: 5,000 per minute. Check your Salesforce API limits
RetriesBack off on 429 using X-RateLimit-Retry-After; never retry 401 or 403
Duplicate preventionOne primary identifier per object; deliberate _update_existing_only; idempotent CRM writes
Ordering and freshnessChange event positions and timestamps; a freshness target per field
RetentionWhat each system keeps; Braze user deletion and CDI user deletes for erasure
Unsubscribe syncOpt-outs both ways, by channel and group
Failure recoveryDead-letter queue, replay within the 72-hour change event window, reconciliation
Testing and rolloutSandbox and test workspace first, then a small audience
Operational ownershipA named owner, runbook and alerts

Security boundaries and failure handling

Keep secrets in the integration layer, never in Canvas or app code. Braze keys can carry IP allowlists; Salesforce writeback uses OAuth with only the scopes needed (see named and external credentials). Park rejected Salesforce writes for review rather than dropping them, and reconcile counts and unsubscribes nightly. See the integration error handling checklist.

When a simpler architecture is better

  • If Braze only needs a daily audience, a CDI sync from your warehouse may be enough, with no middleware.
  • If sales only needs an MQL flag, the documented Lead webhook pattern may do.
  • If you send only email and SMS from Marketing Cloud Engagement and have no app, a second platform may add cost without benefit; see Salesforce Marketing Cloud vs Braze.

Implementation stages

  1. 01

    Discover

    Use cases, data, owners and consent rules per channel.

  2. 02

    Design

    Ownership matrix, mapping, identifiers and the controls above.

  3. 03

    Build

    Integration layer, change events and Braze ingestion, outside production.

  4. 04

    Test

    Identity, consent, failure and volume tests with synthetic data.

  5. 05

    Roll out

    One journey and a small audience, then widen.

  6. 06

    Operate

    Monitor sync lag, errors and unsubscribe parity.

Available today vs proposed

ItemStatus
Braze REST API, SDKs, CDI and CurrentsDocumented by Braze
Braze webhooks to Salesforce LeadsCommunity-submitted pattern, not directly supported by Braze
Salesforce Change Data Capture and Pub/Sub APIDocumented by Salesforce
Native Braze connector in Salesforce, or a MuleSoft Braze connectorNot found in vendor sources
This reference designProposed; validated per implementation

Questions we hear

Is there a native Salesforce connector for Braze?
Not in the vendor sources we checked; Braze documents a community-submitted Lead webhook pattern.
Can Braze Currents send events to Salesforce?
Salesforce is not a listed Currents destination; route events through storage or the Custom HTTP Connector.
Does the acquisition change how we should integrate today?
Not yet. The deal is pending, so design on today's documented APIs.
Which system should own consent?
One per channel, agreed in writing. Everything else follows that owner and syncs changes quickly.

Plan your Salesforce and Braze integration

Tell us which use cases matter and where your data lives. We can map ownership, identity and consent with you before anything is built.

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