# Braze Destination Setup Guide


This guide will help you set up Braze as a destination in the RudderStack dashboard. It also lists the configuration settings required to correctly send data from the supported sources to Braze.

## Connection compatibility

{{< destination-config >}}

## Important considerations

Review the following considerations before using the Braze integration with RudderStack.

### Device mode support for Flutter and React Native

Device mode support for Flutter and React Native sources (as seen in the [above table](#connection-compatibility)) applies to mobile (Android and iOS) platforms only. If you are deploying a Flutter app to the web, you can send events to Braze via the Flutter SDK in cloud mode only.

As a workaround, you can create a separate [JavaScript source]({{< ref "sources/event-streams/sdks/rudderstack-javascript-sdk/" >}}) in RudderStack and use its {{< glossary_tooltip "write-key" >}} for the web build of your Flutter apps to send events to these destinations in web device mode.

### Domain allowlisting for web device mode

In the web device mode integration, that is, when using [JavaScript SDK]({{< ref "sources/event-streams/sdks/rudderstack-javascript-sdk/_index.md" >}}) as a source, RudderStack loads the Braze native SDK from the `https://js.appboycdn.com/` domain.

Based on your website's content security policy, you might need to [allowlist this domain]({{< ref "sources/event-streams/sdks/rudderstack-javascript-sdk/load-js-sdk.md#allowlist-destination-domain" >}}) to load the Braze SDK successfully.

## Setup

1. In your [RudderStack dashboard](https://app.rudderstack.com/), set up a source.
2. Go to the **Overview** tab of your source and select **Add Destination** > **Create new destination**.

{{< image src="images/event-stream-destinations/add-new-destination.webp" alt="Add new destination in RudderStack dashboard" >}}

3. Select **Braze** from the list of destinations. Then, click **Continue**.

## Connection settings

| Setting | Description |
| :----| :-----|
| Destination name | Assign a name to uniquely identify the destination. |
| Enable Platform-specific App Identifier Keys <br/> <span style="color: #4D4DFF;font-size:12px;">Beta</span> | Toggle on this setting to configure platform-specific App Identifier keys (Android, iOS, and web) for proper data attribution in Braze. <br /><br />**Note**: <br /><br /><ul><li>This setting is applicable only when sending events in **device** or **hybrid** mode.</li><li>Once toggled on, the appropriate fields for entering the platform-specific keys are displayed based on the connected sources.</li></ul> {{< warning >}}To use this setting, your device mode integration needs to be on a specific minimum version. See [this section]({{< ref "destinations/streaming-destinations/braze/device-mode.md#how-api-key-selection-works" >}}) for the supported versions.{{< /warning >}} |
| Default App Identifier Key | Enter your [Braze Default App Identifier Key](#where-can-i-find-the-braze-default-app-identifier-key). <br /><br />{{< info >}}RudderStack uses this key as a fallback if platform-specific keys are unavailable.{{< /info >}} |
| REST API Key | Enter the [REST API key](#where-can-i-find-the-braze-rest-api-key) associated with your project required for **cloud mode connections**. <br /><br />**Note**: When creating a new Braze Rest API Key for your app, make sure to select the following [permissions](https://www.braze.com/docs/api/basics/#rest-api-key-permissions):<br /><br /> <table><tr><th>Permission</th><th>Description</th></tr><tr><td>users.track</td><td>For creating/updating users and registering events.</td></tr><tr><td>users.identify</td><td>For identity resolution of identified and anonymous users.</td></tr><tr><td>users.delete</td><td>For [deleting users]({{< ref "destinations/streaming-destinations/braze/cloud-mode.md#delete-a-user" >}}).</td></tr><tr><td>users.alias.new and users.merge</td><td>For aliasing users.</td></tr><tr><td>users.export.ids</td><td> For [deduplication]({{< ref "destinations/streaming-destinations/braze/trait-deduplication.md" >}}).</td></tr></table>  |
|Data Center | Specify the [data center](https://www.braze.com/docs/user_guide/data/data_centers/#list-of-data-centers) associated with your Braze account. See [Supported Braze data centers](#supported-braze-data-centers) for more information. <br /><br />**Note**: To get your data center details, log in to your Braze account and note your URL. |

#### Supported Braze data centers

<table>
	<tbody>
		<tr>
			<th>Data center region</th>
			<th>Dashboard URL</th>
		</tr>
		<tr>
			<td>Australia</td>
			<td>https://dashboard.au-01.braze.com</td>
		</tr>
		<tr>
			<td rowspan="2">Europe</td>
			<td>https://dashboard-01.braze.eu</td>
		</tr>
		<tr>
			<td>https://dashboard-02.braze.eu</td>
		</tr>
		<tr>
			<td rowspan="8">US</td>
			<td>https://dashboard-01.braze.com</td>
		</tr>
		<tr>
			<td>https://dashboard-02.braze.com</td>
		</tr>
		<tr>
			<td>https://dashboard-03.braze.com</td>
		</tr>
		<tr>
			<td>https://dashboard-04.braze.com</td>
		</tr>
		<tr>
			<td>https://dashboard-05.braze.com</td>
		</tr>
		<tr>
			<td>https://dashboard-06.braze.com</td>
		</tr>
		<tr>
			<td>https://dashboard-07.braze.com</td>
		</tr>
        <tr>
			<td>https://dashboard-08.braze.com</td>
		</tr>
	</tbody>
</table>

### Event settings

| Setting | Description |
| :----| :-----|
| Enable subscription groups in group call | Turn on this setting to send the subscription group status in your [`group`]({{< ref "destinations/streaming-destinations/braze/cloud-mode.md#group" >}}) events. <br /><br />**Note**: This setting is available only in cloud mode.  |
| Use Custom Attributes Operation | Turn on this setting to use Braze's [nested custom attributes](https://www.braze.com/docs/user_guide/data_and_analytics/custom_data/custom_attributes/array_of_objects/) functionality to create segments and personalize your messages using a custom attribute object. For more information, see [Send user traits as nested custom attributes]({{< ref "destinations/streaming-destinations/braze/cloud-mode.md#send-user-traits-as-nested-custom-attributes" >}}). <br /><br />**Note**: This setting is available only in cloud mode. |

### Deduplication settings

| Setting | Description |
| :----| :-----|
| Deduplicate Traits | Turn on this setting to enable traits [deduplication]({{< ref "destinations/streaming-destinations/braze/trait-deduplication.md" >}}) for the `identify` and `track` calls. |

### Web SDK settings

Configure the following settings to send events to Braze in [web device mode]({{< ref "destinations/rudderstack-connection-modes.md#device-mode" >}}):

| Setting | Description |
| :----| :-----|
| Show Braze logs | Turn on this setting to show Braze logs to the customers. |
|  Use web push notifications | Turn on this setting to use [push notifications for web](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/integration#step-1-configure-your-sites-service-worker). <br /><br />**Note**: This feature requires you to set up a [service worker](https://www.braze.com/docs/developer_guide/platform_integration_guides/web/push_notifications/integration) on your site. |
| Enable HTML in-app messages | Turn on this setting to enable HTML in-app messages. |
| Track events for anonymous users | Turn on this setting to track anonymous user activity and send this information to Braze. |

### Other settings

| Setting | Description |
| :----| :-----|
| Client-side Events Filtering | This setting lets you specify which events should be blocked or allowed to flow through to Braze. For more information on this setting, see [Client-side Events Filtering]({{< ref "sources/event-streams/sdks/event-filtering.md" >}}). |
| OneTrust Cookie Categories | This setting lets you associate the [OneTrust]({{< ref "data-governance/consent-management/onetrust/javascript.md" >}}) cookie consent groups to Braze. |

## Next steps

- [Send events in cloud mode]({{< ref "destinations/streaming-destinations/braze/cloud-mode.md" >}})
- [Send events in device mode]({{< ref "destinations/streaming-destinations/braze/device-mode.md" >}})
- [Send events in hybrid mode]({{< ref "destinations/streaming-destinations/braze/hybrid-mode.md" >}})

## FAQ

#### Where can I find the Braze Default App Identifier Key?

1. Log in to your [Braze dashboard](https://dashboard.braze.com/auth).
2. Go to **Settings** > **APIs and Identifiers**.
3. Go to the **App Identifiers** section:

{{< image src="images/event-stream-destinations/braze-default-api-key.webp" alt="Braze Default API Key" >}}

4. The [Default App Identifier Key](#connection-settings) for your specific app is listed here.

{{< image src="images/event-stream-destinations/braze-default-api-key-2.webp" alt="Braze Default API Key" >}}

#### Where can I find the Braze REST API Key?

1. Log in to your [Braze dashboard](https://dashboard.braze.com/auth).
2. Go to **Settings** > **APIs and Identifiers**.
3. Go to the **API Keys** section:

{{< image src="images/event-stream-destinations/braze-rest-api-key.webp" alt="Braze REST API Key" >}}

4. You can find the [REST API Key](#connection-settings) for your workspace listed here.

{{< image src="images/event-stream-destinations/braze-rest-api-key-2.webp" alt="Braze REST API Key" >}}
