Клиент оставил заявку на сайте в марте, написал в Instagram в апреле и позвонил в мае. В CRM это три карточки: «Сергей», «Сергей Петрович» и номер телефона без имени. Работают с ними три разных менеджера, и каждый начинает с вопроса «расскажите, что вам нужно».

Клиент при этом уверен, что общается с одной компанией. И делает вывод, который вы никогда не услышите: если у них внутри бардак, то и кухню соберут так же.

Тема выглядит технической и скучной, поэтому её обычно откладывают. Зря — из трёх видов ущерба самый дорогой вообще не про клиентский сервис.

Откуда берутся дубли

Ни один из источников не является чьей-то ошибкой. Это нормальная физика работы с несколькими каналами.

  • Разные каналы. Сайт, Instagram, звонок, WhatsApp — каждый создаёт свою запись, потому что общего идентификатора у них нет.
  • Разное написание. «ООО Ромашка», «Ромашка ООО», «ромашка». Для человека это одно, для системы — три.
  • Форматы телефона. +375291234567, 80291234567, 29 123-45-67. Без нормализации совпадение не находится.
  • Импорты. Список с выставки, база от прошлого подрядчика, выгрузка из старой системы. Каждый импорт добавляет слой.
  • Повторные обращения. Клиент, который покупал два года назад, обращается снова и заводится как новый лид.

Уровень первый: клиентский ущерб

Самый заметный и, парадоксально, самый дешёвый. Клиент раздражается, повторяет то, что уже говорил, иногда получает два разных предложения от двух менеджеров одной компании. Неприятно, но напрямую в деньгах видно редко.

Уровень второй: управленческий ущерб

Вы не знаете свою настоящую конверсию. Один клиент, посчитанный за три лида, превращает конверсию 30 % в конверсию 10 %. Вы смотрите на цифру, делаете вывод «менеджеры плохо работают» и начинаете чинить то, что не сломано.

Средний чек тоже искажается: покупка распределяется по одной карточке из трёх, а две остаются как «отказ». Отчёт по причинам отказа наполняется мусором.

Уровень третий: денежный ущерб

Вот главное, ради чего стоит этим заниматься.

Дубли ломают атрибуцию. Клиент впервые пришёл из контекстной рекламы, потом дозрел и написал в Instagram, а купил после звонка. Если карточки не склеены, продажа записывается на звонок. Контекст в отчёте выглядит каналом, который приносит заявки и не приносит денег.

Дальше вы принимаете решение по бюджету: режете контекст, усиливаете то, что «работает». Через два месяца поток заявок падает, потому что вы отключили канал первого касания. Причину найти уже невозможно — данные, по которым можно было бы разобраться, и есть те самые несклеенные карточки.

Это и есть настоящая цена дублей: не раздражённый клиент, а неправильное решение по рекламному бюджету, принятое на основании данных, которым нельзя верить.

Что делает ИИ на входе

Штатный поиск дублей в CRM находит точные совпадения по телефону и почте. Это закрывает часть проблемы, но не самую сложную: одинаковый телефон в разных форматах, одна компания под разными названиями, один человек с личной и рабочей почтой.

Что добавляется поверх:

Нормализация. Телефон приводится к единому формату, почта к нижнему регистру, название компании очищается от формы собственности и кавычек. После этого половина «неочевидных» дублей становится очевидными.

Сопоставление по совокупности признаков. Не «телефон совпал», а «совпал домен почты, похоже название компании, тот же город, обращение по тому же товару». Так находятся дубли, где ни одно поле не совпадает точно.

Дозаполнение. Из заявки «Сергей, +375 29…» и текста обращения достаётся то, что в ней есть: город, тип запроса, примерный объём. Менеджер получает карточку, с которой можно работать, а не строку из двух полей.

Флаг вместо действия. Спорные случаи не сливаются автоматически, а помечаются для человека. Об этом отдельно.

Почему автослияние без проверки — плохая идея

Соблазн понятен: пусть система сама склеивает всё, что похоже. Проблема в асимметрии ошибок.

Пропущенный дубль — это две карточки вместо одной. Неприятно, исправляется в любой момент.

