Naveed Abbas profile photo
Naveed Abbas
CRM Administrator
HubSpot Admin · Module 12 · Final Module

Attribution &
Revenue Source Tracking

The budget accountability layer — connecting marketing spend to revenue outcome. Which channels bring people in, which convert them, and how much revenue each one drives.

6 attribution models 8 source types UTM parameters Revenue data chain 3 case studies Final module
Foundation · 01
What Is Attribution?

Tracking which marketing interactions contributed to a contact becoming a customer — and connecting those interactions to the revenue they generated.

Core definition

Attribution is the practice of assigning credit for a customer conversion to the marketing interactions that preceded it. A contact might find you through Google, read three blog posts, click a LinkedIn ad, download an ebook, and then fill out a demo form. Attribution answers: which of those touchpoints deserves credit for that customer? And more importantly: how much closed revenue can be traced to each marketing channel, campaign, and asset?

The failure modes attribution prevents

Without attributionWith attributionBusiness impact
Budget allocated by lead volumeBudget allocated by revenue generated per channelCuts channels that look good but convert poorly
High-volume channels scaled regardless of qualityHigh-converting channels scaled based on revenue ROIMore revenue from same marketing spend
"Which campaign worked?" unanswerableSpecific campaign → customer → revenue path visibleRepeatable campaign success
Content and SEO investment unjustifiableOrganic content's downstream revenue impact quantifiedProtects high-ROI content investment from budget cuts
Marketing/Sales argue about lead qualityShared data shows source → conversion rate → revenueData-driven alignment replaces opinion-based conflict
Foundation · 02
Attribution Vocabulary
TermWhat it meansWhere in HubSpot
Original SourceThe very first way HubSpot identified how a contact found you. Set once, never automatically changes.Contact property — "Original Source"
Original Source Drill-Down 1 & 2Sub-properties providing more detail. If Original Source = Paid Search, Drill-Down 1 = Google, Drill-Down 2 = campaign name.Contact properties — auto-populated
Latest SourceThe most recent source of contact activity. Updates continuously with every new marketing interaction.Contact property — "Latest Source"
TouchpointAny recorded interaction: page view, email open/click, form submission, meeting booked, ad click.Contact activity timeline
Attribution modelThe rule for distributing credit across touchpoints. First touch, Last touch, Linear, Time decay, U-shaped, Full path.Attribution report settings
UTM parametersTags appended to URLs that tell HubSpot exactly where a visitor came from — beyond what HubSpot can infer automatically.UTM properties on Contact record
Revenue attributionConnecting a specific deal's closed-won revenue to the marketing touchpoints on the associated customer contact.Multi-object reports joining Contacts + Deals
Multi-touch attributionAny model that distributes credit across more than one touchpoint — acknowledging that conversion is rarely one interaction.U-shaped, Full path, Linear, Time decay models
Original source is permanent

Original Source is set the first time HubSpot identifies a contact — and it never automatically updates, even if the contact later arrives via a different channel. If you import a contact with the wrong source, that wrong source is permanently attached unless you manually correct it. This is why getting source data right at the point of contact creation matters so much. A bad import without proper source tagging permanently pollutes your attribution data.

Foundation · 03
The 8 Source Types

HubSpot automatically classifies every contact's Original Source into one of these categories. Understanding each one is essential for interpreting attribution reports correctly.

