Running a Historical Sync

Updated 1 Aug 2026

The ongoing sync only handles records that change after you switch it on. A historical sync is the one-off that brings across what already existed.

Historical sync pulls existing Xero records into Salesforce.

When to run it

Once, during setup — before the ongoing sync. TwoCanConnect won't let you start the ongoing sync until the historical sync has completed.

You might run it again after connecting an additional Xero organisation, since that organisation's history hasn't been seen before.

What it brings across

The objects you've enabled in Object Settings — contacts, invoices, and anything else you've switched on. It doesn't bring across objects you've left off, so enabling something later means running it again for that data.

Why it comes first

The historical sync brings your existing Xero contacts into Salesforce so the ongoing sync doesn't create duplicates for customers that already exist in Xero. That's why the order is enforced rather than merely recommended.

Watching it run

The panel shows live progress: a step list with per-object counts ("400 of 1,843 invoices"), an ETA, and a Finishing phase that names the tail work — saving invoices, online invoice links, then totals and rollups.

Cancel is available throughout, but cancelling doesn't undo records already saved.

If Xero's daily API limit is reached the run pauses and tells you when it resumes. The last run's date and outcome sit under the Start button.

Running it again for a date range

Re-running the historical sync is optional. Once an organisation has completed one full run, the Start button offers a range: Last 30 days (the default), 60, 90, or All history. Use it whenever you want to re-pull Xero records from a particular period — after fixing a mapping, after a bulk edit in Xero, or if a batch of records looks wrong in Salesforce.

Only Xero records modified in the window are downloaded; anything the ongoing sync needs later — an older contact appearing on a new invoice — is fetched on demand. A preview line tells you what you're about to pull before you start: "This range covers 44 contacts, 219 invoices. About 1 MB from Xero."

All history asks for a confirmation tick, because it re-downloads every record and counts against Xero's daily API limit.

The first sync is always everything

The range control doesn't appear until an organisation has finished one all-history run. A partial first sync would leave older Xero contacts unknown to Salesforce, and your team would create duplicates for them. Existing customers get one more full run after upgrading, then the options appear.

It can take a while

A historical sync on an org with years of invoices processes a lot of records. Start it and let it run; Sync History shows progress.