The sources
CRM & revenue systems
Your CRM is where anonymous traffic becomes an identified person, and where a person becomes revenue. It is the closest thing most businesses have to a defensible source of truth for marketing performance.
Everything upstream of the CRM is a proxy. Sessions, clicks and impressions are all attempts to predict something that only becomes real when a person gives you their name and eventually pays you. The CRM is where that transition is recorded, which makes it the most under-used marketing dataset in most businesses.
HubSpot #
HubSpot sets a first-party cookie (hubspotutk) when someone lands on your site. Until they identify themselves, that activity is anonymous. When they submit a form, HubSpot retroactively stitches the prior anonymous browsing history to the new contact record.
So HubSpot does capture pre-form behaviour, contrary to a common misconception — provided it happened on the same browser and device, within the cookie's lifetime.
Original Source #
HubSpot's Original Source property is a first-touch model, and once set it is effectively frozen. This is genuinely useful and frequently misread.
Original Source tells you how someone first found you. It does not tell you what caused them to buy. Those are different questions, and reporting the first as though it answers the second is one of the most common attribution errors in B2B marketing.
Two caveats on “never changes”, both of which catch people out:
- It updates retroactively at the moment HubSpot matches a new contact to prior anonymous activity, backdating to the earliest tracked visit. So it is set-then-frozen, but the freeze happens after the stitch, not at first pageview.
- It can be manually overwritten, and doing so clears the source drill-down and First Referring Site values. That is irreversible in practice, and it is worth restricting who can do it.
What you get at which tier #
Marketing Hub Professional includes first-touch and last-touch source attribution reporting. Enterprise is what adds the U-shaped, W-shaped, linear, time-decay and full-path models, and the deal-level revenue attribution report.
So multi-touch revenue attribution is genuinely Enterprise-only, but Professional is not limited to Original Source alone — a distinction worth knowing before you upgrade.
Best used for
Revenue reporting, lifecycle stage progression, source-to-close analysis, first-touch attribution, sales pipeline performance.
Genuine limitations
Cross-device journeys. Activity before the cookie was set. Offline touchpoints. Any interaction on a domain HubSpot is not tracking.
For contacts created manually, by import, or by a CRM sync, HubSpot cannot attach prior page views at all — not until that contact submits a HubSpot form or clicks a tracked marketing email. If a meaningful share of your contacts arrive by import, your attribution reporting has a large hole in it that nothing in the interface will warn you about.
Salesforce #
Salesforce is a pipeline and revenue system first. It is authoritative on opportunities, stages, forecast and closed-won value, and nothing in this guide should be read as questioning that.
Native multi-touch marketing attribution, however, is not part of core Salesforce. It requires either Marketing Cloud Account Engagement with B2B Marketing Analytics, or a third-party attribution platform layered on top. Without one of those, Salesforce will tell you what closed but not reliably what marketing contributed.
Best used for
Pipeline management, revenue reporting, forecast, sales activity analysis, territory and quota performance.
Not reliable for
Multi-touch attribution without add-ons. Anonymous pre-identification behaviour.
Your financial system #
Xero, Sage, NetSuite or your ERP is the only system that knows what money actually arrived.
CRM closed-won and invoiced revenue routinely diverge, for entirely mundane reasons: deals marked won early, discounts applied at invoicing, cancellations, refunds, payment terms, and the occasional optimistic sales rep.
If you are reporting marketing ROI to a board or a shareholder, the denominator must reconcile to finance. Run that reconciliation quarterly at minimum. A CRM that has drifted 15% from finance will produce marketing ROI figures that cannot survive a single competent question.
Making the CRM your reporting spine #
This is the highest-value structural change most businesses can make to their marketing reporting, and it does not require buying anything.
- Capture source on every record, without exception. Every form, every import, every sync, every manually created contact. A record with no source is a record that cannot be reported on, and imports are where this fails most often.
- Define lifecycle stages and enforce them. Lead, MQL, SQL, opportunity, customer. Write down what qualifies a contact for each stage and make it a rule, not a judgement call. Most CRM reporting problems are actually definition problems.
- Deduplicate. The same person filling in three forms is one lead. If your CRM says otherwise, your cost per lead is wrong by whatever the duplication rate is.
- Push closed-won back to the ad platforms. Google's offline conversion import, Meta's Conversions API, LinkedIn's Conversions API. This is the step that turns the CRM from a reporting destination into a performance input — the algorithms start optimising toward revenue instead of form fills.
- Reconcile to finance quarterly. Diarise it. It takes an afternoon and it is the difference between a marketing number and a defensible one.
The gap between GA4 and the CRM #
You will often be told never to compare these. That is slightly too blunt, and it costs you a useful diagnostic.
You should not expect the numbers to match. You absolutely should compare them directionally. If GA4 records 400 form submissions and HubSpot records 180 contacts for the same period, that gap is telling you something real:
| Possible cause | How to check |
|---|---|
| Duplicate GA4 event firing | Compare GA4 event count against unique users completing it; check for a double tag in GTM |
| Bot submissions | Look at the contact records themselves. Bots are usually obvious once you look. |
| Broken form handler | Submit a test form and follow it end to end. Do this first — it is the fastest to rule out. |
| Deduplication in the CRM | Expected and correct. Repeat submitters legitimately collapse into one contact. |
| Contacts landing somewhere you are not looking | Check lifecycle stage filters and list membership on your report |
| GA4 counting a partial submission | Verify your event fires on success, not on button click |
Reconcile directionally. Investigate large or widening gaps. Never present either number as the other.
Common questions #
Should marketing ROI use CRM revenue or finance revenue?
Use the CRM for the analysis, because it holds the source attribution, and reconcile the total against finance so you know the size of any drift. If the two are within a few percent, report CRM revenue and note the reconciliation. If they diverge materially, fix that before publishing any ROI figure — the gap will be found by someone else at the worst possible moment.
First-touch or last-touch for CRM attribution?
Both, reported side by side, because they answer different questions. First touch tells you what fills the top of the funnel and deserves awareness budget. Last touch tells you what closes and deserves conversion budget. Reporting only one systematically starves the other half of your marketing. If you must choose one for a long sales cycle, first touch is generally more useful, because last touch in B2B is almost always a branded search or a direct visit.
What if we do not have a real CRM?
A spreadsheet with date, name, source and value, updated consistently, beats an expensive CRM nobody maintains. The discipline matters more than the software. The one thing you cannot skip is recording the source at the moment of capture — it is impossible to reconstruct later.