Дубли в 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С.
Схема: справа блок «Карточка клиента», к нему ведут пять помеченных путей слева с подписями «три канала обращения», «разный формат телефона», «опечатка в ИНН», «импорт без ключа», «встречное создание из CRM и учёта». На четырёх путях нарисован шлагбаум с подписью «правило на входе», на пятом (встречное создание) — шлагбаум подписан «таблица владения данными». Под схемой полоса: «чистка без этих шлагбаумов откатывается за 3–4 месяца». Чертёжный стиль, подписи по-русски.
Нормализация до поиска: пять правил
Поиск дублей по данным «как есть» находит меньше половины настоящих совпадений, потому что сравнивает написание, а не значение. Нормализация — это приведение полей к единому виду перед сравнением; она делается один раз по всей базе и постоянно на входе.
| Поле | Правило приведения | Что это ловит |
|---|---|---|
| Телефон | Только цифры, код страны 7, ведущая 8 заменяется на 7, скобки и дефисы убираются | Самый массовый тип дубля: одно и то же число в четырёх написаниях |
| Электронная почта | Нижний регистр, обрезка пробелов по краям | «Ivanov@Mail.ru» и «ivanov@mail.ru» как разные контакты |
| ИНН | Хранить как текст, 10 или 12 знаков, ведущие нули сохранять, проверять контрольный разряд | Потерянный при выгрузке в таблицу ведущий ноль превращает ИНН в другое число |
| Название компании | Убрать кавычки, организационную форму и двойные пробелы, привести регистр | «ООО "Ромашка"», «Ромашка ООО» и «ромашка» как три контрагента |
| Имя и фамилия | Убрать двойные пробелы и привести регистр, но не использовать как ключ склейки | Приводится для читаемости; склеивать по имени нельзя ни при каких порогах |
Сравнение в две колонки. Слева «Как записано в базе»: «+7 (999) 123-45-67», «8 999 123 45 67», «79991234567», «8(999)1234567»; ниже «ООО "Ромашка"», «Ромашка ООО»; ниже «0771234567» и «771234567». Справа «После нормализации»: единая строка «79991234567» для всех четырёх, «ромашка» для двух, «0771234567» с пометкой «ведущий ноль сохранён — хранится как текст». Между колонками воронка с подписью «правило приведения». Внизу подпись: «поиск по левой колонке находит меньше половины дублей».
Пороги поиска: где заканчивается точный ключ
После нормализации совпадения делятся на две группы. Точные — телефон, почта, ИНН — можно склеивать автоматически по правилу. Нечёткие — название компании, ФИО с городом — только показывать человеку. Смешивать эти группы нельзя: автоматическая склейка по нечёткому совпадению один раз в квартал соединяет двух разных клиентов, и обнаруживается это через полгода при разборе претензии.
| Ключ | Как сравнивать | Что делать с совпадением | Ловушка |
|---|---|---|---|
| Нормализованный телефон | Точно | Склеивать автоматически | Общий номер приёмной: у десятка контактов один телефон — такие группы исключать |
| ИНН | Точно | Склеивать автоматически | Обособленные подразделения одного юрлица — проверять по КПП перед склейкой |
| Электронная почта | Точно | Склеивать автоматически | Общие ящики вида info@ и sales@ исключать из ключей списком |
| Название компании | Нечётко, порог схожести высокий | Показывать человеку | «Ромашка-Сервис» и «Ромашка Сервис Плюс» — разные компании при высокой схожести |
| ФИО и город | Нечётко, только как подсказка | Показывать человеку и требовать второго признака | Два разных Ивановых в одном городе — обычное дело, а не редкость |
Склейка без потерь: пять шагов и журнал
Кнопка «объединить» есть в любой системе, и почти везде она работает по принципу «главная запись побеждает»: то, что было во второй карточке и конфликтует с первой, исчезает. Поэтому порядок действий важнее самой кнопки.
- 11. Выбрать главную запись по правилу, а не по дате
Главной становится не первая созданная и не последняя, а та, у которой больше связей и свежее последнее касание. Правило записывается заранее и применяется ко всем группам одинаково, иначе результат склейки зависит от того, кто её делал.
- 22. Перенести связи до слияния
Сделки, задачи, звонки, письма и вложения второй карточки перепривязываются к главной до объединения, а не после. Именно на этом шаге чаще всего теряется история: система объединяет поля, а связанные объекты остаётся привязанными к удалённой записи.
- 33. Решить конфликт ответственных
Если у двух карточек разные ответственные менеджеры, это не техническая, а управленческая ситуация: за клиентом стоят два человека и, возможно, две мотивации. Решение принимает руководитель отдела по правилу, а система только показывает список таких групп.
- 44. Записать склейку в журнал
Каждое объединение фиксируется: что с чем склеено, кем, когда и какие значения полей были заменены. Без журнала откатить ошибочную склейку невозможно — а на массиве в тысячу групп ошибочные будут обязательно.
- 55. Сверить итоги
После прогона сходятся три числа: сумма открытых сделок до и после, число сделок и число задач. Если сумма изменилась — потерялись связи, и прогон надо откатывать, а не искать, где именно. Сверять надо связи, а не строки.
Прогон запускается на копии, результат сверяется по трём числам выше, и только потом повторяется на боевой базе. У части систем объединение контактов нельзя отменить штатными средствами вообще: восстановление возможно только из резервной копии, а значит вместе с откатом потеряется всё, что произошло с момента копии. Резервная копия перед прогоном обязательна, её наличие проверяется, а не подразумевается.
Цена и срок чистки базы на 50 000 записей
Модельная база: 50 000 контактов, из них 7 100 записей входят в группы дублей — это 14,2 % базы и 3 400 групп, в среднем по две записи в каждой. Соотношение точных и нечётких совпадений в такой базе обычно примерно два к одному.
Теперь честная часть. Прямая экономия времени здесь маленькая: при потоке 400 сделок в месяц примерно 6 % ведутся по дублирующей карточке, это 24 сделки, на разбор каждой уходит около 20 минут — 8 часов, или 5 600 ₽ в месяц. Разделите 134 000 на 5 600, и получится 24 месяца. По одному только времени менеджеров чистка базы не окупается, и подрядчик, который обещает обратное, считает не то.
Воронка из четырёх ступеней сверху вниз с подписанными числами: «База — 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 %. Ниже этого порога чистка не меняет ни отчётность, ни работу менеджеров. Правильное вложение — правило на входе и недельный отчёт, чтобы доля не росла.
- Через квартал переезд в другую систему. Чистить надо, но не сейчас и не отдельным проектом: нормализация и склейка входят в этап подготовки данных при переносе. Оплачивать эту работу дважды не нужно — что именно входит в подготовку базы к переезду, разобрано в статье про миграцию данных при внедрении.
- Не решено, кто создаёт контрагента. Пока нет договорённости между отделом продаж и учётом, встречное создание будет производить новые дубли быстрее, чем их успевают склеивать. Сначала таблица владения данными, потом чистка.
Чистка базы без правила на входе — это уборка в комнате, где не закрыто окно.
