Guides

Salesforce Full of Bad Data? Visitor ID Helps

30% of CRM data decays annually. Instead of cleaning old records, add fresh visitor identification data that's verified by real website behavior.

Elene Marjanidze Elene Marjanidze · · 9 min read
Salesforce Full of Bad Data? Visitor ID Helps

Open your Salesforce right now and pick a random contact record. There’s a 30% chance the email address is wrong. The phone number might belong to someone else. The job title is from two promotions ago. The company field says a name that was acquired and rebranded 18 months ago.

This isn’t a failure of your operations team. It’s the nature of B2B data. People change jobs, get promoted, switch companies, and update their contact information - and none of those changes propagate back to your CRM. Research consistently shows that B2B data decays at roughly 30% per year. After two years without enrichment, more than half your database is stale.

The traditional fix is a data cleaning project. You hire a consultant or buy an enrichment tool, spend $30,000-$50,000, and update your records in bulk. Six months later, the data starts decaying again. Twelve months later, you’re back to where you started.

There’s a better approach: instead of periodically cleaning old data, add a continuous source of fresh data that’s verified by real behavior. When someone visits your website today, Leadpipe identifies them with current contact information - name, email, phone, title, company - because the data is resolved at the moment of the visit. It’s inherently fresh because these are real people visiting your site right now, not records aging in a database.

This post covers the CRM data decay problem, why periodic cleaning doesn’t solve it, and how to use visitor identification as a continuous data quality layer in Salesforce.


Table of Contents

  1. The Data Decay Problem
  2. Why Periodic Cleaning Doesn’t Work
  3. Visitor Data Is Inherently Fresh
  4. Setting Up the Salesforce Integration
  5. Deduplication: Update vs. Create
  6. Data Quality Comparison
  7. The Continuous Enrichment Loop
  8. What to Do with the Records You Already Have
  9. FAQ

The Data Decay Problem

B2B data decays for simple, unavoidable reasons:

People change jobs. The average tenure for a B2B professional is 2.5-3 years. That means every year, roughly 30-40% of the people in your CRM have either changed roles within their company or left entirely. Their email, phone, title, and sometimes even their company field becomes outdated.

Companies change. Acquisitions, rebrands, mergers, and restructurings change company names, domains, and organizational structures. The contact at “Acme Corp” is now at “Globex Group” after the acquisition, but your CRM still says Acme Corp.

Contact information rotates. Phone numbers change, people switch email providers, job titles evolve. A “Marketing Manager” becomes a “Senior Marketing Manager” becomes a “Director of Marketing” - each change making your CRM record slightly less accurate.

The compounding effect:

Time Since Record CreatedEstimated Accuracy
0-6 months85-90%
6-12 months70-80%
12-24 months50-65%
24-36 months35-50%
36+ monthsBelow 30%

If your CRM has 50,000 contacts and the average record is 18 months old, roughly 20,000-25,000 of those records have at least one incorrect field. Your sales team is working with a database where nearly half the contacts have wrong emails, wrong titles, or wrong company information.

The cost of bad data:

Bad data doesn’t just sit there being inaccurate. It actively hurts your operations:

  • Bounced emails damage your domain reputation and deliverability
  • Wrong titles mean your SDR’s personalization is wrong (“Hi Sarah, as a Marketing Manager…” when she’s been VP for a year)
  • Wrong companies mean your territory assignments and account ownership are misaligned
  • Duplicate records fragment activity history and lead to double-outreach
  • Stale records inflate pipeline forecasts with contacts who’ll never respond

Why Periodic Cleaning Doesn’t Work

The standard approach to CRM data quality is the periodic enrichment project. Every 12-18 months, you run your database through an enrichment provider like ZoomInfo, Clearbit, or Apollo. They update email addresses, verify phone numbers, correct titles, and flag contacts who’ve left their companies.

