RSQ Omni: product spec
RSQ Omni is a bilingual (Arabic / English, full RTL) HR suite for Saudi and GCC companies. It runs on:
- Web: React (Next.js)
- Android: React Native (Expo)
- iOS: native SwiftUI with Liquid Glass
Each one has home-screen widgets, so people can check in and out without opening the app.
Brand: RSQ.sa colors and the HT Moshreq Pro typeface (see packages/design-tokens).
Feature baseline: co-hr.com, extended for the Saudi market.
1. Attendance & check-in / check-out
| Surface | How it works |
|---|---|
| App (iOS / Android / web) | Big clock button and running timer, today's total, and a weekly bar chart ("Progress" card) |
| iOS widgets | Small, medium and Lock Screen widgets with an interactive Check in / Check out button (App Intents) and a live Text(timerInterval:) counter |
| iOS Live Activity / Dynamic Island | The running shift timer, with a check-out button |
| iOS Control Center | An iOS 18+ ControlWidget toggle |
| Siri / Shortcuts / Action button | "Check in with Omni" |
| Android widget | Home-screen widget with a status chip, a Chronometer and a check-in/out button |
| Android ongoing notification | Foreground notification with a running chronometer and an action button |
| Android Quick Settings tile | One-tap toggle |
| Kiosk | A shared tablet shows a rotating QR code, and the employee scans it or enters a PIN |
- Time spent. Every surface shows the time worked since check-in and today's total, both computed server-side by
clock_status(). Widgets render it with system timers, so they don't need refreshing. - Offline. Clock events are queued on the device with an idempotency key and the client timestamp. The server accepts late events (flagged if more than 15 min late) and de-duplicates them.
- Breaks. Shown as
break_start/break_endevents. Policies can make breaks paid or unpaid.
2. Custom hours
- Shift templates:
- fixed: 09:00–17:00.
- flexible: core hours (e.g. 10:00–14:00) plus a daily target (e.g. 8h).
- split: two blocks.
- overnight: 22:00–06:00.
- open: target hours only, no clock window.
- Rosters. Weekly patterns, rotating rosters (e.g. 4 on / 3 off), and per-day overrides.
- Assignments. Assigned to an employee, a department, or a site, with a date range. The most specific one wins: employee > department > site > org default.
- Rules. Grace period, early check-in window, auto check-out after N hours, minimum break, and a weekly target.
- Overtime. Rate multiplier (Saudi Labor Law default 150%), daily and weekly thresholds, and an approval workflow.
- Ramadan preset. A 6-hour day for Muslim employees, applied automatically between configurable Hijri dates.
- Weekend and holidays. The weekend defaults to Friday–Saturday and is configurable. There are Saudi public holiday calendars (Founding Day, Eid al-Fitr, Eid al-Adha, National Day), and you can add your own holidays.
3. Geolocation policies
Policies are set per org default, site, department or employee:
| Mode | Behavior |
|---|---|
strict |
Check-in is rejected unless the employee is inside a site geofence (or on site Wi-Fi when required) |
flexible |
Location is recorded. Outside the fence, the event is accepted but flagged for manager review |
off |
No location is collected. For remote and field staff |
- Sites are a centre point plus a radius (meters), or a polygon (PostGIS
geography). An employee can be allowed at several sites. - Accuracy. Fixes with accuracy worse than the threshold (default 150 m) are handled as "unknown" (flagged, or rejected in strict mode).
- Optional checks.
- Wi-Fi BSSID allow-list.
- Selfie capture.
- Mock-location detection on Android (
isFromMockProvider). - Jailbreak/root heuristics.
- Privacy (PDPL). Location is captured only at the moment of the clock event, with no background tracking. The one exception is optional geofence-entry reminders, which run on-device.
4. Notifications
- Channels: push (APNs / FCM), in-app inbox, email, and later WhatsApp.
- Events:
- Shift starts in 10 min.
- Arrived at a site but not checked in (on-device geofence).
- Missed check-out.
- Approvals: leave, overtime, flagged attendance.
- Payslip ready.
- Document or iqama expiring.
- Birthdays and work anniversaries.
- Announcements and DMs.
- Preferences per user and per category, with quiet hours. The Bell in the top nav opens the inbox.
5. Direct messages
- 1:1 and group DMs, with auto-created department and site channels.
- Text, images, files (Supabase Storage), and replies.
- Read receipts and typing indicators (Realtime presence).
- Message retention policy per org. Admin export for legal hold.
6. SSO & authentication
- Email magic link / OTP and password.
- Sign in with Apple and Google.
- SAML 2.0 SSO through Supabase Auth: Microsoft Entra ID, Google Workspace, Okta, OneLogin. Typing an email domain routes the user to the right IdP.
- Later: SCIM user provisioning and Nafath.
- MFA (TOTP) can be required by an org policy.
7. Invites & joining
- Org join code. An 8-character code (no ambiguous characters) plus a QR. It can have:
- a preset role and department
- an expiry
- a max uses
- revocation at any time
- Email invites. Sent as a magic link.
- Domain auto-join. Anyone with a verified company email can join (optionally after admin approval).
- Approval queue. Optional for code joins.
8. People & HR file (from co-hr.com and the design)
- Directory. Table and card views, with filters: department, site, lifecycle, status, entity. Columns can be configured, and the list exports to CSV/XLSX.
- Employee profile. Personal details, job, contract, salary, documents, devices, statistics (business trips, sickness), and birthday.
- Saudi fields.
- National ID or iqama number and expiry.
- Passport.
- Nationality: Saudi or non-Saudi, which drives Nitaqat.
- GOSI registration.
- Bank IBAN for WPS.
- Document vault (GED). Contracts, CVs and certificates, with versioning and expiry tracking.
- Generated documents. Contracts, salary certificates, experience letters and NOCs, in both languages, with e-signature.
- Onboarding / offboarding. Checklists with tasks (shown as "Onboarding Task 2/8" in the design).
- Medical. Visits and medical insurance class.
- Org chart.
- Lifecycle. Invited → Hired → Employed → Notice → Exited.
- Import. CSV import for employees, contracts and absences.
9. Time off & calendar
- Leave types following the Saudi Labor Law defaults:
- Annual: 21 days, rising to 30 after 5 years.
- Sick: tiered pay.
- Hajj, marriage, bereavement, maternity, paternity, exam.
- Balances, accruals and carry-over.
- Requests go to a manager and then HR for approval.
- Team calendar. Leave, birthdays, holidays and schedule, shown as the Calendar page and the Schedule card.
10. Salary & payroll
- Salary calendar. For each employee and month, shows worked hours / pay, truancy hours, vacation hours, and day chips (as on the design's Salary page).
- Payroll.
- Salary components: basic, housing, transport, allowances, deductions.
- Variables collected from attendance: overtime, absence, lateness.
- Payroll runs with an approval step.
- Payslips. Digital and bilingual, delivered in the app.
- Saudi exports.
- WPS / Mudad SIF file.
- GOSI contributions (Saudi 9.75% + 11.75% / non-Saudi 2% employer). Rates are configurable.
- EOSB (end-of-service benefit) calculator.
- Loans and salary advances, and expense claims.
11. Devices (from the design)
- Asset register (MacBook Pro ×2, iPhone 16 Pro ×4…), with assignment to employees.
- Session history: device, user, time and city, plus a Map Session world map.
- Security status score (Medium / High risk), based on OS version, passcode, encryption and stale sessions.
12. Hiring (ATS)
- Job openings and a candidate pipeline (Kanban), with interview scheduling.
- Hiring statistics chart, and the Interviews / Hired KPIs on the dashboard.
13. Reviews & engagement
- Review cycles: self, manager and 360. Goals and OKRs.
- Pulse surveys, eNPS and kudos.
- Announcements.
14. Apps & integrations
- Calendar sync: Google and Microsoft 365.
- Slack and Teams notifications.
- Accounting export: Odoo, Zoho, QuickBooks.
- Webhooks and a public API.
15. Dashboard (from the design)
- KPI pills: Interviews, Hired, Project time, Output.
- Big numbers: Employees, Hirings, Projects.
- Cards:
- Schedule
- Salary table
- Attendance Report (dot grid)
- Hiring Statistics
- Employee Composition (gender donut)
- Progress (weekly hours)
- Time tracker ring
- Onboarding
16. Suggested additions
- Saudi compliance pack:
- Nitaqat / Saudization ratio widget
- Qiwa contract sync
- Muqeem iqama expiry alerts
- PDPL consent records and an audit log
- Omni AI assistant.
- Answers employees' questions about HR policy, in Arabic or English.
- Explains a payslip line by line.
- Flags anomalies such as buddy-punching patterns, overtime spikes, and payroll deltas.
- Drafts letters.
- Self-service letters: salary certificate, experience letter, bank letter.
- Project timesheets: hours logged against projects, which feed the "Project time" KPI.
- Kiosk mode for factories and retail.
- Billing: Moyasar / Tap (mada, Apple Pay) plus Stripe for international customers.
17. Saudi essentials (benchmarked against Jisr and Mal HR, see MARKET.md)
Violations and penalties engine. Lateness, absence, early leave and missing punches are matched against the company's Work Regulations penalty schedule (لائحة تنظيم العمل), escalating by repetition. The engine produces:
- an automatic deduction or a warning (إنذار), which the employee acknowledges as read
- an audit trail
Self-service requests (10+ types):
- missing punch / permission (استئذان)
- leave
- business trip
- salary certificate (تعريف بالراتب)
- data update
- advance
- expense
- document request
- custody return
- resignation
Every request runs through a configurable approval chain (direct manager › department head › HR › finance, with conditional steps).
Letters and forms. Bilingual templates (salary certificate, experience letter, NOC, contract, warning) with merge fields, PDF output and e-signature.
Decisions (القرارات). Transfer, promotion, salary change, deduction and termination. Each is approved through a chain, and once effective it updates the employee record and payroll automatically.
Circulars (التعاميم). Targeted to the company, a department, a site or a person, with read tracking and push delivery.
Custody (العهد). Assets and cash custody, with handover and return dates, history, and return on offboarding. This merges with Devices.
Leave rules. Saudi leave types:
- annual: 21 days, or 30 after 5 years
- sick: 30 days full pay, 60 days at 75%, 30 days unpaid
- maternity, paternity, Hajj, marriage, bereavement, iddah, exam
- unpaid
Leave also supports accrual linked to the contract, carry-over, leave settlement (cash-out), and compensatory leave in exchange for overtime.
Working periods. Ramadan and summer hour presets, an automatic KSA holiday calendar, and a check that shifts respect rest-period rules.
Payroll groups. Group by nationality (Saudi or resident), project or cost center, entity, or wage type (fixed, hourly). Multi-entity runs from one account.
Government:
- Mudad WPS file
- GOSI contributions with discrepancy flags
- Saned
- Muqeem: iqama, exit/re-entry visas, expiry alerts
- Qiwa contracts and Nitaqat band
Jisr lists Qiwa as "coming soon", so Omni has a chance to ship it first.
Advances and allowances. Installment schedules, postponing a single installment, ticket and other allowances, and automatic posting to payroll.
Attendance devices. A biometric device bridge (ZKTeco and similar) that writes punches as
source = device, alongside app, widget and kiosk check-ins.Migration. An import wizard (Excel, or exports from Jisr / Mal HR) including history.
Hosting. Data hosted in KSA, required for PDPL and to match competitors.
Lead-gen tools on omni.rsq.sa: free end-of-service, Nitaqat, net-salary/GOSI and overtime calculators.
18. Plans
The Crextio design showed flat USD pricing. The Saudi market prices per employee per month in SAR (Mal HR: 10–17 SAR), so Omni follows that:
| Plan | SAR / employee / month | Includes |
|---|---|---|
| Omni Time | 9 | Attendance: every check-in surface including widgets, geofence policies, custom hours, device bridge, invites |
| Omni Core | 13 | + leave, self-service, letters, payroll, Mudad WPS, GOSI, EOSB, violations, custody, approval chains |
| Omni Pro | 16 | + Muqeem, Qiwa/Nitaqat, decisions, warnings, circulars, advances, multiple payrolls, performance, DMs, SSO |
| Omni Enterprise | Quote | + ATS, surveys, workforce planning, AI assistant, ERP integration, multi-company, dedicated KSA hosting |
- Minimum 10 employees.
- 14-day free trial.
- Annual billing is 15% cheaper.
- Billing through Moyasar or Tap (mada, Apple Pay), with ZATCA e-invoices.