> ## 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

> Create a LinkedIn Lead Gen Form (ad form) in DRAFT state with prefilled or custom questions, privacy policy, consent checkboxes and a thank-you message/link/CTA

Create a LinkedIn Lead Gen Form (ad form) in DRAFT state with prefilled or custom questions, privacy policy, consent checkboxes and a thank-you message/link/CTA. Returns the form ID and adForm URN for ad creation. Requires rw\_ads; does not require Lead Sync access.

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

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `account` | DynamicAccount | Yes | - | Ad account that will own the form. |
| `name` | string | Yes | - | Internal form name. |
| `headline` | string | Yes | - | Form headline shown to members. |
| `description` | string | No | - | Optional introductory text. |
| `locale` | string | No | `en_US` | Form language and country, e.g. en\_US or nl\_NL. Supply labels and copy in that language. |
| `questions` | array of object or string | Yes | - | LinkedIn leadForms question objects, sent as-is. Accepts an array or JSON array string. Use name, question.localized, questionDetails and optional predefinedField/responseRequired. Prefill fields include EMAIL, FIRST\_NAME, LAST\_NAME, WORK\_EMAIL and JOB\_TITLE. Localized keys must match locale. Advanced fields pass through unchanged. Prefill example: \[\{"name":"email","question":\{"localized":\{"en\_US":"Email"}},"predefinedField":"EMAIL","questionDetails":\{"textQuestionDetails":\{}},"responseRequired":true}]. Custom choice example: \[\{"name":"budget","question":\{"localized":\{"en\_US":"Budget?"}},"questionDetails":\{"multipleChoiceQuestionDetails":\{"options":\[\{"id":1,"text":\{"localized":\{"en\_US":"Under $1,000"}}},\{"id":2,"text":\{"localized":\{"en_US":"$1,000 or more"}}}]}},"responseRequired":false}]. For custom text, omit predefinedField and use textQuestionDetails. |
| `privacy_policy_url` | string | Yes | - | Public privacy policy URL. |
| `legal_disclaimer` | string | No | - | Optional privacy/disclaimer text. |
| `consents` | array of object or string | No | - | Optional LinkedIn consent objects, sent as-is. Accepts an array or JSON array string. Use id, consent.localized and checkRequired. Localized keys must match locale. Example: \[\{"id":1,"consent":\{"localized":\{"en\_US":"Contact me by email"}},"checkRequired":false}]. |
| `hidden_fields` | array of object or string | No | - | Optional LinkedIn hiddenFields, sent as-is. Accepts an array or JSON array string. Example: \[\{"name":"source","value":"linkedin"}]. LinkedIn allows up to 20 fields. |
| `thank_you_message` | string | Yes | - | Message shown after submission. |
| `thank_you_url` | string | Yes | - | Destination of the button shown after submission. |
| `call_to_action` | string or SelectableOption | No | `{'value': 'LEARN_MORE', 'label': 'Learn More'}` | Thank-you button shown after form submission. Defaults to Learn More. |

### SelectableOption

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | |
| `label` | string | Yes | - | |

## Output

**Type**: `Dict`

Returns the created form ID, adForm URN, name and state.

**Fields**: `id`, `urn`, `name`, `state`


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