Quarterly attribution readout: pipeline by channel, checked against the CRM

HockeyStack + HubSpot + Slack

Who it's for

Marketing leaders who need a quarterly pipeline-by-channel number they can defend, with deal counts checked against the CRM before anyone sees it. HubSpot can be swapped for Salesforce, Attio or Pipedrive.

What you get

Readout table, CRM check and the Slack post waiting for approval. Sample output: every company and person in it is fictional.

Report: 'Pipeline by channel, Q3' (saved HockeyStack report, Jul 1 to Sep 30)
Company: Mossgate Labs (fictional)

Channel        Sourced          Influenced
Paid search    9 deals, $310K   21 deals, $890K
Events         6 deals, $420K   14 deals, $760K
Organic        11 deals, $280K  25 deals, $640K
Partners       4 deals, $190K   7 deals, $330K
Outbound       12 deals, $510K  18 deals, $700K

CRM check
HockeyStack: 42 sourced deals. HubSpot (deals created Jul 1 to Sep 30, New Business pipeline): 45.
3 HubSpot deals missing from HockeyStack: Larkspur Freightworks (fictional) $40K, Quarry Lane Analytics (fictional) $25K, Ashgrove Dental Group (fictional) $18K. All 3 were created by import on Sep 29.

Draft Slack post for #marketing-leadership (not posted):
Q3 pipeline by channel: 42 sourced deals, $1.71M. Outbound and events led on sourced amount. Influenced totals count a deal in every channel that touched it, so they add up to more than total pipeline. 3 deals created by import on Sep 29 are not in the attribution data yet.

No HockeyStack reports were created or changed. Reply 'post' to send.

Time and cost

Estimate About 20–30 minutes, most of it reconciling deal counts.

Assumptions: One quarterly run over about 50 deals, using one saved report or one preview.

Exact credit costs depend on your plan with each vendor. Check the tool pages before a large run.

MCP servers

Every server is confirmed in: Claude

Set up in a chat app

Every server in this recipe is confirmed for Claude. Connect each one, then paste the prompts below into one conversation.

Developer setup

Auth setup and mcp.json for Claude Code and Cursor
  • HockeyStack: Sign in with OAuth in your client (run /mcp in Claude Code). Do it once interactively, and the client stores and refreshes the token.
  • HubSpot: Sign in with OAuth in your client (run /mcp in Claude Code). Do it once interactively, and the client stores and refreshes the token.
  • Slack: Sign in with OAuth in your client (run /mcp in Claude Code). Do it once interactively, and the client stores and refreshes the token.

Put this in .mcp.json (Claude Code, project root) or ~/.cursor/mcp.json (Cursor). Swap the example keys for your own, and don't commit real ones. Remove the // comment lines if your client requires strict JSON.

{
  "mcpServers": {
    "hockeystack": {
      "url": "https://mcp.hockeystack.com/mcp"
    },
    "hubspot": {
      "url": "https://mcp.hubspot.com"
    },
    "slack": {
      "url": "https://mcp.slack.com/mcp"
    }
  }
}

Step-by-step prompts

  1. Search my HockeyStack reports and dashboards for pipeline sourced or influenced by channel. List each one with its name and, where it's shown, the date range and attribution settings. Don't create or change anything.
  2. Using {report name}, show me pipeline sourced and influenced by channel for {quarter}, with deal count and amount for each, in separate columns. If no saved report fits, preview one for {quarter} and show me its definition. Don't save it.
  3. Cross-check the deal counts in HubSpot: find deals in {pipeline} created in {quarter} and compare the count with HockeyStack's deals for the same range. Show me a table, and list by name any deal that's in one and not the other. Don't change any records.
  4. Draft a short Slack post for {channel} with the channel table totals, one line on what changed since last quarter, and a note on any deals that didn't reconcile. Post it only after I approve it. If I ask to save the previewed report in HockeyStack, do that only after I approve it too.

Run it on a schedule (optional)

Where this goes wrong

Gotchas

Download

Get the prompts, guardrails and expected output as one Markdown file. Paste it into a Claude Project or ChatGPT project's instructions, or save it as CLAUDE.md for Claude Code.

Download attribution-readout.md

Vendor sites: HubSpot · Slack. If we join an affiliate program, these links will be labeled as affiliate links.