Why HubSpot says Offline Sources, and how to fix it
Offline Sources means HubSpot never saw the contact arrive. Fix the capture first: most of it needs no upgrade.
Offline Sources is HubSpot's catch-all. It means HubSpot could not tie the contact to a tracked visit to your website, because the record was created some other way: imported from a spreadsheet, typed in by a rep, pushed in by a connected app or the API, or added from the sales extension in Gmail or Outlook. It says nothing about whether the lead came from an ad, a referral or a trade show. It only says HubSpot did not see them arrive.
You do not need Marketing Hub Enterprise to fix that. Most of the fix is capture: UTMs on every ad and link, the HubSpot tracking code on every page including your booking and form pages, forms HubSpot can read, a required "How did you hear about us?" field, and a rule for reps who create contacts by hand. All of that works on the tier you already have.
Enterprise earns its place later, once the capture is clean. Marketing Hub Professional gives you contact create attribution. Deal create and revenue attribution reports, the ones that put dollars against each channel, are Marketing Hub Enterprise only. If half your deals say Offline Sources today, those reports would mostly tell you that half your revenue came from Offline Sources.
Why half our deals say Offline Sources
We have heard a version of this on six recent discovery calls. One business told us "60% of traffic" in their portal was unknown. An organisation spending about $700,000 a year on ads was reporting on last touch only, and described planning next year's spend as "building future activity on quicksand". Several asked the same question you are asking: do we need Enterprise for this?
In every case the cause sat upstream of the reports: HubSpot sets a contact's original source once, from the first thing it knows about them. If the first thing it knows is that a rep created the record after a phone call, that contact is Offline Sources for life, even if they first found you through a Google ad three weeks earlier on a device HubSpot never connected to them.
The usual culprits are referrals a rep adds by hand after a phone call, booking and form tools HubSpot cannot see, event and legacy imports, and connected apps such as ecommerce stores and phone systems that create contacts themselves.
Source: HubSpot Knowledge Base, traffic sources, default contact properties and change sources.
How do you find out which offline source it actually was?
Original Traffic Source is only the top level. Two other sets of properties tell you more, and they are already on every contact:
- Original Traffic Source drill-down 1 and drill-down 2. HubSpot sets these automatically and you cannot edit them. For offline contacts they usually show the type of creation (an import, a manual entry, an integration) and then the specific import name, user or app.
- Record source, and Record source detail 1, 2 and 3. HubSpot's description is "how the contact was created". Values include CRM UI (a person in HubSpot), Import, Integration, Sales Extension and Forms, and the detail fields name the person or app.
Build one contact report: count of contacts created in the last 12 months, filtered to Original Traffic Source is Offline Sources, broken down by Record source and then Record source detail 1. In ten minutes you will know whether your problem is reps, imports or one particular app, and that decides which fix comes first.
If you then want to tidy the drill-down values into one clean property for reporting, our guide to fixing messy source data in HubSpot reports walks through the workflow. This post is about stopping new contacts landing there in the first place.
What each source usually means, and the fix
| Source shown | What it usually means | The fix |
|---|---|---|
| Offline Sources, record source CRM UI | A rep or admin created the contact by hand, often a referral, phone enquiry or someone met at an event | A rule for reps: fill in "Lead source detail" on every manual create, and check whether the contact already exists first |
| Offline Sources, record source Integration | A connected app created the contact: booking tool, ecommerce store, phone system, quoting tool | Put the tracking code on the page that hosts the tool, or move the form to a HubSpot form; have the app write its own source into a custom property |
| Offline Sources, record source Import | A spreadsheet upload: event list, old CRM, partner list | Add a "Lead source detail" column to every import file so the reason travels with the record |
| Offline Sources, record source Sales Extension | A rep logged an email from Gmail or Outlook to someone not yet in HubSpot | The same rep rule as manual creates |
| Direct traffic | HubSpot saw the visit but had no indication of where it came from, such as a typed URL or a link with its parameters stripped | UTMs on every link you control: email signatures, PDFs, social bios, QR codes |
| Other campaigns | Visits from links carrying a utm_campaign value, usually tracking URLs made in HubSpot, filed by campaign name and not by channel | One UTM naming sheet everyone uses, and ad accounts connected so HubSpot applies its own |
| AI Referrals | The visitor clicked through from ChatGPT, Claude, Perplexity, Copilot, Gemini and similar assistants | Nothing to fix. Watch it, because it is rising |
How much of your pipeline is sitting in Offline Sources?
We can run the record source breakdown with you and tell you which fix to start with.
The fixes that need no upgrade
Every item below works on your current subscription, roughly in the order we do them.
- Tracking code on every page. It is automatic on HubSpot-hosted pages and has to be installed on everything else, including the booking page, the quote request page and any landing page an agency built. A form on a page without it is invisible to source tracking.
- Forms HubSpot can read. Native HubSpot forms are the cleanest. If you have to keep your website's own forms, HubSpot's non-HubSpot forms feature can collect them on every plan, provided the tracking code is on the page and the form is not inside an iframe, is not added after the page loads, and does not rely on JavaScript to submit.
- Connect Google Ads and Meta. Connecting an ad account to HubSpot lets you turn on auto-tracking, which applies UTM parameters to supported ad types for you. That is available on all plans, and it is the single biggest fix for paid traffic landing in Direct or Other campaigns.
- UTMs on every link you control. One shared sheet of agreed source, medium and campaign values, used on signatures, PDFs, QR codes and partner newsletters.
- A required "How did you hear about us?" field. A dropdown, with options that match your real channels plus "Referral" and "Other". This is the only way to capture word of mouth, podcasts and events, which no tracking code will ever see.
- A "Lead source detail" custom property. A dropdown property that reps, imports and integrations all write to. It sits next to Original Traffic Source and holds the reason a person can give.
- Rules for reps. Search before creating. When creating, fill in Lead source detail and, for a referral, who referred them. Make the field required on the create form so it cannot be skipped.
- Call tracking. If phone enquiries matter, use a call tracking app that writes the caller's source into HubSpot. Otherwise every phone lead is a manual create.
Give it a full quarter. Original source does not change for contacts already in the database, so the improvement shows up in new contacts first.
What Marketing Hub Professional and Enterprise actually give you
We checked HubSpot's knowledge base on 16 October 2026. Attribution reporting needs Marketing Hub (or Content Hub) Professional or Enterprise, and the split looks like this:
| Report | Question it answers | Tier |
|---|---|---|
| Contact create attribution | Which channels, pages and campaigns create new contacts | Marketing Hub Professional or Enterprise |
| Deal create attribution | Which interactions led to deals being created | Marketing Hub Enterprise only |
| Revenue attribution | Which interactions led to closed won revenue | Marketing Hub Enterprise only |
Within those reports HubSpot offers several models: first interaction, last interaction, linear, U-shaped, J-shaped, inverse J-shaped and time decay. The W-shaped model needs a deal, so it appears only in deal create and revenue attribution, and the full path model appears only in revenue attribution.
So Professional answers "where are our leads coming from" with multi-touch credit. What it cannot do is put revenue against a channel inside HubSpot's attribution tool.
When is Enterprise worth it for attribution?
This part is our view. HubSpot does not publish a threshold and there is no right number.
Enterprise starts to pay for itself on attribution when all of these are true:
- You spend somewhere north of $300,000 a year on paid media across more than one channel, so moving 10% of it to the right place is worth real money.
- Deals take weeks or months and involve several people, so first touch and last touch genuinely give different answers.
- Offline Sources is already under about 15% of new contacts, so the reports have something to work with.
- Someone owns the reports and will change the budget because of them.
The organisation spending $700,000 a year on last touch reporting clears the spend test easily. It would still get poor value from Enterprise reporting until the capture fixes are in, because revenue attribution on dirty source data is just a more expensive way of being unsure. Fix the capture first, then decide with a quarter of clean data. Our guide to building the business case for a HubSpot upgrade covers how to put that decision to your CFO.
AI assistants are a new source, and they are rising
HubSpot now reports AI Referrals as its own traffic source, covering ChatGPT, Claude, Perplexity, Microsoft Copilot, Google Gemini, Meta AI and others. Ordinary Google and Bing searches stay in Organic search; only the AI-specific domains count. For most businesses it is still a small slice, and it is rising.
Two catches. Many people read an AI answer, then search for you, so they land in Organic or Direct. And when someone tells a rep "ChatGPT recommended you", that only gets recorded if your "How did you hear about us?" field has an option for it. Add one. Our guide to checking whether AI assistants are citing you covers the measurement side.
Frequently asked questions
What does Offline Sources mean in HubSpot? It is HubSpot's catch-all original source for contacts it cannot tie to a tracked website visit. It covers records created by import, by a person in the CRM, by a connected app or the API, and through the sales extension.
Can I change a contact's original source from Offline Sources? You can manually change the Original Traffic Source value to another option, but HubSpot sets the two drill-down properties automatically and they cannot be edited. Most teams leave the original source alone and add a custom "Lead source detail" property instead.
Do I need Marketing Hub Enterprise for attribution reporting? Not for contact create attribution, which is in Marketing Hub Professional. Deal create attribution and revenue attribution reports are Marketing Hub Enterprise only.
Why do referrals show as Offline Sources? Because the referred person usually phones or emails someone, and a rep creates the contact by hand in HubSpot. Manual creation is an offline source, so the referral reason has to be recorded in a property of its own.
How does HubSpot track traffic from ChatGPT and Perplexity? HubSpot reports visits from AI assistant domains under the AI Referrals source. Visitors who read an AI answer and then search for you or type your address arrive as Organic search or Direct traffic instead.
Sources
- Understand HubSpot's traffic sources in the web traffic analysis tool, HubSpot Knowledge Base, for the definitions of Offline sources, Direct traffic, Other campaigns and AI Referrals.
- HubSpot's default contact properties, HubSpot Knowledge Base, for Original Traffic Source, the drill-down properties, Record source and what can be edited.
- HubSpot's change sources, HubSpot Knowledge Base, for the Record source values such as CRM UI, Import, Integration and Sales Extension.
- Understand attribution report definitions, HubSpot Knowledge Base, for report tiers, models and Sales interactions.
- Create attribution reports, HubSpot Knowledge Base, for the Enterprise-only deal and revenue reports.
- Install the HubSpot tracking code, HubSpot Knowledge Base, for where the code is automatic and where it must be installed.
- Use non-HubSpot forms, HubSpot Knowledge Base, for availability and the form conditions.
- Track and report on Google Ads in HubSpot, HubSpot Knowledge Base, for auto-tracking with UTM parameters.
Want your source data sorted before you decide on an upgrade? See our RevOps and HubSpot work, or talk to us.
Not sure whether it is a capture problem or a tier problem?
Bring your portal and we will find out where your Offline Sources contacts are coming from.