GoHighLevel Snapshots: How to Build, Share, and Update Client Snapshots Without Breaking Automations

GHL Prime TeamJuly 11, 20269 min readTutorials

A GoHighLevel snapshot is a reusable template of a sub-account. It copies the structure you built — workflows, funnels, pipelines, calendars, custom fields, and templates — into a new sub-account so you can deploy a proven setup in minutes instead of rebuilding it by hand.

That is the sales pitch, and it is true. What nobody explains is the second half: a snapshot copies structure, not connections. Understanding exactly where that line falls is the difference between a five-minute client onboarding and a week of confused debugging.

Key takeaways

  • A gohighlevel snapshot copies configuration, not data. Contacts, conversations, and history never travel.
  • Phone numbers, A2P registration, and integrations do not transfer. Every new sub-account needs its own, and this is the number one cause of a snapshot that looks fine but sends nothing.
  • Custom value keys travel but their client-specific values usually need re-entering, which silently breaks message templates.
  • Pushing a snapshot update to live sub-accounts can duplicate assets rather than replace them. Always pilot on one account first.
  • Version and date your snapshots. An unversioned snapshot library becomes unusable within a year.

What is a GoHighLevel snapshot?

A snapshot is a saved blueprint taken from one sub-account and applied to another. You build a sub-account the way you want it, save it as a snapshot at the agency level, then load that snapshot into any new sub-account you create.

If you are new to the platform and the sub-account concept is unfamiliar, our guide to what GHL is and how it is structured covers the account hierarchy first. Snapshots only make sense once the agency-and-sub-account model is clear.

Agencies use snapshots for three things: onboarding new clients fast, standardizing a niche offer so every HVAC or dental client gets the same proven build, and distributing a productized system to other agencies. If you resell the platform, snapshots are also the delivery mechanism, which our SaaS Mode setup guide gets into.

What travels in a snapshot, and what does not?

This table is the single most useful thing in this article. Print it. Almost every snapshot problem traces back to something in the right-hand column.

AssetTravels in a snapshot?What you need to know
Workflows and automationsYesCopied fully, but any step referencing a specific user, calendar, or number can break.
Funnels and websitesYesPages copy over. Custom domains do not.
Pipelines and stagesYesStructure only. No opportunities.
CalendarsStructure onlyConfig copies, but team member assignments break because users do not travel.
Custom fieldsYesReliable. Build your field schema before your first snapshot.
Custom valuesKeys yes, values often noThe classic silent failure. Templates render blank if values are not re-entered.
Email and SMS templatesYesAny merge field pointing at a missing custom value renders empty.
Forms and surveysYesCopied with their fields.
Contacts and conversationsNoNever. Import contacts separately by CSV.
Phone numbersNoPurchase a number per sub-account.
A2P 10DLC registrationNoRegister every sub-account separately. Longest lead time in onboarding.
Integrations (Stripe, Google, Facebook)NoOAuth connections are per sub-account and must be reconnected by the client.
Users and permissionsNoAdd users manually, then repair calendar and workflow assignments.
Domains and DNSNoConnect per sub-account.

Read the pattern: anything that is configuration travels, and anything that represents a connection to the outside world or to a person does not. Once you internalize that rule you can predict snapshot behavior without checking a table.

How do you create a snapshot in GoHighLevel?

Build the source sub-account first, then save it. Snapshots are only as good as the account they are taken from, so treat the source as a product rather than a scratchpad.

  1. Create a dedicated template sub-account. Never snapshot a live client. Name it something obvious such as Template HVAC v3 so nobody mistakes it for a real account.
  2. Define your custom fields and custom values first. These are the foundation everything else references. Add a custom value for every client-specific string you will use: business name, booking link, service area, office hours, review link.
  3. Build the pipelines and calendars. Keep stage names generic enough to reuse across clients in the niche.
  4. Build the workflows. Reference custom values rather than hard-coded text. Writing the business name directly into a text message is what forces you to edit forty workflows later.
  5. Build funnels, forms, and templates. Same rule: merge fields and custom values, never hard-coded client detail.
  6. Test the whole thing end to end inside the template account with your own phone and email.
  7. Save it as a snapshot from the agency view, giving it a version number and date in the name.
  8. Deploy it into a fresh throwaway sub-account and test again. This is the step people skip, and it is the only way to catch what did not travel.

Step two is the one that pays off for years. A snapshot built on custom values is configurable in ten minutes per client. A snapshot with hard-coded text is a snapshot you will eventually abandon.

For the automations worth including in a base snapshot, our roundup of five workflows every agency needs is a reasonable starting set: speed to lead, missed-call text-back, appointment reminders, review requests, and reactivation.

How do you share a GoHighLevel snapshot?

