How to track lead source in Gravity Forms
Every Gravity Forms entry arrives with the ad, search and pages that produced it. Spend more on the campaigns that fill your entry list.
- Channel
- Google Ads
- Campaign
- it-support-north-shore
- Landing page
- /managed-it
- Gravity Forms
- Quote request
- /managed-it
- /blog/managed-it-costs
- /pricing
Credit every Gravity Forms entry
The entry list starts telling you what to fund. Each row carries its campaign.
Gravity Forms fields left alone
No parameter names, no appended links. Dynamic population stays free for other jobs.
Gravity Forms AJAX, fully credited
Keep the AJAX toggle on. Every entry still arrives with its source.
Three steps, every Gravity Form
One snippet in your header covers today’s forms and the ones you build next.
Credit every Gravity Forms entry
Gravity Forms writes every submission to the database with every field intact. Lead Source adds the marketing to each one: the campaign that paid for that person, the search they ran, the four pages they read first. Now every row names its winner.
- Channel, campaign and every UTM value.
- Click IDs, landing page and referrer per entry.
- First visit, last visit and every page between.
- Name
- Mike Reeves
- Form
- Quote request
- Hidden fields
- none added
- Channel
- Google Ads
- Campaign
- it-support-north-shore
- Landing page
- /managed-it
Gravity Forms fields left alone
Dynamic population is Gravity Forms’ version of hidden fields: tick “Allow field to be populated dynamically”, name a parameter, append it to every link that opens the form. Lead Source needs none of that. It identifies the visitor from the tracking code on the page. Your fields stay exactly as you built them.
- Nothing to tick per field or per form.
- Links and buttons stay as they are.
- Keep dynamic population for products or record IDs.
Two touches on every Gravity Forms lead
Each entry carries the visit that first introduced that person and the visit they submitted on. Fund the campaign that opens the door. Credit the one that closes it.
Gravity Forms AJAX, fully credited
Gravity Forms has an AJAX option on each form, and plenty of sites run with it switched on. The entry saves without a page reload, so a conversion tag waiting for a thank-you page has nothing to fire on. Lead Source captures the submission on the page itself. Leave AJAX on.
- No thank-you page required.
- Same attribution with AJAX on or off.
- Your Google Ads conversion tags keep running beside it.
- /managed-it
- /blog/managed-it-costs
- /pricing
- Channel
- Google Ads
- Thank-you page
- not needed
<script async src="https://app.leadsource.co/ft.js" data-site="YOUR_SITE_KEY"></script>
Three steps, every Gravity Form
- Install the free WPCode plugin from the WordPress plugin directory.
- Open Code Snippets, then Header and Footer, paste the Lead Source tracking code into the Header section and save.
- Clear your page cache. Cached pages run the new code once the cache refreshes.
Nothing to configure inside Gravity Forms. The rest of your stack is on WordPress lead tracking.
How do I see which campaign sent a Gravity Forms entry?
Paste the Lead Source tracking code into your site header with WPCode and clear the page cache. From the next submission, each entry reaches Lead Source with its source, campaign, click IDs, landing page and the pages read first.
Which Gravity Forms entries arrive with less attribution?
Entries from someone who never reached your website before submitting. With no visit to match, attribution on that lead is limited or unknown. That is rare: the form lives on your site.
Gravity Forms questions, answered.
Do I still need dynamic population?
Not for attribution. Keep it for anything else you pass into a form, like a product or an internal record ID. Lead Source does not read it or interfere with it.
Does it work if AJAX submission is turned on?
Yes. That is one of the reasons to use it. Lead Source captures the submission on the page, so no thank-you page has to load for the entry to be credited.
Does this slow down a large Gravity Forms site?
The snippet is small and loads asynchronously. It does not block rendering and it does not add a plugin to maintain.
Track your Gravity Forms leads. Free to start.
Each entry lands with its campaign, its landing page and the pages read first.
Start freeFree to start · no card









