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

# Template variants

> A/B test email, push, WhatsApp, in-app, and News Feed templates in Masivo

<Note>
  Template variants let you test another title, text, or design on the same
  template without changing shared settings such as alias, description, or
  brand.
</Note>

Template variants are **not** the same as [journey split variants](/guides/create-journeys#split-variants-ab-paths). Splits send customers down different paths. Template variants change the message copy or layout that a send uses.

## What you'll learn

By the end of this guide, you'll know how to add up to four variants on a
template, how scheduled sends split traffic, and how journeys pick a variant.

## Where variants are available

You can add variants on:

* [Email templates](/guides/emails/create-email)
* [Push templates](/guides/create-push)
* [WhatsApp templates](/guides/create-whatsapp)
* [In-app templates](/guides/create-in-app-templates)
* [News Feed templates](/guides/news-feed)

Each channel uses the same **A/B testing** section in the template editor.

## Add and manage variants

Open a template in **Marketing Automation**. The **A/B testing** section lists
the current versions and shows a `1/4 variants` badge (up to `4/4`).

A new template starts with a single version. Empty-state copy explains when to
add another, for example a different subject (email), title (push), layout
(in-app), or card design (News Feed).

### Create a variant

* **New Variant Template** creates an empty version.
* The chevron next to that button clones an existing variant. Search by label
  in **Search variant...**.

<Frame caption="Creating a new variant">
  <img src="https://mintcdn.com/trd/xaP6AWmnpYBtlt1f/images/create-variant.webp?fit=max&auto=format&n=xaP6AWmnpYBtlt1f&q=85&s=18558f40555698e26317fd89540f42b7" width="1852" height="933" data-path="images/create-variant.webp" />
</Frame>

You can rename each row. If you leave the label empty, Masivo uses
`Variant A`, `Variant B`, `Variant C`, or `Variant D`.

Select a row to edit that version. Content fields are marked **Per Variant**.
You cannot remove the last remaining variant.

<Tip>
  Shared settings stay on the template: alias, description, brand, and (for
  WhatsApp) the sending phone number.
</Tip>

## What each variant can change

| Channel   | Per-variant content                                                               |
| --------- | --------------------------------------------------------------------------------- |
| Email     | Sender name, subject, preheader, and email design                                 |
| Push      | Title, body, image, sound, and deep link                                          |
| WhatsApp  | Header, body, footer, buttons, and a Meta template ID                             |
| In-app    | Message type, title, body, image, buttons, display rules, and custom-code options |
| News Feed | Card type, title, message, image, link, pinned state, priority, and expiration    |

### WhatsApp approval

WhatsApp variants each have their own Meta template ID. On save, Masivo
submits each variant to Meta for approval in one step. Each variant has its
own status (`PENDING`, `APPROVED`, `REJECTED`). A variant must be approved
before you can send it in a test, schedule, or journey.

## Test sends

Use **Send test** on the template.

* **Specific customers**: choose **Send variant** to force one version.
* **Test group / audience**: set **Variant distribution**. Weights are whole
  numbers and must sum to `100%`. Use **Distribute evenly** to split the
  remainder automatically (for example two variants become `50` / `50`).

If the weights do not sum to `100%`, Masivo shows
`The sum of the variants must be 100%.` and the send does not run.

## Scheduled audience sends

When you **Schedule** a template that has more than one variant, the same
**Variant distribution** control appears. Weights must sum to `100%` before
you can create the scheduled notification.

Masivo assigns each recipient a variant using those weights (probabilistic). A
weight of `0` means that variant is not selected for that send.

A template with a single version does not show distribution controls.

## Journeys

Journey actions do **not** use weight distribution. If the selected template
has more than one variant, the action form shows **Select a variant** and you
must pick one before you can save. That action always sends the chosen
version.

<Frame caption="Add variant to journey">
  <img src="https://mintcdn.com/trd/xaP6AWmnpYBtlt1f/images/add-variant-journey.webp?fit=max&auto=format&n=xaP6AWmnpYBtlt1f&q=85&s=d5703e64b66bd30991930e5cf6f1a5a8" width="754" height="487" data-path="images/add-variant-journey.webp" />
</Frame>

See [Journeys](/guides/create-journeys#template-variants-in-journey-actions)
for the action fields (`Email variant`, `Push variant`, `In-app variant`,
`WhatsApp variant`, `News feed variant`).

## Analytics

When a template has more than one variant, the template page in **Analytics**
includes a variants table (alias, sends, and channel engagement metrics). You
can download a variants report from that table.

Open the template under **Analytics > Emails**, **Push**, **WhatsApp**,
**In-app**, or **News Feed**.

## Next steps

* Personalize copy with [template variables](/guides/using-template-variables)
* Use a variant in an automated step: [Journeys](/guides/create-journeys)
* Export tables to CSV: [Analytics Exports](/guides/analytics-exports)
