HubSpot integration

Lead source in HubSpot.

HubSpot says “Paid Search.” Lead source tracking names the campaign, the entry page and the route, on every HubSpot form.

Works with all HubSpot form types No workflows or Operations Hub required Free to start · no card
Salesforce
HubSpot
Pipedrive
Gmail
Twilio
Google Ads
Gravity Forms
Jotform
Webflow
Wix
Calendly
Typeform
Where HubSpot loses the source

Why HubSpot’s Lead Source field is often wrong, and how to fix it

HubSpot has two source properties. Original Source records a contact’s earliest tracked visit; Latest Source is overwritten on every new session. Many reports default to Latest Source, so a lead who first arrived from Paid Search but later returns via a bookmark is recorded as Direct, and the original source is lost.

HubSpot files a visit as Direct whenever it cannot see where it came from. Per HubSpot’s own documentation, that happens when:

HubSpot says
Original Source: Direct
Lead Source says
Google Ads · Local Services Sydney · /managed-it
  • the referring site uses HTTPS but yours does not, so the referrer is dropped;
  • Safari on iOS 18.7+ strips utm_source, utm_medium and gclid from the URL before HubSpot’s script can read them;
  • a visitor declines the cookie banner, or the form sits on a page without the HubSpot tracking code;
  • the click came from an app, message, or email that carried no referrer.

So some of your “Paid Search” and “Organic” contacts end up filed under Direct, and the HubSpot reports give less credit to the channels doing the work.

What Lead Source does about it: it records the source, the campaign and each page viewed every time a HubSpot form is sent. The contact shows up by name in Lead Source with the source HubSpot missed. Original Source and Latest Source stay as they were, since Lead Source writes nothing back.

Why lead sources get mislabelled in the first place →

Works with every HubSpot form type.

HubSpot forms, pop-ups, embedded forms and standalone landing pages are all captured, on any HubSpot tier. Nothing to configure inside HubSpot. No Operations Hub, no workflows.

Original Source knows the bucket, not the campaign

HubSpot sorts contacts into Original Source buckets. Form tracking records the exact campaign and page as the HubSpot form is sent. Running more than HubSpot? All the lead source integrations sit on one page.

See CRM lead source →
The HubSpot Original Source problem

Nine HubSpot buckets. Your whole marketing budget.

HubSpot’s built-in Original Source is a high-level bucket. It’s the right answer for “how did this contact first find us, in general?” It’s the wrong answer for “which of my Google Ads campaigns produced this customer?”

What HubSpot Original Source shows
What Lead Source shows
Paid Search
Google Ads · Local Services Sydney · managed-it-sydney-exact
Organic Search
Google · landed /managed-it · read /pricing next
Social Media
LinkedIn · Sponsored Post: 5 ways to cut IT costs
Direct Traffic
Direct · landed /pricing · full page journey captured
Email Marketing
Email · April newsletter · cta: book a call

Original Source gives the category. Lead Source gives the campaign, keyword or post that brought the customer in, and a budget gets decided at that level. For the property itself, see what HubSpot Original Source is, and to read its sub-properties, the Original Source drill-down.

What changes

Every HubSpot form, with the campaign named.

  1. 01
    The source HubSpot missed. Every HubSpot form, pop-up and embed is recorded with the real source and campaign, including the visits HubSpot files under Direct.
  2. 02
    The contact, by name. Each submission appears in Lead Source as a person, next to the page they landed on and every page they opened before the form.
  3. 03
    HubSpot left as it was. Original Source and Latest Source keep their values. Lead Source writes nothing into HubSpot by itself.
  4. 04
    The source on the contact. Send it on to HubSpot and it lands on the contact, so your HubSpot reports can finally group deals by campaign.
Lead Source lead record showing the real source, page journey, and contact details for a named lead
The snippet

One line, before the closing </head>.

Done in five minutes.

<script async src="https://app.leadsource.co/ft.js" data-site="YOUR_SITE_KEY"></script>

The header tag is all there is to install. It spots HubSpot forms, pop-ups and embeds on the page unaided, and any you build in HubSpot next month.

Three-step install
01

Add the tag to your HubSpot site header

On a site built in HubSpot CMS, the tag goes in Settings › Website › Pages › Site Header HTML once. Anywhere else, put it ahead of </head> on each page with a HubSpot form.

02

Send a test HubSpot form

Open one of your form pages from a campaign link and fill in the HubSpot form as a prospect would.

03

Find the test contact

It turns up on your dashboard within seconds, under the name you typed, with the campaign beside it.

Common questions

HubSpot questions, answered.

Straight answers on the property, the schema, and what happens to Original Source.

Doesn't HubSpot already track lead source?

HubSpot tracks Original Source. A high-level bucket like "Paid Search" or "Direct Traffic." Useful for general reporting. Not useful for deciding whether to keep funding a specific Google Ads campaign. Lead Source adds the source-level detail HubSpot doesn't capture by default.

Will this overwrite HubSpot's Original Source field?

No. Lead Source never writes to HubSpot by itself, so nothing of yours can be overwritten. Original Source stays exactly as HubSpot recorded it, and the real source lives alongside it in your Lead Source dashboard.

Do I need Operations Hub or Marketing Hub Professional?

No. Capture happens on your website, not inside HubSpot, so it works the same on Free, Starter, Professional and Enterprise. No workflows, no data sync, no paid tier.

Can I get the source into a HubSpot property?

Yes. The source lands on the HubSpot contact, on the property you choose, so HubSpot reports can group contacts and deals by the campaign that produced them.

Does the source survive contact merges and lifecycle changes?

Yes, because it does not live in HubSpot. The lead record sits in Lead Source, so merges, lifecycle changes and rep edits on the HubSpot side cannot touch it.

See your real HubSpot lead sources.

Free. Five-minute install. No credit card.

Start free

Free to start ยท no card