You spent the budget. A lead just filled out your form. Which channel sent them, the LinkedIn ad, the newsletter, or the blog popup?
Here is the short answer: tag your form link with UTM parameters, add a few hidden fields, and every submission carries its own source. No Google Analytics, no code, no extra tools.
This guide shows the exact steps inside Formester, from building a tagged URL to filtering leads by source and exporting them. It takes a few minutes to set up once.
What Are UTM Parameters? (The 5 Tags Explained)
UTM parameters are small tags you add to the end of a link. When someone clicks a tagged link, the tags travel with them, so you can see exactly where the click came from.
There are five, and three do most of the work:
- utm_source: Where the traffic came from: linkedin, newsletter, google.
- utm_medium: The type of channel: paid, email, social, organic.
- utm_campaign: The specific campaign: crm_demo_july, spring_sale.
- utm_term and utm_content: Optional. utm_term records the paid keyword; utm_content tells two versions of the same link apart (for example, two buttons in one email).
A tagged form link looks like this: https://yourform.com
How to Track UTM Parameters in Your Forms: 5 Steps
Five steps, start to finish. Build the form, tag the link, add hidden fields, test it, then filter and export. You only set this up once per form.
Step 1: Build Your Lead Capture Form
Open your Formester dashboard and create a new lead capture form. Add the visible fields you actually need: name, email, company. Keep it short; every extra field costs you submissions.
Step 2: Build a UTM-Tagged Link
You need a version of your form link with UTM tags baked in. The easiest way is Google's free Campaign URL Builder.
- Open Google's Campaign URL Builder (search "campaign url builder"; it is the first result).
- Paste your form URL into the Website URL field.
- Fill in source (linkedin), medium (paid), and campaign (crm_demo_july).
The builder hands you a full tagged URL. Want it tidy for an ad or bio link? Shorten it with Bitly. Make one tagged link per channel so each source stays clean.
Step 3: Add Hidden Fields That Auto-Fill From the URL
This is the part that does the work. A hidden field sits on the form, invisible to the visitor, and quietly reads its value from the URL.
- In the Formester builder, add a single line input field.
- Rename the field label to match the tag exactly: utm_source.
- Click the eye icon to hide it from view.
Repeat for each tag you want to capture: utm_medium, utm_campaign, and campaign_id if you use one. The field name has to match the UTM tag character for character, or it stays blank.
Now, when a visitor lands on the form from your tagged link, those hidden fields fill themselves in. It is the same mechanism as prefilling form fields from URL parameters, pointed at attribution instead of convenience.
Step 4: Test It Before You Launch
Never trust attribution you have not tested. Open your tagged form link in a new browser tab, fill it out, and hit submit.
Then open your Formester dashboard, go to the form, and open Results. Click the latest submission. You should see the hidden values captured alongside the visible ones: source linkedin, medium paid, campaign crm_demo_july.
Run it again with a second tagged link, say source google and medium organic, and confirm the two submissions show different sources. If a field is blank, the field name and the UTM tag do not match yet.
Step 5: Filter, Export, and Sync Your Leads by Source
This is the payoff. Want every lead that came from LinkedIn?
- Open the Results tab.
- In Filters, set utm_source = linkedin.
- Read the filtered list, or export it as a CSV in one click.
To keep the data flowing automatically, connect the form to Google Sheets or push leads straight into HubSpot. The UTM values ride along with each lead, so your sales and email tools know the source without anyone copying it by hand.
Hidden Fields vs Google Analytics vs GTM: Which to Use
These three approaches answer different questions, so plenty of teams run more than one.
- Hidden fields: Tag the submission itself. The source lands inside your results, CSV, and CRM next to the lead. Best when you care about which channel produced an actual lead, not just a visit. No code, no setup.
- Google Analytics: Tracks the page visit and traffic shape. Great for top-of-funnel volume, weaker at tying a single lead to a single source. Formester also offers a native Google Analytics integration if you want both views.
- Google Tag Manager: Fires events when a form is submitted, useful for sending conversions to ad platforms. More moving parts, and it still does not store the source on the lead record. Connect it through Formester's Google Tag Manager integration.
Short version: use hidden fields for lead-level attribution, Analytics for traffic, GTM for ad-conversion events. The hidden-field method is the one that needs no setup and travels with the data.
Why Hidden Fields Beat the Alternatives
- No setup in Google Analytics and no scripts to maintain.
- Source data lives on the submission, not buried in a separate analytics report.
- Per-lead, not per-visit: you know which channel produced the actual form fill.
- Works the same across popups, landing pages, and embedded forms.
Paid ads, influencer drops, content marketing: whatever the channel, every lead points back to its source.
Why Your Hidden Fields Might Come Back Empty
If a submission arrives with blank UTM fields, one of these is usually the reason:
- The visitor came directly, from a bookmark, or from an untagged link. No tags in the URL means nothing to capture. That is expected for organic and direct traffic.
- The field name does not match the UTM tag exactly. utm_source captures; UTM_Source or utm-source does not.
- A redirect or link wrapper stripped the parameters before the form loaded. Test the final landing URL, not the link you pasted.
Treat blank values as a signal, not a bug. They tell you which share of leads arrived without a tracked campaign, which is useful to know on its own.
Start Tracking Every Lead's Source
Knowing where a lead came from changes how you spend. Double down on the channels that convert, cut the ones that just spend.
Hidden fields give you that without a single line of code. Tag the link, add the fields, and the source rides along with every submission into your results, your spreadsheet, and your CRM.
Want to see it work? Build a form free, tag a link, and watch the first source land in your results. From there, form analytics shows you the rest of the picture.



