A proper GHL agency email architecture uses per-client sending domains, dedicated SMTP credentials per sub-account, centralized monitoring via SMTP provider dashboards, and domain-level reputation isolation. Each client gets their own subdomain (marketing.clientdomain.com), their own SMTP credentials, and their own authentication records. This prevents one client's bad practices from poisoning everyone else's deliverability.
GoHighLevel Email Infrastructure for Agencies: Complete Architecture
The Architecture Problem
Most GHL agencies start simple: one SMTP account, one sending domain, all clients sharing everything. It works until it doesn't.
When one client uploads a purchased list, sends aggressive campaigns, or ignores bounces, the shared reputation tanks. Every client's emails start landing in spam. Now you're firefighting across all accounts instead of isolating the problem.
Proper architecture prevents this. See our email infrastructure guide and multi-domain strategy for the underlying principles.
The Reference Architecture
Here's the infrastructure design that scales from 5 to 100+ clients:
Layer 1: Sending Domains
Each client gets a dedicated sending subdomain:
Client A: marketing.clienta.com
Client B: mail.clientb.com
Client C: send.clientc.com
Why subdomains: Reputation isolation from the client's main domain (invoices, support email stay protected). See our dedicated domain guide.
Layer 2: SMTP Provider
Each client gets dedicated SMTP credentials. In Mailgun, this means adding each client's domain as a separate sending domain within your Mailgun account.
Single provider (simple):
- One Mailgun account
- Multiple domains within that account
- Each domain = one client
- Separate reputation per domain
Multi-provider (optimized):
- Mailgun for standard clients
- AWS SES for high-volume clients
- Postmark for transactional-only clients
Layer 3: GHL Sub-Account Configuration
Each GHL sub-account connects to its client's specific SMTP credentials:
- Settings > Email Services in the sub-account
- Add the client-specific SMTP credentials
- Verify the client's sending domain
- Test sending
Layer 4: Monitoring
Per-client monitoring at the SMTP provider level:
- Delivery rates per domain
- Bounce rates per domain
- Complaint rates per domain
- Google Postmaster Tools per domain
Practitioner note: I manage email infrastructure for agencies with 30+ clients on GHL. The per-client domain setup takes about 20 minutes per client once you have a process. The agencies that skip this step spend 10x that time troubleshooting shared reputation problems later.
DNS Template
For every new client, apply this DNS template:
SPF Record
marketing.clientdomain.com. TXT "v=spf1 include:mailgun.org ~all"
DKIM Records
(Provided by your ESP after domain verification)
DMARC Record
_dmarc.marketing.clientdomain.com. TXT "v=DMARC1; p=none; rua=mailto:[email protected]"
Point DMARC reports to your agency email so you can monitor all clients centrally.
MX Records (for reply handling)
marketing.clientdomain.com. MX 10 mxa.mailgun.org.
marketing.clientdomain.com. MX 10 mxb.mailgun.org.
Client Onboarding Checklist
For every new GHL client:
- Choose sending subdomain — Confirm with client (marketing.domain.com is standard)
- Add domain to ESP — Create in Mailgun/SendGrid/SES
- Configure DNS — Add SPF, DKIM, DMARC, MX records
- Verify domain — Confirm all records pass in ESP dashboard
- Create SMTP credentials — Dedicated username/password for this domain
- Configure GHL sub-account — Add SMTP credentials in Email Services
- Send test email — Verify delivery and authentication
- Set up Google Postmaster Tools — Verify client domain
- Begin warmup — Follow warmup guide
- Document everything — Record credentials, DNS records, warmup schedule
Scaling Strategies
5-15 Clients: Manual Management
At this scale, manage each client individually:
- Track DNS records in a spreadsheet
- Check each client's Mailgun domain weekly
- Handle warmup manually per client
15-50 Clients: Standardized Process
Standardize everything:
- Template DNS records (change domain name, copy everything else)
- Warmup schedule template applied to every new client
- Weekly monitoring rotation (review 5-10 clients per day)
- Documented escalation procedures
50+ Clients: Automation Required
At this scale, you need:
- API-based monitoring that aggregates data across all clients
- Automated alerts for bounce/complaint thresholds
- Standardized onboarding scripts
- Dedicated team member for email operations
Practitioner note: The transition from 15 to 50 clients is where most agencies break. Manual processes don't scale, and one missed client can damage reputation for weeks before anyone notices. Invest in monitoring automation before you hit 30 clients.
Cost Architecture
Per-Client Costs (Mailgun)
| Tier | Per Client/Month | Total (20 clients) |
|---|---|---|
| Low volume (<5K) | ~$0 (flex pricing) | ~$20 |
| Medium (5-20K) | ~$10-15 | ~$200-300 |
| High (20-50K) | ~$25-35 | ~$500-700 |
Agency Bundle Approach
Instead of per-client Mailgun accounts, use one Mailgun account with multiple domains. This simplifies billing and management.
Mailgun Scale plan ($90/month for 100K emails) covers most small-to-medium agencies.
Self-Hosted for Maximum Savings
For agencies sending 200K+ emails/month combined across all clients:
Mailcow on a $10-20/month VPS handles unlimited emails. At 20 clients averaging 10K emails each, that's $10/month total instead of $200+ on Mailgun.
See our cost comparison for detailed numbers.
Reputation Management
Per-Client Monitoring
Check weekly for every client:
- Bounce rate (target: under 2%)
- Complaint rate (target: under 0.1%)
- Google Postmaster reputation (target: Medium or High)
- Blacklist status
When Reputation Drops
- Reduce volume immediately — Cut to engaged-only sends
- Identify the cause — Bad list? Content trigger? Sending too fast?
- Fix the root cause — Don't just wait for recovery
- Communicate with client — They need to understand and cooperate
- Monitor recovery — Takes 2-4 weeks typically
Client Reputation Agreements
Set expectations upfront:
- Clients must maintain list hygiene
- No purchased or scraped lists
- Maximum bounce rates before intervention
- Your agency controls the infrastructure
Practitioner note: I include email reputation terms in every agency contract now. "Agency reserves the right to pause sending for any sub-account exceeding 3% bounce rate or 0.1% complaint rate." It's the only way to protect your other clients.
Common Architecture Mistakes
Mistake 1: Shared SMTP credentials across clients All clients share reputation. One bad actor ruins everyone.
Mistake 2: Using LC Email for client work Shared infrastructure you don't control. See LC Email vs SMTP.
Mistake 3: No monitoring at the provider level GHL's tracking limitations mean you're blind without provider-side monitoring.
Mistake 4: Skipping warmup for new client domains New domains need 3-4 weeks of warmup. Clients want to blast immediately. Push back.
Mistake 5: No backup plan When your SMTP provider has issues, you need a failover. Configure a secondary provider.
If you need help designing and implementing email infrastructure for your GHL agency, schedule a consultation. I'll build the architecture, configure per-client infrastructure, and set up monitoring so you can scale without deliverability problems.
Sources
- M3AAWG: Best Practices for Sending Email
- Mailgun: Domain Management
- GoHighLevel: Sub-Account Management
- Google: Postmaster Tools
v1.0 · April 2026
Frequently Asked Questions
Should each GHL client have their own SMTP credentials?
Yes. Sharing SMTP credentials across clients means shared reputation. One client with bad list hygiene damages every other client's inbox placement. Per-client credentials isolate reputation and let you identify problems faster.
How do I manage email domains for 20+ GHL clients?
Use a spreadsheet or project management tool tracking: client domain, sending subdomain, ESP account, SPF/DKIM/DMARC status, warmup progress, and current volume. Standardize your subdomain naming (mail.clientdomain.com) for consistency.
What SMTP provider works best for multi-client GHL agencies?
Mailgun for simplicity (one account, multiple domains). AWS SES for cost at volume. Self-hosted Mailcow for maximum savings. Many agencies use Mailgun for most clients and SES for high-volume clients.
How do I monitor deliverability across multiple GHL clients?
Check each client's domain in your SMTP provider dashboard weekly. Set up Google Postmaster Tools for every client domain. Create alerts for bounce rate spikes and complaint increases. Aggregate data in a central dashboard if managing 10+ clients.
What happens if one GHL client damages email reputation?
With per-client infrastructure, the damage is isolated to that client's domain. Without it, every client sharing the same sending infrastructure suffers. This is the primary reason to architect per-client isolation.
Want this handled for you?
Free 30-minute strategy call. Walk away with a plan either way.