INSIGHTS · 7 min read

How to Pass UTM Parameters into HubSpot So They Survive to the Deal

A practical guide to capturing UTM source/medium in HubSpot with hidden form fields, preserving them across pages, and mapping them all the way to the deal record.

Capturing UTM parameters in HubSpot sounds simple and usually isn’t, not because HubSpot can’t do it, but because the data has to survive a chain of hops that most setups break somewhere along the way. Here’s the full path, and where to reinforce it.

Step 1 — Preserve the parameters across pages

A visitor rarely fills out a form on the page they land on. They read a post, click to another page, then convert, and by then the original UTM parameters are gone from the URL unless you preserve them. A lightweight script that reads the parameters on first page load and writes them to browser storage keeps the original source available across the whole visit.

Step 2 — Hidden form fields

Add five hidden fields to every HubSpot form, mapped to contact properties for utm_source, utm_medium, utm_campaign, utm_content, and utm_term. On submission, the preserved values pass into the CRM alongside the name and email. Add a sixth field for the Google Click ID (gclid) if you run Google Ads, plus a self-reported “How did you hear about us?” field to catch the channels no script can see.

Step 3 — Map to the deal (the step most teams skip)

In HubSpot, UTM values on a contact are accessible from associated deals natively, but they have to be explicitly added to deal views, pipelines, and reports, or they stay invisible exactly where they matter most. This is the most commonly broken step in the whole chain. Configure it, and you can finally report revenue by channel instead of leads by channel.

Frequently asked questions

Do UTM parameters carry to HubSpot deals automatically?
The values live on the contact and are accessible from associated deals, but they must be explicitly surfaced on deal views and reports. They won’t appear in revenue reporting until you configure that.
How do I capture UTMs if the form is on a later page?
Use a script that reads UTM parameters on first page load and stores them in browser storage, then populates hidden form fields on submission — so the original source survives even if the visitor navigates several pages first.

See where your revenue is leaking

The Rapid Alignment Audit maps exactly where your marketing-to-sales handoff breaks — and hands you a prioritized fix you keep either way.

Book the Audit →