Jotform integration

How to track the source of your leads in Jotform.

Jotform hands you widgets for the page URL and the referrer, one form at a time.

Works with hosted and embedded Jotform No widgets, no field-mapping, no parsing Live in minutes
Salesforce
HubSpot
Pipedrive
Gmail
Twilio
Google Ads
Gravity Forms
Jotform
Webflow
Wix
Calendly
Typeform

Works with every Jotform format

Classic forms Card forms Hosted on jotform.com Embedded on your site Multi-page Payment forms
The gap

Jotform has the pieces. Assembling them is the work.

Jotform has every ingredient you need. A widget that grabs the page URL. A widget that grabs the referrer. Prefill from URL parameters. Webhooks that POST submissions onward. The catch is that each piece is opt-in, configured per form, one form at a time, and tied to Jotform’s own field IDs and payload shape.

What Jotform offers

Widgets and webhooks, à la carte

  • “Get Form Page URL” widget
  • “Referrer URL” widget
  • URL-parameter prefill (per field)
  • Webhooks with rawRequest payload
  • 100+ direct integrations to CRMs & tools
What you still have to do

Per form, per integration

  • Add the URL widget. Add the referrer widget. Per form.
  • Persist UTMs across navigation before they hit the form
  • Map the widget output into your CRM’s schema
  • Parse Jotform’s rawRequest payload to extract values
  • Turn raw URLs & UTMs into actual campaign names
The usual workaround

Adding hidden fields in Jotform

The standard recipe needs four things. A Get Form Page URL widget. A Referrer URL widget. Per-field URL prefill for your UTMs, and either a CSV export at month end or a webhook receiver to make sense of the output. It works. It also asks for maintenance from whoever owns the forms, forever.

The manual way

  • 01
    Open each form in the Jotform builder. Search the widget library for Get Form Page URL and Referrer URL. Add both. Set them to hidden. Repeat for every form.
  • 02
    Add hidden short-text fields for utm_source, utm_medium, utm_campaign. Name each to match the URL parameter that’ll prefill it.
  • 03
    Build a UTM-persistence solution outside Jotform. Jotform prefill only reads the URL when the form page loads. If the visitor clicks an ad to your homepage and navigates to the contact page before submitting, the URL is clean.
  • 04
    To get this into your CRM: configure a webhook, point it somewhere that can parse Jotform’s rawRequest payload, and map each field onto your CRM’s schema.

With Lead Source

  • Paste one webhook URL into Settings → Integrations → Webhooks. Once per form.
  • We receive every Jotform submission, attach source & campaign & full page journey, and surface it in your dashboard and inbox.
  • Source captured at submission with cross-page UTM persistence already handled. Written out: “Google Ads · Local Services Sydney”, not raw UTM strings.
  • No widgets to add. No fields to map. No rawRequest parser to maintain.

Most Jotform attribution work is adding Get Form Page URL widgets to every form, then working out why the values are not where you expected. The webhook path skips all of it.

The session problem

Jotform prefill and why it is not enough

Jotform will prefill a field from a query parameter on the form URL. It works, and it is genuinely useful where you control the link. Your own ads, your email footer, your partner links.

It cannot help with organic search, because you did not hand out that link, and it cannot survive someone who lands on one page and submits from another, because the parameter was on the first URL and the form loaded on the second.

Form tracking holds the value from arrival through to submission, so prefill stops being the only route in.

Four failure modes

Why the Jotform lead source is blank

Four things account for almost every blank source on a Jotform.

A widget was never added to that particular form, which is easy to miss when every form is configured separately, or the session was not held, so the parameters sat on the landing page and nothing carried them forward, or the raw parameter was stored as-is, and your reporting now carries Google under three different spellings, or the integration was wired up before the field existed, so the field never reaches the payload.

An embedded Jotform adds one more thing to check. The form renders in an iframe, so the parameters have to be on the iframe source before it loads. Resolving whatever arrives against a fixed lead source taxonomy is what turns it into a report.

A fifth possibility is that the submission was never real. Jotform’s anti-spam options, what each one stops and what none of them catch, are covered in Jotform spam submissions.

What you install

One webhook URL. That’s the whole thing.

Sign up, copy your webhook URL from the dashboard, paste it into Jotform’s webhook settings. We receive every submission and attach the source automatically. The block below shows what the URL looks like, with placeholder text where your account ID will be.

Lead Source installs in a few minutes, and there is not a widget to add anywhere. If you want to see what your current setup records before you change anything, start with the source your forms are capturing today.

Your real webhook URL is in the dashboard
# Paste your real webhook URL from app.leadsource.co
https://app.leadsource.co/api/capture/webhook/YOUR_SITE_KEY

The real webhook URL is generated for your account when you sign up. Copy it from the integrations page in your dashboard. Async delivery, retries on failure, signed payloads.

Install in Jotform

Three steps. Done in five minutes.

1

Sign up and get your webhook URL

Create your free Lead Source account. Your webhook URL sits on the integrations page with the account ID already filled in. Copy it.

No credit card required to start. The signup flow takes about a minute.
2

Add the webhook in Jotform settings

Open the form in the Jotform builder and go to Settings → Integrations → Webhooks → Add Webhook. Paste the Lead Source URL and save. Nothing else to configure.

Webhooks are on every Jotform plan including free. No widget to install, no field mapping, no custom code on your side.
3

Submit a test through your Jotform form

Submit a real entry through your Jotform. Within a minute or two it appears in your dashboard with source, campaign and page journey attached, and the email notification still arrives.

Want to test attribution end-to-end? Open your Jotform with ?utm_source=test appended to the URL before submitting. That’ll be the source on the lead.
Common questions

Questions, answered.

Will this conflict with my existing Jotform integrations?

No. Jotform supports multiple webhooks per form. Add the Lead Source webhook URL and your existing integrations (Mailchimp, HubSpot, Salesforce, Zapier, Google Sheets, etc.) keep working exactly as configured. We don't modify the submission. We receive a copy of it.

Does it work with both hosted Jotform forms and embedded Jotform forms?

Yes. The webhook fires at the Jotform-server level when a submission is received, so it doesn't matter whether the form was filled on jotform.com or embedded on your own site. Both paths reach us. Hosted forms are actually where webhook install shines: the page-on-your-site is jotform.com's, so a script tag can't see the submission.

Do I need a paid Jotform plan?

No. Webhooks are available on Jotform's free tier and on every paid tier. The Jotform-side limit you might encounter is the monthly form-submission cap on lower tiers, which is set by Jotform's own pricing and is separate from Lead Source.

Does the webhook slow down my form submission?

No. Jotform fires webhooks asynchronously after returning the success response to your form visitor. From the submitter's perspective, nothing changes. From your perspective, the Lead Source notification typically arrives within 1–3 seconds of the submission.

What about Jotform's Card forms. The one-question-at-a-time UI?

Works the same way. Card forms still emit a single submission webhook at the end of the flow. We receive it with all the fields the visitor filled in across all the cards, plus the source data we've been building up.

Track your Jotform leads. Free to start.

One webhook URL is configured once, in Jotform's integration settings on each form (or applied across all forms via the API). Source, campaign, and page journey arrive on every submission. No widgets to add, no rawRequest payload to parse on your side.

Start free

Free to start · no card