End-to-end workflows
How work moves through Human Resources from start to finish, who does each step and what the system does in response.
On this page (19)
New employee to system user
Who: HR officer A, HR manager B, system admin C
| # | What the person does | What the system does |
|---|---|---|
| 1 | A: Employees > New employee: EMP-T010, legal name, join date today; Save | Draft employee created |
| 2 | B: Overview > Private information: nationality, date of birth; IDs & visas: Emirates ID 784-1990-7654321-2 with expiry; Documents: Residence visa + required Labour card | Private data saved; no 'Required and missing' banner |
| 3 | A: Job & pay > New assignment (department, position, calendar, contract type, manager, FTE 1, from today); Activate assignment | Assignment Active |
| 4 | A: Job & pay > New contract (structure, probation 6); Put in force | Contract In force with probation end |
| 5 | A: Actions > Activate employee; acknowledge the warnings; Confirm | State Probation; Access tab shows Access request Pending |
| 6 | C: Administration > System users > New system user > pick EMP-T010 (or link on the user's Employee tab); then decide the access request Fulfil | Login linked; request Fulfilled; A cannot fulfil a request A raised ('You cannot decide a request you raised.') |
| 7 | Sign in as the new user; open Employees > My HR | Own record, documents with numbers and leave balances shown |
Profile change maker-checker
Who: Employee E (linked login), HR manager B, HR manager D
| # | What the person does | What the system does |
|---|---|---|
| 1 | E: My HR > Request a profile change: personal phone + emergency phone, reason; Submit | Pending; form shows Withdraw |
| 2 | E (also holding hr.private.manage, if available) opens Approvals | Own request is not listed; deciding it by API -> 'A different HR user must decide this request.' |
| 3 | B: Approvals > Profile change > Reject with no reason | Reject disabled / 'Say why you are rejecting this.' |
| 4 | D: Approvals > Approve | Employee's private phones updated; revision +1 |
| 5 | E: My HR | New values shown; notification 'Profile change approved'; can submit a new request again |
Document expiry to renewal campaign
Who: HR manager B, employees E1 and E2, HR manager D
| # | What the person does | What the system does |
|---|---|---|
| 1 | B: Reporting > Document expiry > 31-60 days | E1's and E2's visas listed (no numbers) |
| 2 | B: Reporting > Renewal campaigns: name, Expiry from/to covering both; Preview recipients | Eligible 2 grouped by type |
| 3 | B: Launch campaign | History shows 'launched', Recipients 2; E1/E2 get '<type> renewal requested' |
| 4 | E1 and E2: My HR > Request renewal with new expiry and a PDF; Submit | Both pending; recipients 'submitted' |
| 5 | B: Approvals > type Document renewal | Both renewals listed with the new expiry; the new number is not shown in the inbox |
| 6 | D: approve E1, reject E2 with a note | E1's document updated, E2's unchanged; campaign 'completed'; both notified |
Transfer and headcount
Who: HR officer A, report viewer R
| # | What the person does | What the system does |
|---|---|---|
| 1 | A: Employee in Sales > Actions > Transfer from a date (today + 1) to an Ops position, reason | Sales assignment ends today, Ops starts tomorrow |
| 2 | R: Headcount & FTE as of today | Employee counted in Sales |
| 3 | R: Headcount & FTE as of tomorrow | Employee counted in Ops; total headcount unchanged |
| 4 | A: open History > Timeline | Transfer entry with reason and dates |
Candidate to offer to hire to employee to contract
Who: HR recruiter A (recruit.manage, pay.manage, employee.manage, private.manage, contract.manage), HR approver B (recruit.approve), line manager
| # | What the person does | What the system does |
|---|---|---|
| 1 | A: Hiring > Candidates > New candidate: Layla Hassan, Source Referral, passport P1234567, Position Sales executive; Save; Screen | Candidate CAN-nnnn, status Screening; not visible in the Employees directory |
| 2 | A: Hiring > New hire > step 1 pick the candidate; step 2 fill the offer (start 2026-11-01, contract Limited, probation 6, BASIC 9000 + HOUSING 4000 + TRANSPORT 800); Save offer; Submit for approval | Offer Submitted; total 13,800.00 AED per month; seat reserved from the start date; flow shows 'Waiting for approval' |
| 3 | A tries to approve their own offer (API); B: Offers > open the offer > Approve | A refused 'You cannot decide an offer you prepared.'; B: Approved; candidate becomes Offered |
| 4 | A: Record acceptance (before the offer's expiry date) | Offer Accepted; flow moves to step 3 |
| 5 | A: step 3 employee number blank, work email; step 4 default checklist; step 5 Create employee | Employee Draft, assignment Active, draft contract with the three pay lines, onboarding tasks dated from 2026-11-01; offer and candidate Hired |
| 6 | A: open the employee > Job & pay > Contracts > open the draft contract; Put in force | Contract In force; probation ends 2027-04-30 |
| 7 | A: Actions > Activate employee; acknowledge any required-task warnings | Employee state Probation; access request raised; second hire of the same passport refused with 'Nobody is hired twice.' |
Pay change with two-person approval, retroactive
Who: HR payroll officer A (pay.view, pay.manage), HR pay approver B (pay.approve), payroll specialist
| # | What the person does | What the system does |
|---|---|---|
| 1 | A: Pay & benefits > Pay changes > New change: EMP-T010, Salary, BASIC, effective 2026-08-01 (a frozen period), new 9900.00, reason 'Annual review'; Save | Draft; before 9,000.00, new 9,900.00, difference +900.00 |
| 2 | A: Submit for approval | Submitted; Retroactive banner names the frozen periods; request cannot be edited |
| 3 | A tries Approve (API); B: Approve | A refused 'A pay change is approved by somebody other than whoever wrote or submitted it.'; B: Approved |
| 4 | A: Apply without ticking the acknowledgement | Refused with the frozen period names; nothing written |
| 5 | A: Apply with the acknowledgement ticked and a reason | Applied; new version written; one adjustment of +900.00 per frozen period from Aug queued; frozen payslips unchanged |
| 6 | Payroll: open the next open run | Queued adjustments appear as supplemental lines; Pay history on the employee shows both versions |
Offboarding to final settlement
Who: HR officer A (offboard), HR approver B (offboard.approve, hold.manage), payroll officer
| # | What the person does | What the system does |
|---|---|---|
| 1 | A: Offboarding > Terminations > Start offboarding: EMP-T010, Resignation, notice today, last day in 18 days; read the preview; Give notice | Termination Draft; employee state Notice; preview showed notice required 30, served 18 |
| 2 | B: open it > Approve (A is refused) | State Notice; clearances for each required department, recoveries, leave freeze and access cutoff set up |
| 3 | A: request a notice waiver with a reason; B: Decide the notice waiver > Approve | Notice item Waived (decided by B, not A) |
| 4 | Departments: A records each clearance; asset returned; advance set to Recover from final pay; Freeze leave; Freeze inputs | Guard checklist shows only 'Last day reached' blocking |
| 5 | A: Move to cleared; on the last day A: Terminate | State Terminated; employee Terminated; sign-in revoked; payroll told through the termination event |
| 6 | Payroll: prepares and posts the final settlement | HR Settlement tile shows Posted then Paid; no amounts visible in HR |
| 7 | A: Close | Refused while Posted; allowed once Paid; state Closed |
Dispute hold on a leaver
Who: HR manager A (hold.manage), HR manager B (hold.manage), HR officer C (offboard)
| # | What the person does | What the system does |
|---|---|---|
| 1 | A: Offboarding > Dispute holds > Place hold: employee on notice, Legal, reason | Hold Open; attached to the employee's termination; Holds counter 1 |
| 2 | C: bring the termination to Cleared and press Terminate | Refused: 'No dispute hold: 1 open hold(s)' |
| 3 | A tries to Release; B: Release with a note | A refused 'A different person must release a hold you placed.'; B: Released, kept in history |
| 4 | C: Terminate | Terminated |
Benefit enrolment and end
Who: HR payroll officer A (pay.manage), approver B (pay.approve)
| # | What the person does | What the system does |
|---|---|---|
| 1 | A: Benefit plans > New plan MED-GOLD (employee 150.00, employer 300.00, mapped components, expatriate, 12 months) | Plan Active |
| 2 | A: Pay changes > New change: Benefit, MED-GOLD, effective 2026-11-01; reason; Submit | Shares shown from the plan; eligibility checked |
| 3 | B: Approve; A: Apply | Versions written for the employee deduction and employer cost lines; payroll picks them up from 2026-11-01 |
| 4 | A: second change with End this benefit, effective 2026-12-01; B approves; A applies | Shares go to 0.00 from 2026-12-01; history keeps both |
Annual leave: request, approval, balance and report
Who: Aisha (employee), Hana (HR, deciding), Omar (manager), Hamdan (report)
| # | What the person does | What the system does |
|---|---|---|
| 1 | HR: Time off > Request leave for Aisha, Annual leave Thu 15 Oct - Tue 20 Oct 2026 | Quote shows 4 chargeable days of 6 asked, balance 10, after approval 6; request goes Pending; nothing deducted |
| 2 | Check Leave balances for Aisha | Balance 10, Pending 4; a second request would only see 6 available |
| 3 | Hana (a different person from Aisha) opens Employees > Approvals and approves | Request Approved; one 'used' row of -4; payroll period 2026-10; notification sent |
| 4 | Open Leave balances and the Leave ledger movements for Aisha | Balance 6; Used shows 4 this year; the movement row names the request |
| 5 | Aisha asks to cancel from My HR; Hana approves the cancellation | A 'cancellation' row of +4 returns the days; balance 10; payroll adjustment queued if the period was frozen |
| 6 | Hamdan runs Reporting > Leave ledger for the month | Opening + Accrual - Used - Expired + Adjustments = Closing for every row; Reconciles Yes |
Accrual plan: author, independent review, in force, monthly run, year end
Who: Hana (author, hr.configure), Hamdan (reviewer, hr.leave.policy.approve)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Hana creates plan ANNUAL30: 2.5 a month, cap 30, prorate by FTE, carryover capped 5 lapsing after 3 months, with a legal source | Plan v1 Configured; cannot post |
| 2 | Hamdan adds his own worked cases (FTE 1 -> 2.5, FTE 0.5 -> 1.25) and clicks Approve plan | All cases Match; plan Approved with a content hash; Hana could not have done this |
| 3 | Hana puts the plan in force from 1 Nov 2026 | Status In force; five checks ticked |
| 4 | Hana previews then runs the accrual As of 30 Nov 2026 | Aisha +2.5, part-timer +1.25; run in history; running again skips everyone as 'already run' |
| 5 | On 31 Dec 2026 Hana closes the leave year for the plan | A balance of 12 carries 5 (expiring 31 Mar 2027) and lapses 7; balance 5 |
| 6 | Hana runs Expiry as of 1 Apr 2027 | Unused carried units lapse as 'expired' rows; Leave balances shows them in Expired |
Manual balance correction with a second approver
Who: Hana (asks), Hamdan (decides), Aisha (employee)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Hana: Allocations & adjustments > New request, Allocation +2 for Aisha, lapses 31 Dec 2026, reason 'Worked 2 Dec' | Request Pending; balance unchanged |
| 2 | Hana tries to approve her own request | 403 'A different HR user must decide this request.' |
| 3 | Hamdan approves | One ledger row +2 with expiry; balance up by 2; the request keeps the ledger entry id |
| 4 | Hana asks for an adjustment of -1.5 and withdraws it before a decision | Request Cancelled; ledger untouched |
| 5 | Hana asks again; Hamdan rejects with a reason | Rejected; ledger untouched; reason visible |
Missed swipe to payable day
Who: Aisha, Omar (manager), Hana (hr.attendance.manage), Hamdan (hr.attendance.approve)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Punches for Mon 5 Oct 2026 are imported with an 'in' at 09:00 and no 'out' | Day Incomplete with exception 'Missed punch out'; cannot be approved |
| 2 | Omar raises a correction: Missing punch out, 18:00, reason 'Forgot to swipe' | Request Pending, raised through Manager |
| 3 | Hamdan approves the correction | Correction punch added, original untouched; day complete; Net 8.00 after the 1.00 lunch |
| 4 | Aisha also worked until 19:30 on Tue; Hamdan opens the day and approves it with 'Also approve the overtime found' | Overtime 1.50 Daily approved; Payable 9.50 |
| 5 | Hana runs Attendance exceptions for the week | The Monday and Tuesday days are clean or only approved; footer reconciles punches to payable units |
| 6 | Omar tries to approve a correction he raised, then Aisha her own | Both refused |
Weekly timesheet with variance
Who: Aisha (employee), Omar (manager)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Aisha: Timesheets > New timesheet for the week of 5 Oct 2026 | Draft sheet for 5-11 Oct created |
| 2 | She adds Mon-Thu 8 h and Fri 12 h on PRJ-ERP (44 h) and saves | Reconciliation: attendance 40.00, variance +4.00, Flagged at tolerance 2.00 |
| 3 | She submits | Status Submitted; the flag is shown to the approver |
| 4 | Omar returns it with 'Friday looks high' | Status Returned; Aisha can edit again |
| 5 | Aisha corrects Friday to 8 h and submits | Variance 0.00 within tolerance |
| 6 | Omar approves | Status Approved; lines locked; Aisha cannot approve her own |
From working week to schedule and absences
Who: Hana (hr.configure and hr.attendance.manage)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Create calendar STD40 (Asia/Dubai, 40 h, Mon-Fri) and add holiday 2 Dec 2026 | Calendar saved; holiday listed |
| 2 | Create shifts DAY (09:00-18:00, lunch unpaid) and NIGHT (22:00-06:00) | Scheduled hours 8.00 and 7.50 |
| 3 | Create rotating roster ROT3 (DAY, NIGHT, rest) anchored 1 Oct 2026 and assign Aisha with offset 1 | Schedule preview shows NIGHT, rest, DAY ... from 1 Oct |
| 4 | Assign Basma the fixed shift DAY from 1 Nov 2026 | Basma reads from 'assignment'; the calendar is the fallback |
| 5 | Generate absent days for 5-9 Oct 2026 | Absent rows exist only on scheduled working days; leave days show 'On leave' |
| 6 | Open Attendance exceptions filtered to Absent | The generated absences list with the reconciliation footer |
Expense claim to settlement
Who: Employee B (ESS) or HR user H, Approver A, Settler F
| # | What the person does | What the system does |
|---|---|---|
| 1 | H (or B in ESS > Expenses): new claim 'Client visit', add 2 lines with receipts | Draft with totals |
| 2 | Submit | Submitted (or Held if a duplicate - A lets it through with a note) |
| 3 | B tries to approve their own claim (if B has hr.expense.approve) | Refused 'A different approver must decide your own claim.' |
| 4 | A approves | Approved |
| 5 | F settles | Settled; payable to employee frozen; no journal or payment created (finance not wired) - note |
Trip with advance settled by its claim
Who: HR user H, Approver A, Settler F
| # | What the person does | What the system does |
|---|---|---|
| 1 | H: new trip for B, 4 days, policy GCC-STD, advance 1,000 | Draft trip; per diem shown 1,200 (no meals) |
| 2 | A approves; F pays the advance | Advance paid |
| 3 | H: claim linked to the trip: hotel 700 from advance, taxi 150 employee paid | Totals 850 |
| 4 | Submit, A approves, F settles | Advance applied 850 (700 + 150); Returnable by employee 150.00; trip Settled |
Company card statement to claim
Who: HR configurer C, HR user H
| # | What the person does | What the system does |
|---|---|---|
| 1 | C: Load a statement with CC-TEST-1 450 and CC-TEST-2 120 | 2 lines, Claimed No |
| 2 | H: claim line paid on the card with CC-TEST-1 | CC-TEST-1 Claimed Yes |
| 3 | H: second claim tries CC-TEST-1 (API) | Refused 'That card transaction is already claimed on another line.' |
| 4 | Submit, approve, settle | Payable 0.00 for the card line; card total shown separately |
Performance review (API only)
Who: HR H, Employee E, Manager M, HR publisher P
| # | What the person does | What the system does |
|---|---|---|
| 1 | H: create cycle, preview, launch | Review for E pending_self |
| 2 | E: self-assessment; M: manager assessment | Calibration |
| 3 | P: calibrate, sign off, publish | Published; E sees it in full only now |
| 4 | E: acknowledge (or appeal within the window) | Acknowledged / appealed |