"LinkedIn outreach works" is a feeling. "LinkedIn outreach generated $340K in pipeline last quarter from $2,400 in tool costs" is a fact. Here's how to build the tracking system that turns feelings into facts.

The Attribution Problem

LinkedIn outreach is inherently hard to attribute because:

  1. Multi-touch journeys: A prospect sees your connection request, accepts, reads your message, doesn't reply. Two weeks later they visit your website from Google and book a demo. Was that LinkedIn? Was that Google? Was it both?
  2. Long sales cycles: B2B deals take 30–90 days. The LinkedIn touchpoint that started the conversation happened months before the close.
  3. Dark social: A prospect reads your LinkedIn message, mentions it to a colleague, and the colleague visits your site. No tracking pixel catches this.
  4. Cross-device: They see your message on mobile LinkedIn, then visit your site on their laptop. Different device = broken cookie tracking.

The Tracking Stack

You need 4 layers of tracking:

Layer 1: Tool-Level Metrics (What Your Automation Tool Tracks)

Every tool tracks:

  • Connection requests sent → accepted → messages sent → replies received
  • Campaign-level stats (open rates, reply rates, acceptance rates)
  • Per-prospect status (which step they're on in the sequence)

This is operational data. It tells you if your sequences are working. It does NOT tell you if your business is growing.

Layer 2: CRM Tracking (Where Conversations Become Pipeline)

Every LinkedIn conversation must be logged in your CRM. This is non-negotiable.

  • Expandi → CRM: Webhook → Zapier → HubSpot/Pipedrive. Create a new contact for each LinkedIn prospect. Tag the source as "LinkedIn Outreach."
  • LinkedHelper → CRM: Export messaging history → CSV import. Or use webhook integrations to send data to Zapier → CRM.
  • Waalaxy → CRM: Native HubSpot/Pipedrive integration. Best-in-class for CRM sync.
  • HeyReach → CRM: Native integrations with major CRMs.

Critical fields to track in CRM:

  • Source: "LinkedIn Outreach" (not just "LinkedIn" — you want to separate outreach from organic)
  • Campaign name: Which Expandi/Waalaxy campaign brought them in
  • First touch date: When the connection request was sent
  • Reply date: When they first responded
  • Meeting date: When the discovery call happened
  • Deal value: If they close, what's the contract value

Layer 3: Website Tracking (UTM + Tracking Pixels)

Every link you share in LinkedIn messages should have UTM parameters:

https://openhive.com/?utm_source=linkedin&utm_medium=outreach&utm_campaign=campaign_name&utm_content=message_step_2

This lets Google Analytics tell you:

  • How many LinkedIn outreach prospects visited your site
  • Which campaign and message step drove the visit
  • Whether they converted (signed up, requested demo, etc.)

Layer 4: Revenue Attribution (Connecting LinkedIn to Closed Deals)

In your CRM, create a custom report:

Deal Source Campaign First Touch → Close (Days) Deal Value
Acme Corp LinkedIn Outreach Campaign A (SaaS VP Sales) 47 $24,000
Beta Inc LinkedIn Outreach Campaign B (Post Engagers) 32 $18,000
Gamma LLC LinkedIn Outreach Campaign A (SaaS VP Sales) 61 $36,000

This report answers the question: "Which LinkedIn campaigns generate revenue?"

The ROI Calculation

LinkedIn Outreach ROI = (Revenue from LinkedIn-Sourced Deals - Tool Cost - Labor Cost) / (Tool Cost + Labor Cost) × 100

Example:

Input Value
Tool cost (Expandi × 3 seats) $2,376/year
SDR time (0.5 FTE @ $50K) $25,000/year
LinkedIn Premium/Sales Navigator $1,200/year
Total investment $28,576/year
Revenue from LinkedIn-sourced deals $340,000/year
ROI (340,000 - 28,576) / 28,576 × 100 = 1,090%

The Weekly Dashboard

Track these 7 metrics every week:

Metric Formula Why It Matters
Pipeline generated $ value of opportunities sourced from LinkedIn Proves business impact
Meetings booked # of discovery calls from LinkedIn outreach Measures conversion quality
Cost per meeting (Tool + labor cost) / meetings booked Efficiency metric
Reply rate by campaign Replies / messages sent Which messaging works
Acceptance rate by segment Accepts / requests sent Which targeting works
Time to first reply Avg days from first message to reply Sequence timing optimization
Account health score Restriction risk indicator Safety metric

The Quarterly Business Review

Every quarter, answer these 3 questions:

  1. Did LinkedIn outreach generate enough pipeline to justify the investment?

    • Compare pipeline generated to total investment
    • Target: 10x+ pipeline-to-spend ratio
  2. Which campaigns and segments are most efficient?

    • Rank campaigns by cost per meeting and cost per closed deal
    • Double down on the top 3, kill the bottom 3
  3. What would happen if we doubled volume?

    • If reply rate stays stable when you double sends, you have headroom
    • If reply rate drops, you've hit the saturation point for your ICP

The Hidden ROI: What Numbers Don't Capture

Some LinkedIn outreach benefits can't be measured:

  • Brand awareness: 1,000 people saw your name in their inbox. Even if they didn't reply, they know who you are.
  • Content amplification: When prospects connect with you, they enter your feed. Your LinkedIn posts now reach them organically.
  • Hiring pipeline: Some of the prospects you outreach to for sales might become future employees.
  • Market intelligence: Every conversation teaches you something about your ICP's pain points.

Track what you can. Acknowledge what you can't. But never let the lack of perfect attribution stop you from measuring what matters: did someone book a meeting, and did that meeting turn into revenue?


OpenHive's Built-in Attribution Stack

The attribution framework in this guide is the right model. It's also the reason most teams can't actually answer "what's the ROI of our LinkedIn outreach?" — building it requires stitching CRM data, Zapier zaps, and a quarterly analytics project across 5–7 tools.

OpenHive ships the framework as native infrastructure, not glue:

1. Per-touch attribution. Every LinkedIn DM, connection request, follow-up, and reply lands in HubSpot or Salesforce as a timestamped touch record, tied to the specific agent that produced it. The Logger agent runs continuously — there's no end-of-month sync, no "did the webhook fire" debugging.

2. Per-agent cost tracking. The cost-per-meeting math in this guide assumes you can divide tool spend by meetings booked. OpenHive tracks it directly: each campaign reports its inference cost (in dollars), prospects reached, replies received, meetings booked. Cost-per-meeting is a single number you can pull, per campaign, per week.

3. Pipeline reporting. The compounding-pipeline view ("revenue from accounts touched 6+ months ago") is automatic. Every prospect record carries its first-touch agent and date; CRM-side reporting groups by cohort without operator effort.

4. Multi-touch attribution. The first-touch / last-touch / linear / W-shaped models in this guide are all available out of the box. You pick the model in the OpenHive dashboard; the engine reattributes historic touches on each model change.

The benefit: the quarterly board slide that takes most teams a week to assemble is a one-click export. The "what should we cut?" conversation has data behind it — not vibes about which tool felt useful.

The bigger benefit: because attribution is built in, every agent that runs adds to the pipeline picture automatically. You don't have to remember to instrument it. You don't have to maintain Zapier glue. You don't have to track "did the webhook deliver?" The infrastructure handles it.

Start small: instrument one workflow first (e.g., the Personalized Connection Outreach recipe), pipe it to HubSpot, watch the pipeline view populate over 30 days, then expand. Most teams have a defensible ROI number from a single campaign by week 4.