Skip to Content
TimesheetsSubmitting & Approving

Submitting & Approving Timesheets

Timesheets follow a submit-and-approve workflow: team members fill in their entries during the week and submit when complete, then owners review and approve (or reject for corrections). This page walks through both sides of the process and explains what happens automatically once a timesheet is approved.

The Lifecycle

StatusSet ByWhat Can Be Done
DraftMember (default for a new timesheet)Entries can be added, edited, or removed freely
SubmittedMember clicks SubmitLocked from editing; waiting for owner review
ApprovedOwner clicks ApproveFinalized — entries sync to QuickBooks if enabled, count in reports, used for payroll
RejectedOwner clicks Reject with a reasonReturns to Draft so member can fix and resubmit

A timesheet can cycle between Draft → Submitted → Rejected → Draft → Submitted as many times as needed before being approved.

For Team Members: Submitting a Timesheet

  1. Go to Timesheets and open the timesheet you want to submit.
  2. Review every entry for accuracy — hours, entry type, linked job, notes.
  3. Click Submit.
  4. The status flips to Submitted and you can no longer edit the entries.

What happens after you submit

  • All owners in your organization receive an email with the subject ”{Your name} submitted a timesheet for {date}” and a direct link to review it.
  • The owner sees the timesheet in their pending approvals queue.

If your timesheet is rejected

You’ll receive an email with the subject “Your timesheet for {date} needs changes.” The email includes the owner’s rejection reason highlighted in an amber box, plus a direct link to edit. The timesheet reverts to Draft so you can fix what the owner flagged and resubmit.

For Owners: The Pending Approvals Queue

When team members submit timesheets, you see them in two places:

The sidebar badge

A number badge appears next to Timesheets in the sidebar whenever there are submitted timesheets waiting. The count is org-wide — if you have multiple owners, every owner sees the same count. Click through to see the queue.

The pending page

At Timesheets → Pending (URL: /timesheets/pending), you’ll find every submitted timesheet that hasn’t been approved or rejected yet. The page supports two grouping modes:

  • Group by Date (default, reverse chronological) — useful for end-of-week approvals across the whole team
  • Group by Member — useful for a focused review of one person’s work

Each row shows:

  • The team member’s name and the timesheet date
  • Total duration as a badge
  • An OT warning badge (amber triangle) if the timesheet contains overtime hours
  • How long ago the timesheet was submitted
  • A View button to open the full timesheet details
  • A direct Approve button to approve in place

Bulk approving

If you select multiple timesheets using the checkboxes, the Bulk Approve button appears at the top right with a count of selected items. Click it and confirm the dialog, and all selected timesheets are approved in one operation.

Bulk approve handles items in batches behind the scenes to respect QuickBooks rate limits. The response tells you how many were approved successfully and lists any that failed (with reasons), so a single bad timesheet won’t stop the rest.

Common reasons a bulk approve item might fail:

  • The timesheet was already approved or rejected by another owner between when you loaded the page and clicked the button.
  • The timesheet’s underlying job was deleted.

If any items fail, the queue refreshes so you can see what’s still pending.

Approving a single timesheet

Click Approve on a row or on the timesheet detail page. The status flips to Approved and several things happen automatically (see below).

Rejecting

Open the timesheet detail page (click View) and click Reject. You’ll be prompted for a reason — the reason is required. The reason appears in the rejection email the team member receives, so make it specific:

  • ✅ “Friday lunch break wasn’t deducted — please adjust”
  • ❌ “Wrong”

Once submitted, the timesheet reverts to Draft in the member’s queue.

There is no bulk reject — rejections must be done one at a time so each rejection can have its own reason.

What Happens After Approval

A successful approval triggers several things, mostly in the background:

ActionTimingNotes
Status updatedImmediateThe timesheet is now Approved with the approving owner and timestamp recorded.
Weekly overtime recalculatedBackgroundThe entire week’s overtime is recomputed based on the approved hours. This ensures multi-job weeks are calculated correctly.
Email to memberBackground”Your timesheet for {date} has been approved” with a link to view.
QuickBooks syncBackgroundIf QuickBooks Sync is enabled and the team member is mapped to a QB employee, each entry pushes to QB as a Time Activity.

The approval returns immediately — you don’t have to wait for QuickBooks sync to finish. The QB sync status for each entry shows as Synced, Pending, Error, or Skipped depending on what happened.

Bulk approvals stagger QB sync requests (~5 timesheets at a time with brief pauses between batches) to stay within QuickBooks’ API rate limits.

What Approved Timesheets Cannot Do

Once a timesheet is approved, neither the owner nor the member can edit it directly. This protects the audit trail and prevents accidental changes to data that’s already synced to QuickBooks.

If you need to fix an approved timesheet:

  1. As an owner, reject the timesheet — this returns it to Draft.
  2. The member edits the entries.
  3. The member resubmits.
  4. You approve again.

This is intentionally a multi-step process to make corrections visible in the audit log.

What Approved Timesheets Don’t Trigger (Yet)

A few things you might expect but Service Invoice Pro doesn’t currently do:

  • No automatic invoice creation. Approving a timesheet doesn’t create or update an invoice. If you bill time-and-materials, you’ll need to create the invoice separately and pull the time over.
  • No payroll lock. There’s no concept of “locking” a pay period to prevent further changes after payroll has been run. Approved entries are protected, but new entries can still be added to past weeks.

Notification Summary

EventWho Gets EmailedSubject
Member submits timesheetAll owners in the org{Member name} submitted a timesheet for {date}
Owner approvesThe member”Your timesheet for {date} has been approved”
Owner rejectsThe member”Your timesheet for {date} needs changes”

Currently emails are the only notification channel for timesheet workflow — push notifications and SMS are not sent for these events. If an email send fails for any reason, the underlying approval/rejection still succeeds.

Common Issues

The pending badge says 3 but I only see 2 timesheets. Reload the page. The badge polls separately from the page list, so they can briefly disagree if a teammate just submitted or another owner just approved.

My bulk approve failed for some entries. Look at the failure list returned by the dialog — most often it’s because another owner approved or rejected those entries while you had the page open. Refresh and try the remaining ones.

A QuickBooks sync error appeared after I approved. The approval itself succeeded; only the QB push failed. Common causes: the team member isn’t mapped to a QB employee, QuickBooks Payroll isn’t active on the QB account, or QB had a temporary outage. See QuickBooks Sync for the full list.

I can’t edit an approved timesheet. That’s by design. Reject it to return it to Draft, edit, then approve again.

A rejected timesheet went back to the member but they say they didn’t get the email. Check the rejection reason was filled in — empty rejections fail before the email step. Also verify the member’s email isn’t in a spam folder; SIP doesn’t retry failed sends.

Tips

  • Approve at the end of each pay period, not piecemeal during the week. You’ll catch errors more reliably looking at a complete week than entry-by-entry.
  • Use rejection reasons that tell the member exactly what to fix. A vague reason (“wrong hours”) doesn’t help; “Tuesday should be 6 hours, not 8” does.
  • Bulk approve a team’s entire week at once. The pending page sorted by date makes this fast — select all entries for the week and approve.
  • Check the OT warning badge before approving. Overtime hours are flagged in the queue. If someone’s at 50 hours for the week, decide whether you intend to pay overtime before approving.
Last updated on