Skip to main content
Variants allow you to A/B test different email approaches within a single campaign. Each variant has its own subject line, content, and distribution percentage.
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 the variants array when updating a campaign via PUT /api/public/v1/campaigns/{campaign_id}:
import requests

response = requests.put(
    f"{base_url}/api/public/v1/campaigns/{campaign_id}",
    headers={"X-API-Key": api_key},
    json={
        "variants": [
            {
                "variant_name": "A",
                "variant_label": "Direct Approach",
                "subject_template": "Quick question about {{company}}",
                "email_content": "Hi {{first_name}},\n\nI noticed {{company}} is expanding. I'd love to share how we've helped similar companies.\n\nBest,\nJohn",
                "distribution_percent": 50
            },
            {
                "variant_name": "B",
                "variant_label": "Soft Introduction",
                "subject_template": "Introduction - {{company}}",
                "email_content": "Hi {{first_name}},\n\nI hope this finds you well. I wanted to introduce our company and see if there's an opportunity to collaborate.\n\nBest,\nJohn Smith",
                "distribution_percent": 50
            }
        ]
    }
)

Variant Fields

FieldTypeRequiredDescription
variant_namestringYesUnique identifier (A, B, C, D). Only letters allowed. Automatically uppercased.
subject_templatestringYesSubject line with personalization. Max 500 characters.
email_contentstringYesEmail body content. 10-100,000 characters. Supports Liquid templating.
distribution_percentintYesPercentage of leads for this variant (0-100). All must sum to 100.
variant_labelstringNoUser-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 TestVariant AVariant B
Subject lineDirect questionStatement of value
OpeningPersonal referenceGeneric greeting
CTACalendar linkReply request
LengthShort (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.