Дубли в CRM появляются не от беспорядка, а от отсутствия конкретного правила: система не знает, по какому признаку два входящих события относятся к одному клиенту. Поэтому чистка базы, сделанная без изменения правил на входе, возвращает базу в исходное состояние за 3–4 месяца — и это самый частый способ потратить сто с лишним тысяч рублей впустую.

Порядок работы всегда один и тот же: сначала устранить причины, потом нормализовать данные, потом искать совпадения, и только в конце склеивать. Разовая чистка модельной базы на 50 000 записей стоит около 134 000 ₽ и занимает две недели. Из 3 400 найденных групп 2 250 склеиваются автоматически, оставшиеся 1 150 разбирает человек — это 12,8 часа работы, которые нельзя отдать машине.

Ниже — пять причин появления дублей, правила нормализации, пороги нечёткого сравнения, при которых не склеиваются два разных Ивановых, порядок склейки без потери истории и честный расчёт: чем именно эта работа окупается, если по времени она не окупается вообще.

Пять причин, по которым дубли появляются

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

ПричинаКак выглядит дубльЧем закрывается
Разные каналы обращенияОдин человек написал в мессенджер, позвонил и оставил заявку на сайте — три карточкиСклейка по нормализованному телефону при создании из любого канала
Разный формат телефона«+7 (999) 123-45-67» и «89991234567» — поиск не видит совпаденияНормализация номера до поиска, единый формат хранения
Опечатка в ИННДва контрагента с почти одинаковым названием и разными ИННПроверка ИНН по контрольному разряду и подстановка наименования из реестра
Импорт без ключаПосле загрузки файла база выросла ровно на число строк в файлеОбязательный ключ сопоставления при импорте и тестовая загрузка на 200 записях
Встречное создание из CRM и из учётаОдин контрагент заведён менеджером и одновременно пришёл из обменаТаблица владения данными: кто создаёт контрагента, а кто только читает

Пятая причина — самая дорогая и самая незаметная. Пока в компании нет договорённости, кто создаёт контрагента, менеджер заводит его в CRM, бухгалтер — в учётной системе, и обмен добросовестно приносит вторую запись. Как эта договорённость оформляется в виде таблицы владения данными, мы разбирали в статье про интеграцию CRM с 1С; типовые последствия её отсутствия — в материале про ошибки обмена с 1С.

схема процессаdubli-klientov-v-crm--01
Пять путей появления дубля клиента: каналы, формат номера, ИНН, импорт и встречное создание

Схема: справа блок «Карточка клиента», к нему ведут пять помеченных путей слева с подписями «три канала обращения», «разный формат телефона», «опечатка в ИНН», «импорт без ключа», «встречное создание из CRM и учёта». На четырёх путях нарисован шлагбаум с подписью «правило на входе», на пятом (встречное создание) — шлагбаум подписан «таблица владения данными». Под схемой полоса: «чистка без этих шлагбаумов откатывается за 3–4 месяца». Чертёжный стиль, подписи по-русски.

Четыре причины из пяти закрываются правилом на входе, а не разовой чисткой

Нормализация до поиска: пять правил

Поиск дублей по данным «как есть» находит меньше половины настоящих совпадений, потому что сравнивает написание, а не значение. Нормализация — это приведение полей к единому виду перед сравнением; она делается один раз по всей базе и постоянно на входе.

ПолеПравило приведенияЧто это ловит
ТелефонТолько цифры, код страны 7, ведущая 8 заменяется на 7, скобки и дефисы убираютсяСамый массовый тип дубля: одно и то же число в четырёх написаниях
Электронная почтаНижний регистр, обрезка пробелов по краям«Ivanov@Mail.ru» и «ivanov@mail.ru» как разные контакты
ИННХранить как текст, 10 или 12 знаков, ведущие нули сохранять, проверять контрольный разрядПотерянный при выгрузке в таблицу ведущий ноль превращает ИНН в другое число
Название компанииУбрать кавычки, организационную форму и двойные пробелы, привести регистр«ООО "Ромашка"», «Ромашка ООО» и «ромашка» как три контрагента
Имя и фамилияУбрать двойные пробелы и привести регистр, но не использовать как ключ склейкиПриводится для читаемости; склеивать по имени нельзя ни при каких порогах
сравнениеdubli-klientov-v-crm--02
Четыре написания одного телефона и ИНН до нормализации и после приведения к единому виду

