UTM Parameters for HubSpot
How to set up UTM tracking in HubSpot, capture UTM data on contact records, and build reports that tie campaigns to revenue.
Updated March 2026 · 12 min read
The Problem with HubSpot's Default Tracking
HubSpot automatically records where your contacts come from using "Original Source" and "Latest Source" properties. Sounds great — until you look at the data.
HubSpot's source tracking uses broad buckets like "Organic Search", "Paid Social", "Email Marketing", and "Other Campaigns". It tells you the general channel, but not the specific campaign, ad, or email that brought someone in.
For example, you run three different LinkedIn ad campaigns. In HubSpot, all three show up as "Paid Social". You can't tell which campaign generated the most leads, which one is wasting budget, or which creative is driving conversions. That's not useful when you're making budget decisions.
Even worse, if HubSpot can't figure out where traffic came from, it dumps it into "Other Campaigns" or "Direct Traffic" — a black hole where attribution goes to die.
UTM parameters fix this. They give you campaign-level, source-level, even link-level detail on every single contact that enters your CRM. And the best part: they work in both HubSpot reports AND Google Analytics at the same time.
New to UTMs? Read our beginner guide to UTM codes first.
HubSpot's Built-In Tracking URL Builder
HubSpot includes a Tracking URL Builder that lets you create UTM links directly inside your portal. Here's how to use it:
Open the Tracking URL Builder
Go to Reports → Analytics Tools → Tracking URL Builder. Click "Create tracking URL".
Enter your URL and campaign
Paste your destination URL, then select or create a HubSpot campaign. The campaign name is required because HubSpot uses it in several internal reports.
Choose your source
Select from the dropdown: Email marketing, Paid search, or "Other campaigns" (which lets you enter a custom utm_source). Add optional medium, term, and content values.
Copy and use
Click "Create". HubSpot generates the full UTM-tagged URL (and can shorten it too). Copy it and use it in your emails, ads, or social posts.
Note: The Tracking URL Builder requires Marketing Hub Professional or Enterprise. If you're on Starter or Free, use our free HubSpot UTM generator instead — it works with any HubSpot plan.
Capture UTM Data on Contact Records (Step-by-Step)
This is the most important part. HubSpot doesn't store raw UTM values on contacts by default. But with a simple setup — custom properties + hidden form fields — you can capture UTM data on every lead that fills out a form.
Step 1: Create custom contact properties
Go to Settings → Properties → Contact Properties. Create a new property for each UTM parameter you want to capture:
| Property Label | Internal Name | Field Type |
|---|---|---|
| UTM Source | utm_source | Single-line text |
| UTM Medium | utm_medium | Single-line text |
| UTM Campaign | utm_campaign | Single-line text |
| UTM Term | utm_term | Single-line text |
| UTM Content | utm_content | Single-line text |
The internal name must match the UTM parameter exactly (e.g., utm_source, not UTM_Source). This is how HubSpot auto-populates the fields from URL parameters. We recommend creating a property group called "UTM Tracking" to keep them organized.
Step 2: Add hidden fields to your forms
Go to Marketing → Lead Capture → Forms. Edit each form where you want to capture UTM data. Add the five UTM properties you just created as form fields. Then click each field and toggle "Make this field hidden".
Don't set a default value — leave it empty. When a visitor lands on your page from a UTM-tagged URL, HubSpot automatically reads the URL parameters and fills in the hidden fields. When the form is submitted, those values are saved to the contact record.
You need to add these hidden fields to every form where you want UTM capture — it's not a global setting.
Step 3: Test it
Open your landing page with UTM parameters in the URL. For example:
https://yoursite.com/demo?utm_source=linkedin&utm_medium=cpc&utm_campaign=lead_gen_q1_2026&utm_content=carousel_ad
Submit the form as a test contact. Then go to the contact record in HubSpot and check your custom UTM properties. You should see all five values populated.
UTM Tracking for HubSpot Emails
HubSpot adds its own tracking parameters to every link in your marketing emails by default. This is important to understand because it can conflict with your custom UTM parameters if you're not careful.
Go to Settings → Tracking & Analytics and look for the email tracking options. You'll see three choices:
Add source tracking tags to all URLs
HubSpot adds its own UTMs to every link. This will overwrite any custom UTM parameters you've added. Not recommended if you're building your own UTM links.
Add source tracking only if no existing tags in URL ✓
This is the best option. HubSpot only adds its tracking if your link doesn't already have UTM parameters. Your custom UTMs take priority, and links without UTMs still get basic tracking as a safety net.
Don't add source tracking tags
HubSpot adds nothing. You're fully responsible for tagging every link. Only use this if you have a very disciplined team and a process to ensure no links go untagged.
For most teams, the middle option is ideal. It gives you control when you want it, and a safety net when someone forgets.
When you do add custom UTM links to HubSpot emails, build them using the HubSpot UTM generator and paste the full tagged URL into your email's button or text link.
UTM Links for External Channels
HubSpot manages your emails and landing pages, but your marketing probably extends beyond HubSpot — LinkedIn ads, Google Ads, organic social, partner websites, QR codes. Every link from these channels needs UTM parameters too.
Here are the most common scenarios for HubSpot teams:
LinkedIn & Facebook Ads
Even if you manage ads through HubSpot's Ads tool, add UTM parameters to your destination URLs for complete GA4 tracking. Use the actual platform as the source (not "hubspot").
?utm_source=linkedin&utm_medium=cpc&utm_campaign=lead_gen_q1_2026&utm_content=carousel_ad
Organic social posts
When sharing blog posts or landing pages on social media, tag the links so you can see which platform drives the most traffic.
?utm_source=linkedin&utm_medium=social&utm_campaign=thought_leadership&utm_content=blog_share
Partner & co-marketing
When a partner includes a link to your site in their email or blog, give them a UTM-tagged link so you can track how much traffic and how many leads they send.
?utm_source=partner_name&utm_medium=referral&utm_campaign=co_marketing_webinar_q1
Webinar and event invitations
If you're promoting a HubSpot-hosted event through multiple channels, each channel should have its own UTM link so you can see where registrations come from.
?utm_source=hubspot&utm_medium=email&utm_campaign=webinar_ai_trends_mar_2026&utm_content=invite_email_1
Build UTM Reports in HubSpot
Once UTM data is flowing into contact records, you can build powerful reports. Here's what to set up:
Leads by UTM source
Create a custom contact report. Filter by utm_source is known. Add utm_source as a dimension and "Count of contacts" as a metric. Now you can see how many leads came from each source — LinkedIn, Google, email, partners.
Leads by campaign
Same approach, but use utm_campaign as the dimension. This shows which specific campaigns are generating leads — not just the channel, but the exact initiative.
Revenue by UTM source (Pro/Enterprise)
If you're tracking deals in HubSpot, copy the UTM values to deal properties when a deal is created (using a workflow). Then build a deal report that shows revenue grouped by utm_source or utm_campaign. This is the holy grail — you can see which campaigns actually generate money, not just leads.
A/B test performance
If you used utm_content to label different email versions or ad creatives, filter by campaign and group by utm_content. This tells you which creative variation brought in the most leads.
View HubSpot UTM Data in GA4
UTM parameters work in both HubSpot and Google Analytics simultaneously. There's nothing extra to configure — GA4 automatically reads UTM parameters from any tagged link.
Find HubSpot email traffic
Go to Reports → Acquisition → Traffic acquisition. Switch to Session source/medium. Look for "hubspot / email" or "hubspot / workflow".
Compare campaigns
Add Session campaign as a secondary dimension. Now you see each HubSpot campaign's performance — sessions, bounce rate, conversions, revenue — all in one view.
Build a custom Exploration
Go to Explore → Blank. Add Session source, Session medium, Session campaign, and Session manual ad content. Add Sessions, Conversions, and Revenue as metrics. This gives you a single view of all HubSpot marketing performance.
For a full GA4 walkthrough, see our UTM parameters guide.
Common HubSpot UTM Mistakes
1. Letting HubSpot overwrite your custom UTMs
If your email tracking is set to "Add source tracking tags to all URLs", HubSpot will overwrite your custom parameters. Change it to "Add source tracking only if no existing tags in URL" in Settings → Tracking & Analytics.
2. Using "hubspot" as source for everything
If you run a LinkedIn ad campaign managed through HubSpot's Ads tool, the source should be "linkedin", not "hubspot". The source tells you where the click happened — the platform the user was on, not the tool you used to set up the campaign.
3. Forgetting hidden form fields on some forms
Hidden UTM fields need to be added to every form individually. If you add them to your demo request form but forget your newsletter signup form, you'll have UTM data on some contacts but not others. Audit all your forms.
4. Not copying UTMs to deal properties
Contact-level UTM data is great for lead reports, but if you want to tie campaigns to revenue, you need UTM values on deals too. Use a HubSpot workflow to copy UTM properties from contact to deal when a deal is created.
5. Inconsistent naming between HubSpot and external tools
If your HubSpot campaign is called "Spring Sale 2026" but your UTM campaign value is "spring_sale_q1", they won't match in reports. Decide on one naming convention and use it everywhere. Lowercase, underscores, and date context.
For general UTM naming rules, read our UTM best practices guide.
Frequently Asked Questions
Does HubSpot track UTM parameters automatically?
Partially. HubSpot uses UTM data to categorize traffic into its source buckets (Organic, Paid Social, Email, etc.), but it doesn't store the raw UTM values on contact records by default. To capture utm_source, utm_campaign, etc. on contacts, you need to create custom properties and hidden form fields.
Do I need Marketing Hub Professional for UTM tracking?
The built-in Tracking URL Builder requires Marketing Hub Professional or Enterprise. But custom properties, hidden form fields, and UTM parameter capture work on all HubSpot plans including Free and Starter. You just need an external tool (like our free HubSpot UTM generator) to build the links.
Why does my UTM traffic show as "Other Campaigns" in HubSpot?
HubSpot buckets traffic based on specific medium values it recognizes. If your utm_medium doesn't match HubSpot's expected values (like "email", "cpc", "social", etc.), the traffic gets dumped into "Other Campaigns". Use standard medium values to ensure correct categorization.
Can I track first-touch and last-touch UTMs in HubSpot?
Yes, but you need to set it up manually. Create two sets of UTM properties — one for first touch and one for last touch. Use workflows: the first-touch properties should only be set if they're currently empty (so they never get overwritten), while last-touch properties update on every form submission.
Does HubSpot's auto-generated Campaign UTM work with GA4?
Yes. When HubSpot auto-generates a Campaign UTM (in Marketing Hub Professional+), that value appears in GA4 as the utm_campaign. However, auto-generated values can be long and hard to read. We recommend customizing the Campaign UTM in HubSpot's campaign settings to match your naming convention.
Related Guides
Build UTM links for your HubSpot campaigns
Free UTM generator with pre-filled HubSpot values. Works with any HubSpot plan.
Generate HubSpot UTM Links Free