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

# Make and Zapier templates for ad leads

> Ready-made scenarios that pass leads from Facebook, Instagram, LinkedIn, TikTok or a Google Sheet to a BrosBots agent.

## What it does

Make and Zapier have their own approved connections to the ad platforms.
You sign in to your ad account there, and every new form submission reaches
the agent's address, so the agent calls that person within seconds. Nothing
needs to be connected on the BrosBots side apart from the address itself.

Every scenario ends with the same step: a `POST` request with JSON to the
agent's address. How that address works is described in
[Lead callback](/en/integrations/leads/lead-webhook).

| Source | Make | Zapier |
| - | - | - |
| Facebook and Instagram (Lead Ads) | ready-made blueprint to import | step-by-step guide |
| LinkedIn Lead Gen Forms | step-by-step guide | step-by-step guide |
| TikTok Lead Generation | step-by-step guide | step-by-step guide |
| Google Sheet (new row) | ready-made blueprint to import | step-by-step guide |

Zapier cannot import scenarios from a file, so for Zapier there are guides
only. Setup takes a few minutes.

## Where to find the agent's address

Agent editor → **Integrations** → **Lead sources** section. Copy the form
address. It looks like this:

```
https://app.brosbots.com/api/v1/public/lead/<id>?t=<token>
```

<Warning>
  The address carries a token and works like a key. Paste it only into the Make
  or Zapier configuration, never into page code or a public document.
</Warning>

## Ready-made Make blueprints

