Running the Sync as a Dedicated User

Updated 20 Sept 2026

By default the sync runs as whoever pressed Start. That's fine until that person leaves, changes role, or has their user deactivated — at which point the sync stops.

Sync Execution User points it at a dedicated Salesforce user instead.

TCC Configuration → your Xero organisation → Manage Syncing → Sync Execution User.

Enterprise Edition and above

The box is hidden on Professional and Group Edition. The package still installs and upgrades there — you just can't reassign who the sync runs as.

Setting it

  1. Choose the user
  2. Save

Salesforce then deploys a small sync trigger into your org, with a test, which takes a couple of minutes.

If you press Start before that finishes, the page tells you so and asks you to wait two minutes, re-open the box, Save, then Start. That's deliberate: the sync is never started as the wrong user.

It covers both the ongoing and the historical sync.

Which user

Typically a dedicated user on a Salesforce Integration licence. The packaged TwoCanConnect - Integration User permission set is built for exactly this. Be clear about what it grants: Modify All Data, View All Data, Modify Metadata and view and modify all records on nearly every object in your org, so the sync can read and write anything it needs to regardless of sharing. In practice it makes the sync user a system administrator without a login. It has no Visualforce pages, tabs or apps, which the Integration licence forbids anyway. It's one of the four sets described in Managing users and permissions.

The Integration licence needs a permission set licence too

An API-only user needs the Salesforce API Integration permission set licence to unlock standard objects. Without it the sync user can't see the records it's meant to sync.

TCC Sync Bypass is on the Integration User only

The TCC Sync Bypass custom permission is granted by the Integration User permission set alone — not by Admin or Standard. It's there for flows and triggers that check $Permission.tccxero__TCC_Sync_Bypass when the sync runs as a dedicated integration user.

Granting it to human sets would have let any TwoCanConnect user bypass your validation rules from the UI. To exempt the sync from your own automation, scope the exemption by field instead — see When your own automation blocks the sync.

Undoing it

Reset to Current User removes the deployed pieces and moves the sync back to the current user.

Do this before someone leaves, not after

Reassigning while the original user is still active is a two-minute job. Doing it after they're deactivated means a stopped sync and a queue of unsynced records to work through.