SourceWhat it meansDrill-down detailAdmin note
🔍 Organic search Contact arrived via unpaid search engine result — they searched for something relevant and clicked your non-ad result Search engine name (Google Organic, Bing Organic) Often the highest-converting source for B2B. Justifies SEO and content investment — revenue per lead from organic is typically 3–5× paid search.
💰 Paid search Contact clicked a PPC ad on Google Ads, Microsoft Ads, or similar paid search platform Campaign name, keyword that triggered the ad High-intent but expensive. Compare revenue per customer (not cost per lead) to evaluate true ROI. Paid search often has worse revenue-per-lead than organic despite higher cost.
📱 Social media Contact arrived from a social media platform — could be organic (free posts) or paid (ads) Platform name (LinkedIn, Facebook, Twitter/X, Instagram) For B2B: LinkedIn is typically the highest-converting social source. HubSpot does not automatically distinguish organic vs paid social — use UTMs to separate them.
📧 Email marketing Contact arrived by clicking a link in a HubSpot marketing email Email campaign name Applies primarily to existing contacts clicking links — rarely a new contact creation source. Most useful for tracking re-engagement effectiveness.
🔗 Direct traffic Contact arrived with no referrer URL — typed URL directly, used a bookmark, or clicked from an app that doesn't pass referrer data No drill-down available Inflated by email clients, PDFs, and mobile apps that strip referrer data. Treat high direct traffic with scepticism — most of it is misattributed. Use UTMs to rescue traffic from this black hole.
🌐 Referrals Contact arrived via a link on another website — review site, press mention, partner website, blog link Referring domain (G2.com, TechCrunch, partner domain) High-quality referral sources (G2, Capterra, G2, review sites) often produce the highest revenue per lead because contacts arrive with third-party social proof already established.
📅 Offline sources Contact was imported from a spreadsheet, created manually, or added from an offline source (trade show, event) Import name, event name if tagged Always set accurate source on import — use the most specific label possible (e.g. "Trade show — SaaStr 2024" as a custom source tag). Leaving as "Offline sources" destroys attribution data permanently.
⚙️ Other campaigns Contact arrived via a UTM-tagged link that doesn't match HubSpot's standard source categories UTM source value, UTM campaign name This is your custom attribution channel. Any campaign with properly set UTM parameters shows here with full drill-down detail. This is where podcast sponsorships, partner campaigns, and custom initiatives appear.
Foundation · 04
The 6 Attribution Models

The most important concept in attribution — each model answers a different question. There is no single correct model.

The core truth

No attribution model is "correct." Each model answers a different question about your marketing. First touch asks what brings people in. Last touch asks what converts them. Linear asks what supports the full journey. The art of attribution analysis is knowing which model illuminates which decision — and running multiple models to get the full picture.

Model selection guide

Business questionBest modelWhy
"Which campaigns are best for bringing new people into our funnel?"First touchGives full credit to the awareness-generating touchpoint
"Which content or CTAs are actually converting people?"Last touchGives full credit to the conversion-generating touchpoint
"Which channels support our customers throughout their journey?"LinearEvery touchpoint gets equal credit — reveals sustained channel value
"For a short sales cycle, what drove the final decision?"Time decayWeights recent touchpoints more — appropriate when last few touches matter most
"What acquired AND converted our B2B customers?"U-shapedWeights acquisition (first touch) and conversion (lead creation) equally
"What drove every key milestone in our complex sales process?"Full pathDistributes credit across all major funnel milestones — best for long B2B cycles
The multi-model approach — what mature RevOps teams do

Run First touch and Last touch simultaneously on your lead source revenue report. Where First touch and Last touch credit the same source — that source is doing the whole job (great). Where they differ dramatically — you have a channel doing top-of-funnel work (gets credit in First touch but not Last) and bottom-of-funnel work being done by different channels. Understanding that split is what drives sophisticated budget allocation decisions.

Foundation · 05
The Revenue Data Chain

Revenue attribution only works when the entire chain of data capture is intact — each link is a configuration dependency.

