What you can sync
- Customers: create, update, and delete users in Braze
- Events: send behavioral events as Braze custom events
- Purchases: send order line items as Braze purchases
- Audiences: add a custom attribute with the Masivo audience name
Prerequisites
- A Braze REST API Key with permissions to create users, track events, and purchases
Your Masivo customer
id
will be used as Braze external_id
Rate limits and batching
Braze has specific limits that Masivo respects automatically:- Rate limit: 3,000 calls every 3 seconds
- Batch size: Each call can include up to 75 attributes, 75 events, and 75 purchases
- User deletion limit: 50 user deletions per request (Braze API limitation)
- Masivo groups messages by account and sends them in optimal batches to stay within these limits
Configuration
- Go to Settings → Integrations → Braze in the Masivo dashboard.
- Paste your Braze API Key.
- Configure your Braze REST Endpoint: Each Braze account has a unique REST Endpoint (e.g.,
https://rest.iad-01.braze.com
for US East,https://rest.fra-01.braze.com
for EU). - Enable the toggles you need:
- Audiences
- Events
- Purchases (only fulfilled purchases are synced)
- Customer tags
- Customers: Create, Update, Delete
Make sure to use the correct Braze REST Endpoint for your account. Using the
wrong REST Endpoint will cause API calls to fail. You can find your account’s
REST Endpoint in the Braze dashboard under Settings → API Settings.
How it works
Once configured, Masivo automatically syncs your data to Braze:- Real-time sync: Data is sent to Braze as soon as events occur in Masivo
- Smart validation: Masivo checks your configuration and only sends data that meets your criteria
- Efficient processing: Data is batched and sent in optimal groups to respect Braze’s limits
- Error handling: Failed syncs are logged and don’t affect other integrations
What gets validated
Before sending data to Braze, Masivo validates:- Your API configuration is correct
- The specific features you want to sync are enabled
- Data meets your business rules (e.g., only fulfilled purchases)
- Events are not internal system events
How purchases work in Braze
Purchases are additive, not replacement-based:- If the user already exists in Braze, the
purchases
block adds the purchase to their history (doesn’t delete previous ones) - If the user doesn’t exist, Braze creates the user and then registers the purchase
- Each purchase has its own identifier and timestamp, maintaining a complete transaction history
- Reversals and cancellations are handled by sending additional purchases with negative prices
Event properties behavior
When sending events with custom properties:- Flat key-value properties are supported but won’t automatically appear in the user profile UI
- Only flat properties (not nested objects) are properly visible and segmentable
- Masivo flattens complex event data before sending to ensure compatibility
Protected internal events such as REGISTRATION, FULFILL, REVERSE, EXPIRE,
CANCEL, REDEEM_COUPON and TIER_ADJUSTMENT are not forwarded to Braze.
Audience synchronization
Audience calculation operations
- Sends audience information as custom attributes to Braze
- Requires
audience_id
in your data - Automatic prefix: Masivo adds a “masivo_” prefix to audience names to prevent conflicts with existing Braze audiences
Audience DELETE operations
- Automatically gathers all customers in the audience before deletion
- Sends complete customer list to Braze for proper cleanup
- Ensures Braze has all necessary information for audience removal
When deleting audiences, Masivo automatically collects all customer data to
ensure Braze can properly clean up the audience information.
Masivo automatically prefixes audience names with “masivo_” to avoid naming
conflicts with existing Braze audiences. For example, an audience named “VIP
Customers” in Masivo will appear as “masivo_VIP Customers” in Braze.