A data migration checklist for a new system.
Moving your data is the part of a project that people worry about most and plan least. It is mostly careful, boring work, which is exactly why a checklist helps. Here is the one I use.
- Decide what moves, what is archived and what is left behind before anything is imported.
- Map every old field to a new one on paper, and clean the data in the source first.
- Rehearse with test imports on a copy. Compare counts and totals, then spot-check real records.
- Choose a cut-over day: freeze the old system, run the final import, check, then switch.
- In my quote builder a move from spreadsheets is about 10–25 hours, and from another system 25–60.
1. List what you have, and what should move
Make an inventory of every place data lives: spreadsheets, an older system, email folders, a shared drive, WhatsApp groups, paper files. For each one write down roughly how many records it holds, who maintains it and how reliable it is.
Then decide what moves. Active customers, open jobs and unpaid invoices usually do. Ten-year-old enquiries might go to an archive instead. Moving less, and moving it cleanly, beats moving everything. If you are starting from a spreadsheet, the spreadsheets to CRM guide walks through the first steps in order.
2. Map every field
Build a mapping table with three columns: the field in the old data, the field in the new system, and any rule between them. Typical rules are splitting a full name into two fields, turning free-text statuses into a fixed list, combining two address columns, or converting dates to one format.
Look for the awkward cases early: a column used for two things, a status nobody understands, a field the new system does not have. Decide what happens to each on paper, with the person who knows the business.
- Which old field feeds which new field?
- Which values need translating (for example “done”, “Done”, “complete” all becoming one status)?
- What happens to fields with no home: archive, drop or add a field?
- Which fields are required in the new system, and which old rows are missing them?
3. Clean the data, and find the duplicates
Clean at the source, before the import, so you fix a problem once. The usual targets are consistent date and phone formats, trimmed spaces, missing emails or VAT numbers, and spelling variants of the same company.
Duplicates need a rule, not just a search. Decide what counts as the same record (the same email, the same phone, the same VAT number) and which copy wins when two disagree. Merge notes and history rather than throwing one version away. A duplicate clean-up inside a CRM adds about 4–10 hours in my quote builder, and it is worth doing before the import rather than after.
4. Files and attachments
Records are the easy part. Contracts, photos, IDs and quote PDFs are where migrations stall. Decide where files will live and how they link to records. In MCMA’s system, for example, the application form uploads straight to Google Drive, Where files live is a decision to make early.
For old files, agree a naming rule, move them in a batch, and check that the links from records to files still work. Be careful with anything that holds personal data, and keep the same access limits as before.
5. Rehearse with test imports
Never make the first import the real one. Import a copy into a test version of the new system, look at the result, fix the mapping and import again. Two or three rehearsals are normal. Each should find fewer problems than the last.
Show the test data to the people who will use it. They spot what you cannot: the client who is listed under a nickname, the invoice that was always handled differently. This is also the point at which you can change your mind about the structure, cheaply.
6. Reconcile counts and totals
After every import, compare numbers that should match. If the numbers disagree, stop and find out why before you go on.
- Row counts: records in the source against records in the new system, per type.
- Money: total of invoices, total outstanding and a few customer balances, old against new.
- Spot checks: open ten to twenty records at random and compare every field and every attached file by eye.
- Edge cases: the oldest record, the biggest customer, a record with unusual characters, one with no email.
- Rejected rows: anything the import skipped, listed with the reason.
7. Cut over, then watch
Pick a day. Freeze the old system so nothing changes, run the final import, repeat the checks, and only then switch the team over. Keep the old data read-only for a while in case a question comes up, and agree beforehand what “roll back” would mean and who decides.
Counting matters because silent failures are the worst kind. The concreting contractor’s old website form had been silently dropping leads until lead capture stored every enquiry and gave it a reference. A migration deserves the same treatment: every record accounted for. In the first weeks, check daily for odd records and ask the team what looks wrong. The timeline guide shows where migration sits in a project, and my custom CRM service includes it. You can see its effect in the quote builder.
Questions, answered.
How long does a data migration take?
In my quote builder a move from spreadsheets is about 10–25 build hours and from another system about 25–60. Cleaning and decisions on your side add calendar time.
Should I clean the data before or after the import?
Before, in the source, where it is easier to see. Fixing it once at the start is cheaper than fixing it in the new system later.
Do I have to migrate everything?
No. Move what you need to run the business and archive the rest. Old records can stay in a separate, read-only archive.
What if the old system cannot export its data?
Many can export to CSV or similar. If yours cannot, tell me early, because it changes the plan. Ask the old vendor about export before you commit to anything.
How do we know nothing was lost?
Compare counts and money totals between old and new after each test import, spot-check records by eye, and keep a list of every rejected row.
Read next, then decide.
Enquiries, clients, pipeline and follow-ups in one place, shaped to how you sell.
GuideSpreadsheets to a CRMA step-by-step plan for leaving the spreadsheet behind without losing a single client.
GuideHow long custom software takesCustom software timelines in build weeks, phase by phase, and what slows a project down.
GuideHow to write a software briefA one-page brief for a custom system, with a checklist, so quotes arrive comparable.
PageGet a quoteSix short steps. You see the scope as you go, and get a fixed quote back.
Case studyMCMAA music academy run end to end from one platform: applications, scheduling, payments, portals and programmes.
Case studyNathan Fenech ConcretingFrom a one-page Malta site to a brand, website and quote-to-cash portal for a concreting business now serving Melbourne.
PageGuidesCosts, timelines, briefs, migration, VAT invoices and the SME grant, explained.