Tracking code installed on website
Contact arrives with source recorded
Contact created via form (source captured)
Contact progresses through funnel
Deal created and associated to contact
Deal closed won with Amount filled
Attribution report joins source to revenue
Chain linkIf this is brokenFix
Tracking code not installedNo source data captured — all contacts show as "Offline" or "Direct"Install tracking code on all pages. Settings → Tracking & Analytics.
Contacts created without HubSpot formsSource not captured — contacts have no Original SourceUse HubSpot forms for all lead capture. For imports, set source manually.
No UTMs on paid campaignsPaid traffic shows as "Direct" — invisible to attributionCreate and enforce a UTM naming convention. Use HubSpot's Tracking URL Builder.
Deals not associated to contactsRevenue can't be linked to contacts — attribution reports show $0Require Contact association when creating Deals. Build validation workflow.
Deal Amount not filledRevenue attribution shows deal count but $0 revenueRequire Amount at Qualified stage (pipeline required field).
Deals not marked Closed WonRevenue attribution only shows pipeline — not actual closed revenueTrain reps to close deals correctly. Build "stale open deal" alert workflow.
Admin Setup · 06
UTM Parameters

The most powerful attribution tool you control — tags that tell HubSpot exactly where every visitor came from, beyond what it can infer automatically.

What UTMs solve

HubSpot can infer source from referrer URLs — but it can't distinguish a LinkedIn organic post from a LinkedIn paid ad, or tell which specific Google Ads campaign drove a click, or know whether an email came from your newsletter vs a one-off campaign. UTM parameters fill every one of these gaps. They are your override for HubSpot's automatic source detection.

The five UTM parameters

UTM parameter reference
utm_source = google / linkedin / newsletter / partner-name The platform or website sending the traffic
utm_medium = cpc / paid-social / email / organic-social / referral The type of marketing channel
utm_campaign = q4-awareness-saas / product-launch-2024 / retargeting-vps The specific campaign name — your main reporting dimension
utm_content = hero-cta / sidebar-banner / ad-variant-a The specific ad or link variant (for A/B testing)
utm_term = hubspot-crm-alternative / best-crm-startups The paid keyword (primarily for search campaigns)
https://yoursite.com/demo?utm_source=linkedin&utm_medium=paid-social&utm_campaign=q4-enterprise&utm_content=vp-sales-ad

The UTM naming convention — admin governance

Why naming consistency is critical

If one marketer uses utm_source=LinkedIn (capital L) and another uses utm_source=linkedin (lowercase), HubSpot treats them as two different sources. Your LinkedIn campaign report shows two separate bars — one showing half the data. A UTM naming convention, documented and enforced, prevents this from happening.

ParameterStandard formatExamples
utm_sourcelowercase, no spaces, hyphens for multi-wordgoogle, linkedin, facebook, newsletter, partner-hubspot
utm_mediumlowercase, predefined list onlycpc, paid-social, email, organic-social, referral, podcast
utm_campaign[quarter]-[type]-[segment] formatq4-awareness-saas, q1-retargeting-vps, always-on-competitor
utm_contentdescriptive variant labelhero-banner, text-ad-a, video-15s
HubSpot Tracking URL Builder

Path: Reports → Analytics Tools → Tracking URL Builder. Enter your base URL and fill in the UTM fields — HubSpot generates the correctly formatted tagged URL. Share this tool with your marketing team so everyone uses the same naming convention.

Admin Setup · 07
Step-by-Step Setup
Prerequisites

HubSpot tracking code installed on all website pages · Contacts created via HubSpot forms · Deals associated to contacts · Deal Amount required at Qualified stage · Deals using Closed Won stage correctly

  1. Verify tracking code installation — Settings → Tracking & Analytics → Tracking code. The code must be on every page. Check with HubSpot's website grader or browser console for any pages missing it.
  2. Audit existing contact source data — Build an active list: Original Source is unknown. Any contact in this list has no source data. If it's large, you have a tracking gap — likely from imports without source tagging or from contacts created before the tracking code was installed.
  3. Create and document your UTM naming convention — Define standard values for utm_source, utm_medium, and utm_campaign format. Document in a shared Google Doc or Notion page. Add it to every new marketer's onboarding.
  4. Tag all active paid campaigns with UTMs — Go through every active Google Ads campaign, LinkedIn campaign, and Facebook campaign. Add UTM parameters to every ad URL. Use HubSpot's Tracking URL Builder for consistency.
  5. Build the Original Source Revenue report — Reports → Create report → Multi-object or Custom → Deals + associated Contacts. Dimension: Contact Original Source. Measures: Count of Closed Won deals + Sum of Deal Amount. Filter: Closed Won + this year. Sort by revenue descending.
  6. Build the UTM Campaign Revenue report — Same structure. Dimension: UTM Campaign (Contact property). Filter: Campaign is known + Closed Won deals. This shows campaign-level revenue attribution.
  7. Build the Lead Source Conversion Funnel report — Show MQL count by source AND Customer count by source side-by-side. The gap between them reveals conversion rate by source — which channels bring in leads that actually close.
  8. Add reports to the Marketing dashboard — Revenue by Source + Leads by Source + Conversion Rate by Source. The CMO needs to see all three to make informed budget decisions.
  9. Schedule a quarterly attribution review — First Monday of each quarter: review which sources have changed in revenue contribution. Update budget recommendations based on the data.
