From the November 4th, 2026, edition of How Teams Work
It's the end of the quarter, and your sales leader pulls up the pipeline report.
The question is simple: where did these deals come from?
Everyone assumed HubSpot was tracking that. But a big chunk of the source column says "Offline sources." Some records have nothing in the custom source field at all. Others have source data split across three custom fields, each with different values.
The deals are real. The pipeline is there. But nobody can say which channels generated it.
And that's the report leadership uses to plan next quarter. Another BDR or another demand gen marketer? Back to the trade show next year? More budget into Google or LinkedIn? Without source data you trust, those calls come down to gut feel.
It usually starts with something reasonable.
Your team attends a trade show. Someone says, “We need to track everyone we talk to,” so the leads go on a list and get imported into HubSpot. But after the import, HubSpot lists the source for those contacts as “Offline sources.”
So someone creates a new lead source field and tags everyone from the show.
It solves the immediate problem. The team can now report on trade show leads. But nobody steps back to think about how lead source should be tracked across every channel, not just this one.
Fast forward a year or two, and this is what we tend to find when we open a portal:
Every one of these decisions made sense at the time, but nobody owned the whole thing. No one defined what the business needed from its source data, what the source categories should be, or how new values would get added over time.
So marketing built one version, sales built another, and partners built a third.
What HubSpot tracks, and what it misses
HubSpot does track source out of the box. Every contact gets a Record Source, an Original Traffic Source, and a Latest Traffic Source, each with drill-downs for more detail. HubSpot sets them automatically from your website tracking code and from how each record was created.
Those fields work well for online sources like search, social, email, and paid ads. They don't work as well for offline sources because HubSpot has no web activity to tie them to. Imports, purchased lists, contacts from BDRs, and records created through integrations all land in a catch-all called "Offline sources." And if a rep meets someone at an event, never logs them, and that person later finds you through search and fills out a form, HubSpot credits organic search. The event never shows up.
If you run the portal, it helps to know which tool answers which question. Source tells you where someone came from. Campaigns and events tell you what they interacted with.
Where they came from:
What they interacted with:
This is where campaign reporting gets confusing. HubSpot’s first touch and last touch converting campaign properties only fill in from activity that leads someone to become a contact, like visiting a campaign page and converting on a form. Remember that trade show list? If you add it to a campaign, those contacts count as influenced by the campaign. They won’t show up as new contacts from it.
Attribution reports have the same blind spot. They can only credit what HubSpot tracked.
That gap is usually what pushes teams toward a custom setup.
First, decide: fix the defaults or build your own
This is the first call we make on every lead source project. Five questions decide it:
If you answered yes to several of these, you probably need a custom model.
If most of your leads come in online and you answered mostly no, the defaults can work. Your job is to make the data going into them more reliable. Agree on what counts as a source, set a UTM standard, and put a process around events and imports so offline records come in with a name you can trace back.
If you do go custom, the model doesn’t replace HubSpot’s source properties. It treats them as one input alongside the others: UTMs, imports, sales-sourced leads, partner leads, and leads created in other software. Automation runs each input through the same set of rules and writes the result to one set of source properties, so every team reports from the same place.
Before you pick that path, know what you’re signing up for. A custom model is closer to custom software than a one-time setup. Someone has to maintain it as your channels and reporting needs change. If you don’t have the team or budget to keep it up, the default path is the better fit. But if leadership is asking questions the defaults can’t answer, don’t let the size of the project stop you.
One software company we worked with answered yes to almost every one of those questions.
Marketing, sales, and partners each brought in leads, and between them they had built nine custom source fields. When it came time to report, each team had a different answer.
Marketing’s report showed 65% of leads were marketing-generated. Sales had a property showing 65% were sales-sourced, because it counted anyone who had ever been on one of their import lists. That’s 130% of the leads.
The overlap was real. A rep would meet a contact at an event or over dinner, then go back and change the source to the event or update their own sales properties. Then it turned into a battle over which came first. And the imports weren’t all the same. Some were giant lead lists that nobody ever worked, which shouldn’t give anyone credit. Others were worked, and sales outreach was the first real introduction to the company.
Everybody was analyzing sources their own way, and for their own benefit. There was no shared language across the company. That’s what had to change first.
We started with the source data that was already being captured automatically, then defined a way to capture the sources that weren’t:
Everything ran through one automation in HubSpot that set a single group of custom source properties.
Leadership defined how they wanted to track first source and source at each lifecycle stage. Now they could see where marketing and sales each had an impact: what sourced the lead first, and what moved it forward at each stage.
If you're keeping the defaults, steps 1, 2, 4, and 7 still apply. If you're building a custom model, you need all seven.
Lead source isn’t a project you finish. Like any other process in your business, it needs an owner, and it needs regular review so it keeps up with how your business runs. That owner is usually RevOps or marketing ops, and more and more, we’re seeing those folded into one team.
Your business won’t stay the same. You’ll take on new channels. A channel may grow until it has sub-channels of its own. A new leader may want to see source broken out differently. If nobody adjusts the structure, the data drifts. We’ve seen teams set everything up, leave it alone for six months, and then wonder why the reporting is off.
So check that the output matches what you expect and that the data coming in is consistent. When something in the business changes, update the structure on purpose. Don’t create another property to patch it. That’s how the trade show field started.
A few habits make that easier:
AI helps with two jobs here. The first is setup. Once your structure is defined, AI can create your UTMs, campaigns, and marketing events using your naming convention, and prep import files so the data goes in clean. The second is validation. You can set up agents in HubSpot that run on a schedule, check whether source fields are being filled in consistently, and show which sources have the best win rates.
This sounds like old advice. We think it still works.
We spent years building more technical ways to track source, and now we’re back to asking the customer. Even when their answer isn’t the first source, it’s the reason they remember coming to you.
That makes a “How did you hear about us?” field one of the easiest ways to check whether your source structure is working. Your tracking might say direct traffic, but the person writes in that they met someone at an event two weeks ago, or read one of your blogs. That’s what your tracking never saw.
Keep it as an open text field so people can say exactly what it was. Then use AI to sort those answers into a dropdown property that uses the same categories as your lead source. That turns open answers into something you can report on.
Once a month, compare those answers against what your source properties say. Where they don’t match, you’ll see what your setup is missing.
What does your source report say for your biggest deal this quarter? If the answer is “Offline sources,” I’m happy to talk it through.
Want to get the "How Teams Work" newsletter sent to your inbox? Subscribe Now.