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)
HomeHome > CustomiseAttendance > TodayAttendance > CalendarAttendance > My shiftsRequests > Attendance correctionTasksLeave > BalancesLeave > Apply LeaveLeave > My requestsLeave > CalendarRequestsPayroll > PayslipsPayroll > SalaryPayroll > Loans & advancesPayroll > WPS & insuranceDocumentsDocuments > RenewEmploymentBenefitsExpensesTimesheetsLearningAssetsLetters & CertificatesMy ProfileMy TeamTeam AttendanceApprovalsProbation ReviewsTeam DocumentsTeam CalendarSelf-service setupPayroll runsESS feature switchesESS field settings
Home
| Action | When | What you do | What happens |
|---|---|---|---|
| Home loads for a linked employee | Aisha is linked to an employee record (Identity > Users > Employee) and holds ess.home | 1. Sign in as Aisha 2. Open Employee Self Service > Home | Header 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 so | A user with a company membership but no linked employee | 1. Sign in as that user 2. Open Home, Attendance, Leave | Every 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 activities | HR 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 today | 1. Open Home | Announcement 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 bell | Aisha has a decision notice ('Payslip available: Sep 2026') | 1. Open the bell 2. Mark the notice read | Only Aisha's own notices are listed (latest 50) with an unread count; marking one read lowers the count |
| Search my records | Aisha 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 only | The server has or has no internet | 1. Open Home with internet 2. Block internet and reload | With 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Hide, order and choose quick actions | Aisha on Home | 1. Customise 2. Hide the assistant card, move Requests first 3. Tick 9 quick actions and save 4. Untick all and save 5. Reload | Hidden 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Check in | Aisha has shift 09:00-18:00, nothing punched today, policy allows web | 1. Open Attendance > Today 2. Press Check In at 08:58 | Check 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 arithmetic | Shift 09:00-18:00 with 60 minutes break, so required = 9h - 1h = 8h = 480 minutes | 1. Check In 09:00 2. Start Break 13:00 3. End Break 13:30 4. Check Out 18:00 | Worked = (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 order | Aisha's day state is known | 1. Before checking in press Check Out (API) 2. Check In twice 3. Check Out while on a break 4. Press anything after Check Out | Refusals: '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 period | Shift starts 09:00, grace 10 minutes | 1. Check In at 09:25 (Dubai) 2. Open the day in the calendar and press Explain | Late 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 statuses | Past days with punches | 1. A past day: in 09:00, out 12:00 (180 min) 2. A past day: in 09:00 and no out | First 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 policy | Policy for Aisha allows only 'mobile' | 1. Check in from the web (method web) 2. Send an offline punch (API) with 'allow offline' off | Refused 'Your attendance policy does not allow this method.'; then 'Offline attendance is not allowed for you.' |
| Offline punch queue | Policy allows offline (default); the browser can go offline | 1. Disconnect the network 2. Press Check In 3. Reconnect | Message '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 limits | API access | 1. Send an offline punch captured 73 hours ago 2. Send one captured 5 minutes in the future 3. Send one captured 3 hours ago | 73 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 location | Work location 'Dubai Head Office' lat 25.2048 lon 55.2708 radius 150 m; policy requires location and enforces geofence | 1. Check In with no location 2. Check In from 100 m away 3. Check In from 400 m away | 1: '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 began | Shift 22:00-06:00, crosses midnight | 1. Check In 22:05 on 1 Oct 2. Check Out 06:10 on 2 Oct | Both 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 buttons | Aisha has approved leave today | 1. Open Attendance > Today | Status On Leave with the leave type; no Check In button |
Attendance > Calendar
| Action | When | What you do | What happens |
|---|---|---|---|
| Month calendar and totals | A month with punches, a holiday, leave, a weekend | 1. Open Calendar for September 2026 2. Look at the chips and totals | Each 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 day | Any past day | 1. Click a day 2. Read the lines 3. Press Request correction | Dialog 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Shifts and the Ramadan shift | Shift assignment with Ramadan shift 09:00-15:00; country rule ramadan period includes the day | 1. Open My shifts 2. Compare a normal day with a Ramadan day | Current 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Submit a correction | Aisha forgot to check out on Thu 1 Oct 2026; default steps Manager then HR | 1. Request correction 2. Correction = Missing check-out, Date 1 Oct, Check-out 18:10, Reason 3. Submit | Request 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 edits | The correction above after Omar and Hanan approve | 1. 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Create a task for myself | Aisha on Tasks | 1. New task, Title 'Prepare Q4 budget', Priority High, Due 9 Oct 2026 2. Save | Task 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 only | Omar manages Aisha; Layla is in another team | 1. As Omar create a task with Assign to Aisha 2. Try Layla (API) 3. As Aisha open the task | Aisha 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 completion | A task with a 3-item checklist | 1. Tick one item 2. Tick two 3. Move the slider to 100 / press Mark complete | 1 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 over | A weekly task due 9 Oct 2026; a monthly task due 31 Jan 2027 | 1. Mark the weekly task complete 2. Mark the monthly one complete | A 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 line | A task assigned to Aisha | 1. Start timer at 14:00 2. Stop at 15:30 3. Start a second task's timer while the first runs 4. Open Timesheets | Stop 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 hand | A task assigned to Aisha | 1. Log time hours 1.5 (and minutes 15 via API) 2. Hours 25 3. A date next week | 1.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 counts | Tasks open, due today, overdue, upcoming | 1. Open each tab 2. Search 'budget' 3. Filter priority High | Counts 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Balance card arithmetic | Annual leave ledger: accrual 30 this year, carry-over 5, 10 days used and started, 5 days approved and still ahead, 3 days pending | 1. Open Leave > Balances | Entitlement 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 types | A leave type taken in hours and a type that allows half days | 1. 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Live quote before submitting | Aisha has 20 days available; Fri 9 Oct 2026 and Sat/Sun are the next days | 1. Apply Leave, Annual leave, Mon 5 Oct to Thu 8 Oct 2026 2. Read the summary 3. Change to Fri 9 Oct only | Summary 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 leave | Quote is clean | 1. Submit request | Leave 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 |
| Refusals | Aisha already has approved leave 5-8 Oct | 1. 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 month | 1: '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
| Action | When | What you do | What happens |
|---|---|---|---|
| Withdraw a pending request | A pending request | 1. Withdraw 2. Enter a reason 3. Confirm | State Cancelled, held days released from Pending, linked request shows Cancelled, manager's queue entry disappears |
| Cancel approved leave that is still ahead | An approved request starting 12 Oct | 1. Request cancellation with a reason 2. Manager approves the cancellation 3. Check balance | A 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Own and team calendar | Omar has Aisha and Layla's colleague Hamad in his team | 1. As Aisha tick 'My colleagues' 2. As Omar tick 'My team' 3. Next month | Own 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
| Action | When | What you do | What happens |
|---|---|---|---|
| New request type picker | Aisha on Requests | 1. New request 2. Look at the types 3. Pick Leave | 21 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 validation | Any type | 1. 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 approval | An air ticket request (Manager then HR) | 1. Aisha submits 2. Omar approves 3. Hanan approves | State 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 reason | A request at the manager step | 1. 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 waiting | A request in Manager Review, one Approved, one Leave-linked | 1. Cancel the waiting one 2. Try to cancel the approved one 3. Try to cancel a leave-linked request here | 1: 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 schedule | Loan AED 6,000 over 12 installments raised and approved in October 2026 | 1. Approve through Manager, HR and Finance 2. Open Payroll > Loans & advances | A 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 rounding | Loan AED 1,000 over 3 installments | 1. Approve fully 2. Run and pay three payroll months 3. Look at Outstanding | Installment = 333.33; after three months repaid 999.99 and outstanding 0.01 (a fourth tiny deduction is needed) |
| Bank change takes effect on final approval | Bank change request with IBAN AE07 0331 2345 6789 0123 456 | 1. Approve at HR and Finance 2. Open Payroll > Salary and My Profile | State 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 approval | Aisha 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 approvals | The 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 effects | Approved requests of each kind | 1. Asset Return approved 2. Dependent 'Maryam Khan, Child, insured Yes' approved 3. Qualification approved 4. Training with a course approved | 1: 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 workflow | Self-service setup > Request workflows | 1. Change 'Loan' to Manager + Finance only 2. Aisha raises a new loan 3. Look at an older loan request | The 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 to | Aisha's manager Omar holds the permission; a second case where the manager has no login | 1. Raise an overtime request 2. Raise one for an employee whose manager has no login | Omar alone sees the first in his queue; for the second the step goes to the workspace administrators (never to the requester) |
Payroll > Payslips
| Action | When | What you do | What happens |
|---|---|---|---|
| Published payslips only | Sep payslip draft, Aug payslip published, Jul paid | 1. Open Payroll > Payslips | Only Aug and Jul are listed (draft is invisible); each shows Gross, Deductions, Net, Status, Paid on; newest first (up to 36) |
| Payslip detail, comparison, print | Aug net 10,612.69, Jul net 10,342.69 | 1. Open Aug 2. Read the net line 3. Print / PDF | Earnings 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 date | Three published months of 12,000 gross, 10,180 net | 1. Read the Year to date card | Months paid 3, Gross 36,000.00, Net 30,540.00 (sums of published and paid payslips of the current year only) |
Payroll > Salary
| Action | When | What you do | What happens |
|---|---|---|---|
| Contract breakdown and masked account | Active contract: Basic 8,000 + Housing 3,000 + Transport 1,000 | 1. Open Salary | Components 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Loan balances | Loan 6,000 with 3 installments of 500 paid | 1. Open Loans & advances | Principal 6,000.00, Monthly 500.00, Repaid 1,500.00, Outstanding 4,500.00; a settled loan shows Settled |
Payroll > WPS & insurance
| Action | When | What you do | What happens |
|---|---|---|---|
| WPS status and social insurance | UAE national and an expatriate employee, rules UAE v1 (employee 11%, employer 12.5%) | 1. Open WPS & insurance as the national 2. As the expatriate | National: 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Status and ordering | Passport valid, Emirates ID expiring in 20 days (alert 30), visa expired, labour card required but missing, a pending renewal | 1. Open Documents | Order: 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Renewal request with evidence | Emirates ID expiring | 1. Renew 2. Fill dates and reason, attach PDF 3. Send to HR 4. Try a second renewal | A 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Job, contract and probation view | Contract 1 Mar 2026, probation to 31 Aug 2026 | 1. Open Employment | Job card (position, grade, department, manager, FTE), contract facts, history, probation days remaining = probation end - today (0 once over) and confirmation status |
| Acknowledge, ask, request amendment | An active contract | 1. Acknowledge 2. Ask a question with no text 3. Ask with text | 1 recorded in Acknowledgements; 2 refused 'Say what should change or what is unclear.'; 3 recorded and HR gets a notice 'Contract clarification: <name>' |
Benefits
| Action | When | What you do | What happens |
|---|---|---|---|
| Benefits, dependents and requests | Medical plan, air ticket entitlement, one dependent | 1. Open Benefits 2. Request air ticket | Medical and other benefit cards, air ticket eligibility and entitlement, housing and transport from the contract, dependents with insured flag, last 20 related requests |
Expenses
| Action | When | What you do | What happens |
|---|---|---|---|
| Create a claim and add lines | Aisha on Expenses | 1. New claim 'Client visit - Abu Dhabi' 2. Add Meals 120.50 and Taxi 60.00 with purposes 3. Remove the taxi line | A 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 approval | A draft claim with lines and a business purpose | 1. Submit for approval | Claim 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 settlement | A submitted claim | 1. An approver (hr.expense.approve) approves 2. Finance settles | Approved then Settled; Payable to you shows the frozen figure after any advance; rejecting needs 'Say why it is being refused.' |
Timesheets
| Action | When | What you do | What happens |
|---|---|---|---|
| Log, edit and delete | Aisha on Timesheets | 1. 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 period | Mon-Fri week with logs on Mon-Wed only; today is Fri 2 Oct 2026 | 1. Open the week 2. Submit this period to my manager 3. Submit again | Thu 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Start and complete a course | Course 'Fire Safety' valid 12 months assigned to Aisha | 1. Start 2. Mark complete on 2 Oct 2026 | In 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Return an asset | Laptop L-0012 issued to Aisha | 1. Return 2. Details 3. Submit 4. Manager and HR approve | The 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Request, issue and print a letter | Default step: HR review | 1. Request a Salary certificate in English, purpose 'Bank loan' 2. Hanan approves 3. Aisha opens View / print | A 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 code | An issued letter | 1. Enter the code in Verify a letter 2. Enter a wrong code | Valid letter: number, type, date, employee name only; wrong code: 'No letter carries that code.' |
My Profile
| Action | When | What you do | What happens |
|---|---|---|---|
| Profile change request | Aisha's personal phone differs | 1. Request a change 2. Change Personal phone and add a reason 3. Send to HR 4. Send another while pending | Request 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 profile | Aisha on Profile | 1. Add a qualification 2. Change bank | Both open the request form and complete only after HR (and Finance for bank) approve |
My Team
| Action | When | What you do | What happens |
|---|---|---|---|
| Team list | Omar manages Aisha and Hamad, plus holds a leave delegation from Sultan | 1. 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Team attendance for a day | Aisha late, Hamad on leave | 1. Open Team Attendance 2. Pick yesterday 3. Click the 'Late' chip | Rows: Employee, Shift, In, Out, Worked, Late, Status; chip counts match the rows; the chip filters; a person on leave shows the leave name |
Approvals
| Action | When | What you do | What happens |
|---|---|---|---|
| The approval queue | Aisha has a pending leave (3 days, balance 20), an overtime request, a submitted timesheet week of 38 h | 1. As Omar open All Approvals 2. Open each tab | Leave 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 leave | A pending leave of Aisha | 1. Omar approves with a note 2. Another leave: reject with no note 3. Reject with a note | Approved: 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 week | Aisha submitted Mon-Fri week | 1. Approve 2. Another week: reject with no note 3. Reject with a note 4. Aisha edits and resubmits | Approved: 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 renewal | Aisha's pending profile change and renewal; Hanan holds hr.private.manage | 1. Hanan opens All Approvals 2. Approves both | Both 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Review a probation | Hamad's probation ends in 12 days | 1. Review 2. Rating 4, Recommendation Extend, comments 3. Send to HR 4. Open Update and send again | HR 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Expiry alerts without numbers | Team members with documents expiring | 1. Open Team Documents 2. Switch to All | Needs attention lists expired / expiring documents by the type's alert days (default 30) with days left; no document numbers anywhere |
Team Calendar
| Action | When | What you do | What happens |
|---|---|---|---|
| Team calendar | Team leave, an approved business trip, a scheduled course | 1. Open Team Calendar for the month | Shows team leave, approved business trips and scheduled training and the company holidays for that month |
Self-service setup
| Action | When | What you do | What happens |
|---|---|---|---|
| Create, edit and retire a master | Hanan holds ess.configure | 1. Work locations > New 'DXB-HQ' 2. Edit the radius 3. Remove it | Saved 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 company | Two companies | 1. 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-dated | The 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 2027 | Dec 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Generate drafts - the arithmetic | UAE 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 drafts | Hourly = 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 paid | Draft payslips for 2026-09 | 1. Publish 2. Aisha opens Payroll 3. Mark paid | Publish 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 closed | Sep payslips are paid | 1. Generate drafts for 2026-09 again | Paid payslips are skipped ('skipped_paid' counts them) and unchanged; the period shows Closed; unpublished drafts can be regenerated |
ESS feature switches
| Action | When | What you do | What happens |
|---|---|---|---|
| Turn Expenses off | Company admin on Apps > Employees > Features | 1. Turn 'Expenses, travel and company cards' off 2. Aisha opens Expenses and tries New claim | Menu 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 off | As above | 1. Turn 'Time off' off, then 'Time and attendance' off 2. Try Apply Leave, Check In, Log time | Leave 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
| Action | When | What you do | What happens |
|---|---|---|---|
| Hide a profile field and require a merchant | Fields: Personal email Hidden, Expense merchant Required | 1. Open the profile change form 2. Add an expense line with no merchant | Personal 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.' |