Почему при загрузке лидов появляются дубли в CRM и как этого избежать
Одна и та же компания приходит из Яндекс.Карт, из 2ГИС и из прошлогодней выгрузки — и в CRM появляются три карточки. Менеджеры звонят одному клиенту по очереди, аналитика врёт, база пухнет. Разбираем, откуда берутся дубли при импорте лидов и что технически можно сделать.
Откуда вообще берутся дубли
Дубли в CRM почти никогда не появляются из-за небрежности менеджера. Их порождает сама механика загрузки данных из нескольких источников. Причин ровно четыре.
- Разные источники пишут название по-разному. В одном справочнике организация записана как «ООО "Ромашка"», в другом — «Ромашка», в третьем — «Ромашка, торговый дом». Для системы это три разные строки.
- Повторный сбор по той же нише. Через полгода вы собираете базу заново, чтобы захватить новые компании — и вместе с ними заново загружаете все старые.
- Филиалы и точки одной сети. Пять адресов одной компании — это пять карточек в справочнике, но часто один юридический контакт.
- Импорт без сопоставления. Стандартный импорт CSV в CRM просто создаёт строки. Он не спрашивает, есть ли уже такая компания, — это не его задача.
Итог предсказуем: база растёт быстрее, чем количество реальных клиентов, а менеджеры звонят одному и тому же человеку по второму и третьему разу.
Почему сверка по названию не работает
Первая идея, которая приходит в голову, — сравнивать компании по названию. На практике она разбивается почти сразу.
| Как записано в источнике | Совпадёт при сверке по названию? |
|---|---|
| ООО «Ромашка» | — |
| Ромашка | нет: мешает организационная форма |
| Ромашка ООО | нет: другой порядок слов |
| «РОМАШКА» | нет: регистр и кавычки |
| Ромашка (Казань) | нет: приписка города |
Можно нормализовать строку: убрать кавычки, привести к нижнему регистру, вырезать ООО, ЗАО, ИП и прочие формы. Это помогает, но не решает: остаются «Ромашка-Сервис» и «Ромашка Сервис», транслитерация, сокращения и просто опечатки в самом справочнике. Названием можно пользоваться как подсказкой, но опираться на него нельзя.
Отдельная ловушка. Наивная чистка названий ломает кириллицу. Если вырезать из строки все буквы, входящие в аббревиатуры ООО, ЗАО, ИП, АО, то из «Стоматология» получится «Стмтлгя», и совпадать перестанет вообще всё. Такие ошибки живут в самописных скриптах годами и незаметны, пока кто-нибудь не откроет итоговую таблицу глазами.
Телефон как единственный надёжный ключ
Номер телефона — единственное поле, которое можно привести к однозначному виду. Все варианты записи — 8 (843) 214-88-01, +78432148801, 8432148801 — сводятся к одной канонической форме простым набором правил: убрать всё, кроме цифр, заменить ведущую восьмёрку на семёрку, отбросить добавочный.
После нормализации сравнение становится точным: либо номера совпали, либо нет. Никаких «похоже, но не уверен».
Важная деталь. Нормализовать нужно обе стороны — и входящий номер, и тот, что уже лежит в CRM. Если в карточке номер записан как «8 843 214-88-01», а вы ищете «+78432148801», система не найдёт совпадения и создаст дубль. Именно на этом ломается большинство самодельных интеграций.
Как устроено умное обновление карточки
Механизм, который в «Хвате» называется Smart Update, работает по одному правилу: перед созданием карточки — найди существующую. Порядок такой.
- Нормализация номера
Телефон из собранной карточки приводится к каноническому виду.
- Поиск в CRM
Отправляется запрос: есть ли уже карточка с таким средством связи. В Битрикс24 для этого существует отдельный метод поиска по коммуникациям, в amoCRM — поиск с последующей сверкой найденных номеров.
- Развилка
Ничего не нашлось — создаётся новая карточка со всеми полями. Нашлось — переходим к слиянию.
- Слияние
В найденную карточку дописываются только те поля, которые в ней пустые: сайт, почта, категория, режим работы, адрес. Заполненное не трогается.
Технический нюанс, на котором ломаются интеграции. Если отправить в Битрикс24 пакетный запрос на поиск сразу по двадцати номерам, ответ вернётся плоским списком найденных идентификаторов — без указания, какой идентификатор какому номеру соответствует. Код, который берёт двадцатый элемент ответа для двадцатого номера, будет дописывать данные в чужие карточки. Единственный безопасный вариант — один номер, один запрос.
Что происходит с полями при слиянии
Правило простое и намеренно консервативное: человек всегда важнее автомата.
| Поле в CRM | Что пришло из выгрузки | Результат |
|---|---|---|
| Сайт: пусто | romashka.ru | записан |
| Почта: пусто | info@romashka.ru | записана |
| Комментарий менеджера: «просили перезвонить в мае» | — | сохранён без изменений |
| Название: «Ромашка, наш клиент с 2019» | ООО «Ромашка» | не перезаписано |
| Ответственный: Иванов | — | не меняется |
Такое поведение выглядит скучно, но именно оно даёт главное: выгрузку можно запускать повторно, не боясь испортить работу отдела продаж.
Пример до и после
Оптовая компания собирала базу магазинов трижды за год: весной по Яндекс.Картам, летом по 2ГИС, осенью повторно по обоим источникам для актуализации.
| Показатель | Обычный импорт | С умным обновлением |
|---|---|---|
| Карточек в CRM после трёх загрузок | 4 100 | 1 640 |
| Реальных организаций | 1 640 | 1 640 |
| Карточек с заполненной почтой | 38% | 71% |
| Времени на ручную чистку | ≈ 6 часов | 0 |
Обратите внимание на строку про почту. Дубли — это не только мусор: это ещё и разбросанные по разным карточкам куски информации об одной компании. Слияние собирает их вместе, и заполненность базы растёт сама.
Что делать с дублями, которые уже есть
Умное обновление предотвращает новые дубли, но не убирает старые. Порядок действий, если база уже засорена:
- Сначала сведите существующие дубли штатным поиском совпадений в вашей CRM. В Битрикс24 и amoCRM такой инструмент есть. Делать это нужно до следующей выгрузки.
- Проверьте формат телефонов в CRM. Если исторически номера писали как попало, имеет смысл один раз привести их к единому виду — дальше сопоставление будет работать надёжнее.
- Заведите стоп-лист. Выгрузите телефоны действующих клиентов и загрузите их в стоп-лист — тогда они вообще не попадут в новые выгрузки как холодные лиды.
Как технически настроить саму выгрузку в CRM — по шагам разобрано в статье «Как настроить выгрузку лидов в Битрикс24 и amoCRM».
Частые вопросы
Умное обновление затрёт данные, которые менеджер вписал руками?
Нет. Заполненные поля не перезаписываются — дописываются только те, которые в карточке пустые.
Что будет, если у двух разных компаний один и тот же номер?
Такое бывает у сетевых точек с общим колл-центром. Сравнение идёт по номеру, поэтому вторая точка допишется в ту же карточку. Если для вас филиалы — разные клиенты, отключите слияние и разводите их по адресу.
Работает ли это в amoCRM так же, как в Битрикс24?
Логика одинаковая, отличается только способ поиска: в Битрикс24 это поиск по средствам связи, в amoCRM — поиск по запросу с последующей сверкой номера.
Нужно ли чистить CRM перед первой выгрузкой?
Не обязательно. Механизм найдёт существующие карточки и дополнит их. Но если в базе уже есть дубли, лучше сначала свести их — иначе дописываться будет в первую попавшуюся.
Как быть, если у организации сменился номер?
Новый номер = новая карточка, старую механизм не найдёт. Это ограничение любого сопоставления по телефону, и здесь помогает только ручная сверка по названию и адресу.
Соберите первую базу бесплатно
Расширение бесплатное, ставится за полминуты. Демо-ключ открывает 15 организаций — этого хватит, чтобы проверить полноту телефонов и качество выгрузки на своём городе и своей нише. Банковская карта не нужна.
- Как настроить выгрузку лидов в Битрикс24 и amoCRM за 5 минут
- Топ-5 ошибок при сборе контактов с карт и как их избежать
- Как выбрать сервис сбора контактов с карт: 8 критериев вместо рекламных обещаний
Сервис работает только с общедоступными сведениями об организациях, которые компании сами разместили в открытых справочниках: название, адрес, рабочий телефон, корпоративная почта, сайт, режим работы, категория. Персональные данные физических лиц не собираются и не обрабатываются. Ответственность за дальнейшее использование выгрузки — в том числе за соблюдение требований к рекламным рассылкам и звонкам — несёт получатель данных. Подробнее — в Политике обработки персональных данных и Публичной оферте.
Материал носит информационный характер и не является публичной офертой.