On this page

The Complete GoHighLevel Migration Guide (Sites + Workflows)

Everything you need to move off — or between — GoHighLevel accounts: export the front end of your funnels and sites, then clone the automations into the destination without rebuilding them by hand.

A GoHighLevel migration is really two jobs wearing one name. There is the front end — the funnels, websites, blogs and AI Studio pages your visitors see — and there are the automations that run behind them. GoHighLevel keeps both largely locked in: there is no native front-end export, and its native workflow copying is narrow — the plain Duplicate action only works within a single sub-account, and Copy Workflow to Sub-Account is limited to agency-admin users moving a draft between sub-accounts in their own agency. This guide is the hub for doing the whole move properly. It walks the full path end to end, then links out to the deeper step-by-step guides for each piece.

Why GoHighLevel is hard to leave

The lock-in is structural, not accidental. When you build a funnel in GoHighLevel, the pages live inside the platform's page builder — there is no "download site" button, and copying the HTML out of the editor gives you broken markup with none of the assets. Workflows are nearly as stubborn: the plain duplicate action only works inside the same sub-account, and the native Copy Workflow to Sub-Account only moves a draft between sub-accounts in your own agency for agency-admin users. The moment you need an automation in a different agency, as a non-admin, or cleanly remapped into an account that already has live data, you are rebuilding it trigger by trigger, action by action. For an agency with dozens of client builds, that rebuild cost is what keeps everyone stuck.

Account-level snapshots look like an answer, but they copy a whole-account template, not individual pieces. They are fine for stamping out a fresh sub-account from a blueprint, and poor for moving one or a few workflows into an account that is already live with its own pipelines, tags and clients. We cover that trade-off in detail in snapshots vs workflow export.

The two halves of a migration

ExportGHL is a suite built around exactly this split. ExportGHL Sites takes the front end; ExportGHL Workflows takes the automations. You run both from one login, and you can do them in either order — though exporting the pages first gives you a visual reference while you check that the cloned automations point at the right forms and tags.

A migration almost never moves your CRM database. Contacts, conversations and opportunities stay in GoHighLevel and are exported with GoHighLevel's own data tools when you are ready. ExportGHL moves the parts GoHighLevel refuses to let out — the pages and the automations.

Step 1 — Export the front end with Sites

ExportGHL Sites works by capturing the rendered snapshot of each page — the finished HTML, CSS and JavaScript exactly as a browser produces it, bundled with images and fonts. Because it reads the rendered output rather than scraping the builder, it handles JS-heavy pages and AI Studio pages that simpler scrapers choke on, and it can crawl hidden or unlinked pages when you give it the URLs.

  1. Point Sites at the funnel, website or blog you want to take, including any thank-you or step pages that are not linked from the public navigation.
  2. Let it capture the rendered pages and collect their assets into a clean static bundle.
  3. Decide how to host: drop the files on any static host or CDN as-is, or hand the clean HTML and CSS to your developer as the starting point for a rebuild on your new platform.

The output is portable and dependency-free — no GoHighLevel runtime, no platform account required to serve it. Other front-end exporters such as VibeEscape and GHL Escape Kit cover similar ground but more narrowly; Sites is built to handle the awkward page types and hidden pages that break them.

Step 2 — Clone the automations with Workflows

This is the half that normally eats the week. ExportGHL Workflows saves a workflow to a cloud library and then deploys it into another account as a new workflow — it never overwrites an existing one unless you explicitly choose to update. The hard problem it solves is that a workflow is full of ids that only exist in the source account: it references specific pipelines, stages, tags, users, custom fields and calendars. Copy the raw workflow JSON to a new account and every one of those references is dangling.

