Run cold email domain rotation on one drag-and-drop board

See every sending domain as Active, Reserve or Retiring, watch your bench against the 20 to 25 percent target, and refill it before a domain burns.

App
InfraForgeSmartleadSlack BotGeneral Input DatabaseSalesOperationsResearch & MonitoringNotifications & Alerts
PromptCreate

Build me a domain rotation board for the cold email fleet I run. Today I track which sending domains are active, resting or burned in a spreadsheet that is always stale, and the whole point of this app is that the board itself becomes the record. The model is the three pool rotation serious senders use: Active domains carrying live campaign volume, Reserve domains fully warmed and sitting on the bench with light warmup traffic until they are needed, and Retiring domains on their way out. I open this board to plan capacity, not to read stats, so it has to answer one question instantly: if a domain burned today, do I have something warm to swap in.

The board has three columns, Active, Reserve and Retiring, and every domain in my InfraForge account appears as a card in exactly one of them. Load domains with InfraForge List Domains and mailboxes with InfraForge List Mailboxes, grouping each mailbox onto its domain by address. A card shows the domain name, the workspace it belongs to from InfraForge List Workspaces, its mailbox count and its warmup read. InfraForge has no concept of pools, so the pool assignment lives in the app's own database keyed by domain, and any domain the app has not seen before lands in Active by default so nothing is ever silently missing from the board.

The warmup read on a card is the worst trend among that domain's mailboxes, because one burning inbox is what takes the domain down. Match InfraForge mailboxes to Smartlead sending accounts by email address using Smartlead List Email Accounts, then pull Smartlead Get Warmup Stats for each matched account, which returns the last seven days of warmup activity. Reduce each mailbox to a simple health read from sent volume and the share landing in spam versus inbox, then show the worst one on the card with the mailbox that produced it named underneath. If a domain has mailboxes with no Smartlead match at all, say so on the card rather than showing a healthy looking blank.

I move cards between columns by dragging them, and the move persists immediately with an optimistic update so the board never snaps back while it saves. Across the top sits a header bar that tracks the bench: reserve domains as a percentage of active domains, measured against a 20 to 25 percent target I can change in settings. Show the current number, the target band, and whether I am under, inside or over it, and count the mailboxes behind each pool too so I am reading capacity rather than card counts. When reserve drops under the band, make it loud, because that is the moment a burn would leave a gap in sending.

A card in the Retiring column gets a two step wind down. First, Detach from campaigns: work out which campaigns the domain's mailboxes send from with Smartlead List Campaigns and Smartlead List Campaign Email Accounts, show me exactly which addresses are attached to which campaigns, and detach them with Smartlead Remove Email Account from Campaign. Then, once nothing is attached, Delete mailboxes with InfraForge Delete Mailbox, behind a confirmation that names every address being deleted and the campaigns they were just pulled from. Enforce the order: never offer delete on a card whose mailboxes are still attached to a running campaign.

From the Reserve column I can shop the pre warmed pool without leaving the board. A panel lists what is available from InfraForge List Pre-Warmed Domains with its live price and how many mailboxes come attached, filterable by price and by how closely a name matches the domains I already run. Buying uses InfraForge Purchase Pre-Warmed Domains, which charges my credit balance immediately with no separate checkout, so show my balance from InfraForge Get Credit Balance Settings and the running total before I confirm, and note that credit amounts are whole US dollars rather than cents. That purchase can create a sibling workspace named after the original with prewarmed appended when the pre warmed pool sits on a different mail server, and the response returns both a requested workspace id and the workspace the domains actually landed in, so reconcile both and show the real workspace on the new cards instead of the one I asked for. Newly bought domains land in Reserve.

Add a Refill the bench button that starts a background agent. I give it a budget in dollars and optionally the client or workspace to refill. The agent reads the current active to reserve ratio from the board, checks available credit with InfraForge Get Credit Balance Settings, and stops with a clear message if the budget is more than the balance can cover. It browses InfraForge List Pre-Warmed Domains and picks domains whose naming style matches that client's existing domains, so a client running short two word brand variants does not end up with a bench of unrelated names. It buys them with InfraForge Purchase Pre-Warmed Domains, attaches mailboxes with InfraForge Buy Mailboxes following the mailbox naming pattern already used on that client's active domains, and writes a purchase summary back into the app: what it bought, what each domain cost, the total spend, the mailboxes created, the workspace they landed in and the new reserve percentage. It posts that same summary to Slack with Slack Bot Send a Message. Show the agent's status on the board while it runs, drop the new domains straight into Reserve when it finishes, and keep the rest of the board usable throughout.