The project looks like this:

  1. Export 50,000 contacts from Salesforce
  2. Send to enrichment provider
  3. Provider returns updated records (at $0.10-$0.50 per record)
  4. Import updated records back into Salesforce
  5. Resolve conflicts (provider says title is X, CRM says Y - which is right?)
  6. Total cost: $15,000-$50,000 depending on volume and provider

Why it doesn’t stick:

The moment the enrichment project finishes, data starts decaying again. At 30% annual decay, six months after your $50K cleaning project, 15% of your records are already stale again. By 12 months, you’re back to 30% decay. By 18 months, you need another project.

It’s a treadmill. You’re spending $30-50K annually to periodically restore data quality to an acceptable level, only to watch it degrade between cycles.

The timing problem:

Periodic cleaning fixes records retroactively. It catches the fact that Sarah Chen changed jobs three months ago. But for those three months, your SDR was emailing Sarah at her old company with the wrong title. The damage - bounced emails, irrelevant outreach, missed opportunities - already happened.

What you need is continuous enrichment - a data source that’s always current, always flowing, always adding fresh information to your CRM. Not a once-a-year project, but a daily stream.


Visitor Data Is Inherently Fresh

This is the core insight: when someone visits your website today, the data Leadpipe captures about them is current as of today.

Why visitor-identified data is fresh by nature:

  • The person exists right now. They’re a real human browsing your website at this moment.
  • Their email is current. The identity resolution uses their active digital footprint, not a database record from two years ago.
  • Their title is current. Leadpipe’s identity graph reflects their current role, not the one they had when they were last enriched.
  • Their company is current. If they changed companies, the identification reflects where they work now.

What you get per identified visitor:

  • Full name
  • Current business email address
  • Current phone number
  • Current job title and seniority
  • Current company name, size, and industry
  • LinkedIn profile URL
  • Pages viewed on your site (with timestamps and duration)

Compare this to a purchased list or an enrichment project, where the data reflects a point-in-time snapshot that starts aging immediately. Visitor identification data is generated in real time from real behavior, so it’s inherently fresh.

The freshness advantage in numbers:

Data SourceAverage Data AgeAccuracy at Time of SDR Contact
Purchased list (12 months old)12 months55-65%
Enrichment project (6 months old)6 months70-80%
Visitor-identified data0-7 days90-95%

Your SDR contacts a visitor-identified lead within a week of identification. The data is days old, not months. That’s the difference between “Hi Sarah, as VP of Marketing at Acme Corp…” (correct) and “Hi Sarah, as Marketing Manager at the company formerly known as Acme Corp…” (embarrassing).


Setting Up the Salesforce Integration

Leadpipe integrates directly with Salesforce to push identified visitor data into your CRM automatically. Here’s the setup.

Option 1: Native Salesforce integration

Leadpipe’s native Salesforce connector handles the connection without any middleware:

  1. Connect your Salesforce org from the Leadpipe dashboard
  2. Map Leadpipe fields to Salesforce fields (name, email, phone, title, company, etc.)
  3. Configure lead/contact creation rules (create new, update existing, or both)
  4. Set up page view logging (optional: log each page view as an Activity)
  5. Activate the integration

From this point forward, every identified visitor automatically flows into Salesforce.

Option 2: Webhook to Salesforce via middleware

For more control over the data flow, use Leadpipe’s webhook with Zapier or a custom middleware:

  1. Configure a Leadpipe webhook that fires on each identification
  2. Build a Zapier workflow (or custom script) that receives the webhook
  3. Add logic for deduplication (check if the contact exists first)
  4. Push to Salesforce as a new Lead, new Contact, or update to an existing record

Option 2 gives you more flexibility for complex routing, deduplication rules, and data transformation. Option 1 is faster to set up and handles the common cases well.


Deduplication: Update vs. Create

The most important configuration decision is how to handle visitors who already exist in your CRM.

The deduplication logic:

When Leadpipe identifies a visitor:
  1. Check Salesforce for existing record (match on email)
  2. IF match found:
     → Update existing record with fresh data
     → Log the website visit as an Activity
  3. IF no match found:
     → Create new Lead record
     → Log the website visit as an Activity