Ошибочно слитые карточки — это потерянная история двух разных клиентов, перемешанная переписка и сделки, привязанные не к тому. Восстанавливать это дорого, а иногда невозможно. Особенно больно с однофамильцами, с несколькими юрлицами одного холдинга и с ситуацией «муж и жена с одним номером телефона» — в мебельной нише это встречается постоянно.

Рабочее правило: автоматически сливать только при совпадении по уникальному идентификатору (нормализованный телефон, почта, УНП). Всё остальное — на проверку человеку, пакетом раз в неделю. Разбор пятнадцати спорных пар занимает десять минут и не создаёт рисков.

Как это работает: пример сценария

  1. На входе: новая заявка из Instagram Direct — имя «Марина», телефон в формате «+375(29)1234567», текст про кухню.
  2. ИИ проверяет: нормализует телефон, ищет совпадения по телефону, почте и совокупности признаков; находит карточку двухлетней давности с тем же номером и покупкой шкафа-купе.
  3. Помечает на проверку: совпадение по нормализованному телефону — уникальный идентификатор, слияние безопасно. Заявка привязывается к существующему контакту, в карточке появляется отметка «повторное обращение, ранее покупал шкаф-купе».
  4. Решает человек: менеджер видит историю до первого звонка и начинает не с «расскажите, что вам нужно», а с «Марина, здравствуйте, вы у нас шкаф заказывали — как он, служит?».
  5. Записывается в CRM: источник новой заявки сохраняется отдельным полем, история касаний склеена, атрибуция первого касания не потеряна.

Пятый пункт — тот самый, ради которого всё затевалось.

С чего начать

Порядок, который я рекомендую:

  1. Замерьте масштаб. Выгрузите контакты, нормализуйте телефоны формулой в таблице, посчитайте повторы. Час работы, и вы знаете реальную долю дублей вместо ощущений.
  2. Закройте вход. Нормализация и проверка на дубль в момент создания записи. Иначе вы будете чистить базу, которая пополняется быстрее.
  3. Разберите накопленное. Сначала точные совпадения пакетом, потом спорные — вручную.
  4. Введите правило для импортов. Любая загрузка списка проходит через проверку на дубли до попадания в общую базу.

Второй пункт важнее третьего. Разовая чистка без закрытия входа даёт эффект на месяц.

FAQ

В CRM есть встроенный поиск дублей — зачем что-то ещё? Он находит точные совпадения по телефону, почте и имени, и для небольшой базы этого достаточно. Не находит: разные форматы записи, компании под разными названиями, одного человека с двумя почтами. Начните со штатного, добавляйте автоматизацию, если после него дублей остаётся много.

Сколько дублей считается нормой? Ноль недостижим при работе через несколько каналов. Важнее не абсолютная доля, а то, растёт она или падает. Замерьте сейчас и повторите через квартал.

Можно ли восстановить неправильно слитые карточки? Частично — история действий в CRM сохраняется. Но переписку и связи сделок восстанавливать придётся руками, и это долго. Поэтому спорные случаи не сливаем автоматически.

Что делать со старой базой на несколько десятков тысяч контактов? Не пытайтесь вычистить всё сразу. Сначала закройте вход, потом чистите тот сегмент, с которым реально работаете — обычно это последние полтора-два года. Остальное можно оставить как архив.

Мы ведём клиентов в таблице, а не в CRM. Это тоже про нас? Даже больше. В таблице нет ни проверки на дубль, ни истории касаний. Но начинать в этом случае надо не с ИИ, а с CRM — складывать результат работы агента будет некуда.

Как дубли связаны с рекламным бюджетом? Через атрибуцию: несклеенные карточки приписывают продажу последнему каналу вместо первого. Из-за этого канал, который приводит клиентов, выглядит убыточным. Это главный аргумент в пользу того, чтобы заняться дублями, — подробно разобран выше.

Читайте также

Посмотрим, сколько дублей в вашей базе

За 40 минут выгрузим контакты, посчитаем реальную долю дублей и покажем, как они искажают вашу отчётность по каналам. Цифру заберёте себе независимо от дальнейшего сотрудничества.

Телефон: +375 29 388-68-28 Telegram: @targetforce


Евгений Осипов — 20 лет в продажах, MBA, Золотой партнёр Битрикс24. Внедряю ИИ-агентов в отделы продаж производственных и торговых компаний в Беларуси и России.