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.
Tracking which marketing interactions contributed to a contact becoming a customer — and connecting those interactions to the revenue they generated.
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 attribution | With attribution | Business impact |
|---|---|---|
| Budget allocated by lead volume | Budget allocated by revenue generated per channel | Cuts channels that look good but convert poorly |
| High-volume channels scaled regardless of quality | High-converting channels scaled based on revenue ROI | More revenue from same marketing spend |
| "Which campaign worked?" unanswerable | Specific campaign → customer → revenue path visible | Repeatable campaign success |
| Content and SEO investment unjustifiable | Organic content's downstream revenue impact quantified | Protects high-ROI content investment from budget cuts |
| Marketing/Sales argue about lead quality | Shared data shows source → conversion rate → revenue | Data-driven alignment replaces opinion-based conflict |
| Term | What it means | Where in HubSpot |
|---|---|---|
| Original Source | The very first way HubSpot identified how a contact found you. Set once, never automatically changes. | Contact property — "Original Source" |
| Original Source Drill-Down 1 & 2 | Sub-properties providing more detail. If Original Source = Paid Search, Drill-Down 1 = Google, Drill-Down 2 = campaign name. | Contact properties — auto-populated |
| Latest Source | The most recent source of contact activity. Updates continuously with every new marketing interaction. | Contact property — "Latest Source" |
| Touchpoint | Any recorded interaction: page view, email open/click, form submission, meeting booked, ad click. | Contact activity timeline |
| Attribution model | The rule for distributing credit across touchpoints. First touch, Last touch, Linear, Time decay, U-shaped, Full path. | Attribution report settings |
| UTM parameters | Tags appended to URLs that tell HubSpot exactly where a visitor came from — beyond what HubSpot can infer automatically. | UTM properties on Contact record |
| Revenue attribution | Connecting a specific deal's closed-won revenue to the marketing touchpoints on the associated customer contact. | Multi-object reports joining Contacts + Deals |
| Multi-touch attribution | Any 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 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.
HubSpot automatically classifies every contact's Original Source into one of these categories. Understanding each one is essential for interpreting attribution reports correctly.
| Source | What it means | Drill-down detail | Admin 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. |
The most important concept in attribution — each model answers a different question. There is no single correct model.
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 question | Best model | Why |
|---|---|---|
| "Which campaigns are best for bringing new people into our funnel?" | First touch | Gives full credit to the awareness-generating touchpoint |
| "Which content or CTAs are actually converting people?" | Last touch | Gives full credit to the conversion-generating touchpoint |
| "Which channels support our customers throughout their journey?" | Linear | Every touchpoint gets equal credit — reveals sustained channel value |
| "For a short sales cycle, what drove the final decision?" | Time decay | Weights recent touchpoints more — appropriate when last few touches matter most |
| "What acquired AND converted our B2B customers?" | U-shaped | Weights acquisition (first touch) and conversion (lead creation) equally |
| "What drove every key milestone in our complex sales process?" | Full path | Distributes credit across all major funnel milestones — best for long B2B cycles |
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.
Revenue attribution only works when the entire chain of data capture is intact — each link is a configuration dependency.
| Chain link | If this is broken | Fix |
|---|---|---|
| Tracking code not installed | No source data captured — all contacts show as "Offline" or "Direct" | Install tracking code on all pages. Settings → Tracking & Analytics. |
| Contacts created without HubSpot forms | Source not captured — contacts have no Original Source | Use HubSpot forms for all lead capture. For imports, set source manually. |
| No UTMs on paid campaigns | Paid traffic shows as "Direct" — invisible to attribution | Create and enforce a UTM naming convention. Use HubSpot's Tracking URL Builder. |
| Deals not associated to contacts | Revenue can't be linked to contacts — attribution reports show $0 | Require Contact association when creating Deals. Build validation workflow. |
| Deal Amount not filled | Revenue attribution shows deal count but $0 revenue | Require Amount at Qualified stage (pipeline required field). |
| Deals not marked Closed Won | Revenue attribution only shows pipeline — not actual closed revenue | Train reps to close deals correctly. Build "stale open deal" alert workflow. |
The most powerful attribution tool you control — tags that tell HubSpot exactly where every visitor came from, beyond what it can infer automatically.
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
The UTM naming convention — admin governance
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.
| Parameter | Standard format | Examples |
|---|---|---|
utm_source | lowercase, no spaces, hyphens for multi-word | google, linkedin, facebook, newsletter, partner-hubspot |
utm_medium | lowercase, predefined list only | cpc, paid-social, email, organic-social, referral, podcast |
utm_campaign | [quarter]-[type]-[segment] format | q4-awareness-saas, q1-retargeting-vps, always-on-competitor |
utm_content | descriptive variant label | hero-banner, text-ad-a, video-15s |
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.
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
| Report | Dimension | Measures | Answers |
|---|---|---|---|
| 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?" |
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
| Source | Leads/month | Customers | Revenue | Rev/lead | Rev 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.
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.
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.
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.
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:
| Source | Last touch (closing) | First touch (awareness) |
|---|---|---|
| Google Ads | 42% of revenue | 18% of revenue |
| Organic content/SEO | 9% of revenue | 47% of revenue |
| Direct | 31% of revenue | 8% of revenue |
| 6% of revenue | 14% 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.
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.
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.
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.
- 01 — Using only Last touch attributionLast 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 campaignsEvery 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 sourceBulk 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 conventionThree 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."
- 📐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.
Do this in your free HubSpot sandbox — approximately 45 minutes.
Part A — Check your source data (10 min)
- 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.
- 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.
- 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)
- Go to Reports → Analytics Tools → Tracking URL Builder.
- Build a tagged URL for an imaginary LinkedIn campaign: Base URL = your HubSpot page URL. Source = linkedin. Medium = paid-social. Campaign = q4-awareness-saas.
- Copy the generated URL. Paste it into Notepad to see the full URL with UTM parameters appended.
- 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)
- Go to Reports → Create report → Contact and Deal Information (multi-object).
- Add filter: Deal Stage = Closed Won (if you have any in sandbox) or remove the stage filter to show all deals.
- Add dimension: Contact Original Source.
- Add measure: Count of Deals + Sum of Deal Amount.
- Choose visualisation: Bar chart. Sort by Sum of Deal Amount descending.
- Save as "Revenue by Original Source — All Time." Add to your Marketing dashboard.
- 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.
| Concept | Key point |
|---|---|
| What is attribution | Tracking which marketing interactions contributed to conversions — and connecting them to closed revenue |
| Why it matters | Connects marketing spend to revenue — enables budget decisions based on ROI, not volume |
| Original Source | Set once at first contact identification — never automatically changes. The "first touch" property. |
| Original Source permanence | Wrong source at import = wrong source forever (unless manually corrected). Data quality at entry is critical. |
| Latest Source | Updates continuously with most recent marketing interaction. The "last touch" property. |
| UTM parameters | Tags on URLs that tell HubSpot exactly where a visitor came from. Required for campaign-level attribution. |
| 5 UTM parameters | utm_source · utm_medium · utm_campaign · utm_content · utm_term |
| UTM naming convention | Documented, enforced standard — lowercase, hyphens, consistent values. Build before first campaign. |
| 8 source types | Organic search · Paid search · Social media · Email marketing · Direct · Referrals · Offline · Other campaigns |
| Direct traffic inflated | Email clients, PDFs, apps strip referrer data → shows as Direct. Use UTMs to rescue this traffic. |
| First touch model | 100% credit to first interaction. Answers: what brings people in? |
| Last touch model | 100% credit to final interaction. Answers: what closes people? |
| Linear model | Equal credit all touchpoints. Answers: what supports the full journey? |
| U-shaped model | 40% first + 40% lead creation + 20% middle. Good for B2B. |
| No single correct model | Each answers a different question. Run multiple models. Present with explanation. |
| Revenue data chain | Tracking code → form contact creation → deal association → Closed Won + Amount → attribution report |
| Sort by revenue not volume | Always sort attribution reports by revenue to surface quality, not by lead count to surface volume |
| Quarterly attribution review | First 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 insight | Attribution is the feedback loop that makes marketing spend improve over time — every budget cycle uses better data than the last |
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.