Overview
Approval Policies let you define multi-step approval chains for leave and overtime requests. Instead of a single approver, requests can flow through multiple steps — for example, first the department head approves, then an HR officer gives final sign-off.
Each store can configure its own approval chain per request type. If no custom policy is set, requests default to a single-step approval by a store admin.
Setting Up Approval Policies
- Navigate to HR → Time-Off → Approval Policies tab.
- You'll see two sections: Leave Approval Chain and Overtime Approval Chain.
- Each chain shows the current steps in order. Click + Add Step to add a new approval step.
- For each step, select the approver type:
- Department Head — the head of the employee's department
- Department Supervisor — any head or supervisor in the department
- HR Officer — any user with the HR approval capability
- Store Admin — any user with store-wide HR approval rights
- Drag steps to reorder them. The first step is who approves first.
- Click Save Policies to apply the changes.
How Approval Routing Works
When an employee files a leave or OT request:
- The system creates an approval request linked to the employee's primary department.
- Step 1 approvers are notified via Telegram (if linked).
- When a step-1 approver approves, the request advances to step 2 and those approvers are notified.
- If any approver rejects, the entire request is rejected immediately — no further steps.
- When the final step approves, the underlying leave/OT request is marked as approved.
Department Roles
Department members now have one of three roles that affect approval routing:
- Head — the department leader. Receives approval requests routed to "Department Head".
- Supervisor — a senior team member. Receives requests routed to "Department Supervisor" (along with heads).
- Member — a regular department member. Cannot approve requests by default.
To change a member's role, go to HR → Departments, find the member, and use the inline role dropdown.
Primary Department
Employees who belong to multiple departments need a primary department to determine which approval chain their requests go through.
- On the HR → Departments page, click the star icon (☆) next to a member to set that department as their primary.
- A filled star (★) indicates the current primary department.
- Employees in only one department are automatically marked as primary.
Approval Step Tracker
Employees can track their request's progress on the My Leave or My Overtime pages:
- A colored progress bar shows each step: green = approved, yellow = awaiting decision, grey = upcoming.
- The current step label shows who is being waited on (e.g., "Awaiting HR Officer").
Team Leave Calendar
The HR → Approvals page includes a team leave calendar at the top of the Leave tab:
- Shows all approved (green) and pending (yellow) leaves for the current month.
- Use the arrow buttons to navigate months.
- Department heads see only their department's leaves; store admins see all.
Telegram Notifications
The approval system sends automatic Telegram messages:
- To approvers — when a request reaches their step in the chain.
- To employees — when their request is approved or rejected, including any remarks.
Notifications require the user to have a linked Telegram account. If not linked, notifications are silently skipped.
Department-Scoped Inbox
The pending requests inbox on the Approvals page is scoped by department:
- Department heads/supervisors see only requests from their departments.
- Store admins and HR officers see requests from all departments.
- The Department column in the pending table shows which department each request belongs to.
Backward Compatibility
Requests filed before the approval system was enabled will continue to work with the old single-step approval flow. No migration of existing pending requests is needed.