Workflow ยท Attribution
LinkedIn Ads true revenue attribution
via HubSpot + Claude.
A copy-paste Claude prompt that reveals how much pipeline LinkedIn actually sourced, including the 60โ80% typically misattributed to organic or direct traffic. Runs on the free Growthspree MCP. No GAQL, no CSV exports, no BI tool.
- LinkedIn revenue misattributed
- 60-80%LinkedIn revenue misattributed
- End-to-end setup time
- 15minEnd-to-end setup time
- Typical true revenue vs reported
- 2-3รTypical true revenue vs reported
- CRM match window
- 90dCRM match window
01The Problem in 60 Seconds
LinkedIn sourced the deal.
Your CRM credits organic search.
A VP of Engineering sees your LinkedIn ad on Monday. Three weeks later, she Googles your company name, visits your site directly, books a demo, and closes in July. LinkedIn's 7-day click window expired months ago. Your CRM logs her as "organic search." LinkedIn gets zero credit.
Across 300+ B2B SaaS accounts, 60โ80% of LinkedIn's actual revenue contribution is misattributed to other channels. This workflow fixes that. It uses the free Growthspree MCP to match LinkedIn impression data to HubSpot contacts in a 90-day window, surfacing the dark-funnel revenue that LinkedIn's native reporting misses entirely.
The prompt below reads across LinkedIn Ads and HubSpot in a single Claude conversation. No manual exports. No SQL. The first run takes 15 minutes. Every run after that takes under 2.
02The Prompt
Copy this prompt into
Claude Desktop.
Paste it as-is. The two variables in gold, account name and date range, are the only things you typically change between runs.
RoleYou are analyzing LinkedIn Ads true revenue attribution for [ACCOUNT_NAME]. LinkedIn's native 7-day click window underreports B2B revenue by 60โ80% because deals typically close weeks after the initial ad view (through organic, direct, or brand search) and LinkedIn loses the credit. Your job is to reveal that gap using live data from the Growthspree MCP. Task1. Pull all LinkedIn Ads impressions and engagements from the last 90 days via the growthspree-mcp linkedin_ads connector. Include campaign name, impression date, engagement type, and company/contact identifiers where available. 2. Pull all HubSpot contacts created or updated in the last 90 days via the growthspree-mcp hubspot connector. Include email, company, original source, recent source, associated deals, deal amount, and deal stage. 3. Match LinkedIn-exposed people/accounts to HubSpot contacts using three signals: a. Email match (from LinkedIn Lead Gen Forms โ HubSpot contacts) b. Company-level match (LinkedIn company-targeted impressions โ HubSpot contacts from same company, within 90-day window) c. Identity match (LinkedIn Matched Audiences โ HubSpot contacts) 4. Calculate and return four metrics: โข Native attribution: what LinkedIn's 7-day click window reports (baseline) โข CRM-matched attribution: LinkedIn-exposed contacts who converted via any channel within 90 days โข Account-level influence: LinkedIn-served companies that entered pipeline within 180 days โข Dark-funnel gap: the revenue LinkedIn actually sourced but didn't get credited for Output formatReturn a summary table with contact count, deal count, and total deal amount for each of the four categories above. Flag the top 5 campaigns contributing the largest dark-funnel gap. End with a recommendation on budget reallocation. // If HubSpot contacts are missing original_source or recent_source, fall back to created_at vs first_linkedin_exposure comparison. // If LinkedIn impression data doesn't include company identifiers, use the Matched Audience overlap instead.
First-time setup required. You need the free Growthspree MCP installed in Claude Desktop before this prompt works. Scroll to section 04 below for the 4-step install. It takes about 10 minutes end-to-end.
03What Claude Returns
What the output actually looks like.
A sample run from a mid-market B2B SaaS account. Real structure, illustrative numbers. The dark-funnel gap is typically the most important number Claude returns.
Claude ยท via Growthspree MCP
Running the attribution analysis. I'll query LinkedIn first, then HubSpot, then match.
growthspree.linkedin_ads.get_campaign_performance { window: 90d, include: [impressions, engagements, companies] } growthspree.hubspot.search_contacts { created_after: 90d, include: [deals, sources] } Matched 3,847 LinkedIn-exposed contacts against 1,204 HubSpot records. Here's the breakdown.
| Native LinkedIn attribution7-day click window ยท what Campaign Manager reports | 14 deals | $84,000 |
|---|---|---|
| CRM-matched attribution90-day window ยท LinkedIn-exposed HubSpot conversions | 41 deals | $247,000 |
| Account-level influence180-day window ยท LinkedIn-served companies in pipeline | 67 accounts | $412,000 |
| Dark-funnel gapMatched minus native ยท what LinkedIn actually sourced | +27 deals | +$163,000 |
Top 5 campaigns contributing the dark-funnel gap:
| ABM: Enterprise Tier 1 Accounts | +8 deals | +$62,000 |
|---|---|---|
| Awareness: RevOps Leaders US | +6 deals | +$34,000 |
| Thought Leadership: Sponsored Posts | +5 deals | +$28,000 |
| Retargeting, 60-day visitors | +4 deals | +$22,000 |
| Document Ad: ICP Playbook | +4 deals | +$17,000 |
04Setup
Four steps. About ten minutes.
First run only. After this, every subsequent run takes under two minutes.
-
Install ยท 3 min
Install the free Growthspree MCP
Head to
Install nowgrowthspreeofficial.com/mcp. Click install and authorize the OAuth flow. This grants Claude read access to LinkedIn Ads, HubSpot, Google Ads, GA4, and Search Console in one step. -
Verify ยท 1 min
Confirm the connection in Claude Desktop
Open Claude Desktop. Click the tools icon in the input bar. You should see
growthspree-mcplisted with all five connectors showing green. If LinkedIn Ads or HubSpot show red, re-run the OAuth flow for that specific account. -
Paste ยท 1 min
Paste the attribution prompt
Copy the prompt from section 02 above. Paste it into Claude. Replace
[ACCOUNT_NAME]with your company name. Adjust the 90-day window if your sales cycle runs materially longer or shorter. -
Review ยท 5 min
Review the output and save the report
Claude returns the four-metric breakdown in 60โ90 seconds. Save the output as a markdown file or share directly with your CFO. Re-run monthly to track the dark-funnel trend over time. Typical result: LinkedIn's true revenue is 2โ3x what Campaign Manager reports.
05Prompt Variations
Three ways to push this further.
Same foundation, different lens. Pick the variation that matches your next question, or chain them together in one Claude session.
-
01 / Longer cycle
For enterprise sales cycles (180+ days)
Long-cycle deals often break the 90-day window entirely. Expand the match window and add a pipeline-stage filter to surface influence on deals still in-flight.
TweakChange
90 daysto180 days. Add: "Include deals in stages 3+ even if not yet closed-won." -
02 / Campaign drill-down
Break the gap down by campaign type
Useful before budget planning. Separate ABM, awareness, retargeting, and lead gen to see which campaign types drive the most dark-funnel revenue.
TweakAdd: "Group the dark-funnel gap by campaign objective: ABM, awareness, retargeting, lead gen. Return the contribution of each."
-
03 / CFO memo
Auto-draft the CFO-ready one-pager
Skip the manual rewrite. Have Claude produce a plain-English summary in the exact format your CFO reads: pipeline contribution, cost per dollar of pipeline, trend vs last quarter.
TweakAppend: "Draft a one-page memo to the CFO with: LinkedIn's true pipeline contribution, CAC blended, trend vs previous quarter, and one recommendation."
FAQ
Quick answers on the workflow.
What does this Claude prompt actually do for LinkedIn Ads attribution?
This prompt instructs Claude to pull 90 days of LinkedIn Ads impression and click data via the Growthspree MCP, match it to HubSpot contact records using email and company-level signals, and calculate how much pipeline and closed-won revenue LinkedIn actually influenced, including deals HubSpot attributes to direct or organic search. The output shows native LinkedIn attribution, CRM-matched influenced revenue, and the gap between them, which is typically 2โ3x the reported number.
Do I need LinkedIn Ads MCP separately, or does the Growthspree MCP include it?
The Growthspree MCP includes LinkedIn Ads as one of five connected platforms. You do not need a separate LinkedIn Ads MCP. A standalone LinkedIn Ads MCP is not freely available today, and the community versions require significant engineering. The Growthspree MCP abstracts all of that. One authentication flow and you are running queries in Claude within minutes.
Can I run this workflow without HubSpot?
This specific workflow requires HubSpot because the dark-funnel match relies on HubSpot contact and deal records. If you use a different CRM, the same pattern works but requires a connector for your CRM. Growthspree prioritizes connector requests based on customer demand, reach out if your CRM is critical.
How accurate is the 90-day window for matching LinkedIn impressions to HubSpot contacts?
The 90-day window is calibrated to the typical B2B SaaS buying journey. Average B2B sales cycles are 84 days and 70% of the journey is anonymous before sales contact. A 90-day window captures most ad-influenced conversions without false positives from unrelated historical impressions. You can shorten the window for shorter sales cycles or lengthen it for enterprise deals, the prompt supports both.
What does the output of this workflow look like?
Claude returns four things: native LinkedIn attribution (what LinkedIn's 7-day click window reports), CRM-matched attribution (LinkedIn viewers who converted via any channel within 90 days), account-level influence (LinkedIn-served companies that entered pipeline within 180 days), and the dark-funnel gap (the difference between native and matched, revenue LinkedIn actually sourced but isn't credited for). The output includes contact counts, deal amounts, and pipeline value.
How long does this workflow take to run?
The first run takes about 15 minutes end-to-end, 10 minutes to install and authenticate the Growthspree MCP, 5 minutes to paste the prompt and review the output. Subsequent runs take under 2 minutes because the connections are already authenticated. This replaces a 4โ6 hour manual process of exporting LinkedIn data, exporting HubSpot contacts, merging in a spreadsheet, and guessing at match logic.
Is this the same as LinkedIn's Revenue Attribution Report in Business Manager?
No. LinkedIn's Revenue Attribution Report uses LinkedIn's own lookback windows and attribution logic and is limited to what LinkedIn can see. This workflow uses a 90-day CRM-matched window that captures conversions attributed to other channels, the dark-funnel revenue LinkedIn misses. Teams running both typically find LinkedIn's true contribution is 2โ3x higher than the Business Manager report shows.