ChangelogBook a demoSign up

Messages

AudienceMarketers, business users
Prerequisites
  • At least one Agent
  • A connected destination (Braze, Iterable, or Salesforce Marketing Cloud)

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


What you’ll learn

In this article, you’ll learn how to:

Overview

Messages define the creative variations an agent 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 triggered send or message
      • Custom (S3): Enter a resource identifier
    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

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 (Enabled or Draft)
  • See the number of variants per message
  • View applied tags
  • Search messages by name
  • Filter messages by status

Select a message to access three views:

TabPurpose
ConfigurationReview and manage message settings including tags, offers, goals, collections, and advanced delivery guardrails (send limits, timeline, delivery windows, eligibility, and campaign attribution).
UsageSee how often the message is eligible to send and how it is being evaluated by the agent.
PerformanceReview delivery and outcome metrics to understand how the message contributes to agent goals.

Configuration tab in Messages
Usage tab in Messages
Performance tab in Messages

Use these views together to confirm setup and understand how messages perform over time.


Message content

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

Content tab in Messages

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

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.

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


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

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
  • Audience rules
  • Date rules
  • Send limits

Edit tags and rules button
Tags and rules page


Audience rules

Audience rules limit a variant to specific users.

Examples:

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

Audience rules apply at the variant level, not the message level.

Audience rules


Date rules

Date rules control when a variant is active.

Use date rules 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.

Date rules


Send limits

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

Available options include:

  • No limit
  • Static limit (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


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 and Insights.

Tags

See Tags → for guidance on tagging strategy.

AI Decisioning only compares variants that are eligible at the time of send. Audience rules, date rules, and send limits determine which variants are considered.


Manage messages at scale

AI Decisioning supports two bulk workflows for managing messages:

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

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.

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.

You must use the provided CSV template. Uploads will fail if required columns are missing or renamed.

Bulk upload button in Messages UI


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
    • Add send limits
    • Add campaign attribution
  6. Configure the settings and apply them.

Bulk add eligibility filters in Messages UI

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, goal visibility, collections, and advanced delivery guardrails.

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. Both are used in Content Analysis and Insights.

Message-level tags

See Tags → 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).

Exactly one of cost value or cost multiplier must be non-zero.

Offer section in message configuration

Add offer dialog


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 → for details on goal configuration.

Goals in message configuration


Collections

Collections let you attach item recommendations to a message. For example, you can include product recommendations from a "In-stock Products" collection alongside the message content.

To configure collections, select one or more available collections and set how many items to recommend per message (for example, Recommend 4 item(s) per message).

Collections are optional. See Collections → for details.

Collections in message configuration


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, which apply to individual variants.

Send limits in advanced settings

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

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

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

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

For a step-by-step checklist to verify all Configuration tab settings before launch, see the QA guide →.


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 → for guidance.


What’s next

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: Apr 24, 2026

On this page

Was this page helpful?