> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Braze integration with AID

> Connect Braze to AI Decisioning so agents can deliver personalized emails, SMS, push notifications, and in-app messages through your existing Braze Campaigns and Canvases.

## Before you begin

* [Prepare data for AID](https://docs.hightouch.com/ai-decisioning/prepare-data.md)

## Overview

Delivering relevant and timely customer experiences in Braze requires up-to-date, contextual data. By integrating Hightouch's AI Decisioning (AID) with Braze, you can:

* Automatically trigger Braze Campaigns or Canvases based on predictions and behaviors surfaced by AID Agents
* Personalize message content using dynamic variables from your data warehouse
* Centralize targeting and decision logic in Hightouch, while using Braze to handle message delivery

## 1. Set up Braze as a destination

> [!NOTE]
>
> Already configured Braze? Even if you’ve previously set Braze up as a
> destination, you’ll still need to apply the required permissions for AID.

To [connect Braze to Hightouch](https://docs.hightouch.com/destinations/braze.md), you’ll need:

* An **API key** with the correct permissions
* Your **Braze region** identifier

### Step 1: Create API key

**In Braze:**

1. Go to **Settings > APIs and Identifiers**
2. Select **Create API Key**

   ![Create API key](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-create-api-key.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=a7bfb32e5032bfeed1b4e4011b6e7231)

### Step 2: Set required permissions

1. Assign the following permissions:

| Feature | Required Permissions |
| - | - |
| Campaigns | `campaigns.trigger.send`, `campaigns.list`, `campaigns.details`, `campaigns.trigger.schedule.create` |
| Canvas | `canvas.trigger.send`, `canvas.list`, `canvas.details` |
| Messages | `messages.send` |
| Templates | `templates.email.list`, `templates.info` |

![Campaign permissions](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-campaign-permissions.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=ea8535fdeffe9cf965f292b6d38535d0)

![Canvas permissions](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-canvas-permissions.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=4cc0e115660ab68b0a8446b2fc76e787)

![Message permissions](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-message-permissions.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=b8dcdcaa978fe649c3107c3d0f421461)

![Template permissions](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-template-permissions.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=36053cedf47ec0a8da67dc38141ecc9d)

### Step 3: Find your Braze region

Use the table below to find your Braze region:

| URL | Region |
| - | - |
| [https://dashboard-01.braze.com](https://dashboard-01.braze.com) | `iad-01.braze.com` |
| [https://dashboard-02.braze.com](https://dashboard-02.braze.com) | `iad-02.braze.com` |
| [https://dashboard-03.braze.com](https://dashboard-03.braze.com) | `iad-03.braze.com` |
| [https://dashboard-04.braze.com](https://dashboard-04.braze.com) | `iad-04.braze.com` |
| [https://dashboard-05.braze.com](https://dashboard-05.braze.com) | `iad-05.braze.com` |
| [https://dashboard-06.braze.com](https://dashboard-06.braze.com) | `iad-06.braze.com` |
| [https://dashboard-07.braze.com](https://dashboard-07.braze.com) | `iad-07.braze.com` |
| [https://dashboard-08.braze.com](https://dashboard-08.braze.com) | `iad-08.braze.com` |
| [https://dashboard-01.braze.eu](https://dashboard-01.braze.eu) | `fra-01.braze.eu` |
| [https://dashboard-02.braze.eu](https://dashboard-02.braze.eu) | `fra-02.braze.eu` |

Braze also supports additional regions — `eu-01` and `eu-02` (`.braze.eu`), and `au-01`, `id-01`, and `us-10` (`.braze.com`). Match your dashboard URL to the region shown in your Braze account settings.

### Step 4: Connect to Hightouch

1. Go to **Integrations > Destinations**

2. Select **Add destination**

3. Select **Braze** and select **Continue**

   ![Select destination](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-select-destination.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=8447a54479ae70bfcc932ad788d6587c)

4. Paste your API key and select your Region.

5. Select **Test Connection** to verify setup. You should see `Success` for Campaigns and Canvases.

6. Select **Continue**.

   ![Connect destination](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-connect-destination.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=f22a1af751d0371e8abe946669ea48cd)

7. Optional: configure alerts. You can also do this later in **Integrations > Alerting**.

   ![Configure alerts](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-configure-alerts.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=943472f0cd30ae83584b4ecb47cd87bf)

8. Finalize destination settings and select **Finish**.

   ![Finalize destination](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-finalize-destination.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=863b3b31b32048b3afa1e35fc141709c)

## 2. Add channels in AI Decisioning

Once Braze is set up as a destination, you can add **channels**. Channels define how Hightouch sends messages to Braze—via Campaigns or Canvases.

### Set up a channel

1. Go to **AI Decisioning > Configuration > Channels**.
2. Select **Add channel**.
3. Choose a channel type: Email, SMS, Push, or In-App.
4. Select **Braze** as the destination.
5. Choose a [sync type](https://docs.hightouch.com/ai-decisioning/braze.md#sync-type):
   * **Campaign trigger**: One-time, real-time sends. Recommended for email, SMS, and push.
   * **Canvas trigger**: Sends through a Braze Canvas flow. Recommended for in-app messages.
6. Select an **identifier** — the user column that identifies the recipient, such as `external_id` or `email`.
7. Select **Add channel**,
8. Select your new channel and select **Save changes**.

![Add channel button](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-add-channel.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=7946c54e287209f688a39a513c81c186)

![New channel modal](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-add-channel-braze.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5194ccc48bc6401fb774b72e20b539c2)

### Sync type comparison

The **Sync Type** determines how Hightouch sends messages through Braze. Here’s a breakdown of the available options:

| Channel | Campaign trigger | Canvas trigger |
| - | - | - |
| Email | ✅ (recommended) | ✅ |
| SMS | ✅ (recommended) | ✅ |
| Push | ✅ (recommended) | ✅ |
| In-App | ✅ | ✅ (recommended) |

| **Sync type** | Best for | Message timing | Dynamic vars |
| - | - | - | - |
| **Campaign trigger** | Immediate, single-send campaigns for Email, SMS, and Push | Immediate | Fully supported |
| **Canvas trigger** | In-app messages | Immediate | Limited (no API-triggered overrides) |

## 3. Add messages

After you add channels in AI Decisioning, you can add **messages** to your agents. Each message connects an agent’s decision to a Braze Campaign or Canvas.

For full details on message configuration, variants, and tags, see [Messages](https://docs.hightouch.com/ai-decisioning/messages.md).

### Add a message from Braze

1. Go to **AI Decisioning > Agents** and select your agent.

2. Open the **Messages** tab.

3. Select **Add messages**, then select **Add messages individually**.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-add-messages.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=85b2cc548b7b9280757ebff29c83518a)

4. Select your configured Braze **channel and destination** tile (for example, **Push - Braze (Campaign)**).

5. Under **Braze campaign**, select the campaign or canvas you created in Braze.

6. Enter a **message name** and select **Add messages**.

   ![Add message modal](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-new-message-modal.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=bb578a744cdadb69cc844c4eb1350f00)

You can repeat this process for each channel:

* [Email via campaign trigger](https://docs.hightouch.com/ai-decisioning/braze.md#campaign-trigger)
* [SMS via campaign trigger](https://docs.hightouch.com/ai-decisioning/braze.md#campaign-trigger)
* [Push via campaign trigger](https://docs.hightouch.com/ai-decisioning/braze.md#campaign-trigger)
* [In-app messages via canvas trigger](https://docs.hightouch.com/ai-decisioning/braze.md#canvas-trigger)

### Test a message

1. Open the message and go to the **Content** tab.
2. Under **Optimized content**, confirm your variants are configured. If your message uses [dynamic variables](https://docs.hightouch.com/ai-decisioning/braze.md#use-variables-in-braze), set values for testing.
3. In the **Preview** panel, verify the rendered message looks correct.
4. Select **Send test** to send the message to a test user in Braze.

   ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=9b5502dadeb444ed7df0f9fcd9923222)

#### Test requirements

Your test will only succeed if:

* The Braze Campaign or Canvas is **Active** (not a draft or scheduled).
* **Frequency Capping** is turned **off** in Braze.
* The test user exists in Braze and has the appropriate **identifier** (for example, `user_id`, `external_id`, `email`).
* The user meets eligibility for the channel (for example, email opted-in, has a push token).

To test accurately, use a Braze user whose `user_id` or `external_id` matches the identifier configured for the channel. You can confirm delivery in Braze by checking message logs or the user’s messaging history.

## 4. Configure Braze Campaigns and Canvases for AID

Before adding a message in Hightouch, you need to configure or create the corresponding Campaign or Canvas in Braze.

### For Campaign triggers&#x20;

[Create a Campaign](https://www.braze.com/docs/user_guide/engagement_tools/campaigns/building_campaigns/creating_campaign) in Braze that supports API triggering.

**In Braze**

1. Go to **Campaigns > Create Campaign**

   ![Create campaign](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-create-campaign.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=36d30b353c85fce31a4866bc7fe837f0)

2. Choose your channel (Email, SMS, Push) and complete Campaign Details

* [Create an email campaign](https://www.braze.com/docs/user_guide/message_building_by_channel/email/html_editor/creating_an_email_campaign/#step-1-choose-where-to-build-your-message)
* [Create an SMS campaign](https://www.braze.com/docs/user_guide/message_building_by_channel/sms_mms_rcs/sms/create)
* [Create a push campaign](https://www.braze.com/docs/user_guide/message_building_by_channel/push/creating_a_push_message)

3. On the **Schedule Delivery** step, select [API Triggered](https://www.braze.com/docs/user_guide/engagement_tools/campaigns/building_campaigns/delivery_types/api_triggered_delivery) as the Delivery Type

4. In **Target Audiences**, set a broad audience or include your test user via filters

5. In **Assign Conversions**, optionally define conversion goals

6. On the **Review** step, ensure your campaign is:

   * **Active** (not saved as Draft)

   * Has **Frequency Capping disabled** if applicable

   * Displays a full message preview

7. Note the **Campaign ID** for reference in Hightouch

**In Hightouch**

8. Select the **Campaign** when [adding a message](https://docs.hightouch.com/ai-decisioning/braze.md#3-add-messages).
9. [Test the message](https://docs.hightouch.com/ai-decisioning/braze.md#test-a-message) to confirm delivery.

### For Canvas triggers&#x20;

[Create a Canvas](https://www.braze.com/docs/user_guide/engagement_tools/canvas/create_a_canvas/create_a_canvas) with an API entry event

**In Braze**

1. Go to **Canvases > Create Canvas**

   ![Create canvas](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-create-canvas.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=0bada67a79bc3bae2060f2bdc0120835)

2. Fill out **Canvas Details**, and note the **Canvas ID**

3. On the **Entry Schedule** step, choose [API Triggered](https://www.braze.com/docs/user_guide/engagement_tools/canvas/create_a_canvas/create_a_canvas/?tab=scheduled%20delivery)

4. In **Target Audience**, optionally add filters or include a known test user

5. In **Send Settings**, confirm eligibility settings (e.g., subscription status, quiet hours, frequency capping)

6. Use the **Build Canvas** step to drag in components (like message or delay)

7. Use the **Summary** screen to review your configuration before launch

**In Hightouch**

8. Select the **Canvas** when [adding a message](https://docs.hightouch.com/ai-decisioning/braze.md#3-add-messages).
9. [Test the message](https://docs.hightouch.com/ai-decisioning/braze.md#test-a-message) to confirm delivery.

> [!NOTE]
>
> AID cannot override message properties in Canvas messages. Use default
> template values instead.

## Use variables in Braze

Hightouch variables allow you to personalize Braze messages using live warehouse data, any variable you’ve defined within the message such as subject line variations, or different media assets or content blocks in your Braze library.

### Access variables

1. Open a message in Hightouch and go to the **Content** tab.
2. Under **Optimized content**, expand a content type (for example, **title** or **body**) and add your variants.
3. Select the `...` menu on a variant and select **Copy code snippet** to get the variable code, for example: `{{ api_trigger_properties.${hightouch}.recommendation.variables.subject }}`.
4. In Braze, paste the variable tag into the corresponding field in your message template (for example, the **Subject** field).

Always copy the snippet from the message rather than typing it — the exact prefix depends on the channel. Campaign triggers use `api_trigger_properties`, Canvas uses `canvas_entry_properties`, and email and in-app variables include a `| newline_to_br` filter.

![Copy snippet](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-copy-code.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=52ea53e1103307b1ad9f46f8a48f7f4c)

![Preview variables](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/braze/aid-braze-preview-variables.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=43cab87e088c2186f52c629b0edec3d6)

### Important notes

* **Campaign triggers**: Variables are fully supported.
* **Canvas triggers**: Only template-level defaults can be used—API-triggered variables won’t override content.

## Troubleshooting

| Issue | Likely cause | Resolution |
| - | - | - |
| Message fails to send | API errors or misconfigured destination | Check Hightouch logs for API errors. |
| Test user not receiving messages | Identifier mismatch | Ensure your identifier matches a valid `external_id` or user property in Braze. |
| Canvas sends not triggering | Canvas not published or entry event misconfigured | Confirm the Canvas is published and the API entry event is configured. |

## Next steps

* [Messages](https://docs.hightouch.com/ai-decisioning/messages.md) to create and manage the message variants each agent sends through Braze.
* [QA guide](https://docs.hightouch.com/ai-decisioning/qa-guide.md) to validate messages before you launch.
* [Agents](https://docs.hightouch.com/ai-decisioning/agents.md) to configure the agents that decide which messages to send.
* [Insights](https://docs.hightouch.com/ai-decisioning/insights.md) to measure how your agents and messages perform.
