What lead source attribution means

Lead source attribution, often shortened to lead attribution, is the practice of assigning each lead, and ideally each customer, to the marketing that produced it. Done properly it tells you not just that a form was filled in, but which campaign, channel, and page brought the person who became a paying customer.

It is worth separating from web-analytics attribution, because they answer different questions. Analytics attributes sessions: it groups anonymous traffic so you can see patterns across thousands of visits. Lead source attribution attributes people: it connects a named lead to the campaign behind them and follows that link into whether they bought. Analytics tells you Tuesday had more visitors from paid search. Attribution tells you the $30,000 client came from the Local Services Sydney ad. One informs a traffic report; the other informs a budget.

Abstract illustration: several distinct coloured channels flowing in parallel.

Why “last touch” lies

Most default attribution credits the last channel that touched the visitor before they converted. It is the easiest to compute and the most misleading, because the last touch is so often “Direct”, and Direct is usually a lie of omission.

Direct is what gets recorded when the system cannot see where someone came from. And systems cannot see far more often than they admit. In a controlled experiment, SparkToro drove real visits across eleven platforms using uniquely tagged links, so the true source was always known. Analytics still logged 100% of the visits from TikTok, Slack, Discord, WhatsApp, and Mastodon, and 75% of Facebook Messenger visits, as Direct (SparkToro, 2023). Those visitors did not type your URL from memory. The source was simply invisible, so it was filed under Direct, and last-touch attribution then handed the credit to nothing.

Abstract illustration: records spilling out of a drawer, filed under the wrong label.

The technical reasons are documented by the people who build the browsers. Mozilla’s MDN documentation on Referrer-Policy describes when the referrer is trimmed or dropped on cross-site clicks. Apple’s own WebKit documentation explains that Safari’s tracking prevention restricts cross-site state, and Intelligent Tracking Prevention 2.3 shortened how long client-side values persist. And Google’s analytics documentation notes that missing campaign parameters show up as (not set). Build attribution on the last touch and you are building on the one signal most likely to have already evaporated.

First touch versus the full journey

If last touch over-credits Direct, first touch over-credits whatever was captured on arrival and ignores everything after. The honest picture is the journey: the campaign that first brought someone, the pages they read while deciding, and the form they finally filled. Seeing that whole path for a single lead, the source, the ordered pages, and the form, is its own view: the full journey to every lead.

Last touch

Credits the final source before conversion. Cheap to compute, and routinely wrong, because that final source is so often an unseen Direct.

First touch

Credits the source that first brought the visitor. Closer to the truth for lead source, but blind to the campaigns that nurtured the decision.

Full journey

Keeps the real first source plus the path through your site. The version that lets you fund what starts customers and what closes them.

For lead source specifically, first touch captured accurately is the workhorse: it answers “which marketing brought this customer in.” The journey adds the context that makes the reply, and the budget call, smarter.

The trap is arguing about attribution models while the underlying data is broken. A perfectly weighted multi-touch model built on sources that are half “Direct” is a precise calculation on garbage. Before you choose between first touch, last touch, or anything fancier, make sure the source is captured accurately in the first place. The model is a rounding decision; the capture is the data. Get the capture right and even a simple first-touch view beats an elaborate model fed on guesses. The progression from no tracking to a full multi-touch view is worth seeing as stages, which is what the attribution maturity model lays out.

How attribution breaks in your CRM

The instinct is to trust the lead source field in the CRM. The problem is structural, not a setting you forgot to flip.

HubSpot keeps an Original Source and a Latest Source, and many reports default to Latest. So a lead who first arrived from a Google ad, then returned weeks later by typing the URL, is recorded as Direct, and the campaign that actually produced them is overwritten. The first-touch value exists but the report you look at quietly prefers the last one. (We cover the fix in detail on tracking lead source in HubSpot.)

Salesforce treats Lead Source as a manual picklist your admin defines, with no automatic web detection: no cookies, no UTM parsing, no referrer analysis. With Web-to-Lead forms the field stays blank unless a developer hard-codes a value, so in practice it is empty or set to one generic “Web” for every online lead. The CRM is not lying; it was never built to see the source in the first place.

The pattern is the same across tools: when they cannot see where a visitor came from, they fall back to Direct, Web, or blank. That is why accurate attribution has to capture the source independently, at the moment of submission, and write it back, rather than trust a field that structurally cannot know.

The tell is when your CRM’s source breakdown does not match reality you can check. You know you spent $4,000 on Google Ads last month and the campaign reported plenty of clicks, but the CRM shows three leads from “Paid Search” and forty from “Direct.” Those forty did not teleport in. They are paid clicks whose source was lost somewhere between the ad and the form, then filed under the catch-all. Until the capture is fixed, no amount of report configuration recovers them, because the data was never written down in the first place.

What good attribution looks like

Good lead attribution is campaign-level, customer-weighted, and captured first-party at submission. Campaign-level, because “Paid search” is not a budget decision; “Local Services Sydney” is. Customer-weighted, because a channel that sends ten cheap leads and no customers is worse than one that sends two leads and a client. And captured first-party at submission, because that is the only method that survives the referrer stripping, ITP, and UTM loss above.

Accurate attribution matters more, not less, in a market where a lot of ad spend is wasted on its own terms. System1’s research on advertising effectiveness found that “feeling nothing” is the most common response to ads, around 52% in the UK and 47% in the US across all TV advertising and worse for B2B, and that B2B uniquely under-funds its least-dull, most-effective work (System1, “The Extraordinary Cost of Dull”). If a chunk of spend is working that hard against itself, knowing which campaigns actually produce customers is the difference between cutting the dead weight and funding it for another year.

Good attribution is also legible to a non-specialist. The test is whether the owner, not just the analyst, can look at the report and make a call: this campaign produces customers at a sane cost, that one produces noise, move the money. If the report needs a footnote explaining why a third of the leads are “Direct,” it is not finished. Campaign-level sources, captured first-party at submission and weighted by who actually became a customer, give you a report you can act on without a translator. That is the whole point: attribution exists to make a budget decision obvious, not to produce a dashboard that impresses and decides nothing.

That is the job: capture the real source, keep it attached, read the report by customer value. For the how, see how to track lead sources and the full list of lead source types; for the foundation, the pillar on what a lead source is; and for the mechanism in the product, how Lead Source works.