Braze + Salesforce
Connect Braze and Salesforce to Unify Marketing and CRM Data
Sync customer engagement data between Braze and Salesforce to power smarter campaigns, close more deals, and deliver personalized experiences at scale.

Why integrate Braze and Salesforce?
Braze and Salesforce are the two systems most revenue teams can't live without — Braze drives personalized multichannel messaging while Salesforce manages the full customer relationship lifecycle. Together, they form a closed-loop system where CRM intelligence fuels campaign targeting and campaign engagement data enriches sales context. Without an integration, you get silos: misaligned outreach, duplicate efforts, and missed revenue.
Automate & integrate Braze & Salesforce
Use case
Sync Salesforce Leads and Contacts to Braze in Real Time
When a new lead is created or an existing contact is updated in Salesforce, automatically create or update the corresponding user profile in Braze with the latest attributes, segments, and custom properties. Marketing campaigns always target accurate, up-to-date audiences — no manual CSV exports, no batch uploads.
Use case
Trigger Braze Campaigns Based on Salesforce Opportunity Stage Changes
Automatically enroll contacts into Braze messaging journeys when their associated Salesforce opportunity moves to a new stage — send onboarding emails when a deal closes Won, or re-engagement messages when a deal goes Closed Lost. This bridges the gap between sales milestones and marketing follow-through without requiring manual handoffs.
Use case
Write Braze Campaign Engagement Events Back to Salesforce
Push Braze email opens, click-throughs, push notification interactions, and in-app message engagements back into Salesforce as activity log entries or custom object records on the corresponding lead or contact. Sales reps get full visibility into a prospect's marketing touchpoints before making a call or sending a follow-up.
Use case
Update Salesforce Fields When Braze Custom Events Fire
When a user completes an action tracked as a Braze custom event — finishing onboarding, hitting a product milestone, or abandoning a checkout — automatically update a corresponding Salesforce field or create a task for the account owner to follow up. CRM records stay current with real-time product and engagement behavior.
Use case
Suppress Salesforce Contacts from Braze Campaigns Based on CRM Status
Automatically remove or suppress contacts from active Braze campaigns when their Salesforce status changes — excluding active customers from acquisition campaigns, suppressing churned accounts from upsell journeys, or removing contacts marked as competitors or partners. Wrong message, wrong person is a brand problem. This prevents it.
Use case
Sync Braze Subscription and Opt-Out States to Salesforce
When a contact unsubscribes, opts out of a channel, or updates communication preferences in Braze, those changes automatically reflect on the corresponding Salesforce contact record's email opt-out, phone preferences, or custom consent fields. This is non-negotiable for GDPR, CAN-SPAM, and CCPA compliance across both platforms.
Use case
Build Braze Segments Dynamically from Salesforce Reports and Campaigns
Use Salesforce reports or campaign member lists to populate Braze audience segments for targeted messaging. Revenue operations and marketing teams can apply complex CRM logic — account health score ranges, renewal dates, multi-touch attribution segments — without rebuilding that same logic inside Braze.
Get started with Braze & Salesforce integration today
Braze & Salesforce Challenges
What challenges are there when working with Braze & Salesforce and how will using Tray.ai help?
Challenge
Matching User Identities Across Both Platforms
Braze and Salesforce use different primary identifiers — Braze relies on external_id or device tokens while Salesforce uses lead and contact IDs — making reliable record matching difficult when email addresses are inconsistent, duplicated, or missing across systems.
How Tray.ai Can Help:
tray.ai's workflow logic lets you build multi-field identity resolution steps that try matching by external ID first, fall back to email address lookup, and handle merge conflicts without breaking the entire workflow. Unmatched records get flagged for manual review rather than silently dropped.
Challenge
Handling High-Volume Event Streams from Braze Webhooks
Braze can emit thousands of engagement events per hour during active campaign periods. An integration that fires a Salesforce API call for every single event will quickly exhaust Salesforce API limits, causing failures and data gaps at exactly the wrong moment.
How Tray.ai Can Help:
tray.ai has built-in rate limiting controls, batch processing, and event buffering, so high-volume Braze webhook streams are queued and written to Salesforce in bulk batches — staying well within API governor limits even during peak sending periods.
Challenge
Keeping Data Transformation Logic Maintainable as Schemas Change
Both Salesforce and Braze schemas evolve over time. Sales ops teams add custom fields, marketing teams create new user attributes, and naming conventions drift between teams — causing hard-coded field mappings to silently break and produce incomplete or incorrect data syncs.
How Tray.ai Can Help:
tray.ai's visual data mapper and reusable workflow components make field mapping logic explicit, easy to audit, and simple to update when schemas change. Operators can modify mappings without touching underlying code, and built-in data validation steps catch schema mismatches before corrupt data reaches either system.
Challenge
Maintaining Compliance When Syncing Consent and Opt-Out Data
With GDPR, CCPA, and CAN-SPAM requirements in force, any delay or error in propagating opt-out signals between Braze and Salesforce creates legal exposure. A contact who unsubscribed in one system may still receive messages from the other if the sync is batch-based or unreliable.
How Tray.ai Can Help:
tray.ai handles opt-out propagation in real time using event-driven triggers rather than scheduled batch syncs, so consent changes in either Braze or Salesforce are reflected in the other system within seconds. Every sync event is audit-logged, so you've got a compliance trail ready if you ever need it.
Challenge
Orchestrating Bidirectional Sync Without Infinite Update Loops
A bidirectional integration between Braze and Salesforce risks creating circular update loops where a change written from Salesforce to Braze triggers a Braze webhook that writes back to Salesforce, which fires another update — resulting in runaway API consumption and data instability.
How Tray.ai Can Help:
tray.ai workflows support conditional logic and state-tracking that detect whether an update came from the integration itself or from an actual user or system action. Records get stamped with a sync source identifier, and that value is checked before any downstream write is triggered — which is what stops bidirectional integrations from spiraling.
Start using our pre-built Braze & Salesforce templates today
Start from scratch or use one of our pre-built Braze & Salesforce templates to quickly solve your most common use cases.
Braze & Salesforce Templates
Find pre-built Braze & Salesforce solutions for common use cases
Template
New Salesforce Lead to Braze User Profile Sync
Automatically creates or updates a Braze user profile every time a new lead is created in Salesforce, mapping standard and custom CRM fields to Braze user attributes for immediate use in campaigns and segmentation.
Steps:
- Trigger: New lead created or lead record updated in Salesforce
- Transform: Map Salesforce lead fields (name, email, lifecycle stage, owner, account tier) to Braze user attribute schema
- Action: Create or update Braze user profile via the /users/track endpoint with mapped attributes
Connectors Used: Salesforce, Braze
Template
Salesforce Opportunity Won to Braze Onboarding Journey Enrollment
When a Salesforce opportunity is moved to Closed Won, this template immediately enrolls the associated contact in a designated Braze Canvas onboarding journey, so new customers receive timely welcome and activation messaging.
Steps:
- Trigger: Salesforce opportunity stage changes to Closed Won
- Lookup: Retrieve contact details and email from the associated Salesforce contact or account record
- Action: Send a Braze custom event to the user profile to trigger Canvas entry or send a campaign via the messaging API
Connectors Used: Salesforce, Braze
Template
Braze Email Engagement Events to Salesforce Activity Log
Captures Braze email open, click, and conversion events via webhook and logs them as activity entries on the matching Salesforce lead or contact record, giving sales teams full campaign visibility inside their CRM.
Steps:
- Trigger: Braze sends a webhook payload for email open, click, or conversion event
- Lookup: Match the Braze external user ID or email to a Salesforce lead or contact record
- Action: Create a Salesforce task or activity log entry with campaign name, event type, and timestamp
Connectors Used: Braze, Salesforce
Template
Salesforce Contact Opt-Out to Braze Subscription Group Update
Monitors Salesforce contact records for changes to the email opt-out or communication preference fields and immediately updates the corresponding Braze subscription group status to keep compliance consistent across both platforms.
Steps:
- Trigger: Salesforce contact record updated with EmailOptOut set to true or custom consent field changed
- Lookup: Identify the corresponding Braze user profile by external ID or email address
- Action: Update Braze subscription group status to unsubscribed via the subscription/status/set endpoint
Connectors Used: Salesforce, Braze
Template
Braze Custom Event to Salesforce Task and Field Update
Listens for high-intent Braze custom events — trial expiration, onboarding completion, cart abandonment — and creates a follow-up task in Salesforce for the account owner while updating a custom field to reflect the latest engagement milestone.
Steps:
- Trigger: Braze custom event webhook fires for a defined high-intent user action
- Lookup: Find the matching Salesforce lead, contact, or opportunity record by user ID or email
- Action: Create a Salesforce task assigned to the record owner and update a custom engagement milestone field on the record
Connectors Used: Braze, Salesforce
Template
Salesforce Campaign Member List to Braze Segment Refresh
Periodically reads the member list from a Salesforce campaign and synchronizes those contacts into a corresponding Braze segment, so CRM-built audience logic can power Braze messaging without manual list management.
Steps:
- Trigger: Scheduled tray.ai workflow runs at a defined interval or on Salesforce campaign update
- Fetch: Query Salesforce campaign members and retrieve email addresses and external IDs
- Action: Batch update Braze user profiles with a custom attribute flag used to define the target segment
Connectors Used: Salesforce, Braze