Why updating existing records is critical:

Remember Sarah Chen, whose title changed from Marketing Manager to VP of Marketing eight months ago? If Leadpipe identifies Sarah visiting your site today and your integration creates a new Lead record (because you only create, never update), you now have two Sarah Chen records - one with the wrong title and one with the right title. That’s worse than having one record with the wrong title.

The update path fixes this. When Sarah visits your site and Leadpipe identifies her with her current title, the integration finds her existing Salesforce record, updates the title field, adds the page view activity, and flags the record as recently verified. One record, fresh data, complete activity history.

Fields to update vs. fields to protect:

Not every field should be overwritten by visitor data. Set your integration to update:

  • Job title (frequently changes)
  • Phone number (changes with jobs)
  • Company name (changes with acquisitions/job changes)
  • LinkedIn URL (stable but good to verify)
  • Last verified date (custom field - set to today)

And protect:

  • Account owner (your internal assignment, not data)
  • Lead status (your workflow state)
  • Notes and activity history (your team’s work)
  • Custom scoring fields (your calculations)
  • Lead source (preserve original attribution)

Data Quality Comparison

Let’s compare data from three sources you might feed into Salesforce:

Purchased List Data

Source: ZoomInfo, Apollo, Lusha, or similar data providers

How it’s collected: Web scraping, public records, data partnerships, user-contributed data

Freshness: Updated on a rolling basis, but you get a point-in-time snapshot when you purchase

Typical accuracy:

  • Email: 70-80% valid at time of purchase (decays to 50-60% within 12 months)
  • Phone: 50-65% accurate
  • Title: 65-75% current
  • Company: 80-85% current

Best for: Building initial prospect lists, filling gaps in your CRM

Limitation: You’re paying for data about people whether they’re interested in your product or not

Enrichment Project Data

Source: Running existing CRM records through an enrichment API

How it’s collected: Same underlying data sources as purchased lists, but matched against your existing records

Freshness: Current at time of enrichment, then decays at the standard 30%/year rate

Typical accuracy:

  • Email: 80-85% valid immediately after enrichment
  • Phone: 55-70% accurate
  • Title: 75-85% current
  • Company: 85-90% current

Best for: Periodic database maintenance

Limitation: Expensive, temporary, doesn’t address the underlying decay problem

Visitor-Identified Data

Source: Leadpipe identification of anonymous website visitors

How it’s collected: Deterministic matching of website visitors using Leadpipe’s identity graph

Freshness: Real-time - data is generated at the moment of the visit

Typical accuracy:

  • Email: 90-95% valid (current digital footprint)
  • Phone: 75-85% accurate
  • Title: 85-90% current
  • Company: 90-95% current

Best for: Continuous enrichment, high-accuracy data, leads with proven interest

Unique advantage: Every record comes with behavioral context - the visitor demonstrated interest by visiting your website, so the data comes pre-qualified


The Continuous Enrichment Loop

Instead of periodic cleaning projects, visitor identification creates a continuous enrichment loop:

The loop:

Website visitor arrives

Leadpipe identifies them (name, email, title, company)

Integration checks Salesforce:
    ├─ Existing record? → Update with fresh data
    └─ New contact? → Create new Lead

Record is now verified as of today

Next visit → cycle repeats with updated data

Why the loop compounds:

Every month, your website gets thousands of visitors. A percentage of those visitors already exist in your CRM. When they’re identified, their records get refreshed - not through a periodic project, but through organic website activity.

Over time, the visitors who return to your site most frequently are the ones whose CRM records stay freshest. And those are exactly the contacts you care about most - the ones actively engaging with your brand.

The numbers:

If your site gets 10,000 monthly visitors and Leadpipe identifies 30-40% of them, that’s 3,000-4,000 identifications per month. If 20% of those already exist in your CRM, that’s 600-800 existing records refreshed every month - automatically, continuously, without a project.

