TL;DR
  • A lead source taxonomy is a controlled list of values for classifying where leads come from, enforced as a picklist instead of free text.
  • Three levels do the work: type (inbound, outbound, partner, event), channel (paid search, organic social, cold email), and campaign (the specific ad set or event).
  • Free text is where attribution breaks. Five reps will record the same deal five different ways, and the report becomes fiction.
  • Keep it to 10 to 15 channel values. Fewer and you are blind; more and the data fragments.
  • Build yours in two minutes with the free taxonomy builder, then enforce it as a picklist in your CRM.

Why lead source classification breaks

Ask five people where a deal came from and you will get five answers: inbound, referral, the webinar, outbound, and “not sure, it was already in the CRM”. None of them are lying. They are all using their own private taxonomy, and the report that rolls those answers up is fiction wearing a chart.

The failure shows up the same way in almost every CRM:

Free-text fields

Anyone can type anything. “LinkedIn”, “linkedin ad”, “Li DM” and “Sales Nav” all mean different things in the report, and every new hire adds a new spelling.

Channel and campaign collapsed into one value

“Paid” tells you nothing about which ad, which offer, or which audience produced the lead. The budget decision needs the layer underneath.

No hierarchy

The owner wants inbound vs outbound. Marketing wants paid search vs organic. Both are right, but only if the values roll up cleanly, and free text never rolls up.

First touch vs last touch confusion

Marketing credits the ad that created the lead; sales credits the call that reopened it six months later. Without an agreed policy, both get recorded and neither is trusted.

The framework: three levels, one source of truth

A durable taxonomy separates three questions into three fields. Each field has a controlled list of values, none of them overlap, and every lead gets a value in all three.

Level 1: Lead source type

How did this lead enter the funnel? Values: Inbound, Outbound, Partner, Event, Customer expansion. Five values, no more. This is the level the owner looks at.

Level 2: Lead source channel

The specific mechanism inside the type. Inbound splits into organic search, paid search, paid social, organic social, direct, email, and web referral. Outbound splits into cold email, cold call, and outreach sequences. This is the level budget decisions are made at.

Level 3: Campaign

The named initiative that produced the lead: the specific ad campaign, webinar, or event. “Local Services Sydney”, not “Google Ads”. This is where ROI analysis actually lives.

The test of a good taxonomy is that a lead from Dana Okafor clicking a Google ad gets recorded as Inbound (type), Paid search (channel), Local Services Sydney (campaign), by every person on the team, every time, without anyone deciding anything in the moment.

TYPEInbound
CHANNELPaid search
CAMPAIGNLocal Services Sydney

Dana Okafor clicks a Google ad. Every person on the team records it the same way, every time, without deciding anything in the moment.

The reference taxonomy

Use this as a starting point and cut what you do not use. Enforce it as a picklist. The fastest way to ruin a taxonomy is to leave the field as free text and hope.

These fourteen channel values are the predefined categories a CRM picklist holds:

  • Organic search
  • Paid search
  • Paid social
  • Organic social
  • Email
  • Web referral
  • Direct
  • Cold email
  • Cold call
  • Referral partner
  • Affiliate
  • Trade show or conference
  • Webinar
  • Customer referral

The framework below shows how each one nests under a type and carries a campaign value.

TypeChannelExample campaign value
InboundOrganic search(page or keyword theme)
InboundPaid searchGoogle Ads campaign name
InboundPaid socialLinkedIn Ads campaign name
InboundOrganic socialPost or profile
InboundEmailNewsletter or sequence name
InboundWeb referralReferring site
InboundDirect(none, unattributed)
OutboundCold emailSequence name
OutboundCold callList name
PartnerReferral partnerPartner name
PartnerAffiliateAffiliate code
EventTrade show or conferenceEvent name
EventWebinarWebinar name
Customer expansionCustomer referralReferring customer
Rule 1

Retire “Other”. It is where honesty goes to die, and within a quarter it will be your biggest category. Unmapped values get “Needs review”, which is a workflow state someone has to clear, not a resting place.

Rule 2

Add new channels deliberately. When a podcast sponsorship or an AI assistant referral shows up, agree the value first rather than letting whoever saw it first invent a name.

Lead source normalization: mapping messy values to categories

Abstract illustration: a funnel separating mixed shapes into clean, sorted output.

Normalization is the process of mapping the values you already have onto the taxonomy. Most businesses do not start from zero. They start from a CRM field containing years of free text: dozens of variations of “Website”, “web”, “www”, “site enquiry” and “form” that are all the same thing wearing different hats.

The fix is a mapping pass, not a deletion pass. Export the distinct values, map each one to a value in your new taxonomy, apply the mapping, and only then convert the field to a picklist. Deleting history instead of mapping it breaks every trend report on the day you launch.

Messy valueMaps to
Website, web, www, site, online formInbound / Direct (or the real channel if known)
Google, google ads, adwords, ppc, semInbound / Paid search
LinkedIn, linkedin ad, Li DM, socialSplit: ads to Paid social, posts and DMs to Organic social
Referral, word of mouth, WOM, friendPartner / Referral partner, or Customer expansion / Customer referral
Trade show, expo, conference, eventEvent / Trade show or conference
Cold call, outbound, SDR, prospectingOutbound / Cold email or Cold call

The full walkthrough of this cleanup, including how to do it in HubSpot and Salesforce without breaking historical reports, is in lead source normalization.

Build your taxonomy in two minutes

Rather than starting in a blank spreadsheet, use the free lead source taxonomy builder. Tick the channels your business actually uses, and it generates your picklist values plus a CSV formatted for HubSpot or Salesforce import.

Rolling it out without breaking your reports

Five steps, in order:

  1. Agree the values once. Whoever records leads has to sign off on the same list, because if one person dissents the data diverges again within a quarter.
  2. Map the historical values before converting the field. Otherwise every trend report breaks the day you launch.
  3. Convert the field to a picklist. No free text survives contact with a busy Tuesday.
  4. Automate what can be automated. UTM parameters map to channel. A form submission with a gclid is Paid search without anyone typing anything. Manual entry is where taxonomies quietly fail, so reserve it for the sources that genuinely have no digital trail.
  5. Review quarterly. New channels appear; add them deliberately.

The automation step is the one most businesses skip, and it is the one that decides whether the taxonomy survives. Capturing the real source at the moment a form is submitted, and writing it into the CRM in your agreed values, is exactly what lead source tracking does.

Applying it in your CRM

The mechanics differ by CRM, and each one has its own trap. HubSpot’s source properties will overwrite each other across sessions unless you know which property to trust; the detail is on HubSpot lead source tracking. Salesforce ships a picklist with no automatic detection, so the taxonomy is only as good as what your forms write into it; see Salesforce lead source tracking. For how the field behaves across the rest of the market, see CRM lead source tracking.