BRUTAL MARKETING

One Customer Card: Messengers in Kommo Without Duplicates

month 2026
BRUTAL MARKETING

One Customer Card: Messengers in Kommo Without Duplicates

month 2026

One Customer Card: How to Merge Viber, Telegram, WhatsApp and Instagram in Kommo Without Duplicates

On one project we opened a database of 12,400 contacts and, after two days of auditing, found that it described roughly 9,700 real people. The rest was the same customer who wrote on Instagram, changed his mind and repeated the question on Viber, then a week later filled in a website form with his phone number.

Three cards, three sales reps, three different "sources" in the report.
Serhii Ponomarenko. One Customer Card: Messengers in Kommo Without Duplicates
Serhii
Ponomarenko
The owner was convinced his conversion rate was 11%. After merging the cards it became 14.3% — not because the team started selling better, but because the denominator finally counted people instead of records. At the same time it turned out that 18% of "new" paid-traffic leads were customers who had already bought the year before.

What follows is the mechanics: why channels can't see each other, which fields to match them on, where automatic merging saves you and where it breaks your database, and how to clean up the duplicates you already have. No theory about being "customer-centric" — only the rules we configure in Kommo on live projects.

Why One Customer Becomes Three Cards

The cause isn't your reps and isn't the CRM. The cause is that every channel hands the system its own identifier, and those identifiers don't overlap.

When a customer writes to your Telegram bot, the messenger passes Kommo an internal chat ID and a username. There's no phone number — Telegram doesn't expose it until the person taps "Share contact" themselves. Instagram passes its own user identifier tied to your business account, plus a handle — again, no phone. WhatsApp is the opposite: it's built around the number, so the phone arrives immediately. Viber depends on the setup: a bot gives you a subscriber ID, while "number-based" Viber through a provider gives you the phone.

To the CRM these are three different strangers. It has no grounds to assume that @olena_k on Telegram, olena.kravets on Instagram and +380671234567 from WhatsApp are one person. Formally it's right: they share no field at all.

What Actually Reaches Kommo From Each Channel

Look at that table from the system's point of view. Out of nine typical sources, four deliver a phone number. Which means any attempt to run deduplication on phone alone fails more than half the time — and that's the main reason "but we have duplicate control switched on" doesn't hold up.

Four Scenarios That Create Most Duplicates

The customer switches channels between touchpoints. Wrote on Instagram from a phone while queuing, then continued on Viber in the evening because it's easier on a laptop. In our experience at Brutal Marketing this is the most common scenario in e-commerce and services: 25–40% of customers touch the business through more than one channel before the first purchase.

A rep creates the card manually. The customer called, the rep searched for 067... while the database stored +38067..., found nothing and created a new record. From there that card lives its own life.

Importing an old database. An Excel file gets loaded on top of existing contacts with no matching logic. What to prepare before that kind of migration we covered in our piece on common mistakes when choosing and configuring a CRM.

An integration glitch. The messenger widget dropped for five minutes, reconnected and failed to recognise the existing chat. Or the messenger provider created the contact faster than Kommo could check the database.

What a Split Card Costs

Run the numbers on your own data. A rep spends 3–5 minutes reconstructing a history the card doesn't hold. At 40 conversations a day and 20% duplicates, that's 30–40 minutes lost daily per person.

Then comes the second layer — direct losses. Two reps message the same customer with different terms. The customer gets a discount twice, or worse, sees two different prices. The campaign reaches them three times. The "new lead" automation fires on someone who has been buying from you for three years.

The third layer is decisions made on distorted numbers. More on that below, because that's where duplicates cost the most.
Why One Customer Becomes Three Cards | One Customer Card: Messengers in Kommo Without Duplicates – Brutal Marketing

Matching Rules: Phone, Email, Messenger ID

Deduplication isn't one button — it's a set of rules with different reliability. First each key on its own, then how to stack them into a working sequence.

Phone: The Primary Key, and It Needs Normalising

The phone is the most reliable identifier of an individual in B2C. The problem isn't the number, it's how people write it down.

One number lands in the database in at least five shapes: 0671234567, +380671234567, 380671234567, +38 (067) 123-45-67, 067 123 45 67. For exact-match logic those are five different customers. So step one is normalising to a single format (we always reduce to +380XXXXXXXXX) and comparing the last nine digits rather than the whole string.

What to do technically:
  1. Use the system "Phone" field type, not a custom text field. Text fields don't participate in matching properly.
  2. Run the existing database through normalisation before any cleanup.
  3. Stop reps entering numbers freely — input masks on website forms and on the field in the card.
  4. Make phone collection mandatory on forms wherever the channel allows it.

