September 2, 2026 · 8 min read

Go High Level SaaS Mode Setup: The Workflows to Build Before Client 10

The switch takes ten minutes; the snapshot, onboarding sequence, dunning flow, and plan-change automations that make it run without you take the rest of the week.

The switch itself takes about ten minutes. You upgrade to Agency Pro, connect a live Stripe account, build a plan in the SaaS Configurator, and copy the sale link. Then your first real client pays at 11:40 on a Thursday night, GHL spins up their sub-account, loads your snapshot, sends them a login email, and nothing else happens. No kickoff call gets booked. Nobody on your team gets pinged. When their card fails in month three, the account locks and they find out from the lockout screen, not from you.

That gap between "SaaS Mode is on" and "SaaS Mode runs itself" is what this post covers: the default snapshot, the onboarding workflows that fire on signup, the plan-change and failed-payment automations, and the workflows agencies tend to build only after client ten teaches them why. If you're still deciding whether to flip the switch, start with the SaaS Mode mechanics walkthrough or the HighLevel SaaS Mode overview, and the white-label pillar covers the business model around it. This one assumes you've decided.

What the switch does on its own (and what it leaves to you)

Go High Level SaaS Mode is an Agency Pro feature at $497/mo. The $297 Unlimited plan gets phone and email rebilling with no markup, but no SaaS Configurator and no automated sub-account creation, per GHL's pricing page. Once you're on Pro, the configurator lives under Agency View, and plan creation is a wizard: plan details, category, monthly and annual pricing, features plus the snapshot to attach, add-ons, marketplace apps, trial days and complimentary credits, and usage billing for overages. Each plan card gets a "Copy sale link" button, or you can sell the plan through an order form on a funnel you built yourself. GHL's configurator guide covers each step.

After a successful purchase, three things happen on their own: the sub-account gets created, the plan's snapshot gets applied, and the buyer receives a welcome email with their login link. That's the whole automated part. Two notes from the troubleshooting docs: Stripe has to be on live keys, not test mode, or the sub-account never generates (test with a real card and refund it afterward), and the agency and the sub-account running checkout have to be connected to the same Stripe account.

Everything after the welcome email is on you: GHL doesn't book a kickoff call, doesn't notify your team, doesn't run a trial-ending sequence, and doesn't send dunning emails when a renewal fails. The Advanced Settings tab of the configurator has toggles for some of the behavior (suspending accounts on failed payment, letting clients self-upgrade, customizing the welcome email), but the sequences themselves are workflows you build.

The default snapshot is your product, so build it like one

Every SaaS client gets the snapshot attached to their plan, loaded before they ever log in, which makes it the thing you're selling. What a GHL snapshot is covers the basics; the SaaS-specific rules are shorter.

Build it in a dedicated template sub-account, never in a live client account. Keep it lean: a pipeline with three to five stages that match the niche, one booking calendar, a missed-call text-back workflow, a review request workflow, a lead follow-up sequence, and the email and SMS templates those workflows use. Ship every workflow in draft or gated behind an on/off custom value. A snapshot that starts texting a client's contacts before they've read the welcome email is how you get a support ticket on day one.

Two things the snapshot can't do. First, it can't run your onboarding drip to the buyer. Workflows inside the new sub-account act on that sub-account's contacts, meaning the client's leads, and the client isn't a contact in their own account. Your onboarding sequence lives in your agency's own sub-account, where the buyer became a contact when they hit your order form. Second, it can't update itself. When you change the snapshot later, you refresh it and use Push Updates from Agency View to send the changes to the sub-accounts that loaded it. Pushed workflows overwrite the existing version, so test the push on one account before you hit fifteen.

Onboarding workflows that fire on signup

Wire the sequence to the purchase event, not to a form. If your pricing page is a funnel with an order form, GHL's own SaaS onboarding guide points at the Order Form Submission trigger filtered to that funnel. The Payment Received trigger works too, filtered by Source = Funnel and the SaaS plan's product, and it carries a Payment Status filter you'll reuse later. If you sell through the configurator's sale link instead of your own funnel, run a real test purchase and confirm where the buyer's contact record lands before you wire anything to it.

A cadence that holds up across the first dozen clients:

  • Minute 0. Add the tag saas-active, add the contact to an Onboarding pipeline stage, and send an internal notification to whoever owns onboarding. GHL already sends the login email, so don't send a second one; customize it under SaaS Configurator, Advanced Settings, Customize Welcome Email, and don't delete the source template afterward or every future email falls back to the default.
  • Hour 1. SMS with a calendar link for a 20-minute kickoff. No pitch, just "grab a time."
  • Day 1. If no appointment is booked (an If/Else on appointment status), a second nudge with a one-line reason to show up: the missed-call text-back doesn't work until their number is connected.
  • Day 3. The first "have you done X" check-in, tied to the thing in your snapshot that produces the earliest visible win. For most local-service niches that's connecting Google Business Profile so review requests start going out.
  • Day 7 and Day 14. Short check-ins with one training video each. Move the pipeline stage to Active on day 14 and remove the onboarding tag.

That's it. Five to seven steps, one pipeline, two tags. The agencies that struggle here built a 30-step onboarding workflow on day one and can't tell which step is misfiring at client eight.

Plan changes and failed payments: the automations that protect MRR

