Home / Blog / Data Migration Checklist
Blog · PSA & Operations

Data Migration Checklist: Moving Client and Project Records Safely

Moving to a new system is the moment agencies lose years of history in an afternoon: duplicate contacts, orphaned invoices, projects with no time logs attached. Here's how to move client and project data without any of that happening.

PSA & Operations·October 3, 2025·7 min read

Nobody plans to lose data during a migration. It happens anyway, usually because the export was pulled while people were still working in the old system, or because nobody decided in advance what "done" looks like for a client record. A 40-person consulting firm we've talked with once spent three weeks after a CRM switch tracking down which of 60 "duplicate" contacts was actually the live one, because two systems had been updated in parallel for a month. That's the failure mode this checklist is built to prevent. It's written for the person doing the actual move, ops lead, finance manager, or founder, not for a database administrator, and it assumes you're migrating into a connected PSA rather than a single-purpose tool.

In this guide

Before you touch an export button Clients and contacts: what actually needs to move Projects, time, and invoice history Cutover day and the two weeks after Frequently asked questions
Hands and notebooks around a meeting table
Hands and notebooks around a meeting table

Before You Touch an Export Button

The migrations that go badly almost always skip this step. Someone opens the old system, hits export on the clients table, and starts mapping fields into the new one the same afternoon. Six weeks later they discover the export was pulled on a Tuesday and three new deals closed on Wednesday never made it across.

Fix the timing problem first. Pick a freeze date and communicate it: after that date, nobody creates a new client, project, or invoice in the old system. Anything urgent gets logged in a shared doc and entered manually into the new platform after cutover. This sounds like overkill for a 15-person agency. It is not. The freeze date is what turns migration from an open-ended chase into a task with a defined edge.

Second, decide who owns the decision on data quality, because someone will ask "do we really need to fix this contact's title before importing it" fifty times over the course of a week, and if there's no single owner, the answer keeps changing. Usually this is whoever runs operations or finance, since they're the ones who will get blamed later if an invoice goes to the wrong billing contact.

Clients and Contacts: What Actually Needs to Move

Not every field in your old CRM deserves a seat in the new one. Before mapping anything, sort your client and contact records into three piles: active clients with open work, past clients you'll reference for renewals or referrals, and dead records that only exist because nobody ever deleted them. That third pile is usually 20 to 30 percent of a CRM's total row count. Leave it behind, or archive it as a flat export rather than importing it as live records.

Projects, Time, and Invoice History

Client records are the easy part. Projects carry dependencies: time entries, milestones, invoices already sent, and sometimes contracts tied to a specific project ID that finance still references. Get the mapping wrong here and you end up with a project in the new system that shows zero hours logged against a client who has clearly been billed for 300 of them.

Split projects into three buckets, same idea as with clients. Active projects need full detail: every task, every time entry, every open invoice, because your team is working in them right now and needs continuity. Recently closed projects (say, closed within the last 6 to 12 months) are worth moving with reasonably full detail too, since they still come up in QBRs and renewal conversations. Anything older can usually move as a summary record: client, project name, dates, total value, final margin, without every underlying time entry. Full detail on a five-year-old closed project rarely earns its keep.

Invoice history is the one thing you cannot afford to get wrong. If a client's payment history doesn't carry over accurately, you'll either double-bill them or accidentally forgive a balance they still owe. Reconcile total invoiced and total paid per client against your accounting system before you consider the migration complete, not after the first new invoice goes out.

If your firm has been running on spreadsheets or a bare-bones tool up to now, this is also the point where it's worth reading through what a proper PSA actually consolidates, since the reason projects and invoices get tangled in the first place is usually that they lived in separate tools that never talked to each other. Our guide on what PSA software is and how it connects CRM, projects, time, and billing covers that in more depth if you want the full picture before you finalize your field mapping.

Cutover Day and the Two Weeks After

Pick a cutover date that isn't the same day as a big deadline for any active client. Mondays are generally better than Fridays, since it gives your team four business days to catch mapping errors before a weekend where nobody's watching. Run a parallel week if you can afford it: keep the old system read-only and available, and have two or three people spot-check specific clients and projects against it during week one in the new platform. Don't try to spot-check everything. Sample it. Pick your five largest clients by revenue, your three most complex active projects, and a handful of records at random, and verify those against the old system line by line. If those check out, the rest of the migration is very likely fine too, and you'll have caught the mapping errors that actually matter (the ones on your biggest accounts) rather than burning a week auditing records nobody looks at anyway.

The two weeks after cutover matter more than the cutover itself. This is when your team is still half-thinking in the old system's structure, and small gaps show up: a project template that didn't carry over, a rate card that reverted to a default. Keep a shared list where anyone can flag something that looks off, and review it daily for the first ten business days. After that, issues drop off fast, because by then everyone's muscle memory has shifted to the new system. If you're evaluating platforms and haven't picked one yet, it's worth comparing how different tools handle import tooling and support during onboarding on the features page, and checking what's included at each tier on pricing, since migration support varies a lot between vendors.

Migrating from spreadsheets or another tool?

See how Autovella's import tooling and onboarding team handle client, project, and invoice history during a live walkthrough.

See pricing

Frequently asked

For a firm with 50 to 150 active clients and a few hundred historical projects, plan for two to four weeks from export to cutover, most of it spent cleaning data before the actual import. Teams that skip the cleanup step and migrate raw exports usually spend that same time afterward fixing duplicate contacts and broken invoice links instead.

Migrate all clients and active or recently closed projects with full detail, since your team will reference those for context and billing. Older closed projects can often move as summary records, client name, dates, total value, without every task and time entry, unless you have a specific reporting or audit reason to keep the full history live in the new system.

Running the live business and the migration on the same unfrozen data at the same time. If new invoices, time entries, or deals keep getting created in the old system after the export is pulled, the cutover date becomes a moving target and something always falls through the gap. Freeze the source system for new records before you start the final import.

AV
Autovella Team
Professional Services Automation, product & operations

Related reading