KW Knowledge base

Timesheets

Track time across all the work you do in a day — tickets, projects, and ad-hoc activity that doesn't fit either bucket.

Mitch Wigham
Updated 14 July 2026 · 40 views

28 · Timesheets

Track time across all the work you do in a day — tickets, projects, and ad-hoc activity that doesn't fit either bucket.

Where to find it

Sidebar → Timesheets or /timesheets. Requires the timesheets feature.

Concepts

Time entries come in three kinds — every entry is exactly one:

Kind When to use
🎫 Ticket Work attributed to a helpdesk ticket. Links to the ticket so the time also rolls into that ticket's billing log.
📋 Project Work on a Project. Rolls into the project's total minutes for invoicing/reporting.
✏️ Manual The "general" slot. Anything you did outside the system — phone calls, walk-ups, paperwork, training. Description required.

Existing helpdesk billing entries (the Log time button on a ticket) are TICKET-kind, so they appear in the Timesheets view automatically — you don't have to log them twice.

Layout

+------------------------------------------------------+
| ‹ Prev week  This week  Next week ›  27 Apr – 3 May  |
|                                          [+ Log time]|
|------------------------------------------------------|
| Total this week  Billable  Tickets Projects  Manual  |
|     7h 30m       4h 15m    3h     2h 30m     2h      |
|------------------------------------------------------|
| Monday 27 Apr                       2h 30m   [+ Add] |
|   🎫 Ticket  #1234 Server move…    1h    [Edit] [✕]  |
|   📋 Project SNAG-014 Acme         1h 30m [Edit] [✕] |
|------------------------------------------------------|
| Tuesday 28 Apr                       45m    [+ Add]  |
|   ✏️ Manual  Customer onsite call   45m  [Edit] [✕]  |
|------------------------------------------------------|
| Wednesday 29 Apr                       0m   [+ Add]  |
+------------------------------------------------------+

📷 Screenshot placeholder: screenshots/timesheets.png

Logging time

Click + Log time (or the per-day + Add button to pre-fill the date). The modal asks:

  1. Type — Ticket / Project / Manual.
  2. Ticket or Project picker (only the relevant one shows).
  3. Description — required for Manual; optional otherwise.
  4. Date + minutes (5-minute increments by default).
  5. Billable flag.

Click Log entry. The day total updates immediately and the entry shows in its day bucket.

⚠️ Caution. Time entries on Tickets are the same row as the ticket-side time log. Editing here updates the ticket's total too.

Editing & deleting

Each row has Edit / ✕. Edits keep the entry's ID stable, so SLA / billing references don't break.

You can change a Ticket entry to a Project entry by editing — the backend swaps the FKs in lockstep. Useful when you logged work to the wrong place.

Week navigation

  • Prev / Next week — moves by 7 days.
  • This week — jumps back to the current ISO week (Mon–Sun).

The summary cards re-aggregate as you navigate.

Export

There is no CSV export from the Timesheets page itself — use Admin → Reports for multi-week / multi-user exports.

Permissions

Action Required
View / log time on the Timesheets page any user with timesheets
View someone else's timesheet (?userId=) SUPER_ADMIN, ADMIN or MANAGER

⚠️ Caution. The staff time API (POST/PATCH/DELETE /api/v1/time) scopes writes by tenant (orgId) only — it does not check that the entry belongs to the calling user. Any user in the tenant can edit or delete any time entry in that tenant. Only the timesheet view of another person is gated (to MANAGER/admin); the write endpoints are not per-user restricted.

Vendors (Phase B)

The platform also supports time tracking by external vendors via the vendor portal at /vendor-login. Vendors only see entries they've logged themselves and the projects they're linked to via the Project vendors join. See Vendor portal once that phase ships.

See also

  • Helpdesk — ticket-side time logging
  • Projects — project-side total minutes
  • Billing — invoice from billable time

Still need help?

Log a support ticket and the team will pick it up from this page.