NewRead our latest case study, published by Google Read it here

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.

claude_desktop, attribution_prompt.md
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.

Attribution Model Comparison ยท Last 90 Days
Native LinkedIn attribution7-day click window ยท what Campaign Manager reports14 deals$84,000
CRM-matched attribution90-day window ยท LinkedIn-exposed HubSpot conversions41 deals$247,000
Account-level influence180-day window ยท LinkedIn-served companies in pipeline67 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
Recommendation. LinkedIn's true revenue contribution is $247K over 90 days, not the $84K Campaign Manager reports. The ABM and Awareness campaigns are your dark-funnel workhorses, both show strong account-level influence with delayed conversion patterns. Recommend increasing budget on these two by 25% next quarter and running this attribution prompt monthly to track the trend. Want me to draft a memo to your CFO summarizing the full 90-day dark-funnel picture?
TIME ELAPSED: 72 SECONDS ยท SAME ANALYSIS MANUALLY: 4-6 HOURS

04Setup

Four steps. About ten minutes.

First run only. After this, every subsequent run takes under two minutes.

  1. Install ยท 3 min

    Install the free Growthspree MCP

    Head to growthspreeofficial.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.

    Install now
  2. Verify ยท 1 min

    Confirm the connection in Claude Desktop

    Open Claude Desktop. Click the tools icon in the input bar. You should see growthspree-mcp listed with all five connectors showing green. If LinkedIn Ads or HubSpot show red, re-run the OAuth flow for that specific account.

  3. 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.

  4. 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.

    Tweak

    Change 90 days to 180 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.

    Tweak

    Add: "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.

    Tweak

    Append: "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.

Pick a time with a senior operator

Thanks. We have your email.

Calendar not loading? Open it in a new tab