How to pass UTM parameters into a HubSpot form
Improve attribution, reporting accuracy & campaign performance tracking with UTMs
If you rely on UTMs to understand what’s actually working in your marketing, don’t stop at the ad platform. Put them into HubSpot.
HubSpot does capture source data automatically through the Original Source properties on the contact record.
But if you’ve ever tried to reconcile that with your campaign reports, you know it doesn’t always tell the story you need.
The fix is simple: pass UTM parameters straight into HubSpot forms using hidden fields.
This post walks you through the process, step by step.
Create HubSpot properties for UTM parameters
Start by building properties to hold the UTM values. Go to:
Settings > Properties > Contact Properties > Create property
Create one for each of the five core UTMs you plan to capture:
- utm_campaign
- utm_content
- utm_medium
- utm_source
- utm_term
Make sure the internal names match the actual UTM parameter names in your URLs. That alignment is what makes the values pass correctly.
Insert these properties as hidden fields
Next, edit the form you want to capture UTMs on.
Marketing > Lead Capture > Forms > Create form (or select an existing one)
Search for your UTM properties and drag them into the form. For each one:
- Click the field in the left panel
- Select Make this field hidden
This way, visitors never see or interact with the fields, but HubSpot will capture values behind the scenes.
Publish and test your form
Save and update the form. Place it on a live landing page.
Now test: append UTM parameters to the page URL and submit a test lead. For example:
www.yoursite.com/demo-form?utm_campaign=testcampaign&utm_source=linkedin&utm_medium=cpc&utm_term=revops&utm_content=carousel1
After submission, check the contact record in HubSpot. You should see the UTM values populate in the properties you created.
If you see the values flowing in, you’re set.
Tie this into reporting on form submissions
To get the most out of capturing UTMs, you’ll also want visibility over how different forms perform. Our guide “How to report on form submissions in HubSpot” outlines a powerful addition to your stack.
Once you have hidden UTM parameters feeding into your contact records, you can use workflows to create custom records (custom objects) for each form submission.
Then you can build custom reports in HubSpot that combine Contacts and Form Submission custom objects. That lets you compare performance across forms and tie back to UTMs to see which campaigns, sources, or content are driving what.
Bonus: you can layer in revenue or deals associated with those contacts, to see which UTMs and which forms are contributing to pipeline (provided your HubSpot plan supports custom objects.)
Why this matters
Passing UTMs directly into HubSpot closes the loop between campaign execution and pipeline reporting. Without it, your “what drove this opportunity?” conversations stay fuzzy. With it, you can build clean attribution reports that actually map to your ad spend.
UTMs aren’t perfect; they depend on consistent links and careful governance, but they’re still one of the simplest, lowest-lift ways to get clarity on performance.
For more technical detail, HubSpot’s official resource on tracking URLs and UTMs is worth bookmarking.
Bring it back to your stack
RevBlack works with high-growth teams that need their data infrastructure to match their ambitions. If you’re ready to turn attribution into something the board can actually trust, let’s talk.