Грязные данные срывают внедрение не тем, что «портят аналитику». Они молча ломают конкретные сценарии: рассылка уходит одному клиенту дважды, робот звонит по номеру, записанному через восьмёрку и потому недозваниваемому, отчёт по марже не сходится на 8,8 % закрытых сделок, а бот отвечает «ничего не нашлось» по товару, который лежит на складе. Система при этом работает и ошибок не показывает — просто результат получается не тот, за который платили.
Хорошая новость в том, что состояние базы проверяется до договора и без программиста. Нужна одна выгрузка в таблицу и шесть сводных — это половина рабочего дня. На выходе получаются шесть чисел, по которым видно, можно ли строить сценарии прямо сейчас, что надо почистить и сколько это займёт.
Ниже — сами проверки, привязка каждого типа грязи к сценарию, который от него ломается, модельный расчёт чистки базы на 12 000 карточек и правило, которое экономит больше всех остальных: не автоматизировать ввод в базу, где ввод никем не проверяется. Механику склейки дублей и пороги нечёткого сравнения мы разбирали отдельно — как находить и склеивать дубли без потерь; здесь речь о том, что именно ломается и во что обходится.
Шесть проверок и что каждая ломает
Проверок ровно шесть, потому что именно они закрывают типовые сценарии первых внедрений: уведомления, обзвон, распределение заявок, отчётность и поиск по товарам. Колонка «порог» — не норматив, а граница, после которой мы отказываемся запускать сценарий до чистки: ниже порога грязь даёт единичные сбои, выше — систематические.
| Проверка | Как найти выгрузкой | Что ломается в автоматизации | Порог |
|---|---|---|---|
| Дубли по телефону и ИНН | Сводная по нормализованному телефону и по ИНН, оставить строки с количеством больше единицы | Рассылка и уведомления уходят дважды, робот перезванивает одному человеку два раза, выручка по клиенту делится между карточками и он не попадает в верхний сегмент | больше 3 % карточек |
| Пустые обязательные поля | Фильтр «телефон пуст И почта пуста» по всем карточкам | Сценарий уведомления молча не срабатывает: заявка в системе есть, отправить её некуда, и никто этого не видит | больше 3 % карточек |
| Разные форматы телефонов | Длина строки и первый символ: +7, 8, 7, скобки, дефисы, добавочный в том же поле | Робот не дозванивается или звонит не туда, входящий звонок не склеивается с карточкой, и менеджер отвечает вслепую | больше 10 % карточек |
| Мусорные статусы | Сводная по статусу и дате последнего изменения: сколько записей и когда трогали в последний раз | Маршрутизация ветвится по статусам, которыми никто не пользуется; воронка показывает не то, что происходит | мёртвых статусов больше трети справочника |
| Сделки без суммы | Фильтр «сумма пуста или равна нулю» среди закрытых сделок | Отчёт по марже не сходится, скоринг и приоритизация заявок считаются на неполной базе | больше 3 % закрытых |
| Товары без категории | Сводная по категории среди активных позиций | Бот и поиск по каталогу не находят товар, подбор аналога и товарные рекомендации возвращают пустоту | больше 5 % активных позиций |
Горизонтальная схема слева направо. Слева блок «Выгрузка из CRM: карточки, сделки, товары». В центре шесть параллельных ветвей-фильтров с подписями: «дубли по телефону и ИНН», «пустые контакты», «формат телефона», «статусы», «сделки без суммы», «товары без категории». Справа блок «Отчёт о находках: шесть чисел и решение — чистить или запускать». Над центром подпись «4 часа работы в таблице». Чертёжный стиль, все подписи по-русски.
Отдельно стоит сказать про статусы, потому что это единственная строка таблицы, где грязь не в данных, а в справочнике. Четырнадцать статусов сделки, из которых живыми остались шесть, — это не эстетическая проблема: на них завязывается маршрутизация, и подрядчик добросовестно напишет ветки для всех четырнадцати. Половина веток никогда не сработает, но поддерживать их придётся. Тот же механизм с номенклатурой и контрагентами мы разбирали в материале про то, почему дашборд начинается со справочников.
Что находится в базе на 12 000 карточек
Дальше всё считается на модельной компании: оптовая торговля, 12 000 карточек контрагентов, 5 200 закрытых сделок за два года, 4 100 активных позиций номенклатуры, три менеджера ведут базу вручную. Числа модельные, но пропорции типичные для базы, которую вели пять лет без правил ввода.
- 1Дубли: 1 670 карточек в 785 группах. Из них 690 групп нашлись по совпадению нормализованного телефона и 95 — по ИНН. Это 13,9 % базы, то есть примерно каждая седьмая карточка лишняя.
- 2Пустые контакты: 840 карточек, 7 %. Ни телефона, ни почты — только название. Каждая такая карточка выпадает из любого сценария уведомления, при этом в отчёте «отправлено 11 160 сообщений» она не видна.
- 3Разные форматы телефона: 3 100 карточек, 26 %. Восьмёрка вместо +7, скобки, пробелы, добавочный номер в том же поле через запятую, два номера в одной ячейке.
- 4Статусы: 14 в справочнике, 6 живых. У восьми статусов последнее изменение старше 14 месяцев; при этом 1 100 сделок висят в статусе «в работе» дольше 180 дней.
- 5Сделки без суммы: 460 из 5 200 закрытых, 8,8 %. Сумма стоит в договоре и в 1С, но в карточку сделки её не перенесли.
- 6Товары без категории: 380 из 4 100, 9,3 %. Позиции заведены менеджерами под конкретную отгрузку и в дерево категорий не попали.
Горизонтальная столбиковая диаграмма по базе 12 000 карточек, шесть столбцов с подписями значений: «телефоны в произвольном формате — 3 100», «карточки-дубли — 1 670 в 785 группах», «сделки в статусе «в работе» старше 180 дней — 1 100», «карточки без телефона и почты — 840», «закрытые сделки без суммы — 460», «товары без категории — 380». Под каждым столбцом мелкой подписью доля: 26 %, 13,9 %, —, 7 %, 8,8 %, 9,3 %. Единицы — записи, ось подписана.
Сколько стоит чистка: 48 человеко-часов и 85 800 ₽
Чистка делится на две неравные части. Всё, что делается по правилу, отдаётся подрядчику или скрипту: привести телефоны к одному виду, найти совпадения, схлопнуть бесспорные группы с журналом и возможностью отката. Всё, что требует знания клиента, остаётся внутри компании. В модельной базе бесспорных групп оказалось 545 из 785, спорных — 240.
После склейки база уменьшается на 885 карточек: 1 670 дублей сворачиваются в 785 карточек, и вместо 12 000 остаётся 11 115. Это единственная работа в проекте автоматизации, где уменьшение числа в отчёте — хороший результат. Ставки в расчёте модельные: 3 500 ₽ за час инженера, 900 ₽ за час менеджера с учётом налогов и 1 500 ₽ за час руководителя. Подставьте свои — арифметика не изменится, изменится итог.
48 человеко-часов укладываются в три дня только тогда, когда менеджеры на эти часы сняты с текущих заявок. Если разбор 240 спорных групп идёт «между делом», он растягивается на три-четыре недели, и к моменту окончания в базе появляются новые дубли, заведённые за это время. Чистка, которая длится дольше месяца, не заканчивается никогда — это наблюдение, а не фигура речи.
Кто чистит: подрядчик схлопнет, но не решит
Граница ответственности проходит по вопросу «есть ли правило». Если правило есть — «две карточки с одинаковым нормализованным телефоном и одинаковым названием считаются одной» — работу делает алгоритм, и это 545 групп из 785. Если правила нет — «ООО «Ромашка» с телефоном директора и ИП Ромашкин с тем же телефоном: это один клиент или два» — решение принимает человек, который знает, кто кому платит.
- Подрядчик делает: нормализацию форматов, поиск совпадений, автосклейку бесспорных групп, журнал изменений с возможностью отката, проверку целостности связей после склейки.
- Компания решает: какая из двух карточек главная, объединять ли юрлицо и ИП одного собственника, какие восемь статусов удалить, куда отнести 380 товаров без категории, что делать с 840 карточками без контактов — удалить, оставить в архиве или отдать менеджерам на дозвон.
- Никто не делает автоматически: проставление 460 недостающих сумм. Это ручная работа с договорами, и её нельзя ни угадать, ни выгрузить, если суммы нет ни в одной системе.
Отсюда практическое следствие для сметы: строка «чистка данных — 40 000 ₽» в коммерческом предложении подрядчика описывает только левую колонку. Правая колонка — ваши 33 часа, и они всё равно будут потрачены, просто не появятся в договоре. Тот же перекос мы разбирали на примере переноса данных при внедрении, где нагрузка на заказчика тоже недооценивается вдвое.
Правило: не автоматизировать ввод в грязную базу
Проверка, которая срабатывает в момент сохранения карточки, а не при ночной выгрузке. Телефон приводится к виду +7XXXXXXXXXX автоматически, при совпадении с существующим показывается найденная карточка, сохранение без телефона и почты запрещается, а новая позиция номенклатуры не сохраняется без категории. Три-четыре таких правила закрывают пять проверок из шести.
Порядок здесь важнее содержания. Сначала ставится проверка на вводе, потом чистится накопленное, и только потом запускаются сценарии. Если поменять первые два шага местами, вы получите чистую базу и прежний темп загрязнения; если пропустить первый вовсе — заплатите за чистку дважды. Разовая настройка правил ввода в типовой CRM занимает 8–12 часов и обходится в 28 000–42 000 ₽, то есть примерно вдвое дешевле самой чистки.
Две колонки. Левая «Проверка на вводе»: пункты «формат телефона приводится автоматически», «совпадение показывается сразу», «сохранение без контакта запрещено», «товар без категории не сохраняется», внизу «28 000–42 000 ₽ один раз». Правая «Чистка раз в год»: пункты «нормализация задним числом», «240 спорных групп руками», «460 сумм из договоров», «база всё это время работает как есть», внизу «85 800 ₽ каждый раз». Между колонками вертикальная подпись «порядок: сначала левая». Чертёжный стиль.
Есть и обратная сторона, о которой честно предупреждаем. Жёсткие обязательные поля увеличивают время заведения карточки: в замерах это 40–70 секунд на карточку. При 320 новых карточках в месяц набегает 4–6 часов в месяц на всех менеджеров — приемлемо. Но если обязательных полей становится восемь, менеджеры начинают писать «нет» и «уточнить» в каждое, и вы получаете новый тип грязи вместо старого. Это ровно тот механизм, из-за которого сотрудники заводят параллельные таблицы: каждое лишнее поле — минус к вероятности, что человек пойдёт в систему.
Как удержать чистоту после запуска
Загрязнение накапливается с предсказуемой скоростью. В модельной компании заводится 320 новых карточек в месяц, а доля лишних карточек в накопленной базе — 7,4 %. Значит, без изменений во вводе прибавляется около 24 дублей в месяц и 288 за год: треть от вычищенных 885. Через три года база возвращается в исходное состояние, и чистку приходится оплачивать заново.
График за 12 месяцев после чистки. Горизонтальная ось — месяцы, вертикальная — накопленное число новых дублей. Верхняя линия «без проверки на вводе» растёт равномерно по 24 в месяц и приходит к 288. Нижняя линия «с проверкой при сохранении» растёт по 3 в месяц и приходит к 38. Пунктиром горизонтальная отметка «885 — столько дублей вычистили» с подписью «на этот уровень верхняя линия выйдет за три года». Все числа подписаны.
- 1Обязательные поля — не больше четырёх
Телефон или почта, название, ответственный, источник. Всё остальное заполняется по мере работы. Каждое пятое обязательное поле добавляет секунды к вводу и повышает шанс, что в него напишут «уточнить».
- 2Запрет на молчаливое создание дубля
При совпадении нормализованного телефона или ИНН система показывает найденную карточку и требует явного подтверждения «это другой клиент». Не блокирует — именно показывает: иначе менеджер начнёт вводить телефон с опечаткой, чтобы обойти запрет.
- 3Ежемесячная проверка на 20 минут
Те же шесть сводных на выгрузке за месяц. Если число новых дублей выше 30, что-то поменялось в процессе: появился новый источник заявок, пришли новые люди или кто-то грузит списки из таблицы мимо правил.
- 4Один владелец справочников
Право заводить категории товаров и статусы сделок остаётся у одного человека. Именно бесконтрольное расширение справочников даёт те самые 14 статусов, из которых живут шесть.
Когда чистить не надо
Чистка базы — расход, а не инвестиция сама по себе. Она окупается через сценарий, который на этих данных заработает. Если сценария нет, чистить нечего и незачем.
- Все шесть проверок ниже порога. Дублей меньше 3 %, пустых контактов меньше 3 %, форматов телефона меньше 10 % — запускайте сценарий и живите с единичными сбоями. Идеальная база не окупается никогда.
- База переезжает целиком. Если через месяц компания уходит на другую CRM, чистить старую бессмысленно: правила нормализации всё равно пишутся под приёмник, а склейка делается в момент переноса.
- Грязь лежит там, где нет сценария. 380 товаров без категории — это блокер для бота по каталогу и полностью безразлично для обзвона должников. Чистите то, что мешает первому сценарию, остальное оставьте в списке.
- Правила ввода не меняются. Чистка без валидации — оплаченная отсрочка на три года. Если поменять ввод сейчас нельзя (идёт сезон, нет владельца справочников), честнее отложить и чистку тоже.
- Данные нужны для отчётности, а не для автоматизации. Тогда это отдельная задача с другим набором проверок — мы разбирали её в материале про семь проверок перед дашбордом.
Автоматизация не портит данные и не улучшает их. Она делает их состояние видимым — и оплаченным.
