How to Capture UTM Parameters in Forms Without Showing Visible Input Fields
How to Capture UTM Parameters in Forms Without Showing Visible Input Fields
Here is a common scenario in growth marketing:
Your company spends $12,000 this month running three campaigns:
- Campaign 1: Google Search Ads targeting high-intent keywords (
typeform alternative) - Campaign 2: LinkedIn Sponsored Posts targeting Heads of Growth
- Campaign 3: A newsletter sponsorship in a major tech publication
At the end of the month, your form collects 420 inbound leads.
Your CEO asks:
"Which campaign drove the $35,000 enterprise deal we closed on Thursday?"
You open your database or spreadsheet. And you realize: every lead row only contains Name, Email, and Company.
There is zero tracking data. You have no idea whether that enterprise client came from Google, LinkedIn, or the newsletter. You are flying blind, unable to calculate your true return on ad spend (ROAS).
To fix this, amateur marketers add visible questions: "How did you hear about us?" with a dropdown.
Users pick whichever option is at the top of the list, or select "Google" for everything. You get low-fidelity, self-reported guesses.
Professional growth teams don't ask users where they came from. They capture UTM parameters and campaign click IDs invisibly using Hidden Fields.
Here is how hidden URL tracking works, how URL query strings pass into form payloads, and how to configure automatic UTM capture in modern form builders.
What Are Hidden Fields and How Do They Work?
A Hidden Field is an HTML form input that exists in the DOM but is completely invisible to the human visitor:
<input type="hidden" name="utm_source" value="linkedin" />
<input type="hidden" name="utm_campaign" value="q4_growth_push" />
When a visitor clicks a tracking link from an ad:
https://yourbrand.com/apply?utm_source=linkedin&utm_medium=cpc&utm_campaign=q4_growth_push&gclid=Cj0KCQ...
The form script inspects the URL's window.location.search query parameters, parses the values, and automatically maps them into the hidden fields.
When the user clicks Submit, the tracking data is bundled silently alongside their form answers:
{
"first_name": "Marcus",
"work_email": "marcus@enterprise.com",
"company_size": "250+",
"utm_source": "linkedin",
"utm_medium": "cpc",
"utm_campaign": "q4_growth_push",
"click_id": "Cj0KCQ..."
}
The user experienced zero friction, and your revenue operations team receives 100% deterministic, multi-touch attribution data.
The 5 Essential Marketing Parameters Every Form Should Capture
| Parameter Key | What It Identifies | Example Value |
|---|---|---|
utm_source | The traffic platform / referrer | google, linkedin, newsletter |
utm_medium | The marketing channel type | cpc, email, organic_social |
utm_campaign | The specific promotion or initiative | us_tier1_competitor_switch |
utm_content | The creative ad variant / headline | video_teardown_v2 |
gclid / fbclid | Google / Meta unique click token | CjwKCAiA... (For offline conversion API uploads) |
The Technical Problem: The "Page Navigation" Cookie Trap
Here is where standard hidden fields fail on multi-page websites:
- A prospect clicks your paid Google Ad and lands on your homepage:
yourbrand.com/?utm_source=google. - They click around: they view your
/featurespage, read your/pricingpage, and finally navigate to your/contactpage. - By the time they reach
/contact, the UTM query parameters have disappeared from the browser address bar!
If your form builder only reads the current page URL, the lead will be recorded as utm_source: null (direct traffic). You lose attribution on your highest-intent researchers.
The Solution: First-Party Session Persistence
In modern growth architecture, the form engine must persist URL parameters in the user's sessionStorage or a first-party cookie on their very first pageview.
When they eventually navigate to the form three minutes later, the engine retrieves the original attribution tokens from storage and attaches them to the submission payload automatically.
How to Set Up Hidden Fields in InfiForm (In 30 Seconds)
In InfiForm, hidden parameter capture is built natively into form settings:
[ Form Settings ➔ Tracking & Attribution ]
├── Auto-Capture Standard UTMs: [ ON ]
│ (utm_source, utm_medium, utm_campaign, utm_term, utm_content)
├── Custom Hidden Variables:
│ [ + Add Parameter Key: "affiliate_id" ]
│ [ + Add Parameter Key: "gclid" ]
└── Cookie Persistence Window: [ 30 Days ]
Step 1: Open Form Settings
In the builder top navigation, click Settings ➔ Tracking & Attribution.
Step 2: Toggle "Auto-Capture Standard UTMs"
InfiForm automatically adds hidden listeners for all five standard UTM keys plus ref.
Step 3: Add Custom Variables (Optional)
If your marketing team tracks affiliate tokens (?partner_id=acme), custom campaign codes, or user IDs passed from an email newsletter link, add the parameter key to the Hidden Fields list.
Step 4: Map into Webhooks, Sheets, or CRMs
When you connect Google Sheets, HubSpot, Slack, or Pipedrive, your hidden UTM parameters appear as standard columns ready to map to CRM contact properties.
Summary
Stop letting your marketing attribution slip through the cracks.
Enable native hidden field tracking in InfiForm, pass UTM parameters seamlessly into your CRM, and prove the exact return on investment of every marketing dollar you spend.
Related Articles
How to Pass Hidden URL Variables and UTM Data Directly to Your CRM
Marketing teams waste thousands on paid ads because attribution data is lost between clicks and form submissions. Here is how to pass hidden UTM parameters into CRM records.
High-Converting CTA Button Copy: 20 Alternatives to the Dreaded 'Submit'
The generic word 'Submit' hurts form conversion by up to 30%. Here is the psychology of button copy and 20 high-converting alternatives categorized by intent.
How to Structure a Post-Purchase Survey Without Annoying New Customers
Post-purchase surveys capture customer attribution and unboxing expectations at the emotional peak. Here is the 4-question framework that achieves 60%+ completion.