Duplicate lead prevention in an omnichannel flow
When the same customer writes on Instagram, WhatsApp and the website, you can end up with three records, three managers and two robot calls. This guide shows how to prevent duplicate leads at the moment they are created: person, lead and enquiry, four rules at intake, a dedupe window for automatic actions, hard cases, counting correctly in reports and common mistakes.
Short answer
In an omnichannel flow, duplicate leads are prevented at the moment a lead is created, not cleaned up afterwards. Four rules are enough: store phone numbers in one format; if an open lead exists for the same number, do not open a new one but attach the new enquiry to it; put a dedupe window on automatic calls and messages; and report leads separately from unique people.
This article is about incoming enquiries. Merging duplicate records that have already piled up in the CRM is a separate job with its own risks.
Where duplicates come from
With one channel, duplicates are rare. As channels multiply, the same person comes in through several doors and each door opens its own record. Typical sources:
- The customer writes their number on Instagram, then asks the same question on WhatsApp.
- They fill in an ad form and, when the reply is slow, call.
- They type the number one way in the website chat (055…) and another way in a form (+99455…).
- A family member uses the same number to ask about a different product.
- An old customer list is uploaded as a CSV and numbers already in the system are created again.
What duplicates cost
A duplicate lead looks like technical untidiness, but the consequences reach the business. Two managers call the same person separately and the customer sees that the company does not recognise them. An automatic call rule dials the same number twice. Lead counts swell and conversion looks artificially low: 20 sales from 100 leads looks like 20%, when those 100 leads may be 70 people.
The most hidden cost is in prioritisation. Three records for the same person land in the queue as three "new leads" and get in front of a genuinely new customer.
Separate three ideas: person, lead, enquiry
- Person (customer)Someone identified by a phone number or email. They should have one record.
- LeadA specific sales opportunity for that person: "kitchen furniture", "loan advice". One person can have several leads over time.
- EnquiryEach new message, call or form. An enquiry either opens a new lead or is written to an existing lead's history.
Fighting duplicates starts from this distinction: a second enquiry from the same person is not automatically a new lead. A new lead opens only when there is no open opportunity, or when the customer clearly wants a different product.
Four rules at intake
- 1. One formatNumbers are stored with the country code in one form: 055 234 56 78 and +994552345678 become the same key.
- 2. Open-lead checkIf an open (in-progress) lead exists for this number, the new enquiry attaches to it and no new record is created.
- 3. Closed-lead historyIf the previous lead was closed as won or lost, a new lead opens, but the earlier history is visible to the manager.
- 4. Ownership staysAn attached enquiry goes to the existing lead's owner as a notification and is not distributed to another manager.
A dedupe window for automatic actions
Merging the record correctly is not the whole job. If one person left their number in three channels, the rule in each channel may fire its own automatic action: three greeting messages, two robot calls. The defence is a dedupe window: "if this number was called in the last 24 hours, do not call again". The window should be counted across the whole company, not per rule, or two different rules can call the same person a minute apart.
The second brake: if a manager has already taken the lead, the automatic call is cancelled. A robot calling a customer while a person is talking to them is the worst outcome in this area.
Hard cases
- One number, two people: a family or office number. If the name and need differ, the manager splits the record.
- One person, two numbers: work and personal. Not merged automatically — linked by hand once the customer confirms.
- An enquiry without a number: someone who only asked a question on Instagram. No lead is created; the chat stays on the profile.
- B2B: three employees from one company. That is three people and one company opportunity — merging them into one record is wrong.
Recognising a customer across channels is covered in detail in cross-channel customer context.
Counting correctly in reports
Once the duplicate rule is in place, reports should show three numbers separately: incoming enquiries, leads created and unique people. Use unique people to compare marketing campaigns, leads to plan the sales team's workload, and enquiries for service workload. When the three are mixed up, the value of each channel is misjudged.
An illustrative example
This is an illustrative example. A car dealership runs a weekend campaign. On Thursday a customer asks on Instagram about buying on credit and writes their number. A lead is created and assigned to sales manager Elvin.
On Saturday the same person asks the same question on WhatsApp, and on Sunday fills in the website form. Without a duplicate rule, three leads would land with three managers. With it, both new enquiries attach to Elvin's lead, Elvin gets a notification, and on Monday opens the call with "about the loan term you asked on WhatsApp".
Common mistakes
- Cleaning duplicates by hand only at month end — by then two calls have already been made.
- Attaching every new enquiry to an old lead, even one closed a year ago.
- Deleting duplicates — the enquiry's source and date are lost and campaign reporting breaks.
- Setting dedupe per rule rather than per company.
Limitations
A duplicate rule depends on a reliable key. If the customer gives no number, two chats in different channels cannot and should not be merged automatically. A mistyped number will also look like a new person. And the rule only works inside one system: if leads are created both in Vexvon and in an external CRM, the systems need their own reconciliation.
How Vexvon catches duplicates
In Vexvon, phone numbers are detected in chats in five formats, and the company's own internal numbers are not counted as leads. If an open lead exists in the same company for the same number, the new lead is linked to it as a duplicate and the earlier history is shown; closed leads are displayed as history. CSV imports check for repeated numbers during upload. Automatic AI call rules have a company-wide dedupe window (24 hours by default) and a "do not call if a manager has taken it" condition. More on CRM and lead management.
Next step
Sort last month's lead list by phone number and count the rows that share a number. That figure is your duplicate rate, and it shows which of the four rules is missing. Which fields a chatbot should write to the CRM is covered in chatbot and the CRM customer record; we can check your rules together during a demo.