Your VP Sales just signed a visitor identification contract. The AEs are expecting 500 new leads in Salesforce per month. You are the RevOps lead, and you already know what is going to happen. Duplicate records, orphaned leads, mis-routed accounts, and an attribution report that will break in week 3.
This post is not the integration tutorial. If you want the API walkthrough, read the Leadpipe Salesforce integration post. This is the RevOps angle: ownership, dedup, routing, and reporting decisions you need to make before the first visitor record flows in.
Who this post is for
You are a RevOps lead or Salesforce admin at a company with 20 to 300 sellers, a Salesforce Professional or Enterprise org that has been customized over 3+ years, and a marketing team that bought a visitor identification tool with or without consulting you.
The answer up front: before you open the integration settings, make 7 decisions. Object mapping. Dedup strategy. Lead vs Contact vs Account routing. Owner assignment rules. Activity capture rules. Attribution policy. Cleanup cadence. Skip any of the 7 and the integration works for a month, then drifts into chaos.
The 7 decisions
| # | Decision | Owner | Deadline |
|---|---|---|---|
| 1 | Lead vs Contact vs Account mapping | RevOps + sales leadership | Before integration turned on |
| 2 | Dedup strategy | RevOps | Week 1 |
| 3 | Owner assignment | Sales leadership | Week 1 |
| 4 | Activity capture | RevOps + marketing | Week 1 |
| 5 | Attribution fields | RevOps + marketing | Week 2 |
| 6 | Suppression and exclusion | Sales + customer success | Week 2 |
| 7 | Cleanup cadence | RevOps | Month 1 ongoing |
Decision 1: object mapping
The most common RevOps mistake is pushing every identified visitor to the Lead object. That pollutes your lead pool with contacts at accounts you already work, forces your AEs to dedupe manually, and breaks MQL reporting.
The rule we recommend:
| Situation | Object | Why |
|---|---|---|
| Visitor at a net-new account | Lead | Normal funnel entry |
| Visitor at an existing Account with no Contact | Contact on the Account | Adds a buyer persona to an open record |
| Visitor is an existing Contact | Update Contact + log activity | No new record needed |
| Visitor at an open Opportunity account | Log on Opportunity + notify Opp Owner | Signal for the AE, not a new lead |
| Visitor at a customer account | Log on Account + notify CSM | Expansion or churn signal |
Implement this with a merge-first logic, not a create-first logic. The visitor identification webhook fires. Your sync layer first checks if the email or domain matches an existing Contact, Lead, or Account. Only if no match is found does it create a new Lead.
Decision 2: dedup strategy
Salesforce has 3 tiers of deduplication: out-of-the-box matching, duplicate rules, and third-party tools. For visitor data, you need at least tier 2.
Minimum duplicate rules to enable:
- Lead-to-Lead by email
- Lead-to-Contact by email
- Contact-to-Contact by email
- Account-to-Account by domain
Recommended additional rules:
- Lead-to-Contact by (first + last name + company domain)
- Contact match by LinkedIn URL (custom field)
The visitor identification pixel will send multiple records per person over time (same email, different timestamps). If your dedup is weak, each repeat visit creates a new record. Within 90 days you will have 5-10x inflation in your lead count.
See why your CRM fills with bad data for the broader pattern.
Decision 3: owner assignment
Identified visitors without an owner are identified visitors that don’t get worked. But wrong-owner assignment is worse than no owner because it creates false confidence.
The assignment matrix:
| Record type | Owner | Rule |
|---|---|---|
| New Lead, high-intent page visit | Inbound SDR queue | Round-robin, P1 priority |
| New Lead, low-intent page visit | Marketing nurture queue | Not a sales touch yet |
| Contact on existing Account | Existing Account Owner | Maintain continuity |
| Contact on open Opportunity | Opportunity Owner (+ notification to AE) | AE decides next step |
| Contact on customer Account | CSM or CS Owner | Not SDR territory |
Two traps to avoid:
- Don’t route identified visitors at open-pipeline accounts to the inbound SDR. You will have an SDR cold-email someone your AE is in a conversation with.
- Don’t auto-convert every identified visitor to a Lead with an owner. Some should be Contacts on Accounts, some should be activities only, some should trigger alerts without creating a record at all.
Auto-routing visitors to sales reps has more on the logic.
Decision 4: activity capture
Visitor activity is gold for attribution and disaster for report performance if you capture it wrong.
Best practice:
- Log each identified visit as a custom activity type called “Website Visit” on the Lead, Contact, or Account level.
- Include fields: timestamp, pages viewed count, intent score, top page, session duration.
- Do NOT log every page view as a separate activity. Roll up per session.
- Do NOT create a Task for every visit. Tasks clog the “My Tasks” view for every AE.
Data retention:
Archive visit activity older than 12 months to a custom object or an external data warehouse. Salesforce reporting slows down fast when activity history crosses 5 million rows on a single Account.
Decision 5: attribution fields
You need new fields to track visitor-sourced pipeline separately from form-sourced pipeline. Without these fields, your attribution model can’t tell the difference.
Add to Lead and Contact:
- Leadpipe_First_Seen__c (date)
- Leadpipe_Last_Seen__c (date)
- Leadpipe_Visit_Count__c (number)
- Leadpipe_Top_Page__c (text)
- Leadpipe_Intent_Score__c (number)
- Leadpipe_Source_Tier__c (picklist: Pricing, Comparison, Product, Content, Other)
Add to Opportunity:
- Leadpipe_Influenced__c (checkbox, auto-set if any related Contact has visits in the 90 days before close)
- Leadpipe_Visit_Count_On_Account__c (rollup)
These 8 fields let you build the influenced-pipeline report without relying on last-touch attribution. See the CRO’s pipeline source audit for how to use these in reporting.
Decision 6: suppression and exclusion
Every identified visitor sync should respect 3 suppression lists.
- Customer suppression. No cold SDR outreach to current customers.
- Open-pipeline suppression. No cold SDR outreach to accounts already in active conversation with an AE.
- Do-not-contact suppression. Maintained manually by legal or CS, includes opt-outs and accounts that asked not to be contacted.
Implementation:
Before any identified Lead is assigned to an SDR, check against all 3 lists. If matched, route to the correct internal team instead (AE, CSM, or drop). The suppression check should happen inside the integration, not in a downstream flow, because once the Lead is owned by an SDR, removing it creates friction.
Decision 7: cleanup cadence
Visitor data is live data. It needs an ongoing hygiene ritual.
Monthly:
- Purge Leads with 0 activity in 90 days and no intent score > 50.
- Dedupe new Leads created in the last 30 days against Contacts.
- Check for orphan Accounts created from visitor data with 0 associated Contacts.
Quarterly:
- Review attribution field completeness. Any field below 80% fill rate is a broken integration.
- Audit owner distribution. If 1 SDR has 300% more Leads than the others, your routing is broken.
- Reconcile Leadpipe visit counts vs Salesforce activity counts. Drift > 5% means events are being lost.
The full hygiene playbook from a marketing ops angle is in how to keep visitor data clean in marketing ops.
The RevOps migration plan: 3 weeks end to end
| Week | Task | Deliverable |
|---|---|---|
| 1 | Duplicate rules, custom fields, activity type | Sandbox validated |
| 2 | Integration connected, routing rules live | First 7 days of traffic in production |
| 3 | Reports built, suppression active | Dashboards live |
Week 1 detail. Build in a sandbox. Add custom fields, duplicate rules, the Website Visit activity type, and routing assignment rules. Test with a CSV of 50 fake identified visitors to validate merge logic.
Week 2 detail. Flip the integration in production. Watch closely for the first 7 days. The 3 things that typically break: duplicate Leads created because dedup rules weren’t activated, records missing an owner because the queue wasn’t configured, and activity rollups failing on Accounts because the field type was wrong.
Week 3 detail. Build 4 reports:
- Identified Visitors by Source Tier (picklist filter)
- Opportunities with Leadpipe_Influenced__c = true
- SDR Outreach on Identified Leads (response rate)
- Accounts with Visit Count > 5 in last 30 Days (the watchlist)
Common failure modes and how to avoid them
Failure: explosion of duplicate Leads. Cause: dedup rules not enabled or matching on first+last name only. Fix: add email-based rules and monitor weekly for the first 30 days.
Failure: SDRs emailing customers. Cause: suppression list not checked before assignment. Fix: do the check in the integration layer, not downstream.
Failure: attribution report blank. Cause: custom fields added but integration not mapping to them. Fix: map every Leadpipe field to a Salesforce field in the sync config. Don’t leave any to “Unmapped.”
Failure: Account Owner receives alert for their own Account. Cause: no logic separating new vs existing Accounts. Fix: route new Account visits to SDR, existing Account visits to Account Owner.
Failure: reports slow after 90 days. Cause: every page view logged as a Task. Fix: roll up to one Activity per session, archive beyond 12 months.
What NOT to do
- Don’t route everything to Leads. You will lose 40% of the value and pollute your funnel.
- Don’t skip the sandbox. Visitor data volume is higher than forms. Breaking production is expensive.
- Don’t delete duplicates with a merge script on day 1. Let dedup rules prevent them going forward. Historical cleanup is a separate project.
- Don’t build 14 custom objects for visitor data. 1 activity type + 8 custom fields is enough for 90% of use cases.
- Don’t let this become a marketing project. Sales leadership must own routing decisions. RevOps owns the plumbing.
Tools and workflows
| Function | What to use |
|---|---|
| Core integration | Leadpipe native Salesforce connector |
| Dedup enhancement | Salesforce duplicate rules + DemandTools or Apsona if needed |
| Routing | Salesforce Assignment Rules or LeanData |
| Reporting | Native Salesforce reports + a weekly snapshot in the warehouse |
| Hygiene cadence | Monthly scheduled flows |
See the Salesforce integration post for the step-by-step connector setup.
What good looks like at day 90
Your sales ops report shows 3 things. Visit-to-meeting rate is steady at 4-8% on ICP-fit identified visitors. Dedup drift is under 3%. Attribution field fill rate is above 90%. If those 3 numbers hold, your integration is healthy. If any drift, investigate before your VP Sales loses confidence in the data.
RevOps is the function that keeps the integration honest. Nobody else will.
Every plan ships with the same identity graph, 23 REST endpoints, webhooks, and a 27-tool MCP server. Start in 5 minutes →