Meta Instant Forms let you add consent checkboxes via the Custom
Disclaimer. This is the mechanism Meta provides for capturing SMS opt-in,
and it is what A2P 10DLC registration expects you to be using.
The problem: those responses never reach HighLevel.
Meta returns them in a separate top-level field on the Lead object called
custom_disclaimer_responses, NOT inside field_data. It has to be
explicitly requested:
GET /{leadgen_id}?fields=field_data,ad_id,adset_id,campaign_id,
created_time,platform,custom_disclaimer_responses
Response shape:
"custom_disclaimer_responses": [
{ "checkbox_key": "...", "is_checked": "1", "text": "..." }
]
HighLevel's Facebook integration appears to request only field_data, so
consent checkboxes never appear in Settings > Integrations > Facebook
Form Fields Mapping. Custom questions from the same form map fine, which
confirms the connection itself works.
Why this matters:
Meta only retains lead data for 90 days. The TCPA statute of limitations
is four years. That makes the CRM the system of record for consent, and
right now HighLevel cannot hold that record for Meta leads.
Without it, anyone running Meta lead ads through HighLevel has no
per-contact proof of SMS opt-in, which is exactly what carriers ask for
during A2P 10DLC campaign registration.
Current workaround is to convert the consent into a custom multiple-choice
question so it maps, or to run middleware (Make/n8n) that does its own
Graph fetch. Both work, but neither should be necessary when Meta already
provides the field.
Request: add custom_disclaimer_responses to the fields requested, and
surface it as mappable in Field Mapping.
If you run Meta lead ads through HighLevel and need documented SMS opt-in,
this affects you too.