Design nuance: this is a planning surface, so favour density over decoration and let me see thirty or more domain cards at once. Keep purchase history visible somewhere on the board, since knowing what the bench cost this month is part of deciding whether to keep buying. Load the Smartlead account, campaign and warmup lookups once per board render and cache them rather than fetching per card. Handle the empty bench properly: a board with an empty Reserve column should lead with the refill action instead of an empty box.

What does this prompt do?

  • Shows every sending domain you own as a card in one of three columns, Active, Reserve or Retiring, with its client workspace, its mailbox count and the worst warmup trend among its inboxes.
  • Tracks your bench in a header bar: reserve domains as a percentage of active, measured against the 20 to 25 percent target, so you can see the moment a burn would leave you short of sending capacity.
  • Winds a domain down in the right order from the Retiring column, pulling its inboxes off live campaigns first and only then deleting them.
  • Lets you shop the pre warmed pool at live prices from the Reserve column, or hit Refill the bench and let an assistant pick, buy and set up replacements within a budget you set, then post the receipt into the app and to Slack.

What do I need to use this?

  • An InfraForge account with your sending domains and mailboxes already provisioned
  • A Smartlead account where those addresses are set up as sending accounts, so warmup can be read
  • Credit on your InfraForge balance if you want to buy pre warmed domains from the board
  • A Slack workspace, if you want purchase summaries posted into a channel

How can I customize it?

  • Change the bench target if 20 to 25 percent is not the right ratio for your sending volume
  • Set the spend cap and the client the refill assistant works on each time you run it
  • Pick which Slack channel receives purchase summaries, and the naming style new domains should follow

FAQs

What do the three columns actually mean?
Active domains are carrying live campaign volume right now. Reserve domains are fully warmed and sitting on the bench with light traffic until you need them. Retiring domains are on their way out. The board is the record of which is which, so nobody has to ask.
Why does the board push me toward a 20 to 25 percent reserve?
It is the common rotation guidance for cold email teams: a bench that size lets you swap a replacement in within hours instead of days when a domain burns, without paying to keep a large idle pool warm.
Will the board buy domains without asking me?
No. Buying only happens when you confirm it in the shopping panel, or when you set a budget and run Refill the bench. Purchases charge your balance immediately, so the board shows your balance and the running total before you confirm.
Can retiring a domain break a campaign that is still running?
No. The wind down is two steps: the board detaches the domain's inboxes from their campaigns first, and the delete action stays unavailable while any inbox is still attached to a live campaign.
My provider has no concept of pools, so where does the Active or Reserve label live?
In the app itself. Drag a card to a column and the app remembers it. Any domain the app has not seen before shows up in Active so nothing is ever missing from the board.

Related templates

Klaviyo campaign calendar and draft studio for marketing teams

Plan every email and SMS send on one calendar, see how past campaigns performed inline, and let an assistant write and file the next draft in Klaviyo.

Klaviyo
Slack Bot
App
Run your application review round on Jotform submissions

Your committee opens one board to score every application, see where reviewers disagree, and send the decisions without merging a single spreadsheet.

Jotform
Gmail
Slack
+1
App
Turn any influencer campaign into a client-ready report

Open any campaign, pick this month versus last, and have a written client report drafted into Google Docs and posted to their Slack channel.

Later
Google Docs
Slack Bot
App
Approve every Jotform enquiry before it reaches HubSpot

Work every form enquiry from one queue that already tells you who is new, who is a duplicate and who has a deal open, then push only what you approve.

Jotform
HubSpot
Slack Bot
App
Launch console for cold email domains and mailboxes

Pick a client, get ranked domain suggestions with live prices, and buy domains and mailboxes in one confirmed step instead of juggling tabs and a spreadsheet.

InfraForge
Smartlead
Slack Bot
+1
App
incident.io process hygiene board for weekly reviews

Grade every recent incident against your own process checklist, fix the gaps in place, and walk into the weekly review with an agenda already written.

incident.io
Slack Bot
App

Stop tracking domain rotation in a stale spreadsheet.

Put your active, reserve and retiring domains on one board and see the moment your bench gets too thin to cover a burn.