Send Every Calendly Submission Straight Into Airtable

The moment someone completes your Calendly form, the lead is cleaned and written into Airtable as a de-duplicated contact — no copy-paste, no missed leads.

difficulty Beginnersetup 30 minresult A new Airtable contact appears within seconds of each Calendly submission, with name, email and company already filled in.
  1. 1

    Step 1 — Receive the submission

    Add a Webhook node (POST). Copy its URL into Calendly as the submission endpoint so every completed form is pushed to n8n instantly.

  2. 2

    Step 2 — Normalise the fields

    Add a Set node. Create email, firstname, lastname and company and map each from the payload, e.g. {{ $json.body.email }}. This shields the rest of the flow from Calendly's field naming.

  3. 3

    Step 3 — Reject empty emails

    Add an If node with the condition {{ $json.email }} is not empty. The true branch continues; the false branch can alert you to a broken form.

  4. 4

    Step 4 — Write to the CRM

    Add an Airtable node. Set Operation to Upsert, choose your base and table, and map the fields. Match on the email column to avoid duplicate rows.

  5. 5

    Step 5 — Confirm receipt

    Add a Respond to Webhook node returning Lead saved. This 200 response stops Calendly from retrying the submission.

Frequently asked questions

My Calendly field names are different — will this still work?

Yes. Only the expressions in the `Set` node (Step 2) reference field names. Change `{{ $json.body.email }}` to match the exact keys Calendly sends and every downstream step keeps working.

Will I get duplicate contacts in Airtable?

No. Step 4 upserts keyed on email address, so a repeat submission updates the existing Airtable record instead of creating a second one.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.