Вступление
Клиент обратился к нам с задачей переноса базы контактов из системы Kommo CRM в Keepin CRM. Это распространенная задача при смене платформы автоматизации, однако из-за разницы в структуре хранения информации процесс требует дополнительной обработки данных.
Наш клиент компания, которая является поставщиком сантехники и оборудования для водоснабжения и теплоснабжения. Ранее мы делали работы по автоматизации логистики, ознакомиться с которыми можно по ссылке.

*Сайт клиента
Исходные данные
Клиент столкнулся с проблемой несовместимости форматов данных между двумя CRM-системами:
- В Kommo CRM контакты хранились в горизонтальном формате — каждый контакт в отдельной строке
- Связь контакта с компанией реализована через отдельное поле в строке контакта
- У некоторых контактов отсутствовала электронная почта (около 15% базы)
- При ручной обработке таблицы с 500 контактами затрачивалось порядка 4-5 часов работы
- По статистике, при ручной конвертации данных допускалось до 8% ошибок
- Перенос больших баз (более 1000 контактов) становился практически невыполнимой задачей
Задача
После проведения детального анализа структуры данных обеих CRM-систем, серии консультаций с клиентом и изучения требований к импорту в Keepin CRM, мы определили следующие ключевые задачи:
- Преобразовать горизонтальную структуру данных (каждый контакт в отдельной строке) в вертикальную (компания в строке, контакты в колонках)
- Сгруппировать контакты по принадлежности к компаниям
- Реорганизовать способ хранения данных контактов (номера телефонов, email) согласно требованиям Keepin CRM
- Решить проблему отсутствующих email-адресов у некоторых контактов
- Создать автоматизированное решение, позволяющее выполнять конвертацию данных в один клик
- Обеспечить масштабируемость решения для обработки баз любого размера
Что делали
Давайте рассмотрим изначальную проблему переноса данных
Вид экспортируемых данных
Проблематика:
- Отображение элементов – горизонтальное
- Каждый элемент записан в одну строчку
- Колонка «Компания» — задается для каждого элемента отдельно
- У контакта может отсутствовать почта
Импортируемые данные (вид):

- Отображение элементов – вертикальное
- Название Компании должно записываться в таблице один раз
- Каждый контакт, принадлежащий к Компании, должен располагаться в строке этой Компании, сколько контактов — столько колонок.
- Данные по контакту (номер, почта) — должны размещаться в отдельной колонке
- При импорте контактов — поле «почта» должно быть заполнено
После изучение проблемы мы смогли оптимизировать перенос данных. Что для этого сделали:
Для решения поставленных задач мы разработали специализированный скрипт для Google Таблиц, который автоматизирует весь процесс конвертации данных:
- Выделение уникальных компаний:
- Разработали алгоритм, который анализирует экспортированные данные и выделяет все уникальные названия компаний
- Создали структуру, где каждой компании выделяется отдельная строка в новой таблице
- Группировка контактов по компаниям:
- Реализовали механизм, который для каждой строки исходной таблицы определяет принадлежность контакта к компании
- Настроили перенос всех данных контакта в соответствующую строку компании в преобразованной таблице
- Динамическое формирование структуры:
- Создали систему, определяющую необходимое количество колонок для каждой компании (зависит от числа контактов)
- Разработали функционал автоматического добавления колонок при необходимости
- Обработка отсутствующих данных:
- Внедрили регулярные выражения для генерации временных email-адресов для контактов без почты
- Реализовали шаблон с динамической нумерацией для уникальности
- Оптимизация производительности:
- Написали эффективный код, способный обрабатывать большие объемы данных
- Добавили прогресс индикатор для отслеживания процесса конвертации
Сложности
В процессе разработки решения мы столкнулись с рядом технических сложностей:
- Различие в логике хранения данных между CRM-системами потребовало глубокого анализа структур
- Необходимость обработки контактов без электронной почты, при том что в Keepin CRM это обязательное поле
- Потребность в масштабируемом решении, способном обрабатывать базы разного размера
- Необходимость оптимизации алгоритма для быстрой обработки больших массивов данных
Что получилось
В результате проделанной работы:
- Создан полностью автоматизированный скрипт для Google Таблиц, который:
- Преобразует горизонтальную структуру данных в вертикальную
- Группирует контакты по компаниям
- Реорганизует данные в формат, необходимый для импорта в Keepin CRM
- Генерирует временные email-адреса для контактов без почты
- Работает со скоростью около 100 элементов за секунду

*Пример переноса данных
- Процесс миграции данных полностью автоматизирован и требует минимального участия человека:
- Достаточно загрузить экспортированные данные и запустить скрипт
- Вся конвертация происходит в один клик
Выводы и итоги
Разработанное решение помогло клиенту решить комплексную задачу миграции данных между CRM-системами:
- Экономия времени и ресурсов:
- Время конвертации базы из 500 контактов сократилось с 4-5 часов до 5 минут. При скорости 100 элементов за секунду.
- Полностью исключены ошибки, связанные с человеческим фактором
- Сотрудники освобождены от рутинной работы по ручной обработке данных
- Масштабируемость:
- Решение позволяет обрабатывать базы любого размера
- Скорость обработки около 100 элементов в секунду делает процесс миграции быстрым даже для крупных баз
- Сохранение данных:
- Все связи между контактами и компаниями сохранены
- Решена проблема отсутствующих email-адресов без потери данных
- Структура данных полностью соответствует требованиям целевой CRM
Это решение позволило клиенту безболезненно сменить CRM-систему сохранив всю наработанную клиентскую базу и обеспечив непрерывность бизнес-процессов.
Нуждаетесь в оптимизации работы CRM системы?
Компания CRM EXPERTS — ваш надежный партнер в мире CRM-систем. Для этого оставляйте заявку на сайте crmexperts24.com, либо пишите нам в мессенджеры ➡️crmexperts24.com/help. Запишитесь на бесплатную консультацию и наши специалисты обязательно помогут вам решить все вопросы 😎