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
A client needs a custom automation GoHighLevel can't do. What should your agency do?
A client asks for something GoHighLevel can't do. Sort the request into four buckets before you say yes, then build it outside GHL and price it as fixed scope.
Short answer: Sort the request into one of four buckets before you quote it: a native feature you have not found yet, a workflow that calls an outside tool through a webhook, a build that needs its own database, or something GoHighLevel should not be asked to do at all. Most custom requests land in the second bucket and are built with n8n, Zapier or a small custom app that talks to GoHighLevel through its API. Keep GoHighLevel as the place your client's staff work, and price the outside piece as its own fixed-scope project with a named owner and an error alert.
A calendar setting, a workflow action, a custom value, a smart list filter you have not tried
Inside GoHighLevel, tested in a sandbox contact first
2. Webhook and a workflow
A lookup, a rule or a message that depends on another system
A workflow webhook action, n8n or Zapier, then an API call back
3. Needs memory
Running totals, usage counts, history across many records
A small database such as Supabase between GoHighLevel and the other system
4. Wrong tool
The client wants GoHighLevel to be their ERP, dispatcher or full project manager
Not in GoHighLevel. Say so plainly
Bucket one is more common than agencies like to admit. Before you promise anything custom, rebuild the request by hand on a test contact and see how far native tools get you. Bucket four is where you protect the relationship: if a client wants dispatching, read what we wrote on dispatching and job scheduling in GoHighLevel before you agree to fake it.
What the outside layer looks like in practice
For bucket two the pattern is nearly always the same. A GoHighLevel workflow reaches a webhook action and sends the contact's data to an n8n or Zapier URL. That tool does the part GoHighLevel can't: it looks up a record in the client's other software, runs a calculation or checks a rule. It then calls the GoHighLevel API to update a custom field or add a tag, and a second workflow triggered by that field or tag carries on inside GoHighLevel.
The client's staff never leave GoHighLevel. They see a field change and a message go out, and they do not need to know a second tool exists. If you are choosing between tools, our comparison of Zapier, n8n and a custom API for GoHighLevel covers when each is the right call, and the webhook debugging guide covers the first thing you will need when a test does not fire.
When the build needs its own database
A custom field holds one value on one contact. The moment the request involves a running total, a count across many records, a change history or a calculation over a billing period, you need somewhere to store state. We hit exactly this on a usage-based billing system between GoHighLevel and Stripe: GoHighLevel sends the events, a Supabase database counts them, n8n moves the data, and Stripe gets the bill. The case study and the how-to article show the shape of it.
You do not need a database for every request, and adding one early makes the project heavier than it should be. Add it when a field or a tag can no longer represent the truth.
Why custom builds break after launch
A custom automation rarely fails loudly. A webhook stops firing because someone edited the workflow. An API token expires. A custom field gets renamed during a cleanup and the outside tool keeps writing to a field that no longer exists. Three weeks later the client notices that review requests stopped, and your agency is the one explaining.
Put these into the scope of every custom piece, not into a wish list:
One named owner on your side and one on the client side.
An alert that reaches a human when the webhook or API call fails.
A test contact that runs the full path on demand.
A written list of every custom field, tag and workflow the build depends on.
A handoff note the client can read without calling you.
Do not fold a custom build into the monthly retainer. A build has a start, a test and a finish, and a retainer hides all three. Quote it as its own project with milestones: discovery and a written spec, the build against test data, a run with real data, then handoff. Each milestone has something the client can see, and "done" means the test contact completes the full path and the alert fires when you break it on purpose.
This is also how we work with agencies. Yotomations prices fixed-scope milestones, with no hourly billing and no mandatory retainer, so you know your cost before you quote your client. Several agency owners in that thread were asking for exactly this kind of per-job help instead of another retainer. You can read more on our page for agencies.
Build it yourself or bring in help
If the request is bucket two, you know n8n or Zapier, and the other system has a documented API, build it yourself and charge for it. Bring in an engineer when the build touches payments, when it has to sync both ways with the client's system of record, when volume is high, or when a failure would mean a customer is billed or messaged wrongly. Those are the jobs where the cost of a silent failure is bigger than the cost of the build.
Also be honest with yourself about what GoHighLevel does not do through its API. We covered one common assumption in can you create GoHighLevel workflows with the API, and the answer shapes how you design these builds.
What Yotomations would do first
Send us the client's request in the client's own words, not your summary of it. On a free 30-minute discovery call (book here) we sort it into the four buckets, tell you which tools it needs, and give you a fixed-scope quote with milestones. If it turns out to be a setting you missed, we will say so. When it needs real engineering, that is what our custom integrations service is for.
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
What do I do when a client wants something GoHighLevel can't do?
First check whether it is really unsupported, because many requests turn out to be a setting, a custom field or a workflow action nobody has tried. If it is truly outside GoHighLevel, send the data out with a workflow webhook, do the logic in n8n, Zapier or a small app, and write the answer back to a custom field or tag. If it needs a different kind of software altogether, tell the client so.
Can n8n or Zapier replace a custom GoHighLevel integration?
For many requests, yes. A webhook in, a few steps of logic and an API call back is exactly what n8n and Zapier do well. Move to a custom app or a database when you need counting across many records, heavy volume, two-way sync with a system of record, or tighter control over errors.
Should I put custom automation work inside my monthly retainer?
Usually not. A custom build has a defined start, a test and a finish, which fits a fixed-scope project with milestones. Retainers hide the cost of the build and make it hard to say when the work is done.
How do I keep a custom GoHighLevel automation from breaking?
Name one owner, add an alert that fires when the webhook or API call fails, keep a test contact that runs the full path, and write down every custom field and tag the automation depends on. Most breakage comes from a renamed field, an expired token or a workflow someone edited without knowing it was connected.
Keep reading
How to roll out GoHighLevel snapshot updates across sub-accounts without breaking them
The question that keeps SaaS founders up at night: you have 50 or 100 sub-accounts on one master snapshot and need to ship an update. A versioning and rollout process that does not break every account.
Learn more
Is the HighLevel Certification worth it? From someone who holds it
What the HighLevel Certification program actually tests, who should earn it, what it signals when you hire, and how to verify that a partner really holds it.
Learn more
GoHighLevel SaaS Pro and SaaS mode: when an agency should move up
SaaS Pro turns GoHighLevel into software you sell. What SaaS mode, rebilling, the white-label app and the advanced AI actually give you, and the point where the $497 plan pays for itself.
Learn more
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.