GoHighLevel Facebook Lead Ads Not Syncing? The 10-Minute Fix Checklist
Facebook and Instagram lead ads usually stop syncing to GoHighLevel because of an expired connection, missing Leads Access, a page or form that is not enabled, or a workflow filter that excludes the lead. Audit Meta first, then delivery, then HighLevel routing.

Key takeaways
- HighLevel's own troubleshooting guide lists three root causes for lead ads that do not reach a sub-account: incomplete access control on the Facebook page, a form that is not enabled in Facebook form field mapping, and LeadConnector lacking permissions.
- Connections break for ordinary reasons. HighLevel's documentation names a password change, natural token expiry, de-authorizing the app or logging out, permission changes, and international VPN logins as triggers for reconnection.
- Meta states that only people with full control of the business portfolio can enable Leads Access, and adding someone to a Page does not by itself give them lead access, so a CRM connection can look healthy while lead data is blocked.
- Meta's lead retrieval documentation describes a 90-day lookback window and webhook delivery that can be delayed by several minutes, so a lead visible in Meta but not in HighLevel is usually recoverable if you act within that window.
- HighLevel's Facebook Lead Form Submitted trigger fires for all connected pages unless you filter it, and it needs Page and Form filters to route one client's leads to one workflow; a duplicated ad can quietly point at a new form the filter does not cover.
The fast answer: when Facebook or Instagram lead ads stop appearing in GoHighLevel, the cause is almost always in one of three places. Either Meta never captured the lead, Meta captured it but could not deliver it to HighLevel, or HighLevel received it and then routed it nowhere. The fastest way through is to follow one lead and ask which of those three checkpoints it failed.
Why are my Facebook lead ads not syncing to GoHighLevel?
Lead ads fail to sync for a short list of reasons: an expired or de-authorized Facebook connection, a connecting user without full Page access or Leads Access, a form that is not enabled in field mapping, or a workflow filter that excludes the lead. HighLevel’s Facebook multi-page troubleshooting article names the first three of these directly: incomplete access control on the Page, a form not enabled in field mapping, and LeadConnector lacking permissions.
Most troubleshooting posts list those causes as a flat checklist, which is why people bounce between settings without converging. This guide uses a different structure, a follow-the-lead audit with three checkpoints:
- Checkpoint A, capture: did Meta record the lead? Look in Leads Center or Ads Manager.
- Checkpoint B, delivery: did Meta hand it to HighLevel? This is where the connection, token, permissions, page selection and form mapping live.
- Checkpoint C, routing: did HighLevel accept it, create or update a contact, and enter the workflow you expect?
Each checkpoint has a different owner and a different fix, so knowing which one failed removes most of the guessing. The table maps common symptoms to a checkpoint and a first fix.
| Symptom | Checkpoint | Most likely cause | First fix |
|---|---|---|---|
| Lead not in Meta Leads Center either | A | Form not submitted, test lead not created, or wrong form or ad | Re-submit through the real ad or use the testing tool on the exact form |
| Lead in Meta, never in HighLevel, all leads affected | B | Expired token, password change, de-authorized app | Disconnect and reconnect Facebook in Settings, Integrations |
| Connection shows connected but no leads arrive | B | Leads Access not assigned to LeadConnector, or connecting user lacks it | Assign CRM in Meta Business Settings, Integrations, Leads Access |
| One form works, another does not | B | Second form not enabled in field mapping, or on a different Page | Enable the form in Facebook Form Field Mapping and confirm the Page is connected |
| Contact created but name, phone or service is blank | B | Question not mapped to a contact field | Map custom questions to contact fields; re-check after form edits |
| Contact exists, no opportunity, task or message | C | Workflow filter, unpublished workflow, or blocked channel | Read the workflow execution history for that contact |
| New lead seems to vanish | C | Deduplication merged it into an existing contact | Search by phone and email; review Allow Duplicate Contact settings |
| Some leads arrive minutes late | B | Webhook delay or temporary connection problem | Wait, then compare timestamps; run manual sync if missing |
| Instagram or Messenger messages missing | B | Instagram not linked to Page, messaging not enabled | Enable messaging permissions and toggles in the integration |
The first row deserves its own treatment. Skipping Checkpoint A is the most common time sink, because a lead that Meta never captured cannot be synced by any amount of HighLevel troubleshooting.
How does the Facebook lead ads to HighLevel integration actually work?
HighLevel connects to Meta through the Facebook and Instagram integration: you authorize a Facebook user who has admin access to the Page and its Business Manager, choose a Page, and map each lead form’s questions to HighLevel contact fields. New leads submitted on a connected Page’s instant form are then sent to HighLevel, where the Facebook Lead Form Submitted trigger can start a workflow. HighLevel documents the connect flow in its step-by-step Facebook integration guide.
The pieces that matter for troubleshooting are these:
- The connection. In HighLevel it is created under Settings, then Integrations, by choosing Connect on the Facebook and Instagram card and approving the permission pop-up. The guide states you must have admin access to both the Facebook Page and the Business Manager it is connected to, and that you should approve all permissions, especially access to leads and page data.
- The sync option. During connection you choose between pulling historical leads plus new leads, or only leads submitted after the integration. If you chose new leads only, older leads will not appear on their own.
- Leads Access in Meta. Meta treats lead data as sensitive and gates it separately from Page roles. HighLevel’s multi-page integration article describes Lead Access Permission as a requirement set by Facebook, and it also notes that the Page and ad account should share the same owner.
- Form field mapping. In Settings, Integrations, Facebook Form Field Mapping you select the form and map each question to a contact field. HighLevel warns that changing field names in the Facebook form may affect mapping on its side. Supported custom question types it lists include text, large text, numerical, phone, monetary, single option, date and dropdown fields.
- The workflow trigger. In Automation, then Workflows, the Facebook Lead Form Submitted trigger has two filters, Page Is and Form Is. HighLevel’s trigger documentation says only connected Pages appear in the Page filter, and that without filters the workflow triggers across all connected pages.
One detail from HighLevel’s multi-page article trips up agencies: only the user who integrated the Facebook Page can select the pages to connect. If a colleague left the company, or the person who set up the integration no longer holds the right roles, the fix may be to reconnect using a different qualified user, not to edit settings inside the existing connection.
Meta’s own side of the pipe is a webhook. Meta’s lead retrieval documentation explains that leads can be retrieved through webhooks for real-time updates or through bulk reads, and that the webhook payload carries the lead ID, Page ID, form ID, ad ID and creation time. It also notes that delivery can be delayed by several minutes. That single sentence explains why a lead that is a few minutes old is not yet a failure.
If you are choosing between this native connection and a middleware route, our comparison of Zapier and native HighLevel integrations covers the trade-offs. For lead ads specifically, the native connector is usually the shorter path, but it has the same permission dependencies a middleware tool would have on Meta’s side.
Did Meta capture the lead in the first place?
Start at Checkpoint A: search for the specific lead in Meta Leads Center or Ads Manager by name, email or timestamp. If the lead is not there, no HighLevel setting can produce it, and your investigation should turn to the form, the ad and the test method instead.
Three situations are worth ruling out here:
- The submission never completed. Instant forms can be abandoned at the review step. The person appears to have converted in your head, but Meta recorded nothing.
- A test lead was never created. Meta’s Lead Ads Testing Tool requires you to click Create Lead for the specific Page and form; previewing the form does not submit anything.
- The wrong Page, form or portfolio. If you run several Pages, or your ads sit in a different Meta Business Portfolio than the one connected to HighLevel, the lead may exist in a place your connected user cannot see. HighLevel’s multi-page article states that the Page and ad account should share the same owner, so mismatched ownership is a legitimate root cause, not an edge case.
If the lead is in Meta and you can see it, move on: Checkpoint A is passed. Write down the lead’s timestamp, because you will use it to judge delay at the later checkpoints. Also note the 90-day lookback that Meta’s retrieval documentation describes. It is the clock on any recovery effort. Leads visible today may not be retrievable months from now, so a suspected outage should be treated as time-sensitive rather than a background cleanup task.
Is the Facebook connection expired or disconnected?
An expired or invalid connection is the single most common reason every lead stops at once. HighLevel’s troubleshooting article lists why connections break: a user changes their password, the Facebook token naturally expires after some time, a user de-authorizes the app or logs out, permissions change, or the account logs in from an international VPN. The fix is to disconnect and reconnect.
The steps, as HighLevel documents them: go to Settings, then Integrations, disconnect the current Facebook connection, reconnect, and select the Facebook Page again. Do it with a user who has admin access to both the Page and the Business Manager, and approve every permission when the pop-up appears. Skipping optional-looking permission checkboxes is a classic way to end up with a connection that looks live but cannot read leads.
Some practical notes from running this in real accounts:
- Look for the Troubleshoot card. HighLevel’s article says the Facebook card in Settings, Integration has a Troubleshoot option that can display a missing-permission indicator listing affected features. Check it before disconnecting; it may tell you exactly which permission to fix in Facebook’s business tools settings.
- Password changes are silent breakers. A new hire resets a shared login, or the owner rotates a password after a phishing scare. Nothing in HighLevel warns you at that moment. The lead flow simply stops.
- Reconnect does not backfill by itself. After reconnection, new leads flow again, but leads submitted during the gap need a manual sync or a CSV import. Step 7 covers this.
- Do not reconnect repeatedly in a loop. If a reconnect fails, the cause is usually a permission or role problem on the Meta side, not the token. Repeated reconnecting adds noise without adding information.
If you manage many sub-accounts, this failure multiplies. A single agency owner login that powers ten sub-accounts can break ten lead flows with one password change, which is why the sub-account structure and who holds Meta admin roles is worth documenting per client.
Does the connecting user have the right Meta roles and Leads Access?
Lead delivery requires two separate things in Meta: a role on the Page and Business Manager, and Leads Access for the CRM. Having one without the other is a frequent cause of a connection that looks healthy but never delivers leads.
Meta’s Business Help Center explains that Leads Access in Meta Business Suite lets people with full control of a business portfolio customize which people, CRM systems or partners can download leads. Only people with full control of the portfolio can enable it. The same documentation, as summarized in search results for the page, indicates that using the customize access flow assigns leads access to existing Page admins and integrated CRMs, and that adding someone to a Page does not automatically give them lead access. Meta’s separate page on CRM integrations for lead ads covers the CRM side of the same arrangement. Meta’s pages load dynamically, so the exact wording can change; treat the menu labels below as the current path and confirm in your own Business Settings.
HighLevel’s troubleshooting article gives the manual assignment path: Business Settings, then Integrations, then Leads Access, then Assign CRMs, and check LeadConnector. It also suggests verifying LeadConnector access in Facebook’s business tools settings and confirming you have full access control of the Page.
| Requirement | Where it lives | Who can fix it | Symptom if missing |
|---|---|---|---|
| Admin access to the Page | Page roles in Meta | Existing Page admin | Page does not appear when connecting |
| Access to the Business Manager that owns the Page | Meta Business Settings | Business portfolio admin | Pages list is empty, or connection succeeds without leads |
| Leads Access for the connecting user | Business Settings, Integrations, Leads Access | Person with full control of the portfolio | Connection active, no lead data delivered |
| LeadConnector assigned as a CRM | Business Settings, Integrations, Leads Access, Assign CRMs | Person with full control of the portfolio | Test lead reaches Meta but not HighLevel |
| All permissions approved during login | Facebook pop-up during Connect | The connecting user | Missing-permission indicator on the Troubleshoot card |
Two agency-specific problems come up repeatedly. First, the client owns the Business Portfolio and the agency only has partner access. In that case the agency’s login may see the Page but not be able to assign Leads Access, and the client’s admin needs to do it. Second, a client’s ad account is in one portfolio while the Page sits in another. HighLevel’s requirement that the Page and ad account share the same owner is a hint that this mismatch is a known failure mode.
Is the right Page, form and field mapping enabled?
A form only syncs if its Page is connected in HighLevel, the form is enabled in Facebook Form Field Mapping, and its questions are mapped to contact fields. If you have several Pages or several forms, it is common for one to be enabled and another not.
Work through it in this order:
- Page selected. In Settings, Integrations, open the Facebook connection and check that the Page that runs the ad is selected. HighLevel’s multi-page guide says users can manage pages, edit form field mapping, enable or disable Facebook and Instagram messaging and run troubleshooting from the same settings area.
- Form enabled. HighLevel’s multi-page troubleshooting article gives the path Sub-Account, Settings, Integrations, Facebook form fields mapping, then enabling the selected form. A newly created instant form is not automatically enabled just because the Page is connected.
- Every question mapped. Name and email usually map cleanly. Custom questions such as service type, budget, preferred time or ZIP code need a target contact field. An unmapped custom question is a quiet failure: the contact is created, but the workflow branch that depends on that field never sees the value.
- Re-check after edits or duplication. HighLevel warns that renaming form fields in Facebook can affect mapping. When an ad is duplicated, Meta can create or select a different instant form. A workflow filter pointing to the old form ID or name will then not match the new one, which is the most common way a formerly working campaign goes dark with no error.
For local businesses, custom questions are usually where the money is. A roofing lead who answers “storm damage, need an inspection this week” is far more valuable when that answer lands in a field the workflow can branch on. If you rely on those answers, add a check for empty required fields to your test protocol later in this guide. The real estate lead automation guide shows a vertical example where qualification questions drive follow-up sequences, and the same mapping dependency applies.
Why does the lead reach HighLevel but the workflow does nothing?
If a contact exists but nothing happened afterwards, the sync worked and the failure is at Checkpoint C. HighLevel’s own guidance in the multi-page and trigger articles points to the same three areas: the workflow is not published, the trigger’s filters do not match, or an action is blocked. This is why you should search Contacts for your test lead before you touch any Facebook setting.
The trigger deserves a careful read. In Automation, then Workflows, the Facebook Lead Form Submitted trigger offers Page Is and Form Is filters. HighLevel’s documentation says that without filters, workflows trigger across all connected pages, that each filter takes one form, and that you should use separate workflows for multiple forms. It also says missing pages or forms in the filter usually mean an incomplete Facebook integration. That last point is a useful diagnostic: if the Page or form you want is missing from the filter dropdown, go back to Checkpoint B.
Beyond the trigger itself, six causes account for most Checkpoint C failures:
- The workflow is in draft. A correct trigger inside an unpublished workflow processes nothing.
- Filters exclude the lead. A trigger or an if/else condition that requires a tag, a field value or a source the lead does not carry will drop it silently. The pattern is described in detail in the workflow-not-triggering guide; read the execution history rather than guessing.
- Duplicate contact rules. When Allow Duplicate Contact is disabled, HighLevel checks incoming submissions against a primary field and an optional secondary field, generally email and phone, and updates the matching contact instead of creating a new one. HighLevel documents these settings under contact deduplication preferences. A returning lead therefore updates an old record. That is usually intended, but it means a workflow set to enroll only new contacts, or one that only enrolls once, may not fire again. If the contact history shows an update rather than a creation, check enrollment rules such as whether re-entry is allowed.
- DND and consent. A contact marked Do Not Disturb on SMS or email will get an action that says it ran but delivers nothing. Consent checkbox fields mapped from the form can also set channel permissions. If your form asks for consent and the mapping is wrong, an opted-in lead can look opted out.
- Delays and wait steps. A first step that waits before sending can look like no action at all when you check five minutes after a test.
- A failing action. SMS actions can be blocked by carrier registration status; see A2P 10DLC registration issues if messages fail after the contact is created.
Work from the contact record. Open the contact created by your test lead, then open the workflow’s execution history or enrollment history for that contact. If it never enrolled, the trigger filters or publish state are at fault. If it enrolled and stopped at a step, the step’s own settings are at fault. That distinction saves a lot of time.
How do test leads behave, and what is a clean test protocol?
A test lead created with Meta’s Lead Ads Testing Tool goes through the same delivery path as a real lead, so it is the best way to verify the integration end to end. HighLevel’s guide recommends using the tool, selecting the Page and form and confirming HighLevel’s App ID appears; the troubleshooting article gives that App ID as 390181264778064. Meta’s tool lives at developers.facebook.com/tools/lead-ads-testing.
Third-party guides describing the tool, such as one from LeadsBridge, report several behaviours worth knowing: you need an appropriate role on the Page, a test lead never spends ad budget, and only one test lead exists per form at a time, so you may need to delete the previous test lead before creating another. Because those details come from secondary sources rather than Meta’s documentation page, verify them in the tool itself. They match what many practitioners see: a second test that seems to do nothing is usually a previous test lead still present.
Use this test protocol in the order shown:
- Note the current time and the form you are testing.
- In the testing tool, select the Page and the form, then click Create Lead. Delete any earlier test lead first.
- In the tool, use Track Status to see whether Meta reports delivery.
- Search Contacts in HighLevel by the test email or phone. Give it a few minutes, because Meta’s documentation notes webhook delays of several minutes are possible.
- Open the contact and confirm name, email, phone and every custom field populated.
- Open the workflow’s execution history for that contact and confirm it entered and reached the expected action.
- Repeat once with the connecting user logged out and back in, if you suspect token issues.
The outcomes tell you where to look, as the table shows.
| What you observe | Meaning | Go to |
|---|---|---|
| Test lead not in Meta at all | Checkpoint A failure; lead never created | Redo the test on the exact form; delete prior test lead |
| In Meta, Track Status shows no delivery to HighLevel | Checkpoint B failure | Reconnect; verify Leads Access and form enablement |
| Contact created, fields blank | Mapping failure | Map questions to contact fields |
| Contact created, not enrolled | Checkpoint C failure | Publish workflow; check Page and Form filters |
| Enrolled, action did nothing | Action-level failure | Check DND, delays, channel and carrier status |
One caution on test hygiene. A test lead uses fake data, so it can collide with an existing contact by email or phone under your deduplication rules, or be blocked by a duplicate-detection filter. Use a unique email address every time, or your test can fail for a reason real leads will not share.
How do you recover leads that are visible in Meta but missing in HighLevel?
Reconnect the integration to stop the bleeding, then pull the missed leads manually. HighLevel’s multi-page integration article notes that manual lead syncing is available through the troubleshooting feature. It recovers leads that arrived while the connection was broken; it does not repair whatever caused the outage, so fix the cause first or you will need to sync again.
The recovery order that works:
- Fix the cause. Reconnect, assign Leads Access, enable the form. Send a test lead to prove new leads flow.
- Run the manual lead sync. Look for it in the Facebook card’s troubleshooting options in Settings, Integrations. Some third-party sources describe a lookback of roughly the last 15 to 30 days, but the exact range depends on the interface you see, so read the option in your account rather than assuming.
- Export what remains from Meta. In Leads Center or Ads Manager, download the leads as CSV for the period of the outage. Meta’s retrieval documentation describes a 90-day lookback window; act well inside it. Third-party guides also mention export caps per download, so split large periods into date ranges.
- Import with the Meta lead ID. Keep the lead ID column if you plan to use Conversions API events later, because HighLevel’s walkthrough says the Meta Lead ID must be mapped in the CRM.
- Deduplicate before you import. Compare against existing contacts by email and phone. Remember that with duplicates disabled, imported leads may merge into existing records.
- Trigger follow-up deliberately. An imported contact does not necessarily fire the Facebook Lead Form Submitted trigger, because that trigger is tied to Meta’s delivery. Enroll recovered leads into a speed-to-lead workflow manually or through a tag-based trigger, and tell the lead honestly that you are following up late.
Recovered leads are worth less than live ones. Conversion drops sharply as response time grows, which is why the monitoring recipe later in this guide matters more than the recovery steps themselves.
Why do Instagram and Messenger connections fail separately from lead forms?
Instagram and Messenger use the same Facebook and Instagram integration but a different permission path, so lead forms can sync while direct messages do not, and the reverse. HighLevel’s messenger setup guide requires a Facebook Page connected to Instagram, messaging access enabled, and the appropriate permissions granted. It recommends testing by messaging the business from a different account and confirming the message appears under the correct contact in Conversations.
From the troubleshooting article, the Instagram messaging checklist is: the Instagram account is connected to the Facebook Page, the user has full control access, message access is enabled in the Instagram app settings under allowing access to connected tools for messages, and Instagram and Facebook messaging are enabled in the HighLevel integration.
For lead ads that run on Instagram, the lead itself still comes from the Meta instant form tied to the Facebook Page, so the Page-level checks earlier in this guide apply to Instagram lead ads too. If an Instagram lead ad delivers but the follow-up conversation never starts, look at messaging, not lead sync.
The 24-hour window is the most misunderstood limit. HighLevel’s Facebook Interactive Messenger workflow action follows Meta’s 24-hour messaging policy, so outbound messages are only deliverable within 24 hours of the contact’s last interaction with your Page. A workflow that waits two days and then sends a Messenger message will fail by design. Secondary sources note that Meta’s human agent tag can extend the window to seven days, but that requires App Review, so most local businesses should plan for 24 hours and fall back to SMS or email afterward. Also note that when someone messages your business for the first time, HighLevel creates or updates a contact according to your deduplication preferences, so message-created contacts can merge with lead-form contacts.
A final category is Meta-side change. App permissions, review requirements and policies shift over time, and HighLevel’s own documentation attributes lead access to a requirement set by Facebook. If a previously stable connection breaks with no password change and no role change, check HighLevel’s status and support notices and Meta’s platform announcements, then reconnect and re-verify permissions. Treat this as a diagnosis of last resort after the ordinary causes are excluded.
What does an undetected sync outage cost, and what does an alert workflow save?
An outage costs the leads you pay for but never work in time, so the size of the loss depends on how long it goes unnoticed. The arithmetic below is illustrative: every input is an assumption you should replace with your own numbers. It is not a benchmark from HighLevel, Meta, or any study.
Illustrative inputs (adjustable):
- Lead ads spend: $3,000 per month
- Cost per lead (CPL): $25
- Share of leads not worked in time during an outage: 80 percent
- Lead-to-customer rate: 10 percent
- Average customer value: $1,500
Formulas:
- Leads per week = (monthly spend x 12 / 52) / CPL = ($3,000 x 12 / 52) / $25 = about 27.7 leads
- Leads lost per week = leads per week x share lost = 27.7 x 0.80 = about 22.2 leads
- Customers lost per week = leads lost x lead-to-customer rate = 22.2 x 0.10 = about 2.2 customers
- Revenue at risk per week = customers lost x customer value = 2.2 x $1,500 = about $3,323
- Ad spend wasted per week = ($3,000 x 12 / 52) x 0.80 = about $554
The share lost is 80 percent rather than 100 percent because the leads are usually still in Meta and recoverable within its retrieval window. The realistic loss is speed-to-lead decay and leads that go cold before anyone calls, not permanent deletion. If you recover leads within a day, set the share lost lower. If your team never checks Meta, keep it high.
The value of an alert is the difference between finding the outage in one day and finding it in seven. With a daily check, revenue at risk is about $3,323 / 7 = about $475 per incident. Without one, it is about $3,323. The saving is roughly $2,848 per outage on these assumptions. Because the maths is linear, you can rescale it: double the spend or halve the CPL and the exposure changes in proportion.
How do you monitor lead flow so an outage surfaces the same day?
Compare counts daily and make silence visible. Nothing in the integration tells you when leads stop, because no error occurs; the absence is the failure. The recipe below uses only standard HighLevel and Meta features, plus one optional automation that you should test in your own account.
- Daily count comparison. Each morning, note the number of leads for the previous day in Meta Leads Center or Ads Manager, and the number of new contacts with your Meta lead source in HighLevel. A gap of more than a couple of leads triggers an investigation the same day.
- Tag every Meta lead. In the workflow that starts with the Facebook Lead Form Submitted trigger, add a tag such as meta-lead and a source value, so counting them is a filter, not guesswork.
- Internal notification per lead. HighLevel lists Internal Notification among recommended actions for this trigger. A notification to the owner or sales manager on every new lead makes a quiet stretch during business hours obvious, and it doubles as speed-to-lead.
- Alert on silence. Ask for a summary or check when no Meta lead has arrived in a set window while ad spend is active. You can build this with a scheduled report in your stack, a scheduled automation in Zapier or Make, or a simple human checklist. Which method you pick matters less than owning it: name a person.
- Weekly test lead. Once a week, send a test lead through each active form and confirm the full path. This catches token expiry and mapping changes before real leads hit them.
- Change log. Record password changes, role changes, form duplications and Page edits. Most outages follow one of those events by hours or days.
Where do attribution and the Conversions API fit?
Lead sync and conversion feedback are separate systems, but the second depends on the first. HighLevel’s Conversions API lead events walkthrough describes sending pipeline stage changes to Meta so ads can be optimized toward actual outcomes rather than lead volume. Its stated prerequisites include lead ads with proper form field mapping, the 15 to 16 digit Meta Lead ID mapped in the CRM, at least 250 leads per month, daily uploads, conversions within 28 days of lead generation, and a target stage with a 1 to 40 percent conversion rate. It uses two workflows, one triggered by the Facebook Lead Form Submitted event to create or update an opportunity and one triggered by a pipeline stage change to send the event, and both need Allow Multiple enabled.
The implication for troubleshooting is direct. If leads are delivered without the Meta Lead ID, or a sync outage creates leads that are imported later, the attribution chain breaks and Meta’s optimization loses signal. Fix delivery first, then the feedback loop. If you would rather have someone audit the setup, aibrevo’s GoHighLevel implementation services cover this kind of integration work, and the implementation cost guide sets out what such work typically involves. For hands-on workflow builds, HighLevel Automation Team is a sister site that builds these automations directly in the platform. To see how a healthy lead flow feeds returns, the GoHighLevel automation ROI guide applies the same style of illustrative arithmetic.
Sources
Each factual claim above traces to one of the following. Where a source is secondary, the text says so.
- HighLevel Support Portal, Facebook Multi Page Troubleshoot: causes of lead ads not syncing, token expiry reasons, reconnection steps, missing permissions, Leads Access assignment, Instagram messaging requirements, testing tool App ID.
- HighLevel Support Portal, Facebook Multi Page Lead Ads Integration: setup steps, ownership requirement, Lead Access Permission, supported custom field types, manual lead syncing.
- HighLevel Support Portal, Step-by-Step Guide to Facebook Integration in HighLevel: connect flow, admin access requirement, sync options.
- HighLevel Support Portal, Workflow Trigger: Facebook Lead Form Submitted: Page Is and Form Is filters, behaviour without filters, recommended actions.
- HighLevel Support Portal, Getting Started: Connect Facebook and Instagram Messenger: messaging requirements, testing, contact handling.
- HighLevel Support Portal, Allow Duplicate Contacts and Contact Deduplication Preferences: duplicate matching behaviour (as summarized from search results).
- HighLevel Support Portal, Facebook Conversions API Lead Event Walkthrough: Conversions API prerequisites and two-workflow setup.
- Meta for Developers, Retrieving leads: webhook and bulk retrieval, payload fields, delivery delays, 90-day lookback.
- Meta Business Help Center, Enable Leads Access in Meta Business Suite and About CRM System Integrations for Lead Ads: Leads Access rules (as summarized from search results because the pages render dynamically).
- Secondary sources, used only where flagged in the text: third-party guides on the Lead Ads Testing Tool (one test lead per form), manual sync lookback windows, and the Meta human agent tag.
- Illustrative arithmetic in the cost section is the author’s own worked example with adjustable assumptions and is not sourced data.