Cold email infrastructure for agencies: how to set up isolated domains and inboxes per client, manage warmup pipelines across accounts, and keep one client's problems from affecting another.
James Whitfield
Lead gen agency owner, 50+ campaigns/month · Updated June 23, 2026
Last updated: August 2026 · James Whitfield, Lead gen agency owner, 50+ campaigns/month
TL;DR — 5 things to know before reading
The defining infrastructure challenge for cold email agencies is isolation. A single-operator cold email setup can absorb a reputation event on one domain by pausing that campaign while continuing from others. In an agency managing 10–20 client accounts, a reputation event on one client's domain cannot be allowed to affect another client's results under any circumstances.
The solution is physical infrastructure isolation: each client has their own sending domains, their own inboxes, their own suppression lists, and their own analytics. Client A's spam complaint from a campaign targeting IT directors has zero effect on Client B's campaign targeting VP of Finance. The two operations are fully independent at the infrastructure layer.
This guide covers the per-client infrastructure design, how to manage the warmup pipeline across multiple clients, and the tooling setup in Inframail and Instantly that makes multi-client operations manageable.
Client domains should be named to protect the client's primary business domain while being plausibly associated with the client's identity. The standard naming pattern for agency work:
Two domains per client minimum — one domain can be rested or retired while the other continues sending, maintaining continuity during any reputation events.
| Client monthly contact target | Inboxes needed | Domains |
|---|---|---|
| 2,000–5,000/month | 4–6 | 2 |
| 5,000–10,000/month | 8–12 | 2–3 |
| 10,000–20,000/month | 16–20 | 3–4 |
| 20,000+/month | 24+ | 4+ |
Assumes 40 emails/inbox/day, 21 working days/month. Source: Woodpecker's sending limits guide — verified June 2026
Each client domain requires its own SPF, DKIM, and DMARC configuration. Inframail provisions Microsoft 365 inboxes with automatic DNS configuration per domain, meaning the authentication setup for each new client domain is handled during provisioning rather than requiring manual DNS work.
Per the Mailgun SPF, DKIM, and DMARC guide, DMARC must be configured with a policy (p=none minimum, p=quarantine or p=reject preferred) for full authentication compliance. Inframail's automatic DNS configuration includes all three records.
Add every client sending domain to Google Postmaster Tools on day one. Weekly reputation monitoring per client domain is the early warning system for identifying problems before they affect campaign performance.
Inframail provisions Microsoft 365 inboxes at a flat monthly rate regardless of inbox count. For agencies managing 10 clients with 6 inboxes each (60 inboxes total), the inbox cost under Inframail's flat-rate model is the same as for a single client with 6 inboxes.
This is the economic foundation that makes per-client domain isolation viable for agencies. Under per-seat pricing models like Google Workspace ($7/seat/month), 60 inboxes cost $420/month in inbox accounts alone. Under Inframail's flat rate, scaling to 60 or 100+ inboxes has no proportional cost increase.
Agency provisioning workflow per new client:
Timeline to first cold send: 4–6 weeks (warmup period). Timeline to full capacity (40/inbox/day): 6–8 weeks.
Instantly manages all client accounts from a single workspace. The sub-account or workspace group feature assigns each client's inboxes, campaigns, and analytics to an isolated section that cannot affect other clients.
Sub-account structure for 10-client agency:
Each client sub-account contains:
Cross-client contamination prevention:
Inbox rotation in Instantly must be configured at the campaign level to use only the inboxes assigned to that client's account. A global rotation setting that pools inboxes across sub-accounts would break client isolation — client A's inboxes should never send client B's copy.
Verify this configuration for every new campaign by confirming the inbox assignment in Instantly before launch.
An agency onboarding two new clients per month maintains an ongoing warmup pipeline where some domains are always in warmup while others are in active production. Managing this requires explicit tracking.
Domain lifecycle tracker (minimum required fields):
| Domain | Client | Warmup start | Warmup complete | Production start | Planned retirement |
|---|---|---|---|---|---|
| clienta-reach.com | Client A | 2026-07-01 | 2026-08-12 | 2026-08-15 | 2027-05-01 |
| clientb-outreach.com | Client B | 2026-07-15 | 2026-08-26 | 2026-09-01 | 2027-05-15 |
This tracker ensures:
In an agency setting, contact sourcing for each client is typically the agency's responsibility. The contact quality standard must be consistent across all clients regardless of budget tier:
Hard bounce rate must stay below 2% for all client domains. A client providing their own contact list that generates high bounce rates damages that client's sending domain reputation. The agency's infrastructure is doing its job correctly — the contact list is the problem — but the damage is real and affects campaign results.
Quarvio provides pre-verified B2B contacts as a one-time purchase. For agencies building contact lists on behalf of clients, Quarvio's pre-verified contacts eliminate bounce rate as an infrastructure risk variable.
When a client domain experiences reputation damage (spam complaint spike, bounce rate event, or blacklist listing):
The two-domain-per-client minimum design exists specifically for this scenario: when one domain is paused for recovery, the second domain maintains the client's outreach program.
Agencies need per-client performance visibility. Instantly's sub-account structure makes this straightforward:
Separate reporting from separate infrastructure is the operational advantage of the isolation-first agency architecture.
"We spent eight months running all client campaigns from a shared inbox pool before we understood why one bad client campaign could tank delivery for every other client simultaneously. Rebuilding on isolated per-client infrastructure through Inframail took two weeks and quadrupled our operational control. Now when a client provides a bad contact list and their domain takes a reputation hit, it is contained to them. The other 14 clients keep running at full performance. That isolation is the core product we are delivering to clients, even if they never see it." — G2 reviewer, Inframail reviews on G2
Instantly holds a 4.9/5 rating from 2,800+ verified reviews on G2, with sub-account management, inbox isolation, and per-campaign analytics cited by agency operators as the features that make multi-client cold email operations manageable at scale.
The following tables cover the specific settings and configurations that enable reliable multi-client cold email operations at agency scale.
| Client monthly target | Domains | Inboxes per domain | Total inboxes | Warmup period |
|---|---|---|---|---|
| 2,000–5,000/month | 2 | 3 | 6 | 4–6 weeks |
| 5,000–10,000/month | 3 | 3–4 | 9–12 | 4–6 weeks |
| 10,000–20,000/month | 4 | 4 | 16 | 4–6 weeks |
| 20,000+/month | 5+ | 4+ | 20+ | 4–6 weeks |
Assumes 40 cold sends/inbox/day, 21 working days/month. Source: Woodpecker's guide on daily sending limits — verified June 2026
Each new client requires these steps before any cold sends can begin. This is the agency's per-client onboarding SOP:
| Step | Action | Tool | Timeline |
|---|---|---|---|
| 1 | Register 2 client sending domains | Domain registrar | Day 1 |
| 2 | Provision 3 inboxes per domain (6 total) via Inframail | Inframail | Day 1–2 |
| 3 | Verify SPF, DKIM, DMARC passing for all domains | MXToolbox | Day 2–3 |
| 4 | Add both domains to Google Postmaster Tools | Postmaster Tools | Day 2–3 |
| 5 | Create client sub-account in Instantly | Instantly | Day 3 |
| 6 | Connect all 6 inboxes to client sub-account | Instantly | Day 3–4 |
| 7 | Enroll all 6 inboxes in Instantly warmup network | Instantly | Day 4 |
| 8 | Add client domains to domain lifecycle tracker | Agency tracker | Day 4 |
| 9 | Wait 4–6 weeks before launching cold sends | — | Weeks 1–6 |
Timeline to first cold send: 4–6 weeks (warmup period). Timeline to full capacity: 6–8 weeks.
Each client sub-account in Instantly must be configured with strict isolation:
| Configuration item | Setting | Why |
|---|---|---|
| Inbox pool | Client-specific inboxes only | Prevents cross-client inbox mixing |
| Campaign inbox assignment | Manually assigned per campaign | Ensures only correct client inboxes rotate |
| Suppression list | Per-client global suppression | Client A opt-outs don't appear in client B lists |
| Analytics | Per sub-account | Metrics are separated per client for reporting |
| Warmup settings | Per-inbox within each sub-account | Warmup settings don't share across clients |
| Field | Example | Purpose |
|---|---|---|
| Domain name | clienta-outreach.com | Identifier |
| Client | Client A | Assignment |
| Warmup start date | 2026-07-01 | Track progress |
| Warmup complete date | 2026-08-12 | Know when cold sends can start |
| Production start date | 2026-08-15 | When full cold sends began |
| Planned retirement date | 2027-05-01 | Begin warming replacement at month 9 |
| Current Postmaster status | High | Weekly update |
| Monthly send volume | 4,200 | Track against capacity |
Weekly review of this tracker (15–20 minutes for 10–20 clients) ensures no domain's problems go unnoticed and no campaign launches before warmup completes.
Symptoms: Client A receives a spam complaint spike. Other clients' campaigns soon show reduced inbox placement. Postmaster for clients B, C, D shows deteriorating reputation despite no changes to their campaigns.
Root causes: Inbox isolation was not configured correctly — some of client A's inboxes are assigned to other clients' rotation pools. Or: the agency uses a shared tracking domain for all clients, and client A's spam events have damaged the shared tracking domain's reputation.
Fix: Immediately audit inbox assignment for all active campaigns in Instantly. Verify each campaign shows only the correct client's inboxes in its pool. Check whether a shared tracking domain is in use — if so, configure per-client custom tracking subdomains. If isolation was correct, client A's event should not be affecting other clients at all.
Prevention: Verify inbox pool assignment before launching every campaign. Per-client tracking subdomains eliminate shared tracking domain risk entirely. The isolation-first architecture is the agency's core operational protection — verify it on every new campaign.
Symptoms: Agency onboarding 3 new clients in the same month. Week 6, a client expects campaign launch but their inboxes have not completed warmup due to a setup delay.
Root causes: Domain provisioning was delayed for one client. Warmup enrollment was not completed immediately after provisioning. Domain lifecycle tracker was not updated, causing the expected completion date to be missed.
Fix: Check the warmup start date in the domain lifecycle tracker for the affected client. If warmup started late, extend the expected launch date accordingly. Never launch a campaign before warmup completes, regardless of client pressure. Communicate the revised launch timeline with the reason.
Prevention: Trigger domain provisioning on day 1 of client onboarding. A 2–3 week delay in starting provisioning is a 2–3 week delay in campaign launch. Build the warmup period explicitly into client contracts and project timelines.
Symptoms: Client believes sending from company.com will be more credible to prospects and is pushing back on the dedicated sending domain requirement.
Root causes: Client does not understand that cold email spam complaints damage all email from the sending domain — including transactional, onboarding, and customer-facing email.
Fix: Explain that using the primary domain for cold email exposes all company email to reputation damage from cold outreach spam complaint signals. Per Google's email sender guidelines, a spam complaint rate above 0.3% triggers inbox placement penalties for all email from the domain. The dedicated sending domain (company-outreach.com) is recognizable to prospects while keeping the primary domain's reputation intact.
Prevention: Include dedicated sending domain requirements in the agency's standard client contract. Frame it as a protection for the client's primary email reputation, not a limitation on the service.
Symptoms: Client provides their own contact list. First campaign send generates bounce rate above 5%. Client domain reputation drops immediately.
Root causes: Client-provided list has not been verified. List is from a CRM that hasn't been cleaned in 12+ months. List contains role-based addresses (info@, admin@) with high bounce rates.
Fix: Pause the campaign immediately. A 5% bounce rate in a single send can require 4–6 weeks of recovery. Explain to the client that the contact list is the root cause. Either verify the existing list or replace with pre-verified contacts from Quarvio. Resume at low volume (5–10/inbox/day) with the verified list, monitoring bounce rate on the first 100 sends before scaling.
Prevention: Require contact list quality standards in the client contract: hard bounce rate must stay below 2%. For clients providing their own lists, require pre-campaign verification before loading into Instantly.
Symptoms: Client contract included a campaign launch SLA of "within 30 days of signing." Warmup period extends beyond 30 days. Client is invoking the SLA.
Root causes: Agency did not account for the 4–6 week warmup period when writing the campaign launch SLA.
Fix: Communicate that the warmup period is a technical requirement for inbox placement quality. Show the client Postmaster Tools data demonstrating reputation progress. Offer to begin a limited test send (10–20 contacts) at week 4 to demonstrate the infrastructure is working while warmup completes.
Prevention: Agency contracts must explicitly include warmup as the first phase of delivery: "Domain provisioning and warmup: weeks 1–6. Campaign launch: week 6." Never write a campaign launch SLA of less than 6 weeks for a new client.
Symptoms: Weekly Postmaster review shows 3–4 client domains with Medium or Low reputation in the same week. No obvious single cause across affected clients.
Root causes: Same unverified contact source used across multiple clients. A shared deliverability problem (shared tracking domain, shared IP) is affecting multiple clients. Multiple clients launched campaigns simultaneously with too-aggressive volume ramps.
Fix: Audit which contact source was used for each affected client's recent sends. If the same source appears across affected clients, pause all sends from that source. Check whether a shared tracking domain is in use. Reduce cold send volume by 50% across all affected domains and increase warmup sends to 20–25/inbox/day. Monitor weekly.
Prevention: Standardize on Quarvio verified contacts across all client campaigns to eliminate contact quality as a shared failure mode.
Symptoms: Client A receives a complaint that emails referenced Client B's product. Investigation reveals Client B's inboxes were in Client A's rotation pool.
Root causes: Campaign was created with inbox pool set to "all inboxes in workspace" rather than client-specific inboxes. A new inbox was added to the workspace without assigning it to the correct client sub-account first.
Fix: Pause both affected campaigns immediately. In Instantly, audit every campaign's inbox pool assignment. Reassign inboxes to correct client sub-accounts. Resume campaigns only after confirming each campaign's inbox pool contains exclusively the correct client's inboxes.
Prevention: Inbox pool assignment is a mandatory pre-launch checklist item for every campaign. Never use "all workspace inboxes" as a rotation setting. Every campaign inbox assignment must be explicit and verified before launch.
Symptoms: Monthly billing requires per-client reply rates, meetings booked, and contact coverage data. Generating this from Instantly takes hours of manual work per client.
Root causes: Analytics were not configured per sub-account from the start. Campaigns for the same client span multiple workspaces without consistent naming. Per-client reporting was not built into the operational process.
Fix: Configure each client's campaigns within their dedicated Instantly sub-account from day one. Use consistent naming conventions (Client Name — Campaign Name — Start Date). Extract analytics from per-client sub-accounts, not the global workspace view. Instantly's sub-account analytics provide per-client breakdowns without manual aggregation.
Prevention: Establish per-client sub-account structure and naming convention before onboarding the first client. Retrofitting reporting structure onto an existing agency workflow is significantly harder than setting it up correctly from the start.
A documented, repeatable onboarding SOP eliminates ad hoc decisions that cause most agency operational problems.
Pre-onboarding (during contract negotiation):
Week 1 (provisioning):
Weeks 2–5 (warmup period):
Week 6 (campaign launch):
An agency adding 2 new clients per month will have 24+ clients in production within 12 months. At 2 domains per client, that is 48+ active sending domains.
Quarterly retirement review: Identify all domains entering their 9th month of production. Begin warming replacement domains immediately.
Annual domain audit: Review all domains for Postmaster reputation, blacklist status, and send volume. Retire any domain showing chronic Medium reputation despite warmup maintenance.
Domain retirement communication: Notify clients 4–6 weeks before domain retirement that sending infrastructure is being refreshed. Frame it as proactive maintenance that protects campaign performance.
| Domain lifecycle phase | Agency action |
|---|---|
| Months 0–6 | Active production; weekly monitoring |
| Months 6–9 | Active production; begin planning replacement domains |
| Months 9–12 | Begin warming replacement domains alongside production |
| Month 12+ | Retire production domain; replacement at full maturity |
Agencies delivering cold email as a managed service need client-facing reports that present results professionally without exposing internal tool structure. A monthly report template:
Executive summary: Contacts reached, total replies, positive replies, meetings booked, reply rate, bounce rate.
Domain health: Google Postmaster reputation status per sending domain (presented as Green/Yellow/Red status, not raw Postmaster terminology).
Campaign performance: Per-campaign metrics including volume sent, reply rate, and notable results from the month.
Next month plan: Contact segments planned, sequence changes from A/B test results, any infrastructure maintenance scheduled.
This report is built from Instantly sub-account analytics and Postmaster Tools data. Presenting results without referencing the underlying tools protects the agency's operational stack from client knowledge.
Agency contracts must include terms that protect shared infrastructure from client-driven risk:
Contact list quality clause: Client-provided lists must achieve hard bounce rate below 2%. The agency reserves the right to pause campaigns if bounce rate exceeds 2%, pending list review.
Primary domain protection clause: Cold email will never be sent from the client's primary business domain.
Campaign launch timeline clause: Campaigns launch no sooner than 6 weeks from contract signing to allow for infrastructure setup and warmup. This timeline is not compressible.
Force majeure for reputation events: If client-provided contact list quality causes domain reputation damage, campaign pause and recovery costs (including replacement domain provisioning and warmup) are billed to the client.
| Need | Tool | Notes |
|---|---|---|
| Verified B2B contacts | Quarvio | One-time purchase, no subscription |
| Email inboxes | Inframail | Microsoft 365 inboxes, auto DNS |
| Cold email sending | Instantly | Sequences, warm-up, reply tracking |
| LinkedIn outreach | Aimfox | Connection campaigns, Unibox |
How many sending domains does each client need at minimum?
Two sending domains per client at minimum. The two-domain minimum provides redundancy during reputation events: when one domain is paused for recovery or retirement, the second domain maintains the client's outreach program. For clients with volume above 10,000 contacts per month, 3–4 domains per client provides additional risk distribution and volume capacity.
Can multiple clients share sending domains in an agency setup?
No. Shared domains between clients create cross-client contamination risk. A spam complaint or bounce spike from one client's campaign affects the domain reputation for all clients sharing that domain. The operational overhead of maintaining per-client domains is justified by the protection it provides — and Inframail's flat-rate pricing makes the cost of additional domains negligible.
How do I manage warmup across 20+ client domains simultaneously?
Through a simple domain lifecycle tracking spreadsheet (or equivalent tool) with warmup start date, warmup completion date, production start date, and planned retirement date for every domain. Instantly manages warmup execution automatically for all enrolled inboxes — the operational task is tracking which inboxes are in warmup vs. production and ensuring campaigns are not launched before warmup completes.
What is the monthly cost of running infrastructure for a 10-client agency?
At Inframail's flat rate for unlimited inboxes, the inbox cost is fixed regardless of whether you have 30 inboxes (5 clients at 6 inboxes each) or 120 inboxes (20 clients at 6 inboxes each). Instantly's agency plan scales by the number of active contacts in sequences. Contact data from Quarvio is a one-time purchase per order. The agency stack's recurring costs (Inframail + Instantly) remain relatively flat as client count grows, which is the operational leverage that makes the agency model viable.
How do agencies typically price cold email infrastructure as part of their service?
Most cold email agencies bundle infrastructure costs into a monthly retainer or performance-based fee. Common pricing structures: (1) Flat monthly retainer ($2,000–$5,000/month for a fully managed campaign including infrastructure, contacts, and management). (2) Per-meeting-booked pricing ($200–$500 per qualified meeting, which aligns agency incentives with client outcomes). (3) Tiered retainer by contact volume ($1,500/month for up to 3,000 contacts/month, scaling with volume). Inframail's flat-rate pricing for unlimited inboxes means infrastructure cost does not scale with client count, which gives agencies high gross margin on the infrastructure component as the client roster grows.
What happens to client sending domains if a client leaves the agency?
This depends on how the domains were registered. If the agency registered the sending domains on behalf of the client, the domains are legally the registrant's property (typically the agency, not the client, unless the contract states otherwise). Best practice: register all client sending domains under the client's own registrar account whenever possible. If the agency registered domains under its own account, include a domain transfer provision in the contract that transfers registration to the client upon contract termination. Sending domains represent significant deliverability value after 6–12 months of warmup — clients should be aware of their ownership rights and agencies should document this clearly.
How do agencies handle GDPR and CAN-SPAM compliance across clients targeting different markets?
The core compliance requirements apply regardless of market: every cold email must include the sender's physical address, a clear opt-out mechanism, and honest subject lines (CAN-SPAM). For clients targeting EU recipients, GDPR applies a stricter framework: cold email to EU-based individuals requires a legitimate interest basis documented in the sender's privacy policy. The agency's standard sequence template should include CAN-SPAM-compliant elements by default. For EU-targeting campaigns, clients should provide documentation of their legitimate interest basis before campaigns launch. Instantly's suppression list ensures opt-outs are honored across all campaigns — which satisfies the unsubscribe requirement under both CAN-SPAM and GDPR.
Should agencies use one Instantly workspace for all clients or a separate workspace per client?
One workspace with per-client sub-accounts is the standard approach for operational efficiency. A single workspace allows the agency to manage all inboxes, warmup status, and suppression lists from one login, while sub-accounts provide the per-client isolation needed for inbox pool separation, analytics, and suppression lists. Separate workspaces per client create operational overhead: managing N workspaces with separate logins, separate warmup dashboards, and separate reporting. The exception is if clients require complete account isolation for contractual or data security reasons — in those cases, separate workspaces may be appropriate at the cost of higher management overhead.
How do I manage the warmup pipeline when onboarding 3 new clients at once?
The key is staggered provisioning within the same week. For 3 clients onboarding simultaneously: register all 6 domains (2 per client) on the same day. Provision inboxes for all three clients via Inframail within days 1–3. Enroll all 18 inboxes in warmup simultaneously in Instantly. All three clients will complete warmup within the same 4–6 week window. Update the domain lifecycle tracker for all three clients immediately to document warmup start dates and expected completion dates. The warmup management overhead for 3 clients simultaneously is not much higher than for 1 — all three complete within the same monitoring cycle.
Can a client's brand domain ever be safely used for cold email if they insist?
No. There is no configuration or warmup approach that makes using the primary business domain safe for cold email. The fundamental problem is that cold outreach generates spam complaints at higher rates than permission-based business correspondence, and complaints on the primary domain affect the deliverability of all email sent from that domain — including transactional email, customer support, marketing, and onboarding messages. Per Google's email sender guidelines, a spam complaint rate above 0.3% triggers delivery penalties for all Gmail sends from that domain. This is not a negotiable risk. If a client refuses to use dedicated sending domains after being informed of this risk, the appropriate response is to decline the engagement rather than accept the liability.
How do you handle a client who insists on using their own contact list?
Accept it, but with documented quality requirements. The agency's contract should require client-provided lists to achieve hard bounce rate below 2% on campaign sends. Before loading a client list into Instantly, run it through a verification process — either via a third-party email verification tool or by testing a sample. If the verification identifies a high proportion of invalid addresses, provide the client with the results and recommend Quarvio as an alternative or supplementary source. Document the verification results before campaign launch so that if bounce rates exceed the threshold, the agency can demonstrate due diligence. The contract's force majeure clause for reputation events covers the agency if a client list causes domain damage despite documented warnings.
What is the minimum recommended contract length for a cold email agency engagement, given the warmup timeline?
Three months minimum, with six months preferred. The first 4–6 weeks are warmup with no campaign sends — a 30-day contract would end before the first cold campaign could launch. A three-month contract provides 6 weeks of warmup plus approximately 6 weeks of active campaign data, which is the minimum dataset needed to make meaningful optimization decisions. A six-month contract allows the full campaign ramp (weeks 1–6 warmup, weeks 6–10 soft launch, weeks 10+ full production) plus 2–3 months of optimized production sending. Clients who want results faster than this timeline allows should be educated that the warmup requirement is non-negotiable, not a sales obstacle.
Client contact quality is the agency's infrastructure risk
When clients provide their own contact lists, unverified addresses generate bounce rates that damage their sending domains — and the agency's infrastructure is blamed for poor results. Quarvio's pre-verified B2B contacts protect client domain reputation from day one of each campaign. One-time purchase, no subscription.