Campaigns
A/B Testing
Test multiple subject lines per step to find what resonates best with your audience. Cleanmails automatically picks the winner after enough data.
How It Works
- Add multiple subject lines to any campaign step (stored as a JSON array)
- Cleanmails distributes sends evenly across variants (round-robin)
- Once each variant reaches 100 sends, the system compares open rates
- The variant with the highest open rate becomes the auto-winner
- All subsequent sends use only the winning subject
Setting Up A/B Test
In the campaign step editor, add multiple subjects:
Step subjects (JSON array)
[
"Hey {{FIRST_NAME}}, quick question about {{COMPANY}}",
"{{FIRST_NAME}} — saw your work at {{COMPANY}}",
"Idea for {{COMPANY}}'s outreach"
]Viewing Results
Check per-variant stats via the API:
bash
curl http://YOUR_SERVER/v1/outreach/campaigns/ab-stats/CAMPAIGN_IDReturns:
json
[
{"subject_variant": 0, "sends": 150, "opens": 45, "clicks": 12, "replies": 5, "open_rate": 30.0, "click_rate": 8.0, "reply_rate": 3.3},
{"subject_variant": 1, "sends": 148, "opens": 52, "clicks": 15, "replies": 8, "open_rate": 35.1, "click_rate": 10.1, "reply_rate": 5.4},
{"subject_variant": 2, "sends": 147, "opens": 38, "clicks": 9, "replies": 3, "open_rate": 25.9, "click_rate": 6.1, "reply_rate": 2.0}
]Auto-Winner Threshold
The auto-winner is selected when all variants have at least 100 sends. The variant with the highest open rate (excluding bot opens) wins.
Bot detection
Cleanmails filters out bot opens (Barracuda, Proofpoint, Apple Privacy Proxy, etc.) and suspiciously fast opens (<2 seconds after delivery) from A/B calculations.
Best practice
Test 2-3 variants max. More variants means more sends needed before a winner is declared. Focus on testing one variable at a time (e.g., personalization vs. curiosity gap).