Actions and results

What each Employee Self Service button and automatic behaviour does, with worked numbers and what the system refuses.

On this page (36)

Home

ActionWhenWhat you doWhat happens
Home loads for a linked employeeAisha is linked to an employee record (Identity > Users > Employee) and holds ess.home1. Sign in as Aisha 2. Open Employee Self Service > HomeHeader shows her name, department, location, employee ID, manager, job and shift; 6 tiles (Attendance, Tasks, Leave, Payslip, Documents, Requests) show the same numbers as their pages; greeting is Good Morning before 12:00, Afternoon before 17:00, otherwise Evening (Dubai time)
A sign-in with no employee record is told soA user with a company membership but no linked employee1. Sign in as that user 2. Open Home, Attendance, LeaveEvery portal call answers 'Your sign-in is not linked to an employee in this company. Ask HR to link it (Identity -> Users -> Employee).' and nobody else's data is shown
Announcements and activitiesHR has an announcement published 1 Oct 2026 expiring 31 Oct 2026, one expired 30 Sep, one pinned; Aisha has a document expiring in 10 days, a high-priority task due in 3 days and no timesheet today1. Open HomeAnnouncement list shows the live ones only, pinned first; Activities lists 'Submit timesheet' (working day, nothing logged), the Emirates ID expiry, the task deadline, and 'Payroll date' (the 28th, next month's once it has passed) only when it falls within the next 14 days; items sorted by date
Notification bellAisha has a decision notice ('Payslip available: Sep 2026')1. Open the bell 2. Mark the notice readOnly Aisha's own notices are listed (latest 50) with an unread count; marking one read lowers the count
Search my recordsAisha has task TSK-00004 'Prepare Q4 budget', request REQ-00007 and a payslip for 2026-09; Layla has a task titled 'Budget'1. Search 'b' 2. Search 'budget' 3. Search '2026-09'One character is refused 'Type at least two characters.'; 'budget' finds Aisha's task and requests, never Layla's; '2026-09' finds the published payslip; at most 30 results
Weather card is decoration onlyThe server has or has no internet1. Open Home with internet 2. Block internet and reloadWith internet the card shows the company city's temperature (cached 30 minutes; only the city name leaves the server); without internet the card is simply hidden and Home still loads

Home > Customise

ActionWhenWhat you doWhat happens
Hide, order and choose quick actionsAisha on Home1. Customise 2. Hide the assistant card, move Requests first 3. Tick 9 quick actions and save 4. Untick all and save 5. ReloadHidden card and order are kept after reload and are per person; at most 8 quick actions are kept (the 9th is dropped); none ticked is refused 'Choose at least one quick action.'; Omar's Home is unchanged

Attendance > Today

ActionWhenWhat you doWhat happens
Check inAisha has shift 09:00-18:00, nothing punched today, policy allows web1. Open Attendance > Today 2. Press Check In at 08:58Check In time shows 08:58 (Dubai time); buttons become Start Break and Check Out; status Present; the HR attendance day is rebuilt and shows the same punch
Break and the worked-time arithmeticShift 09:00-18:00 with 60 minutes break, so required = 9h - 1h = 8h = 480 minutes1. Check In 09:00 2. Start Break 13:00 3. End Break 13:30 4. Check Out 18:00Worked = (13:00-09:00) 240 + (18:00-13:30) 270 = 510 minutes (8h 30m); Break = 30 minutes; Required 480; Overtime = 510 - 480 = 30 minutes; timeline shows Check In, Break Out, Break In, Check Out
Punches must follow the orderAisha's day state is known1. Before checking in press Check Out (API) 2. Check In twice 3. Check Out while on a break 4. Press anything after Check OutRefusals: 'You have not checked in yet today.'; 'You are already checked in.'; 'You are on a break - end it first.'; 'You have already checked out today.'; no extra punch is stored
Late minutes after the grace periodShift starts 09:00, grace 10 minutes1. Check In at 09:25 (Dubai) 2. Open the day in the calendar and press ExplainLate minutes = 25 - 10 = 15; status Late; Explain lists Shift start 09:00, Grace 10 minutes, Check-in 09:25, Late minutes 15, Policy 'ARE working hours v1'. Checking in at 09:10 gives 0 late
Partial day and missing punch statusesPast days with punches1. A past day: in 09:00, out 12:00 (180 min) 2. A past day: in 09:00 and no outFirst day: worked 180 is under half of 480 (240) and checked out -> Partial Day; second: Missing Punch (a correction is the way to fix it)
Method and offline permissions from the policyPolicy for Aisha allows only 'mobile'1. Check in from the web (method web) 2. Send an offline punch (API) with 'allow offline' offRefused 'Your attendance policy does not allow this method.'; then 'Offline attendance is not allowed for you.'
Offline punch queuePolicy allows offline (default); the browser can go offline1. Disconnect the network 2. Press Check In 3. ReconnectMessage 'You are offline. The punch is saved on this device and will be sent when you reconnect.'; counter '1 offline punch(es) waiting to sync'; on reconnect the punch is sent with the original capture time, marked offline, and the card updates
Offline punch limitsAPI access1. Send an offline punch captured 73 hours ago 2. Send one captured 5 minutes in the future 3. Send one captured 3 hours ago73 h: 'An offline punch older than 72 hours needs a correction request.'; future: 'A punch cannot be in the future.'; 3 h: accepted and dated 3 hours ago
Geofence and required locationWork location 'Dubai Head Office' lat 25.2048 lon 55.2708 radius 150 m; policy requires location and enforces geofence1. Check In with no location 2. Check In from 100 m away 3. Check In from 400 m away1: 'Allow location to record attendance here.'; 2: accepted, marked within fence; 3: 'You are outside your permitted work location. Raise a field duty or remote work correction instead.' Without 'Enforce' the 400 m punch is accepted but marked outside the fence (status Remote)
Night shift belongs to the evening it beganShift 22:00-06:00, crosses midnight1. Check In 22:05 on 1 Oct 2. Check Out 06:10 on 2 OctBoth punches sit on the 1 Oct attendance day (not 2 Oct); the check-out is allowed; no second 'not checked in yet' error at 06:10
On a leave day there are no punch buttonsAisha has approved leave today1. Open Attendance > TodayStatus On Leave with the leave type; no Check In button

Attendance > Calendar

ActionWhenWhat you doWhat happens
Month calendar and totalsA month with punches, a holiday, leave, a weekend1. Open Calendar for September 2026 2. Look at the chips and totalsEach day has a status (Present, Late, Absent, On Leave, Public Holiday, Weekend, Remote...); future days show Upcoming; Worked is the sum of daily minutes; Overtime sums minutes above 480 on Present/Late days only
Explain a dayAny past day1. Click a day 2. Read the lines 3. Press Request correctionDialog shows status and lines (shift, grace, check-in/out, late, worked as 'Xh YYm', policy and rule version; 'Ramadan hours apply' during Ramadan); Request correction opens the correction form with that date filled

Attendance > My shifts

ActionWhenWhat you doWhat happens
Shifts and the Ramadan shiftShift assignment with Ramadan shift 09:00-15:00; country rule ramadan period includes the day1. Open My shifts 2. Compare a normal day with a Ramadan dayCurrent shift, work location and rotation shown; 14-day list shows weekend / holiday / shift times; during Ramadan the Ramadan shift (and 'Ramadan hours: In effect') is used

Requests > Attendance correction

ActionWhenWhat you doWhat happens
Submit a correctionAisha forgot to check out on Thu 1 Oct 2026; default steps Manager then HR1. Request correction 2. Correction = Missing check-out, Date 1 Oct, Check-out 18:10, Reason 3. SubmitRequest REQ-0000n created, state Manager Review; Omar (holding mss.approve_attendance) gets a notice 'is waiting for your manager review'; tomorrow's date, or a missing check-out time, is refused with the messages in the field list
Approved correction adds punches, never editsThe correction above after Omar and Hanan approve1. Omar approves 2. Hanan approves 3. Open the attendance day (ESS and HR)State becomes Completed; a correction punch 18:10 is added from source 'ESS approved correction' and shown marked as a correction; the original punches are untouched; the day is rebuilt; an HR attendance correction record is linked to the request

Tasks

ActionWhenWhat you doWhat happens
Create a task for myselfAisha on Tasks1. New task, Title 'Prepare Q4 budget', Priority High, Due 9 Oct 2026 2. SaveTask TSK-0000n created, Not started, 0%, assigned to and by Aisha; visible in Assigned to me; blank title refused 'Give the task a title.'
A manager assigns to the team onlyOmar manages Aisha; Layla is in another team1. As Omar create a task with Assign to Aisha 2. Try Layla (API) 3. As Aisha open the taskAisha is notified 'New task'; it shows in her list and in Omar's 'Assigned by me'; Layla refused 'You can assign tasks only to yourself or your team.'; a normal employee with no team has no 'Assign to' box
Progress, checklist and completionA task with a 3-item checklist1. Tick one item 2. Tick two 3. Move the slider to 100 / press Mark complete1 of 3 ticked = 33%; 2 of 3 = 66%; progress above 0 moves Not started to In progress; completing sets 100% and Completed and notifies the person who assigned it
Recurring task rolls overA weekly task due 9 Oct 2026; a monthly task due 31 Jan 20271. Mark the weekly task complete 2. Mark the monthly one completeA new task is created with the same title, checklist reset, due 16 Oct 2026 (+7 days); the monthly one is due +30 days (2 Mar 2027, not 28 Feb)
Timer creates a timesheet lineA task assigned to Aisha1. Start timer at 14:00 2. Stop at 15:30 3. Start a second task's timer while the first runs 4. Open TimesheetsStop logs 90 minutes and a draft timesheet line of 1.50 h; starting the second timer stops the first (one timer at a time); a stop under a minute logs nothing; someone who only reviews the task cannot time it: 'Only the person doing the task times it.'
Log time by handA task assigned to Aisha1. Log time hours 1.5 (and minutes 15 via API) 2. Hours 25 3. A date next week1.5 h + 15 min = 105 minutes added to Time spent and a draft timesheet line of 1.75 h; 25 h refused 'Enter between a minute and a day.'; future date 'Time is logged for today or earlier.'
Views and countsTasks open, due today, overdue, upcoming1. Open each tab 2. Search 'budget' 3. Filter priority HighCounts on tabs match (Open / Due today / Overdue / Upcoming for tasks assigned to me); Assigned by me hides tasks I gave myself; search matches title, reference, project

Leave > Balances

ActionWhenWhat you doWhat happens
Balance card arithmeticAnnual leave ledger: accrual 30 this year, carry-over 5, 10 days used and started, 5 days approved and still ahead, 3 days pending1. Open Leave > BalancesEntitlement 30, Carried Forward 5, Taken 10, Scheduled 5, Pending 3 (shown separately), Available = 30 + 5 - 10 - 5 = 20; donut and numbers agree; Statutory card shows the country rule (UAE: annual 30, sick 90...)
Hourly and half-day typesA leave type taken in hours and a type that allows half days1. Apply a half day on the first day 2. Apply 2 hours on a day-only type (API)Half day charges 0.5; 'Hours Available' wording for hourly types; hours on a day-only type refused 'This leave type is not taken in hours.'

Leave > Apply Leave

ActionWhenWhat you doWhat happens
Live quote before submittingAisha has 20 days available; Fri 9 Oct 2026 and Sat/Sun are the next days1. Apply Leave, Annual leave, Mon 5 Oct to Thu 8 Oct 2026 2. Read the summary 3. Change to Fri 9 Oct onlySummary shows days charged 4, balance after 16, Back at work Fri 9 Oct, holidays inside, and colleagues of the same manager already away; for Fri 9 Oct only, Back at work is Mon 12 Oct (weekend skipped)
Submit leaveQuote is clean1. Submit requestLeave request (state Pending) and a linked request REQ-0000n appear; the manager gets a notice; the pending days show under Pending on the balance card; the same request is in HR's Time off list
RefusalsAisha already has approved leave 5-8 Oct1. Apply for 7-9 Oct 2. Apply for 25 days with 20 available 3. Apply Sat 10 Oct to Sun 11 Oct 4. A type with a 3-month minimum while employed 1 month1: 'This time overlaps Annual leave already requested (...)'; 2: 'Only 20 days are left' (plus how many more are held by pending requests); 3: 'Those days are not worked, so there is no leave to take.'; 4: '... needs 3 months of service.'; the Submit button is also disabled while the quote shows a blocking message

Leave > My requests

ActionWhenWhat you doWhat happens
Withdraw a pending requestA pending request1. Withdraw 2. Enter a reason 3. ConfirmState Cancelled, held days released from Pending, linked request shows Cancelled, manager's queue entry disappears
Cancel approved leave that is still aheadAn approved request starting 12 Oct1. Request cancellation with a reason 2. Manager approves the cancellation 3. Check balanceA cancellation request goes to the manager (a different person from the requester); on approval the days return to Available; a past leave shows no button; with no reason the HR rule refuses 'Say why the approved leave should be cancelled.'

Leave > Calendar

ActionWhenWhat you doWhat happens
Own and team calendarOmar has Aisha and Layla's colleague Hamad in his team1. As Aisha tick 'My colleagues' 2. As Omar tick 'My team' 3. Next monthOwn view shows only Aisha's leave and the holidays of her calendar; the team view shows the manager's team (for a non-manager: her colleagues under the same manager); pills colour Approved vs Pending

Requests

ActionWhenWhat you doWhat happens
New request type pickerAisha on Requests1. New request 2. Look at the types 3. Pick Leave21 types are offered; each shows its approval path (e.g. Loan: Manager review -> HR review -> Finance review); Leave, Expense claim, Profile change and Document renewal say 'Opens its own page' and take you there
Generic validationAny type1. Submit Overtime with Hours 0 2. Hours 'abc' 3. Empty Reason 4. A past date as Departs on a business trip returning earlier'Enter a positive number.'; 'Enter a number.'; 'Reason is required.'; 'The trip cannot end before it starts.'; nothing is created
Step by step approvalAn air ticket request (Manager then HR)1. Aisha submits 2. Omar approves 3. Hanan approvesState goes Manager Review, HR Review, Approved; timeline shows each step done with who and when; on the last approval the requester gets a 'decision' notice; each step notifies the next approvers (due in 48 hours)
Reject needs a reasonA request at the manager step1. Omar rejects with no note 2. Omar rejects with a note'Say why it is rejected.' then state Rejected, timeline shows the rejecting step, the employee is told with the note
Cancel while waitingA request in Manager Review, one Approved, one Leave-linked1. Cancel the waiting one 2. Try to cancel the approved one 3. Try to cancel a leave-linked request here1: Cancelled and its approver notices resolved; 2: 'Only a request still waiting for a decision can be cancelled.'; 3: 'Cancel this from its own page.'; the Cancel button only shows on waiting, non-linked requests
Loan approval creates a deduction scheduleLoan AED 6,000 over 12 installments raised and approved in October 20261. Approve through Manager, HR and Finance 2. Open Payroll > Loans & advancesA loan is created: installment = 6,000 / 12 = 500.00, starts 2026-11, repaid 0.00, outstanding 6,000.00; salary advance of 2,000 gives a single installment of 2,000.00
Loan roundingLoan AED 1,000 over 3 installments1. Approve fully 2. Run and pay three payroll months 3. Look at OutstandingInstallment = 333.33; after three months repaid 999.99 and outstanding 0.01 (a fourth tiny deduction is needed)
Bank change takes effect on final approvalBank change request with IBAN AE07 0331 2345 6789 0123 4561. Approve at HR and Finance 2. Open Payroll > Salary and My ProfileState Completed; old account retired; new account primary, IBAN stored without spaces in capitals; shown masked as 'AE07••••3456'; nothing changed before the last approval
Overtime approvalAisha worked 2.5 h over on 30 Sep (detected by attendance)1. Request overtime 2.5 h for 30 Sep 2. Omar (mss.approve_overtime) approves 3. Check Time & attendance > Overtime approvalsThe day's overtime is approved up to the requested hours (never more than was detected); a request for a day with no detected overtime still shows Approved but approves 0 hours
Asset, dependent, qualification, training effectsApproved requests of each kind1. Asset Return approved 2. Dependent 'Maryam Khan, Child, insured Yes' approved 3. Qualification approved 4. Training with a course approved1: assignment returned today, asset Available, state Completed; 2: dependent appears on Benefits and Profile, insured; 3: qualification on Profile; 4: an enrolment assigned today (scheduled on the preferred date) shows in Learning
HR edits a workflowSelf-service setup > Request workflows1. Change 'Loan' to Manager + Finance only 2. Aisha raises a new loan 3. Look at an older loan requestThe new request shows two steps; requests already in flight keep their original steps; making the workflow inactive falls back to the built-in steps
Who the manager step goes toAisha's manager Omar holds the permission; a second case where the manager has no login1. Raise an overtime request 2. Raise one for an employee whose manager has no loginOmar alone sees the first in his queue; for the second the step goes to the workspace administrators (never to the requester)

Payroll > Payslips

ActionWhenWhat you doWhat happens
Published payslips onlySep payslip draft, Aug payslip published, Jul paid1. Open Payroll > PayslipsOnly Aug and Jul are listed (draft is invisible); each shows Gross, Deductions, Net, Status, Paid on; newest first (up to 36)
Payslip detail, comparison, printAug net 10,612.69, Jul net 10,342.691. Open Aug 2. Read the net line 3. Print / PDFEarnings and deductions tables balance to Gross and Total; Net pay 10,612.69 with 'vs 2026-07: +270.00'; working days, overtime hours, WPS status and paid date shown; viewing is recorded in the audit trail without amounts
Year to dateThree published months of 12,000 gross, 10,180 net1. Read the Year to date cardMonths paid 3, Gross 36,000.00, Net 30,540.00 (sums of published and paid payslips of the current year only)

Payroll > Salary

ActionWhenWhat you doWhat happens
Contract breakdown and masked accountActive contract: Basic 8,000 + Housing 3,000 + Transport 1,0001. Open SalaryComponents listed with kind; Gross 12,000.00 and Net from the contract; 'End of service is based on' figure; salary account shows bank and 'AE07••••3456' only, never the full IBAN

Payroll > Loans & advances

ActionWhenWhat you doWhat happens
Loan balancesLoan 6,000 with 3 installments of 500 paid1. Open Loans & advancesPrincipal 6,000.00, Monthly 500.00, Repaid 1,500.00, Outstanding 4,500.00; a settled loan shows Settled

Payroll > WPS & insurance

ActionWhenWhat you doWhat happens
WPS status and social insuranceUAE national and an expatriate employee, rules UAE v1 (employee 11%, employer 12.5%)1. Open WPS & insurance as the national 2. As the expatriateNational: Registered Yes, contribution salary 12,000.00, your rate 11%, employer 12.5%; expatriate: 'Not covered (expatriate)', rates 0%; WPS rows show status per month (processed, wps_ready, paid)

Documents

ActionWhenWhat you doWhat happens
Status and orderingPassport valid, Emirates ID expiring in 20 days (alert 30), visa expired, labour card required but missing, a pending renewal1. Open DocumentsOrder: Expired, Missing, Expiring soon, Renewal in progress, Valid; chips count each; numbers of restricted documents show '••••'; missing required type has no Renew button path (no record)

Documents > Renew

ActionWhenWhat you doWhat happens
Renewal request with evidenceEmirates ID expiring1. Renew 2. Fill dates and reason, attach PDF 3. Send to HR 4. Try a second renewalA renewal goes to HR with the file; the document shows Renewal in progress; a request REQ is linked; second one refused 'A renewal request is already pending.'; refusals for reason, files and dates are listed in the field table

Employment

ActionWhenWhat you doWhat happens
Job, contract and probation viewContract 1 Mar 2026, probation to 31 Aug 20261. Open EmploymentJob card (position, grade, department, manager, FTE), contract facts, history, probation days remaining = probation end - today (0 once over) and confirmation status
Acknowledge, ask, request amendmentAn active contract1. Acknowledge 2. Ask a question with no text 3. Ask with text1 recorded in Acknowledgements; 2 refused 'Say what should change or what is unclear.'; 3 recorded and HR gets a notice 'Contract clarification: <name>'

Benefits

ActionWhenWhat you doWhat happens
Benefits, dependents and requestsMedical plan, air ticket entitlement, one dependent1. Open Benefits 2. Request air ticketMedical and other benefit cards, air ticket eligibility and entitlement, housing and transport from the contract, dependents with insured flag, last 20 related requests

Expenses

ActionWhenWhat you doWhat happens
Create a claim and add linesAisha on Expenses1. New claim 'Client visit - Abu Dhabi' 2. Add Meals 120.50 and Taxi 60.00 with purposes 3. Remove the taxi lineA draft claim with a linked request is created for Aisha only; totals show Claimed 180.50 then 120.50; a line paid by 'card' is refused 'Card transactions are matched by HR from the card statement.'
Submit for approvalA draft claim with lines and a business purpose1. Submit for approvalClaim becomes Submitted; approvers are notified; an empty claim is refused 'An empty claim has nothing to approve.'; a line over its category limit is refused 'Above the Meals limit of 150.00.'; a possible duplicate puts the claim on hold
Approval and settlementA submitted claim1. An approver (hr.expense.approve) approves 2. Finance settlesApproved then Settled; Payable to you shows the frozen figure after any advance; rejecting needs 'Say why it is being refused.'

Timesheets

ActionWhenWhat you doWhat happens
Log, edit and deleteAisha on Timesheets1. Log 7.5 h on 1 Oct 2. Log 17 h on the same day 3. Delete a draft entry 4. Delete a submitted one (API)Day shows 7.5 h; second refused 'A day has 24 hours; this would log more.'; draft deleted; submitted refused 'A submitted entry cannot be deleted.'; edits of a submitted entry refused 'A submitted entry is changed by its approver only.'
Missing days and submit the periodMon-Fri week with logs on Mon-Wed only; today is Fri 2 Oct 20261. Open the week 2. Submit this period to my manager 3. Submit againThu and Fri show as missing (working days up to today with 0 h); weekend is 'off'; the submit sends all draft/rejected entries of the period to the manager and notifies him; a second submit says 'There is nothing to submit in that period.'

Learning

ActionWhenWhat you doWhat happens
Start and complete a courseCourse 'Fire Safety' valid 12 months assigned to Aisha1. Start 2. Mark complete on 2 Oct 2026In progress then Completed on 2 Oct 2026; certificate expiry = completion + 30 x 12 = 360 days = 27 Sep 2027; shows under Certifications when a certificate number exists; overdue (due date passed and not completed) is shown in red

Assets

ActionWhenWhat you doWhat happens
Return an assetLaptop L-0012 issued to Aisha1. Return 2. Details 3. Submit 4. Manager and HR approveThe request completes: assignment Returned today, asset Available; the card disappears from 'issued' and appears in history; asking for an asset assigned to someone else is refused

Letters & Certificates

ActionWhenWhat you doWhat happens
Request, issue and print a letterDefault step: HR review1. Request a Salary certificate in English, purpose 'Bank loan' 2. Hanan approves 3. Aisha opens View / printA letter LTR-0000n is issued with a 12-character verification code; text says employed since the join date as the job title with the monthly gross (AED 12,000.00) ; Arabic and bilingual versions use the Arabic name and the same figures; printing opens a page with the code in the footer
Verify a letter codeAn issued letter1. Enter the code in Verify a letter 2. Enter a wrong codeValid letter: number, type, date, employee name only; wrong code: 'No letter carries that code.'

My Profile

ActionWhenWhat you doWhat happens
Profile change requestAisha's personal phone differs1. Request a change 2. Change Personal phone and add a reason 3. Send to HR 4. Send another while pendingRequest goes to HR as 'Profile change' (state HR Review); the profile is unchanged until HR approves; a second one is refused 'Finish or cancel the pending profile change first.'; nothing changed is refused 'Change at least one field.'
Qualification and bank from the profileAisha on Profile1. Add a qualification 2. Change bankBoth open the request form and complete only after HR (and Finance for bank) approve

My Team

ActionWhenWhat you doWhat happens
Team listOmar manages Aisha and Hamad, plus holds a leave delegation from Sultan1. Open My Team 2. Search 'Aisha'Shows exactly his direct reports and delegated people, never himself or other teams; each card shows today's status, shift, leave, open tasks, document alerts, probation end

Team Attendance

ActionWhenWhat you doWhat happens
Team attendance for a dayAisha late, Hamad on leave1. Open Team Attendance 2. Pick yesterday 3. Click the 'Late' chipRows: Employee, Shift, In, Out, Worked, Late, Status; chip counts match the rows; the chip filters; a person on leave shows the leave name

Approvals

ActionWhenWhat you doWhat happens
The approval queueAisha has a pending leave (3 days, balance 20), an overtime request, a submitted timesheet week of 38 h1. As Omar open All Approvals 2. Open each tabLeave card shows Balance after = balance snapshot - days and who else is away; timesheet card shows 'Week of 28 Sep - 38 h' with entries; items sorted oldest first; tabs filter Leave, Corrections, Overtime, Timesheets
Approve and reject leaveA pending leave of Aisha1. Omar approves with a note 2. Another leave: reject with no note 3. Reject with a noteApproved: Aisha notified, days move to Scheduled; reject without a note refused 'Say why it was refused.'; with a note state Rejected; a stale screen is refused 'This request changed. Reload before deciding.'
Approve and return a timesheet weekAisha submitted Mon-Fri week1. Approve 2. Another week: reject with no note 3. Reject with a note 4. Aisha edits and resubmitsApproved: all submitted entries of that week become Approved and she is notified; no note refused 'Say what needs correcting.'; returned entries become Rejected with the note; the employee can delete them and log again (the API also allows editing, which sets them back to Draft) and resubmit
HR approves a profile change and a renewalAisha's pending profile change and renewal; Hanan holds hr.private.manage1. Hanan opens All Approvals 2. Approves bothBoth items appear for HR only; approving applies the values (profile) or updates the document (renewal); an employee edited in the meantime makes the profile approval refuse 'The employee profile changed after this request was sent. Reject it and ask the employee to submit the current values again.'

Probation Reviews

ActionWhenWhat you doWhat happens
Review a probationHamad's probation ends in 12 days1. Review 2. Rating 4, Recommendation Extend, comments 3. Send to HR 4. Open Update and send againHR gets a notice 'Probation review: <name> - extend'; the row shows 'extend - 4/5'; days left under 15 are red; empty comments refused 'Say how the probation went.'

Team Documents

ActionWhenWhat you doWhat happens
Expiry alerts without numbersTeam members with documents expiring1. Open Team Documents 2. Switch to AllNeeds attention lists expired / expiring documents by the type's alert days (default 30) with days left; no document numbers anywhere

Team Calendar

ActionWhenWhat you doWhat happens
Team calendarTeam leave, an approved business trip, a scheduled course1. Open Team Calendar for the monthShows team leave, approved business trips and scheduled training and the company holidays for that month

Self-service setup

ActionWhenWhat you doWhat happens
Create, edit and retire a masterHanan holds ess.configure1. Work locations > New 'DXB-HQ' 2. Edit the radius 3. Remove itSaved and listed; edits are audited; Remove retires masters that have an Active flag (they stay for history) and erases the others (e.g. attendance policies, holidays)
References must belong to the companyTwo companies1. Create a shift assignment with an employee id of the other company (API)Refused 'Choose a employee from this company.'; every master list is filtered to the company
Country rules are versioned and effective-datedThe UAE starter pack (overtime 1.25, weekend Sat/Sun, grace 10)1. Add ARE working_hours version 2 effective 1 Jan 2027 with overtime_rate 1.5 2. Generate a payroll for Dec 2026 and one for Jan 2027Dec 2026 payroll reads version 1 (1.25), Jan 2027 reads version 2 (1.5) and the payslip records the rule version; bad JSON refused 'That is not valid JSON.'

Payroll runs

ActionWhenWhat you doWhat happens
Generate drafts - the arithmeticUAE national: Basic 8,000, Housing 3,000, Transport 1,000 (all insurable and overtime basis 12,000); 5 approved overtime hours in Sep; loan installment 500; rule: overtime 1.25, employee SI 11%1. Payroll runs > period 2026-09 > Generate draftsHourly = 12,000 / (40 x 52 / 12 = 173.33) = 69.23; overtime = 5 x 69.23 x 1.25 = 432.69; Gross = 8,000 + 4,000 + 432.69 = 12,432.69; social insurance 12,000 x 11% = 1,320.00 (employer 1,500.00); deductions 1,320.00 + 500.00 = 1,820.00; Net = 10,612.69; draft, not visible to Aisha yet
Publish and mark paidDraft payslips for 2026-091. Publish 2. Aisha opens Payroll 3. Mark paidPublish makes payslips visible and notifies each employee 'Payslip available: Sep 2026', WPS status wps_ready (or processed when WPS is off); Mark paid sets Paid on (today) and status paid, adds one installment to each active loan's repaid and settles a loan when repaid reaches principal
A paid month is closedSep payslips are paid1. Generate drafts for 2026-09 againPaid payslips are skipped ('skipped_paid' counts them) and unchanged; the period shows Closed; unpublished drafts can be regenerated

ESS feature switches

ActionWhenWhat you doWhat happens
Turn Expenses offCompany admin on Apps > Employees > Features1. Turn 'Expenses, travel and company cards' off 2. Aisha opens Expenses and tries New claimMenu entries go; reading existing claims still works; creating or changing is refused with 409 'capability_disabled'; turning it on again restores everything
Turn Time off and Attendance offAs above1. Turn 'Time off' off, then 'Time and attendance' off 2. Try Apply Leave, Check In, Log timeLeave changes, punches, corrections and timesheet changes are refused with 'capability_disabled'; balances, calendar and history still read; Tasks timer still logs time

ESS field settings

ActionWhenWhat you doWhat happens
Hide a profile field and require a merchantFields: Personal email Hidden, Expense merchant Required1. Open the profile change form 2. Add an expense line with no merchantPersonal email box is not offered and a value sent by API is refused; the merchant box shows '*' and a line without it is refused 'Expense merchant is required by this company before this step.'