The GoHighLevel + Meta Survival Guide for Agencies
Every GHL sub-account carries its own Facebook connection, token clock, form mappings and workflow chain — so an agency with forty clients runs forty integrations, and something is always near failure. The fleet-management SOP: three-layer triage, six failures, one weekly ritual.

GHL agencies run one Meta integration per sub-account — forty clients means forty token clocks. Triage every 'leads stopped' ticket by layer: connection (token expired ~60–90d, page roles, BM changes — hard stop on a date), mapping (edited/renamed form fields orphan mappings; new forms never mapped — partial data or new-form silence), workflow (lead IS in GHL but an unpublished workflow or narrow trigger filter eats it — contacts grow while the client sees nothing). Prevention beats monitoring: connect with durable client page-admin logins, run a 55-day re-auth calendar per client, end every form edit with a mapping review + test lead, and reconcile weekly — Leads Center count vs GHL contacts, five minutes per client. Gaps need backfill (CSV within Meta's 90-day window); the pipe never resends.
• An agency on GoHighLevel doesn't run one Meta integration — it runs one per sub-account, each with its own token clock, mappings and workflow chain. • Token expiry is the #1 recurring outage: ~60–90 day lifetimes, per client, dying silently — a 55-day re-auth calendar beats every monitoring tool you can buy. • Connect each sub-account with a durable client page-admin login, never a personal profile — password changes and departures are outage events. • Leads can be IN GoHighLevel and still invisible: the workflow layer (unpublished workflows, narrow trigger filters, tag logic) eats leads after sync succeeds. • Meta never resends missed leads — gaps during disconnections need backfill (GHL sync options or CSV import) within the 90-day window. • The scale answer is boring: one onboarding SOP, one weekly per-client reconciliation — Leads Center count vs GHL contacts, five minutes per client.
Why GHL agencies feel this worse than anyone
GoHighLevel's whole pitch is agency leverage: one platform, forty client sub-accounts, everything templated. The Meta integration inherits the leverage and inverts it — because each sub-account holds its own Facebook connection, its own access token, its own form mappings, and its own workflow chain, an agency isn't maintaining an integration, it's maintaining a fleet. Forty clients means forty token clocks expiring on forty schedules, forty sets of forms that client-side marketers edit without telling you, and forty workflows one unpublished draft away from eating leads silently. The failure economics are agency-shaped too: the client sees "my leads stopped," reads it as "my agency stopped," and the churn conversation starts. This guide is the fleet-management SOP: the three-layer triage, the six failures with fixes and preventions, the onboarding checklist, and the weekly ritual that keeps forty clients boring.
The three-layer triage

Connection, mapping, workflow — the layer determines who fixes it and how fast.
Every "leads stopped syncing" ticket lives in one of three layers. Connection: the Facebook↔GHL link itself — tokens, page roles, Business Manager changes; symptom is a hard stop for one client, usually on a nameable date. Mapping: the link works but forms and fields don't translate — symptom is partial data, or new-form silence while old forms flow. Workflow: the lead lands in GHL and then goes nowhere — contacts exist, but no pipeline entry, no notification, no assignment; symptom is a client insisting leads stopped while the contact list quietly grows. Layer one is a re-auth; layer two is a mapping review; layer three never touches Facebook at all — which is why "reconnect the integration" fixes only a third of these tickets.
The six failures: fix and prevention
Six failures, three layers — connection, mapping, workflow. The triage tree names the layer; this table names the row.
The token-expiry epidemic, handled like a fleet
The connection runs on a Facebook user token with a ~60–90 day lifetime, and it dies early whenever the connecting human changes their password, resets 2FA, or loses page access. At agency scale this stops being an incident and becomes weather — some client's token is always near death. The fleet answer: connect every sub-account through a durable, client-owned page-admin login (never an employee's personal profile, and never one agency profile across all clients — one password change taking down forty integrations is a story you only get to tell once), then run a 55-day re-auth calendar per client, refreshing before expiry instead of discovering after. GHL's own integration guide covers the click-path; the discipline is the part they can't document for you.
The full connect-map-test flow in GoHighLevel — worth watching once before you write your own SOP.
The onboarding SOP (per client, every time)

Five steps and a calendar entry — templatize it once, run it forty times.
Two steps deserve emphasis because every skipped instance becomes a ticket. Map every form, field by field, including custom questions — GHL matches on field identity, so a client "just rewording" a question orphans the mapping downstream, and a required-but-unfilled GHL field can reject the whole contact. And always finish with a test lead through Meta's Lead Ads Testing Tool, confirming the full chain: lead → GHL contact → workflow fired → notification received. The chain is the product; testing only the first link is how the workflow layer's failures — unpublished drafts, over-narrow trigger filters, tag logic that routes leads into a folder nobody reads — survive onboarding and surface as churn risks three weeks later.
Gaps and backfill: the part Meta makes hard
Whatever went down — token, mapping, workflow — the leads that fired during the outage are not coming back through the pipe: Meta delivers once, retries never, and offers no resend button, as covered in the seven failure points. Recovery: use GHL's lead-sync/backfill options where the integration exposes them, and otherwise export the gap window as CSV from Meta's Leads Center and import into the sub-account — deduped on email + phone, tagged as backfill, inside the 90-day window after which Meta deletes the data outright. And remember the CSV is more complete than the pipe ever was: spam-withheld leads never sync through ANY integration, GHL included, so the export is your only complete census. If a client is chronically Zapier'd into GHL instead of using the native integration, the escape-route ranking applies — native beats middleware here for the same fire-once reasons.
The weekly ritual that replaces panic
One reconciliation catches all six failures: per client, weekly, compare the Meta Leads Center count to the GHL contact count for the same window — a small stable delta is the spam-withheld share; a widening delta is one of the six, caught in days instead of at renewal time. Five minutes per client, templatable, delegable, and the single highest-leverage retention activity a lead-gen agency runs. Pair it with the 55-day token calendar and the launch-checklist mapping rule, and the Meta integration becomes what it should have been all along: boring.

Forty clients, forty token clocks — the SOP is the product.
Frequently asked questions
Why did my GoHighLevel Facebook integration stop syncing leads?+
How often do GoHighLevel Facebook tokens expire?+
Should I connect all my clients' Facebook pages with my agency login?+
Why do leads show in GHL contacts but trigger no notifications?+
A client edited their lead form and fields went missing — why?+
How do I recover leads that were missed while disconnected?+
Why doesn't my GHL count match Facebook's Leads Center count?+
How do I test a client's integration without running real ads?+
Is GHL's native integration better than Zapier for Facebook leads?+
What's the single best practice for agencies running many sub-accounts?+
Can I manage multiple Facebook pages under one GHL sub-account?+
Forty clients, zero drama
Whitelisted infrastructure for lead-gen agencies — ad-side infrastructure as dependable as the SOP you just wrote.