> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Lead Form

> Creates a Meta Instant Form (lead gen form) on a Facebook page for Lead Ads campaigns, with contact fields, custom qualifying questions, intro card, privacy policy, and thank-you page

Creates a Meta Instant Form (lead gen form) on a Facebook page for Lead Ads campaigns, with contact fields, custom qualifying questions, intro card, privacy policy, and thank-you page. Fields mirror Meta's leadgen\_forms reference. Form names must be unique per page, and forms cannot be edited after creation, only archived, so review inputs carefully before running.

| | |
| - | - |
| **App** | Meta Ads |
| **Operation ID** | `meta_create_lead_form` |
| **Type** | Action |
| **Connection** | `meta_ads` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `page` | SelectItem | Yes | - | Select the Facebook page to create the lead form on, ask the user for it if not provided |
| `name` | string | Yes | - | Form name, must be unique per page. Forms cannot be edited after creation, only archived. |
| `questions` | array of object or string | Yes | - | Lead form questions, sent to Meta as-is (Meta leadgen\_forms reference). Each item needs type: prefill types like EMAIL, FULL\_NAME, FIRST\_NAME, LAST\_NAME, PHONE, WORK\_EMAIL, JOB\_TITLE, COMPANY\_NAME, CITY, STATE, ZIP, COUNTRY, DOB, GENDER, WEBSITE, WHATSAPP\_NUMBER, STREET\_ADDRESS auto-fill from the user's profile; CUSTOM is for qualifying questions and needs label, plus options (\[\{value, key}]) for multiple choice or no options for free text. IMPORTANT: every multiple-choice option MUST include both value (the text shown to the user) and key (a short unique identifier, also used as the answer's column in lead exports); Meta rejects options without key with a generic, non-descriptive error. Advanced keys (inline\_context, dependent\_conditional\_questions, conditional\_questions\_group\_id) pass through unchanged. Example: \[\{"type": "FULL\_NAME"}, \{"type": "EMAIL"}, \{"type": "CUSTOM", "label": "Monthly budget?", "options": \[\{"value": "Under $1,000", "key": "under_1000"}, \{"value": "Over $1,000", "key": "over\_1000"}]}] |
| `privacy_policy` | object or string | No | - | Sent to Meta as-is: \{url, link\_text?}. url is a public https privacy policy page, link\_text max 70 characters. Meta requires it whenever the form collects personal information. Example: \{"url": "`https://example.com/privacy`", "link\_text": "Privacy Policy"} |
| `context_card` | object or string | No | - | Optional intro card shown before the questions, sent to Meta as-is: \{title?, style? (LIST\_STYLE or PARAGRAPH\_STYLE), content? (list of strings), button\_text?}. Example: \{"title": "Get a free audit", "style": "LIST\_STYLE", "content": \["Free 30-min call", "No commitment"], "button\_text": "Get Started"} |
| `thank_you_page` | object or string | No | - | Optional completion screen, sent to Meta as-is. title and button\_type are required inside it; button\_type is one of VIEW\_WEBSITE, CALL\_BUSINESS, MESSAGE\_BUSINESS, DOWNLOAD, SCHEDULE\_APPOINTMENT, VIEW\_ON\_FACEBOOK, PROMO\_CODE, NONE, WHATSAPP, P2B\_MESSENGER, BOOK\_ON\_WEBSITE. website\_url is needed for website/download buttons, business\_phone\_number for CALL\_BUSINESS. Other keys (body, short\_message, button\_text, button\_description, country\_code, enable\_messenger, gated\_file) pass through unchanged. Example: \{"title": "Thanks!", "body": "We will reach out soon.", "button\_type": "VIEW\_WEBSITE", "button\_text": "Visit site", "website\_url": "`https://example.com`"} |
| `custom_disclaimer` | object or string | No | - | Optional custom disclaimer with consent checkboxes, sent to Meta as-is: \{title?, body? (\{text, url\_entities?}), checkboxes? (\[\{text, is\_required?, is\_checked\_by\_default?, key?}])}. Example: \{"title": "Consent", "body": \{"text": "By submitting you agree to be contacted."}, "checkboxes": \[\{"text": "Send me marketing emails", "is\_required": false}]} |
| `follow_up_action_url` | string | No | - | Website URL opened from the default thank-you screen. Meta rejects the form (error subcode 1892085, Missing field(s): FollowUpActionURL) unless this is set or thank\_you\_page includes a website button with website\_url. |
| `locale` | string | No | - | Form locale code, e.g. EN\_US, EN\_GB, ES\_ES, ES\_LA, FR\_FR, DE\_DE, PT\_BR, IT\_IT, NL\_NL, AR\_AR. See Meta's leadgen\_forms reference for the full list. |
| `question_page_custom_headline` | string | No | - | Custom headline shown on the questions page |
| `cover_photo_id` | string | No | - | ID of an existing photo to use as the form cover |
| `is_optimized_for_quality` | boolean | No | - | True for the higher-intent form type (adds a review step); default is more volume |
| `is_phone_sms_verify_enabled` | boolean | No | - | |
| `should_enforce_work_email` | boolean | No | - | |
| `block_display_for_non_targeted_viewer` | boolean | No | - | Prevent people outside the ad audience from opening the form organically |
| `tracking_parameters` | object or string | No | - | Key-value tracking parameters included with each lead, e.g. \{"utm\_source": "facebook"} |
| `is_for_canvas` | boolean | No | - | |
| `is_lead_capture_ai_agent_enabled` | boolean | No | - | |

### SelectItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | The value of the selectable item. |
| `label` | string | Yes | - | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

## Output

**Type**: `Dict`

Returns the created lead form id and name.

**Fields**: `form_id`, `name`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.