Admin Setup · 08
Attribution Reports to Build
ReportDimensionMeasuresAnswers
Revenue by Original Source Contact Original Source Count Closed Won deals + Sum of Deal Amount "Which channel generates the most revenue?"
Revenue per Lead by Source Contact Original Source Sum of Deal Amount ÷ Count of Contacts from that source "Which channel has the highest lead quality?"
Lead-to-Customer rate by Source Contact Original Source Count Customers ÷ Count Leads from same source "Which channel's leads convert best?"
Revenue by UTM Campaign UTM Campaign (Contact property) Count Closed Won deals + Sum of Deal Amount "Which specific campaign generated the most revenue?"
Revenue by Referral Domain Original Source Drill-Down 1 (where Source = Referrals) Sum of Deal Amount "Which review sites or partners drive the most revenue?"
Monthly leads by source (trend) Contact Original Source + Create Month Count of Contacts "Is any source growing or declining over time?"
Applied Learning · 09
Real-World Example
The situation

A B2B SaaS company is spending $80k/month on marketing. The CMO believes LinkedIn Ads are their best-performing channel because they generate the most inbound demo requests (120/month). Organic search generates 40/month and is "underperforming." The marketing team is about to double LinkedIn spend and cut the content team in half.

The revenue attribution report tells a different story

SourceLeads/monthCustomersRevenueRev/leadRev bar
🔍 Organic search 40 14 $168,000 $4,200
💰 LinkedIn paid 120 8 $72,000 $600
🌐 Referrals (G2) 18 9 $126,000 $7,000
🔗 Direct 35 6 $54,000 $1,543
📧 Email marketing 22 4 $38,000 $1,727

What the data reveals

  • 📊
    Organic search generates 7× more revenue per lead than LinkedIn paid ($4,200 vs $600). The CMO's assumption that LinkedIn was "best" was based on lead volume, not lead quality.
  • 🌐
    G2 referral traffic — which was receiving zero marketing investment — generates the highest revenue per lead of all channels ($7,000). Nobody on the team knew this existed until the attribution report.
  • 💡
    LinkedIn paid is generating leads but very few customers. Deeper investigation reveals most LinkedIn leads are from the wrong industries and seniority levels — the ad targeting was broad.

Budget decisions made

  • 🔴
    Reduce LinkedIn paid spend from $20k/month to $8k/month. Tighten targeting to VP+ at companies with 50+ employees in target industries.
  • 🟢
    Invest $8k/month in G2 review management — responding to reviews, gathering new reviews from happy customers, optimising the G2 profile. Zero investment was generating $126k/month in attributed revenue.
  • 🟢
    Invest $12k/month in SEO and content production. Scale the channel with the highest revenue-per-lead and the most consistent output.
Six months later

Lead volume dropped from 235/month to 178/month (LinkedIn cuts caused the drop). Revenue from closed deals grew 22% — from $458k/month to $559k/month. The CMO initially panicked when lead volume dropped. When the revenue numbers came in, the conversation changed permanently. The company now runs revenue attribution as a monthly review ritual — not an annual retrospective. The attribution report became the single most-referenced document in marketing budget decisions.

