Connect Reverse ETL Source to Braze Audiences Beta

Configure a Reverse ETL source with your Braze Audiences destination.

This guide takes you through the steps to connect a Reverse ETL source to your Braze Audiences destination.

success
You can connect multiple Reverse ETL sources (and audience syncs) to the same Braze account. Each sync uses its own custom attribute name.

Setup

  1. Set up and configure your Reverse ETL source.
  2. In the Overview tab of the source page, click Add destination > Create new destination. You can also select an already-configured destination here.
  3. From the list of destinations, select Braze Audiences and click Continue.
  4. Specify a unique name to identify this destination in RudderStack.
  5. In the Braze account section, click Select to choose an existing account. To add a new account, click Add account, and specify the following settings:
Setting
Description
Account NameSpecify a unique account name.
REST API KeyEnter your Braze REST API key with permission to call users.track / users.track.bulk.
info
Braze’s /users/track/bulk endpoint may require early access. Confirm access with your Braze account team before using it in production.
Data CenterSelect the Braze data center for your workspace (same options as the event-stream Braze destination — for example US-01US-08, EU-01EU-03, AU-01). Match the region shown in your Braze dashboard URL.
  1. Proceed to configure the mapping settings.

Mapping settings

This section lists the settings to correctly map data from your Reverse ETL source to the Braze Audiences destination.

Audience attribute name

Enter the Braze custom attribute name that represents membership in this audience (for example, rs_high_value_customers).

  • Edit the auto-suggested sanitized name from your audience or connection name before saving if needed.
  • Allowed characters: letters, numbers, and underscores (/^[a-zA-Z0-9_]+$/), maximum length 255.
  • Do not use external_id — that name is reserved.
  • The attribute is not selected from a Braze catalog. Braze creates the custom attribute on the first successful write.

Sync mode

RudderStack supports only Mirror mode for this integration. There is no sync-mode selector in the UI.

Map identifiers

Map exactly one warehouse column to Braze external_id. user_alias and additional identifier rows are not supported for this destination.

Sync settings

RudderStack determines how and when to run a sync based on the sync schedule you set for your Reverse ETL connection.

Schedule typeDescription
BasicRun syncs at a given time interval and specified time (in UTC).
CRONRun syncs based on a specified CRON expression (in UTC).
ManualRun syncs manually.

Sync observability settings

SettingDescription
Retain sync logsThis setting is toggled on by default and instructs RudderStack to store the sync logs in your warehouse. You can also configure the below settings:

SettingDescription
Sync log retentionSpecify the retention period of the sync logs in your warehouse.

If you set it to 1, then RudderStack deletes any sync log older than a day (in UTC time).
Snapshot table retentionSpecify the number of snapshot tables to retain.
Retry failed recordsThis setting is toggled on by default and causes RudderStack to continually retry sending the failed records.
warning
Storing sync logs and snapshot tables may incur additional warehouse costs.

How membership is written to Braze

In mirror mode, audience membership changes map to boolean custom-attribute updates via Braze POST /users/track/bulk:

Action
Braze custom attribute value
Insert or updatetrue (user is in the audience)
Deletefalse (user left the audience)
warning
Leaving the audience sets the attribute to false. It does not delete the custom attribute key from the Braze profile.

Note that:

  • Requests are batched (up to 1000 attribute updates per bulk request, subject to Braze payload limits).
  • One Braze account can back many syncs; each sync should use a different custom attribute name.

Identifier validation

Before sending data to Braze, each row is validated:

Identifier
Validation
external_idMust be a non-empty string or finite number after trim. Missing, empty, whitespace-only, or non-scalar values are not sent.

Rows with no valid identifier are skipped and reported as failed records in the sync report. The sync completes with failures rather than stopping entirely.

FAQ

Where can I find the Braze REST API key?

In the Braze dashboard, go to Settings > APIs and Identifiers > API Keys, and create or copy a REST API key with track/bulk permissions.

For more information, see Braze REST API key permissions and the event-stream Braze setup guide.

How is Braze Audiences different from the Braze destination?

Braze (event stream)Braze Audiences
Typical useTracks, identifies, pages, screensAudience / Reverse ETL membership
PayloadEvent stream messagesrecord membership updates
Braze surfaceEvents and profile traitsBoolean custom attribute per sync
Sync modeN/A (streaming)Mirror only

Does leaving the audience remove the custom attribute in Braze?

No. Delete / leave actions set the attribute to false. The key remains on the profile so campaigns and segments can still target “not in audience”.

Why did Test connection succeed with a 400 from Braze?

Credential checks may call Braze with an empty attributes payload. Braze can respond with 400 (No data parsed) for a valid API key. Treat that as a successful credential check. A 401 means the key or data center is wrong.


Questions? We're here to help.

Join the RudderStack Slack community or email us for support