Email Warmup Automation Guide

How to automate IP and domain warmup for hands-off reputation building

Why Automate Warmup?

Manual warmup is error-prone and inconsistent. Automated warmup runs on schedule, sends to engagement lists, and adjusts based on results. It's the difference between a 28-day warmup that works and one that gets your IPs blocked.

✅ CloudMails Auto-Warmup

CloudMails includes automated warmup that runs on fixed schedules, injects engagement signals, and monitors results. The system automatically adjusts volume if bounce thresholds are approached.

Automated Warmup Schedule

This is the standard 28-day warmup schedule that should be automated:

WARMUP_SCHEDULE = {
    # Phase 1: Foundation (Days 1-7)
    "days_1-3": {
        "volume": "100-200/day",
        "recipients": "engagement_seed_list",
        "opens": "auto_open",
        "target_isp": "any"
    },
    "days_4-7": {
        "volume": "200-500/day",
        "recipients": "engagement_seed_list",
        "opens": "auto_open",
        "reply": "auto_reply"
    },

    # Phase 2: Growth (Days 8-14)
    "days_8-10": {
        "volume": "500-1000/day",
        "recipients": "engagement_seed_list + small_cold_list",
        "opens": "auto_open",
        "reply": "auto_reply"
    },
    "days_11-14": {
        "volume": "1000-2000/day",
        "recipients": "mixed_list",
        "opens": "auto_open",
        "reply": "auto_reply"
    },

    # Phase 3: Scale (Days 15-21)
    "days_15-18": {
        "volume": "2000-5000/day",
        "recipients": "mixed_list + larger_cold_list",
        "engagement": "graduated_injection"
    },
    "days_19-21": {
        "volume": "5000-10000/day",
        "engagement": "reduce_auto_engagement"
    },

    # Phase 4: Transition (Days 22-28)
    "days_22-25": {
        "volume": "10000-25000/day",
        "engagement": "natural_only"
    },
    "days_26-28": {
        "volume": "25000-50000/day",
        "full_warmup": true
    }
}

Engagement Injection

ISP algorithms track engagement. Automated warmup must simulate natural engagement:

Open Signal Injection

Warmup emails should be opened by the recipient to signal interest. Methods:

  • Seed list opens – Pre-arranged recipients who open every email
  • Email client simulation – Automated opens via email tracking pixels
  • Link clicks – Some warmup emails include tracked links

Reply Signal Injection

Replies are the strongest positive signal. Include prompts like:

"Can you confirm you received this? Just reply yes or no."

⚠️ Engagement Ratio Matters

ISPs track engagement rates. If you're sending 1,000 emails but only getting 5 opens, that low engagement signals problems. Aim for 20%+ open rates on warmup sends.

ISP-Specific Warmup Adjustments

Gmail requires the most careful warmup. Yahoo is sensitive to complaint rates. Outlook is more forgiving.

ISP Warmup Sensitivity Required Adjustments
Gmail Very High Start at 50 emails/day, slower ramp
Outlook Medium Standard schedule works
Yahoo High Monitor complaint rate closely
iCloud Medium Lower daily limits

Gmail-Specific Warmup

# Gmail-specific warmup overrides
GMAIL_WARMUP = {
    "initial_volume": 50,  # vs 100 for other ISPs
    "daily_increase": 1.15,  # 15% daily (vs 20% for others)
    "max_before_check": 500,  # Pause and verify at 500
    "required_open_rate": 0.25,  # 25% minimum
    "pause_on_complaint": True
}

Monitoring During Warmup

Automation without monitoring is just as dangerous as no automation at all.

Metrics to Monitor

  • Bounce rate – Alert at 1%, stop at 2%
  • Open rate – Alert if below 15%
  • Complaint rate – Any complaints need investigation
  • Spam folder rate – Alert if above 5%

Automated Responses to Watch For

WARMUP_ALERTS = {
    "bounce_rate_above_threshold": {
        "action": "reduce_volume_to_previous_step",
        "notify": ["ops_team"]
    },
    "complaint_received": {
        "action": "pause_ip_for_72_hours",
        "notify": ["ops_team"]
    },
    "low_engagement_rate": {
        "action": "increase_engagement_injection",
        "notify": ["ops_team"]
    },
    "spam_folder_placement": {
        "action": "reduce_volume_50_percent",
        "notify": ["ops_team"]
    }
}

Domain Warmup Automation

Domain warmup follows the same principles but includes DNS propagation checks.

# Domain warmup automation
DOMAIN_WARMUP_CHECKLIST = {
    "dns_propagation": {
        "check_spf": True,
        "check_dkim": True,
        "check_dmarc": True,
        "check_mx": True,
        "wait_time": "24-48_hours_after_record"
    },
    "test_sending": {
        "send_to_seed": True,
        "verify_delivery": True,
        "check_authentication": True
    },
    "gradual_volume": {
        "initial": "50_emails/day",
        "increase": "next_day",
        "monitor": ["bounce_rate", "authentication_pass"]
    }
}

IP Warmup Guide →