Help & Documentation

Everything you need to know about exporting and importing GoHighLevel workflows with Porter.

Exporting a workflow

  1. Open any workflow in the GHL workflow builder
  2. Click the Porter  icon in your Chrome toolbar
  3. Porter will detect the workflow and show its name and action count
  4. Click Export
  5. .porter.json file downloads to your computer

Exports are non-destructive — your workflow is unchanged. You can export as many times as you like.

What gets exported?

What gets stripped for safety?

This means exported workflows are safe to share without leaking credentials.

Importing a workflow

  1. In GHL, create a new blank workflow (recommended) or open an existing one
  2. Open it in the workflow builder
  3. Click the Porter icon in your Chrome toolbar
  4. Click Import and select a .porter.json file
  5. Review the import preview — you can edit the workflow name before importing
  6. Click Confirm Import
  7. Click Refresh page to see the imported workflow
Importing overwrites the target workflow. If you import into a workflow that already has actions, they will be replaced. Porter will warn you and ask for confirmation before proceeding. Always import into a blank workflow unless you intend to replace the existing one.

After importing

Some things may need manual attention after import:

Imported workflows start in draft state. Publish manually when you've reviewed everything.

Troubleshooting

"Refresh this page, then click Porter"

This means Porter's content script hasn't loaded on the current page. This usually happens the first time you use Porter after installing it. Simply refresh the GHL page (F5 or Cmd+R) and click the Porter icon again.

"No auth token found"

Porter uses your existing GHL session to communicate with GoHighLevel's API. If you see this error, your session may have expired or Porter hasn't observed any GHL API traffic yet.

Fix: Refresh the GHL page and interact with it briefly (e.g. click around in the workflow builder), then try again. If the problem persists, log out of GHL and log back in.

Export failed with a status code error

Errors like "Failed to fetch workflow: 401" or "403" usually mean your GHL session has expired. Refresh the page and try again. If you get a 500 error, GHL's servers may be temporarily unavailable — wait a moment and retry.

Import succeeded but some triggers failed

Trigger creation uses a separate API endpoint and can occasionally fail even when the workflow actions import successfully. If triggers fail, you'll need to recreate them manually in the GHL workflow builder. The success message will tell you how many triggers succeeded and how many need manual setup.

Imported workflow looks different from the original

The workflow actions and logic are imported faithfully, but GHL's visual layout is generated automatically and may arrange nodes differently. The functionality is identical — only the visual positioning may differ. Try clicking "Format" in GHL's workflow builder to tidy up the layout.

Porter doesn't detect the workflow

Porter detects workflows by reading the page URL. Make sure you're in the workflow builder (the visual editor), not the workflow list or settings page. The URL should contain /workflow/ followed by the workflow ID.

How Porter works

Porter is a Chrome extension that communicates directly with GoHighLevel's own REST API — the same API that the GHL workflow builder itself uses when you view or save a workflow.

No data is sent to our servers. Porter operates entirely between your browser and GoHighLevel's API. There is no intermediary server, no analytics, and no tracking. Exported files are saved to your local computer.

Authentication

Porter uses your existing GHL session. When you're logged into GHL, your browser sends a session token with every API request. Porter reads this token (read-only — it never modifies requests) and uses it to make the same API calls the workflow builder makes. Your credentials are never stored on disk.

The .porter.json format

Exported files use the .porter.json extension. They contain the workflow's actions, triggers, settings, and metadata in a portable format. Secrets and webhook URLs are automatically stripped and replaced with placeholder values.

Need more help?

Email us at steven@greymatter.solutions and we'll get back to you as soon as possible.