Track technician hours and approve timesheets

WebZaras appUpdated September 15, 2026

Hours reach Zaras automatically when a technician completes a visit, or by hand as an entry on a job or estimate. In a workspace with a team, every entry starts as a draft an approver then approves or denies; if you are the only member, your entries are approved as they are recorded (see below). Zaras is not payroll: Approved hours are what’s been accepted — your payslip is the record of pay.

Where the hours come from

  • Clock out & complete on a visit creates a draft entry for each technician assigned to it, with the visit's times.
  • On the web, a job or estimate has a timesheet section with Add entry (Employee, Date, Start time, End time, Break, Notes). In the Zaras app it is Timesheets on the job, with Add time entry.

Your own hours

Timesheets in the sidebar (web) or under More (app) reads My Hours if your role cannot approve other people's time: your week, what was approved, and each entry marked Pending, Approved or Denied, with who denied it. In a team, approvers do not get this tab; their own entries sit in the queue.

If you are the only member

When nobody else is in the workspace and no invitation is pending, Timesheets always reads My Hours (the section around it reads Hours), whatever your role. Your hours count right away: each entry is approved as it is recorded and goes straight into job costs, so there is no Approval Queue, no Team Hours, and no Pending or Approved badges — only a Denied entry is still marked. Sending your first invitation turns the queue and Team Hours back on, and new entries start as drafts again. One edge: a visit completed offline that syncs after you sent an invitation arrives as Pending. More in Working on your own.

Team Hours

In a workspace with a team, approvers get Approval Queue and Team Hours. Team Hours is a week grid, one row per technician, each day marked Awaiting review, Missing time (assigned visits, nothing recorded), Flagged, Overtime or No time; Needs attention collects the flagged and missing days, and a Status key explains the badges. Open a day for that technician's entries.

The approval queue

The queue lists entries under Needs review, Approved and Denied, grouped by technician or date. On each row:

  • Approve accepts it.
  • Deny asks for a Denial reason: Duplicate entry, Incorrect hours, Needs correction, Wrong job/estimate or Other.
  • Reopen puts an approved or denied entry back to draft. Approved never goes straight to denied, nor denied straight to approved: reopen first (the web row does the pair in one press).

Open a row for the Technician, When, Technician note and any Exceptions the server flagged — Overlaps another labor entry, No pay rate on file for this entry, The linked job was deleted, The visit was reverted after this entry, a duration over the cap. With more than one, Explain asks the AI to read them together. In the Zaras app the panel also offers Move to another job and Override rate.

Select several rows for Approve selected, Deny selected (one reason for all), Reopen selected or Assign technician (Reassign technician in the app). A bulk approve warns when any still has an unresolved exception.

Statuses

Draft (shown as Needs review or Pending) → Approved or Denied; both return to draft with Reopen, which clears the denial. Denied time never counts in labor cost.

Who can do this

Anyone can log and see their own hours. Team Hours and the queue need a workspace with a team and the timesheet approval permission (owners and admins by default), nothing else: an approver sees every entry's hours and exceptions. The money — Rate, Cost and the labor-cost totals — appears only for members who also hold View cost & profit; for everyone else those figures are simply absent, never shown as zero. Approving does not require seeing cost, so do not ask for View cost & profit in order to approve.