Сравнение в две колонки. Слева «Как записано в базе»: «+7 (999) 123-45-67», «8 999 123 45 67», «79991234567», «8(999)1234567»; ниже «ООО "Ромашка"», «Ромашка ООО»; ниже «0771234567» и «771234567». Справа «После нормализации»: единая строка «79991234567» для всех четырёх, «ромашка» для двух, «0771234567» с пометкой «ведущий ноль сохранён — хранится как текст». Между колонками воронка с подписью «правило приведения». Внизу подпись: «поиск по левой колонке находит меньше половины дублей».

Нормализация сравнивает значение, а не написание — без неё поиск находит меньше половины

Пороги поиска: где заканчивается точный ключ

После нормализации совпадения делятся на две группы. Точные — телефон, почта, ИНН — можно склеивать автоматически по правилу. Нечёткие — название компании, ФИО с городом — только показывать человеку. Смешивать эти группы нельзя: автоматическая склейка по нечёткому совпадению один раз в квартал соединяет двух разных клиентов, и обнаруживается это через полгода при разборе претензии.

КлючКак сравниватьЧто делать с совпадениемЛовушка
Нормализованный телефонТочноСклеивать автоматическиОбщий номер приёмной: у десятка контактов один телефон — такие группы исключать
ИННТочноСклеивать автоматическиОбособленные подразделения одного юрлица — проверять по КПП перед склейкой
Электронная почтаТочноСклеивать автоматическиОбщие ящики вида info@ и sales@ исключать из ключей списком
Название компанииНечётко, порог схожести высокийПоказывать человеку«Ромашка-Сервис» и «Ромашка Сервис Плюс» — разные компании при высокой схожести
ФИО и городНечётко, только как подсказкаПоказывать человеку и требовать второго признакаДва разных Ивановых в одном городе — обычное дело, а не редкость

Склейка без потерь: пять шагов и журнал

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

  1. 1
    1. Выбрать главную запись по правилу, а не по дате

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

  2. 2
    2. Перенести связи до слияния

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

  3. 3
    3. Решить конфликт ответственных

    Если у двух карточек разные ответственные менеджеры, это не техническая, а управленческая ситуация: за клиентом стоят два человека и, возможно, две мотивации. Решение принимает руководитель отдела по правилу, а система только показывает список таких групп.

  4. 4
    4. Записать склейку в журнал

    Каждое объединение фиксируется: что с чем склеено, кем, когда и какие значения полей были заменены. Без журнала откатить ошибочную склейку невозможно — а на массиве в тысячу групп ошибочные будут обязательно.

  5. 5
    5. Сверить итоги

    После прогона сходятся три числа: сумма открытых сделок до и после, число сделок и число задач. Если сумма изменилась — потерялись связи, и прогон надо откатывать, а не искать, где именно. Сверять надо связи, а не строки.

Автоматическая склейка на живой базе без отката — необратимая операция

Прогон запускается на копии, результат сверяется по трём числам выше, и только потом повторяется на боевой базе. У части систем объединение контактов нельзя отменить штатными средствами вообще: восстановление возможно только из резервной копии, а значит вместе с откатом потеряется всё, что произошло с момента копии. Резервная копия перед прогоном обязательна, её наличие проверяется, а не подразумевается.

Цена и срок чистки базы на 50 000 записей

Модельная база: 50 000 контактов, из них 7 100 записей входят в группы дублей — это 14,2 % базы и 3 400 групп, в среднем по две записи в каждой. Соотношение точных и нечётких совпадений в такой базе обычно примерно два к одному.