Applied Learning · 10
Three Case Studies
📈
Case 1 — UTM gaps making paid campaigns invisible
When $45k/month in ad spend shows as Direct traffic
UTM trackingB2B Tech
Problem
Solution
Outcome
The problem

A B2B tech company was running $45k/month across Google Ads, LinkedIn Ads, and Facebook Ads. Their HubSpot attribution report showed "Direct" as the #1 source by both leads and revenue. The marketing team was celebrating their "organic" performance while their paid ads showed near-zero impact. Investigation revealed: none of the paid campaign URLs had UTM parameters. All paid traffic was landing in HubSpot's Direct category because there was no referrer data being passed. The entire paid ad investment was invisible to attribution.

  • 1.
    Created a UTM naming convention document: utm_source (lowercase platform name), utm_medium (cpc, paid-social), utm_campaign ([quarter]-[type]-[audience]). Shared with all three agencies managing the campaigns.
  • 2.
    Used HubSpot's Tracking URL Builder to regenerate UTM-tagged URLs for every active ad in every campaign. Updated all ad URLs in Google Ads, LinkedIn, and Facebook in one afternoon.
  • 3.
    Built a UTM compliance check: monthly active list of contacts created in the last 30 days with Original Source = Direct but a known paid campaign date range. Any spike in this list indicates a UTM gap.
  • 4.
    Added UTM verification to the campaign launch checklist: no campaign goes live without at least utm_source, utm_medium, and utm_campaign populated and verified in HubSpot.
RevOps outcome

Within 30 days of adding UTMs, the "Direct" source dropped from 38% of leads to 14%. Google Ads appeared as a distinct source showing $180k in attributed closed revenue over the previous 3 months — revenue that had previously been invisible. The team discovered their LinkedIn campaigns were generating 3× the revenue per lead of their Google campaigns — a finding that immediately triggered a LinkedIn budget increase. The CMO estimated the UTM implementation decision (2 hours of work) unlocked over $200k in budget reallocation decisions.

🎯
Case 2 — First touch vs Last touch tells two different stories
When the model you choose changes your entire marketing strategy
Attribution modelsSaaS Agency
Discovery
Analysis
Decision
The discovery

A SaaS agency built their first full attribution report using Last touch model (the HubSpot default). The result showed: Google Ads drove 42% of revenue, Direct drove 31%, and Organic content drove only 9%. The CEO wanted to double Google Ads spend and cut the content team. The admin noticed something — and built the same report using First touch model before presenting.

First touch model told a completely different story:

SourceLast touch (closing)First touch (awareness)
Google Ads42% of revenue18% of revenue
Organic content/SEO9% of revenue47% of revenue
Direct31% of revenue8% of revenue
LinkedIn6% of revenue14% of revenue

The pattern: most customers first found the company through organic content (First touch = 47%), then later searched for them on Google and clicked an ad (Last touch = 42%). The Google Ad was getting credit for the conversion — but organic content had done the awareness-building work that made the Google search happen in the first place.

RevOps outcome

The admin presented both models side by side with a clear explanation: "Last touch shows what's closing deals. First touch shows what's starting relationships. Our organic content is responsible for 47% of first impressions — if we cut it, Google Ads will have fewer brand-aware people to capture with search ads, and conversion rates will drop." The CEO did not cut the content team. Instead, they increased content investment by 20% and reduced Google Ads by 15% for a test quarter. The test showed: reducing Ads by 15% reduced leads by 12% but revenue only dropped by 4% (higher-quality leads remaining). Content investment payoff: organic first-touch revenue grew 18% over two quarters.

🔍
Case 3 — Review site attribution justifies an unexpected investment
When attribution reveals an untapped channel nobody was managing
Referral attributionB2B SaaS
Discovery
Action
Outcome
The discovery