There are two delivery routes and they behave differently.

Direct load into your own sub-account. When you create a sub-account inside your own agency you can select a snapshot to load at creation. This is the everyday path for client onboarding, and it is the cleaner of the two.

Share link. You generate a link that lets another agency import your snapshot into their account. This is how snapshots are sold and distributed. Share links can usually be limited by number of imports or expiry date, and you should set both. An unlimited, non-expiring link is a product you have given away permanently.

One caution when importing a snapshot from someone else into a live account: you are loading unknown workflows into a sub-account that may already have automations running. Import into an empty test account, read what arrived, then decide. Imported snapshots have started conversations with real customers before.

Why do snapshot updates break live client automations?

This is the part that costs agencies real money, and it deserves the bluntest explanation in this article.

When you improve your template and push the updated snapshot to sub-accounts that already received an earlier version, GoHighLevel does not perform a clean diff-and-merge. Depending on the asset and how you push, you get one of two bad outcomes.

Duplication. The account ends up with two copies of a workflow, both potentially active. Now a lead gets texted twice, and the client calls you about it.

Overwriting. Any customization made inside that client sub-account after the original push gets replaced by the template version. If a client asked you to change their reminder timing three months ago, that change is gone.

Both failures are quiet. Nothing errors. You find out when a customer complains about duplicate texts or a client notices their custom message reverted.

This part is genuinely fiddly, and most teams lose a day to it the first time they push an update across a client base. If you would rather not own that risk, the GHL Prime team manages snapshot versioning as part of our automation and workflow builds. Either way, here is the procedure that keeps it safe.

The safe snapshot update procedure

  1. Version everything. Name snapshots with a version and date. Keep a short changelog of what changed between versions.
  2. Change the template account, never the client account. Improvements start in the template so the source of truth stays single.
  3. Deploy to a clean sandbox sub-account and test end to end. Confirm the new version works standalone before it touches anyone real.
  4. Pilot on exactly one live client. Choose a tolerant one. Push the update, then immediately audit that account.
  5. Audit for duplicates before anything can fire. Open the workflow list and look for two of anything. Pause duplicates rather than deleting until you know which copy is wired to the calendar and number.
  6. Re-check custom values and assignments. Confirm values are still populated and calendars still point at real users.
  7. Send one live test through the full journey using your own phone and email.
  8. Roll out in batches, not all at once. Five accounts, verify, then the rest. A bad push across forty clients at 9am is a very long day.

One habit that prevents most of this: keep client-specific customizations in separate workflows prefixed with the client name, rather than editing template workflows directly. Template pushes leave those alone, so a request to change one client reminder timing survives every future update.

If your snapshot includes anything that texts, remember that A2P 10DLC registration is per sub-account and does not travel. A perfectly deployed snapshot still sends nothing until that sub-account is registered, which is covered in our A2P 10DLC registration guide.

What to do before your next snapshot push

Snapshots are the highest-leverage feature GoHighLevel offers an agency, and the one with the sharpest edges. Build from a dedicated template account, drive everything through custom values, and treat updates as a release process rather than a button. Do that and onboarding a new client becomes a predictable hour instead of an unpredictable week.

If you would rather hand off snapshot architecture and versioning to a team that maintains it across many client accounts, GHL Prime does this build regularly and you can book a free consultation to talk through your setup.

Frequently asked questions about GoHighLevel snapshots

Do contacts transfer in a GoHighLevel snapshot?

No. Snapshots copy configuration only. Contacts, conversations, opportunities, and call history never travel. Move contacts separately by CSV import after the snapshot is loaded.

Do phone numbers come across in a snapshot?

No. Each sub-account needs its own purchased number and its own A2P 10DLC registration. This is the most common reason a freshly deployed snapshot appears to work but sends no texts.

Can you update a snapshot after clients already have it?

Yes, but carefully. Pushing an update to accounts that already received an earlier version can duplicate assets or overwrite customizations made in that account. Pilot on one client and audit before rolling out.

Why are my custom values empty after loading a snapshot?

Custom value keys travel with the snapshot but the client-specific values often do not. Any template referencing them renders blank until you re-enter the values in the new sub-account.

Can you sell a GoHighLevel snapshot?

Yes. Share links let other agencies import your snapshot, and many agencies package niche snapshots as products. Set an import limit and an expiry date, because an open link is permanent distribution.

How many snapshots should an agency maintain?

Fewer than you expect. Most agencies do best with one solid base snapshot per niche they actually serve. Maintaining a dozen variants means none of them stay current.

Need help implementing this in GoHighLevel?

Our team builds, automates, and scales GoHighLevel systems for agencies every day. Book a free call and we'll map out exactly what to ship next.

Book a free call