The problem. The database holds 12,000 contacts; real customers number 7,500. The same person exists as a Telegram display name, a phone number from WhatsApp, an Instagram handle, and a full name from the website form. LTV analysis is impossible, and repeat purchases look like new business.
Why it happens. Messengers hand over different identifiers: a chat ID from Telegram, an internal ID from Instagram, a phone number from WhatsApp, an email from your website form. Your system cannot reconcile them unless you write the rule.
How to spot it in ten minutes. Open the CRM and search three or four names of regular customers. If even one returns more than one record, you have no deduplication — and the scale of the problem is proportional to the size of your database.
The fix. Set duplicate matching on phone number as the primary key, and make the phone field mandatory before a deal can move to "Qualified." For Instagram and Telegram, where no number exists at first, that means one simple step in the script: the rep asks for a number in the first or second message with a clear reason — to issue an invoice, check availability, or hold a booking.
Then merge regularly: once a month, export contacts sharing a number and merge them in bulk. Dull work, one hour, and it keeps the database usable for analysis. On avoiding the mess at the very start, see our piece on
migrating your customer database into a CRM without losses.
What it costs. Duplicates break three things at once. Channel analytics — you no longer know where a customer actually came from, so you cut the wrong budget. Broadcasts — a person receives the same offer three times and complains. Motivation — two reps claim the same deal. The last one costs the most, because it gets paid in internal conflict.