Plan changes. Clients can upgrade themselves from Settings, then Company Billing, but only if you turn on "Allow sub-account admins to upgrade their subscription" in the configurator's Advanced Settings (or per client under Manage Client). Pair it with "Add New Plans Features and Apps Upon Upgrading" so the new tier's features turn on at payment instead of waiting on you. Agency-initiated plan changes go through Stripe directly, and afterward you update the location's features by hand, so keep a checklist. SaaS V2 subscriptions only move within the same billing interval, monthly to monthly or annual to annual. GHL doesn't document a plan-change trigger, so hang any upsell confirmation sequence on the Subscription trigger (Payments section of the workflow builder), which fires on new subscriptions, trial-to-active transitions, and cancellations and filters on Global Product and Status.

Failed payments. The configurator's Advanced Settings has a toggle to suspend sub-accounts when the SaaS subscription fails. Failed means the Stripe subscription hits canceled, past_due, incomplete_expired, or incomplete. The client gets a lockout screen where they can update the card and reactivate, and agency users can still log in. What the toggle doesn't do is warn anyone. On the idea board thread that requested the feature (84 votes, marked complete), the top comment asks for a grace period and a notification before suspension, because most failures are expired cards, not churn. Build that yourself: a workflow on the Payment Received trigger with Payment Status = Failed, filtered to your SaaS product, that sends an email and SMS at hour 0, a second pair at day 2, and a task to your account manager at day 5. Decide up front whether you want the suspension toggle on with a two-day dunning runway in front of it, or off with the sequence carrying the whole load. The default (toggle on, no sequence) is the one that loses a client over a card decline.

Trials. If your plan has a trial, build a trial-ending sequence off the signup event with a wait step set to the trial length minus three days: one email that says what the charge will be and when, one SMS the day before. If you'd rather not do date math, the Subscription trigger with Status = Trial works as the entry point.

The workflows agencies build after client 10 and wish they'd built at client 1

A cancellation save flow. The Subscription trigger with Status = Canceled fires when a client cancels. A two-message sequence, an exit question and then a downgrade offer to your cheapest tier, recovers a real share of the cancellations that were "I'm not using it" rather than "I'm leaving." Cancel on the GHL side from Agency View, Accounts, View Details. Remaining wallet credits are forfeited, and once SaaS is disabled on the account the transaction history goes with it, so export it first.

A converted-client path. Existing retainer clients you move over with "Switch To SaaS" from the Sub-Accounts three-dot menu stay On Hold until they add a card. A reminder sequence from your agency sub-account with the payment link, two touches over four days, keeps those from stalling for a month.

An internal handoff checklist. On signup, add tasks to the assigned user: verify the phone number connected, confirm A2P registration started, check the calendar is synced. Three tasks, auto-assigned, beat a Slack message every time.

A quarterly review trigger: a 90-day wait from the Active stage, then an internal task to review usage and pitch the next tier. This is the one that turns SaaS Mode from a flat subscription into MRR that grows per client.

Where Brandblast fits in a SaaS Mode stack

Once the workflows above are running, the sub-account onboards itself, bills itself, and warns you before it churns. What it still can't do is post. GHL's Social Planner schedules content, but the content has to come from somewhere, and at ten SaaS clients that somewhere is usually you. Brandblast installs inside GHL from the App Marketplace, generates months of branded posts, carousels, videos, and AI avatars per sub-account from the client's own brand assets, pushes everything into their Social Planner, and Autopost keeps creating and posting on its own. Bundle it into your plan tiers alongside the snapshot and the social feed becomes one more thing the account handles without you. The white-label pillar covers how agencies price it in.

Frequently Asked Questions

How do I set up workflows in gohighlevel for SaaS accounts?+
Two places, and mixing them up is the most common mistake. Workflows that serve the client's customers (missed-call text-back, review requests, lead follow-up) get built in your template sub-account and ship inside the snapshot attached to the plan. Workflows that serve the client themselves (onboarding, kickoff booking, dunning, cancellation saves) live in your agency's own sub-account, because that's where the buyer becomes a contact when they purchase. Start those from the purchase event, either Order Form Submission filtered to your pricing funnel or Payment Received filtered to the SaaS plan's product, and keep each sequence to five or seven steps so you can tell what broke when it breaks.
How do I enable SaaS Mode?+
Upgrade to Agency Pro ($497/mo), connect Stripe with live keys, then open Agency View and SaaS Configurator to build your first plan: name, pricing, the snapshot to attach, trial days, and usage billing. Copy the plan's sale link or drop the plan on an order form in your own funnel, then run a real test purchase with a card you'll refund afterward. Sub-accounts don't generate from Stripe test mode, so if nothing appears after a test checkout, that's almost always why. The switch is the easy part; what you build after it is what decides whether the account runs without you.
Can clients sign up directly without me onboarding them in SaaS Mode?+
Yes, that's the point of the sale link. A prospect pays on your pricing page, GHL creates the sub-account, applies the plan's snapshot, and emails them a login link without you touching anything. What "without onboarding" gets you in practice is a client who logs in once, sees an empty CRM, and doesn't come back, which is why the self-serve signup should still drop them into a workflow that books a kickoff call and checks in on days 3, 7, and 14. Self-serve signup and zero-touch onboarding aren't the same thing; the first is a GHL feature and the second is a churn problem.
What is SaaS Mode in GHL?+
SaaS Mode is the Agency Pro feature that lets you sell Go High Level as your own software: you set the plans and prices in the SaaS Configurator, clients pay you through Stripe, GHL creates their sub-account and loads your snapshot automatically, and you can mark up SMS, email, and AI usage on top of the subscription. It replaces the manual create-a-sub-account-and-send-an-invoice loop with a checkout. It doesn't replace the service layer. The onboarding, billing follow-up, and content still need workflows or people behind them, which is what most of this post is about.

Stop rebuilding social media for every client

Brandblast generates months of branded content for every sub-account, on autopilot, pushed straight into GHL's Social Planner.

Start your free trial