Workflows' cross-account id remap rewrites those references, matching each one by name in the destination — the "New Lead" pipeline in the source maps to the "New Lead" pipeline in the target, and so on. Anything it cannot match is not silently dropped: the workflow is deployed as a draft, so a missing tag or an unmapped calendar never goes live half-broken. You review the draft, fix or create the missing piece, and publish. This is the capability the JSON-based tools do not have: GHL Workflows Pro offers a cloud workflow library and one-click import across locations, but it does not rewrite source-only ids, so you still re-point every reference by hand. (Super Cloner, despite its name, clones funnel and website pages, not workflows, so it is not a workflow tool at all.)

For the mechanics of a single move, see how to clone a workflow, and for moving automations into an account that is already live, copy a workflow between accounts. To save a workflow to a library and deploy from it, see how to export your GoHighLevel workflows (automations).

The agency client-handoff scenario

The most common real migration is an agency handing a build to a client, or splitting a client out onto their own account. The pattern is the same every time: export the client's funnels and sites with Sites so they have a portable copy they own, then clone the automations into the client's destination account with Workflows. Because remap matches by name, the cleanest handoffs are the ones where the destination already has its pipelines, tags and custom fields named to match the source — so it pays to set those up first, then let remap connect everything in one pass. Draft deployment means you can hand over, review together, and publish only once the client confirms the automations behave.

What a migration does not move

Set expectations up front. ExportGHL moves pages and automations; it does not move your contact database, conversation history, call logs or opportunity records. Those live in GoHighLevel's CRM and come out through GoHighLevel's own contact and data exports when you choose to move the database itself. Keeping these as separate steps is deliberate — it means nothing in your live account is touched while you export and test the pieces, and you cut over the data last, once the pages are hosted and the workflows are published.

Frequently asked questions

Can you fully migrate off GoHighLevel?
You can move the parts GoHighLevel will not let you take: the front end and the automations. ExportGHL Sites exports your funnels, websites, blogs and AI Studio pages as clean static HTML, CSS and JS with their assets, so you can host them anywhere. ExportGHL Workflows clones your automations into another account as new workflows. CRM data — contacts, conversations and calendar history — is a separate concern you export from GoHighLevel's own tools, so a full exit is realistic but it is three jobs, not one.
What does a GoHighLevel export include — and not include?
ExportGHL Sites captures the rendered page exactly as a visitor sees it — HTML, CSS, JavaScript, images and fonts — including JS-heavy and AI Studio pages, and it can crawl hidden or unlinked pages you point it at. It does not export your contact database, pipelines or the automations behind a form; those are handled by GoHighLevel's own data export and by ExportGHL Workflows. The result is a self-hostable copy of the site, not a live clone of the whole account.
How do I move my workflows when I move accounts?
GoHighLevel's native Copy Workflow to Sub-Account only moves a draft between sub-accounts in the same agency, for agency-admin users, and the plain Duplicate action copies only within one sub-account — so moving automations across agencies, as a non-admin, or into a live account normally means rebuilding them by hand. ExportGHL Workflows saves a workflow to a cloud library and deploys it into the destination as a new workflow. With cross-account remap it rewrites ids that only exist in the source — pipelines, stages, tags, users, custom fields and calendars — matching them by name in the destination, and leaves anything it cannot match as a draft so nothing goes live broken.
Will I lose my CRM data or contacts?
No. ExportGHL reads your pages and workflows; it does not touch your contacts, conversations or opportunities, and cloning a workflow creates a new one in the destination rather than overwriting anything. Your CRM records stay in GoHighLevel until you export them with GoHighLevel's own contact and data export tools, which is a separate step you run when you are ready to move the database itself.
How long does a GoHighLevel migration take?
The tooling is fast — exporting a page takes a moment and cloning a workflow is close to one click, so a small funnel and a handful of automations can move in an afternoon. The time cost is mostly review: checking that remapped tags and pipelines point at the right things, promoting draft workflows once you have confirmed them, and deciding where to host the exported front end. Plan hours, not weeks, and start with the free trial to size your own account.

Plan your GoHighLevel migration in an afternoon

Start free — export a page and move up to 3 workflows on your own account, no card required. See exactly how your migration will go before you pay.

Start free