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 URLREST EndpointValue for Signal
dashboard-01.braze.comrest.iad-01.braze.comUS-01
dashboard-02.braze.comrest.iad-02.braze.comUS-02
dashboard-03.braze.comrest.iad-03.braze.comUS-03
dashboard-01.braze.eurest.fra-01.braze.euEU-01
dashboard-02.braze.eurest.fra-02.braze.euEU-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:

ClusterSDK Endpoint
US-01sdk.iad-01.braze.com
US-02sdk.iad-02.braze.com
US-03sdk.iad-03.braze.com
EU-01sdk.fra-01.braze.eu
EU-02sdk.fra-02.braze.eu

Configuration

FieldTypeRequiredDescription
rest_api_keysecretYesYour Braze REST API key. Found in Settings > API Keys.
app_idstringYesThe app identifier for the target app group. Found in Settings > API Keys under Identification.
rest_endpointselectYesThe Braze REST endpoint cluster for your account (e.g. US-01, EU-01).
sdk_endpointselectNoThe Braze SDK endpoint. Required only if loading the client-side SDK.
external_id_fieldstringNoThe event property to use as the Braze external_id. Defaults to user_id if not specified.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Braze or filter by CDP.
  4. Click Install, select a variant if applicable, and fill in the required fields with the credentials gathered above.
  5. 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:

VariantDescription
DefaultStandard Braze integration for user tracking, custom events, and user attribute updates.
RetailOptimised for retail and e-commerce with purchase events, cart activity, and product interaction tracking.
MediaOptimised 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 EventBraze ConceptNotes
pageCustom eventPage views sent as custom events with URL, title, and referrer properties
trackCustom event via /users/trackEvent name and properties forwarded as Braze custom events
identifyUser attributes via /users/trackTraits mapped to Braze user attributes (email, name, phone, custom attributes)
track (purchase)Purchase event via /users/trackProduct 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

  1. After installing the integration, trigger a test event from your website or via the Signal event API.
  2. In Braze, navigate to Users > User Search and search by external ID or email to verify the user profile was created.
  3. On the user profile, check the Custom Events tab to verify events were received and the User Profile tab for attribute updates.
  4. In Signal, check the Live Events view to confirm the event was delivered with a 201 response status.

Troubleshooting

SymptomPossible CauseResolution
401 UnauthorizedInvalid REST API keyVerify the REST API key in Braze Settings > API Keys. Ensure it has users.track permission
400 Bad RequestMissing external_idEnsure events include the field mapped to external_id_field (default: user_id)
Wrong endpointCluster mismatchVerify the REST endpoint matches your Braze dashboard URL cluster
Events delivered but user not foundWrong app groupVerify the app_id matches the correct workspace/app group
429 Too Many RequestsRate limit exceededBraze 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.