After 12 months, that’s 7,200-9,600 existing records refreshed. If your CRM has 50,000 contacts, you’ve verified 15-19% of your database purely through organic website visits. And every new identification that doesn’t match an existing record is a net-new lead with proven website interest.

Leadpipe feeds fresh, behavior-verified data into Salesforce continuously. No cleaning projects. No data decay. Start with 500 free identified leads.

Start your free trial →


What to Do with the Records You Already Have

Visitor identification solves the decay problem going forward. But what about the 50,000 records already in your CRM?

Triage your existing database:

Tier 1: Active pipeline contacts. These are contacts associated with open opportunities. Manually verify or enrich these immediately - they’re worth the effort.

Tier 2: Recent website visitors. If you install Leadpipe today, any existing CRM contacts who visit your website will get automatically refreshed. This tier takes care of itself over time.

Tier 3: Contacts with recent email engagement. If a contact opened or clicked an email in the last 90 days, their email is probably still valid. Low priority for enrichment.

Tier 4: Contacts with no recent activity. These are the records most likely to be stale. Before spending money enriching them, ask: do you actually need them? If they haven’t engaged in 12+ months and aren’t in your target account list, they might be better archived than enriched.

The practical approach:

  1. Install Leadpipe and start the continuous enrichment loop (handles Tier 2 automatically)
  2. Manually verify Tier 1 contacts (small volume, high value)
  3. Run a targeted enrichment project on Tier 4 contacts that match your current ICP (skip the rest)
  4. Archive records that are 24+ months old with zero activity and zero website visits

This approach is cheaper than a full database enrichment project and produces better results because it focuses resources where they matter most.


FAQ

Does this replace our existing enrichment tools?

Not necessarily. Visitor identification and enrichment tools serve different purposes. Enrichment tools update existing records in bulk. Visitor identification adds new records and updates existing ones based on real-time website behavior. Many teams use both: visitor identification as the continuous primary feed, with periodic enrichment projects as a supplementary cleanup. Over time, the need for bulk enrichment projects decreases as the continuous feed keeps more records current.

What if Leadpipe’s data conflicts with what’s already in Salesforce?

You configure which fields Leadpipe can update and which it can’t. For fields like job title and phone number, Leadpipe’s data is likely more current (it’s from today’s visit, not last year’s enrichment). For fields like lead source or account owner, keep your existing values. When in doubt, you can set the integration to flag conflicts for manual review rather than auto-overwriting.

How does this work with Salesforce’s duplicate management?

Leadpipe’s integration matches on email address before creating new records. If a match is found, it updates the existing record instead of creating a duplicate. This works alongside Salesforce’s native duplicate rules - Leadpipe handles the dedup at the point of entry, and Salesforce’s rules catch any edge cases that slip through.

Will this overwhelm our Salesforce with low-quality leads?

You control which identified visitors flow into Salesforce. Filter by ICP fit (company size, industry, job title) to ensure only relevant contacts are created. A visitor from a 200-person SaaS company with a VP title gets pushed to Salesforce. A student from a university doesn’t. The filtering happens in the webhook or integration configuration.

What about data from visitors outside the US?

For US visitors, Leadpipe provides full person-level data (name, email, phone, title, company). For EU visitors, identification is company-level only to maintain GDPR compliance. Both can be pushed to Salesforce, but the level of detail differs by geography.


Fresh Data Beats Clean Data

The CRM data quality problem isn’t really about cleaning. It’s about freshness. No matter how thoroughly you clean your database today, it starts decaying tomorrow. The only sustainable solution is a continuous source of fresh data - data that’s generated from real, current behavior.

Visitor identification provides exactly that. Every time someone visits your website, you get a data point that’s verified by the visit itself. The email is current. The title is current. The company is current. And unlike a purchased list or a one-time enrichment project, the data keeps flowing.

Stop running cleanup projects. Start building a continuous enrichment loop.

Leadpipe identifies 30-40% of anonymous website visitors with current contact data. Native Salesforce integration. Start with 500 free leads, no credit card required.

Start enriching your CRM automatically →