A B2B SaaS company was building their first revenue attribution report. When they drilled down into Referrals by referring domain, they found something unexpected: G2.com was attributing $94k in closed won revenue over the past 6 months. The company had never invested in G2 — they had 23 reviews accumulated organically from happy customers, and those reviews were generating inbound traffic that was converting at a 31% lead-to-customer rate. Nobody on the marketing team even knew they had a G2 presence.

  • 1.
    Claimed the G2 profile and completed all profile information — logo, product description, screenshots, pricing page, comparison widgets. This took 4 hours.
  • 2.
    Sent a review request email sequence to the last 60 customers who had given positive NPS scores. Generated 28 new reviews in 3 weeks. Average rating went from 4.1 to 4.6 stars.
  • 3.
    Invested $2k/month in G2 Buyer Intent data (signals showing which companies are actively researching similar products on G2) and routed those companies to the outbound SDR team.
  • 4.
    Built a monthly attribution report specifically for referral sources — tracking G2, Capterra, and other review sites separately to monitor their revenue contribution over time.
RevOps outcome

G2 attributed revenue grew from $94k to $240k over the following two quarters (154% increase from a starting point of zero investment). The $2k/month G2 subscription plus the time investment in profile and review management generated an estimated 12× ROI based on attributed revenue. The finding came entirely from a revenue attribution report — a channel the company had never deliberately invested in was already generating significant revenue and nobody knew it. Attribution didn't just improve existing channel decisions — it revealed an entirely new investment opportunity.

Applied Learning · 11
Common Admin Mistakes
  • 01 — Using only Last touch attribution
    Last touch systematically overvalues conversion-moment touchpoints (retargeting ads, demo CTAs) and invisibilises awareness investments (organic content, SEO, podcast sponsorships). Running only Last touch for 12 months leads to cutting channels that are essential for bringing people into the funnel — and discovering the damage 6 months later when pipeline dries up.
  • 02 — Not using UTM parameters on paid campaigns
    Every paid campaign without UTMs shows as Direct traffic. You spend $50k, it appears to have zero ROI, and the budget gets cut. Build a UTM naming convention before your first campaign goes live. Retroactive UTM tagging of existing campaigns is painful — do it right from the start.
  • 03 — Treating attribution correlation as causation
    "Our webinars drove $300k in revenue" means webinar was a touchpoint for $300k of customers — not that webinars caused that revenue. Those customers might have closed regardless. Attribution shows association, not causation. Present it as "correlated with" or "contributed to" — never "caused" or "generated."
  • 04 — Importing contacts without setting source
    Bulk imports from trade shows, list purchases, or CRM migrations without proper Original Source values permanently corrupt your attribution data. That data never gets better — it just stays wrong. Always set the most specific source possible at import time.
  • 05 — No UTM naming convention
    Three different marketers using LinkedIn, linkedin, and LinkedIn-Ads as utm_source values creates three separate "sources" in HubSpot. Your LinkedIn report is fragmented across three rows. Create and enforce a naming convention before anyone creates their first UTM link.
  • 06 — Presenting one attribution model as "the truth"
    Showing the CEO "content generated $500k (First touch)" without context creates confusion when a different model shows $90k. Always present attribution data with a clear, simple explanation of what the model measures. One sentence: "First touch shows what brought people to us for the first time."
Applied Learning · 12
Admin Best Practices
  • 📐
    Always run at least two models. First touch and Last touch together tell the acquisition story and the conversion story. Add Linear when you want to value middle-funnel content. Three models together give you a complete picture no single model can.
  • 🏷️
    Build the UTM naming convention before the first campaign. Document it. Share it. Enforce it. Every marketer, agency, and contractor who creates campaign links must use it. One exception creates inconsistency that compounds over time.
  • 💰
    Sort revenue reports by revenue, not by lead count. The channel with the most leads is rarely the channel with the most revenue. Always sort by revenue to surface quality, not quantity.
  • 📅
    Run a quarterly attribution review. First Monday of each quarter: review which sources have grown or shrunk in revenue contribution. One hour. One report. One set of budget recommendations. This is the highest-ROI admin meeting you'll run.
  • 🔍
    Audit your Direct traffic regularly. A sudden increase in Direct source contacts is almost always a UTM gap — a new campaign launched without UTM parameters. Monthly active list check: contacts with Original Source = Direct created in the last 30 days who came during a known paid campaign period.
  • 🌐
    Don't ignore referral drill-downs. The Referrals source by referring domain is one of the most underanalysed reports in HubSpot. Review sites, press mentions, and partner sites often generate high-converting traffic that nobody is managing. Monthly check on top referring domains by revenue.