Разовая чистка: состав работ и стоимость
Записей в базе50 000
Найдено групп дублей после нормализации3 400 групп, 7 100 записей — 14,2 % базы
Из них точные совпадения по телефону, почте и ИНН2 250 групп — склеиваются автоматически
Нечёткие совпадения на ручной разбор1 150 групп × 40 секунд = 12,8 часа
Нормализация базы, поиск, прогон на копии, сверка90 000 ₽
Ручной разбор нечётких групп: 12,8 часа × 700 ₽9 000 ₽
Правило склейки на входе и недельный отчёт по новым дублям35 000 ₽
Итого134 000 ₽ и две недели работы. Без последней строки на 35 000 ₽ база вернётся к прежнему состоянию за 3–4 месяца

Теперь честная часть. Прямая экономия времени здесь маленькая: при потоке 400 сделок в месяц примерно 6 % ведутся по дублирующей карточке, это 24 сделки, на разбор каждой уходит около 20 минут — 8 часов, или 5 600 ₽ в месяц. Разделите 134 000 на 5 600, и получится 24 месяца. По одному только времени менеджеров чистка базы не окупается, и подрядчик, который обещает обратное, считает не то.

графикdubli-klientov-v-crm--03
Воронка чистки: 50 000 записей, 3 400 групп дублей, 2 250 автоматически, 1 150 вручную

Воронка из четырёх ступеней сверху вниз с подписанными числами: «База — 50 000 записей», «Записей в группах дублей — 7 100, это 14,2 %», «Групп дублей — 3 400», разветвление на две ветки: «Точный ключ — 2 250 групп, склейка автоматическая» и «Нечёткое совпадение — 1 150 групп, ручной разбор 12,8 часа». Справа вертикальная плашка со сметой: 90 000 + 9 000 + 35 000 = 134 000 ₽, срок 2 недели. Внизу подпись: «прямая экономия времени — 5 600 ₽ в месяц».

Две трети групп закрываются правилом, треть требует человека — и это не сокращается

Окупается чистка тремя другими вещами, и все три считаются в деньгах хуже, но стоят дороже. Первая — отчётность: при 14,2 % записей в дублях доля повторных клиентов занижена, сегмент «купили один раз» раздут, и рассылка на реактивацию уходит действующим клиентам. Вторая — работа менеджеров: клиенту звонят двое, каждый считает сделку своей, и разбирается это на планёрке. Третья — интеграции: любое автозаполнение, подключённое к грязной базе, не чинит её, а размножает. Именно поэтому нормализация всегда идёт первым шагом в проекте автозаполнения карточек CRM, а не отдельной работой после.

Профилактика и когда чистить не надо

После разовой чистки остаётся регламент, и он дешевле любой повторной чистки. Достаточно трёх вещей: проверка при создании карточки по нормализованному телефону и ИНН, недельный отчёт по новым группам дублей и один ответственный, который его разбирает — обычно это тот же человек, который отвечает за полноту базы. Пятнадцать минут в неделю удерживают долю дублей ниже 1 %.

  • База меньше 3 000 записей. Проект на 134 000 ₽ здесь избыточен: выгрузка, нормализация в таблице и ручной разбор занимают один рабочий день. Смысл имеет только правило на входе, а его настройка стоит существенно дешевле полной чистки.
  • Дублей меньше 2 %. Ниже этого порога чистка не меняет ни отчётность, ни работу менеджеров. Правильное вложение — правило на входе и недельный отчёт, чтобы доля не росла.
  • Через квартал переезд в другую систему. Чистить надо, но не сейчас и не отдельным проектом: нормализация и склейка входят в этап подготовки данных при переносе. Оплачивать эту работу дважды не нужно — что именно входит в подготовку базы к переезду, разобрано в статье про миграцию данных при внедрении.
  • Не решено, кто создаёт контрагента. Пока нет договорённости между отделом продаж и учётом, встречное создание будет производить новые дубли быстрее, чем их успевают склеивать. Сначала таблица владения данными, потом чистка.

Чистка базы без правила на входе — это уборка в комнате, где не закрыто окно.