Approval Workflows

5 min read

TalinoHR 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

  1. When a personnel action is created with status PENDING, the system looks up the approval chain configured for that action type.
  2. Approval steps are created based on the chain configuration.
  3. Approvers are notified (via email if configured).
  4. Each step must be approved in order before the next step becomes active.
  5. Once all steps are approved, the action status changes to APPROVED.
  6. On the effective date, the action is automatically applied to the employee record.

Configuring Approval Chains

  1. Navigate to Settings → Compliance (/settings/compliance).
  2. Select the action type you want to configure (e.g., PROMOTION, MERIT_INCREASE, TERMINATION).
  3. 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.
  4. 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:

  1. Step 1: PAYROLL_ADMIN reviews and approves
  2. 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:

  1. The configuration is an array of steps, each with a stepOrder and approverRole (or approverUserId for a specific user).
  2. Allowed approver roles: SUPER_ADMIN, HR_ADMIN, PAYROLL_ADMIN, PAYROLL_STAFF.
  3. 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

  1. After payroll is computed, an authorized user reviews the results and submits for approval (status moves to REVIEWED).
  2. Approval steps are automatically created based on the chain configuration.
  3. The first approver in the chain receives the request.
  4. Each approver can approve (moves to next step) or reject (returns to COMPUTED with all remaining steps skipped).
  5. When the last step is approved, the payroll run status changes to APPROVED.
  6. 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-chain in 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.