Контекст и вызов
AmoCRM и RetailCRM имеют разную модель данных, связи контакт-сделка и custom fields не совпадают. Риск потери истории касаний и дублей при переносе.
Компания переходила с AmoCRM на RetailCRM и боялась потерять историю сделок. Выполнил миграцию Python-скриптами: контакты, сделки, задачи и валидация с отчётом расхождений.
AmoCRM и RetailCRM имеют разную модель данных, связи контакт-сделка и custom fields не совпадают. Риск потери истории касаний и дублей при переносе.
Python ETL: экспорт из AmoCRM API, трансформация маппинга полей, загрузка в RetailCRM батчами. Скрипты валидации сравнивают counts и связи, отчёт расхождений для ручной доработки.
API: контакты, компании, сделки, задачи и notes батчами.
Маппинг полей, статусов и связей в модель RetailCRM.
Batch import в RetailCRM с idempotency и логом ошибок.
Сравнение counts, связей и spot-check 100 случайных записей.
Staging DB для промежуточного хранения и трансформации.
YAML-конфиг соответствия custom fields и статусов.
Автотесты counts, FK integrity и duplicate detection.
Excel-отчёт: перенесено, пропущено, требует ручной правки.
Опишите ваш процесс - спроектирую связку систем, сроки и формат работы под ваш стек.