Facebook Lead Ads usually pass standard fields like first name, email, and phone number without any fuss. The real headache starts when you add custom questions—dropdown budgets, radio choices, or short-text answers—and GoHighLevel dumps all the responses straight into contact notes instead of populating your custom fields.
I hit this exact wall while onboarding a real estate client whose lead qualification data kept getting buried in notes instead of triggering workflow conditions. Here is how to map Facebook Lead Ad custom questions to GoHighLevel fields, avoid payload mismatches, and build workflows that actually capture the data cleanly.

Connect Facebook Page and Verify Leads Access
Before touching workflow triggers, your GoHighLevel sub-account needs direct admin access to the target Facebook Page and its Lead Access manager. If permissions are incomplete, HighLevel gets the webhook ping from Meta, but Meta withholds the actual lead field payload.
- Go to Settings > Integrations inside your HighLevel sub-account.
- Click Connect on the Facebook card and log in with a Meta profile that has Admin / Full Control over the target Page.
- Select your Facebook Page and link the ad account.
- Open Meta Business Suite in another tab, head to All Tools > Instant Forms > Leads Access, and confirm the HighLevel app has lead retrieval access.
If you manage client assets through Meta Business Manager, make sure your personal profile is explicitly assigned to the Page under People with lead permissions enabled.
Create Matching Custom Fields in GoHighLevel
HighLevel will not map incoming Facebook questions to fields that don’t exist yet or have mismatched data types. Set up your custom fields in HighLevel before touching the form mapping screen.
Navigate to Settings > Custom Fields > Add Field. Pick field types that mirror your Meta Ads Manager setup:
- Short Text / Freeform Questions: Use
Single Line TextorLarge Text. - Multiple Choice / Radio Questions: Use
Single Options(Dropdown or Radio). The option strings in HighLevel must match your Facebook options character-for-character. - Appointment / Date Pickers: Use
Date Picker. - Budget or Numeric Values: Use
NumericalorMonetaryif users enter raw numbers. If they select ranges like “$1,000 – $5,000”, stick withSingle Options.
If you plan to use these values in automated emails or SMS later, check out our walkthrough on how to insert and test merge fields in GoHighLevel so your templates format without quirks.
Map Facebook Form Questions in HighLevel Settings
With your custom fields ready, link the incoming Facebook form questions to your CRM contact fields.
- Head to Settings > Integrations > Facebook Form Fields Mapping.
- Find your active Instant Form in the list. If you just published it in Meta Ads Manager, hit Resync or wait a minute for Meta’s Graph API to index it.
- Click Map Fields next to the form name.
- You’ll see detected questions on the left, with HighLevel dropdowns on the right.
- Match standard fields (Full Name, Email, Phone) and pair each custom question with its corresponding custom field.
- Click Save.
If a custom field doesn’t show up in the dropdown, hard-refresh your browser tab (Ctrl+F5 or Cmd+Shift+R) so HighLevel reloads its local schema cache.
Build the Facebook Lead Workflow Trigger
Once mapping is saved, set up the workflow automation. Skip generic contact creation triggers here; use the dedicated Facebook Lead Form trigger so the workflow fires immediately upon submission.
- Go to Automation > Workflows > Create Workflow and pick Start from Scratch.
- Click Add New Trigger and select Facebook Lead Form Submitted.
- Click Add filters:
- Set Page to your target Facebook Page.
- Set In Form to the specific Instant Form you just mapped.
- Give the trigger a descriptive name (like
FB Lead Ad - 2026 Home Buyer Form) and hit Save Trigger.
Locking down the In Form filter stops this workflow from firing on unrelated ad campaigns tied to the same page. If you need safeguards against empty custom fields in follow-ups, configure fallback default values for merge fields in your notification steps.
Inspect Incoming Payloads and Option Mismatches
The number one reason custom fields stay blank after submission is an option label mismatch. When Facebook sends a multiple-choice response, HighLevel validates that string against your predefined custom field choices.
Here is what the raw webhook payload looks like when a user submits an Instant Form with custom questions:
{ "entry": [ { "id": "102938475610293", "time": 1711756800, "changes": [ { "field": "leadgen", "value": { "ad_id": "238510293847501", "form_id": "492817263548192", "leadgen_id": "718293049582019", "created_time": 1711756798, "page_id": "102938475610293" } } ] } ]
}When HighLevel fetches the full leadgen object from the Meta Marketing API, it receives the field data array like this:
{ "id": "718293049582019", "created_time": "2026-03-30T10:13:18+0000", "field_data": [ { "name": "full_name", "values": [ "Alex Morgan" ] }, { "name": "email", "values": [ "alex.morgan@example.com" ] }, { "name": "what_is_your_timeline_to_purchase?", "values": [ "1-3 Months" ] }, { "name": "estimated_budget", "values": [ "$500k - $750k" ] } ]
}If your HighLevel dropdown option is saved as 1 to 3 months (lowercase with “to”) while Facebook sends 1-3 Months (hyphenated and capitalized), HighLevel rejects the value for strict dropdown fields and leaves the contact property blank. Copy and paste exact option strings directly from Ads Manager into HighLevel to dodge this entirely.
Test Payloads with the Meta Lead Ads Testing Tool
Do not burn ad budget clicking your live ads to test mappings. Meta provides a dedicated tool that fires simulated lead payloads instantly.
- Open the Meta Lead Ads Testing Tool.
- Choose your Page and Form from the menus.
- Click Preview Form to fill out answers manually, or click Create Lead for default dummy values.
- Give HighLevel 5 to 10 seconds to ingest the webhook.
- Go to Contacts in HighLevel and look up the test record.
- Open the contact, check the Additional Info / Custom Fields section on the left sidebar, and verify that the custom values populated correctly.
If you see a “100 – Invalid Parameter” error in Meta’s tool, click Delete Lead and try again. Meta only holds one test lead per form per account at a time.
Handling Custom Data with Webhooks (Advanced Routing)
If you need to ship Facebook lead responses to an external API or run calculations on raw answers before saving them, you can send an outgoing webhook step directly from your workflow.
For passing these variables downstream, check our guide on how to send custom values and contact fields in GoHighLevel webhooks. If the outgoing request isn’t firing, run through our checklist for fixing GoHighLevel workflow webhooks not firing.
Troubleshoot Common Facebook Lead Mapping Errors
When custom data goes missing, it’s almost always one of these three culprits:
- Mapping Status Shows “Unmapped”: Whenever you edit or duplicate an Instant Form in Ads Manager, Meta assigns it a new Form ID. HighLevel treats this as a brand-new form. You’ll need to go back to Settings > Facebook Form Fields Mapping and map the new form ID.
- Lead Created but Custom Fields Missing: Open your workflow’s Execution Logs. If the trigger never fired, check whether the workflow toggle was left on Draft instead of Publish.
- Token Disconnected Error: Meta access tokens expire periodically (typically every 60 days, or immediately if a password changes). Head to Settings > Integrations, disconnect the Facebook card, and re-authenticate.
For additional details on integration constraints, check the GoHighLevel Official Help Portal.
Frequently Asked Questions
Why did Facebook lead data land in the contact notes instead of custom fields?
When HighLevel receives form data that isn’t mapped under Settings > Integrations > Facebook Form Fields Mapping, it appends the raw question-and-answer pairs into an internal contact note so you don’t lose the data. Map the questions to specific custom fields to fix it.
Do I need to remap fields if I update my Facebook ad creative?
No. As long as your ad uses the same Instant Form, mapping stays intact. You only need to remap if you publish a new version of the form with a new Form ID in Ads Manager.
Can I map a single Facebook question to multiple HighLevel fields?
The native mapping tool only links one HighLevel field per Facebook question. If you need that answer stored in multiple places, map it to a primary custom field first, then use an “Update Contact Field” workflow action to mirror it across other fields.
Why does my new Facebook Instant Form not appear in HighLevel?
Meta takes a few minutes to index new forms across its Graph API. Go to Settings > Integrations > Facebook Form Fields Mapping and click Resync. If it still doesn’t load, make sure your connected profile has full Admin rights on the Facebook Page.
Next Steps
Once your Facebook Lead Ad data lands in the right fields, the next step is wiring up automated notifications. Follow our guide on how to insert and test merge fields in GoHighLevel email and SMS templates to put those custom answers to work in your follow-ups.

