RevOps + HubSpot 9 min read

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.

Sales & Solution Specialist

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.

Only a contact HubSpot saw arrive on your site gets a channel. Every other way in is filed as Offline Sources.
How a contact gets its original source in HubSpotFive ways a contact is created. A tracked website visit or a form HubSpot can read gets a tracked channel such as Organic search, Direct or AI Referrals. An import, a rep creating the contact by hand, a connected app or the API, and an email logged from Gmail or Outlook through the sales extension all become Offline Sources, which is set once and kept for life.Tracked visit or readable formRecord source: FormsSpreadsheet importRecord source: ImportRep creates it by handRecord source: CRM UIConnected app or the APIRecord source: IntegrationLogged from Gmail or OutlookRecord source: Sales ExtensionA tracked channelOrganic search, Direct,AI Referrals and othersOffline SourcesSet once, kept for lifeDrill-downs name the import,user or app

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 shownWhat it usually meansThe fix
Offline Sources, record source CRM UIA rep or admin created the contact by hand, often a referral, phone enquiry or someone met at an eventA rule for reps: fill in "Lead source detail" on every manual create, and check whether the contact already exists first
Offline Sources, record source IntegrationA connected app created the contact: booking tool, ecommerce store, phone system, quoting toolPut 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 ImportA spreadsheet upload: event list, old CRM, partner listAdd a "Lead source detail" column to every import file so the reason travels with the record
Offline Sources, record source Sales ExtensionA rep logged an email from Gmail or Outlook to someone not yet in HubSpotThe same rep rule as manual creates
Direct trafficHubSpot saw the visit but had no indication of where it came from, such as a typed URL or a link with its parameters strippedUTMs on every link you control: email signatures, PDFs, social bios, QR codes
Other campaignsVisits from links carrying a utm_campaign value, usually tracking URLs made in HubSpot, filed by campaign name and not by channelOne UTM naming sheet everyone uses, and ad accounts connected so HubSpot applies its own
AI ReferralsThe visitor clicked through from ChatGPT, Claude, Perplexity, Copilot, Gemini and similar assistantsNothing 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:

ReportQuestion it answersTier
Contact create attributionWhich channels, pages and campaigns create new contactsMarketing Hub Professional or Enterprise
Deal create attributionWhich interactions led to deals being createdMarketing Hub Enterprise only
Revenue attributionWhich interactions led to closed won revenueMarketing 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


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.

Neighbourhood

Neighbourhood is a HubSpot Diamond Partner in Brisbane. We build AI systems and the revenue operations they run on, for businesses across Australia and New Zealand.