Separately: a contact can hold several numbers (work, personal, a spouse's). Matching has to check every number on the contact, not just the first.

Email: The Second Key, Weaker Than It Looks

Email works well in B2B and badly in B2C. The reason is simple: small-business customers often don't leave an address at all, and when they do it may be a shared family mailbox or a corporate info@.

Typical traps:
  • Corporate addresses. info@company.com isn't a person. Merge on it and you'll glue the director, the accountant and the procurement lead into one card.
  • Gmail aliases. ivan.petrenko@gmail.com and ivanpetrenko@gmail.com are technically one mailbox; to the CRM they're two.
  • Plus addressing. ivan+shop@gmail.com leads to the same person.

The practical fix: keep email as a matching key, but with a blocklist of domains and addresses. Exclude every info@, office@, noreply@, sales@ entirely. For Gmail, normalise dots and plus-aliases before comparing.

Messenger ID: An Exact Key That Only Works Inside Its Own Channel

The chat identifier is the only thing that gives you 100% precision. Same Telegram chat ID on two cards means the same human, guaranteed.

But this key has two limits. First, it isn't portable — a Telegram ID tells you nothing about Instagram. Second, it can change. Reconnect the bot, switch the WhatsApp Business number or move Instagram to a different business account, and old identifiers lose their link to new conversations.
What that means for configuration:
  • Messenger ID is an auto-merge rule with no moderation. Match = one customer.
  • The @handle is not an identifier. People change handles, and two different customers can hold the same one in sequence.
  • Before changing a bot or business account, export the "contact — ID" pairs, or your database will double after reconnection.

The Matching Cascade: What Order to Apply the Rules

Levels 5 and 6 are on the list deliberately. That's what integrators sometimes propose "for completeness," and that's exactly where databases break: there are thousands of people sharing a name, and gluing them together is worse than living with duplicates.

Automatic Merging vs Manual Moderation

This is where the real decision sits. Automation saves hours, but an automation error costs more than a rep's error, because it multiplies across the whole database and surfaces months later.

What Kommo's Built-In Duplicate Control Does

Kommo's duplicate control detects duplicated data in incoming leads. It's switched on at pipeline level, and through "Set up rules" you enable or disable checking per source — with the toggle off, similar leads from that channel won't be merged.

A few things worth knowing before you configure it:
  • You can specify which pipelines and stages the system searches for matches. Leads outside those stages don't take part in the comparison. That's useful: two-year-old closed deals usually shouldn't be touched.
  • Conflict behaviour is configured separately — either update the existing lead with the incoming data (phone and email fields get overwritten), or leave existing data unchanged. In our experience the safer option is not to overwrite, but to add the new number as a second value.
  • Duplicate control works with standard integrations. Not all third-party integrations are supported: if the widget developer didn't implement the option, the source simply won't appear in the list.

That last point is critical for messengers specifically. Viber, Telegram and some WhatsApp channels connect through third-party services, and matching behaviour depends on how the particular widget was built. So always verify the setup with test conversations from each channel separately rather than taking it on faith.

For records already in the database Kommo has a separate mechanism: records the system suspects are duplicates get tagged, and clicking the tag opens a side-by-side comparison where you choose which values survive the merge.

Where Automation Gets It Wrong

We've seen four typical situations where automatic phone-based merging did damage.

One family, one number. A wife orders a course for her husband from his number, then orders one for herself. Automation collapses two deals into one card and breaks both personalisation and product-level reporting.

A corporate number. In B2B a company often has one inbound line. Three different contact persons arrive on the same reception number. Here phone matching should be switched off entirely and email used instead.

Dealers and intermediaries. One number places orders for dozens of end customers. Merging turns that into an unreadable card with a hundred deals.

Data-entry error by a rep. A rep put their own number into a test deal. Automation then attached everything that followed to that contact.

The Three-Zone Model

The working answer isn't "automatic or manual" — it's splitting by risk.
The yellow zone is 10–15% of cases and genuinely takes a sales manager 20–30 minutes a week. Cheaper than untangling a bad merge a quarter later.

A Quick Comparison

The strongest argument for moderation is irreversibility. You can't un-merge cards in Kommo with native tools: the data is already mixed, and recovery only works from an export taken before the operation. A moderation error, by contrast, is visible immediately and fixed in a minute.

So our standard configuration looks like this: automation on cascade levels 1–3, moderation on level 4, a hard ban on levels 5–6. In businesses with an average deal above $1,200 we often push the line further — even a phone match goes to moderation if the card already holds a closed deal.

How to Obtain a Phone Number Where There Isn't One

Since Telegram and Instagram don't provide phone numbers, you have to get them in conversation. Not "ask at some point" — build it into the process.
  1. A "Share contact" button in the Telegram bot at step one. Phrase it not as "leave your number" but as "so we can hold the booking and send confirmation." Conversion into a shared number on our projects runs 55–70% when the ask comes with a concrete benefit.
  2. A Salesbot that requests the phone before quoting a price. The customer gets a quote, you get a matching key.
  3. An order form instead of closing in chat. Even a two-field form solves it.
  4. The phone at the delivery stage. In e-commerce the number appears at checkout — the key is making sure the integration writes it onto the same contact instead of creating a new one.
  5. A tied promo code. A personal code issued on Instagram and redeemed on the site links two identifiers without asking for a number at all.

Once a phone appears on a Telegram contact's card, cascade level 2 fires — and the system merges it with the WhatsApp card holding the same number. That's exactly why collecting phone numbers inside messengers matters more than any deduplication widget.

What to Do With the Duplicates Already in Your Database

The most common mistake here is to start deleting. Deleting a contact doesn't solve anything: it breaks the CRM's internal logic and spawns new duplicates, because chats, deals and tasks lose their links. The correct action is always the same — merge.

Here's the order we use when cleaning client databases.

Step 1. Export Everything Before You Start

A full export of contacts, companies and deals to file. This isn't a formality: merging in Kommo is irreversible, and if a rule turns out to be wrong, the export is your only way back. Keep the file for at least a month.

Step 2. Measure the Scale

You need numbers before cleanup, otherwise you won't know whether it helped. The minimum set:
  • how many contacts exist in total;
  • how many have a phone, how many an email, how many only a messenger ID;
  • how many groups share the same normalised phone;
  • how many contacts have no matching key at all (dead weight that will never merge).

That last figure usually shocks owners. In the databases we've audited, between 8% and 22% of contacts have neither phone nor email — just a messenger handle and a few messages.

Step 3. Define the Master-Record Rule

Before merging, decide which data wins in a conflict. Our standard rule:
  • Owner — from the card with the latest activity, not the oldest one.
  • Name — from the card where a rep typed it in, not from the messenger handle.
  • Phone and email — keep every value, don't overwrite.
  • Creation date — the earliest, otherwise cohort analysis breaks.
  • Tags and first-touch UTMs — keep them from the earliest card.

Those last two get skipped most often. The database then looks clean, but the entire acquisition history claims every customer arrived last month.

Step 4. Merge in Blocks, Strongest Key First

Messenger ID matches first, then normalised phone, then email. After each block, pause and manually review a sample of 20–30 cards. One wrong merge in the sample means stop and revisit the rule.

Don't run the whole cleanup in one evening on a database above 5,000 contacts. In our experience the safe pace is 1,000–1,500 merges a day with a result check the next morning.

Step 5. Deal With Chats and Deals

After contacts are merged, twin deals stay behind in different pipelines. A simple rule works here: merge the open ones, leave closed ones alone with a tag marking the source.

Warn the team separately: reps must not unlink a chat from a contact — that's one of the reasons the same contact later shows several separate chats from the same channel.

Step 6. Close the Door on New Duplicates

Cleanup without new rules holds for four to six weeks. After that the database refills at exactly the same rate. So the final step is switching duplicate control on for every source, adding input masks, configuring phone collection in messengers and assigning an owner for the yellow zone.

Mistakes That Make Cleanup Worse Than the Problem

  • Deleting instead of merging.
  • Merging on first and last name.
  • Running a mass cleanup with no export.
  • Cleaning without pausing automations and campaigns — a merge can trigger sequences on real customers.
  • Handing the cleanup to reps during working hours with no single set of rules. Everyone merges their own way, and a week later you have a second kind of chaos.

We covered the wider context in our piece on how to put customer segmentation in order — it shows what segmentation turns into on dirty data.

How This Distorts Analytics and Segmentation

Duplicates aren't a cosmetic problem. They systematically distort four groups of numbers owners use to make decisions.

Conversion Is Understated, and You Can't Tell by How Much

Every duplicate adds one to the denominator and nothing to the numerator. At 20% duplicates, reported conversion sits roughly a quarter below reality.

The danger isn't the figure itself but the fact that the distortion is uneven. Channels with a high duplicate rate — Instagram, Telegram, anywhere without a phone number — look worse than they are. Channels that carry a phone — calls, forms — look better. The budget then shifts toward the channel that simply identifies people more easily.

LTV Is Understated and Repeat Sales Are Invisible

A customer with three cards looks like three customers with one purchase each. Repeat-purchase rate falls, LTV falls, acquisition cost looks too high.

On one project, merging the cards moved the repeat-purchase share from 21% to 34%. Nothing changed in how the team worked — the system finally saw they were the same people. That reshaped the whole budget conversation: the client stopped treating retention as a dead end. The mechanics behind those calculations are in our piece on working with CRM analytics and reports.

Channel Attribution Lies

When the same customer arrives three ways, the system logs three first touches. Instagram gets a lead, Viber gets a lead, the website form gets a lead. The sale is credited to whichever channel hosted the last contact.

The practical consequence: the channel that genuinely brings customers often looks like a channel without sales, because the deal closes somewhere else. On a merged card that doesn't happen — you see the sequence of touches inside one story.

Segmentation and Campaigns

A "bought more than twice" segment won't assemble if the purchases sit on different cards. A "never bought" segment fills up with customers who did. The campaign reaches someone twice or three times, from different segments with different offers.

Deduplication is step zero here: any segmentation on a dirty database produces segments you can't trust. What CRM actually changes across the whole sales process we broke down in our guide on what CRM implementation involves.

There's one more effect that's rarely counted. In Kommo broadcasts, WhatsApp gets extra deduplication steps — first by contact, then by number, prioritising contacts that already have a chat. So the platform partly protects you at send time, but on its own logic rather than yours, and the recipient count may not match your segment size.

The Policy That Keeps Duplicates Out

Technical configuration closes about 70% of the problem. The rest is team discipline. Here's the minimum set of rules we write into the CRM working policy.
  1. Search by number in three formats before creating a card. Better still, a search button with built-in normalisation so the rep doesn't have to think.
  2. No deleting contacts. Deletion rights stay with the administrator.
  3. No unlinking chats from contacts. If a chat is attached to the wrong card, that's an admin task, not a personal call.
  4. Ask for the phone in every messenger conversation before quoting. That's a line in the script, not a suggestion.
  5. A weekly yellow-zone review. 20–30 manager-minutes on a fixed day.
  6. A monthly metric check. Share of contacts without a matching key, and the number of new duplicate groups — two figures the manager should see.

A policy only works when it's part of training rather than a file in a folder. We build these rules in during implementation — the full sequence is in our article on CRM implementation stages.

If you're still choosing a system for messenger-heavy traffic, our Pipedrive vs Kommo breakdown for sales teams sets out selection criteria by business model. Budget benchmarks are in our piece on CRM implementation cost, timeline and types.
We at Brutal Marketing will select the best CRM program for you to use in your business. We will be happy to tell you about the program's capabilities and show you which settings will exactly help you achieve the desired financial results.

Frequently Asked Questions

Can deduplication be done with Kommo's native tools only, without widgets?

Yes, if most of your conversations carry a phone or email. Native duplicate control covers incoming leads from standard sources, and existing records are merged through the duplicate search manually. You need a widget when matching has to run on non-standard fields (tax ID, loyalty card number) or when you're processing thousands of merges in bulk.

How long does cleaning a 10,000-contact database take?

In our experience, five to twelve working days. The spread depends on how many contacts carry a phone number and whether custom fields were used instead of system ones. Audit and rule preparation take about a third of the time; the merging itself takes the rest.

We merged cards and the Instagram conversation history disappeared. Is that normal?

No. That happens when the merge was done by deleting one of the cards, or when a chat was unlinked from the contact manually. Which is why the export matters before you start — at minimum it restores the contact data. The conversation itself will have to be found in the messenger interface.

Should we merge cards when a customer writes from two numbers — work and personal?

Yes, but through moderation rather than automatically. The signal here isn't the number but whether it's the same person in the same buying process. If they genuinely buy for themselves from two numbers, both are stored on one card as two field values.

What duplicate rate counts as normal?

Zero doesn't exist — some customers will always write from anonymous accounts and never share a phone. A working benchmark for messenger-driven businesses is 3–5% of cards. Above 10%, the analytics can't be trusted, and cleanup pays back faster than any funnel rework.

Find Out How Many Duplicates You Have — Before You Change Anything Else

We'll audit your Kommo database: count how many real customers you have, show how many contacts carry no matching key, and hand you a deduplication rule set built around your channels, with an estimate of timeline and scope.

Request an audit on our Kommo CRM implementation and setup page, or see how our CRM implementation process works — from the sales audit through to team training.
duplicates in CRM, merge messengers in CRM, single customer card, contact deduplication, messengers in Kommo, CRM database cleanup | Brutal Marketing blog | One Customer Card: Messengers in Kommo Without Duplicates
By submitting an application, you agree to the privacy policy
Join our community at Telegram and WhatsApp