Loading tutorials…
Loading tutorials…
Most agencies pay $297-497/mo for GHL for 3 months before a single client uses it. The blocker is almost never the platform — it's an unstructured agency setup that snowballs into rework. This is the setup path specialists use day one.
Who this is forAgency owners on the GoHighLevel $297 Agency Starter or $497 Agency Pro plan who need their first 1-10 sub-accounts running cleanly. If you have unlimited sub-accounts but only 1 client live after 60 days, you are losing $600-1,000/mo in unused platform fees.
What you'll need
Step 1
Agency Starter ($297/mo) gives you 3 sub-accounts. Agency Pro ($497/mo) gives unlimited sub-accounts + SaaS Mode + branded mobile app.
In Agency View → Subscription, confirm which plan you are on. The wrong plan is the most expensive mistake at this stage — switching mid-rollout requires re-doing white-label and SaaS Mode config.
Agency Starter at $297/mo is correct only if you will have ≤3 clients on GHL. Above that, you pay $97/mo per additional sub-account, which catches Pro at 5 sub-accounts.
Agency Pro at $497/mo is correct if you will have 4+ clients, want to resell GHL as your own product (SaaS Mode), or need the branded mobile app for clients.
Do not start on Starter and "upgrade later" — your snapshots, white-label settings, and Stripe connection have to be reconfigured on Pro. Start on the right tier.
Step 2
Set your agency name, logo, favicon, support email, and brand colors in Agency View → Settings → Agency Settings. These cascade to every sub-account.
Navigate to Agency View (top-left dropdown shows your agency name, not a sub-account name) → Settings → Agency Settings.
Upload an SVG or 512×512 PNG logo. Upload a 32×32 favicon. Both appear in every sub-account and on the client mobile app if you have Pro.
Set the support email. This is the From address for every system notification clients receive — use support@youragency.com, not your personal Gmail.
Set primary + secondary brand colors. These show in the client portal, mobile app, and email headers.
Save. White-label settings cascade to all existing and future sub-accounts within 5-10 minutes.
Step 3
Replace the default app.gohighlevel.com / app.leadconnectorhq.com client login URL with your own subdomain. Required for white-label credibility.
In Agency View → Settings → Agency Branding → Custom Domains, click "Add Custom Domain."
Enter your chosen subdomain (e.g., app.youragency.com — do not use a root domain like youragency.com or your marketing site breaks).
GHL gives you a CNAME target. Add it in your DNS provider (Cloudflare, GoDaddy, Namecheap, Vercel DNS). If using Cloudflare, set the proxy to "DNS only" (gray cloud), not proxied — GHL handles SSL.
Wait 5-60 minutes for DNS propagation. Click "Verify" in GHL — green checkmark means done.
SSL provisioning takes another 10-30 min after verification. Until it completes, clients will see a security warning on first login.
Step 4
In Agency View → Sub-Accounts → Create Sub-Account. Pick a snapshot (or start blank), assign a name, and invite the client.
Click "Create Sub-Account." Name it the client business name (e.g., "Smith Dental Group") — this appears in their billing and client portal.
Select a snapshot if you have one (covered in the next tutorial). For your first sub-account, start blank — you will export it as a snapshot to clone for future clients.
Set the timezone to the CLIENT'S timezone, not yours. Workflows, calendars, and reporting all anchor to this — getting it wrong breaks every time-based automation.
Add the client as a User with Admin role (or User role if you want to gatekeep settings). They get a welcome email at the address you entered.
Open the sub-account and verify white-label cascade worked — logo top-left should be YOUR agency logo, support email should be YOUR support address.
Step 5
If you are reselling GHL at your own price, connect Stripe in Agency View → Settings → SaaS Configurator and define your price tiers.
In Agency View → SaaS Configurator → Stripe Integration, click "Connect Stripe Account." Authorize via OAuth.
Define your client-facing tiers: usually $97/mo (basic), $297/mo (standard), $497/mo (premium). Most agencies charge 2-3x what GHL charges them.
Set what each tier includes: number of contacts, monthly emails, SMS segments, AI minutes. These map to GHL's internal usage limits.
In each sub-account → Settings → Billing, select which tier the client is on. They get billed via Stripe automatically.
Test by creating a $1 test tier, assigning it to a test sub-account, and confirming Stripe charge fires correctly before going live with real pricing.
Step 6
Inside Agency View → Settings → Agency Settings → Default Templates: pre-set the email signature, calendar config, and conversation auto-replies that every new sub-account inherits.
Most agencies miss this and end up reconfiguring 15+ settings per sub-account. Set them once at the agency level and inherit everywhere.
Default email signature: agency logo + agency name + agency footer (CAN-SPAM compliant).
Default calendar timezone behavior: "Use sub-account timezone" not "Use agency timezone."
Default conversation auto-reply: simple "We received your message and will reply within 1 business day." Clients can override per sub-account.
Default A2P 10DLC brand registration prep: pre-fill the agency-side legal info (EIN, business type, address). Each client still has to submit their own use case, but agency prep is reusable.
Step 7
Before onboarding a real client, run a sub-account through every flow — invite, login, send email, send SMS, take a call, schedule an appointment.
Create a "TEST" sub-account using your real email as the client. This catches white-label gaps no documentation will surface.
Log in via the custom domain (app.youragency.com). Confirm logo, colors, support email all look right.
Send yourself an email from the sub-account → confirm From name matches the agency, footer matches.
Send yourself an SMS (requires A2P 10DLC registration first, see the email/SMS tutorial). Confirm sender name shows correctly.
Schedule a calendar appointment on yourself → confirm reminder emails fire correctly and reach your inbox.
Fix any white-label gap or branding miss BEFORE the real client sees it. First impressions on GHL onboarding decide whether the client trusts the platform.
Common mistakes
Starting on Agency Starter then upgrading to Pro mid-rollout
What goes wrong: Snapshots, white-label, custom domain, and Stripe integration have to be reconfigured on Pro. You waste 8-12 hours of rework, and any sub-accounts created on Starter pricing get billing confusion when switched. That is $300-500 of lost time on top of the $200 plan-difference for the upgrade month.
How to avoid: Decide on day one. If you will have 4+ clients within 6 months, start on Pro ($497/mo). Cancel Starter before any sub-accounts are built if you started wrong.
Using app.gohighlevel.com instead of a custom subdomain
What goes wrong: Every client sees the GHL brand on login. Your white-label illusion is broken before they finish onboarding. Clients ask 'Wait, this is just GoHighLevel?' and your perceived value drops 30-50%.
How to avoid: Set up app.youragency.com on day one. The DNS + SSL setup is 30 min of work + 1 hour of waiting. Non-negotiable for any agency above $1K MRR.
Not setting agency-level defaults before building sub-accounts
What goes wrong: Every new sub-account requires 15-20 manual settings (email signature, calendar timezone, auto-replies, branding). Across 10 sub-accounts that is 3-5 hours of repetitive setup. Across 50 sub-accounts you have lost a full workweek.
How to avoid: Agency View → Settings → Default Templates. Set everything once. Cascades to every future sub-account automatically.
Sub-account timezone set to agency timezone instead of client timezone
What goes wrong: Every time-based automation (appointment reminders, drip emails, SMS sends) fires at the wrong time for the client's actual customers. Appointment reminders go out at 3am client time. You look unprofessional and clients churn within 60 days.
How to avoid: When creating a sub-account, ALWAYS set the timezone field to the client's business timezone. Verify in Sub-Account Settings → Company → Timezone before any workflow goes live.
Reselling GHL via SaaS Mode without testing the Stripe charge first
What goes wrong: First client billing month: Stripe charge fails, client sees a failed payment notification under your agency name, support inquiry rate spikes, trust drops. You discover the tier was misconfigured but only after 3-5 clients hit the same bug.
How to avoid: Create a $1 test tier. Assign to a test sub-account using your own card. Confirm Stripe charges $1 successfully. Then build real tiers.
Inviting clients as Admin role on their own sub-account
What goes wrong: Clients can delete workflows, change DNS settings, disconnect Stripe, and break automations they did not build. You get a 9pm Slack from a panicked client and spend 2 hours unfucking it. Common pattern at 6-month mark.
How to avoid: Invite clients as User role unless they explicitly need Admin. Reserve Admin for yourself + 1 designated client-side power user. Lock down critical settings.
Recap
Done — what's next
How to create and deploy GoHighLevel snapshots without breaking existing sub-accounts
Read the next tutorial
Hand it off
Most agencies we talk to know they should be on GHL — they just lose 2-3 months getting it launched. A vetted GoHighLevel specialist can finish the structural setup (white-label, custom domain, agency defaults, first 3 sub-accounts) in 5-10 days for $400-800 of talent time. That's less than one month of unused platform fees.
See specialist rates
Pro ($497/mo) if you will have 4+ clients on GHL within 6 months. Starter ($297/mo) only if you are testing with 1-3 clients before committing. The mistake is starting on Starter then trying to migrate to Pro — snapshots, white-label, and SaaS Mode all need reconfiguration.
Yes if you charge clients anything above $500/mo. Without a custom domain (app.youragency.com), every client sees app.gohighlevel.com on login and your white-label illusion breaks. Setup is 30 min + 1 hour DNS wait.
GHL uses both terms for the same thing. 'Location' is the older term, 'sub-account' is the newer terminology. In the UI you'll see them used interchangeably. Treat them as identical.
Yes, on Agency Pro. The branded mobile app costs an additional $497/mo on top of the $497 Pro plan and takes 4-6 weeks to publish on App Store + Play Store. Only worth it if you have 50+ active sub-accounts.
Most agencies break even at 3-5 paying sub-accounts (assuming SaaS Mode resale at $297-497/mo). At Agency Pro ($497/mo cost), that's $1,500-$2,500 in client revenue covering platform + delivering profit. Most hit this at month 4-6 if structured rollout starts day one.
Build the first one manually — it forces you to understand every setting. Export it as your master snapshot. Use that snapshot for sub-accounts 2-50. Re-export and update the master snapshot every quarter as you learn what works.
GoHighLevel
Snapshots are how agencies scale GHL from 1 client to 50. Built right, you onboard a new client in 90 min instead of 8 hours. Built wrong, you overwrite a paying client's workflows and spend a Saturday restoring backups.
GoHighLevel
GHL's Workflow Builder is the most powerful piece of the platform — and the easiest to misconfigure into expensive silence. This is the structural setup: triggers that don't fire-and-forget, actions that don't double-send, and the guardrails that catch problems before clients do.
GoHighLevel
GHL’s email and SMS are the highest-leverage channels in the platform — and the easiest to torch by sending too fast, too cold, or without A2P 10DLC registration. This is the setup that keeps you out of spam and out of carrier filters.
GoHighLevel
Most agencies pay $297-497/mo for GHL and use 25% of it. The platform is too deep to learn casually. This is the honest framework: when the cost of self-managing exceeds the cost of hiring, and how to tell which side you're on.