AI and outreach

Email warmup

A new sending domain has no reputation, and mailbox providers treat a sudden burst of email from one as suspicious. Warmup raises your daily volume in steps over five weeks, so the domain builds a record before you send at full volume.

What it is for

Warm up any domain or mailbox you have not sent cold email from before. Scrappy sets a daily limit for each week, tracks opens, replies, bounces and spam complaints, and pauses the warmup if the numbers turn bad.

Warm up a domain

  1. Open the Warmup Domains page (/dashboard/warmup-domains) and choose Add Warmup Domain.
  2. Enter the domain and the email address you will send from. The display name is optional.
  3. Configure the DNS records for the domain with your DNS provider, then tick them off in the DNS checklist on the domain's page.
  4. Start the warmup. Scrappy records the start date and an estimated ready date five weeks out.
  5. Check the domain's page as the weeks pass. The stage and daily limit move up on their own.

DNS records

Three records tell receiving servers that your email is authorized:

RecordWhat it doesNeeded to start
SPFLists the servers allowed to send for the domain.Yes
DKIMSigns each message so the receiver can check it was not altered.Yes
DMARCTells receivers what to do with mail that fails SPF or DKIM.Recommended

A warmup will not start until SPF and DKIM are marked as configured.

The five-week ramp

StageDaily limitLength
WEEK_15 emails7 days
WEEK_215 emails7 days
WEEK_325 emails7 days
WEEK_440 emails7 days
WEEK_550 emails7 days
COMPLETE100 emailsOngoing

Automatic pauses

Scrappy watches two rates and pauses the warmup when either crosses its threshold:

  • a bounce rate above 10%, or
  • a spam complaint rate above 0.5%.

A paused domain is set to PAUSED, not FAILED, and carries a failureReason saying which threshold was crossed. Fix the cause first: clean the list with email validationif bounces were the problem, or review your content if complaints were. Then resume from the domain's page, or over the API:

curl -X PATCH https://scrappy.gg/api/warmup-domains/WARMUP_ID \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"status": "WARMING_UP"}'

You can pause a warmup yourself the same way, with "status": "PAUSED". Those are the only two status changes you can make by hand.

Statuses

StatusMeaning
PENDINGJust created, not yet configured.
CONFIGURINGDNS records are being set up.
WARMING_UPThe warmup is running.
READYFull volume is allowed.
PAUSEDPaused by you, or automatically after a threshold was crossed.
FAILEDA critical issue was detected.

Track progress

The domain's page shows warmup progress, the current stage and the metrics so far. The same data is returned by GET /api/warmup-domains/{id}:

{
"id": "warmup_123",
"domain": "outreach.example.com",
"status": "WARMING_UP",
"warmupStage": "WEEK_2",
"dailyLimit": 15,
"emailsSentToday": 8,
"totalEmailsSent": 150,
"openRate": 45.5,
"replyRate": 12.3,
"bounceRate": 2.1,
"estimatedReadyDate": "2024-02-05T00:00:00Z"
}

List all your domains with GET /api/warmup-domains, optionally filtered by projectId or status. Metrics are recorded through POST /api/warmup-domains/{id}/metrics, which takes emailsSent, opens, replies, bounces and spamComplaints; the rates and the automatic pause are calculated from those counts.

Use the API

# 1. Add the domain
curl -X POST https://scrappy.gg/api/warmup-domains \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"domain": "outreach.example.com",
"emailAddress": "sales@outreach.example.com",
"displayName": "Sales Team",
"projectId": "project_123"
}'
# 2. Record that the DNS records are in place
curl -X PATCH https://scrappy.gg/api/warmup-domains/WARMUP_ID \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"spfConfigured": true, "dkimConfigured": true, "dmarcConfigured": true}'
# 3. Start the warmup
curl -X POST https://scrappy.gg/api/warmup-domains/WARMUP_ID/start \
-H "Authorization: Bearer sk_your_api_key"

Warmup contacts, the addresses a warming domain exchanges email with, are managed on the same dashboard page and at /api/warmup-contacts.

Where to go next