A CRM data migration checklist that moves your business without losing a single lead has six stages: back up everything, clean and deduplicate, map every field to its new home, import into a test system first, validate counts and samples, and cut over with a short parallel run and a rollback plan. Most migrations fail at the cleaning and validation stages, not the technical import, so this checklist spends most of its time there. Follow it whether you are leaving spreadsheets or an older CRM.
Before you start: scope and ownership
Decide what you are migrating and who signs it off.
- Sources. List every place data lives: lead sheets, client spreadsheets, the old CRM, email, shared drives, staff phones.
- Record types. Leads, clients, contacts, companies, documents, quotations, invoices, payments, tasks, notes, expiry dates.
- Cut-off rule. For example: all open records, all records touched in the last three years, and summaries of everything older.
- Owner. One person in your business who makes data decisions and signs off the result.
- Freeze date. The date after which the old system is read-only.
If you are still deciding whether to move at all, read CRM vs Excel: 7 signs it is time to switch first.
Stage 1: back up everything
Export every source to a dated folder before anyone cleans anything. Keep at least two copies in different places, following the approach in the 3-2-1 backup strategy for small businesses. This is your rollback. Record the counts: how many leads, clients, documents and invoices each source holds. You will compare against these numbers at the end.
Stage 2: clean and deduplicate
This is where most of the work is, and most of the value.
- One row per record. Split merged cells, remove subtotal rows and notes typed into empty columns.
- Standardise formats. Phone numbers with country codes (+971, +91), dates in one format, consistent country and emirate names.
- Fix required fields. Every lead needs a name and at least one contact method; every client needs an entity.
- Deduplicate carefully. Match on phone, then email, then name plus company. Review likely matches by hand before merging; automatic merges are the most common cause of lost notes and tasks.
- Classify. Tag records as open, active, closed or archive so the import can treat each group differently.
- Attach documents. Make sure every passport, licence and contract file has a record it belongs to and a clear filename.
Stage 3: map every field
Build a mapping sheet with four columns: source field, target field, transformation rule, and what to do if empty. Examples of transformation rules: split full name into first and last; convert status text into pipeline stage; convert expiry text into a date; turn free-text service names into a fixed list. Decide what you are dropping and write it down. Sensitive fields such as passport numbers should map to fields with restricted access; see user roles and permissions.
Agree the mapping sheet with your developer before any import. It becomes the specification and the test plan.
Stage 4: import into a test system
Never import directly into production first. Load the cleaned data into a test copy of the new CRM and have the data owner and two staff members work in it for a few days. Look for fields in the wrong place, stages that do not match, missing documents and broken links between companies and people. Fix the mapping, re-import, repeat until the test import is clean. Keep the import scripts so the live import is a repeat of a known-good process.
Stage 5: validate counts and samples
| Check | How | Pass condition |
|---|---|---|
| Record counts | Compare source counts from Stage 1 with imported counts per type | Match, or every difference explained by deduplication or archive rules |
| Financial totals | Sum of invoice amounts and payments per month, per entity | Match source to the fils or paisa |
| Expiry dates | Count documents expiring in the next 90 days in both systems | Match |
| Random samples | Open 30 records of each type and compare field by field | No errors; any error triggers a wider check |
| Edge cases | Clients with several companies, leads with no email, oldest and newest records | Displayed correctly |
| Documents | Open a sample of files from each record type | Right file on the right record |
Financial records deserve the strictest check. In the UAE, records must generally be kept for 5 years under Federal Tax Authority rules (tax.gov.ae), so migrated invoices must remain complete, unaltered and retrievable. Our guide to record-keeping rules for UAE businesses covers what that means in practice.
Stage 6: cut over with a rollback plan
- Announce the freeze date to staff; from that moment the old system is read-only.
- Take a final export of the old system and import the delta since the test import.
- Run the validation table again on production.
- Open the new CRM to staff with a one-page guide and a named helper for the first week.
- Keep the old system readable for a short parallel period, but do not allow edits.
- If a serious problem appears, the rollback is the Stage 1 backup plus the final export; decide in advance who can call it.
Turn on the audit trail from day one so every post-migration change is visible; audit trails in business software explains why this matters most in the first weeks.
After the move
Connect the channels that create new data, especially WhatsApp and web forms, so leads are captured automatically from now on. Schedule a data quality review after one month: duplicates created since go-live, records with missing owners, and tasks without dates. Then archive the old exports securely and record where they are.
Frequently asked questions
How long does a CRM data migration take?
For a small business with a few thousand records in reasonably clean spreadsheets, the technical import takes hours; the cleaning and validation around it take one to three weeks. Migrations from an old CRM with years of history, attachments and custom fields take longer, mostly because of decisions about what to keep.
Should we migrate everything or start fresh?
Migrate open leads, active clients, all documents and expiry dates, and at least the summary of closed deals for reporting. Consider archiving very old, closed, low-value records in a read-only export instead of importing them. Starting completely fresh loses renewal history and follow-up context that your team relies on.
What is the most common cause of lost leads during migration?
Duplicate handling. When two records for the same person are merged automatically, notes, tasks or a phone number on one of them can be discarded. Review merges above a confidence threshold by hand, and keep the pre-merge export so anything lost can be recovered.
How do we migrate WhatsApp and email history?
Email can usually be imported as timeline entries if the old system exported it. WhatsApp history generally cannot be imported retroactively; export important chats as text and attach them to the client record, then connect WhatsApp to the new CRM so future conversations are captured automatically.
Who should own the migration, the developer or our team?
Both, with clear roles. The developer handles mapping, import tooling and validation reports. Your team owns the data decisions: what each column means, which duplicates to merge, which records to archive, and the final sign-off after sample checks. A migration without a business owner signing off is not finished.
How Zaini Developers can help
Every CRM and ERP project at Zaini Developers includes migration as a defined phase: we build the mapping sheet with you, write repeatable import scripts, run test imports, produce validation reports against your source counts, and support the cut-over week. We have moved consultancies off spreadsheets and older systems into our Consultant CRM and FORMA without losing records. See what we build on the services page, try the live demo, or contact us with a sample of your current data for a migration plan.
