hr/employee-checkins; attendance requests behind hr/attendance-requests. The live check-in feed is shown on the Attendance page. See Current state for the UI gaps.
Check-ins and attendance requests are per business and tied to the employee’s employment contract. A multi-business employee clocks in against whichever business they have selected.
📷 Screenshot: the clock-in / clock-out control with optional location capture — to be added.
Employee check-in (the clock)
A check-in is a single punch. Each one is either a Clock in or a Clock out, stamped with the time and optionally:- Location — latitude, longitude, accuracy, and a human-readable place name.
- Device — which device made the punch.
- Source — Mobile, Web, or Manual.
- Notes — free text.
Clocking in and out
- Clock in records a Clock in. You can’t clock in twice — if you’re already clocked in, Hitaji asks you to clock out first.
- Clock out records a Clock out. You can’t clock out if you were never clocked in.
Manual and admin punches
An administrator can record a punch on behalf of an employee — choosing the user, the clock type, and even a past or future time — which is how missed punches and backfills are handled. Admin punches can be flagged to be ignored by auto-attendance when they’re corrections that shouldn’t re-derive a day. Admins can also delete individual or batches of check-ins.How check-ins become attendance
Punches don’t become attendance on their own — they’re rolled up by the shift engine:- If the employee’s shift type has auto-attendance turned on, an hourly job groups the day’s punches against the shift, works out how long was worked, and writes a Present or Half Day attendance record (using the shift’s hour thresholds). It stamps each processed punch with the shift it was attributed to.
- A daily job then backfills Absent for any working day that has punches expected but none recorded — unless a holiday or approved leave covers it.
Attendance requests (corrections)
An attendance request asks for attendance to be recorded or corrected over a date range. It’s how you fix a day the clock missed, record an off-site day, or mark work-from-home.What’s on a request
The request lifecycle
What approval does
When a request is approved, Hitaji walks every day in the range and writes (or updates and locks) an attendance record for it — applying the requested status, and the half-day status to the nominated day. If a day already had an auto-generated Absent or Holiday record blocking the correction, that record is cancelled first so the approved status wins. The IDs of the records it creates are kept on the request as an audit trail. If a request that was already approved is later rejected, Hitaji reverses itself — it cancels the attendance records it had written, so an erroneous approval can’t quietly inflate someone’s paid days. Cancelling is only allowed before approval; doing so also closes any open approval task.Separation of duties
Submitting a request and approving it are deliberately separate jobs. Raising or submitting a request needshr:write; approving or rejecting needs the dedicated hr-attendance:approve permission. This stops someone from creating and clearing their own attendance corrections — important because attendance drives pay. Approval can run through the standard approval workflow, or an authorised approver can approve/reject a pending request directly.
Permissions
⚠️ Current state. The check-in and attendance-request engines are fully built on the backend — self clock-in/out, geolocation, auto-attendance roll-up, the correction workflow, and the separation-of-duties approval gate all work. The web UI is partial: the Attendance page displays the live clock-in feed, but there is currently no dedicated screen to raise or approve attendance correction requests, nor a built-in clock-in/clock-out button on these HR pages — those actions are driven through the API (or a mobile/self-service surface). (Flagged for the team.)
Related
- Attendance — the daily record and the live clock-in feed
- Shifts — the shift settings that turn punches into attendance
- Overtime — extra hours derived from the same punches
- Compensatory leave — uses attendance as proof of holiday work
- Running payroll — where attendance becomes payment days