Guides / How to export a workflow
How to export a GoHighLevel workflow
Quick answer: you can’t, natively. GoHighLevel has no export button and its API doesn’t return the step-tree. Your three real options are screenshots (loses all settings), an account Snapshot (complete but clunky), or an extension like GHL Workflow Backup & Audit that saves the full configuration as JSON in about ten seconds.

Why there’s no export button
Workflows live inside the sub-account editor as editable state, not documents. You can duplicate one within the same account, but there’s no download, and the public API doesn’t return the step-tree either. That’s fine until someone changes a branch on Tuesday and by Friday nobody remembers what it did.
Method 1: Screenshots
Open the workflow, zoom out, screenshot. Maybe also click into each step and photograph its settings panel.
Works for: a one-off record that a workflow exists and roughly what it does.
Fails at: everything else. Settings hidden behind dropdowns never make it into the shot: wait steps, filters, custom values, notification bodies. You can’t compare two screenshots to see what changed, and rebuilding from one means retyping the whole thing.
Time cost: 10 to 20 minutes per workflow. Fidelity: low.
Method 2: The Snapshot trick
Agency plans can export a sub-account as a Snapshot: a packaged template of the entire account (workflows, funnels, pipelines, calendars, custom fields) that imports into another sub-account.
Works for: cloning a whole account setup, or moving everything to a fresh sub-account.
Fails at: single-workflow backup. It’s all-or-nothing per asset group, a Snapshot is a deploy artifact rather than a readable record (no diffing month-over-month), and importing one to “restore” a workflow drags every other included asset along with it. It also requires agency-level access, so contractors working inside someone else’s agency can’t use it at all.
Time cost: 15 to 30 minutes plus import cleanup.
Method 3: An extension that reads the builder
GHL Workflow Backup & Audit pulls the complete step-tree of whichever workflow you have open (every node, trigger, branch and setting) and saves it as clean JSON.
- Install from the Chrome Web Store.
- Open any GoHighLevel workflow in the builder.
- Click the extension icon. The JSON lands in your Downloads folder.
- Optional: select whole folders for a bulk export in one run.
What you get: nodes in execution order, triggers with filter conditions, published/draft status, settings-tab metadata, and readable names instead of raw IDs. Files are named like Workflow Name - a1b2c3 - 2026-08-16_14-30-02.json, so a folder of exports is itself a version history.
Because it’s structured data, you can diff two exports to see what changed, drop one into an AI assistant and ask what the workflow does, or hand a client a readable record. Free tier covers 5 single exports and 1 bulk export; after that it’s $14.99 once.
Honest limits: the extension reads the data the builder loaded, so if GoHighLevel changes their app, capture can break until we ship a fix. Open an export and glance at it before treating it as your only backup; that advice applies to every method on this page.
Which one should you use?
| Screenshots | Snapshot | This extension | |
|---|---|---|---|
| Captures every setting | ✗ | ✓ | ✓ |
| Single workflow only | ✓ | ✗ | ✓ |
| Readable / diffable later | ✗ | ✗ | ✓ |
| Works on non-agency accounts | ✓ | ✗ | ✓ |
| Time for one workflow | 10-20 min | 15-30 min | ~10 sec |
Rule of thumb: Snapshots for deploying account templates to new clients. JSON exports for knowing what your automations say and keeping history. Screenshots for neither. Related: Snapshots vs real backups, in depth.
FAQ
Does GoHighLevel have a native workflow export?
No. Workflows can be duplicated within an account but not downloaded, and the public API doesn’t return the step-tree.
Can I copy a workflow to another sub-account?
Not natively across locations. A Snapshot moves the whole account; for one workflow, export its JSON and rebuild from that.
Is exporting safe? Will it change my workflow?
Every method here is read-only. Nothing writes back to GoHighLevel.
More on this: Snapshots vs real backups · all guides