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

# AI Decisioning agents

> Agents are the foundation of AI Decisioning. Each agent defines who to target, what to optimize for, and when messages can be sent.

## Before you begin

* [Configuration](https://docs.hightouch.com/ai-decisioning/configuration.md)
* [Prepare data for AID](https://docs.hightouch.com/ai-decisioning/prepare-data.md)
* At least one connected destination ([SFMC](https://docs.hightouch.com/ai-decisioning/sfmc.md), [Braze](https://docs.hightouch.com/ai-decisioning/braze.md), [Iterable](https://docs.hightouch.com/ai-decisioning/iterable.md))

## Overview

An **Agent** in AI Decisioning combines your audience, messages, and goals into a single adaptive campaign.

![Agents overview dashboard](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-overview-dashboard.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=6bfc1166025ce402e86622976ed9b14e)

Agents use reinforcement learning to decide which message, timing, and channel will drive the best outcome for each user. They operate continuously, learning from real user outcomes such as clicks, purchases, or sign-ups.

Each new message helps the model understand which creative and timing combinations perform best for different audiences.

> [!NOTE]
>
> Agents don’t replace your content or rules—they learn within the goals,
> audiences, and guardrails you define.

## Create a new agent

1. Go to `AI Decisioning >` [`Agents`](https://app.hightouch.com/ai/flows?from=docs).
2. Click `+ Add agent`.

   ![Add agents button](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-add-agent.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c5f9f6bccdf43e8657598e3dad80664b)
3. Enter a name that reflects your campaign’s purpose, such as `Win-back customers` or `Subscription renewals`.
4. Select a **parent model**. The parent model defines which users this agent can evaluate. All agents in the same decision engine must use models from the same data source.
5. Choose a **target audience** from [Customer Studio > Audiences](https://docs.hightouch.com/customer-studio/usage.md). The audience list is filtered to audiences built from the selected parent model.
6. (Optional) Add a **holdout group** to measure incremental lift (for example, `20%`).
7. Click `Add agent`.

![Add a new agent window showing parent model and audience selection](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-add-agent-modal.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=57fed4d706b8d0d76ef163bf089abcbd)

## Configure your agent

After creation, click your agent to open the `Configuration` tab.

From here, you can set audience eligibility, goals, Smart suppression, and scheduling preferences. Messages have their own top-level `Messages` tab — see [Messages](https://docs.hightouch.com/ai-decisioning/messages.md).

![Agent configuration overview](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-configuration.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=b10e1803d1927e172949d7ebc2ee6360)

### 1. Set audience eligibility

This section shows the audience your agent targets and its experiment setup.

| Setting | Description |
| - | - |
| **Target audience** | The audience defined in Customer Studio. |
| **Experiment setup** | Controls the holdout used to measure true lift. Set the holdout percentage (for example, `20%`) within this setting. |

![Agent audience eligibility panel](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-eligibility.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=08937a74dcf5c17f1c1b280b5c109daf)

> [!NOTE]
>
> Holdouts let you compare users who receive messages with users who don’t, so
> you can measure incremental lift.

### 2. Add and manage goals

Goals define what your agent optimizes toward.

Each goal represents a measurable event (like a purchase or click) and includes a priority level—helping AID decide which outcomes matter most.

To add a goal:

1. In your agent’s `Configuration` tab, under `Goals`, click `+ Add goal`.

   ![Add goal button](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-goals.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=753b37827bccd8f6586dd51fa77a3239)

2. Configure the goal.

   * Select an event model (for example, `Purchase event`, `Viewed Product`, or `Redeemed offer`).
   * (Optional) Add a filter to refine the event, such as `Performed > Where property is campaign = Summer Sale`.

   ![Add goal step 1 – Configure event model](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-goal-modal.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=af50a23cd3e4caccd4c928cda8b748e0)

3. Click `Continue` to move to the `Impact` step.

   * Choose whether to include this goal in decisioning or track it for measurement only.
   * Select a classification:
     * `Best` — Primary success metric
     * `Very good` / `Good` — Positive supporting outcomes
     * `Bad` / `Very bad` / `Worst` — Negative outcomes such as `Unsubscribe`
   * (Optional) Add a weight column to scale results by value (for example, `Price` or `Order Value`).

   ![Add goal step 2 – Classify impact and weighting](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-goal-impact.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=220acd010a07a192481d08812a60ce4d)

4. Click `Continue` to finalize.

   * Enter a clear, descriptive goal name (for example, `Redeemed offer`).
   * Click `Add goal` to save.

   ![Add goal step 3 – Finalize and name goal](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-add-goal-finalize.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=569e63aeb1f21088e9ca2eb57e0c44e0)

> [!NOTE]
>
> Goals replace the older “Outcomes” field from earlier versions of AI
> Decisioning. Each agent learns continuously based on these metrics.

> [!TIP]
>
> Start with one clear `Best` goal (for example, purchase) before adding
> supporting or negative signals.

### 3. (optional): Configure scheduling

Use the `Scheduling` panel to control when your agent sends messages.

| Setting | Description |
| - | - |
| **Quiet hours** | Prevents sends during off-hours (for example, weekends or late nights). |
| **Blackout days** | Pauses messaging during specific holidays or events. |

To cap how often a user can receive messages, use **Message limits** (for example, up to 3 sends per week per user), configured separately from scheduling.

![Scheduling configuration with quiet hours and blackout days](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-scheduling.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=2cbf5c908db3c412b52c15e8fe4d60e0)

> [!TIP]
>
> Use scheduling rules to maintain consistency across agents. Combine with smart
> suppression to control both *when* and *whether* messages are sent.

### 4. (optional): Enable smart suppression

Smart suppression predicts which messages are most likely to drive incremental conversions and holds back the rest. It uses the [goals](https://docs.hightouch.com/ai-decisioning/agents.md#step-2-add-and-manage-goals) you’ve already configured to evaluate each send.

1. In **Configuration**, scroll to **Smart suppression (optional)**.
2. Select **Enabled**.
3. Set the percentage of eligible users to send to (for example, send messages to the top **67%**).
4. Select **Save changes**. A predicted performance curve appears once the model has enough data, typically after about two weeks.

   ![Smart suppression configuration panel showing the toggle, send percentage, and expected conversions chart](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/smart-suppression/aid-expected-conversions-total.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=47e21cc24744ce95169a1214d36be569)

> [!NOTE]
>
> For detailed guidance, see Enable smart
> suppression.

### 5. (optional): Advanced settings

Use `Advanced` settings to connect your agent with your organization’s downstream campaign tracking.

| Setting | Description |
| - | - |
| **Customer managed campaign attribution** | Enter one or more campaign IDs from your ESP or internal tracking system to tie AID results to your own reporting. |

![Advanced settings panel showing Campaign ID field](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-advanced-campaign-id.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=b90b0624e70d532b89f409dde182e2ba)

> [!NOTE]
>
> Campaign IDs help maintain consistent reporting between Hightouch and your
> connected destinations. For example, you can enter Braze, Iterable, or SFMC
> campaign identifiers to align AID outcomes with your existing analytics.

## Monitor and manage agents

Once your agent is running, open the `Overview` tab to review live performance and experiment results.

![Agent Overview dashboard showing performance charts](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-agents-agent-overview-tab.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=deacdd6c6f48fdbe79daa2cd116fbe1a)

The Overview includes several key panels:

| Section | Description |
| - | - |
| **Eligible users** | Shows the number of users who currently qualify for your agent’s audience and can receive messages, excluding holdouts and ineligible users. |
| **Performance overview** | Shows conversion and engagement metrics for each goal, including the current **winning group**, **holdout**, and **treatment** performance with confidence intervals. |
| **Sends summary** | Displays total sends and messages scheduled for today and tomorrow. |
| **Sends over time** | Charts daily send volume to help you spot delivery trends and campaign pacing. |
| **Sends breakdown by message** | Compares message-level send volume and engagement across your agent. |

Use this view to monitor how your messages are distributed, which goals are performing best, and how holdout results compare to treatment performance.

> [!NOTE]
>
> Performance updates automatically as your agent runs. Confidence levels appear
> once enough event data has been collected for statistical analysis.

> [!TIP]
>
> Use [Insights](https://docs.hightouch.com/ai-decisioning/insights.md) for deeper breakdowns of message
> performance, goal impact, and timing analysis across agents.

## Messages

**Messages** define what an agent can send and where those messages are delivered.

Each message connects an agent to a destination (such as Braze, Iterable, or Salesforce Marketing Cloud). Agents evaluate messages continuously to determine which content, timing, and channel perform best for each user.

Message setup includes:

* Connecting the agent to a destination
* Adding optimized content and variants
* Applying message- and variant-level guardrails

For step-by-step instructions, see [Messages](https://docs.hightouch.com/ai-decisioning/messages.md).

## Offers

The `Offers` tab lets you create and manage offers that agents can factor into their decisioning. When an offer is attached to a message, the agent weighs the message's expected value (value minus cost, weighted by conversion likelihood) alongside engagement signals when choosing what to send.

To create an offer:

1. Open an agent and go to the `Offers` tab.
2. Click `+ Add offer`.
3. Configure the offer:
   * **Name**: A short, human-readable name (for example, `$10 off first order`).
   * **Description** *(optional)*: Additional context about the offer.
   * **External ID** *(optional)*: A stable identifier in your source system. Required for CSV upserts to match existing offers.
   * **Tags** *(optional)*: Key-value attributes to help organize and categorize offers.
   * **Offer type**: **Static** offers apply the same cost to every user. **Column** offers read per-user values from warehouse columns.
   * **Cost value**: A fixed cost associated with each conversion (for example, \$10 off).
   * **Cost multiplier**: A discount rate applied to each conversion's value (for example, `0.2` = 20% discount).
4. Click `Add offer`.

Cost value and cost multiplier are independent. Use either, both, or neither. Leave both at zero for a metadata-only offer.

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

Once created, attach offers to individual messages from the message [Configuration tab](https://docs.hightouch.com/ai-decisioning/messages.md#offers). Each message can have at most one attached offer, and not all messages require one.

> [!TIP]
>
> Use offers when your agent needs to balance engagement with cost efficiency —
> for example, choosing between a high-discount winback offer and a lower-cost
> loyalty reminder.

## Health

The **Health** tab gives you real-time visibility into your agent's pipeline runs, channel delivery rates, and outcome data freshness. From a single view, you can monitor message generation status, diagnose pipeline failures, and catch data issues before they affect optimization.

For full details, see [Agent health](https://docs.hightouch.com/ai-decisioning/agent-health.md).

## Localization

The `Localization` tab lets you translate content variants to a user's preferred language. When enabled, the agent serves localized versions of your message content based on each user's locale. Localization is opt-in per agent — existing agents keep working as-is until you enable it.

To configure localization:

1. Open an agent and go to the `Localization` tab.
2. Toggle on **Enable localization**.
3. Configure the following settings:
   * **User locale field**: Select the column from the agent's parent model that contains each user's locale (for example, `locale` or `language`).
   * **Locales**: Define the locales supported by this agent. Suggestions are pulled from values that already exist in your warehouse, but you can add any string (for example, `en-US`, `fr-FR`, or a non-ISO value like `mx`).
   * **Default locale**: The locale displayed in the UI. It's used for users whose locale is missing or unsupported when the missing-locale behavior is set to **Use default locale**.
   * **Missing locale**: Choose what the system should do when a user doesn't qualify for any locale:
     * **Use default locale** — Send the default locale content
     * **Send nothing** — Skip the user
     * **Raise an error** — Flag the issue for review

![Localization tab](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-localization-tab.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=8829806aea68914b041b316249d6a569)

> [!NOTE]
>
> Locale values in your `User locale field` column must exactly match the
> locales you configure here, including case and separators. A user whose value
> doesn't match any configured locale is treated as missing a locale.

> [!TIP]
>
> Start with a small number of high-value locales and expand as you validate
> translation quality and conversion impact. Adding a locale later doesn't
> retroactively translate existing content — each localized variant needs a
> value for the new locale before it's eligible to send in that language.

Once localization is enabled, translate individual message variants on the [Content tab](https://docs.hightouch.com/ai-decisioning/messages.md#localize-message-content) of each message.

## Alerting

The **Alerting** tab lets you set up automated notifications for engine run failures, long-running or stalled agents, and unexpected drops in recommendation volume. Every agent comes pre-configured with a default run failure monitor — no setup is required for monitoring to begin. You can add notification channels (Slack, Email, PagerDuty, SMS, or Webhook) and configure severity levels and thresholds.

For full details, see [Agent alerting](https://docs.hightouch.com/ai-decisioning/agent-alerting.md).

## Troubleshooting

| Issue | Likely cause | Resolution |
| - | - | - |
| Agent isn’t sending messages | The target audience is empty, or the destination connection is paused. | Check audience eligibility in `Configuration > Eligibility`, and confirm destination status under `Integrations`. |
| Messages not appearing in ESP | Message or automation identifier mismatch. | Verify the correct destination and automation identifier when adding messages. |
| No performance data visible | The agent is new, paused, or running only a holdout group. | Wait 24–48 hours after activation, or adjust your holdout percentage to include active treatments. |
| Smart suppression chart missing | Suppression is off or not enough send data has been collected. | Enable `Smart suppression` and allow at least 2 weeks of message activity for predictions to populate. |
| Goals not updating or showing results | The event model or schema changed in your workspace. | Reopen the goal configuration, reselect the event model, and save the update so the agent can rebuild its data relationships. |

> [!NOTE]
>
> If you recently updated goals, audiences, or connected destinations, allow
> time for the agent to refresh data before performance metrics stabilize.

## Next steps

* [Messages](https://docs.hightouch.com/ai-decisioning/messages.md) to create and manage message variants.
* [Agent health](https://docs.hightouch.com/ai-decisioning/agent-health.md) to monitor pipeline runs and delivery rates.
* [Agent alerting](https://docs.hightouch.com/ai-decisioning/agent-alerting.md) to get notified about run failures and volume drops.
* [QA guide](https://docs.hightouch.com/ai-decisioning/qa-guide.md) to validate messages before launch.
* Smart suppression to control send volume based on predicted impact.
* [Tags](https://docs.hightouch.com/ai-decisioning/tags.md) to add and analyze message tags.
* [Insights](https://docs.hightouch.com/ai-decisioning/insights.md) to measure agent and message performance.
* [AI Decisioning configuration](https://docs.hightouch.com/ai-decisioning/configuration.md) for channels, scheduling, agent prioritization, and feature matrices.
