Approval Workflows
5 min readTalinoHR has two separate approval systems: one for personnel actions (HR transactions) and one for payroll runs. Both support multi-level approval chains with configurable approvers.
Personnel Action Approval Chains
Personnel actions (promotions, salary adjustments, terminations, etc.) use configurable multi-level approval chains that can be set independently for each action type.
How It Works
- When a personnel action is created with status PENDING, the system looks up the approval chain configured for that action type.
- Approval steps are created based on the chain configuration.
- Approvers are notified (via email if configured).
- Each step must be approved in order before the next step becomes active.
- Once all steps are approved, the action status changes to APPROVED.
- On the effective date, the action is automatically applied to the employee record.
Configuring Approval Chains
- Navigate to Settings → Compliance (
/settings/compliance). - Select the action type you want to configure (e.g., PROMOTION, MERIT_INCREASE, TERMINATION).
- Add approval steps in order:
- Each step can specify an approver role (e.g., MANAGER, HR_ADMIN) or a specific user.
- Steps are executed sequentially from step 1 onward.
- Save the configuration.
The approval chain configuration is stored in ComplianceSetting with keys formatted as approval-chain:<ACTION_TYPE> (e.g., approval-chain:PROMOTION).
Personnel Action Types That Use Approval
All 15 personnel action types support approval chains:
- PROMOTION
- MERIT_INCREASE
- SALARY_ADJUSTMENT
- TRANSFER
- DEMOTION
- REGULARIZATION
- TERMINATION
- RESIGNATION
- RETIREMENT
- DISCIPLINARY_SUSPENSION
- PREVENTIVE_SUSPENSION
- RETURN_TO_WORK
- JOB_RECLASSIFICATION
- CONTRACT_RENEWAL
- STATUS_CHANGE
Approval Step Statuses
- PENDING: Waiting for the approver to act.
- APPROVED: The approver approved this step.
- REJECTED: The approver rejected this step (all subsequent steps are skipped).
- SKIPPED: Automatically skipped because a prior step was rejected.
Rejection Behavior
When any step in the chain is rejected:
- The personnel action status changes to REJECTED.
- All remaining PENDING steps are marked as SKIPPED.
- The action will not be applied to the employee record.
- To retry, a new personnel action must be created.
Payroll Approval Workflow
Payroll runs have their own separate approval system that controls the flow from computation to disbursement.
Payroll Run Status Flow
DRAFT -> COMPUTED -> REVIEWED -> APPROVED -> DISBURSED
- DRAFT: Payroll run created, not yet computed.
- COMPUTED: Payroll has been computed for all employees.
- REVIEWED: Payroll computation has been reviewed and submitted for approval. This is when approval steps are created.
- APPROVED: All approval steps completed. Ready for disbursement.
- DISBURSED: Payroll has been disbursed to employees.
Default Payroll Approval Chain
The default payroll approval chain is:
- Step 1: PAYROLL_ADMIN reviews and approves
- Step 2: HR_ADMIN provides final approval
This default is used when no custom chain is configured.
Configuring Payroll Approval Chain
The payroll approval chain is stored in ComplianceSetting with key payroll-approval-chain. To customize:
- The configuration is an array of steps, each with a
stepOrderandapproverRole(orapproverUserIdfor a specific user). - Allowed approver roles: SUPER_ADMIN, HR_ADMIN, PAYROLL_ADMIN, PAYROLL_STAFF.
- Steps are processed in order of
stepOrder.
Example configuration:
[
{ "stepOrder": 1, "approverRole": "PAYROLL_STAFF" },
{ "stepOrder": 2, "approverRole": "PAYROLL_ADMIN" },
{ "stepOrder": 3, "approverRole": "HR_ADMIN" }
]
SUPER_ADMIN Override
SUPER_ADMIN can always approve any payroll step, regardless of the approval chain configuration. This serves as an override for urgent situations.
Payroll Approval Process
- After payroll is computed, an authorized user reviews the results and submits for approval (status moves to REVIEWED).
- Approval steps are automatically created based on the chain configuration.
- The first approver in the chain receives the request.
- Each approver can approve (moves to next step) or reject (returns to COMPUTED with all remaining steps skipped).
- When the last step is approved, the payroll run status changes to APPROVED.
- An authorized user then marks the payroll as DISBURSED after actual payment is made.
Payroll Rejection
When a payroll approval step is rejected:
- The payroll run status returns to COMPUTED.
- All remaining PENDING approval steps are marked as SKIPPED.
- The payroll can be recomputed and resubmitted for approval.
Email Notifications
Both approval systems can send email notifications:
- Personnel actions send notifications to approvers when their step becomes active.
- Notifications include the action details and a link to review.
- Email delivery is best-effort (failures are silently caught).
Where to Manage
- Personnel Action Chains: Navigate to Settings → Compliance (
/settings/compliance). - Payroll Approval Chain: Managed via ComplianceSetting key
payroll-approval-chainin the database. - View Approval Status: Each personnel action and payroll run detail page shows the current approval chain status with step-by-step progress.
Tips
- Keep approval chains short (2-3 steps) to avoid bottlenecks.
- Use role-based approvers instead of specific users to handle absences and role changes gracefully.
- SUPER_ADMIN should be a fallback approver, not a regular step in the chain.
- For urgent personnel actions, SUPER_ADMIN can approve any pending step to expedite the process.
- Test approval chains with a draft action before rolling out to production workflows.