Most GoHighLevel problems are not loud. Nothing crashes and nobody gets an error. A workflow gets switched off during a test, a carrier starts filtering a client’s texts, or a DKIM record breaks during a DNS change. The sub-account keeps looking healthy in the dashboard while leads quietly stop getting followed up.
If you run GoHighLevel for clients, GoHighLevel monitoring is the difference between hearing about a problem from your own system and hearing about it from an unhappy client. This guide covers the 14 checks we run on every sub-account, what each one catches, how to check it by hand, and how to automate the whole routine.
Why GoHighLevel sub-accounts fail silently
GoHighLevel is a platform of connected parts: workflows, calendars, forms, phone numbers, email domains, funnels and third-party integrations. Each part can break without the others noticing. Three things make these failures hard to spot:
- “Sent” is not “delivered”. A text can show as sent in the conversation while the carrier filters it. An email can be accepted by the server and still land in spam.
- Nothing alerts on absence. GoHighLevel will not tell you that a form that normally gets 20 submissions a day got none today.
- Many people touch the account. Your team, the client and their staff all edit workflows and settings. One accidental toggle is enough.
The result is predictable: the client notices before you do, usually because their own customer complained. That is exactly the moment agencies lose trust, as we covered in our guide to cutting client churn.
The 14-point GoHighLevel health check
These are the checks worth running on every sub-account. For each one: what it catches, and how to check it manually.
1. Email delivery
Compare emails sent with emails that failed, per day. A sudden rise in failures usually means a sending domain problem or a list that has gone stale. Manually: open Conversations, filter by email, and look for failed status icons over the last 24 hours.
2. Bulk send failures
A single broadcast to a bad list can damage the sender reputation of the whole domain. Watch for any send where a large share of messages failed or bounced within an hour.
3. SMS volume
Texts sent against texts failed, with a baseline for what is normal for that account. A client that usually sends 200 texts a day and sends 5 has a broken workflow, not a quiet day.
4. A2P 10DLC and carrier errors
This is the check that saves the most accounts. Carriers return error codes on messages they refuse: 30007 means the message was filtered, 30034 means the number is not registered for 10DLC, 30006 means a landline. Twilio documents each code, for example error 30007 (message filtered). If you see these, start with our A2P 10DLC registration guide.
5. Workflow changes
Track every published workflow. If one is switched off, deleted, or edited, someone should confirm it was intentional. This single check catches most “the automation stopped working” tickets. Our workflow automation guide lists the sequences that matter most.
6. Stalled contacts
Contacts that sit at the same workflow step much longer than usual point to a broken wait step, a condition that can never be true, or an action that keeps failing.
7. Leads waiting for a reply
Inbound messages (text, chat, email) that nobody answered within a set window, for example 60 minutes. Speed to lead is one of the biggest drivers of conversion, and this check turns it into a number you can manage. Pair it with missed call text back so no lead waits in silence.
8. Domain authentication (SPF and DKIM)
Every sending domain needs valid SPF and DKIM records. Google and Yahoo now require authentication for bulk senders, see Google’s email sender guidelines and Yahoo’s sender best practices. A DNS change on the client’s side can break these without anyone noticing. More in our email deliverability guide.
9. Email campaign health
Bounce and complaint rates on each campaign. Keep complaints well under 0.3% and investigate any campaign with a bounce rate above a few percent before sending the next one.
10. Funnels
Funnels that lose steps, change unexpectedly, or disappear. A deleted thank-you page breaks every ad that points at it.
11. Live pages
The pages that actually received opt-ins should load. Check them like a website uptime monitor: a 404, an expired SSL certificate or a disconnected domain on a landing page costs leads every hour it stays broken.
12. Opt-in drops
Form and survey submissions per day against the account’s normal level. Zero opt-ins on a day that usually brings twenty is almost always a technical problem: a broken form, a page that fails to load, or ads that stopped.
13. Connected accounts
Social planner connections expire and phone numbers get flagged. These integrations are easy to forget until a client asks why their posts stopped.
14. Payments
Failed payments, subscriptions past due, and days with no successful payment where there are usually several. For clients who sell through GoHighLevel, this is revenue leaking in real time.
How often should you check?
It depends on how fast the damage grows. A switched-off lead follow-up workflow loses leads every hour; an expired social connection can wait a day. A practical rhythm:
| Check | How often | Why |
|---|---|---|
| Workflows, carrier errors, unanswered leads, live pages | Every 15 to 30 minutes | Every hour costs leads |
| Email and SMS volume, opt-ins, payments | Several times a day | Needs a daily pattern to compare against |
| Domain authentication, campaigns, connected accounts | Daily | Changes slowly, damage builds over days |
Doing this by hand for one sub-account takes about 20 minutes. For twenty sub-accounts it is a full-time job, which is why most agencies end up checking nothing until a client complains.
Turning alerts into a process
An alert is only useful if someone acts on it. A few rules keep monitoring from turning into noise:
- Alert once, remind once. One message when a problem appears, a reminder if it is still open after 24 hours, and silence once it is fixed.
- Route alerts to where the team works. A Slack or Teams channel for the delivery team beats an inbox nobody reads.
- Write findings in plain English. “Workflow ‘New Lead Follow-Up’ was switched off” is actionable; “status changed” is not.
- Close the loop with the client. A short daily or weekly report shows the work that happened in the background. Our guide to automated client reporting shows how to build one.
Automating GoHighLevel monitoring
You can build parts of this with GoHighLevel’s own API and webhooks (see our API and webhooks guide), but keeping baselines, de-duplicating alerts and handling rate limits across many sub-accounts is a product in itself.
That is why we built GHL Nexa Monitor. It runs all 14 checks on every sub-account every 5 minutes with read-only access, alerts by email, Slack, Discord, Google Chat or Microsoft Teams, and sends a daily report of every account. It also produces a 0 to 100 health audit with a PDF, and a status page you can embed in a client portal with your own logo.
Plans start at $39 a month for five sub-accounts, and you can start a free trial without a card.
A simple starting checklist
- List every sub-account you manage and who owns it on your team.
- Create a read-only Private Integration in each sub-account (see our sub-accounts guide for structure).
- Start with the four fast checks: workflows, carrier errors, unanswered leads and live pages.
- Pick one channel for alerts and one person responsible for each client.
- Add daily reporting once alerts are under control.
Frequently Asked Questions
What is GoHighLevel monitoring?
GoHighLevel monitoring means automatically checking your sub-accounts for problems that do not show up as errors, such as switched-off workflows, carrier-filtered texts, failing emails, broken pages and unanswered leads, and alerting the right person when one appears.
Does GoHighLevel have built-in monitoring?
GoHighLevel shows message status and workflow history inside each sub-account, but it does not compare today with normal activity or alert you across many sub-accounts at once. Agencies usually add an external monitoring tool or a manual daily routine.
How do I know if my GoHighLevel texts are being filtered?
Look at the error codes on failed outbound messages. Code 30007 means a carrier filtered the message and 30034 means the number is not registered for A2P 10DLC. A rising number of these errors is the clearest sign of a deliverability problem.
How often should GoHighLevel sub-accounts be checked?
Lead-critical checks such as workflows, carrier errors and unanswered leads should run every 15 to 30 minutes. Slower-moving checks such as domain authentication and connected accounts can run once a day.
Is it safe to give a monitoring tool access to a sub-account?
Use a Private Integration with read-only scopes only. A monitoring tool needs to read conversations, workflows, funnels and forms, not change them, and the token should be stored encrypted.



