Marketing
{Read Time} min read

HubSpot Lead Source Attribution Setup

Vitaly Kan
October 13, 2025

Most SaaS teams build their HubSpot attribution setup backward.

They connect UTM parameters first, create a few form fields, and hope the data shows up correctly in reports. It usually doesn't.

The result: leadership sees reports where 40% of leads are from "Direct" and nobody knows what that means. Decisions get made without real information.

Here's how to build attribution the right way from the start.

Why Attribution Breaks in HubSpot

HubSpot captures a lot of attribution data natively. The problem isn't collection. It's structure.

The most common issues:

  • UTM parameters captured but not mapped to the right properties
  • "Original Source" and "Latest Source" used interchangeably when they answer different questions
  • Form submissions overwriting lead source data from earlier touchpoints
  • Direct traffic absorbing leads that should be attributed to specific channels
  • No controlled property for lead source, so every rep fills it in differently

Attribution doesn't break because of a HubSpot limitation. It breaks because the setup wasn't designed with reporting in mind.

The Two Properties You Actually Need

HubSpot has multiple source-related properties. Most teams try to use all of them and end up with noise.

Start with two.

Original Source (native): HubSpot sets this once, at first touch. It never changes. This answers: how did this contact first find us? Use it for cohort analysis and top-of-funnel channel evaluation.

Lead Source (custom dropdown): This is the property your team controls. It captures the deliberate source of a qualified lead, not just the first click. Values should be controlled and limited: Outbound, Inbound Organic, Paid, Referral, Partner, Event, Other.

Keeping these two separate is the key distinction most teams miss. Original Source is a historical fact. Lead Source is a business classification. They answer different questions and shouldn't be combined.

Setting Up UTM Tracking Correctly

HubSpot auto-captures UTM parameters when someone fills out a form or books a meeting. But the fields they populate depend on your setup.

The correct mapping:

  • utm_source → tracks where traffic came from (google, linkedin, newsletter)
  • utm_medium → tracks the channel type (cpc, organic, email)
  • utm_campaign → tracks the specific campaign name
  • utm_content → tracks ad variant or link (useful for A/B testing)
  • utm_term → tracks keyword for paid search

These should populate your HubSpot UTM properties on every form submission. Check that your tracking code is installed on all pages, including your booking page if you use HubSpot Meetings.

Don't create custom UTM properties. Use HubSpot's native ones. They're already connected to reporting.

The First Touch vs. Last Touch Question

Most HubSpot attribution reports are either first-touch or last-touch. Neither is complete.

First-touch attribution (Original Source) overstates the importance of awareness channels. Last-touch attribution overstates the importance of bottom-of-funnel actions.

For early-stage SaaS teams, a simple approach works better than a complex multi-touch model:

  • Use Original Source for channel investment decisions (where should we spend to grow the top of funnel?)
  • Use Lead Source for pipeline quality analysis (which sources produce deals that actually close?)
  • Build one report that compares Lead Source to Closed Won to show which channels drive revenue, not just leads

This is enough for most teams at Seed to Series B. Multi-touch attribution adds complexity before it adds value at this stage.

The Direct Traffic Problem

"Direct" traffic in HubSpot means HubSpot couldn't identify the source. It doesn't mean someone typed your URL directly.

Sources that show up as Direct:

  • Email links without UTMs
  • Slack or Teams links (most apps strip referrer data)
  • PDF links
  • Secure-to-insecure redirects (HTTPS to HTTP)
  • Safari with ITP enabled

The fix: add UTM parameters to every link you control. Email campaigns, Slack announcements, PDF downloads, LinkedIn bio links. If you placed the link somewhere, add a UTM.

This alone can reduce "Direct" from 40% of traffic to under 15% in most cases.

Building the Attribution Report That Matters

Once your properties are clean, build one report that answers the question leadership actually asks: which channels produce revenue?

Report setup:

  • Object: Deals
  • Filter: Closed Won, this year
  • Breakdown: Lead Source (your custom property)
  • Metrics: Deal Count, Total Amount, Average Deal Size

This shows which sources produced deals and how much they were worth. Run it monthly and compare to the previous quarter.

If you want to add pipeline velocity, add "Average Time to Close" grouped by the same Lead Source property. This shows not just which channels produce revenue, but which produce it fastest.

For a full view of how attribution fits into a broader RevOps setup, read our guides on HubSpot revenue operations and HubSpot implementation. For ongoing strategic support, explore our HubSpot consulting services.