Braze
Customer engagement platform for personalised messaging across channels including push, email, in-app, and SMS.
Prerequisites
Complete these steps in Braze before configuring Signal.
Access your Braze dashboard
Log in to the Braze dashboard at your cluster-specific URL (e.g. dashboard-01.braze.com for US-01 or dashboard-01.braze.eu for EU-01). If you do not have an account, contact your Braze representative.
Create or select a workspace
If you have multiple workspaces, select the workspace you want to send events to. New Braze accounts have a default workspace already created.
Find your REST API Key
Navigate to Settings > API Keys. Under the REST API Keys section, locate an existing key or click Create New API Key. The key must have permissions for users.track, users.identify, and users.export at minimum. Copy the key.
Find your App ID
On the same Settings > API Keys page, scroll down to the Identification section. Locate your App Identifier for the relevant app group. Copy this value.
Determine your REST endpoint cluster
Your REST endpoint is determined by your Braze dashboard URL. Use the table below:
| Dashboard URL | REST Endpoint | Value for Signal |
|---|---|---|
dashboard-01.braze.com | rest.iad-01.braze.com | US-01 |
dashboard-02.braze.com | rest.iad-02.braze.com | US-02 |
dashboard-03.braze.com | rest.iad-03.braze.com | US-03 |
dashboard-01.braze.eu | rest.fra-01.braze.eu | EU-01 |
dashboard-02.braze.eu | rest.fra-02.braze.eu | EU-02 |
Determine your SDK endpoint (optional)
If you plan to also load the Braze client-side SDK alongside server-side delivery, note the SDK endpoint for your cluster:
| Cluster | SDK Endpoint |
|---|---|
| US-01 | sdk.iad-01.braze.com |
| US-02 | sdk.iad-02.braze.com |
| US-03 | sdk.iad-03.braze.com |
| EU-01 | sdk.fra-01.braze.eu |
| EU-02 | sdk.fra-02.braze.eu |
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
rest_api_key | secret | Yes | Your Braze REST API key. Found in Settings > API Keys. |
app_id | string | Yes | The app identifier for the target app group. Found in Settings > API Keys under Identification. |
rest_endpoint | select | Yes | The Braze REST endpoint cluster for your account (e.g. US-01, EU-01). |
sdk_endpoint | select | No | The Braze SDK endpoint. Required only if loading the client-side SDK. |
external_id_field | string | No | The event property to use as the Braze external_id. Defaults to user_id if not specified. |
Signal Setup
Quick Setup
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Braze or filter by CDP.
- Click Install, select a variant if applicable, and fill in the required fields with the credentials gathered above.
- Click Install Integration to create the integration with a ready-to-use default configuration.
API Setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/braze/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Braze",
"variant": "default",
"config": {
"rest_api_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"app_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"rest_endpoint": "US-01"
},
"delivery_mode": "server_side"
}'Variants
Braze is available in multiple pre-configured variants to match your use case:
| Variant | Description |
|---|---|
| Default | Standard Braze integration for user tracking, custom events, and user attribute updates. |
| Retail | Optimised for retail and e-commerce with purchase events, cart activity, and product interaction tracking. |
| Media | Optimised for media and content platforms with content engagement, watch time, and subscription event tracking. |
Each variant provides a tuned default configuration. You can customise any setting after installation.
Event Mapping
Signal events are mapped to Braze API calls as follows:
| Signal Event | Braze Concept | Notes |
|---|---|---|
page | Custom event | Page views sent as custom events with URL, title, and referrer properties |
track | Custom event via /users/track | Event name and properties forwarded as Braze custom events |
identify | User attributes via /users/track | Traits mapped to Braze user attributes (email, name, phone, custom attributes) |
track (purchase) | Purchase event via /users/track | Product ID, currency, price, and quantity sent as Braze purchase events |
The external_id is resolved from the event property specified in external_id_field (defaults to user_id). Anonymous events use the Braze anonymous ID.
Delivery
Events are delivered server-side from your Datafly Signal infrastructure directly to the Braze REST API. No client-side scripts are loaded unless you explicitly enable the SDK endpoint.
Testing
- After installing the integration, trigger a test event from your website or via the Signal event API.
- In Braze, navigate to Users > User Search and search by external ID or email to verify the user profile was created.
- On the user profile, check the Custom Events tab to verify events were received and the User Profile tab for attribute updates.
- In Signal, check the Live Events view to confirm the event was delivered with a
201response status.
Troubleshooting
| Symptom | Possible Cause | Resolution |
|---|---|---|
401 Unauthorized | Invalid REST API key | Verify the REST API key in Braze Settings > API Keys. Ensure it has users.track permission |
400 Bad Request | Missing external_id | Ensure events include the field mapped to external_id_field (default: user_id) |
| Wrong endpoint | Cluster mismatch | Verify the REST endpoint matches your Braze dashboard URL cluster |
| Events delivered but user not found | Wrong app group | Verify the app_id matches the correct workspace/app group |
429 Too Many Requests | Rate limit exceeded | Braze applies per-workspace rate limits. Review the X-RateLimit-Remaining header and throttle if needed |
Visit Braze documentation for full API reference, endpoint details, and SDK integration guides.