> ## 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.

# Iterable integration with AI Decisioning

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

## Before you begin

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

## Overview

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

* Automatically trigger Iterable campaigns 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 Iterable to handle message delivery

## 1. Set up Iterable as a destination

Follow the [destination setup guide](https://docs.hightouch.com/destinations/iterable.md) up to **Sync Configuration**. Once connected, Iterable will be available as a destination in AI Decisioning.

## 2. Add channels in AI Decisioning

Once Iterable is set up as a destination, you can add **channels**. Channels define how Hightouch sends messages to Iterable via Triggered Campaigns.

### Set up a channel

1. Go to **AI Decisioning > Configuration > Channels**.

2. Select **Add channel**.

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

3. Choose a channel type:
   * **Email** – for triggered email sends
   * **SMS** – for triggered text messages
   * **Push** – for mobile push notifications
   * **In-App** – for in-app messaging (popups, inbox cards, etc.)

4. Select **Iterable** as the destination.

5. Under **Campaign setup**, choose how Hightouch connects to Iterable:
   * **Create from template** – select a template, and Hightouch creates an API-triggered campaign from it.
   * **Existing campaign** – select an existing API-triggered campaign directly.

6. Under **Identifier type**, choose how to match users:
   * **Email** – match by email address
   * **User ID** – match by unique ID

7. Choose the identifier field from your model (for example, `user.email` or `user.id`).

8. Select **Add channel**, then **Save changes**.

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

### Identifier type comparison

| Identifier | Description | Use when |
| - | - | - |
| Email | Matches users based on email address | Campaigns primarily use email for targeting |
| User ID | Matches users using their unique ID | Source data uses internal IDs or email isn't guaranteed |

Both identifier types support all channel types (Email, SMS, Push, and In-App).

## 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 an Iterable Triggered Campaign.

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

### Add a message from Iterable

1. Go to **AI Decisioning > Agents** and select your agent.
2. Open the **Messages** tab.
3. Select **Add messages**, then select **Add messages individually**.
4. Select your configured Iterable **channel and destination** tile (for example, **Email - Iterable**).
5. Select an Iterable template (or an existing campaign, matching your channel's **Campaign setup**).
6. Enter a **message name** (for example, `Cart Abandonment SMS`) and select **Add messages**.

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

> [!NOTE]
>
> When your channel uses **Create from template**, Hightouch **clones** the
> selected Iterable template and creates a new Triggered Campaign, then sends
> through that new campaign via API — not the original template. See [How
> Iterable templates and campaigns work with
> Hightouch](#how-iterable-templates-and-campaigns-work-with-hightouch) for
> details.

You can repeat this process for each channel type:

| Channel type | Campaign type | Description |
| - | - | - |
| Email | Triggered | Real-time personalized emails |
| SMS | Triggered | Time-sensitive text alerts |
| Push | Triggered | Native app push notifications |
| In-App | Triggered | Contextual popups and messages |

### 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](#use-variables-in-iterable), 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 Iterable.

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

## How Iterable templates and campaigns work with Hightouch

When your channel uses **Create from template**, you're not sending the base template directly. Instead, Hightouch **clones** the template to create a new Triggered Campaign. If your channel uses **Existing campaign**, Hightouch sends through the campaign you selected and doesn't clone anything.

### What happens behind the scenes

1. You select an existing Iterable template (by Template ID).
2. When you select **Add messages**, Hightouch:
   * Clones the template
   * Creates a new **Campaign ID**

![New campaign](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/iterable/aid-campaign-id-ht.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=4ac555b467c2b96da211b0098de2fd52)

3. Hightouch uses the **new campaign ID** to send messages via API—not the original template.

![Campaign ID and Template ID in Iterable UI](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/iterable/aid-iterable-campaign-template-id.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=627b9a21d6a2ef6236d950566189bbd5)

### Why this matters

* Hightouch sends through the **new campaign**, not the original.
* To update message content, edit the new campaign version—not the base template.

### How to find the right campaign

* Open the **Content** tab in the message:
  **AI Decisioning > Agents > \[Select Agent] > Messages > \[Select Message] > Content**

* Select the link next to **Base content** to open the Iterable campaign.

![Base content link](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/iterable/aid-iterable-base-content-link.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=9027c63fc56c0bf907baafa0d2b93dd9)

## 4. Configure Iterable Triggered Campaigns for AID

What you set up in Iterable depends on your channel's **Campaign setup**.

### Create from template

Build and save the Iterable template you want to use. Hightouch creates the API-triggered campaign for you when you add the message — you don't need to create a campaign in Iterable.

### Existing campaign

1. In Iterable, go to **Messaging > Campaigns**.
2. Select **New Campaign > Triggered Campaign**.
3. Select the message type, design your template, and publish the campaign.
4. In Hightouch, select that campaign when [adding a message](#3-add-messages).

After you add the message, [test it](#test-a-message) to confirm delivery.

## 5. Use variables in Iterable templates

Hightouch variables allow you to personalize Iterable messages using live warehouse data, any variable you've defined within the message such as subject line variations, or different content blocks in your Iterable 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, **subject** or **body**) and add your variants.
3. Select the `...` menu on a content type and select **Copy code snippet** to get the variable code.
4. In Iterable, paste the variable tag into the corresponding field in your message template.

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

### Important notes

* Variables are fully supported in Triggered Campaigns.
* Make sure your Iterable template references the correct variable syntax from the code snippet.

## 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 | Verify the identifier (email or user ID) matches a record in Iterable. |
| Campaign sends not triggering | Campaign not published or misconfigured | Confirm the campaign is live and triggerable in Iterable. |
| Variables not rendering | Incorrect syntax or missing field mapping | Double-check variable syntax from **Copy code snippet** and field mapping. |

## Next steps

* [Messages](https://docs.hightouch.com/ai-decisioning/messages.md) to create and manage the message variants each agent sends through Iterable.
* [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.
