Facebook instant form integration to Outlook

:bullseye: What is your goal?

HI There, I was hoping that this would be simple :slight_smile:
I would like to create one Make scenario that captures every new Facebook Lead Ads / Instant Form submission from a single Facebook Page, regardless of which Instant Form generated the lead, and emails the lead details to a defined Microsoft 365 shared inbox.
The intended flow is:
Facebook Lead Ads – New Lead → Get Lead Details → Microsoft 365 Email – Send an Email

We have multiple campaigns and multiple Instant Forms attached to the same Facebook Page. I do not want to create a separate scenario for every individual form if this can be avoided.
The scenario should dynamically identify the Form ID and Lead ID for each incoming lead, retrieve the corresponding form answers, and send those details by email.

:thinking: What is the problem?

The scenario runs but the Outlook email component fails due to not getting the field data from the instant form.
I do not have a single instant form but multiple lead forms. I would like all submitted instant form details to create immediate emails per form.

:test_tube: What have you tried so far?

Initially, I successfully created a Facebook Lead Ads New Lead webhook, but it appeared to be associated with a particular Instant Form and the outlook email failed. What is the correct way to configure Facebook Lead Ads in Make so that one scenario receives leads from ALL Instant Forms belonging to one Facebook Page and dynamically retrieves the correct lead/form details for each submission?
Any Instant Form on Facebook Page → New Lead webhook → dynamically determine Form ID + Lead ID → retrieve all available lead answers → send details to one Outlook/shared inbox.

I would appreciate guidance on the correct Facebook Lead Ads module configuration and mapping, particularly whether I should be using New Lead, New Lead Multiple, Get Lead Details, or another approach for multiple forms on the same Page and then especially to create an email with those details. When I tested the outlook email using entered information, the email completed successfully - but on when testing the end of the scenario, from beginning to end, this does not work.

Hey Lee,

if I’m not mistaken, you can set your forms to store data in the same google sheet. Then have the Make scenario monitor that sheet for new rows.

Hello,

Disclaimer upfront: I don’t have a sandbox account right now, so I can’t test this directly – but based on the documentation, here’s what I’d expect.

Facebook returns field data by name, so you’ll need consistent field names across your forms to reliably map them to Outlook using map(). If consistent naming isn’t possible, you’ll need nested functions instead.

Example response structure:

{
  "created_time": "2015-02-28T08:49:14+0000",
  "id": "<LEAD_ID>",
  "ad_id": "<AD_ID>",
  "form_id": "<FORM_ID>",
  "field_data": [{
    "name": "car_make",
    "values": [
      "Honda"
    ]
  },
  {
    "name": "full_name",
    "values": [
      "Joe Example"
    ]
  },
  {
    "name": "email",
    "values": [
      "[email protected]"
    ]
  },
  {
    "name": "selected_dealer",
    "values": [
      "99213450"
    ]
  }]
}

You’d use:

{{map(facebookOutput; "values"; "name"; "email")}}

If that doesn’t work for your case, make a direct API Call to Meta instead – you’ll get the raw, unformatted response to work with.

For scalability and long-term maintenance, I’d strongly recommend building a set of scenarios that normalize the data into a consistent format. You can follow Stoyan’s approach – store everything in Google Sheets, then trigger Outlook (so you have set of scenarios parsing data for each form and scenario taking action) or build a template scenario (new lead webhookget lead detailsRoutercall subscenario) and then, duplicate it for each form and connect every form-specific scenario to a single one that handles sending emails.

That way, if you ever need different handling for a specific form, you just edit its own subscenario and add a new route to the router you’ve already set up.

Have a nice day,
Michal