Applied Learning · 13
Practice Exercise

Do this in your free HubSpot sandbox — approximately 45 minutes.

Part A — Check your source data (10 min)

  1. Go to Contacts in your sandbox. Create or find 5 contacts. For each, check: does the Original Source field have a value? Open one contact and look for the Source Data section in the record sidebar.
  2. Build an active list: Contact Original Source is unknown. Note the count. Any contact in this list has no source data — in a real portal this would be a data quality issue to investigate.
  3. Go to Settings → Tracking & Analytics → Tracking code. Verify the tracking code exists. Note the domain it's configured for.

Part B — Build a UTM-tagged URL (10 min)

  1. Go to Reports → Analytics Tools → Tracking URL Builder.
  2. Build a tagged URL for an imaginary LinkedIn campaign: Base URL = your HubSpot page URL. Source = linkedin. Medium = paid-social. Campaign = q4-awareness-saas.
  3. Copy the generated URL. Paste it into Notepad to see the full URL with UTM parameters appended.
  4. Document your UTM naming convention in a simple table: which values are allowed for each parameter. This is your first admin governance artifact.

Part C — Build the revenue attribution report (25 min)

  1. Go to Reports → Create report → Contact and Deal Information (multi-object).
  2. Add filter: Deal Stage = Closed Won (if you have any in sandbox) or remove the stage filter to show all deals.
  3. Add dimension: Contact Original Source.
  4. Add measure: Count of Deals + Sum of Deal Amount.
  5. Choose visualisation: Bar chart. Sort by Sum of Deal Amount descending.
  6. Save as "Revenue by Original Source — All Time." Add to your Marketing dashboard.
  7. Add a second report: same configuration but dimension = UTM Campaign. If no UTM data exists (sandbox typically won't have it), create two fake contacts with UTM Campaign values manually and create a deal for each. Verify the report picks up the UTM dimension.
Applied Learning · 14
Interview Questions
"What is the difference between First Touch and Last Touch attribution, and when would you use each?"
First touch gives 100% credit to the very first marketing interaction a contact had — it answers "what brought people into our funnel for the first time?" Last touch gives 100% to the final interaction before conversion — it answers "what closed them?" I'd use First touch to evaluate awareness investments: which content, ads, or campaigns are most effective at introducing new people to our brand? I'd use Last touch to evaluate conversion investments: which CTAs, landing pages, or retargeting campaigns drive the final conversion decision? The important thing I always communicate is that neither is correct in isolation — they answer different questions. If you only use Last touch, you'll systematically undervalue awareness investments because they look like zero-ROI until Last touch captures their downstream conversions weeks later. I typically run both models on every major attribution report and present them side by side with a one-sentence explanation of what each tells us.
"How do UTM parameters work, and what's your governance process for managing them?"
UTM parameters are tags appended to URLs that tell HubSpot exactly where a visitor came from, beyond what it can infer from referrer data automatically. They have five fields: source (the platform), medium (the channel type), campaign (the specific campaign), content (the ad variant), and term (paid keyword). When a contact clicks a UTM-tagged link and fills out a form, HubSpot captures all five values and stores them on the Contact record. For governance: I create a UTM naming convention before any campaign goes live — a documented standard for every parameter with predefined allowable values in lowercase, no spaces format. I use HubSpot's built-in Tracking URL Builder to generate consistent tagged URLs. I add a UTM verification step to the campaign launch checklist — no campaign goes live without confirmed UTM parameters. And I monitor for UTM gaps monthly with an active list: contacts created with Original Source = Direct during known paid campaign periods. A spike in that list indicates a campaign launched without UTMs.
"A CMO tells you LinkedIn is your best channel based on lead volume. The attribution data shows different. How do you handle the conversation?"
I'd lead with data and frame it as adding information rather than contradicting. I'd build a single report showing lead volume by source alongside revenue by source and revenue per lead — all three on the same view. Then I'd present it: "Looking at lead volume, LinkedIn is indeed our highest-volume source. But when we look at revenue per lead — how much closed revenue we generate per LinkedIn lead versus per organic search lead — organic generates 7x more revenue per contact. That gap matters because it means our organic leads are converting at significantly higher rates, which suggests they're higher quality for our product." I'd propose a test rather than a recommendation: shift 20% of LinkedIn budget to content for one quarter and track both lead volume and revenue outcomes. That makes it an experiment with a clear success metric — not a budget argument. If the data supports the reallocation, the next conversation happens naturally from the results.
Applied Learning · 15
Summary Cheatsheet
ConceptKey point
What is attributionTracking which marketing interactions contributed to conversions — and connecting them to closed revenue
Why it mattersConnects marketing spend to revenue — enables budget decisions based on ROI, not volume
Original SourceSet once at first contact identification — never automatically changes. The "first touch" property.
Original Source permanenceWrong source at import = wrong source forever (unless manually corrected). Data quality at entry is critical.
Latest SourceUpdates continuously with most recent marketing interaction. The "last touch" property.
UTM parametersTags on URLs that tell HubSpot exactly where a visitor came from. Required for campaign-level attribution.
5 UTM parametersutm_source · utm_medium · utm_campaign · utm_content · utm_term
UTM naming conventionDocumented, enforced standard — lowercase, hyphens, consistent values. Build before first campaign.
8 source typesOrganic search · Paid search · Social media · Email marketing · Direct · Referrals · Offline · Other campaigns
Direct traffic inflatedEmail clients, PDFs, apps strip referrer data → shows as Direct. Use UTMs to rescue this traffic.
First touch model100% credit to first interaction. Answers: what brings people in?
Last touch model100% credit to final interaction. Answers: what closes people?
Linear modelEqual credit all touchpoints. Answers: what supports the full journey?
U-shaped model40% first + 40% lead creation + 20% middle. Good for B2B.
No single correct modelEach answers a different question. Run multiple models. Present with explanation.
Revenue data chainTracking code → form contact creation → deal association → Closed Won + Amount → attribution report
Sort by revenue not volumeAlways sort attribution reports by revenue to surface quality, not by lead count to surface volume
Quarterly attribution reviewFirst Monday of each quarter: which sources grew or declined in revenue? Update budget recommendations.
Admin interview gold"I always run both First touch and Last touch — each tells a different part of the story. No single model is correct."
RevOps insightAttribution is the feedback loop that makes marketing spend improve over time — every budget cycle uses better data than the last
RevOps mindset on attribution — completing the full curriculum

Attribution is the final piece of the revenue intelligence system you've been building throughout this curriculum. The objects and properties store the data. The lifecycle stages and workflows process it. The pipelines track it. The reports surface it. Attribution connects it all back to budget and strategy — answering the ultimate question: of everything we invested in marketing, which investments actually generated revenue? That question, answered accurately and consistently, is what transforms marketing from a cost centre into a measurable, optimisable revenue function. The company that runs this attribution loop rigorously — UTM discipline, multi-model analysis, quarterly budget reviews — will make materially better marketing investment decisions every cycle. And materially better decisions compound into materially better outcomes. That is the work of a RevOps practitioner. You now have the complete toolkit to do it.

Curriculum complete.

12 modules · Objects · Properties · Lists · Lifecycle Stages · Lead Status · Forms & Imports · Conversations · Workflows · Sequences · Pipelines · Reports · Attribution. You have the complete HubSpot Admin and RevOps foundation.