Skip to content
English
  • There are no suggestions because the search field is empty.

How do you track lead source in a CRM?

Capture source at record creation, keep first and last touch, and never overwrite it.

Stamp the source onto the record the moment it is created, keep first touch and last touch in two separate fields, and lock the first touch field so nothing can overwrite it later.

Almost every broken attribution report we inherit fails on that last point. The data was captured correctly and then a workflow, an import or a well meaning sales rep wrote over it.

Two fields, not one

HubSpot does this by default. Per HubSpot's own traffic source documentation, Original Traffic Source records the first known web source a contact came through and does not update afterward, while Latest Traffic Source updates with every new interaction. Each has drill-down properties that HubSpot sets automatically and that cannot be edited by hand, which is exactly the behavior you want. If your CRM does not ship this, build it: one first touch field, one most recent field, and a rule that the first one is written once.

Getting the data onto the record

  • Hidden fields on every form, populated from the query string, so your UTM values land on the contact.
  • A first party cookie so those values survive a visitor reading three pages before they convert.
  • The Google click identifier stored as its own field, because that is what you need later to push closed deals back to Google Ads.
  • Call tracking and chat wired into the same fields, so a phone lead is not a blank.

Self-reported source is a different question

A free text "How did you hear about us" box filled in by a rep degrades within a quarter into Google, google, internet, web and googled us. Use a closed dropdown for self-reported source and keep it separate from the tracked source. Both are useful. They answer different questions, and averaging them answers neither.

Protect it

Set three rules and enforce them: source properties are set on creation only, imports never map to them, and sales cannot edit them. We build that into every HubSpot implementation and it is a standard item in our analytics work.

Related: What is multi-channel attribution and which model should you use?, Can you migrate my data from another CRM to HubSpot?, WhatConverts Review