Skip to main content
itzseo
HRMS · Phase 31.1 / 31.3 / 35

Clock in, clock out, undo if you misclick.

The punch system every other HRMS got wrong. Always-visible pill. 10-minute undo window. Late-flag calendar. HR oversight with retroactive-add.

What employees see

An always-visible pill in the top bar.

No separate clock-in app. No hidden menu. The Employment Pill (Phase 33A) lives on every workspace page.

Clock In / Out

One click. Session timeline appears under the pill. Total hours tick up live. Break Start / Break End for split sessions.

10-min undo window

After clock-out, an Undo button appears in the pill with a live countdown. Click → reverts the clock-out (writes CLOCK_OUT_UNDO correction event). Default 10 min, configurable via HR policy.

Personal calendar

Month grid at /me/attendance. Daily totals + late/early flag badges + holiday badges (Public/Restricted/Optional) + leave overlays + weekend dimming.

What HR sees

Workspace-wide oversight.

/hr/attendance

Workspace-wide table. Every employee × today's status (Working / Late / Absent / On leave / Holiday). Filter chips. Role-gated to HrMember.

Per-employee drill

Click a row → /hr/attendance/[userId]. Session timeline + weekly summary + late/early/auto-closed counts. Side panel with leave + OT for context.

Retroactive-add

Employee forgot to clock in? HR opens the per-user drill → Add event → modal with date + time + type → session rebuilds with the missing punch + audit trail of who added it.

Why the undo matters

The accidental clock-out problem.

Most HRMS tools force a 6-step HR ticket to fix an accidental clock-out. We learned this the hard way during Phase 34 QA — Ranjan clocked out by mistake and had to manually rebuild the session via the database.

Phase 35 fix: after Clock Out, an Undo button stays visible in the pill for 10 minutes with a live countdown timer. Click → the system writes a CLOCK_OUT_UNDO correction event linked to the original clock-out via correctsEventId. The session re-opens. No HR ticket. After the window expires, fall back to HR retroactive-add.

Background

Auto-close cron.

People forget to clock out. /api/cron/attendance-auto-close fires at shift end + grace period and closes any still-open sessions. Marks them AUTO_CLOSED so the audit trail distinguishes a real clock-out from a system one.

FAQ

Attendance questions.

Can the undo window be changed?
Yes. /settings/hr/setup → clockOutUndoWindowMinutes. Default 10. Set to 0 to disable entirely (no undo, force HR ticket). Set to 60 for a more forgiving window.
What if employees clock in from home / mobile?
Same pill, same flow. Mobile responsive. No geolocation lock-in by default — agencies trust their employees. Geo + IP restrictions are on the roadmap behind a feature flag for agencies that need them.
Can I require photo on clock-in?
Not in v1. Selfie-on-clock is on the roadmap but we're skeptical — it adds friction and signals distrust. We'll ship it only when multiple agencies ask.
How does the calendar handle leave?
Approved leave appears as a colored overlay on the calendar day. Pending leave shows as a dotted outline. Holidays show as a badge with the workspace name + type (Public/Restricted/Optional).
Auto-close vs late clock-out?
Auto-close fires after the shift end + grace period. So a 9-6 shift with 30-min grace auto-closes at 18:30 if you didn't clock out. The session is marked AUTO_CLOSED — flag stays on the row so HR can see ‘forgot to clock out’ vs ‘real long day’.

Done with WhatsApp clock-ins?

14-day trial of the Agency tier.