В три часа ночи мне позвонил директор логистической компании. Голос был хриплый — то ли от недосыпа, то ли от нервов. «Мы запустили новую CRM, а половины клиентов нет. Просто исчезли. Говорят, что-то с миграцией, но никто не может объяснить, что именно».
К утру мы нашли проблему. При переносе данных скрипт «склеил» 847 компаний с похожими названиями. ТОО «Алматы Логистик» и ТОО «Алматы-Логистик» — для алгоритма это был один и тот же клиент. Контакты перемешались, история заказов превратилась в кашу, менеджеры не понимали, кому звонить.
Эта история — не исключение. По нашей статистике, около 60% проектов внедрения CRM сталкиваются с серьёзными проблемами именно на этапе миграции данных. Не потому что технология сложная — технически перенести таблицы из одной базы в другую несложно. Проблема в том, что данные в старых системах обычно находятся в состоянии, которое вежливо называют «историческим наследием», а честно — бардаком.
В этой статье я расскажу, как организовать миграцию данных в CRM так, чтобы не потерять клиентов, не создать дублей и не парализовать работу отдела продаж на неделю. Будет много практики — чек-листы, примеры ошибок, конкретные шаги. Меньше теории, больше «как делать».
«Миграция данных — это не технический проект. Это бизнес-проект с техническими инструментами. Если вы думаете только о таблицах и скриптах, вы уже проиграли».
Когда компания решает внедрить новую CRM, все сосредоточены на красивом: выбор системы, настройка воронок, интеграция с телефонией, обучение сотрудников. Миграция данных воспринимается как техническая рутина — «ну, перенесём таблички, делов-то».
А потом начинается реальность. И она выглядит примерно так:
В старой системе (или, что чаще, в десяти Excel-файлах на разных компьютерах) хранится информация о клиентах, которую копили годами. Кто-то вводил данные аккуратно, кто-то — как придётся. Один менеджер писал «Алматы», другой — «г. Алматы», третий — «Almaty». Телефоны записаны то с «+7», то с «8», то вообще без кода. Электронные адреса — иногда корректные, иногда с опечатками, иногда просто текст «уточнить».
И всё это богатство нужно перенести в новую CRM, где есть обязательные поля, справочники, валидация. Система ждёт, что город будет выбран из списка, а вы пытаетесь запихнуть туда «Алмата (рядом с MEGA)».
Переносить эти данные «как есть» — значит затащить хаос в новую систему. Но и чистить их можно бесконечно. Нужен баланс: достаточно чисто, чтобы работать, достаточно быстро, чтобы не затянуть проект на полгода.
Подробнее о том, как в принципе подойти к вопросу качества данных, мы писали в статье Качество данных в CRM: как построить «единый источник правды». А сейчас сосредоточимся на практике миграции.
Прежде чем что-то переносить, нужно понять, что переносить. Звучит банально, но на практике это часто пропускают. «Да у нас всё в Excel, там понятно» — а потом выясняется, что есть ещё база в Access, записи в блокноте директора и «очень важная табличка на флешке у Гульнары, которая в декрете».
Пройдитесь по всем отделам и соберите информацию: кто где хранит данные о клиентах. Не только официальные системы, но и личные файлы, Google-таблицы, заметки. Часто самая ценная информация — именно там.
Вот что нужно выяснить для каждого источника:
Не все данные одинаково полезны. Клиент, с которым последний раз общались в 2015 году и который не отвечает на звонки — нужен ли он в новой CRM? Может, лучше оставить его в архиве?
Мы обычно делим данные на три категории:
| Категория | Критерии | Что делать |
|---|---|---|
| Активные | Есть сделки за последний год, регулярные контакты | Переносить в первую очередь, с полной историей |
| Спящие | Нет активности 1-3 года, но потенциально интересны | Переносить базовую информацию, без детальной истории |
| Архивные | Нет контактов более 3 лет, неактуальные данные | Сохранить в архиве, не переносить в CRM |
Такой подход позволяет сфокусироваться на том, что реально нужно для работы, и не тратить ресурсы на перенос «мёртвых» данных. Плюс — меньше данных, меньше шансов на ошибки.
Посчитайте количество записей в каждой категории. Это поможет спланировать ресурсы и сроки. Грубая формула: на очистку и перенос 1000 записей уходит примерно 1-2 рабочих дня (при ручной проверке) или несколько часов (при автоматизации с выборочной проверкой).
Если у вас 50 000 клиентов — это уже серьёзный проект, который требует автоматизации и чётких процессов. Если 500 — можно справиться почти вручную.
Поможем оценить объём работы и составить план переноса данных без потерь. Бесплатная консультация.
Получить консультациюДубли — это боль любой клиентской базы. Один и тот же клиент записан несколько раз под разными именами, с разными контактами, в разных сделках. При миграции эта проблема многократно усиливается: вы собираете данные из нескольких источников, и количество дублей растёт экспоненциально.
Почему дубли — это плохо? Не только потому, что база выглядит неаккуратно. Реальные последствия:
Дубль — это когда две записи относятся к одному и тому же реальному объекту (клиенту, компании, сделке). Проблема в том, что записи редко совпадают полностью. «Иванов Иван» и «Иван Иванов» — это один человек? А «ТОО Алматы Логистик» и «Алматы Логистик ТОО»?
Для поиска дублей используют ключи сопоставления — поля или комбинации полей, которые с высокой вероятностью уникальны для каждой записи:
Полностью автоматическая дедупликация опасна — алгоритм может ошибиться и объединить разных клиентов. Полностью ручная — слишком долго и дорого. Оптимальный подход — гибридный:
Автоматически объединяем записи с высокой степенью уверенности: точное совпадение БИН, телефона, email. Здесь ошибка маловероятна.
На ручную проверку отправляем записи с частичным совпадением: похожие названия, один телефон, но разные адреса. Человек смотрит и решает.
Оставляем как есть записи, где совпадение слабое — лучше иметь два отдельных клиента, чем один «склеенный» из разных.
Когда вы нашли дубль, возникает вопрос: какую информацию оставить? Вот правила, которые мы используем:
Важно: при объединении фиксируйте, какие записи были объединены. Это поможет, если что-то пойдёт не так и нужно будет «откатить» изменения.
После дедупликации у вас есть чистый список уникальных записей. Но данные в них всё ещё могут быть некорректными: неверные форматы, устаревшие контакты, несуществующие адреса. Нужна валидация — проверка данных на корректность и нормализация — приведение к единому формату.
Телефон — один из главных способов связи с клиентом. Если он неверный, менеджер не дозвонится. Что проверяем:
Нормализация телефонов — приведение к единому формату. Мы рекомендуем международный формат: +7 XXX XXX XX XX. Все входящие номера — будь то «8 701 123 45 67», «87011234567» или «701-123-45-67» — должны превращаться в один формат.
С email проще проверить формат (есть @, домен существует), но сложнее проверить актуальность. Базовые проверки:
Для массовой проверки используйте специализированные сервисы валидации email — они проверят, что адрес реально существует, без отправки писем.
Адреса — отдельная головная боль. Один и тот же адрес может быть записан десятком способов. Для Казахстана типичные проблемы:
Решение — справочник городов и адресов. Лучше всего использовать официальные справочники (КАТО для Казахстана) и маппить входящие данные на стандартные значения.
| Поле | Было | Стало |
|---|---|---|
| Телефон | 8-701-123-45-67 | +7 701 123 45 67 |
| Город | Алма-ата | Алматы |
| Компания | ТОО "АЛМАТЫ ЛОГИСТИК" | ТОО «Алматы Логистик» |
| IVAN@COMPANY.KZ | ivan@company.kz |
Что делать, если у клиента нет телефона? Или email невалидный? Варианты:
Главное — не подставляйте фейковые значения типа «нет данных» или «уточнить». Они засоряют базу и искажают отчёты.
У вас есть чистые данные. Теперь нужно понять, как они ложатся в структуру новой CRM. Это называется маппинг (mapping) — сопоставление полей источника и приёмника.
Кажется, что это просто: поле «Телефон» переносим в поле «Телефон». Но на практике возникают нюансы:
Документируйте каждое соответствие. Это поможет при отладке и при обучении команды. Пример:
| Источник (старая CRM) | Приёмник (новая CRM) | Трансформация |
|---|---|---|
| Название компании | company_name | Убрать кавычки, ОПФ в отдельное поле |
| Телефон | phone_main | Нормализовать в формат +7... |
| Менеджер | owner_id | Сопоставить с ID пользователей |
| Статус (Новый/В работе/Закрыт) | stage_id | Маппинг на новые этапы воронки |
| Комментарии менеджера | notes (+ custom_legacy_notes) | Перенести как заметки |
Иногда в старой системе есть поля, которые не предусмотрены в новой. Три варианта:
Создать кастомное поле — если информация действительно нужна для работы. Но не увлекайтесь: каждое дополнительное поле усложняет систему.
Перенести в заметки/комментарии — если информация может пригодиться, но не требует структурированного хранения.
Не переносить — если поле устарело или дублирует другую информацию. Иногда миграция — хороший повод избавиться от лишнего.
Компании связаны с контактами, контакты — со сделками, сделки — с задачами. При миграции важно сохранить эти связи. Проблема: в старой и новой системе идентификаторы разные.
Решение — таблица соответствия ID. При переносе каждой записи сохраняйте пару «старый ID — новый ID». Потом используйте эту таблицу для восстановления связей.
Однажды мы мигрировали базу, где связь «контакт — компания» хранилась только в названии контакта. Буквально: «Иванов Иван (ТОО Рога и Копыта)». Пришлось писать парсер, который извлекал название компании из скобок и создавал связь. 127 уникальных вариантов написания — и это для одной базы на 3000 записей.
Вы подготовили данные, настроили маппинг. Теперь хочется нажать кнопку и перенести всё в боевую систему. Стоп. Сначала — тестовая миграция.
Тестовая (или пилотная) миграция — это перенос данных в изолированную среду для проверки. Вы увидите результат, не рискуя боевыми данными.
Технический специалист проверит структуру и количество. Но реальную пользу видят те, кто будет работать в системе. Попросите 2-3 менеджеров посмотреть своих клиентов в тестовой среде:
Их обратная связь бесценна. Они заметят то, что пропустит скрипт.
Редко всё получается с первого раза. Нашли ошибки — исправили скрипт — повторили тестовую миграцию. Две-три итерации — это норма. Пять и больше — повод задуматься, не упустили ли что-то на этапе подготовки.
Тестовая миграция прошла успешно, пользователи довольны, ошибки исправлены. Пора переносить данные в боевую систему. Как сделать это максимально безболезненно?
Лучшее время для миграции — когда активность пользователей минимальна. Для большинства бизнесов это вечер пятницы или выходные. У вас будет время на перенос, проверку и исправление ошибок до начала рабочей недели.
Предупредите команду заранее. Они должны знать:
Надейтесь на лучшее, готовьтесь к худшему. Перед миграцией сделайте:
Есть два подхода к боевой миграции:
Полная миграция (Big Bang) — переносите всё за один раз. Простой, понятный, но рискованный. Если что-то пойдёт не так — проблемы будут масштабными.
Инкрементальная миграция — переносите данные частями: сначала справочники, потом компании, потом контакты, потом сделки. Между этапами — проверка. Дольше, но безопаснее.
Для баз до 10 000 записей обычно подходит Big Bang. Для больших объёмов рекомендуем инкрементальный подход.
Иногда компании хотят «поработать в двух системах параллельно, чтобы убедиться, что всё нормально». Это ловушка. При параллельной работе данные расходятся уже в первый день. Кто-то вносит изменения в старую систему, кто-то — в новую. Через неделю у вас два разных источника правды.
Рекомендация: чёткий переход. Определяете дату, после которой старая система — только для чтения (а лучше — закрыта). Все работают в новой.
Мы перенесли данные для сотен компаний. Сделаем аккуратно, без потерь и с гарантией.
Обсудить проектДанные перенесены, система работает. Но миграция не заканчивается нажатием кнопки «Импорт». Первые дни после запуска — критически важны.
Будьте на связи. В первые дни пользователи будут находить проблемы, которые не поймали на тестировании. Это нормально — 100% качество на большом объёме данных недостижимо.
Что обычно всплывает:
Создайте канал для сбора обратной связи (чат, форма, ответственный человек). Быстро реагируйте на критичные проблемы.
После миграции обязательно останутся записи, требующие ручной доработки. Контакты без телефонов, компании с неполными данными, подозрительные дубли. Это не провал — это реальность.
Создайте задачи на дочистку и распределите по менеджерам. Каждый проверяет и дополняет «своих» клиентов. Так база постепенно придёт в идеальное состояние.
Пока всё свежо в памяти — задокументируйте:
Это пригодится при следующей миграции (а она будет — бизнес растёт, системы меняются) и при обучении новых сотрудников.
За годы работы мы участвовали в десятках миграций. Вот ошибки, которые повторяются раз за разом:
1. «Перенесём как есть, потом разберёмся» — нет, не разберётесь. Бардак в данных — бардак в работе. Чистить нужно до миграции.
2. Игнорирование тестовой миграции — «и так всё понятно, зачем тратить время». А потом в понедельник утром менеджеры не находят клиентов.
3. Миграция без бэкапа — надеются, что всё пройдёт гладко. Иногда проходит. Иногда нет. Бэкап делается всегда.
4. Недооценка времени — «там же просто таблицы перенести». Реальная миграция занимает в 2-3 раза больше, чем кажется.
5. Один человек отвечает за всё — и за скрипты, и за проверку, и за поддержку пользователей. Он не справится. Нужна команда.
6. Параллельная работа в двух системах — об этом уже говорили. Не делайте так.
7. Перенос всего подряд — включая мусор, тестовые данные и клиентов десятилетней давности. Меньше данных = меньше проблем.
8. Игнорирование связей — перенесли контакты, забыли привязать к компаниям. Теперь 5000 «бесхозных» контактов.
9. Отсутствие документации маппинга — через месяц никто не помнит, почему статус «Новый» превратился в «Квалификация».
10. Нет плана отката — когда всё сломалось, выясняется, что откатиться некуда. Бэкап есть, но как его восстановить — никто не знает.
Сохраните этот чек-лист и используйте при планировании миграции:
Миграция данных — не разовое техническое мероприятие. Это возможность навести порядок в клиентской базе, избавиться от накопленного хаоса, начать работу в новой системе с чистого листа (но не с пустого).
Это требует времени, сил и терпения. Придётся возиться с неприятными деталями: разбирать дубли, выискивать правильные телефоны, объяснять менеджерам, почему нельзя «просто скопировать всё и разобраться потом».
Но результат того стоит. Чистая база данных — это:
Если вы только начинаете внедрение CRM — заложите на миграцию достаточно времени и ресурсов. Если уже работаете с «историческими» данными — возможно, пора провести чистку. Мы готовы помочь в обоих случаях.