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

# Messages

> Add Messages to optimize content from your destination templates by defining variants and letting agents control which version is sent, when, and to whom.

## Before you begin

* At least one [Agent](https://docs.hightouch.com/ai-decisioning/agents.md)
* A connected destination (Braze, Iterable, or Salesforce Marketing Cloud)

## Overview

**Messages** define the creative variations an [agent](https://docs.hightouch.com/ai-decisioning/agents.md) can send. Each message is sourced from a destination (such as Braze or Iterable) and can include multiple variants for experimentation.

Agents continuously evaluate messages to determine which variant, timing, and channel perform best for each user.

## Add a message

1. Open an agent and go to the `Messages` tab.
2. Click `Add messages`, then select **Add messages individually**.
3. In the **Add messages** window:
   1. Select a **channel and destination**.
      * A **channel** defines how a message is delivered (for example, email or push), while the **destination** defines where the content is managed (such as Braze or Iterable).
   2. Select the destination-specific identifier:
      * **Braze**: Choose a campaign
      * **Iterable**: Choose a template
      * **Salesforce Marketing Cloud**: Choose a template (Salesforce Marketing Cloud template), a journey (event-triggered), or an automation (freeform)
      * **Custom (S3)**: Enter a resource identifier. See [Custom destinations](https://docs.hightouch.com/ai-decisioning/custom-destinations.md) for the full setup, including how to build the delivery sync.
   3. Enter a **message name** to identify the message in Hightouch.
4. Click `Add messages`.

The message is added to the agent and appears in the Messages list.

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

> [!TIP]
>
> Use message names that describe the intent or use case (for example,
> `Cross-sell – accessories email`) to make messages easier to find and analyze
> later.

### View and manage messages

The `Messages` page provides a centralized view of message configuration and performance for an agent.

From this view, you can:

* Review **message status**, such as `Enabled` or `Draft`
* See the number of **variants** per message
* View the **audience size** — the estimated number of eligible users for each message
* View applied **tags**
* Search messages by **name**
* Filter messages by **status**

The Messages list has three view toggles that change which columns the table shows, without opening any individual message:

| View | What the table shows |
| - | - |
| `Configuration` | Message settings across the agent, including tags, offers, and advanced delivery guardrails (send limits, timeline, delivery windows, eligibility, and campaign attribution). |
| `Usage` | How often each message is eligible to send and how it is being evaluated by the agent. |
| `Performance` | Delivery and outcome metrics that show how each message contributes to agent goals. |

![Configuration view of the Messages list](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-messages-configuration.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=f327c0846dc44a45db91963271145e89)

![Usage view of the Messages list](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-messages-usage.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=cdb8506ffe876997247278600b46dab9)

![Performance view of the Messages list](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-messages-performance.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=de2f412062430d6e02b477f2fdd0509f)

Switch between these views to compare messages by setup, eligibility, or performance.

Select an individual message to open its own tabs: `Overview`, `Content`, and `Configuration`. The `Content` tab is where you manage variants and optimized content, and the `Configuration` tab holds message-level settings and delivery guardrails.

## Message content

Each message includes two parts: **base content** and **optimized content**.

![Content tab in Messages](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-message-structure.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=fc8f74f15133f3b1a563c83f85e73be0)

### Base content

**Base content** is the underlying message content defined in your marketing destination.

Examples include:

* An email built in Iterable, Braze, or Salesforce Marketing Cloud
* A push or in-app message defined in your destination
* Destination-managed layout, variables, or logic

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

When you add a message, you select the destination and the campaign, template, or send to use. That destination-managed content becomes the base content for the message.

> [!TIP]
>
> AI Decisioning does not modify your base content. It uses your content as the
> foundation for optimized content and variants.

### Optimized content

**Optimized content** includes the specific fields within a message that agents can vary and learn from over time.

Common optimized content types include:

* Subject
* Preheader
* Call to action (CTA)
* Other supported message fields

Each optimized content type can include multiple variants, which are evaluated against your agent’s goals.

![Optimized content](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-optimized-content.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5dd07b2c372e71d4afc5f060e7c86ca4)

## Variants

A **variant** is one version of an optimized content type (for example, a subject line option).

Variants are the individual options that agents compare and learn from over time.

Variants differ from traditional A/B tests:

* Traffic allocation adapts over time
* There is no fixed test window
* No manual winner selection is required

## Add and manage variants

Variants are added inside an individual message, in the `Content` tab.

1. Open an agent and go to the `Messages` tab.
2. Select a message.
3. Open the `Content` tab.
4. Expand an optimized content type (for example, `Subject`).
5. Click `Add variant`.
6. Enter the variant content.

You can add multiple variants to the same optimized content type.

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

> [!TIP]
>
> Start with a small number of clear variants that differ meaningfully in tone,
> framing, or offer.

## Variant-level controls

Each variant includes controls that determine when it is eligible to send.

To manage variant-level settings, open a message and go to the `Content` tab. Under **Optimized content**, click `Edit tags and rules`.

From here, you can add or update:

* Tags
* Eligibility filters
* Active time window
* Send limits

![Edit tags and rules button](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-edit-tags-rules.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=da3dcd8fe3e152d059edc85ae7f20af4)

![Tags and rules page](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-tags-rules-page.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=dc775aecab2668ac18ef794499fdce74)

### Eligibility filters

Eligibility filters limit a variant to specific users.

Examples:

* Show a loyalty-focused subject line only to returning customers
* Restrict a discount variant to lapsed users

Eligibility filters apply at the **variant level**, not the message level.

![Eligibility filters](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-audience-rules.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=83621818895cc7cc391a74d8213a3071)

### Active time window

The active time window controls when a variant is active.

Use an active time window to:

* Run seasonal or time-bound messaging
* Automatically retire expired content
* Stage future variants ahead of launch

Expired variants remain visible but are no longer eligible to send.

![Active time window](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-date-rules.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=8d762b4c633a1be99426ffad20ef3e09)

### Send limits

Send limits control how often the same variant can be sent to a single user.

Available options include:

* **No limit**
* **Static** (for example, once per user)
* **Time window** (for example, once every 30 days)

Send limits apply to variants individually, not to the entire message.

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

### Tags

Tags describe the intent or attributes of a variant, such as:

* Tone (`friendly`, `urgent`)
* Offer type (`discount`, `free gift`)
* Value proposition (`convenience`, `exclusivity`)

Tags help agents group and analyze content and are used in [Content Analysis](https://docs.hightouch.com/ai-decisioning/content-analysis.md) and [Insights](https://docs.hightouch.com/ai-decisioning/insights.md).

![Tags](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-edit-tags.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=876c5d299c0c9476788d30d46648c642)

See [Tags](https://docs.hightouch.com/ai-decisioning/tags.md) for guidance on tagging strategy.

> [!NOTE]
>
> AI Decisioning only compares variants that are eligible at the time of send.
> Eligibility filters, active time windows, and send limits determine which
> variants are considered.

## Localize message content

If your agent's [localization](https://docs.hightouch.com/ai-decisioning/agents.md#localization) is enabled, you can translate individual message variants so each user receives content in their own language. You provide the translations — Hightouch doesn't generate them — and AI Decisioning sends the one that matches each user's locale.

> [!NOTE]
>
> Localizing message content requires localization to be enabled first, at the
> agent level. See [Enable localization](https://docs.hightouch.com/ai-decisioning/agents.md#localization).

### Enable localization on a content type

1. Open a message and go to the `Content` tab.
2. Next to an optimized content type (for example, `subject`), select `···`.
3. Toggle on `Use localization`.

![Use localization toggle in the options menu next to a content type](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-use-localization-toggle.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=48e4a30603dcd688fae857c704df765c)

You can mix localized and non-localized content types on the same message. Leave fixed values that don't need translation, such as a promo code or product ID, non-localized.

### Add translations for each variant

Once localization is on for a content type, add a translation for every configured locale on each variant.

* To translate one variant, select the globe icon next to it to open the **Localization** dialog, enter a value for each locale, and select `Apply`.
* To review or edit every variant in one language at a time, use the locale dropdown next to **Optimized content** to switch the table to that language.

![Localization dialog with a translation field for each configured locale, including a non-ISO locale](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-localization-dialog.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=930b92072c868d38f223e723f6ce1dc4)

> [!TIP]
>
> Use [CSV bulk-edit](#bulk-edit-translations-with-csv) to add translations for
> many variants at once instead of editing them one by one.

### Check translation status

Each localized content type shows a badge summarizing whether its variants are fully translated, and each variant shows its own badge — hover it to see which locales still need a value.

![Locale dropdown and status badge showing variants missing a translation](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-localization-status.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=b1821315193ea033d656483fbc50bbac)

![Variant badges showing translation status](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-translation-badges.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=bf5e383f0bcfbba50cdd8d7cd24cfb55)

A **Localization incomplete** banner also appears at the top of the message until every localized variant has a translation for every locale.

### Bulk-edit translations with CSV

Translations use the same [CSV upload workflow](#bulk-upload-and-export-messages-csv) as other message content. When localization is enabled, the CSV includes one column per configured locale, and the import review step shows a per-language diff for each row before you save.

### Test translations before launch

Use `Send test` on a message and select a sample user and a locale. The preview reflects exactly what AI Decisioning sends, so you can confirm each translation independently before launch.

![Localization incomplete banner at the top of the message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-messages-localization-status.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=b1821315193ea033d656483fbc50bbac)

## Manage messages at scale

AI Decisioning supports two bulk workflows for managing messages:

* [**CSV upload**](#bulk-upload-and-export-messages-csv) for content and metadata updates
* [**Bulk actions**](#apply-message-guardrails-in-bulk) for applying message guardrails

Use CSV upload for structured content changes and bulk actions for delivery controls.

### Bulk upload and export messages (CSV)

Use bulk CSV upload to add or update messages in an agent at scale. This workflow is best for structured, repeatable updates that are easier to manage in a spreadsheet.

#### What you can manage with CSV upload

Using a CSV file, you can:

* Add new messages to an agent
* Update existing messages
* Add or modify:
  * Message content
  * Variables and variable options
  * Message- and variant-level tags
  * [Translations](#localize-message-content) for localized content types — the CSV includes one column per configured locale

#### What CSV upload does not support

CSV upload does not support message guardrails, including:

* Eligibility filters
* Send limits
* Campaign attribution

Apply these settings in the product UI using [bulk actions](#apply-message-guardrails-in-bulk).

#### Upload messages with CSV

1. Go to `AI Decisioning > Agents` and select an agent.
2. Open the `Messages` tab.
3. Click `Add messages`, then select `Bulk upload with CSV`.
4. Download the provided CSV template.
5. Edit the template with your updates.
6. Upload the completed CSV to apply changes.

> [!NOTE]
>
> You must use the provided CSV template. Uploads will fail if required columns
> are missing or renamed.

![Bulk upload button in Messages UI](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-messages-bulk-upload.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=830e48b64bce5cfd1a5b446cc6e647f9)

### Apply message guardrails in bulk

Use bulk actions to apply message-level guardrails to multiple messages at once.

#### Supported bulk guardrails

You can apply:

* Eligibility filters
* Send limits
* Campaign attribution values

#### Apply guardrails in bulk

1. Go to `AI Decisioning > Agents` and select an agent.
2. Open the `Messages` tab.
3. Select one or more messages.
4. Click `Actions`.
5. Choose one of the following:
   * `Add eligibility filters`
   * `Manage send limits`
   * `Add campaign attribution`
6. Configure the settings and apply them.

![Bulk add eligibility filters in Messages UI](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/agents/aid-bulk-add-eligibility-filters.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=a7a25c2cfac8190ac54a98fe55105aec)

When applying eligibility filters in bulk, the **Update mode** setting controls how the new filters interact with existing values:

* **Add to existing guardrails** — new conditions are added alongside any existing guardrails on each selected message. Existing values are preserved.
* **Replace existing guardrails** — overwrites existing guardrail settings on each selected message with the new values.

![Bulk eligibility guardrails drawer showing Update mode with Add to existing and Replace existing options](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/bulk-eligibility-guardrails.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=49f0dc8c905eb28b16648546b33157ea)

> [!NOTE]
>
> Bulk actions update message configuration only. They do not change message
> content, variants, or tags.

## Message configuration

The `Configuration` tab contains message-level settings that control tagging, offer attribution, and advanced delivery guardrails. It also displays the goals inherited from the parent agent.

To access these settings, open an agent, go to the `Messages` tab, select a message, and open the `Configuration` tab.

### Tags

Tags are key-value pairs that describe a message's intent or attributes, such as `motivator = efficiency` or `value_proposition = convenience`.

Tags can be added manually or generated automatically using the **Generate tags with AI** button, which analyzes the message content and suggests relevant tags.

Message-level tags apply to the message as a whole and are separate from [variant-level tags](#tags-1). Both are used in [Content Analysis](https://docs.hightouch.com/ai-decisioning/content-analysis.md) and [Insights](https://docs.hightouch.com/ai-decisioning/insights.md).

![Message-level tags](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-configuration-tags.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=683108690913a203f3ad0e1ef4c0b673)

See [Tags](https://docs.hightouch.com/ai-decisioning/tags.md) for guidance on tagging strategy.

### Offers

Attach an offer to have the agent factor the message's cost and value into its decisions. Messages with higher expected values (value minus cost, weighted by conversion likelihood) are more likely to be selected. Each message can have at most one attached offer, and not all messages require one.

To attach an offer, click `Add offer` in the **Offer** section and configure the following:

* **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).

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

![Offer section in message configuration](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-configuration-offers.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=6b063618612d17d8db8a92a8da5d9af9)

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

### Goals

The **Goals** section displays the goals inherited from the parent agent, along with a performance rating for each goal (for example, `Best`, `Very good`, `Good`, `Worst`). These ratings reflect how well the message contributes to each goal relative to other messages in the agent.

Goals are configured at the agent level and cannot be edited from the message Configuration tab. See [Agents](https://docs.hightouch.com/ai-decisioning/agents.md) for details on goal configuration.

![Goals in message configuration](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-configuration-goals.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=1b74eb4285020e93be12f7ad24f7303a)

### Advanced settings

The **Advanced** section contains delivery guardrails that control how, when, and to whom a message is sent. Expand the **Advanced** section to access these settings.

#### Send limits

Send limits control the maximum number of times a message can be sent to the same user.

Available options include:

* **No limit**: The message can be sent without restriction.
* **Static**: A fixed cap (for example, send at most 3 times per user).
* **Time window**: A rolling limit (for example, once every 30 days).
* **Minimum other messages in between**: Requires a set number of other messages to be sent before this message can be sent again.

Message-level send limits apply to all variants of the message. They are separate from [variant-level send limits](#send-limits), which apply to individual variants.

![Send limits in advanced settings](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-configuration-send-limit.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=e772a0ef317285d533b980049dcd90f9)

#### Timeline

Set a start and end date for a message. Use timeline settings to stage messages ahead of a launch or automatically stop a message after a campaign ends.

If no dates are set, the message is eligible to send as long as it is enabled.

![Timeline in advanced settings](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-configuration-timeline.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=2bd253dc9e42d3c01bb53dfdfcb7a2c9)

#### Delivery windows

Delivery windows let you restrict when a message can be sent by specifying allowed days and time slots. This gives you direct control over message timing without relying on complex channel or schedule configurations.

To set a delivery window:

1. Toggle on **Delivery windows**.
2. Select the days and time blocks during which the message is allowed to send.

Time blocks that are not selected are blocked, meaning the agent will not send the message during those windows.

![Delivery windows](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-delivery-windows.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=57aef86406058a83cdeee26a3db8e326)

> [!TIP]
>
> Use delivery windows to send promotional emails only during morning hours or
> restrict campaigns to specific days, such as midweek-only sends.

#### Eligibility

Eligibility filters control which users can receive the message. The base eligibility filter is inherited from the agent and cannot be edited at the message level. You can add additional filters to further restrict the audience.

Click `Calculate size` to estimate how many users match the current eligibility criteria.

![Eligibility in advanced settings](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-configuration-eligibility.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=63253f113e04ca20ecc799df7192f8e6)

#### Campaign attribution

Add additional campaign IDs for outcome attribution purposes. This lets you associate message performance with specific campaigns in your destination, even if the message is used across multiple campaigns.

![Campaign attribution in advanced settings](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/messages/aid-configuration-campaign-attribution.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=bf21f6c363508e9cc1b9f3d882ddcb5e)

> [!NOTE]
>
> For a step-by-step checklist to verify all Configuration tab settings before
> launch, see the [QA guide](https://docs.hightouch.com/ai-decisioning/qa-guide.md).

## How Messages connect to Content Analysis

As your agent runs, message and variant data feeds into **Content analysis and suggestions**, where you can:

* Review content similarity before launch
* Identify overlapping or redundant variants
* Understand which themes or tones perform best
* Decide when to add, refresh, or retire content

See [Content analysis and suggestions](https://docs.hightouch.com/ai-decisioning/content-analysis.md) for guidance.

## Next steps

* [Agents](https://docs.hightouch.com/ai-decisioning/agents.md) to configure the audience, goals, and scheduling that messages inherit.
* [Tags](https://docs.hightouch.com/ai-decisioning/tags.md) to plan a tagging strategy for messages and variants.
* [Content analysis and suggestions](https://docs.hightouch.com/ai-decisioning/content-analysis.md) to review content similarity and performance across messages.
* [QA guide](https://docs.hightouch.com/ai-decisioning/qa-guide.md) to validate messages before launch.
* [Insights](https://docs.hightouch.com/ai-decisioning/insights.md) to measure how messages and variants perform.
