How leave approvals work
The default chain, custom workflows, replacements, edits, cancellations and who can see attachments
This is what happens between someone hitting Submit and a request turning into
approved or rejected — the approval chain, replacements, and what can still change
after submission.
Where to find approvals
Anything waiting on your decision lives on the Approvals page (Leave Management → Approvals in the sidebar). You don't have to be a manager to see it: the entry appears for anyone who is an approver of record with a request waiting — a team lead, a named approver on a workflow step, or someone standing in for an away colleague — with a badge showing how many are pending. The dashboard and the inbox link there too. When nothing is waiting the page says so rather than disappearing.
Why
A single "manager approves" rule doesn't fit every policy — a two-week vacation request often needs a second look that a routine day off doesn't. SquadBear separates the chain (who decides, in what order, under what conditions) from the request itself, so tightening the rules for long absences doesn't touch how a normal request gets approved.
The default chain
The seeded Vacation policy uses a two-step workflow: the requester's direct manager decides first, and if the request is for more than 5 days, a second step requires any active admin to approve as well. Sick leave and Unpaid leave don't route through a chain — sick leave auto-approves, unpaid leave still needs a manager but only one step. A step that resolves to the requester (self-approval) is skipped automatically, and if an approver is away on an approved absence that day, their own manager or an admin decides in their place.
Custom workflows
Admins can define their own chains at Admin → Workflows: 1-5 steps, each with an approver type — direct manager, manager's manager, team lead, a named employee, or any admin — and an optional condition (on duration, notice, leave type or team) deciding whether the step applies. A workflow binds to a policy on the policy's own page, at Admin → Policies → [policy] — a "Workflow" field there, not a separate step.
Replacements
If a policy requires a replacement — Vacation and Unpaid leave do, by default — a request can't be submitted without naming a colleague to cover, and the replacement can't be the requester. It can be assigned or changed after the fact too, and the assignment is checked for scheduling conflicts. The assigned person accepts or declines independently; only they can respond.
Editing and cancelling
Only the requester or an admin can edit a request, and only while it's still pending —
editing re-validates everything against the same rules as creating it and restarts the
approval chain from step one. Cancelling is available to the requester, a manager,
or an admin, on pending or approved requests; cancelling an approved request returns
its days to the balance (an approved, partly-taken request can be cancelled from a given
date forward, keeping the days already taken). A rejected or already-cancelled
request can't be cancelled again — a rejection is final.
Attachments
A request can carry attachments — a sick note, say — added when submitting or from the request's detail view afterwards. They're visible only to the requester, admins, and whoever is or was an approver of record on that request, at any step and regardless of the request's current status; a manager who isn't on the chain sees the request but never the file. Approvers can view but never delete an attachment; once a request is decided, only an admin can remove one.
Worked example
Tomasz requests 8 days of Vacation and names a colleague as his replacement. His manager
approves first. Because 8 is over the policy's 5-day threshold, the request doesn't
finish there — an admin step is added to the chain, and any active admin (Marta, say)
still has to approve before the request turns approved and the days leave his balance.