Cleaning software migration checklist
Short answer: migrate in three stages: preserve an export, test a small client sample, then switch the live schedule at a defined cutoff. A successful client import does not prove that recurring visits, balances, notes, or reminders moved correctly. Check each separately before replacing the old system.
1. Inventory what must move
Assign one person to own the migration and a second person to check the results. Record the old system, the destination, the export date, and which records are in scope. Separate active clients from leads and archived accounts so an import does not accidentally reactivate old work.
| Record | What to preserve | Acceptance check |
|---|---|---|
| Clients and properties | Stable reference ID, contact details, billing address and service address as separate fields | One client with two properties remains one client with two locations |
| Recurring work | Next visit, recurrence pattern, local time, duration, assigned team and agreed price | Compare the next several occurrences, not just the first visit |
| Exceptions | Skipped dates, one-off extras, special access instructions and reassigned visits | A skipped visit stays skipped and temporary changes do not become permanent |
| Open financial items | Invoice references, outstanding balances, credits and deposits | Totals reconcile; no duplicate invoice is issued |
| Communications | Notification preferences and enabled automations | Only the intended system sends the next reminder |
Keep sensitive access information out of general-purpose CSV files where possible. Transfer only what the destination needs, through the vendor's supported process. Do not assume saved payment credentials can be exported or imported; ask both providers how their supported transfer process works.
2. Confirm the import boundary before cleaning the file
Ask the destination vendor which objects its importer supports, whether existing records are updated or duplicated, how properties are linked, and whether notifications can be suppressed during setup. A customer importer is not necessarily a complete business migration service.
For example, Jobber's official client-import guide documents field matching and a sample file. It also cautions businesses using QuickBooks against importing the same clients twice through separate routes. This is a product-specific example, not a promise that all records transfer through that importer.
3. Run a deliberately difficult pilot
Our suggested pilot is five representative records: a straightforward weekly client, a client with two properties, a biweekly service with a skipped date, an account with an open balance, and an account with incomplete contact details. Use dummy records for notification testing where the vendor permits; obtain appropriate permission before testing with real customers.
- Preserve the untouched export and work on a copy.
- Map each column explicitly. Check phone formats, postal codes with leading zeros, and date formats.
- Import the pilot with live communications disabled through supported settings.
- Inspect records in both the office and worker-facing views.
- Reconcile the imported count, rejected rows and duplicates before importing the remainder.
Do not repeatedly upload the same file to see what happens. First establish whether another import would update, skip, or duplicate the pilot. Record the vendor's cleanup procedure before proceeding.
4. Rebuild and verify the schedule
Check weekly, every-two-week, every-four-week and monthly schedules separately. A four-week cycle is not the same as the same calendar date each month. Compare customer, property, date, local arrival window, duration and team for the next several visits. Include a holiday exception and a staff absence.
Use our recurring scheduling test checklist to verify series edits, skipped visits and reassignment. Do this before enabling automatic confirmations or reminders.
5. Cut over once, with a rollback boundary
Choose a cutoff time outside your busiest dispatch window. Capture the final changes made since the first export, reconcile the next working day's schedule with the team, and designate one system as the source of truth. Keep the old records accessible under the vendor's terms until reconciliation is complete; do not cancel first and discover later that exports are unavailable.
Write down the rollback trigger: for example, missing next-day visits or unreconciled balances. Before returning to the old system, reconcile any new bookings or payments created after cutoff. A rollback without this delta check can lose work as easily as the original migration.
Go-live sign-off
- Client and property counts are reconciled, including rejected rows.
- The next working day's jobs have an assigned owner and correct service details.
- Open balances and deposits have been checked independently.
- The team can access only the records it needs.
- One reminder source is enabled; customer-facing links have been tested.
- A named person handles corrections and a fallback contact channel is available.
Common questions
Should I move the complete history?
Not automatically. Decide what must be operational in the new platform and what can remain in a secure archive. Confirm access and retention requirements for your business before deleting anything; this guide does not set a retention period.
How long should both systems run?
There is no universal duration. Keep a controlled comparison period long enough to verify your workflows, but avoid two live schedules accepting changes independently. Name the source of truth at every stage.
Choose the destination before preparing the import
Use the software finder for a workflow-based shortlist, then compare Jobber and BookingKoala or review the BookingKoala budget checklist. Vendor-assisted import scope and migration labor belong in the first-year budget. This article contains no affiliate signup links; linked reviews and comparisons disclose any affiliate offers.