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

# Copy and variants

> Why the words are stored separately, and how one campaign sends more than one version without copying anything.

Two things come out of writing an email or a page that are not the email or the page. Both are worth understanding, because both are how allGood avoids a problem traditional tools create.

## Copy is its own asset

When you write an email, you also get **its copy** as a separate document, which the email cites.

That separation is the point. Copy held inside markup cannot be edited or reviewed without opening the markup — which means the person best placed to improve the words is the person least likely to be allowed near the file.

With copy as its own asset:

* A writer can rewrite the message without touching the email's structure.
* A reviewer can read and comment on the words alone.
* The same copy can be used by a landing page as well as the email, so a campaign says one thing in two places.
* The words have their own version history, separate from the design's.

To change the words, ask Mary in **Workshop**. A copy document has no editor of its own yet, and **Edit Source** on an email or page changes the code, not the copy.

![The copy as its own asset, cited by the email that serves it](https://mintcdn.com/allgoodtechnologyinc/LW4p5NqCb6SZm7Lp/images/mk/content/copy-document.png?fit=max\&auto=format\&n=LW4p5NqCb6SZm7Lp\&q=85\&s=66f342b800571f495e149586d175b296)

The copy as its own asset, cited by the email that serves it.

> [!NOTE]
>
> Filling a template makes a **new** copy document each time, rather than sharing one. The words are the thing that changes between two emails or pages built from one template, so sharing them would be the wrong default.

## Variants and the router

A **content router** is content that chooses content. It takes rules in and gives one answer out: which version this particular recipient or visitor gets.

You do not create one from the library. It comes out of writing the email or page — if the brief calls for more than one version, the router is produced alongside them.

![A content router: the variants, and the rule that picks between them](https://mintcdn.com/allgoodtechnologyinc/LW4p5NqCb6SZm7Lp/images/mk/content/router-variants.png?fit=max\&auto=format\&n=LW4p5NqCb6SZm7Lp\&q=85\&s=09079c1514e7673dc37c80baf0fb3272)

A content router: the variants, and the rule that picks between them.

### What it can route on

| Basis | Example |
| - | - |
| **A random split** | 60/40 between two subject lines |
| **Locale** | German speakers get the German page |
| **Persona or segment** | Practitioners and executives get different framing |

A campaign delivers **one thing** — the router — and the router decides. The campaign does not know it is running a test, which is why adding a variant never means copying the campaign.

> [!NOTE]
>
> Routing rules need a person to confirm them before they go live. A router changes what people receive, so it never starts doing that without someone confirming it.

### A/B testing is not a feature

There is no experiment module to open, no test to configure, and nothing to switch off when you are done. Two versions plus a router is the entire mechanism.

This is why a test does not have to be planned as a test. You write a second subject line because you are not sure, and the thing that decides who gets which is produced for you.

> [!WARNING]
>
> allGood doesn't report which email variant performed better. The router splits your recipients correctly.

### Routing from an email link

When a tracked link in an email leads to a routed page, the recipient lands on the version meant for them — their locale, their persona.

What persists afterwards is **only the variant**, never who they are. The address is cleaned up on arrival, so forwarding the link to a colleague gives them the page and tells them nothing about the original recipient.

## Good to know

* **A router is content.** It has versions, gets published, and has a public address like anything else in the library.
* **Routers work for both emails and pages**, with the same mechanism behind each.
* **Combinatorial testing beyond A/B is not supported.** Combinations have to be listed out by hand.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.