CRM data migration plan (what success looks like)
Define success before you touch a CSV. Success means: 1) 100% of required fields populated, 2) duplicates under 1%, 3) no unassigned contacts/opportunities, and 4) zero downtime for your revenue processes. Your CRM data migration should preserve history (activities/notes where supported), protect consent, and maintain attribution so reporting doesn’t reset to day zero.- Primary outcomes: data completeness, dedupe rate, owner assignment, and intact timelines.
- Guardrails: consent proof per channel, least privilege, and a tested rollback plan.
- Timeline: two-week prep → one-week testing → one-day cutover → two-week hypercare.
Pre‑migration checklist (10 must‑do items)
- Inventory sources: legacy CRM, spreadsheets, email tools, support/chat, billing, calendars.
- Choose objects: contacts, companies/accounts, opportunities/deals, activities, notes, tickets.
- Define required fields: per object and by pipeline stage in the new CRM.
- Normalization rules: names, domains, phone formats (E.164), country codes, picklists.
- Dedupe keys: B2B = email + company domain; B2C = email + phone when available.
- Consent model: separate email vs SMS, store timestamp/IP/source.
- Owner model: round‑robin for new, account‑match for existing customers.
- Tags/naming: src_legacy_YYYY‑MM‑DD on all imports for traceability.
- Security: least privilege, audit logs on, backups scheduled.
- Rollback plan: pre‑cutover snapshot, restore steps, and responsibilities documented.
Field mapping, validation, and dedupe (your 80/20)
Good mapping prevents rework. Create a mapping sheet with legacy → new field names, types, picklist values, and any transformations.- Normalize emails (lowercase), strip whitespace, dedupe before import.
- Phone: convert to E.164; add input masks and validation rules post‑import.
- Picklists: map legacy free‑text to the new picklist; document any Other cases.
- Addresses: split street/city/region/postal/country; prefer ISO country codes.
- Attribution: keep first‑touch and last‑touch where known; preserve UTMs if available.
Sandbox testing (prove the path before production)
Import a 500‑record representative sample into a sandbox or trial environment. Include edge cases: international phone numbers, missing emails, multiple opportunities, and unsubscribed contacts.- Import runbook: order = companies → contacts → opportunities → activities/notes.
- Validation: counts match, required fields populated, picklist values valid.
- Ownership: test owner rules on create/update; no unassigned records.
- Consent: verify email/SMS flags, timestamp/IP/source, and opt‑out handling.
- Reporting: build a basic dashboard (records by source/date, stage counts) to spot anomalies.
Zero‑downtime cutover (the production game plan)
Avoid freeze‑and‑pray. Use a staged cutover that keeps your site, forms, and calendars live.- T‑7 days: final full export from legacy; dedupe and normalize.
- T‑3 days: production dry‑run with 5–10% of records; validate and purge.
- T‑1 day: freeze non‑critical changes in the legacy CRM; take a snapshot/backup.
- T‑0 (off‑hours): import objects in order, tag with src_legacy_YYYY‑MM‑DD; reconcile counts.
- Go‑live: switch forms/calendars/integrations to the new CRM; enable routing and reminders.
- Hypercare: office hours daily, issue tracker, and a shared QA checklist for two weeks.
Post‑migration QA and monitoring (make it stick)
- Data completeness: required fields at each pipeline stage ≥ 98%.
- Duplicate rate: under 1% after a second dedupe pass on new data.
- Owner assignment: unassigned = zero; alert if any new record lacks an owner.
- Consent: test an unsubscribe and STOP flow; confirm audit entries.
- Reporting: compare the last 30 days in legacy vs new CRM for traffic → submit → booked → qualified → won.
Security, privacy, and compliance essentials
- Consent by channel: email vs SMS, with timestamp/IP/source. Honor UNSUBSCRIBE/STOP automatically.
- Least privilege: roles by job, not person; minimize admins; enable audit logs.
- Backups and restore tests: export before cutover; test restore quarterly.
- Core Web Vitals: if embedding forms/calendars, keep heavy embeds below the fold and reserve height to protect LCP/CLS.
- Official guidance and docs:
Tools, templates, and where to start
- Mapping template: spreadsheet with columns for legacy field, new field, type, validation, transformation, and example values.
- Dedupe rules: define survivorship (most recent update wins; prefer verified email/phone).
- QA checklist: counts by object, required fields by stage, owner coverage, consent proof.
- All‑in‑one option: if you want funnels, forms, calendars, and CRM under one roof (and a simpler migration from spreadsheets), try Go High Level.
Implementation guide: your 14‑step migration runbook
- Write outcomes and guardrails; share with stakeholders.
- Inventory sources; export samples; document field types.
- Define objects and required fields by stage; set validation rules.
- Design dedupe strategy and survivorship; choose keys per segment.
- Normalize and transform data; map picklists and countries.
- Sandbox import of 500 records; validate counts, owners, consent, and reports.
- Fix issues; update mapping; repeat a second sandbox pass.
- Production dry‑run (10%); validate; purge.
- Freeze non‑critical changes; take full backups from legacy.
- Cutover import in order; tag with src_legacy_YYYY‑MM‑DD; reconcile counts.
- Switch forms/calendars/integrations; enable routing and reminders.
- Run QA and dashboards; resolve unassigned or invalid records daily.
- Train teams (90‑minute role‑based sessions) with one‑page playbooks.
- Hypercare for 14 days; host office hours; log and fix issues fast.
Comparison: migrate to all‑in‑one vs best‑of‑breed
- All‑in‑one: faster time to value, fewer integrations; verify depth for your must‑have features.
- Best‑of‑breed: deeper per category; budget time for API limits, error handling, and attribution QA.
Related guides on Isitdev
- CRM Implementation Checklist 2025: Launch in 30 Days
- Top 10 CRM Features Every Business Needs in 2025
- Go High Level Sales Funnels 2025
- Go High Level Forms & Surveys 2025
- Go High Level Calendar Booking Setup 2025
Frequently asked questions
What’s the safest order to import CRM data?
Companies/Accounts → Contacts → Opportunities/Deals → Activities/Notes → Tickets. This preserves relationships and history.How do I avoid duplicates during migration?
Define dedupe keys (e.g., email + company domain), normalize data first, dedupe before import, and run a post‑import dedupe pass.Can I migrate email/SMS consent?
Yes—store consent per channel with timestamp/IP/source. Honor UNSUBSCRIBE/STOP automatically in your new CRM.Should I freeze all activity during cutover?
Avoid full downtime. Freeze non‑critical changes, import off‑hours, and switch forms/calendars last to keep leads flowing.How do I migrate activities and notes?
Check official vendor limits and supported objects. When not supported, export as attachments or summaries linked by contact IDs.What KPIs prove a successful migration?
Data completeness ≥ 98% required fields, duplicate rate <1%, zero unassigned records, and reporting continuity vs last 30 days.How do I handle international phone numbers?
Convert to E.164 during normalization; add phone input masks and validation rules post‑import.What’s my rollback plan if something goes wrong?
Pre‑cutover snapshot/export, documented restore steps, and a clear decision window to revert if critical checks fail.Where do I confirm vendor‑specific steps?
Always verify in official docs: Salesforce, HubSpot, Microsoft Dynamics 365, and Zoho CRM help centers.Can I keep UTMs and attribution?
Yes—carry first/last‑touch fields and UTM columns where supported; validate in reports after go‑live.Disclosure: Some links are affiliate links. If you purchase through them, we may earn a commission at no extra cost to you. Always verify features, limits, and policies on official vendor pages.

