Klees

How to Migrate from QuickBooks Time to Klees Without Losing Data

A QuickBooks Time to Klees migration playbook — CSV export fields, cost-code mapping, payroll cutover, and the 7-day timeline that prevents data loss.

Jordan Keane Jordan Keane · ·8 min read ·Updated May 29, 2026
Office manager exporting QuickBooks Time data on a laptop with a clean migration checklist on screen

TL;DR

  • QuickBooks Time exports to CSV cleanly across employees, customers, jobs, cost codes, and time entries.
  • The Klees CSV importer handles those fields in one upload — no manual rebuilding.
  • The migration runs in 7 calendar days end-to-end, with a parallel payroll on day 6 to verify cost-code mapping.
  • The risk isn’t data loss — it’s cost-code mismatches at payroll cutover. Plan for a 2-hour reconciliation buffer.
  • Most operators recover the migration cost in the first month from reduced seat fees, eliminated buddy punching, and faster payroll close.

QuickBooks Time customers move to Klees for a handful of reasons that show up consistently in our intake calls: bilingual UI for crews that need it, PinShot selfie verification to close the buddy-punching gap, lower seat fees at 25+ users, and multi-state payroll consolidation. The decision to switch usually isn’t hard. What stalls the project is the worry that something will break — that historical time entries will get lost, that cost codes won’t map, that the first payroll on the new system will be wrong.

None of those concerns hold up if the migration is run methodically. This is the playbook I give every QuickBooks Time customer making this move. It works for crews of 5 to 250 on QuickBooks Time Premium, Elite, or the legacy TSheets product. Larger and more complex setups extend by a few days, not weeks.

For the broader pricing context that usually drives this decision, see why QuickBooks Time costs you 2x what it should.

What data lives in QuickBooks Time?

Before exporting, it helps to know what you actually have. QuickBooks Time stores five categories of data that matter for migration:

  1. Employee records — name, email, wage rate, role, status
  2. Customer / job records — name, address, customer ID, status
  3. Cost codes / service items — full list with descriptions and billable status
  4. Time entries — historical clock-in/out records, GPS, notes
  5. Approval and payroll history — approved timesheets, payroll exports

For migration purposes, you’ll export the first three in full, the fourth as a backup, and leave the fifth in place as the historical record.

Step 1 (Day 1): Export from QuickBooks Time

QuickBooks Time supports CSV export from the Reports section. The exports you need:

ExportWhere in QBTWhat it contains
EmployeesReports → EmployeeRoster, wage rates, status
Customers / JobsReports → CustomerCustomer hierarchy, sub-jobs
Service itemsSettings → Time TrackingCost code list
Time entries (last 90 days)Reports → Approved TimeHistorical entries for backup
Geofence settingsSettings → GeofencingSite coordinates and radii

Save all five CSVs to a working folder. Don’t modify them yet — the audit pass comes next.

Step 2 (Day 1): Audit the exports

The biggest migration risk is importing dirty data into the new system. QuickBooks Time customers who’ve been on the platform 3+ years almost always have:

  • Inactive employees still on the roster
  • Customer records for accounts ended years ago
  • Duplicate cost codes from naming-convention changes
  • Sub-jobs nested 4 levels deep when 2 levels is plenty

Spend 30–60 minutes cleaning the CSVs in a spreadsheet:

  1. Remove employees marked inactive longer than 6 months
  2. Remove customers with no active jobs and no time entries in 6 months
  3. Consolidate duplicate cost codes (keep the most-used naming)
  4. Flatten over-nested customer hierarchies to a 2-level structure (customer → site)

Operators who skip this step end up importing 1,200 stale cost codes from the last decade and confusing their foremen for weeks. The 30 minutes of cleanup is the highest-ROI work in the entire migration.

Step 3 (Day 2): Import into Klees

The Klees CSV importer accepts the cleaned files in one workflow:

  1. Upload employees CSV — Klees auto-detects QuickBooks Time field naming
  2. Upload customers CSV — Klees maps customer → site relationships
  3. Upload service items CSV — these become Klees cost codes
  4. Verify the import preview before committing
  5. Commit the import

Three things to configure manually after import:

  • Geofences — copy coordinates from the QBT geofence export; Klees defaults to 100m radius if not specified
  • Foreman roles — assign which employees have Crew Clock and approval permissions
  • Language defaults — set EN/ES/PT per employee based on their primary language

The 7-day construction migration playbook covers the configuration steps in more depth.

QuickBooks Time export window with employee CSV being downloaded and Klees importer open in another browser tab

Step 4 (Day 3): Foreman training

Foremen are the single biggest predictor of migration success. Pull them for a 60-minute walkthrough covering:

  • Individual clock-in flow with PinShot
  • Crew Clock batch operation
  • Job/cost-code switching mid-shift
  • Approving the daily timesheet
  • Reading the Live Map
  • Handling missed clock-outs

Run the session in the foreman’s primary language. If half your foremen are Spanish-primary, run a Spanish session — don’t translate slides. Klees ships full Spanish and Portuguese UI, so the in-app experience matches whatever you train in.

