Email Subdomain Setup for GoHighLevel Client Accounts
Purpose
This SOP documents the process of setting up a dedicated email subdomain in GoHighLevel (GHL) to ensure optimal email deliverability, proper DNS authentication, and maintain sender reputation for client accounts.
Scope
Covers:
- Dedicated subdomain configuration in GHL
- DNS record setup (SPF, DKIM, DMARC)
- Default header configuration
- Domain verification
Does Not Cover:
- Domain warm-up procedures
- Email campaign creation
- List management and hygiene
- Ongoing email monitoring
Prerequisites
- Access to client's DNS provider dashboard (Cloudflare, GoDaddy, etc.)
- GHL agency or sub-account admin access
- Client's root domain name
- Authority to modify DNS records
- Basic understanding of DNS record types
Step-by-Step Procedure
Step 1: Select Subdomain Prefix
Standard subdomain: Use sc.clientdomain.com for all clients.
The sc prefix is short (keeps From addresses clean), branded (Symphony Core), and avoids conflicts with mail. which is reserved by cPanel/webmail on many hosting providers.
Exception — High-Volume or Multi-Purpose Clients:
- Use marketing.clientdomain.com for promotional emails
- Use orders.clientdomain.com for transactional emails
- This separates reputation by email type
Step 2: Create Dedicated Sending Domain in GHL
- Log into GHL agency account
- Navigate to Settings > Email Services > Dedicated Sending Domains
- Click Add New Domain
- Enter chosen subdomain (example: sc.clientdomain.com)
- Click Create
- Copy all provided DNS records to a secure location
Step 3: Add SPF Record to DNS
- Log into client's DNS provider
- Create new DNS record:
- Type: TXT
- Name: [subdomain prefix] (example: sc)
- Value:
v=spf1 include:mailgun.org ~all - TTL: 3600
- Save record
Step 4: Add DKIM Records to DNS
GHL provides two DKIM records. For each record:
- Create new DNS record:
- Type: TXT
- Name: [exactly as provided by GHL]
- Value: [exactly as provided by GHL]
- TTL: 3600
- Save record
- Repeat for second DKIM record
Step 5: Add DMARC Record to DNS
- Create new DNS record on root domain (not subdomain):
- Type: TXT
- Name: _dmarc
- Value:
v=DMARC1; p=none; rua=mailto:dmarc-reports@clientdomain.com - TTL: 3600
- Replace clientdomain.com with actual domain
- Save record
Step 6: Configure Default Headers in GHL
-
Return to GHL dedicated domain settings
-
Set Default From Name:
- Format: "[FirstName LastName] from [Company Name]"
- Example: "Sarah Thompson from Acme Solutions"
- Avoid generic names like "Admin" or "System"
-
Set Default From Email:
- Use the dedicated subdomain: support@sc.clientdomain.com
- The From domain must match the dedicated sending subdomain for DMARC alignment
- Example: if subdomain is sc.acme.com, use support@sc.acme.com (or contact@sc.acme.com)
-
Click Save
Step 7: Verify Domain
- Wait 15-30 minutes for DNS propagation
- In GHL, click Verify DNS button
- Confirm all three show "Verified":
- SPF ✓
- DKIM ✓
- DMARC ✓
- If verification fails, wait additional 15 minutes and retry
Step 8: Enable for Sub-Account
- Navigate to Sub-Account Settings > Email Services
- Select verified dedicated domain as default
- Enable Email Verification toggle
- Click Save
Required Inputs
- Client root domain name
- DNS provider login credentials
- GHL agency account access
- Valid email address for DMARC reports
- Subdomain prefix decision
Expected Outputs
- Verified dedicated sending domain in GHL (all three checks green)
- Active DNS records in client's DNS provider
- Configured default headers (From Name and From Email)
- Domain available in email builder dropdown
- Sub-account configured to use dedicated domain
- Email verification enabled
Troubleshooting
Common Issues
Issue: DNS verification fails after 30+ minutes Solution:
- Verify records added to correct domain/zone in DNS provider
- Check for typos in TXT record values
- Ensure no trailing periods in record names
- Use whatsmydns.net to verify global propagation
- Clear DNS cache if testing locally
Issue: DMARC verification fails while SPF and DKIM pass Solution:
- Confirm DMARC record added to root domain (not subdomain)
- Verify format starts with
v=DMARC1;(case-sensitive) - Check policy set to
p=nonefor initial setup - Ensure no extra spaces in record value
Issue: From email domain mismatch error in campaigns Solution:
- Verify From email uses the dedicated sending subdomain (sc.clientdomain.com)
- Confirm From domain matches the DKIM signing domain for DMARC alignment
- Update default headers to match the sending subdomain
- Check campaign-level email overrides
Issue: SPF record validation warning about too many lookups Solution:
- Review existing SPF records for other services
- Consolidate multiple includes if possible
- Ensure total DNS lookups stay under 10
- Contact GHL support for dedicated IP if needed
Exceptions and Edge Cases
- Case A: Multiple Email Types - If client sends both transactional and marketing emails, create separate subdomains (sc.domain.com and marketing.domain.com) to isolate reputation
- Case B: High Volume Senders (1000+ emails/day) - Request dedicated IP through GHL support to prevent shared infrastructure issues
- Case C: Existing SPF Record - If domain already has SPF record, modify existing record to include mailgun.org rather than creating duplicate
- Case D: DNS Propagation Delays - Some DNS providers take up to 48 hours; document setup completion date and schedule verification check
Related Documents
- Email Forwarding SOP — Sibling: inbound email forwarding (ImprovMX)
- Domain Warm-up SOP (separate document)
- Email Campaign Best Practices Guide
- GHL Email Deliverability Documentation: https://help.gohighlevel.com/support/solutions/articles/155000001021
Revision History
| Date | Version | Change Description | Author |
|---|---|---|---|
| 2026-02-27 | 1.2 | Fix From Email guidance: use sending subdomain (not root domain) for DMARC alignment | Symphony Core Systems Team |
| 2026-02-27 | 1.1 | Standardize on sc. subdomain prefix; add email-forwarding-sop cross-reference | Symphony Core Systems Team |
| 2025-10-09 | 1.0 | Initial version | [Author Name] |