You can create up to 4 variants per campaign. Leads are randomly assigned to variants based on distribution percentages when the campaign launches.
Configuring Variants
Variants are provided in thevariants array when updating a campaign via PUT /api/public/v1/campaigns/{campaign_id}:
- Python
- JavaScript
Variant Fields
| Field | Type | Required | Description |
|---|---|---|---|
variant_name | string | Yes | Unique identifier (A, B, C, D). Only letters allowed. Automatically uppercased. |
subject_template | string | Yes | Subject line with personalization. Max 500 characters. |
email_content | string | Yes | Email body content. 10-100,000 characters. Supports Liquid templating. |
distribution_percent | int | Yes | Percentage of leads for this variant (0-100). All must sum to 100. |
variant_label | string | No | User-friendly label for analytics (max 100 chars). |
Distribution percentages must sum to exactly 100%. If configuring variants, the API validates this on every update.
Subject Line Best Practices
- Keep it concise — 40-60 characters for optimal display
- Focus on value — Lead with a benefit or question
- Personalize — Use
{{first_name}}or{{company}} - Avoid spam triggers — No ALL CAPS, excessive punctuation, or words like free, urgent
Testing Different Approaches
Test one element at a time:| What to Test | Variant A | Variant B |
|---|---|---|
| Subject line | Direct question | Statement of value |
| Opening | Personal reference | Generic greeting |
| CTA | Calendar link | Reply request |
| Length | Short (3-4 lines) | Detailed (10-15 lines) |
Compare variant performance after 7-14 days to reach statistical significance.
Next Steps
Follow-up Sequences
Set up automated follow-up emails.
Personalization
Use variables and conditionals for personalized content.

