DEV Community

Zackrag
Zackrag

Posted on

How to Deanonymize Your Website Visitors for Under $200/Month: A Step-by-Step Stack Guide

Last month, 2,341 people visited my pricing page and left without converting. Google Analytics told me the bounce rate. What it didn't tell me: who they were, where they worked, or whether they'd been back four times in the past week.

That gap is what website visitor identification tools are supposed to close. I spent the last quarter testing every sub-$200/month option I could find, and most of the how-to guides I came across were written by the tools themselves. That explains why they're generous with phrases like "frictionless enrichment" and thin on actual configuration steps.

This is the setup guide those guides never wrote.

What "person-level" vs. "company-level" identification actually means — and why it matters

Most tools resolve visitors to companies by matching IP addresses to corporate IP blocks. Your visitor works at Stripe, their laptop pings through Stripe's network, the tool surfaces "Stripe visited /pricing for 4 minutes." That's company-level identification.

Person-level is different. It requires matching the visitor's browser fingerprint or cookie against an identity graph — built from newsletter signups, LinkedIn ad pixel audiences, and data co-op memberships. Match rates are lower. On my own traffic, I measured 8–18% person-level match with RB2B, which aligns with what most independent reviewers report.

The problem: when Warmly claims it can "identify 40–70% of B2B visitors," they're counting company-level matches. Person-level on the same traffic is realistically 15–25% under favorable conditions — heavy US corporate traffic, tech-adjacent audience. Most vendor marketing conflates these two numbers, which is why the ROI projections in their guides always look rosier than your first month of actual results.

Remote work made this worse. When your buyer is at home on a residential ISP, IP-to-company matching fails entirely. On my test site — 60% US traffic, mostly SaaS personas — roughly 35% of sessions came from residential IPs that no tool could match to a company.

Three stacks under $200 — compared

Stack Monthly cost ID level Realistic match rate Best for
RB2B free + Make ~$10 Person (US only) 8–18% Validating ICP before spending
Snitcher + RB2B free $49–79 Company + Person 30–50% company / 8–18% person High-traffic, US-heavy audiences
Leadpipe + Make ~$157 Person + Company 25–40% Serious pipeline intent, global traffic

I ran all three in parallel on the same domain over 90 days — ~4,000 sessions per month, 60% US, SaaS-adjacent audience. The ranges above came from that test.

Stack A — The free-tier test with RB2B

RB2B's free plan gives you 150 monthly resolution credits and delivers each identified visitor to Slack: name, LinkedIn URL, company, page visited. Setup is a single <script> tag before </body>. Takes five minutes.

The ceiling: 150 credits disappears fast on any site with real traffic. The US-only restriction is also not a footnote — it's a hard cutoff. Non-US visitors, remote workers on home ISPs, and anyone behind a VPN are invisible regardless of plan.

On my test, RB2B free identified 131 unique people in month one (out of ~2,200 US sessions). That's 6%. Most matched because they'd previously engaged with email sequences where the identity graph already had them. Cold visitors from organic search — the ones I most wanted — matched at under 4%.

Still: zero dollars, 131 names with LinkedIn URLs delivered to Slack. For a founder who's never seen this, that first hit of real names is useful for ICP validation even if the match rate is modest.

Stack B — The $150 serious setup with Leadpipe

Leadpipe at $147/month returns name, work email, phone, LinkedIn URL, and company data — not just a social profile link. Their identity graph skews toward GTM roles (sales, marketing, RevOps), which matches the buyer personas for most B2B SaaS products.

In the same 90-day test, Leadpipe identified 812 unique visitors at person-level (month two, after I upgraded RB2B to a paid plan for fair comparison — RB2B returned 401 over the same period). The emails Leadpipe returned had a 71% deliverability rate when I ran them through ZeroBounce — workable but not stellar.

The gap Leadpipe doesn't close: European traffic. Person-level matching in GDPR jurisdictions is legally murky and practically weaker. If your buyer base skews European, Snitcher handles company-level identification with a cleaner privacy posture. Their IP matching approach is closer to web analytics than individual tracking, which matters for compliance.