| Blueprint | File |
| - | - |
| Facebook Lead Ads (Facebook and Instagram) | [facebook-lead-ads-do-brosbots.json](https://app.brosbots.com/templates/make/facebook-lead-ads-do-brosbots.json) |
| New row in a Google Sheet | [google-sheets-do-brosbots.json](https://app.brosbots.com/templates/make/google-sheets-do-brosbots.json) |

Right-click the file and choose **Save link as** to download it.

### Importing a blueprint

1. In Make open **Scenarios** → **Create a new scenario**.
2. At the bottom of the editor click the **…** (more) menu → **Import
   Blueprint**.
3. Pick the downloaded `.json` file and click **Save**.
4. Click the first module and connect your account (Facebook or Google).
5. Click the **HTTP** module (BrosBots) and in the **URL** field replace
   `https://app.brosbots.com/api/v1/public/lead/WKLEJ-ADRES-AGENTA` with the
   full address copied from the agent editor, including `?t=...`.
6. Save the scenario and turn it on with the switch in the bottom-left
   corner.

### Facebook Lead Ads (Facebook and Instagram)

The blueprint starts with the **Facebook Lead Ads → New Lead** module. It is
an instant trigger: Meta notifies Make about each submission, so the lead
reaches the agent right away. Instagram instant forms work the same way,
because they belong to the same Facebook Page.

1. In the **New Lead** module click **Create a webhook**, connect your
   Facebook account and pick the Page and the form. The form needs at least
   one submission or Make will not list it (send a test lead, see below).
2. Set the scenario schedule to **Immediately** (as soon as data arrives).
   This is the default for this trigger.
3. The HTTP module sends these fields to the agent:

```json theme={null}
{
  "phone_number": "{{1.data.phone_number}}",
  "full_name": "{{1.data.full_name}}",
  "email": "{{1.data.email}}",
  "campaign_name": "{{1.campaignName}}",
  "adset_name": "{{1.adsetName}}",
  "ad_name": "{{1.adName}}",
  "form_id": "{{1.formId}}",
  "platform": "{{1.platform}}",
  "source": "facebook_lead_ads"
}
```

Custom questions from the form are available as `{{1.data.<question_name>}}`.
Add them to the body if the agent should know them during the call. Each field
reaches the call as a variable with the same name, for example
`{{campaign_name}}`. Meta does not include the form name in the lead, only
its ID (`form_id`).

<Note>
  Meta has to allow Make to access the Page's leads. If the module does not see
  your forms, open Meta Business Suite → **Settings** → **Integrations** →
  **Leads access** and make sure Make (or Zapier) has access.
</Note>

### New row in a Google Sheet

A universal blueprint for any source that can append a row to a sheet
(Typeform, Tally, Google Forms, a CRM export, manual entries). The **Google
Sheets → Watch Rows** module checks the sheet on a schedule, so it is not
instant.

1. In the **Watch Rows** module pick the spreadsheet and the sheet. The first
   row holds the headers.
2. The blueprint assumes columns **A** full name, **B** phone, **C** email.
   If your sheet is laid out differently, change the mapping in the HTTP
   module.
3. Set the scenario schedule to **Every 1 minute** (or the shortest interval
   your Make plan allows). On the first run choose which row to start from so
   the agent does not call old entries.

<Note>
  If the tool has its own webhooks (Typeform, Tally, Elementor, Webflow), you do
  not need Make: paste the agent's address straight into the webhook settings.
  The list of places is in [Lead callback](/en/integrations/leads/lead-webhook).
</Note>

## LinkedIn Lead Gen Forms in Make

Make has a **LinkedIn Lead Forms** app with a **Watch Form Responses**
trigger. There is no ready-made blueprint, because the field names depend on
your form.

1. New scenario → module **LinkedIn Lead Forms → Watch Form Responses**.
   Connect a LinkedIn account with Campaign Manager access and pick the ad
   account and the form.
2. Add the **HTTP → Make a request** module: method `POST`, URL is the agent's
   address, **Body type** `Raw`, **Content type** `JSON (application/json)`.
3. In **Request content** map the form response, for example
   `{"phone": "...", "name": "...", "email": "...", "source": "linkedin"}`,
   replacing the dots with fields from the LinkedIn module (phone number,
   first and last name, email, campaign name if available).
4. Send a test submission (see below), run the scenario once with **Run
   once** so Make learns the fields, and finish the mapping.
5. Save and turn on the scenario. With an instant trigger the schedule is
   **Immediately**.

<Warning>
  The phone number is optional in LinkedIn forms. Add it to the form, otherwise
  the agent has nobody to dial.
</Warning>

## TikTok Lead Generation in Make

Make has a **TikTok Lead Forms** app with a single trigger: **Watch Leads**
(instant, via webhook).

1. New scenario → module **TikTok Lead Forms → Watch Leads**. Connect your
   TikTok for Business account, pick the Advertiser ID and the Instant Form
   from TikTok Ads Manager.
2. Add an **HTTP → Make a request** module set up as for LinkedIn, with
   `"source": "tiktok"` in the body.
3. Map the phone number, name and email from the TikTok module. You will see
   the fields after the first test lead.
4. Save and turn on the scenario.

## Zapier

Each Zap has two steps: a trigger from the ad platform and a
**Webhooks by Zapier → POST** action.

| Source | Zapier app and trigger |
| - | - |
| Facebook and Instagram | **Facebook Lead Ads** → **New Lead** |
| LinkedIn | **LinkedIn Lead Gen Forms** → **New Lead Gen Form Response** |
| TikTok | **TikTok Lead Generation** → **New Lead** |
| Google Sheet | **Google Sheets** → **New Spreadsheet Row** |
| Typeform | **Typeform** → **New Entry** |

1. **Create** → **Zaps**. In the **Trigger** step pick the app and trigger
   from the table, connect your account and choose the Page, ad account or
   form.
2. Click **Test trigger**. Zapier fetches the latest submission, so send a
   test lead first.
3. In the **Action** step pick **Webhooks by Zapier** → event **POST**.
4. **URL**: the agent's address. **Payload Type**: `json`.
5. Under **Data** add key and value pairs, for example `phone_number` → the
   phone number from the trigger, `full_name` → full name, `email` → email,
   `campaign_name` → campaign name, `source` → `facebook_lead_ads`.
6. Click **Test step**. The agent will call the number from the test lead, so
   use your own number.
7. **Publish**.

<Note>
  Webhooks by Zapier is a premium app and works on paid Zapier plans. In Make
  the HTTP module is available on the free plan too.
</Note>

## Test lead

* **Facebook and Instagram**: Meta provides the
  [Lead Ads Testing Tool](https://developers.facebook.com/tools/lead-ads-testing).
  Pick the Page and the form and click **Create lead**. Enter your own phone
  number in the form.
* **LinkedIn**: in Campaign Manager open the preview of the ad with the form
  and submit it from your account.
* **TikTok**: in TikTok Ads Manager open the Instant Form preview and submit
  it.
* **Google Sheet**: add a row with your number.

The agent really calls, so test with your own number and within the calling
hours set on the agent. Outside them the call is scheduled for the next
window.

## Troubleshooting

The agent's response is visible in the Make scenario history (the bubble above
the HTTP module) or in the Zap history (**Zap runs**).

| Code | Meaning | What to do |
| - | - | - |
| `200 {"status":"calling"}` | the agent is calling | nothing, it works |
| `200 {"status":"scheduled"}` | outside calling hours, no free channel or no credit | the call will be placed later (without credit it waits an hour for a top-up) |
| `200 {"status":"duplicate"}` | this number was accepted moments ago | normal when you repeat a test with the same number |
| `200 {"status":"do_not_call"}` | the number is on the Do not call list | nothing; remove it from the list if it is there by mistake |
| `400` | no phone number in the body | check the phone field mapping and that the form asks for it |
| `401` | wrong token | paste the full address from the agent editor again, including `?t=...` |
| `403` | lead source disabled | turn it on in **Integrations** → **Lead sources** |
| `429` | over the [lead limits](/en/integrations/leads/lead-webhook#limits) | let Make/Zapier retry after `Retry-After`; write to us if your volume is higher |

Other common causes:

* **The scenario does not start**: check that it is on and scheduled
  **Immediately** (Facebook, LinkedIn, TikTok).
* **`400` although the form has a number**: the value in the body is empty,
  because the field was mapped from another module or the form uses a custom
  question instead of the standard phone number. You can enter that field's
  name in **Phone field name** in the agent settings.
* **JSON error in the HTTP module**: a value containing a double quote (`"`)
  breaks the body. Remove quotes from custom questions or leave that field
  out.


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