Read leads from Meta lead ads (instant forms on Facebook and Instagram). Get a lead with its answers as a flat object, list the leads on a form within a time range, list the forms on a Page, and read a form with its questions. The New Lead trigger runs a workflow as soon as Meta delivers a lead, so you can call, message, or route it within seconds.
Get a Meta lead form with its status and questions, including each question key, label, type, and answer options.
| Parameter | Type | Required | Description |
|---|
pageAccessToken | string | Yes | Long-lived Page access token from someone who can advertise on the Page, with leads_retrieval, pages_show_list, pages_read_engagement, pages_manage_metadata, and ads_management |
formId | string | Yes | Lead form ID |
| Parameter | Type | Description |
|---|
questions | array | Form questions. The key is the field ID used in lead answers; custom questions carry a label and options. |
↳ key | string | Field ID the answer is stored under |
↳ label | string | Question text (custom questions) |
↳ type | string | Question type, e.g. EMAIL, PHONE, CUSTOM |
↳ options | array | Answer options of a multiple-choice question |
↳ key | string | Option key |
↳ value | string | Option text |
Get a Facebook or Instagram lead form submission by lead ID, with the person's answers as a flat object plus the ad, campaign, and form it came from.
| Parameter | Type | Required | Description |
|---|
pageAccessToken | string | Yes | Long-lived Page access token from someone who can advertise on the Page, with leads_retrieval, pages_show_list, pages_read_engagement, pages_manage_metadata, and ads_management |
leadId | string | Yes | Lead ID (the leadgen_id from the New Lead trigger) |
| Parameter | Type | Description |
|---|
id | string | Lead or form ID |
createdTime | string | When the lead was submitted |
adId | string | Ad the lead came from |
formId | string | Lead form ID |
campaignId | string | Campaign the lead came from |
fields | json | Lead answers keyed by form field ID, e.g. { "email": "...", "full_name": "..." } |
fieldData | json | Raw field_data entries (name, values) |
customDisclaimerResponses | json | Custom disclaimer checkbox responses (checkboxKey, isChecked) |
leads | json | Leads on this page (id, createdTime, adId, formId, campaignId, fields) |
forms | json | Lead forms on this page (id, name, status, locale) |
name | string | Form name |
status | string | Form status, e.g. ACTIVE or ARCHIVED |
locale | string | Form locale |
questions | json | Form questions (key, label, type, options) |
nextCursor | string | Cursor for the next page |
hasMore | boolean | Whether another page is available |
List the leads submitted to a Meta lead form, newest first, optionally only those submitted within a time range. Use the cursor to page through more.
| Parameter | Type | Required | Description |
|---|
pageAccessToken | string | Yes | Long-lived Page access token from someone who can advertise on the Page, with leads_retrieval, pages_show_list, pages_read_engagement, pages_manage_metadata, and ads_management |
formId | string | Yes | Lead form ID |
since | string | No | Only leads submitted at or after this time (ISO 8601 such as 2026-10-01T00:00:00Z, or a Unix timestamp) |
until | string | No | Only leads submitted before this time (ISO 8601 or a Unix timestamp) |
limit | number | No | Maximum leads to return (1-100; Meta defaults to 25) |
after | string | No | Cursor from a previous call (nextCursor) to fetch the next page |
| Parameter | Type | Description |
|---|
leads | array | Leads on this page |
nextCursor | string | Pass as After to fetch the next page; null on the last page |
hasMore | boolean | Whether another page is available |
List the lead forms (instant forms) on a Facebook Page with their ID, name, status, and locale.
| Parameter | Type | Required | Description |
|---|
pageAccessToken | string | Yes | Long-lived Page access token from someone who can advertise on the Page, with leads_retrieval, pages_show_list, pages_read_engagement, pages_manage_metadata, and ads_management |
pageId | string | Yes | Facebook Page ID |
limit | number | No | Maximum forms to return (1-100; Meta defaults to 25) |
after | string | No | Cursor from a previous call (nextCursor) to fetch the next page |
| Parameter | Type | Description |
|---|
forms | array | Lead forms on this page |
nextCursor | string | Pass as After to fetch the next page; null on the last page |
hasMore | boolean | Whether another page is available |
A Trigger is a block that starts a workflow when an event happens in this service.
Trigger workflow the moment someone submits a Facebook or Instagram lead form, with the lead IDs and, when a Page access token is set, their answers
| Parameter | Type | Required | Description |
|---|
metaVerifyToken | string | Yes | Enter the same string in the Verify Token field of the Page webhook in the Meta App Dashboard. |
metaAppSecret | string | Yes | Used to check the X-Hub-Signature-256 header Meta signs every delivery with. Deliveries that do not match are rejected. |
metaPageAccessToken | string | No | When set, the trigger fetches each new lead's answers with this long-lived Page access token (needs leads_retrieval). When empty, the trigger outputs IDs only. |
metaPageIds | string | No | Page IDs |
metaFormIds | string | No | Form IDs |
| Parameter | Type | Description |
|---|
leadgenId | string | Lead ID; pass it to Get Lead to read the answers |
formId | string | Lead form ID |
pageId | string | Facebook Page ID the lead belongs to |
adId | string | Ad ID (empty for organic leads) |
adgroupId | string | Ad group ID from the webhook |
createdTime | string | When the lead was created (ISO 8601, from the webhook created_time) |
fields | json | Answers keyed by form field ID, e.g. { "full_name": "...", "email": "...", "phone_number": "..." }. Empty unless a Page Access Token is set. |
campaignId | string | Campaign ID, when the answers were fetched and the token can see it |
fieldsFetched | boolean | Whether the answers were fetched with the Page Access Token |
fetchError | string | Why fetching the answers failed, if it did |
leads | json | Every lead in this delivery (Meta can batch several), each with leadgenId, formId, pageId, adId, adgroupId, createdTime, fields, campaignId, fieldsFetched, and fetchError |
leadCount | number | Number of leads in this delivery |
raw | json | The webhook payload exactly as Meta sent it |