Timesheets — Workflow
Overview
A collaborator submits a timesheet recording the hours worked on a project or department during a calendar week. A supervisor or HR reviewer approves or rejects it. Approved hours feed into billing (Freshbooks), accounting reports, and attendance PDFs. Timesheets sourced from the Kimai integration follow a parallel path and are auto-approved or processed in bulk.
Note
This feature follows SARA's standard record lifecycle model. See: Workflows & Pipelines
Roles involved
- Collaborator — Captures working hours via Timesheets Capture. Saves drafts and submits for review. Receives rejection notifications and resubmits when needed.
- Supervisor / HR reviewer — Reviews submitted timesheets via the main Timesheets screen. Approves or rejects each timesheet with a reason.
- Kimai system — External time-tracking integration. Imports timesheets automatically and can bulk-approve them.
Status lifecycle
INPG— In progress. The collaborator has saved a draft but not yet submitted it for review. Only visible in Timesheets Capture.PEND— Pending review. The collaborator submitted the timesheet; it is waiting for a reviewer decision. Visible in the Reviewing tab of the main Timesheets screen.REJC— Rejected. The reviewer rejected the timesheet with a reason. The collaborator can view the reason in Timesheets Capture and resubmit.APPR— Approved. The timesheet is accepted. Approved hours are available across Search, Accounting, and Report tabs. Kimai-imported timesheets are markedAPPRat import.
Info
For system-wide status guidance, see: Status
Workflow
Workflow steps
- Collaborator creates a timesheet and enters daily hours (project or department, work type, total and billable hours).
- Collaborator saves as a draft (
INPG) or submits for review (PEND). - Supervisor or HR opens the Reviewing tab, inspects the week detail, and approves or rejects.
- Approval → status becomes
APPR; billable hours sync to Freshbooks if the integration is active. - Rejection → status becomes
REJC; collaborator receives an email with the reason and can resubmit.
Capture
The collaborator opens Timesheets Capture and finds the relevant project or department in the accordion. Clicking + New timesheet opens the two-stage entry modal:
- Stage 1 — Select the date (week number shown in the calendar picker), choose type (Project or Department), select the project with its work item or the department.
- Stage 2 — Enter one row per day: work type (Work on-site, Work offline, Day off (on-site), Training, or Travel), total hours, and whether hours are billable (YES toggle). Additional rows can be added for the same day. Select the plant or facility where the work took place — plant is required for all types except Work offline, which hides the plant selector. When Day off (on-site) is selected, hours are automatically set to zero. Attach supporting files and add an optional comment.
The collaborator can:
- Click Save timesheet to store the entries as a draft (
INPG) and return later to complete them. - Click Submit to finalize and send the timesheet to the review queue (
PEND).
An INPG timesheet remains editable in Timesheets Capture. A PEND timesheet is locked awaiting review.
Review
The supervisor or HR reviewer opens the Reviewing tab on the main Timesheets screen. The table lists all PEND timesheets. The reviewer opens the week detail view to inspect each day's entries — work type, project, total hours, and billable hours.
From the detail view the reviewer either:
- Approves the timesheet. Status changes to
APPR. If the Freshbooks integration is active, all hours marked as billable are synced to Freshbooks as time entries at this moment. - Rejects the timesheet. The reviewer selects a rejection reason from the catalog and can add a comment. Status changes to
REJC. An email notification is sent automatically to the collaborator.
Once approved or rejected, the timesheet no longer appears in the Reviewing tab.
Resubmission
The collaborator sees REJC timesheets in Timesheets Capture alongside the rejection reason and comment. The collaborator edits the timesheet and resubmits it. The status returns to PEND and the review cycle repeats.
Notifications
- Rejection email — Sent automatically to the collaborator's work email when a timesheet is rejected. Includes the year, week, project, rejection reason, and reviewer comment.
Note
For global notification behavior, see: Notifications & Alerts
Setup & dependencies
- Project catalog — Projects must exist and be active for the project selector in the entry modal to be populated.
- Logistics calendar — CSV imports are validated against project logistics calendar events. Days outside the calendar are rejected.
- Project minimum hours — If a project defines a minimum weekly hour requirement, the entry modal displays an informational banner before the collaborator begins entering hours.
- Freshbooks integration — Must be configured and active (
FRESHBOOKS=1) for billable hour sync to occur on approval. If not connected, approval without Freshbooks sync is still possible; if connected but the project or collaborator is not linked in Freshbooks, approval is blocked until the link is established. - Kimai integration — Must be configured and active (
KIMAI=1) for the Kimai tab and Kimai section in Capture to appear. Projects and collaborators must be linked to their Kimai counterparts via their respective records.
Exceptions & operational notes
Kimai import path — When the Kimai integration is active, timesheets are imported automatically from the Kimai time-tracking system (physical card-reader nodes). These timesheets bypass the collaborator-entry step and arrive in SARA as APPR (auto-approved) or as records ready for bulk approval. The supervisor can bulk-approve all pending Kimai timesheets from the Kimai tab with a single action.
Freshbooks validation on approval — When Freshbooks is active, approval checks that:
- The Freshbooks connection is valid.
- The project is linked to a Freshbooks project.
- The collaborator is linked to a Freshbooks staff record.
If any check fails, the approval is blocked and the reviewer receives an error message explaining the missing link.
Rejection of Freshbooks-synced timesheets — If a timesheet has already been synced to Freshbooks (billable hours billed), it cannot be rejected. The reviewer must first remove the Freshbooks entries manually before the rejection can proceed.
Per diem calculation — Per diem is calculated per day entry using a two-layer priority rule:
-
Layer 1 — Confirmed logistics plan (PL) takes priority. If the collaborator has a confirmed PL covering that project and date, the PL's
if_perdiemflag determines the result. If any confirmed PL for that collaborator + project + date has per diem enabled, the day generates per diem. Only if all confirmed PLs for that day have per diem disabled is it suppressed. The collaborator's selected hour type does not override the PM's confirmed plan. -
Layer 2 — Fallback (no confirmed PL). When no confirmed PL exists for the day, per diem is determined by the hour type and plant city:
| Hour type | Condition | Per diem |
|---|---|---|
| Work on-site | Plant city ≠ collaborator's home city | Yes |
| Work on-site | Plant city = collaborator's home city | No |
| Work offline | — (no plant recorded) | No |
| Training | Plant city ≠ collaborator's home city | Yes |
| Training | Plant city = collaborator's home city | No |
| Travel | Any | Yes |
| Day off (on-site) | Plant city ≠ collaborator's home city | Yes |
| Day off (on-site) | Plant city = collaborator's home city | No |
Note
The logistics plan if_perdiem flag is set by the PM at the time of PL creation or edit. It defaults to enabled, preserving historical behavior for all existing PLs.
Per diem source indicator in HR approval — The week detail view shown to reviewers includes a per diem source indicator on each day row: whether the charge comes from a confirmed PL or from the fallback city comparison. Day rows with no plant recorded where a plant is expected show a warning indicator; approval is not blocked.
Permissions
Permissions
Access and actions are permission-driven. See: Permissions