Who approves what
Whether leave needs an HR second step is a property of the leave type, not of the person or the number of days. Your administrator sets it when configuring the type.
The two-step chain
Two rules govern the second step:- It needs a different key. The HR step requires the
hr:approvepermission. A manager who does not hold it cannot complete the chain, and is told exactly that. - It cannot be the same person. Whoever approved at the manager step is barred from also approving at the HR step. Someone holding both roles must hand the second step to a colleague.
You cannot approve your own request
The same-actor rule applies at every stage. If you file a leave request and also holdleave:approve, OnTime refuses your own approval.
Scope: whose requests reach you
Holding an approval permission is only half of it. You also have to be in scope for the person who filed:- A manager sees requests from their direct reports. Not their reports’ reports.
- A holder of
hr:approvesees the whole organization — that key is precisely the override for the direct-manager restriction.
Where the queues live
Manager app → Approvals
One combined queue: leave, regularizations and overtime from your direct reports, with the context needed to decide.
Admin console
Per-surface queues — Leave requests, the Regularizations inbox, the swap board — plus bulk approval where it makes sense.
Employee app
Not a queue: where you file and track your own requests and see the stage each is at.
AI agents (MCP)
An agent acting as you can list your pending approvals and act on them, under exactly your permissions and scope.
What happens when a decision lands
Approving is a single atomic step. In one transaction OnTime:- Moves the request to its next state — refusing if someone else already moved it.
- Applies the consequence: the day record is rewritten, the leave balance debited, the roster cells swapped.
- Commits.