Skip to main content

Review and approve timesheets

Timesheets are where hours worked enter the system, and hours worked are what pay is computed from. A pay period generated over an unreviewed queue is a pay period you will be correcting afterwards, so this page is best worked to empty before payroll runs.

The page at /timesheets needs hr.timesheets.view to open. Approving, editing, deleting and importing all need hr.timesheets.manage. With view alone the page is a read-only record of attendance.

The shared toolbar behaviour is described in the HR Administrator overview.

The queue

Five tabs with counts, matching the states a timesheet moves through:

TabMeaning
AllEvery entry.
Not SubmittedRecorded but not yet sent for approval by the employee.
SubmittedWaiting for your decision. This is the working queue.
ApprovedDecided in the employee's favour.
DisapprovedRejected.

Eight columns: Employee # (pinned left), Employee Name, Date, Time In, Time Out, Hours Worked, Status and Approved By. Times display as HH:mm, and an entry with no time out shows a dash. Time In and Time Out carry no column filter — filter on Date or Hours Worked instead.

Entries appear here as employees clock in; there is no button on this page to create one from scratch. What you can do is correct an entry, decide it, remove it, or bring a batch in from a CSV.

Decide one timesheet

Only entries in the Submitted state can be decided, so the actions below appear on those rows and nowhere else.

  1. Open the Submitted tab.
  2. Choose Approve or Disapprove from the row's kebab menu.

The decision applies immediately — there is no confirmation step for a single row — and the entry moves to the Approved or Disapproved tab. Every tab's counts refresh, because the row has left one tab and joined another.

Decide a batch

  1. Open the Submitted tab, or filter the All tab to the employee or date range you are working through.
  2. Select the rows using the checkboxes. The bulk bar appears above the table showing how many are selected.
  3. Choose Approve or Disapprove.
  4. A confirmation dialog lists what is about to happen. Confirm it.

The dialog is careful about mixed selections. Only entries in the Submitted state are eligible; anything else in your selection is counted and named by status so you can see what is being skipped, and if nothing in the selection is eligible the dialog tells you it cannot proceed rather than doing nothing quietly.

Each entry is updated separately. If some fail, the dialog reports how many succeeded and lists each failure with the employee, the date and the reason — the successful ones stay decided.

Correct a time entry

Choose Edit from the row's kebab menu, or double-click the row. The drawer offers four fields:

FieldNotes
Work DateThe date the hours are logged against.
Time InWhen the employee started.
Time OutWhen they finished.
RemarksFree text — tardiness, early departure, remote work, and so on.

Hours worked is derived rather than typed: correct the times and the total follows.

Delete in the row menu removes an entry entirely. Deleting is for entries that should never have existed; a wrong time is a correction, not a deletion.

Import attendance from a CSV

Choose Import CSV from the Table menu.

  1. Select Download Template CSV. The columns are employeeId, workDate, timeIn, timeOut and remarks.
  2. Fill it in. employeeId, workDate and timeIn are required. Dates use YYYY-MM-DD and times use HH:mm:ss.
  3. Select Choose CSV File. A preview shows the row count and the first five rows.
  4. Start the import and watch the progress bar.
  5. Read the result: successes and failures are counted separately, and each failed row is listed with its reason.

Every imported entry arrives as Not Submitted, whatever else is in the file. Imported attendance therefore still has to travel through submission and approval before payroll treats it as settled.

Activity history

Activity History in the row menu shows the recorded activity for that entry, which is the fastest way to answer who changed a time and when.

Export

Export CSV and Export PDF in the Table menu both cover the rows matching the active tab and your column filters, not only the page on screen — useful for sending a period's attendance to a manager for sign-off before you decide it.