Sending & Drafting Email With AI Agents · 7 min read · Jun 30, 2026

Follow-Up Emails on Autopilot: A Pattern for Sales Agents

"Follow up in three days if they don't reply" is one of the most mechanical tasks in sales, and one of the most commonly dropped. An agent built for this doesn't need to be clever — it needs an inbox, a way to check whether a reply has arrived, and a way to draft and send a follow-up when one hasn't. The interesting part is less the prompt and more the loop around it.

The shape of the loop

A minimal follow-up agent looks like this, run on a schedule:

Building a cron-triggered agent that checks its own inbox covers the scheduling half of this in more detail; adding email to an autonomous agent loop covers where this step fits inside a larger agent that's doing more than just email.

Keeping the brief, not the full thread, in context

A follow-up brief doesn't need the entire email thread pasted into purpose — it needs the two or three facts that matter: what was originally offered, what's still outstanding, and whether anything has changed since. Stuffing a full thread history into key_points tends to produce a drafted email that reads like a transcript, not a message. See designing prompts for reliable AI-drafted email and tone, key points, and purpose for how to keep a brief tight without losing the context that actually matters.

Deciding when to stop

The easiest way to build a follow-up agent that annoys people is to never give it a reason to stop. A reply from the prospect is one stopping condition; a fixed number of attempts is another. Neither requires anything beyond reading the inbox's message list and counting — there's no need to run sentiment analysis on a reply to know that a reply happened at all.

What this costs at scale

Every follow-up sent this way is a $0.01 send call, and every check of the inbox's history is free (it's a GET against the read token, no payment involved). Running this loop across a hundred leads, checked daily, costs whatever fraction of them actually need a follow-up sent that day — not a flat per-seat fee for the agent sitting idle on the days nobody needs one. Budgeting for a fleet of autonomous agents that pay their own way covers how that adds up once it's not just one sales agent but many.

A failure mode worth guarding against

If the scheduling and the reply-check ever drift apart — a cron job that fires more often than intended, or a bug that double-counts "no reply yet" — the result is a prospect getting the same follow-up twice in one day. Guard against this with an idempotency check in your own scheduling logic (has a follow-up already gone out for this lead today?) rather than assuming the send endpoint will catch a duplicate for you; it doesn't know what "duplicate" means for your sales process, only what it was told to send.

For the inbox fundamentals this pattern builds on — provisioning, read tokens, and message history — see what an agent inbox actually is and the inbox reference.

A three-touch cadence, as briefs

A simple cadence — day 3, day 7, day 14 — maps directly to three different purpose values against the same lead, each slightly more direct than the last:

// Day 3
{ "purpose": "gentle follow up, no response yet, keep it brief", "key_points": ["original offer still stands"] }

// Day 7
{ "purpose": "second follow up, be more direct about next steps", "key_points": ["ask if timing has changed", "offer a shorter call instead of email"] }

// Day 14
{ "purpose": "final follow up before closing this lead out", "key_points": ["make clear this is the last check-in", "leave the door open for later"] }

Nothing about the API changes between these calls — it's the same send route, the same price, with a brief that reflects where the lead actually is in the cadence. The cadence logic (which touch is next, whether to skip one) belongs entirely in your own scheduling code, not in anything DimeBox tracks on your behalf.

Handling a bounce or a dead address

A send that reaches failed status — checked via the message list — is a signal worth feeding back into the cadence, not retrying blindly. A fixed number of consecutive failures to the same address is a reasonable point to stop the cadence for that lead entirely rather than continuing to pay for sends that aren't landing anywhere.

Where this fits next to a human sales process

None of this requires replacing a human seller — it's squarely a tool for the mechanical part of the job, the follow-up that's easy to forget precisely because it's routine. A reasonable middle ground is routing anything beyond the scripted cadence — a reply with a real question, an objection, anything that isn't silence — to a human, and keeping the agent's job strictly to "send the next scheduled touch if nothing came back." Agentic commerce 101 covers the broader shift this kind of agent is part of, where software increasingly pays its own way through a workflow instead of needing a subscription or a seat.

New to agent email? Start with Email for Agents: The Complete Guide to Giving AI Agents a Real Inbox for the full picture.