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

# Facebook and Instagram lead ads

> Everyone who fills in your Facebook or Instagram lead ad form becomes a contact and starts a campaign on its own, connected directly or through Zapier or Make.

> [!NOTE]
>
> **Pro plan.** Lead Ads are part of Pro and Agency (and the free trial). Lead Ads triggers you already have keep adding contacts on every plan. See [Plans and billing](/help/account/billing.md).

Running lead ads on Facebook or Instagram? Every person who fills in one of your lead forms can become a contact in Kerux and start the campaign you choose: a Slack message to your team, a webhook to your CRM, then LinkedIn steps.

There are two ways to bring the contacts in. Both give the same result: the same trigger, the same **Submitted a lead form** line on the contact's history, and the same contact is never added twice.

| | Through Zapier or Make | Connect Facebook directly |
| - | - | - |
| Available | Now, for everyone | When **Connect** on the Facebook / Instagram row opens Facebook |
| Setup | About 5 minutes, copy and paste | One click |
| Needs | A Zapier or Make account | Nothing else |

> [!NOTE]
>
> Direct connect isn't available yet. Until it is, **Connect** on the Facebook / Instagram row opens a side panel with the Zapier or Make steps. Click **Tell me when direct connect is ready** in that panel to be told when it is. Contacts you bring in through Zapier or Make keep working after that, and you can switch whenever you like: a contact that arrives both ways is added once.

## Connect through Zapier or Make

Only workspace owners and admins can do this, and only they see the secret URL. Members see **Ask an admin** on the row instead (and **Ask a workspace admin to connect Facebook / Instagram.** in its panel).

