14-day free trial · no card
Form attribution software

Form attribution, solved.

One script tag captures the source, campaign, and journey of every form lead on your site.

5-min install. No card required.
Works with
Gravity Forms HubSpot Contact Form 7 Jotform Typeform Webflow WordPress Squarespace
The form attribution gap

You spent months building attribution. It dies at the form.

UTMs land. GA4 sees the click. Your CRM sees the submission. But the link between the two. which campaign produced this specific lead. Gets lost the moment they hit submit. The "Lead Source" field in your CRM ends up as "Web", "Other", or blank.

01 · Click
Visitor arrives with UTMs

Google Ads, LinkedIn, your latest campaign. The attribution data is right there in the URL.

02 · Browse
They read 3 pages

Landing page, pricing, case study. Every page view is a signal. Most tools see it.

03 · Submit
Form fires. Data lost.

Your CRM gets a name and email. Nothing else. The campaign, the journey, the page that converted. Gone.

Without form attribution, every dashboard you build is a guess. Lead Source closes the loop. Server-side, at submission, every time.

How it works

One script. Every form. Five minutes.

No per-form configuration, no hidden fields to wire up, no plugins to install. The script auto-detects every form on your site, both existing and new.

Step 01 · Install

Paste one script tag

Drop the snippet into your site head. Google Tag Manager, your CMS template, your dev's editor. Wherever you already add scripts.

<script src="https://cdn.leadsource.co/ls.js" data-site="YOUR_ID"></script>
Step 02 · Auto-detect

We find every form on your site

The script walks the page, identifies form elements, and attaches lightweight listeners. New forms added later? Auto-detected too. Single-page apps, dynamic injections, embedded iframes. Covered.

// detected: Gravity, Jotform, HubSpot, native HTML5
Step 03 · Capture

Attribution arrives with every lead

On submit, the source, campaign, UTMs, landing page, full in-session journey, referrer, and timestamp are captured server-side and sent to your inbox, dashboard, or webhook.

// captured: source · utms · journey · landing
Try the 5-minute install

5-min install. No card required.

What arrives with every lead

Every form submission, fully attributed.

No more "Web" in the source field. Every lead arrives with the full picture. Ready to push to your CRM, your data warehouse, or your Slack channel.

Source
Channel & campaign
Google Ads, organic, LinkedIn, direct, referral. With the specific campaign and ad group when present.
UTMs
Full UTM payload
utm_source, medium, campaign, term, content. Preserved across the entire session, not just the first page.
Journey
The pages they read
The full in-session page sequence before submission. Which content actually moved them to convert.
Landing
First page of the session
The page they arrived on. Not the form page. The thing your campaign actually pointed at.
Referrer
Where they came from
Full referrer URL when present. Catches the channels UTM tracking misses. Partner sites, communities, dark social.
Time
Submission timestamp
Server-side timestamp, plus session duration. Match against your ads spend timeline without timezone games.
See every lead's journey

14-day free trial · 5-min install. No card required.

We had GA4, we had HubSpot, we had a Tableau dashboard. Every lead still landed in the CRM marked "Web." Lead Source filled the gap in two days. First time we could actually trace pipeline back to specific campaigns.

Rebecca Monroe
Head of Marketing · B2B SaaS, $14M ARR
Compatibility

Works with every form tool. Without touching them.

No plugins. No hidden fields. No per-form setup. The script attaches to forms automatically. Whether they were built last week or five years ago.

Gravity Forms WordPress Auto
HubSpot Embedded Auto
Contact Form 7 WordPress Auto
Jotform Embedded / iframe Auto
Typeform Embedded / popup Auto
Webflow Native Auto
Squarespace Native Auto
Wix Native Auto
Forminator WordPress Auto
Native HTML Any form tag Auto

Using something not listed? If it’s a form on a web page, we attach to it.

Questions marketers ask first

The four things you’re probably thinking.

"How is this different from UTM tracking?"

UTMs only stick to the first page. The moment a visitor clicks through to a second page or comes back later in the session, the UTM is gone. Unless your form is on the landing page itself, which it usually isn’t. Lead Source preserves UTMs across the full session, attaches them server-side at submission, and adds source, journey, and referrer on top.

"Do I need to modify my forms or add hidden fields?"

No. That’s the whole point. The script auto-detects every form on your site and captures attribution server-side. No <input type="hidden"> per form. No per-form JavaScript. No form-builder plugin to install. Existing forms keep working exactly as they do today.

"We already have HubSpot/Salesforce. Where does this fit?"

Alongside, not instead. Lead Source captures attribution at submission and pushes the enriched data to whatever you already use. Inbox notifications, webhook into HubSpot/Salesforce, Zapier, Make, or a Slack channel. Your CRM keeps doing what it does. The "Lead Source" field finally has a real value in it.

"What about cookies, GDPR, all that?"

No cookies. No client-side storage. No fingerprinting. Attribution data is captured server-side at form submission. Meaning the script sits outside ePrivacy/PECR storage-and-access scope entirely. No cookie banner required for our snippet.

Form attribution · built for marketers

Stop guessing where your leads came from.

One script tag, five minutes, every form on your site fully attributed. Free to start. No card required.

Start free
No card · 5-min install · Works with every form tool