Before you start
Settle these in the week before cutover day: every one of them is slow to fix on the day itself.- A cutover date on a period boundary: The first day of a fiscal period is the clean choice; it keeps a migrated period from being split across two systems.
- A named cutover owner: One person decides whether to proceed at each checkpoint. Cutovers stall at the checkpoints where nobody has the authority to say go.
- Source exports already pulled and stored: trial balance per period, AR aging, AP aging, GL detail, and any attachments the migration will not carry. See migration data scope for what the migration leaves behind.
- Mapping decisions drafted: Know which source accounts merge, which are retired, and what your DualEntry numbering scheme is before the mapping screen is in front of you.
- Migration permission: Starting, syncing, and disconnecting a migration is gated at Configuration → Company → Migrations.
- A decision on the parallel period, covered below. Decide it in advance rather than on the day.
Who does what
The work splits between your team and ours. DualEntry’s customer success accountants run the migration itself: connecting the source, driving the sync, and clearing exceptions. Your team owns the decisions only you can make, and the table below is the list to assign before cutover day, because an unassigned row is the one that gets missed.
Name a backup for the cutover owner and the controller. A cutover that depends on one person being reachable all day is a cutover with a single point of failure, and the checkpoints are spread across enough hours that somebody will be at lunch for one of them.
The day before: freeze and export
Stop new work in the old system at a stated hour, not at “end of day”. Announce the hour in writing to everyone who posts. Once entry stops, complete the in-flight work rather than leaving it half-posted. Post bills that are already approved, apply payments that have already cleared, and finish any bank reconciliation in progress. A half-applied payment migrates as two records that do not agree. Then pull your final source exports as of the cutover date. These are the exports you will tie out against, so pull them after entry stops and do not re-pull them later. Comparing against a source that is still moving proves nothing. Last, tell the team the old system is read-only from that hour. Where the source system supports it, lock the period or revoke posting permissions rather than relying on the announcement.Cutover day, hour by hour
The sequence below is the order the work actually happens. Elapsed time depends on transaction volume, so treat the hours as sequence rather than as a schedule. A DualEntry accountant is at the keyboard for these steps; the points where we need something from you are called out where they fall. Hour 0: start the migration. We open your company at Configuration → Company → Migrations and start a migration against QuickBooks or Xero. Authorizing the connection is yours, since it runs against your source system credentials. The initial pull then runs on its own and shows a connecting state while it works. Hours 1 to 3: map accounts. We work the Accounts Mapping step until the Unmapped and Error tabs are empty. DualEntry suggests a target account for each source account, ranked by confidence, and never applies a suggestion automatically. Your controller confirms the mappings that carry a judgment call: which accounts merge, which are retired, and where a suggestion is close but wrong. Deactivate the accounts you are retiring rather than skipping them, so their history stays visible. The fallback accounts named[QuickBooks] Default Expense, [QuickBooks] Default Income, [Xero] Default Income, and [Xero] Unpaid Expense Claims must each be mapped or deactivated; they cannot be skipped.
Hours 2 to 4: map classifications. Classes, departments, and projects each get their own step, and depending on the source you may also see vendor, customer, item, or subsidiary mapping. If the source company has items, configure default income, expense, and COGS accounts now: a full Data Sync is blocked until they exist, and the block surfaces as a configuration error rather than a partial sync.
Hours 4 to 10: run the Data Sync. Records import in dependency order, accounts and classifications first, then non-transactional records, then transactions. Watch the progress bar and the Error tab rather than the clock. Transient failures retry automatically on a backoff of roughly 15, 30, 60, 120, and 240 seconds, and a database-level hiccup retries on a longer cadence, so an error that appears mid-run may clear itself.
Hours 10 onward: work the exceptions. Read the message column on the Error tab, fix the cause, and retry in bulk. One bad mapping usually explains most of a batch.
Only one sync runs against a company’s connection at a time, and the migration heartbeats while it works. A sync that goes quiet for about 6 minutes is treated as abandoned, reset, and restarted from where it stopped, so a stalled run usually recovers without anyone touching it.
The morning after: tie out and open the books
Do not open the books on cutover day. Tie out first, with fresh eyes, against exports that have not moved. Run the full tie-out procedure in how to validate and tie out a migration: trial balance by period, retained earnings roll-forward, and AR and AP subledger agreement to their control accounts. Resolve every difference above your materiality threshold and document the rest. Then connect what the migration does not carry. Point bank feeds, payroll, spend, and billing integrations at DualEntry, and disconnect each one from the old system first so the same transaction cannot arrive twice. Confirm each connector’s cutoff date does not overlap the migrated range. Finally, give the team access and tell them DualEntry is live. Post one real transaction of each type your team handles daily and confirm it behaves: a bill, an invoice, a payment, a journal entry.Go-live checklist
Do not announce go-live until every line is true.- Old system is read-only, with the hour it stopped recorded.
- Data Sync shows no records in Error or Ready to sync, and every Skipped record was skipped deliberately.
- Trial balance ties by period, and the retained earnings roll-forward ties.
- AR and AP aging agree to their control accounts and to the source aging by counterparty.
- Attachments the migration does not carry are exported and stored, or the old system stays accessible.
- Bank, payroll, spend, and billing connectors point at DualEntry, with cutoffs that do not overlap the migration.
- Users, roles, and approval workflows are configured.
- The tie-out workpapers are saved where an auditor can find them.

