Founder Bonus: join or upgrade to the HighLevel Founder Plan through our link by Dec 31 and get 4 free bonuses from Yotomations.Founder Plan + 4 free bonuses until Dec 31. See the bonuses
The GoHighLevel practice of Yotomations LLCAI development, custom software and websites at yotomations.com
New to GHL? Start here

Can GoHighLevel run workflows at the agency level across all sub-accounts?

You cannot write one GoHighLevel workflow at the agency level and have it run for every client. Here is the pattern we use today, the risks, and what to retire if it ships.

Three men sitting on chair beside tables
By Yaakov (Koby) Oranski, Certified GoHighLevel Admin and Partner | | 6 min read

Short answer: No. GoHighLevel workflows are built and run inside one sub-account, so there is no agency-level workflow that fires across all of your clients today. The closest working setup is a small workflow in each sub-account, deployed from a snapshot, that sends a webhook to one central router such as n8n. The router holds the shared logic and calls GoHighLevel back through the API.

Prefer to watch? The 46-second version

GoHighLevel workflows live inside one sub-account. Here is the router pattern agencies use to change shared logic in one place.

Watch it on its own page, with the transcript.

One logic, many sub-accountsONE LOGIC, MANY SUB-ACCOUNTSClient sub-accountsThin workflow fires awebhookCentral routerOne copy of the logic inn8nConfig tablePer-client hours, copy,ownersGoHighLevel APIAdds tag, sends text,creates taskFailure alertNotify when a call failsContact updatedSame result in everyaccountwebhooklookupon errorThe sub-account workflow stays small and only reports events, so the shared logic lives in one place you can edit.

What agencies are asking for, and where the request stands

The ask is simple: write a workflow once at the agency level and have it run for every client sub-account. Today a workflow belongs to one sub-account and only sees that account's contacts. To change a follow-up sequence for twenty clients, you edit twenty copies or push a snapshot.

As of November 9, 2026, the ideas board request Workflows at the Agency level shows 821 votes and the status open. Open is HighLevel's label for a request that has not been scheduled. It is not a promise, and we are not predicting whether or when it ships.

Why this hurts once you pass a handful of clients

Every sub-account starts as a copy of your master. Then a client asks for a longer wait step, someone fixes a typo directly in the live workflow, and six months later you have twenty slightly different versions of "new lead follow-up." Nobody can say which one is the good one.

A bug makes it worse. A wrong merge field or a missing tag filter has to be found and fixed in every copy, and you only learn which accounts you missed when a client texts you. We covered the rollout side of this in how to roll out snapshot updates across sub-accounts, and the handoff side in how to stop clients from breaking workflows.

Four ways to share logic across sub-accounts today

ApproachChange once?Per-client differencesMain risk
Edit each sub-account by handNoEasy, because each copy is separateDrift and missed accounts
Snapshot push from a master accountPartlyHandled after the pushClient edits collide with the update
Custom values for client settingsFor settings, yesGood for names, links and numbersDoes not change the workflow's steps
Thin workflow plus central routerYesConfig table keyed by locationWebhook failures and token upkeep

These stack. Most agencies should use snapshots and custom values for everything, and add the router only for the few workflows that change often or differ by client.

How the central router pattern works

The idea is to move decisions out of the sub-account and leave only a trigger behind. We build it in four parts.

  1. In each sub-account, a short workflow starts on the real event (a form submission, a tag added, an appointment booked) and runs a webhook action that posts the contact ID, the location ID and an event name to the router's URL.
  2. In n8n, a webhook node receives the call and looks up that location in a config table (we usually use Supabase): business hours, which user to notify, the review link, which message template applies.
  3. The router decides what happens, then calls the GoHighLevel API to send a message, add a tag, create a task or move an opportunity.
  4. If any call fails, the router sends an alert instead of failing quietly.

Keep long waits inside GoHighLevel. A router should not hold a contact for three days. Instead the router adds a tag such as followup-day-3, and a tiny workflow in the sub-account triggers on that tag and handles the wait step. The tag becomes the handoff, and it also shows your staff where each contact stands.

If you are deciding between tools for the router itself, our comparison of Zapier, n8n and a custom API covers when each fits.

What breaks with this pattern, and how to guard against it

The first risk is a webhook that never arrives. If a sub-account workflow posts to a router that is down, the contact simply gets nothing. Add an alert on failed calls, and read our webhook debugging guide before you go live so you know where to look.

The second is access. The router needs permission to act in each sub-account, so you have tokens to store and refresh, and a new client is not covered until you add it to the config table. Build that step into your onboarding checklist, not into someone's memory.

The third is overuse. A simple appointment reminder works fine as a normal workflow, and moving it to a router adds a part that can fail. Centralize only logic that changes often, differs by client, or touches an outside system. Messages sent through the API still go out from the sub-account's own numbers and follow the same A2P registration and consent rules, so the router does not change your compliance duties. That is practical guidance and not legal advice.

What to do if HighLevel ships agency-level workflows

If the request moves to complete, do not rebuild everything in a weekend. Test one client first and compare the behavior, especially around contact scope, permissions and how it treats each client's custom values.

Keep the config table and your custom value naming, because per-client settings are needed either way. Keep the failure alert. Retire the thin webhook workflows and any router branches that the native feature handles. Keep n8n for logic that reaches outside GoHighLevel, such as a job system or billing.

What we would do first

We would pick the one workflow that exists in the most sub-accounts and has drifted the most, which is usually new lead follow-up. We would move its decision logic to a router, pilot it on two accounts, and leave the rest of your snapshot setup alone. That is a fixed-scope milestone, with no hourly billing. If you run an agency, see how we work with agencies, then look at our custom integrations service or book a free 30-minute call at meet.yotomations.com.

Yaakov (Koby) Oranski

Yaakov (Koby) Oranski, Founder and CEO of Yotomations

Certified GoHighLevel Admin and Partner. Koby designs CRM migrations, two-way integrations, billing systems and AI agents for service businesses, and writes from the engagements described on this site.

Published

Frequently asked

Can I create a workflow in GoHighLevel that runs for all my sub-accounts?

No. A workflow belongs to one sub-account and only sees that account's contacts, so the agency view cannot run one workflow across clients today. You can copy it into each account with a snapshot, or send events from each account to a central router that holds the shared logic.

How do I update the same workflow in 20 GoHighLevel sub-accounts?

With snapshots you push the change out and then check each account for client edits, which is covered in our snapshot rollout post. With the router pattern, the sub-account workflow stays small and rarely changes, and you edit the shared logic once in n8n.

Is there a way to store per-client settings like business hours and review links?

Yes. Custom values hold per-sub-account settings such as a review link or business name, and workflows can merge them into messages. For settings the router needs, such as hours or the owner to notify, a small config table keyed by location works well.

Will the router pattern work with GoHighLevel texting rules like A2P?

Messages sent through the API still go out from the sub-account's own numbers and are subject to the same A2P registration and consent rules. The router changes where the decision is made, not who is allowed to text whom. This is practical guidance and not legal advice.

Keep reading

Is this happening in your account?

Book a 30-minute call. We look at the account live and tell you what is broken, what we would fix first and what it would cost.

No pitch deck. We look at your current setup and tell you what we would do and what it would cost.

Need more than GoHighLevel? Yotomations, our parent company, also builds AI agents, custom software and websites.