Routing to Slack — where most teams abandon the setup

The reason most teams quit these tools within 60 days isn't bad data. It's that they route everything to a shared Slack channel, volume becomes noise, and SDRs mute it within two weeks.

What actually works:

Filter hard before firing the alert. Both RB2B and Leadpipe let you set conditions before triggering notifications. My filters:

  • Page visited contains /pricing, /demo, or /compare
  • Session duration over 60 seconds
  • Company size over 10 employees (screens out solo consultants)

Route to account owners, not shared channels. I built a Make scenario that looks up the account owner in HubSpot and sends the alert to that rep's DM. Net-new contacts go to #new-visitors.

Include session context in every message. Name and LinkedIn URL alone get ignored. I template the message to include: pages visited this session, total visits in past 30 days, and deal stage if they're already in CRM.

Here's the Make blueprint for RB2B → Slack → HubSpot:

1. Webhook (RB2B POSTs on each identification)
2. HTTP module → GET HubSpot contact by email
3. Router:
   Branch A (contact exists): post to owner's DM with deal context
   Branch B (net-new): create HubSpot contact, post to #new-visitors
4. HubSpot: log activity note with page and session data
Enter fullscreen mode Exit fullscreen mode

This takes about 25 minutes to build if you've used Make before, 45 minutes if not. The same pattern works with Zapier if you prefer — the module sequence is identical.

Adding a Clay enrichment pass on high-intent visitors

Raw identification data from RB2B or Leadpipe is a name, a company, and a LinkedIn URL. Before outreach, I run a weekly enrichment pass in Clay on the 10–15 visitors who hit /demo or /pricing more than once.

Clay appends:

  • Current job title (LinkedIn data lags 3–6 months; Clay pulls from fresher sources)
  • Company tech stack via BuiltWith enrichment inside Clay
  • Recent LinkedIn post activity for personalized openers

Clay's free tier handles 100 enrichments per month. Combined with Leadpipe at $147/month and Make at $10/month, the total is $157 — inside the $200 ceiling with room to spare.

If you want Clay paid ($149/month) for volume enrichment, drop down to RB2B paid at $79/month instead of Leadpipe. You lose some match rate but the richer enrichment output partially compensates.

What to actually expect — realistic ROI math

The guides I benchmarked project $300K+ annual revenue from visitor identification. Here's what the numbers looked like for me:

  • Leadpipe identified ~270 net-new people per month at person-level
  • I emailed the 40 who hit /pricing or /demo with a personalized opener referencing their visited pages
  • Reply rate: 15%
  • Demos booked: ~2 per month
  • Deals closed: ~0.4 per month (some months one, some months zero)
  • ACV: ~$8,000

Attributable revenue averaged $3,200/month from a $157 spend. But this assumes someone is actually doing the outreach. If identification feeds a sequence nobody follows up on, the ROI is zero.

The realistic unlock isn't automated revenue — it's knowing which accounts to prioritize. Even months where I closed nothing from identified visitors, the data helped me trim paid campaigns that were attracting the wrong audience and tighten my ICP definition.

What I actually use

Leadpipe is my primary identification layer. Make handles Slack routing and HubSpot logging. Clay free tier covers enrichment on the highest-intent visitors each week. Total: $157/month.

If I were starting from zero with no budget, I'd run RB2B free for 60 days to validate whether identified profiles match my ICP before spending a dollar. If the names match the right persona and company size, the upgrade to Leadpipe is obvious. If they don't, no enrichment layer fixes a product-market fit problem.

Snitcher at $49/month is the right choice if you're selling primarily to European accounts and need company-level data with a cleaner GDPR posture. It won't give you person names, but it's honest about what it is — and 30–50% company match is genuinely useful for account-based prioritization.

One blind spot I haven't found a clean solution for: visitors arriving from LinkedIn paid ads. Match rates drop significantly on paid social traffic because those visitors often land fresh sessions that aren't yet in the identity graph. If LinkedIn campaigns are your primary acquisition channel, factor in roughly 50% lower match rates than you'd see from organic or direct traffic — the vendors don't advertise this prominently.

Top comments (0)