The agency problem with single-provider setups
If you run an agency that sends email on behalf of clients, Mailgun has almost certainly been on your shortlist for years. It is a mature email API, it has a usable free tier, and most developers can get a Mailgun integration shipped in an afternoon. That is the easy part.
The hard part starts around client seven. At that point you are running seven Mailgun accounts — or one Mailgun account with seven domains crammed into it — seven billing relationships, seven tracking configurations, and no single place where an account manager can pull last week’s send report without logging into three systems.
This post is not an argument that Mailgun is bad. Mailgun is a solid single-provider email API. It is also, however, a product built for a company sending its own email, not for an agency sending email for thirty clients across thirty domains, with thirty distinct deliverability profiles and thirty separate stakeholders asking for reports. That is a different shape of problem.
Mailers.io is built for that shape. It sits above Mailgun — and above Amazon SES, SendGrid, Postmark, Resend, Brevo, and any RFC-compliant SMTP server — and gives you one orchestration layer with per-client workspaces, custom roles, centralized audit logs, and quota-aware routing across all of your providers. You keep the Mailgun accounts you already run. You just stop operating them one ticket at a time.
The rest of this article walks through the operating differences when you are the person running sends for other people.
Why this comparison matters for agencies
For an agency, email is rarely about a single send. It is about a portfolio of senders, each with their own constraints:
- Each client has their own sending domain, authentication records (SPF, DKIM, DMARC), content policies, and volume profile.
- Each client wants their own visibility into what was sent and what bounced, preferably without logging into your agency systems.
- Legal, HR, or procurement on the client side often requires separated access, audit logs, or a data processing agreement that names the people who touched the data.
- New clients land, old clients churn, and the sending stack needs to reshape around the portfolio — not the other way around.
A single-provider setup forces you to model agency reality inside someone else’s single-tenant product. That works at two clients. It starts to wobble at ten. It stops scaling somewhere around twenty.
The real comparison is not Mailers.io replaces Mailgun. It is run the portfolio inside Mailgun, or run Mailgun (and others) inside an orchestration layer.
What Mailgun actually is
Mailgun is a transactional and marketing email API with a long history in the developer market. Strong points that matter to agencies:
- Clean REST and SMTP interfaces, extensive language SDKs, good docs.
- EU-region support, which is useful if you have clients subject to data-residency constraints.
- Inbound routing, which some agencies use for automated parsing of replies or bounces.
- Tag-based analytics, variable substitution, validation API, and webhooks for bounces, opens, and clicks.
- Predictable pricing on high-volume plans, and dedicated IPs on the upper tiers.
What Mailgun is not: a multi-tenant platform for running an agency. It is a single-sender product. The account-level primitives — API keys, webhooks, sending domains, suppression lists, billing — are scoped to one organisation. If you want client isolation, you either buy a separate Mailgun plan per client (they pay, or you invoice them), or you nest all clients inside one account and try to simulate isolation with naming conventions. Both options get painful fast.
Also relevant: Mailgun sets policies and content rules as a provider. If a client’s sending pattern or content falls outside those policies, you have no rerouting path except to move the client to a different provider manually — which means touching every integration, every webhook, every report downstream.
What Mailers.io actually is
Mailers.io is a multi-provider outbound email orchestration platform. Customers — including agencies — connect their existing sending providers (SES, Mailgun, SendGrid, Resend, Postmark, Brevo, Gmail / Google Workspace SMTP, Outlook / Microsoft 365 SMTP, or any SMTP server) and operate them from a single dashboard and REST API. See the integrations overview for the full list.
The core primitives agencies care about:
- Per-workspace isolation. Each client gets its own workspace with its own providers, domains, templates, mail lists, suppression, audit log, and seat assignments. Workspaces do not bleed into each other.
- Bring-your-own-providers. The agency or the client retains the Mailgun, SES, SendGrid, Postmark, etc. account. Mailers.io never rebrands the sends or touches the provider contract. Deliverability reputation stays where it belongs.
- Quota-aware routing across providers. Per-provider hourly and daily caps, priority order, and automatic failover. A walkthrough of how it works is at /platform/quota-aware-email-routing.
- Custom roles and RBAC. Per-resource Full Access and Read Only permissions. Account managers can be read-only on a sensitive client; technical teams can have full access; clients can be invited in as guests on their own workspace only.
- White-label surfaces on Enterprise. The dashboard, unsubscribe page, preference center, and tracking domains can all be branded to the agency or the client, as documented at /platform/white-label.
- Audit logs. Every send, template edit, suppression change, and role assignment is recorded. Retention depends on plan; Enterprise offers unlimited retention.
What Mailers.io is not — and this matters for the comparison:
- It is not an email sending provider. It sits above providers. If you disconnect every provider, nothing sends.
- It does not include reply or inbox management. Replies land in whatever mailbox receives them on the underlying provider. If your agency needs unified reply handling, that is a separate product.
- It does not include a lead database. Clients bring their own audience.
- It does not promise inbox placement. Reputation, authentication, content, and receiver-side decisions are not ours to guarantee. Mailers.io provides the tools to operate well; the operating is up to you.
Side-by-side comparison
The table below is about operating model, not a feature scorecard. Mailgun is a good sending API. Mailers.io is a different layer of the stack.
| Dimension | Mailers.io | Mailgun (single-provider) |
|---|---|---|
| Role in the stack | Orchestration / control plane | Sending provider |
| Providers supported | SES, Mailgun, SendGrid, Postmark, Resend, Brevo, Gmail SMTP, Outlook SMTP, any RFC-compliant SMTP | Mailgun only |
| Multi-client isolation | Per-client workspaces with separate providers, domains, audit | One account; naming conventions only, or separate Mailgun plans |
| Custom roles / RBAC | Per-resource Full Access / Read Only, custom role definitions | Team roles scoped to Mailgun’s account model |
| Quota-aware routing | Per-provider hourly + daily caps, priority, automatic failover | Scheduling/throttling scoped to Mailgun sending |
| Vendor lock-in on sending | Low — swap any connected provider without code changes | Higher — app code is tied to Mailgun API + webhooks |
| Sending volume billing | You pay providers directly. No resale markup. | Mailgun plan covers sending under its own pricing |
| White-label dashboard & email surfaces | Available on Enterprise | Not a primary feature |
| Reply / unified inbox handling | Not provided — outbound-only | Inbound routing available, no unified inbox |
| Lead database / prospect data | Not provided — bring your own audience | Not provided — bring your own audience |
The four architectural differences that decide it
Everything else in this comparison reduces to four architectural choices. If you agree with how an agency should be modelled on three or four of them, the product choice follows.
1. Who owns the provider account
With Mailgun as the whole stack, the agency typically either owns the Mailgun account (and bills the client through a retainer) or the client owns it (and grants the agency access). Both patterns have tradeoffs. Agency-owned means you inherit the deliverability risk if one client spikes bounces. Client-owned means the agency must juggle credentials for dozens of accounts.
With Mailers.io, the account arrangement is orthogonal. Whoever owns the provider contract — agency or client — connects their own API key or SMTP credentials into the workspace. The orchestration layer never assumes ownership of sending. This keeps the deliverability ledger where it belongs and eliminates credential sprawl on the agency side.
2. Vendor lock-in on sending
If your agency code calls the Mailgun API directly, every client is structurally locked to Mailgun. Moving a specific client to SES (for pricing) or Postmark (for a transactional-heavy workload) means touching app code, webhooks, templates, and deliverability reports for that one client.
With Mailers.io, app code calls one unified endpoint. The routing layer decides which provider to use per workspace based on your configured caps and priority. Moving a client from Mailgun to SES becomes a workspace-level config change, not a code deploy. This is the single biggest structural difference for agencies.
3. How client isolation is modelled
Inside a Mailgun account, client separation leans on naming conventions, domain tags, and careful suppression-list hygiene. Reasonable at small scale, error-prone at 20+ clients — and a real problem the first time a misconfigured campaign sprays one client’s content to another client’s list.
Mailers.io models each client as a fully separated workspace: providers, sending domains, mail lists, templates, suppression, and audit are all isolated. Cross-workspace contamination is architectural, not procedural.
4. Audit, RBAC, and compliance posture
Agencies doing work for regulated industries — healthcare, finance, legal — are often asked, “who at your agency has access to our data, and can we see the audit log?” A single-provider stack answers this with “everyone on the Mailgun team has access,” which is rarely what the client wanted.
With per-workspace RBAC, an agency can grant a lead engineer full access to Client A’s workspace, read-only to Client B, and no membership on Client C. The audit log is scoped to each workspace, and retention can be extended on Enterprise plans. Procurement and security teams generally respond well to this model — see the security overview for the controls involved.
Three agency scenarios
Scenario A — 30 B2B clients, each on their own domain
You have 30 active B2B clients, each with one or two sending domains. Half are on Mailgun (historical), a quarter moved to SES to cut costs, and the rest want Gmail-based sending for deliverability reasons.
Without orchestration, this is four different operating playbooks: the Mailgun playbook, the SES playbook, the Gmail/Workspace playbook, and a “legacy” playbook for clients that have not been migrated. Your account managers pick the wrong playbook for someone at least once a quarter.
With Mailers.io, each client becomes one workspace. The Mailgun clients connect Mailgun, the SES clients connect SES, the Gmail clients connect Gmail SMTP (see Gmail SMTP integration), and the agency operates every workspace through the same dashboard and API. One playbook, 30 executions.
Scenario B — One client gets flagged by a provider
A B2B client runs a campaign that triggers complaint-rate flags on Mailgun. Mailgun throttles. If the campaign is tied to Mailgun-only code, recovery means restoring reputation on that account while the campaign sits paused for days.
With quota-aware routing, you can temporarily raise priority on a secondary provider already connected to that workspace (say, SES or SendGrid), let the campaign continue on a lower sustainable cap while the Mailgun account cools, and preserve the client’s timeline. The mechanics of this are documented at /email-routing. Nothing about the root cause changes — complaint rates are still a content and list hygiene issue — but the operational recovery is no longer single-threaded.
Scenario C — Client auditor asks who touched what
A regulated client’s auditor asks for the last 180 days of every send, suppression change, and access event scoped to their account. On a shared Mailgun account with naming conventions, this is a week of log reconstruction and a spreadsheet. On a dedicated Mailgun plan for that client, it is better, but the audit trail covers the Mailgun surface only — not the agency-side workflow around it.
On Mailers.io, the workspace audit log records sends, template edits, domain changes, role assignments, and provider config edits across the entire scope of work. Export, hand to the auditor, move on.
Honest pros and cons
When Mailgun alone is the right answer
- You operate one, two, or three clients and can comfortably separate them with distinct Mailgun plans.
- You are unlikely to need to switch providers for any client — the Mailgun policies and pricing work for everyone in your portfolio.
- You do not need white-label dashboards, external audit exports, or per-resource RBAC.
- You already run a thin, simple agency stack and the overhead of introducing an orchestration layer is not worth the future-proofing.
When Mailers.io on top of Mailgun is the right answer
- You run 5+ clients and want one dashboard, one API, and one audit trail.
- Some clients would be better off on SES, Postmark, Resend, or Gmail-based sending, and you do not want to rebuild the agency playbook each time.
- A client may require RBAC separation, audit exports, or a white-label interface.
- You want to avoid structural lock-in on any one provider.
- You want the deliverability ledger (reputation, suppression, compliance) to live with the provider accounts, not in a resale layer.
Who should choose what
The shortest version:
- Pick Mailgun alone when your agency operates a small, stable portfolio with homogeneous sending profiles and your clients are comfortable inside one provider’s ecosystem.
- Pick Mailers.io (keeping Mailgun) when you run a mixed portfolio, need client isolation, want to retain the option of moving clients between providers, and need an audit and RBAC model that respects agency reality.
You are not choosing between two sending providers. You are choosing whether or not to add an orchestration layer above the sending providers you already run.
How to decide
The decision is almost always framed correctly by counting clients and counting providers. If the product of those two numbers is small, a single-provider setup is honest and appropriate. If the product is large — or growing — you will rebuild orchestration in-house eventually, and the in-house version will be thinner than the one you can adopt today.
Mailers.io keeps your Mailgun account intact. You keep the relationship, the reputation, the billing, and the IP pool. The orchestration layer lets you operate Mailgun (and every other provider you already run) as one system instead of N systems.
If you want to see the orchestration mechanics specifically — caps, priority, failover — the quota-aware routing page walks through the behaviour. If you want to map it to your agency today, the agency solutions page covers workspace design, roles, and white-label. And the pricing page is honest about what is included where.