![The Facebook / Instagram panel with the Zapier or Make setup](https://mintcdn.com/kerux-f37add41/hxXnH5J2aAMkPLq4/images/lead-ads-relay.png?fit=max\&auto=format\&n=hxXnH5J2aAMkPLq4\&q=85\&s=a38d79fbec57de712920ea4b14f23018)

**1. Get your secret URL**

Go to **Integrations > Connections**. In **Contact sources**, click **Connect** on the **Facebook / Instagram** row: a side panel opens with the steps. Click **Create my secret URL**, then **Copy**. Keep it private: anyone with this URL can add contacts to your workspace. If it leaks, click **Make a new URL** (the old one stops working at once) and paste the new one in your Zap or scenario.

**2. Set up Zapier or Make**

Follow the steps for your tool below. The panel shows the same steps, with a **Zapier** and a **Make** tab.

**3. Send a test contact**

Submit a test contact (Facebook's [Lead Ads Testing Tool](https://developers.facebook.com/tools/lead-ads-testing) sends one) or use your tool's test button. Step 4 in the panel changes from **Waiting for your first contact** to how many contacts came in and when. The page checks by itself for 5 minutes; after that, click **Check again**.

**4. Start a campaign from a lead form**

Open your campaign, go to its **Triggers** tab and click **+ Add** > **Lead form submitted** and pick **Facebook / Instagram** as the **Source**. Pick **Any page (every contact that comes in)**, or a Page and its forms once a contact from them has arrived. Click **Add the trigger**.

### Zapier

1. In Zapier, click **Create > Zaps**. For the trigger, pick **Facebook Lead Ads** and the event **New Lead**. Sign in with Facebook, then pick your Page and form.
2. Click **+** to add an action: pick **Webhooks by Zapier** and the event **POST**.
3. **URL**: paste your secret URL. **Payload Type**: `json`.
4. **Data**: add one row per field. On the left type a name from the table below (for example `email`), on the right pick the matching answer of the Facebook contact. Always add `lead_id` with the contact's ID.
5. Click **Test step**, then **Publish**.

Shortcut: set **Data Pass-Through?** to **True** and skip the rows. Kerux reads Facebook's own field names. Facebook Lead Ads is a premium app in Zapier, so it needs a paid Zapier plan.

### Make

1. In Make, click **Create a new scenario**. Add the **Facebook Lead Ads** module that watches new contacts (**Watch Contacts**). Sign in with Facebook, then pick your Page and form.
2. Click **+** to add a module: pick **HTTP**, then **Make a request**.
3. **URL**: paste your secret URL. **Method**: `POST`. **Body type**: `Application/x-www-form-urlencoded` (a JSON body works too).
4. **Fields**: add one item per field. **Key**: a name from the table below. **Value**: the matching answer of the Facebook contact. Always add `lead_id` with the contact's ID.
5. Click **Run once**, send a test contact, then turn the scenario on (**Immediately as data arrives**).

Each contact uses a few of your Make plan's monthly operations.

### The field names

Upper or lower case and spaces don't matter (`Lead ID` and `lead_id` are the same).

| Name | Goes to |
| - | - |
| `lead_id` | The Facebook contact's ID: Kerux never adds the same contact twice |
| `email` | Email |
| `full_name`, or `first_name` and `last_name` | First and last name |
| `phone` | Phone |
| `company` | Company |
| `job_title` | Job title |
| `linkedin_url` | LinkedIn profile (when your form asks for it) |
| `form_name`, `form_id` | The form (pick it in a campaign's trigger) |
| `page_id`, `page_name` | The Page's ID and name. With `page_id` you can pick the Page in a campaign's trigger |
| `ad_id`, `ad_name`, `adset_id`, `adset_name`, `campaign_id`, `campaign_name` | The ad that brought the contact: on its history and in [Analytics > Ads](/help/leads/ads-dashboard.md) |
| `platform` | `fb` or `ig`: Facebook or Instagram, in Analytics > Ads |
| `created_time` | When they sent the form |
| Any other name | A custom field with that name, for example `{{contact.custom.team_size}}` |

Without `lead_id`, Kerux still recognizes a repeat when the same answers come again on the same form, but sending the ID is safer.

## Connect Facebook directly

When **Connect** on the Facebook / Instagram row opens Facebook:

**1. Connect Facebook**

Go to **Integrations > Connections** and click **Connect** on the **Facebook / Instagram** row. Facebook opens: sign in, choose the Pages Kerux may use and click **Continue** or **Save**. Only workspace owners and admins can connect Facebook. You need to be able to advertise for the Page (its admin, or someone with the advertiser task).

**2. Pick the Pages whose contacts come in**

Back in Kerux, the Facebook / Instagram panel opens with your Pages. Tick the ones whose contacts you want and click **Save Pages**. Instagram lead ads run from a Facebook Page, so picking the Page brings its Instagram contacts too.

**3. Start a campaign from a lead form**

Open your campaign, go to its **Triggers** tab and click **+ Add** > **Lead form submitted** and pick **Facebook / Instagram** as the **Source** (or use the start box of the **Builder**). Pick the Page (or **Any page**), then **Every form of this Page** or only some forms. Kerux shows where each answer of the form goes on the contact. Click **Add the trigger**.

Kerux asks Facebook only for what it needs: the list of your Pages, to receive each Page's new contacts, to read your lead forms and to read the contacts. It never reads or changes your ads or ad accounts.

> [!TIP]
>
> Building with AI? Ask for something like "when someone fills in my Facebook lead form, send me a Slack message and then connect on LinkedIn". If neither way is connected yet, the campaign opens with **Before you continue, connect Facebook** and a **Connect Facebook** button (while direct connect isn't available, it opens the Zapier or Make setup); with Zapier or Make already set up, the trigger is added for **Any page**.

## Where the answers go

| On the form | On the contact |
| - | - |
| Email, work email | Email |
| Full name, first name, last name | First and last name |
| Phone number | Phone |
| Company name | Company |
| Job title | Job title |
| City, state, country | Location |
| A question about LinkedIn, or any answer that is a LinkedIn profile link | LinkedIn profile |
| Any other question | A custom field named after the question, for example `{{contact.custom.team_size}}` |

Someone who is already one of your contacts (same LinkedIn profile or same email) is updated with what they filled in: empty fields are filled, nothing you typed is overwritten. The contact's history shows **Submitted a lead form** with the form and ad.

## Contacts without a LinkedIn profile

Lead forms often don't ask for a LinkedIn profile. Those people still become contacts and enter the campaign: Slack, webhook and other non-LinkedIn steps run right away. A LinkedIn step waits with **No LinkedIn profile for this contact** in **Home > Tasks**. Open the contact, paste their LinkedIn profile in **LinkedIn** and click **Save**: the LinkedIn step goes on by itself.

> [!TIP]
>
> Add a question like "What is your LinkedIn profile?" to your lead form: Kerux picks it up as the contact's profile.

## Reconnect, turn off or disconnect

* **Zapier or Make**: **Make a new URL** replaces the secret URL; **Turn off** stops contacts from coming in that way. Your campaign triggers stay.
* **Reconnect** Facebook if it asks you to (for example after you changed your password or removed Kerux in Facebook). Your Pages and triggers stay as they were.
* **Disconnect** stops new contacts from your Pages and deletes the access Kerux kept; the row then says **Not connected**. Contacts already in Kerux stay.
* You can also remove Kerux in Facebook (**Settings and privacy > Settings > Business integrations**) and ask Facebook to delete your data: Kerux deletes everything it kept for your Facebook account. See the [privacy policy](https://www.usekerux.com/privacy).

## For developers

The secret URL takes `POST` with a JSON or form body: one contact, an array of up to 25, or `{ "leads": [...] }`. It answers `200` with each contact's status (`accepted`, `duplicate`, `in_progress`, `skipped` or `failed`), `401` for a wrong or replaced secret, `413` for a body over 256 KB, `422` when there are no answers or more than 25 contacts, `429` after 60 requests a minute and `503` when Kerux couldn't save it (send it again: it is never added twice). The API has the same URL at `GET`, `POST` and `DELETE /v1/integrations/lead-form-relay/meta`.

## Common problems

> [accordion] Connect opens the Zapier or Make steps, not Facebook
>
> Direct connect isn't available yet. Use the Zapier or Make steps in the panel meanwhile, and click **Tell me when direct connect is ready**.

> [accordion] Zapier or Make says 401
>
> The secret URL is wrong or was replaced with **Make a new URL**. Copy it again from the Facebook / Instagram panel (click **Facebook / Instagram** on its row) and paste it in your Zap or scenario.

> [accordion] Zapier or Make says 422
>
> The body had no answers. Check the Data rows (Zapier) or Fields (Make): at least `email` or `full_name`, plus `lead_id`.

> [accordion] My Page isn't in the list
>
> Through Zapier or Make, a Page shows once a contact from it arrives with `page_id`; until then pick **Any page**. Connected directly, Kerux only sees Pages you can advertise for, and the ones you allowed when Facebook asked. Check your role on the Page in Facebook, then click **Reconnect** and make sure the Page is ticked on Facebook's screen.

> [accordion] Facebook refused some Pages when I saved them
>
> Facebook didn't let Kerux receive that Page's contacts, usually because of your role on the Page. Fix it in Facebook and save again.

> [accordion] A new contact didn't arrive
>
> Through Zapier or Make, check the Zap's or scenario's history for an error, and that it's on. Connected directly, check that the Page is ticked in **Connections**. Either way, check that the campaign's trigger uses that Page (and form) or **Any page**. Contacts from a form you didn't pick still become contacts but don't enter the campaign. If Facebook doesn't answer, Kerux tries again for a day before it gives up.

## Other forms

Typeform, Tally, Jotform, Webflow, Google Forms, Unbounce, Fillout, HubSpot, Framer, Carrd and any tool with a webhook send their submissions straight to Kerux too, without Zapier: see [Lead forms from any form tool](/help/integrations/forms/lead-forms.md). A campaign trigger with **Any source** takes Facebook / Instagram contacts and every form at once.


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