3 min read
How to audit the workflows in an account you inherited
Inherited accounts accumulate workflows nobody remembers building. This is the method we use to find out what is actually running, what is broken, and what is quietly duplicating messages.
Quick answer
How do you audit GoHighLevel workflows?
Export the full workflow list, record each one's status, trigger, exit conditions and last execution, then group them by trigger to find overlaps. Test the live ones with a real contact, and classify each workflow as keep, fix, merge or retire before changing anything.
Every account we are handed has more workflows than anyone can account for. Some were built by an agency that is no longer involved. Some were built twice because nobody could find the first one. Some fire on a trigger that stopped existing.
The account still works, mostly, which is why nobody looks.
Why this matters more than it sounds
The visible symptom is usually a customer complaint — someone received the same reminder three times, or got a “still interested?” message after they had already paid.
The invisible symptom is worse. Workflows writing to the same fields in unpredictable order make the CRM data unreliable, and unreliable data means every report built on it is wrong in ways nobody can characterise.
The rule for the whole audit
Read everything before changing anything.
The temptation is to fix each problem as you find it. Resist it. Half the problems make sense only once you have seen the whole picture, and a fix applied early frequently has to be undone once you find the workflow that explains why the odd thing was there.
What “good” looks like at the end
Every surviving workflow has a named purpose, exactly one trigger you can describe in a sentence, a defined exit condition, and an owner. Nothing duplicates anything. The one-page map exists and is accurate.
That state is not permanent — accounts drift — but it is a state you can return to, and returning takes hours rather than days once the map exists.
The steps, in order
- Step
List every workflow and its status
Record name, folder, published state, trigger type and the date it last executed. Draft and never-executed workflows can be set aside immediately, but do not delete anything yet — a workflow that has not fired in six months may be seasonal rather than dead.
- Step
Group workflows by trigger
Sort the list by trigger rather than by name. This is where duplicate messaging becomes visible — three workflows all triggered by the same form submission is the single most common cause of contacts receiving the same message twice.
- Step
Record every exit condition
For each live workflow, write down what stops it. A workflow with no exit condition will keep messaging someone who has already replied, booked or bought. Workflows with no exit are the highest-priority repairs regardless of what else is wrong.
- Step
Trace the message inventory
List every SMS and email a contact could receive, and from which workflow. Then imagine one contact passing through the account normally and count what they get. This is the number that tells you whether the account is annoying its own customers.
- Step
Check what each workflow writes
Note every field update, tag, pipeline move and notification. Two workflows writing to the same field in different orders produce results that look random and are not — this is a frequent cause of "the CRM data is unreliable" complaints.
- Step
Test the live ones with a real contact
Create a test contact and trigger each live workflow deliberately. Reading a workflow diagram tells you what someone intended; running it tells you what happens. Budget real time for this — it is the step that finds the problems the diagram hides.
- Step
Check the integrations each workflow depends on
A workflow calling a webhook whose endpoint moved will fail silently. Verify every outbound call and every inbound trigger still points somewhere real, and that failures surface somewhere a human looks.
- Step
Classify every workflow
Keep, fix, merge or retire. Be decisive — an account carrying forty workflows where twelve would do is harder to operate and harder to debug, and the ambiguity is itself a cost.
- Step
Retire in stages, not at once
Unpublish rather than delete, and wait. Anything genuinely needed will be missed within a cycle. Deleting immediately removes your ability to check what it used to do.
- Step
Write down what remains
A one-page map of trigger, purpose, exit and owner for every surviving workflow. Without it the account is back where you found it within a year, and the next audit starts from zero.
Questions
Related questions
How long does a workflow audit take?
For a typical single-business account with twenty to forty workflows, expect one to two days of focused work, most of it in the testing step. Accounts that have been through several owners or agencies take longer, because the intent behind each workflow has to be reconstructed rather than read.
Should I delete workflows that have never executed?
Unpublish them rather than deleting, and revisit after a full business cycle. A workflow that has never run may be broken, may be seasonal, or may be waiting on a trigger that is currently misconfigured. Deleting removes the evidence you would need to tell which.
What is the most common problem an audit finds?
Missing exit conditions, by a wide margin. Sequences that keep sending after the contact has replied, booked or purchased. It is invisible from inside the platform because every individual workflow looks correct, and it is only apparent when you trace one contact through all of them at once.
Can I audit workflows without disrupting live campaigns?
Yes. Every step up to classification is read-only. The testing step uses a dedicated test contact rather than real records. Only the retirement step changes live behaviour, and unpublishing is reversible.
Services mentioned here
Find out what your GoHighLevel account is actually doing
A GoHighLevel account audit is a structured review of an existing sub-account that documents what is configured, what is actively firing, what is broken or duplicated, and what is unused. It produces a written findings document with a prioritised fix list, rather than building anything.
Make a working system perform better
Optimisation analyses a functioning GoHighLevel system to find where performance is lost — which pipeline stages leak, which sequences underperform, where timing is wrong, which lead sources convert poorly — then makes targeted changes and measures whether they helped.
Fix the thing that stopped working
GoHighLevel automations commonly stop working because a trigger condition changed, an integration disconnected or its credentials expired, a required field was renamed, messaging delivery was blocked by missing compliance registration, or another workflow is exiting contacts before the sequence completes.