# A/B testing campaign scripts

Source: https://dialmilo.com/help/ab-testing-scripts
Updated: 2026-10-21

Run up to five scripts side by side, see which one brings in more deposits, roll back to any earlier version, and send the winning script's name to Customer.io.

Test up to five scripts in one campaign. New players are split between them, each player keeps the script they first heard, and the **Scripts and A/B tests** tab compares the scripts on what matters most: deposits.

## Adding a second script

  
    Go to the **Scripts and A/B tests** tab.
  
  
    Click **Test a second script**, then **Add script B**. The new script starts as a copy of script A, so you only need to change what you want to test, for example a different opening line.
  
  
    Each script has a **New players (%)** field. New players are split evenly by default, but you can change the percentages. Use **Add another script** to go up to five scripts, A to E.
  

Once a player has been assigned a script, they keep it. That includes callbacks, so a player who calls back hears the same pitch again.

## Script history

Every time you save a script, Milo stores a new version. Open **Script history** to see each version, view it, and **Restore** an older one. Restoring saves the old text as the newest version, so nothing is lost.

## How each script performs

The **How each script performs** table compares every script against script A:

- new players, called, answered and accepted
- logged in, deposited and deposit rate
- revenue and cost per depositor

Each script gets one of these verdicts:

- **Baseline**: script A, which the others are compared against
- **Not enough data yet**: a script needs 100 players called before it's compared
- **Better** or **Worse**: shown only when Milo is at least 95% sure the difference in deposits is real
- **No clear difference yet**

When you have a winner, click **Use only this**. Every new player gets that script, and players already queued are switched over to it.

Deposit figures come from the deposit data you connect to the campaign. Without deposit data, the table can still compare answered and accepted calls.

## Customer.io

If you've connected Customer.io, Milo tells it which script each player heard:

- `milo_last_script` on the person, holding the letter, for example `B`
- `script_variant` and `script_version` on the `milo_call_completed` event
- `script_variant` on outcome events such as `milo_offer_accepted`, `milo_offer_declined` and `milo_callback_requested`

You can then split your follow-up emails or texts by script, or report on them in Customer.io.

## Duplicating and archiving

To start a new campaign from scripts that work, use **Copy** on the campaign list. It copies the settings and scripts without any players, and the new campaign starts paused. When a campaign is done, **Archive** it to keep your list tidy. Its results stay available under the **Archived** tab.