TimeLeafTimeLeaf
Back to site

Integrations

QuickBooks Online

Sync approved timesheets to QuickBooks Online as TimeActivity entries via OAuth.

Overview

The QuickBooks Online integration syncs approved timesheets from TimeLeaf to QuickBooks as TimeActivity entries. Employee hours flow directly into your payroll and invoicing workflows. This feature is available on the Professional plan and above.

Connecting via OAuth

  1. Go to Settings > Integrations > QuickBooks Online.
  2. Click Connect to QuickBooks.
  3. You are redirected to Intuit's OAuth consent screen. Sign in with your QuickBooks admin account.
  4. Authorize TimeLeaf to access your QuickBooks company.
  5. You are redirected back to TimeLeaf. The connection status shows as Connected.

TimeLeaf requests the minimum required scopes: read/write access to time activities and read access to employees and company info. The OAuth tokens are stored securely and refreshed automatically.

Sandbox vs production

During initial setup, you can connect to a QuickBooks sandbox company to test the integration without affecting live data.

  1. In QuickBooks, create a sandbox company from the developer portal.
  2. In TimeLeaf, toggle Use Sandbox before clicking Connect.
  3. Complete the OAuth flow with your sandbox credentials.
  4. Test the sync (see below), then switch to production when ready.

To switch from sandbox to production, disconnect the sandbox and reconnect with your production QuickBooks company.

Employee ID mapping

TimeLeaf needs to know which QuickBooks employee record corresponds to each TimeLeaf employee.

Automatic mapping

When you first connect, TimeLeaf attempts to match employees by email address. Matched employees are linked automatically.

Manual mapping

For employees that could not be auto-matched:

  1. Go to Settings > Integrations > QuickBooks > Employee Mapping.
  2. For each unmapped TimeLeaf employee, select the corresponding QuickBooks employee from the dropdown.
  3. Click Save Mappings.

Unmapped employees are skipped during sync. A warning appears on the sync log when entries are skipped due to missing mappings.

How timesheets sync

When a timesheet is approved in TimeLeaf, the integration creates TimeActivity entries in QuickBooks:

  • One TimeActivity entry is created per day per employee.
  • Each entry includes the date, hours worked, and the employee reference.
  • If the employee has a default service item configured in QuickBooks, it is applied automatically.

Sync triggers

  • Automatic. the sync runs immediately when a timesheet is approved.
  • Manual. go to Reports > Payroll Export, select the pay period, and click Sync to QuickBooks.
  • Bulk sync. if you approve multiple timesheets at once, all entries sync in a single batch.

Sync status

Each synced timesheet shows a QuickBooks icon with a status:

StatusMeaning
SyncedThe TimeActivity was created successfully in QuickBooks
PendingThe sync is queued and will run shortly
FailedThe sync encountered an error. click for details

Supported data fields

The following fields are included in each TimeActivity entry:

TimeLeaf fieldQuickBooks field
EmployeeEmployeeRef
DateTxnDate
Regular hoursHours, Minutes
Overtime hoursStored in description/memo
Break timeDeducted from total hours
NotesDescription

Overtime hours are included in the TimeActivity description field since QuickBooks TimeActivity does not have a native overtime field. Configure your payroll to read the description for overtime processing.

Disconnecting

To disconnect, go to Settings > Integrations > QuickBooks and click Disconnect. Previously synced TimeActivity entries remain in QuickBooks. No data is deleted from either system.