For bilingual training specifics, see the bilingual cleaning crew article — same training pattern applies to construction crews with bilingual foremen.

Step 5 (Day 4): Pilot with one crew

Pick one crew. Ideally a foreman who isn’t allergic to change. Run that crew on Klees for one full shift. QuickBooks Time stays active for everyone else.

What you’re checking:

  1. Did every worker clock in cleanly?
  2. Did PinShot capture without false rejections?
  3. Did geofences behave correctly?
  4. Did Live Map show the crew where you expected?
  5. Did the end-of-shift export match the foreman’s hand-count?
  6. Did cost codes assign correctly?

If anything fails, fix it before day 5. Most pilots pass cleanly because the import preview on day 2 catches the structural problems.

Step 6 (Day 5): Full crew rollout

Every worker moves to Klees this morning. QuickBooks Time stays active as a backup for a few more days but the operational system of record is now Klees.

Three rules:

  1. Foremen run the first clock-in. Every foreman walks their crew through the first Crew Clock or individual clock-in.
  2. Office staff stay reachable. One person in the office on phone duty for two hours.
  3. No payroll changes today. Operational adoption is the only goal.

For larger operators with multiple sites, run rollout state-by-state or region-by-region rather than all at once. The Alta Janitorial case study documents Alta’s state-by-state rollout across 5 Western states.

Step 7 (Day 6): Parallel payroll run

The first full pay period after rollout, you run payroll twice — once from QuickBooks Time, once from Klees — and compare. This is where cost-code mismatches surface.

The reconciliation checklist:

  1. Total payroll hours within ±0.5% across systems
  2. Each cost code totals within $50 across systems
  3. Overtime calculation matches state rules
  4. Prevailing-wage projects roll up correctly
  5. Multi-state allocation matches if applicable

If the totals reconcile, the migration succeeded. If they don’t, the gap is almost always a cost-code mapping issue, fixable in 30 minutes in the Klees admin. Klees integrates with QuickBooks Online and Desktop via the standard connector, so the payroll export feeds the same QuickBooks instance you’ve been using.

For multi-state operators, the IRS withholding reference is the standard guide for verifying state tax handling during the parallel run.

Step 8 (Day 7): Shut down QuickBooks Time

The final step is the one operators most often forget: actually shut down QuickBooks Time. If you leave it running “just in case,” foremen drift back to it and dual entry creeps in.

Cutover steps:

  1. Final export from QuickBooks Time for archive (CSV + PDF backup)
  2. Cancel QuickBooks Time seats (stop the bill)
  3. Notify foremen that QBT is read-only as of today
  4. Update payroll documentation and SOPs
  5. Schedule a 30-day check-in to review variance

The bill from QuickBooks Time stops the next billing cycle. For most operators, the seat-fee savings alone pay for the first month of Klees, then continue indefinitely.

What you keep, what you archive

A common question: do I need to import 5 years of historical time entries into Klees?

Almost always no. The cleaner approach:

  • Keep in Klees — current employees, active customers, active cost codes, current geofences
  • Archive from QuickBooks Time — historical time entries (CSV + PDF), old payroll runs, terminated employees, closed customer records

Klees defaults to a 7-year retention on new entries, which covers the standard FLSA audit window plus the additional retention some prevailing-wage projects require. Historical QuickBooks Time data lives in your CSV archive and your QuickBooks Online instance for reference.

FAQ

How long does the full migration take?

Seven calendar days end-to-end for a standard 10–100 person crew. Larger and more complex operations (multi-state, multi-language, complex prevailing-wage structures) extend to 10–14 days.

Can I run QuickBooks Time and Klees in parallel longer than a week?

Technically yes, but most operators find that running both for more than 7–10 days causes dual-entry drift and data integrity problems. A clean cutover is better than an extended parallel run.

What’s the biggest cost-code mapping issue to watch for?

QuickBooks Time customers who use “service items” with overloaded names (one code used for two different cost categories) hit this most. The audit step on day 1 surfaces these; the parallel payroll on day 6 confirms they’re resolved.

Does Klees integrate with QuickBooks Online the same way QBT does?

Klees exports to QuickBooks Online and Desktop via the standard connector. The integration is one-click after setup and runs on pay-period cadence. From the QuickBooks side, the experience is similar to the QBT integration.

What if I’m currently on legacy TSheets (pre-QuickBooks branding)?

Same export fields, same import workflow. Intuit renamed TSheets to QuickBooks Time in 2021 but the underlying CSV structure is consistent. Migration timeline and process are identical.


Ready to scope your 7-day plan? Book a migration consult — Klees field-ops will review your QuickBooks Time configuration and produce a step-by-step timeline for your specific crew structure.

Share X LinkedIn Email
Jordan Keane
Jordan Keane · Head of Field Operations

Leads field-ops migrations at Klees. 12 years rolling out time tracking and dispatch systems for construction and janitorial crews across the Americas.

Connect on LinkedIn →

Related reads