Send Every Jotform Submission Straight Into Close
The moment someone completes your Jotform form, the lead is cleaned and written into Close as a de-duplicated contact — no copy-paste, no missed leads.
- 1
Step 1 — Receive the submission
Add a
Webhooknode (POST). Copy its URL into Jotform as the submission endpoint so every completed form is pushed to n8n instantly. - 2
Step 2 — Normalise the fields
Add a
Setnode. Createemail,firstname,lastnameandcompanyand map each from the payload, e.g.{{ $json.body.email }}. This shields the rest of the flow from Jotform's field naming. - 3
Step 3 — Reject empty emails
Add an
Ifnode with the condition{{ $json.email }}is not empty. The true branch continues; the false branch can alert you to a broken form. - 4
Step 4 — Write to the CRM
Add a node (or HTTP Request) for Close and upsert the contact keyed on email.
- 5
Step 5 — Confirm receipt
Add a
Respond to Webhooknode returningLead saved. This 200 response stops Jotform from retrying the submission.
Frequently asked questions
My Jotform 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 Jotform sends and every downstream step keeps working.
Will I get duplicate contacts in Close?
No. Step 4 upserts keyed on email address, so a repeat submission updates the existing Close record instead of creating a second one.