QuickBooks Online integration pushes a labor-cost summary from Timely into QuickBooks per pay period, so your bookkeeper sees scheduled labor cost as a line item without re-entering anything from a spreadsheet.
Connecting
Settings → Integrations → QuickBooks → Connect.
OAuth flow asks for:
- Read company info
- Read + write journal entries
- Read employees / vendors
Once connected, you'll see the connection status with the QBO company name.
What gets pushed
For a given pay period, Timely produces a journal entry with:
- Total labor cost — sum across all employees in the period
- Per-location split — one line per location if you have multiple
- Optional per-tag split — group by employee tags (Bartender, Server, etc.) for finer GL coding
The entry hits whatever expense + payable accounts you've mapped in the QuickBooks integration settings (defaults to a sensible "Wages & Salaries" expense + a "Wages payable" liability).
Pushing
Settings → Integrations → QuickBooks → Push to QuickBooks.
Pick the pay period (defaults to the most recently closed week). Preview screen shows:
- The pay period dates
- Total labor cost
- Per-location and per-tag breakdowns
- The proposed journal entry lines
Confirm and the entry posts to QuickBooks. The push is idempotent — Timely tracks which periods have been pushed and prevents accidental double-posting.
Re-pushing a period
Sometimes the schedule changes after you push (e.g., a no-show led to coverage you didn't expect, and you went back and updated the schedule). Re-push the same period:
- Timely diffs against the last-push state
- Lines that didn't change are skipped
- Adjusted lines are PUT'd to QuickBooks with the original journal entry ID, so QBO updates in place — no duplicate entries
Account mapping
Settings → Integrations → QuickBooks → Account mapping. Configure:
- Wages expense account — where labor cost hits the P&L
- Wages payable account — the liability side of the entry
- Per-location account override — useful when each location has its own GL code
- Per-tag account override — for orgs that track Bartender vs. Server labor on separate lines
Defaults work for most single-location orgs. Multi-location orgs typically want at least the per-location override set up before the first push.
What this isn't
- Not a payroll integration — for actually paying employees, use Gusto (which pushes hours to Gusto, then Gusto runs payroll). QuickBooks here is purely for accounting visibility, not payroll execution.
- Not bi-directional — Timely pushes to QBO; nothing flows the other way.
- Not real-time — pushes are manual (per pay period). There's no auto-sync.
Disconnecting
Settings → Integrations → QuickBooks → Disconnect. Stops future pushes; existing journal entries in QBO remain (they're QuickBooks's records now, not ours to remove). Reconnect any time to resume pushing.