TahiyyaتحيةFeature map
Everything in the spec, and where it stands
Each line is one feature from the spec. Tap a feature to open its live screen or its sample screen.
Live287built and working in this prototype (of which partly built: 25)Sample3clickable mock screen; built during the pilotComing soon25on the roadmap; "Coming soon" mock screen
VOICE
AI Voice Agent
Live 23Sample 0Coming soon 2
- VOICE-01Answer calls routed from the hotel PBX over a private SIP trunk, from whatever the hotel uses: a short code or extension, or a labelled guest-services button with an icon (each hotel differs; "3" was only an example). The key is a per-hotel setting shown to guests ("Press {key} on your room phone")MVPLive
- VOICE-02Identify the room from the caller extension. Greet the guest by title + surname when known (see VOICE-20 rules) · Owner 2026-10-12 (answers workbook, Q-128): greeting uses the actual guest staying in the roomMVPLive
- VOICE-03Bilingual greeting and language choice (English / Arabic incl. Saudi dialects). Auto-detect if the guest just speaks. Handle code-switchingMVPLive
- VOICE-04Understand free-form requests and map them to the property's request catalogue (items, quantities, services)MVPLive
- VOICE-05Read back and confirm, with an ETA, before creating any ticketMVPLive
- VOICE-06Split a multi-request call into tickets across departmentsMVPLive
- VOICE-07Instant transfer to a human on request, on low confidence, or on emergency keywords. The guest can always press 0MVPLive
- VOICE-08Fail-safe: if the AI is unavailable, the call falls back to the human line within 5 sMVPLive
- VOICE-09Frustration/urgency scoring on every call → auto-escalate to Guest Relations / Duty Manager with a recovery playbookMVPLive
- VOICE-10Answer common questions from the property knowledge base (pool hours, breakfast, Wi-Fi, prayer room, Qibla, checkout)MVPLive
- VOICE-11Transcript + summary attached to tickets. No audio kept by default. Retention policyMVPLive
- VOICE-12Remember the guest's language and frequent requests for the stay: after the first call the stay keeps the language; the next call opens in it with "English / عربي" to switch; the guest can change language at any momentMVPLive
- VOICE-13Outbound follow-up ("Did you receive your towels?")P2Partly built
- VOICE-14IRD/food ordering with menu, modifiers, allergens, halal info, suggestive upsell · Owner 2026-10-12 (answers workbook, Q-145, Q-157): the executive chef owns allergen confirmation; allergy data goes only to a local or KSA modelP2Live
- VOICE-15Wake-up calls with escalation (no answer after 2 tries → staff check)P2Live
- VOICE-16More guest languages (Urdu, Hindi, Indonesian/Malay, Turkish, French, Chinese, Russian…) · Owner 2026-10-12 (answers workbook, Q-159): remaining guest languages are built last, towards the end of the build, after the staff languages; each with a native reader (Q-158)P3Live
- VOICE-17Same agent on WhatsApp / web chat / in-room QRP3Coming soon
- VOICE-18Configurable persona per property/brand (voice, name, tone, honorifics) · Owner 2026-10-12 (answers workbook, Q-120): voice per hotel (vendor, voice id, voice name) as a setting with a preview line; picking real voices needs the paid ElevenLabs account; a how-to is written laterP2Live
- VOICE-19AI and recording disclosure at call start in AR/EN ("You're speaking with the hotel's digital assistant…"), with a human optionMVPLive
- VOICE-20Privacy-safe greeting rules: title + surname only; only when one reservation is in the room; honour incognito/VIP privacy flags; otherwise "Marhaba, room 1204". Never guess a nameMVPLive
- VOICE-21Never accept card numbers by voice. Charges go to the room only. Digits are redacted from transcriptsMVPLive
- VOICE-22After-hours / overflow answering on the operator line (the telephone-operator role is now 100% Saudized and costly to staff 24/7)P2Coming soon
- VOICE-24Questions the assistant couldn't answer: a guest question the knowledge base does not cover is noted (no guessing), the guest is offered a colleague, and the GM sees today's questions grouped and counted to fill in the hotel informationMVPLive
- VOICE-25Warm hand-over for the operator: when the assistant transfers a call (guest presses 0, asks for a person, emergency, complaint, or it is unsure), the desk sees who is calling, the language, why, a one-line summary and what was already done (requests with references) before picking upMVPLive
- VOICE-26Scripted call check: a text-only run of scripted Arabic and English calls (request + read-back + ticket, hotel question, unknown question, hand-over) against the demo before every presentation, pass/fail per stepMVPLive
GUEST
Guest Channels (room phone · TV · QR on the guest's own phone)
Live 23Sample 0Coming soon 5
- GUEST-01QR guest web app: per-room QR (tent card, TV screen, key-card sleeve, bathroom mirror sticker). Opens in the browser, no download or account. AR/EN auto-detectedMVPLive
- GUEST-02Secure room binding: a printed room QR allows only low-risk requests (towels, cleaning, maintenance), checked against room occupancy. Orders that charge money need a per-stay token (dynamic QR on the TV or link) or a surname + room check, revoked at checkout. Rate limits stop pranksMVPLive
- GUEST-03In-room dining ordering via QR: menu with photos, AR/EN, allergens/halal info, modifiers, availability by time, order trackingMVPLive
- GUEST-04Housekeeping & amenity requests via QR: towels, water, pillows, prayer mat, baby cot, extra cleaning, "make up room now" / "DND today", turndown timeMVPLive
- GUEST-05Maintenance reports via QR with optional photo ("AC not cooling", "TV remote broken")MVPLive
- GUEST-06Live status tracking: "Received → On the way → Delivered", with ETA, on QR/TV. Rate the service afterMVPLive
- GUEST-08TV channel, low-friction path: the TV welcome screen shows the room's QR code ("Scan to order or request"). Every major TV system lets the hotel's integrator upload an image, with no vendor deal. *Brand hotels (Marriott/Hilton) control TVs through approved vendors, so this needs brand approval there* · Owner 2026-10-12 (answers workbook, Q-128): uses the actual guest staying in the roomMVPLive
- GUEST-09TV channel, vendor partnership: a dynamic per-stay QR on the TV, and orders/requests placed in the TV vendor's own menu (e.g. Hoteza, Nonius, Samsung LYNK Cloud) flow into our tickets through their published interfaces. Start with the 1–2 TV vendors most common in the client's hotels. *We do not build our own TV apps:* LG's developer kit is partner-only under NDA and every platform differsP2Coming soon
- GUEST-10TV platform adapters: one per TV vendor, behind our interface (like the Integration Ladder)P2Coming soon
- GUEST-12Other services from any channel: late checkout request, wake-up call, taxi/valet "bring my car", spa booking request, luggage pickup, laundry pickup, feedback/complaint · Owner 2026-10-12 (answers workbook, Q-60): the old "late check-out" quick link (?dept=late) opens "More services"P2Live
- GUEST-13Hotel info hub: Wi-Fi, prayer times & Qibla, breakfast/pool hours, local guide, emergency info (AR/EN)MVPLive
- GUEST-14Upsell placements in QR/TV menus (late checkout, room upgrade, spa, F&B specials), tracked by RM-01P2Live
- GUEST-15Coexistence with brand apps (Bonvoy, Hilton Honors, IHG One, ALL): our QR is the *in-stay service* layer for everyone (especially non-members & groups); never collects loyalty logins; staff can log requests that arrive via brand apps into our queue so nothing is tracked twiceMVPLive
- GUEST-16Channel analytics: requests by channel (phone vs TV vs QR), conversion, time-to-fulfil, per property · Owner 2026-10-12 (answers workbook, Q-111): anonymous count of guest-page opens per room per day and an open-to-request rateP2Live
- GUEST-17Accessibility: large text, high contrast, screen-reader labels; TV menus usable with arrow keys onlyMVPLive
- GUEST-26Local weather on the guest home (next to the prayer row) and on the hotel-side screens (FO Today header, GM headline), per property city; free source without a key (Open-Meteo), cached hourly; Celsius, bilingual condition textMVPLive
- GUEST-18Rate each service after it is delivered (1–5 + optional comment, AR/EN) from the QR page, TV or tablet; low scores open a GR ticket automaticallyP2Live
- GUEST-19Digital tipping: guest tips the hotel team or a specific service through a hosted payment page (mada / Apple Pay / card; card data never touches us). Needs the hotel's gratuity-distribution policy and a payout process; see GUEST-11 (rejected for *orders*, tipping is a different case)P3Coming soon
- GUEST-20Staff recognition profiles: after a service, the guest sees the first name, photo and role of who served them and can thank, rate, tip (GUEST-19) or complain about that person. Compliments feed HR-21; complaints feed GR-01. Needs staff consent, Saudi PDPL handling of staff photos, and the fairness rules in HR-11 (no individual league tables for peers) · Owner 2026-10-12 (answers workbook, Q-67, Q-30): per-hotel display options for staff shown to guests: initials (default), first name, first name + last initial, full name, optional photo, each needing a consent record per person (hotel collects it); Q-30 stands: compliments only, rating and complaining about a person is not in the pilotP3Live
- GUEST-21In-room tablet mode: the same guest app on a wall/desk tablet (kiosk mode, bigger layout, auto-reset at checkout, no login). Everything in GUEST-01…17 works there with no extra integrationP2Live
- GUEST-22Room controls from the tablet: lights, curtains, temperature, music, TV, streaming apps, casting. Done through the hotel's guest-room-management and TV systems (e.g. INNCOM/Honeywell, Interel, Lutron, Schneider; Samsung LYNK, LG Pro:Centric; Google Cast for hotels) behind our adapter interface, like the Integration Ladder. *Hardware programme; never required for the service features*P3Coming soon
- GUEST-23Hotel chauffeur / limo booking from any channel: pick-up time, destination, car class, price shown, confirmation and driver ETA; becomes a Transport ticket. Fleet, driver app and dispatch board are TRN-04P2Live
- GUEST-24Concierge help: ask the concierge (typed chat or voice) for restaurant choices, events, tours and bookings; the AI answers from a curated local guide and hands over to the concierge desk for bookingsP2Live
- GUEST-25Post-stay window: the guest's link / QR keeps working for complaints, ratings and tips for 7 days after checkout (per-stay token with a grace period; no new requests after checkout)P2Live
- GUEST-27Hotel notices to guests: planned works, pool or gym closures, security notices; the AI drafts a notice from open work orders and closures into an outbox for the manager in charge to approve, edit, or set to auto-send; shown on the guest page and tablet (AR/EN) with auditMVPLive
- GUEST-28Bookings and confirmations: spa, restaurant, concierge and transport bookings made for the guest appear on the guest page with a confirmation and a "be there by" countdown; whatever the concierge books is confirmed to the guest as proof · Owner 2026-10-12 (answers workbook, Q-61): the spa request shows "Requested" until the spa desk confirms, then "Confirmed by the hotel"MVPLive
- GUEST-29Opt-in offers: a guest who installs the hotel's web app (from the browser, no store) can opt in to offers; the hotel sends offers through the app only, never to the inbox, with one-tap opt-out (PDPL) · Owner 2026-10-12 (answers workbook, Q-137): the in-app offers screen follows the sales module switch; DPO review before a pilotP2Live
- GUEST-30Mobile key (phone as room key): issued by the hotel's lock vendor (ASSA ABLOY Mobile Access/Vostio, dormakaba, Salto) as Bluetooth/NFC or Wallet keys; Tahiyya triggers issue-when-room-ready and revoke-at-checkout through the vendor's API. Partner integration, not a key we buildP3Coming soon
REQ
Requests & Tickets Engine
Live 13Sample 0Coming soon 0
- REQ-01Unified ticket model (type, dept, room/location, items, qty, priority, SLA, channel, status history)MVPLive
- REQ-02Routing: department → area/floor → staff on shift → pool fallbackMVPLive
- REQ-03Real-time push to the assignee (sound/vibration in background). Push payload carries IDs only, no guest namesMVPLive
- REQ-04Status flow New → Accepted → In progress → Done → (Verified), with timestamps + actorMVPLive
- REQ-05SLA timers per request type + escalation ladder (user-flows Flow 5)MVPLive
- REQ-06Manual ticket creation by any staff in ≤ 3 taps with a quick-pick catalogueMVPLive
- REQ-07Request catalogue per property: items, EN/AR synonyms (incl. dialect), dept, SLA, limits, display order (owner 2026-10-04: Quran first, prayer mat second in Towels & amenities). Includes Saudi items: prayer mat, Quran, Qibla direction, baby cot, dates/Arabic coffeeMVPLive
- REQ-08Guest closure confirmation (configurable)P2Live
- REQ-09Re-assign, shift hand-off, comments, photos on ticketsMVPLive
- REQ-10Duplicate detection & mergeP2Live
- REQ-11Smart auto-assignment by workload, proximity, skill, language and gender policy · Owner 2026-10-12 (answers workbook, Q-128, Q-129): dispatch gender level 2 uses the actual guest staying in the room (a new field, because someone else may book the room); front desk may assign requests, every assignment loggedP2Live
- REQ-12Recurring/scheduled requests (daily water, turndown at 8pm)P2Live
- REQ-13IT ticket type (Wi-Fi, TV casting, in-room tech) routed to ITMVPLive
HK
Housekeeping Operations
Live 16Sample 0Coming soon 1
- HK-01Live room board: VD/VC/OD/OC/OOO/DND/Inspected, by floorMVPLive
- HK-02Room assignment: credit-based fair allocation (checkout 1.0 / stayover 0.5 / suite 2.0, configurable), drag-drop override, floor/wing routingMVPLive
- HK-03Room entry/exit timestamps with who entered (tap, QR or NFC at door)MVPLive
- HK-04Dynamic checklists by room type & clean type (departure, stayover, VIP, deep clean, turndown), with pictogramsMVPLive
- HK-05Cleaning timer with target per clean type. Gentle cues. Supervisor sees overrunsMVPLive
- HK-06DND / refused service / "service later" with timed retriesMVPLive
- HK-07Supervisor inspection: pass/fail per item, return with notesMVPLive
- HK-08Arrival-driven prioritisation: early check-ins, VIPs and groups re-order queues in real time. FO sees a "ready ETA"MVPLive
- HK-09Digital lost & found: photo + AI description, auto-match to guest calls, storage tagP2Partly built
- HK-10Minibar consumption capture (PMS posting when integrated)P2Partly built
- HK-11Linen & amenity par levels per floor closet, loss tracking, low-stock alertsP2Live
- HK-12Attendant performance (rooms/shift, avg time, first-pass %), framed as coaching and kept privateMVPLive
- HK-13Public-area cleaning rounds with checkpoint scansP2Live
- HK-14Gender- and privacy-aware assignment (female staff only, no entry during prayer/rest, family sensitivities) · Owner 2026-10-12 (answers workbook, Q-128): housekeeping gender preference uses the actual guest staying in the roomMVPPartly built
- HK-15Inspection sampling driven by AI score (consistently high scorers are inspected less)P2Coming soon
- HK-17Housekeeping inventory: stock per floor closet and main store (linen, amenities, chemicals, minibar), issue/return by attendant, consumption per occupied room, par levels and low-stock alerts, monthly count with variance, reorder list export (supplier-agnostic). Supersedes HK-11P2Live
- HK-18Refillable amenity dispensers (shampoo, conditioner, body wash, lotion, hand soap): per room type the hotel chooses single-use, refillable (top-up from bulk) or sealed cartridges (pump swapped, not refilled); the room checklist gets one line per dispenser with a level tap (Full / ¾ / ½ / ¼ / Empty) and "Refilled" below the hotel's refill level (rule with a sourced default); usage in ml or cartridges per occupied room-night, per floor and per attendant; bulk cans (litres) or cartridges in the main store and floor closets with par levels, low stock, monthly count and reorder (HK-17); unusual use on AI-02; "dispensers low" on the room board and inspectionP2Live
INSP
AI Room Inspection & Quality
Live 6Sample 0Coming soon 2
- INSP-01Guided after-clean photos at fixed angles per room type, in-app camera only, timestamped. "Before" photos only for departure rooms or defectsMVPLive
- INSP-02Gold-standard reference photos per room typeMVPLive
- INSP-03AI checklist verification (bed made, towels, amenities, visible debris) → pass/fail/uncertain per item + overall score. Assistive: the supervisor confirms · Owner 2026-10-12 (answers workbook, Q-133, Q-139): automatic photo check only with a local or KSA-hosted vision model; the supervisor's "Check photos" button always available; verdicts kept 12 monthsMVPPartly built
- INSP-04AI damage suggestion (stain, crack, broken fixture) → one-tap work orderMVPPartly built
- INSP-05Privacy guardrails: occupied-room mode (defect photos only, warn/block wide shots), on-device blur of people/documents/personal items, no gallery import, retention limits, access loggingMVPLive
- INSP-07Calibration loop: supervisor agree/disagree improves prompts/rules; accuracy tracked per room typeP2Coming soon
- INSP-08Auto-pass when AI confidence is high + random spot checks (only after calibration proves accuracy)P3Coming soon
- INSP-09Room condition history per room (asset/owner reporting) · Owner 2026-10-12 (answers workbook, Q-106, Q-107): owner access to room photos follows the owner-access setting (Standard: none; Extended: with every opening logged)P2Live
ENG
Engineering & Maintenance
Live 12Sample 0Coming soon 0
- ENG-01Work orders from any source (guest call, staff, AI inspection) with photo, location, category, guest-impact priority (e.g. occupied-room AC/leak = P1, 15-min response)MVPLive
- ENG-02Technician mobile flow: accept → start → parts/time → after photo → doneMVPLive
- ENG-03Supervisor verify; Out-of-Order tracking; return to serviceMVPLive
- ENG-04Operations Manager oversight queue by age, priority, revenue impactMVPLive
- ENG-05Preventive maintenance schedules (AC filters, chillers, water heaters, fire equipment) · Owner 2026-10-12 (answers workbook, Q-65): one push a day to the technician on shift at shift startP2Live
- ENG-06Asset register with QR tags + historyP2Live
- ENG-07Parts inventory & purchase requestsP3Live
- ENG-08Guest-caused damage flag → front office charge decisionP2Live
- ENG-09Energy/utility logging and "conditioned while vacant" alertsP3Partly built
- ENG-10Repeat-fault detection (2+ similar tickets in 30 days on a room or asset)P2Live
- ENG-11Room quarantine: rooms with open P1/P2 defects flagged "do not assign" to FO (PMS OOO sync when integrated)MVPLive
- ENG-12Contractor/AMC and civil-defence certificate expiry trackerP3Live
FB
Food & Beverage / In-Room Dining
Live 6Sample 0Coming soon 1
- FB-01Item requests from F&B (plates, cutlery, ice, kettle, tray pickup) via the ticket engineMVPLive
- FB-02IRD digital menu (EN/AR, photos, availability by time, allergens, halal info)MVPLive
- FB-03Order → kitchen ticket → cook → dispatch → delivered → tray-collection ticketMVPLive
- FB-04Ramadan mode for IRD: suhoor/iftar menus, timing, demand forecastP2Live
- FB-05Post charges to the folio (needs INT Level 4)P3Coming soon
- FB-06Banquet BEO change alerts · Owner 2026-10-12 (answers workbook, Q-91): the banquet captain / sales coordinator may enter banquet orders (research first whether roles can be merged)LaterLive
- FB-07Kitchen HACCP / temperature checklists with photo evidenceP3Live
GR
Guest Relations & Complaints
Live 10Sample 0Coming soon 0
- GR-01Complaint tickets: severity, category, SLA, owner, timeline (from voice, staff, or survey)MVPLive
- GR-02Service-recovery playbooks by category, with an empowerment matrix (who may give what compensation) + approvalsMVPLive
- GR-03Pre-checkout satisfaction check for guests who had issuesP2Live
- GR-04VIP / sensitivity handling: tiers (royal/government/business/celebrity), protocol titles (e.g. Sumuw, Ma'ali), arrival checklists, discreet modeP2Live
- GR-05Guest preference memory (with consent): pillow, temperature, dietary, honorific, language, gender-of-staff preferenceP2Live
- GR-06Root-cause tagging + trend reports (property and portfolio taxonomy)P2Live
- GR-07Recovery-to-review loop + AI-drafted AR/EN review responses (human approves)P2Live
- GR-08"Silent guest" detection: many tickets, long waits or a negative tone, but no complaint → proactive outreachP2Live
- GR-09Concierge request catalogue (transport, Umrah transport, desert trips, event tickets) with partner commission trackingP3Live
- GR-10Complaint intake from the guest's own phone during the stay and up to 7 days after checkout (GUEST-25), with category, severity, photo, and the empowerment matrix in GR-02 for recoveryP2Live
FO
Front Office & FO Manager Toolkit
Live 21Sample 0Coming soon 1
- FO-01Log walk-up / phone requests for any department in ≤ 3 taps; for the guest: the ticket is made for the guest's room, and the guest's QR page shows it live as "added for you by the front desk"MVPLive
- FO-02Room readiness board: arrivals vs. rooms ready, with live HK ETA (pairs with HK-08)MVPLive
- FO-03AI-call hand-off inbox (transfers arrive with summary, language, sentiment)MVPLive
- FO-04Daily guest list upload (CSV/Excel export from PMS), the Level-0/2 bridgeMVPLive
- FO-05Bilingual "next best action" scripts for new agents (check-in, upsell, de-escalation, VIP protocol) · Owner 2026-10-12 (answers workbook, Q-70): a confirm step before assigning a suggested roomP3Live
- FO-06Pre-arrival confirmation collecting ETA, preferences, honorific, gender-of-staff preference · pre-arrival e-mail through INT-07P3Live
- FO-07Arrivals command centre: today's arrivals with VIP flags, early check-ins, special requests, room readiness, repeat-guest notes and pre-assignment suggestions in one viewMVPLive
- FO-08Early check-in / late checkout queue: requests (from voice agent, desk, email) with HK/ENG impact shown and a check against the MoT 20-hour minimum-stay rule (verify); FO Manager approves in one tap; the guest is notified · Owner 2026-10-12 (answers workbook, Q-98, Q-146): standard checkout 12:00, minimum stay 20 hours and the free extension to 14:00 are per-hotel rules; an accepted late check-out beyond the free cut-off opens this decision automaticallyMVPPartly built
- FO-09Room move workflow: one action creates HK (clean both rooms), luggage (bell) and ENG (if fault-driven) tasks, and updates the voice agent's room → guest mappingP2Live
- FO-10Group & pilgrim-group arrivals: rooming-list import, pre-keyed rooms checklist, group-leader contact, Haram shuttle link · Owner 2026-10-12 (answers workbook, Q-119): the group-leader message (shuttle time, hotel contact) goes by e-mail through INT-07 with a consent flag; WhatsApp or SMS after INT-06P2Live
- FO-11FO Manager KPI dashboard: check-in time, lobby wait, calls answered/abandoned, % of calls handled by AI, desk complaints, upsell conversion, early-check-in fulfilmentMVPLive
- FO-12Auto-generated FO reports: morning flash and end-of-shift/night summary (arrivals, departures, in-house VIPs, incidents, open issues), AI-written in EN/AR · Owner 2026-10-12 (answers workbook, Q-58): flash and night summary go to the GM and FO manager by e-mail at 07:00 and 23:30, are saved in the shift logbook and also shown in the appP2Live
- FO-13Desk upsell tracking per agent, with incentive calculation (links RM-03)P2Live
- FO-14FO opening/closing & shift checklists (bilingual staff present, float checked, Shomoos registrations completed\*) inside the shift logbookMVPLive
- FO-15AI agent coaching: after-shift feedback on calls and complaint handling (tone, script adherence, missed upsell) and a training mode for new agentsP3Live
- FO-16Guest messages, parcels & deliveries log with notify-guest and hand-over proof · Owner 2026-10-12 (answers workbook, Q-57): photo optional by default, required for items marked "valuable" (new valuable flag)P2Live
- FO-17Concierge/taxi/transport request board shared with bell & valet (links TRN-01)P2Live
- FO-18Wake-up call board (set by guest via voice agent or by desk) with escalation (links VOICE-15)P2Live
- FO-19Desk staffing view: who's on shift, breaks, language coverage; schedules come from HR-03MVPLive
- FO-20Night-audit exceptions board: unposted charges, open compensation, occupied-not-cleaned rooms, no-show/late-checkout exceptions (shares FIN-01) · Owner 2026-10-12 (answers workbook, Q-96, Q-76): hotel day starts at 03:00 by default (was 06:00), asked at hotel setup; the board keeps showing "last night is not closed yet" after the date rolls; one line of the closed night goes into the GM daily briefP2Live
- FO-21Regulatory checklist view: Shomoos registrations, national tourism data platform submissions, ZATCA e-invoice status. Reminders only, no integration · Owner 2026-10-12 (answers workbook, Q-75): the five compliance reminder times are per-hotel settingsP2Live
- FO-22Self check-in kiosk with key dispensing (airline style): vendor hardware with a key encoder; needs the PMS connection (INT-05) and Saudi identity checks (Nafath/Absher, Shomoos). Tahiyya provides the room-ready and key-ready triggers and the guest screens (with FO-06); hardware and ID verification are partnersP3Coming soon
XC
Cross-department Operations
Live 9Sample 0Coming soon 0
- XC-01Digital shift logbook + AI handover summary (auto-compiled from open tickets, incidents, VIPs; acknowledged per dept)MVPLive
- XC-02SOP & brand-standards audit templates (brand, MoT, internal) with photo evidence → corrective ticketsP2Live
- XC-03Seasonal operating modes: Ramadan, Hajj/Umrah, Eid, Riyadh Season (shift templates, SLAs, prayer-time awareness) · Owner 2026-10-12 (answers workbook, Q-92): research how Saudi employers record reduced Ramadan hours and build it; until then the yes/no "reduced hours" mark (not religion)P2Live
- XC-04Predictive staffing (tickets, HK credits, IRD covers per hour from occupancy + events + Hijri calendar) · Owner 2026-10-12 (answers workbook, Q-151): 2-3 synthetic staff added to the demo roster so most forecast cells are green and a few red ones show a reasonP3Live
- XC-05Staff messaging: 1-to-1 and department channels inside the staff app, auto-translated (PLAT-04/AI-08), with a ticket or room attached to any message; department heads can broadcast to their team; read receipts; retention policy. *Not a WhatsApp replacement for personal chat; the value is translation + ticket context.* Minimal form (ticket comments + department broadcast) in the pilotP2Live
- XC-06Collaboration extras on top of XC-05: threads, file sharing, @mentions, pinned SOPs, shift-handover channel (Slack-like)P3Live
- XC-07Work items and routines: routine daily duties per role (from the job description, HR-27) and one-off tasks, assigned down the chain (management company → GMs, GM → department heads, department heads → supervisors and staff), each with a due time, a check-off, an optional photo and a note; every level sees what the levels below have ticked today and what is late; routines roll over every day; a task can also come from a guest request, a work order or an inspectionMVPLive
- XC-08Corrections with audit: a sent message, task or notice can be corrected by its sender (or by the system when it made the mistake) with a correction that references the original; both versions stay permanently with timestamps in the audit log, and the receiver sees "corrected" with the new versionMVPLive
- XC-09Listen mode (opt-in "walkie-talkie"): a staff member lets the app listen during a shift; the AI proposes the tasks it heard ("room 512 AC leaking") for the person to confirm before anything is created; consent shown on screen, audio never stored, off by default; PDPL review before the pilot · Owner 2026-10-12 (answers workbook, Q-169, Q-132, decided 2026-10-12): listen mode stays off in every real hotel until the lawyer answers, on in the demo hotel; a documented manual test switch for accuracy tests with synthetic speech onlyP2Partly built
HR
Human Resources & Workforce
Live 28Sample 0Coming soon 2
- HR-01Employee profile: dept, role, skills/cross-training, languages, contract type, max hours, certificationsMVPLive
- HR-02Availability & preference capture in the staff app: preferred shifts/days off, max hours, fixed commitments, partner/carpool preferencesMVPLive
- HR-03AI auto-scheduler: drafts the roster from demand forecast (occupancy, arrivals/departures, HK credits, events, Ramadan) × skills × preferences × labour rules × language/Saudization coverage × labour budget. Manager edits by drag-drop, then publishes to the appMVPPartly built
- HR-04Labour-law & policy rule engine: daily/weekly hour limits (8h/48h, with a 9h/day hotel exception), Ramadan 6h/36h for eligible staff, 30-min break per 5h, max 12h on premises, weekly rest day, 12h rest for night workers + day rotation after 3 months of nights, overtime flags, peak-season caps (10h/60h). All rules are configurable and must be verified with HR/legal (research found conflicting HRSD texts). Privacy: store only a restricted "eligible for Ramadan hours" flag, never religion (PDPL sensitive data) · Owner 2026-10-12 (answers workbook, Q-152): same switch as AI-11MVPLive
- HR-05Fairness score for each roster: weekend/night/holiday distribution and preference-satisfaction %, shown to the managerMVPLive
- HR-06Shift swaps & open-shift marketplace with manager approval and rule checksMVPLive
- HR-07Leave requests, balances, approvals; blackout periods (Hajj, Eid, Riyadh Season) · Owner 2026-10-12 (answers workbook, Q-66): defaults 21 days, 30 after five years; emergency leave deducted from annual up to 3 days a year; per hotelP2Live
- HR-08Excel roster import + rule checker (first release: managers keep Excel and the app flags violations and publishes to phones), then export for payrollMVPLive
- HR-09Attendance: clock-in/out via app (QR at staff entrance or geofence) vs. schedule; late/no-show alerts; feeds existing T&A/payroll · Owner 2026-10-12 (answers workbook, Q-79, Q-99): grace 10 minutes (was 5), no-show 30 unless the department head allowed it; staff tap "I will be late" and the department head approves or declines with a recorded OK as proof ("excused by X", never counted as a no-show); optional per-hotel switch, off, that shows minutes late in the attendance export (Q-174 asks what "keep this option" means); Tahiyya never deducts payP2Live
- HR-10Cross-property staff sharing in peaks (borrow trained staff from a sister hotel)P3Live
- HR-11Performance evidence profile: auto-collected from the platform (SLA %, clean/inspection scores, guest compliments by name, attendance, training) + manager reviews + self-reviewP2Live
- HR-12Career ladders per department (e.g. Room Attendant → Senior RA → Supervisor → Asst. Exec Housekeeper) with clear readiness criteria visible to the employeeP2Live
- HR-13Promotion workflow: nomination (by manager or AI "ready" signal) → AI evidence summary → approval chain (Dept Head → HR → GM → corporate if needed) → letter → effective dateP2Live
- HR-14Pay-increase workflow: merit matrix (performance × position in pay band), property budget guardrails, approvals, letter generation, export to payroll/Mudad. *We don't run payroll* · Owner 2026-10-12 (answers workbook, A-05): stays Deferred; the co-founders will send pay rules after the presentationP2Coming soon
- HR-15Pay equity & consistency checks (flag outliers by tenure/role/gender/nationality for HR review) · Owner 2026-10-12 (answers workbook, A-05): stays Deferred until the pay rules are decided after the presentationP3Coming soon
- HR-16Portfolio talent pool & internal job board: promotions and transfers across all 40+ propertiesP3Live
- HR-17Employee self-service: my schedule, leave balance, documents, HR letter requests (salary certificate, NOC, experience letter)P2Live
- HR-18Document & expiry tracker: iqama, passport, health card, first-aid certificate, contract. Alerts to employee + HRP2Live
- HR-19Digital onboarding: checklist, document collection, uniform/locker, buddy, first-week SOP trainingP2Live
- HR-20Micro-training: 60-sec SOP videos per checklist step in the staff member's language, quizzes, badgesP3Live
- HR-21Recognition & gamification: guest name-mentions credited automatically, clean-score streaks, peer kudosP2Live
- HR-22Pulse surveys & anonymous feedback in staff languages; eNPS by department · Owner 2026-10-12 (answers workbook, Q-78): the HR department head may run pulse surveys and the staff-entrance QRP2Live
- HR-23Staff accommodation & transport: housing allocation, staff-bus schedules tied to shiftsP3Live
- HR-24Saudization/Nitaqat view (shared with COMP-03) · Owner 2026-10-12 (answers workbook, Q-88, Q-87): same as COMP-03P3Live
- HR-25Exports to the client's HRIS/payroll (Jisr, ZenHR, Menaitech, SAP…), which handles Qiwa/Mudad/GOSI. We do not build payrollP3Partly built
- HR-26Seasonal staffing for Ramadan/Hajj peaks: track temporary staff hired via Ajeer, with permit datesP3Live
- HR-27Job descriptions and hiring kit: a job description per role (AR/EN) that feeds the routine duties (XC-07), a hiring checklist and interview guide, and the new-hire path (HR-19 onboarding, HR-20 micro-training)P2Live
- HR-28Recruitment requests and candidate pipeline (vendor-neutral): the hotel raises a request from the job description (HR-27); the agencies it works with submit candidates through their own login; shortlist, interview, offer, with the hotel's approvals. Any licensed agency can be a supplier; the hotel chooses · Owner 2026-10-12 (answers workbook, Q-81): approvals default to the new hr_manager role plus the GMP2Live
- HR-29Mobilisation tracker for overseas hires: each step with dates and who is waiting on whom — work visa, medical check, home-country emigration clearance (each country has its own), ticket, arrival, iqama, then hand-over to onboarding (HR-19) and documents (HR-18) · Owner 2026-10-12 (answers workbook, Q-81): approvals default to the new hr_manager role plus the GMP2Live
- HR-30Manpower supplier contracts and scorecard: recruitment and outsourced-manpower contracts (rates, replacement guarantee, service levels), time-to-fill, early leavers, cost per hire, outsourced headcount on site; pairs with HR-24 Saudization view · Owner 2026-10-12 (answers workbook, Q-81): approvals default to the new hr_manager role plus the GMP2Live
PTYPE
Hotel-type Editions
Live 8Sample 0Coming soon 1
- PTYPE-01Profile mechanism: property type → module toggles + default templates (catalogue, checklists, SLAs, roles, KPIs)MVPLive
- PTYPE-02Full-service profile (all departments, IRD, banquets, spa)MVPLive
- PTYPE-03Limited/select-service profile: multi-skilled roles (one "Guest Service Agent" covers desk + requests + breakfast), lean dashboards, no IRDMVPLive
- PTYPE-04Serviced-apartment / extended-stay profile: daily cleaning by default (the MoT classification requires it; Saudi serviced apartments have a median stay of about 2 nights, so they behave like hotels), with a weekly cycle only for true long-stay contracts. Resident maintenance requests, move-in/out condition reports, kitchen/appliance inventory, laundry · Owner 2026-10-12 (answers workbook, Q-115): move-in/move-out condition reports with photos and the resident phone page are to be built (the status stays In Progress until then)P2Live
- PTYPE-05Resort profile: large grounds & zones, villas, pool/beach, activities & kids club, buggy transport, multiple F&B outletsP2Live
- PTYPE-06Pilgrim hotel (Makkah/Madinah) profile: group arrivals, very high occupancy, many guest languages, prayer-time demand peaks, Haram shuttle, Hajj/Umrah modesP2Live
- PTYPE-07Luxury / lifestyle profile: butler service, guest preference memory on by default, VIP protocol, tighter SLAsP3Live
- PTYPE-08Boutique/independent, airport, and convention/MICE profilesP3Live
- PTYPE-09Commercial editions/pricing tiers mapped to profiles (see business doc)P2Coming soon
COMP
Compliance
Live 5Sample 0Coming soon 0
- COMP-01MoT classification evidence pack: auto-generated cleaning records, maintenance records, mattress-rotation & duvet-cleaning logs, complaint register with resolution proofMVPLive
- COMP-02PDPL toolkit: consent notices, retention schedules, data-subject request handling, processing records, breach-response runbook (72h)MVPLive
- COMP-03Saudization/Nitaqat dashboard vs. the 41 tourism-profession quotas · Owner 2026-10-12 (answers workbook, Q-88, Q-87, Q-86): job-title defaults filled from research; the hotel edits titles but each stays under its correct department; agency workers not counted until the research says otherwise; hotel figures asked after the presentationP3Live
- COMP-04Shift-coverage rules: ≥ 1 bilingual staff member + ≥ 1 certified first-aider per shift, with alertsP3Live
- COMP-05MoT minimum staffing-ratio check per classification (draft MoT consultation proposes ratios from 1 Jan 2027; verify final rules)P2Live
DASH
Dashboards & Reporting
Live 9Sample 0Coming soon 0
- DASH-01Department dashboard: open/overdue, SLA %, workload, today's KPIsMVPLive
- DASH-02Operations Manager: cross-dept exceptions & escalations, real timeMVPLive
- DASH-03GM: property health (RAG), guest issues, rooms ready, OOO, staff summaryMVPLive
- DASH-04Management-company portfolio: league table, benchmarks (tickets per occupied room, response time, clean score, complaint rate), drill-down across brands · Owner 2026-10-12 (answers workbook, Q-106, Q-124): the clean-score definition is a per-hotel choice (first-time inspection pass rate by default); group add-on gateP2Live
- DASH-05Owner portal: asset condition, guest scores, ops KPIs, capex signals (aggregated) · Owner 2026-10-12 (answers workbook, Q-124, Q-154): group add-on gate; the high-risk asset count is an option, off by defaultP2Live
- DASH-06Scheduled reports (daily/weekly) per roleP2Live
- DASH-07CSV/Excel export everywhereMVPLive
- DASH-08ROI tracker for the platform itself (hours saved, response-time gains, calls handled by AI). This is the evidence for your dealMVPLive
- DASH-09Reports centre: one place per role listing every report and export the app can produce for the GM and each department head (operations, housekeeping, engineering, front office, F&B, guest relations, HR and scheduling, revenue, compliance, staff activity), with filters, CSV/Excel/PDF export, and a schedule (DASH-06) to receive any of them daily, weekly or monthly in the app · Owner 2026-10-12 (answers workbook, Q-107, Q-109): every report listed obeys the owner-access, visibility and subscription settingsMVPPartly built
AI
The AI Layer (AI throughout the system)
Live 19Sample 0Coming soon 0
- AI-01GM daily brief (EN/AR, 2-min read or listen): overnight incidents, SLA breaches, VIPs, OOO rooms, today's events/prayer changesMVPLive
- AI-02Anomaly detection: complaint spikes, repeat-fault rooms, unusual clean times, no-show patterns · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#43) · built 2026-10-12: rules first with per-hotel thresholds in Hotel rules; /gm/anomalies and a card in the GM brief with the numbers, a link, "Seen" / "Not useful" (stored to tune thresholds) and an optional "Explain with AI" paragraph; staff-level cards only for roles that may see individual performance, worded as coaching; defaults are our own starting values to confirm with a real hotel (Q-131); owner UAT pending · cloud 2026-10-12: new rule dispenser_use (HK-18): a room or floor using more of a dispenser product per room-night than the hotel's usual, over the last 14 days against the baseline window; thresholds dispenserUnusualPct, dispenserMinReadings; about rooms and floors only, never a person (WFX2). New rule utility_use (ENG-09): a meter whose latest day used more per occupied room than the hotel's usual by utilityUnusualPct, after utilityMinReadings readings; about meters, never a personP2Live
- AI-03Role copilots ("Ask"): every manager can ask in Arabic or English, e.g. "Which floors are behind?" or "Why did complaints rise last week?". Answers come with links to the data · Owner 2026-10-10: un-deferred (Claude ranking, see DEFERRED_RANKING.md) · built 2026-10-12: /ask and an Ask box on six landing pages; fifteen ready answers from the hotel's own records with links to the screens that hold the data; a keyword matcher in English and Arabic answers at once with no model; a background model run only chooses one answer from the list when nothing matches (the model never writes the answer or sees hotel data); scope by role and department, no staff names, 90-day question history; owner UAT pendingP3Live
- AI-04Portfolio executive brief weekly for CEO, cluster VPs and owners · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#54) · built 2026-10-12: /portfolio/brief; last 7 hotel days against the 7 before; exactly five lines per hotel (league position and movement, guest score, complaints, room condition and rooms out of order, anything notable), group highlights and watch-outs from the hotel's own thresholds, a rule-based paragraph in both languages, "Write with AI" (run kind exec_brief) as a checked suggestion, edit, save, print and send to the DASH-06 report recipients; owners see their own hotel only, may not send, and see no staff or guest names; prepared when a person asks (Q-155); the demo has no report recipient yet; owner UAT pending · Owner 2026-10-12 (answers workbook, Q-155, Q-156): the rule-based weekly brief is prepared automatically on Sunday night for the regional VP; "Write with AI" and "Send" stay on a tap; whether an owning company's representatives get it is a subscription setting · cloud 2026-10-12/13: Sunday-night job prepares the rule-based weekly brief as a draft for the GM and owner (rule briefSundayPrep, on at 21:00), and a portfolio draft for group roles behind the Group add-on (Q-155, W3A, W3FX3). Sending stays on a tap.P2Live
- AI-05Voice agent (speech + reasoning + tools), see VOICE · cloud 2026-10-12: Tested 2026-10-12 with a stand-in model: tools offered, guardrails before the model, tool calls to actions; missing: a real speech-to-text / text-to-speech vendor and a real model in the loop (needs accounts, Q-44)MVPLive
- AI-06Vision: clean-check, damage detection, lost-&-found descriptions (INSP-03/04, HK-09) · built 2026-10-12 (the plumbing): the Ollama vision provider (OLLAMA_VISION_MODEL) and the photo check and damage cards that use it (INSP-03/04); no vision model is installed yet, so the photo check reads "Not checked by AI" until the co-founders allow the download of gemma3:4b (about 3.3 GB); lost-&-found descriptions (HK-09) plumbed to the vision provider (describeItem) but, with no model installed, they show the rule-based starter lineMVPLive
- AI-07Staff voice-notes → structured tickets: an attendant speaks in Hindi/Tagalog/Arabic ("Room 512 AC leaking") and a work order is created and translated (live 2026-10-06, free route: staff phone voice note in AR/EN/HI/UR/BN/NE/TL via browser speech → room, items, quantities → routed request; paid model later)MVPLive
- AI-08Live translation of notes/chats between supervisors and staff (PLAT-04) · first release 2026-10-10: machine translation on whichever model is in use (free local Ollama first, paid API later), always shown beside the original (never instead of it) in staff messages; a translate route for staff screens; with no model the screens show the original only. The local 3B model was too weak for Arabic in a first test; a stronger free model (Aya Expanse 8B) is being tried; the paid API stays the recommendation for reliable ArabicMVPLive
- AI-09Sentiment & frustration detection on calls and notes (VOICE-09, GR-08)MVPLive
- AI-10Demand & workload forecasting: tickets/hour, HK credits, IRD covers, desk traffic from occupancy, events, Hijri calendar · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#48) · built 2026-10-12: /schedule/forecast; the next 14 days of occupancy and each department's work (rooms to clean, desk traffic by hour, engineering and security requests, in-room dining orders) from a plain model, the hotel's usual weekday occupancy times a calendar factor (events and Hijri seasons), never below the rooms booked or above the rooms in the hotel, with the factors and a "why" shown for every day in English and Arabic; no AI model used; ten hotel rules; the event factors are our own starting values (Q-150); banquet blocks (FO-10) are not read; owner UAT pending · cloud 2026-10-12/13: Research 21 (W3I) proposes city presets (Riyadh, Jeddah, Makkah, Madinah, Dammam and Khobar) and Umrah calendar dates for the forecast rules, all marked judgement; not built: the presets are not yet in the forecast rules. A typed occupancy day makes the forecast an estimate (W3FX3).City presets (Makkah/Madinah vs Riyadh, Q-150): research only (doc 21), not built.P2Live
- AI-11Scheduling optimiser (HR-03), constraint solver + AI explanation of trade-offs · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#49) · built 2026-10-12 with HR-03: /schedule/draft and "Draft from the forecast" on /schedule; a draft that a manager reads, edits and publishes; "Explain with AI" (run kind roster_explain) is optional and refused if it adds a number; per-person wishes (preferred shift, weekdays off) break ties only; a greedy, explainable builder rather than a constraint solver (Saudization and the ministry minimum staffing are not aimed at); sixth working day question Q-152; owner UAT pending · Owner 2026-10-12 (answers workbook, Q-152): per-hotel "strictly five working days" switch for roster drafts · cloud 2026-10-12: drag-and-drop of proposed shifts built with HR-03 (batch B3, 2026-10-12) · cloud 2026-10-12/13: W3A (Q-152): rule rosterStrictFiveDays, off by default; a hotel that wants no sixth working day switches it on, and the draft then shows the extra gaps.MVPLive
- AI-12Smart dispatch: who should take this task now (REQ-11) · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#44) · built 2026-10-12 with REQ-11: rules-based scoring at /ops/dispatch (no model is used and none is needed); owner UAT pending · Owner 2026-10-12 (answers workbook, Q-128): same actual-guest field as REQ-11 · cloud 2026-10-12/13: Q-128 (W3C): the desk enters the guest actually staying in the room, and dispatch uses that person (see REQ-11).P2Live
- AI-13Predictive maintenance: repeat faults, failure risk by asset age/usage (ENG-10) · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#51) · built 2026-10-12: /eng/risk, a 0 to 100 risk score per asset and per room from age against expected life, work orders in the last 90 days and 12 months, repeat faults, overdue planned maintenance and the hot season, each signal written out with its points; ranked high / watch; one tap schedules a one-time planned check (due in 3 or 14 days); "Not now" hides for 30 days; optional "Explain with AI" (run kind maintenance_explain); a ranking aid, not a failure probability; weights, expected lives and lines are 31 hotel rules (with AI-04), defaults deliberately at or under published figures and not Gulf data (Q-153); no running hours or sensor data; owner UAT pending · Owner 2026-10-12 (answers workbook, Q-154): the owner-portal high-risk count is an option the hotel can switch on after the chief engineer confirms the expected lives (Q-153) · cloud 2026-10-12/13: Q-154 (W3A): rule ownerShowHighRiskCount (off) gives the owner portal one number, the high-risk count, with no names. Q-153 (the chief engineer's confirmation of expected lives) is still outstanding.P2Live
- AI-14Performance & promotion evidence summaries (HR-11/13). Recommendation only · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#47) · built 2026-10-12: a written summary of the last 90 days on the HR-11 evidence profile (strengths, gaps, trend, each with its number and a link to the data) in English and Arabic, rules first, with six hotel rules for what counts as a strength, a gap, a trend and "too few cases"; "Summarise with AI" is an optional run (kind evidence) that rewords the same facts in one English paragraph and is refused if it adds a number or says anything about hiring, dismissal, pay, promotion or discipline; never a recommendation and the screen says so; shown only to roles that may see individual performance (owners and executives never); the person sees the same facts without the AI paragraph; frozen on the HR-13 promotion case, and the AI paragraph can be attached to a pending case by tap; owner in the approval chain does not see it (Q-148); tested with fake models only; owner UAT pendingP2Live
- AI-15Review-response drafting AR/EN (GR-07) · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#46) · built 2026-10-12: /gr/reviews, a review typed in by hand, an instant reply from templates by rating band and topics in English or Arabic in the hotel's persona tone, "Improve with AI" as a suggestion beside the draft, the manager edits and marks it posted; policy checked on every edit and model answer (no compensation, no admission of fault, no numbers, no names); replies that state what was fixed: now Approved to build (Q-135, 2026-10-12); owner UAT pending · Owner 2026-10-12 (answers workbook, Q-135, decided 2026-10-12): the "What was fixed" facts panel is now Approved to build: staff tick what was really fixed (name and time recorded), the reply may state only ticked facts, a person approves, and the policy check (no compensation, no admission of fault) stays · cloud 2026-10-12/13: Built 2026-10-13 (W3E, Q-135, C4): the What was fixed panel (topic ticks and up to five free facts in English and Arabic, with name and time); the template and the model state only ticked facts; promises and unticked fix claims are refused, also in posting; W3FX3 tightened free facts and fix phrasings; a reply that states a fix is marked posted only after the person confirms the ticks. Not built: ticking from the linked case's closing record (staff type the panel). Owner UAT of the panel pending.P2Live
- AI-16Agent coaching for FO & call handling (FO-15) · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#52) · built 2026-10-12 with FO-15: /fo/coaching, "My shift" and "Team" tabs; two or three coaching points after a shift from hand-offs taken and caller wait, upset callers (VOICE-09), guest-relations cases handled and closing time, request times and late check-out or upgrade offers available with none recorded; "Phrase kindly" is an optional checked run (kind coaching); the agent sees their own first and marks them read, the front-office head, GM and operations see each agent in scope, owners and executives never (Q-147); nothing to do with pay or discipline; only hand-offs taken from now on can be coached (calls live in memory) and a spoken offer is invisible until offers are logged; owner UAT pendingP3Live
- AI-17SOP & checklist generator: turns brand-standard documents into checklists and training cards · Owner 2026-10-10: un-deferred (Claude ranking, see DEFERRED_RANKING.md) · built 2026-10-12: /gm/sop turns pasted text of the hotel's own standard (or a .txt / .md file, no PDF) into a checklist and a training card at once with rules (English and Arabic), "Improve with AI" as a suggestion, edit, then save as a versioned checklist and/or training card; source text kept with the draft and deletable; department heads cannot use it yet (Q-127); owner UAT pending · cloud 2026-10-12/13: Q-127 (W3B): a head of department drafts SOPs for their own department only; saving stays with the GM or operations, which is the approval.P2Live
- AI-18Report writer: FO flash reports, owner narratives, monthly ops reviews (FO-12, RM-04) · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#45) · built 2026-10-12: /gm/reports/write and under /fo/reports; the compiled facts are the report, the rules write one paragraph in English and one in Arabic, "Write with AI" gives a suggestion (a made-up number is rejected), the person edits, saves, prints and sends to the report recipients; FO flash, owner narrative and monthly operations review (Q-130); owner UAT pending · cloud 2026-10-12/13: Q-130 (W3B): the monthly operations review is for the GM, the operations manager and the regional role only; the owner gets it only after the owner-access decision (Q-175).P2Live
- AI-19Upsell recommender: right offer, right guest, right moment (RM-01) · un-deferred by Claude 2026-10-12 (DEFERRED_RANKING Tier B, owner's standing instruction) (#55) · built 2026-10-12: /fo/upsell, tab "Right now": for each guest in house the offer that fits the moment with its reason (late check-out on departure morning, upgrade after check-in when better rooms are free, dining at meal times, spa on a long stay), never to a guest with an open complaint, at most two offers per stay in 24 hours across all channels; says whether the voice agent may offer it and whether the guest allows in-app offers (GUEST-29); rules only, no model; owner UAT pendingP2Live
RM
Revenue Support (beside the brand RMS, never replacing it)
Live 5Sample 0Coming soon 3
- RM-01Upsell via voice agent and staff (late checkout, upgrades, IRD, spa) with revenue trackingP2Live
- RM-02Saudi demand-event & Hijri calendar overlay (Ramadan, Eid, Hajj, Riyadh Season, F1, LEAP, school holidays, disruption flags) for ops planningP2Live
- RM-03Upsell attribution per channel/agent + staff incentive calculationP3Live
- RM-04Owner forecasting pack (30/60/90-day outlook from file imports + events + AI narrative)P3Live
- RM-05Total-revenue view per occupied room (rooms + F&B + spa + other) per property & portfolio · Owner 2026-10-12 (answers workbook, Q-108, Q-167): a typed daily occupancy box (marked as estimated) beside file uploads, with a slot for a PMS feed if a brand or hotel allows it; day-first dates, ask once per file when the PMS is American-configuredP3Live
- RM-06Light compset rate monitoring via a rate-shopper partnerLaterComing soon
- RM-08Sponsored content & partner bookings: tour companies, restaurants and experiences pay for placement in the guest app/TV (clearly labelled "Sponsored") and a commission when the guest books through us; partner contracts, pricing and payout handled by the hotel. Brand-managed hotels may forbid third-party ads on brand channelsP3Coming soon
- RM-09Competitor rate watch: daily compset rates and availability from a rate-shopper data partner (OTA Insight/Lighthouse, RateGain) with a simple position view and alerts. Re-opens RM-06 (rejected at Stage 2). Still *beside* the brand RMS, never replacing itLaterComing soon
INT
Integrations (Integration Ladder)
Live 5Sample 1Coming soon 4
- INT-01L0 Standalone: rooms/staff in app; guest gives the room numberMVPLive
- INT-02L1 PBX: SIP routing of the short code; extension → room map; transfer back to the operatorMVPSample
- INT-03L2 PMS report files: scheduled email/SFTP import of in-house/arrivals/departures · Owner 2026-10-12 (answers workbook, Q-11): Crowne Plaza Al Takhassusi uses OPERA 5 (co-founders, 12 Oct), so L2 report files are the realistic routeMVPLive
- INT-04L3 Interface tap: FIAS feed via PBX/middleware (TigerTMS, Comtrol) for real-time check-in/out, name, title, language, VIPP2Coming soon
- INT-05L4 Direct PMS: OPERA Cloud via OHIP (most brands), OPERA 5 via FIAS, Mews/Apaleo for independents. Two-way room status, charge posting · Owner 2026-10-12 (answers workbook, Q-11): OPERA 5 at Crowne Plaza is reached through FIAS; stays DeferredP3Coming soon
- INT-06L5 Brand-approved vendor track (business process, not code)LaterComing soon
- INT-07WhatsApp Business / SMS / email notifications · Owner 2026-10-12 (answers workbook, A-06): the Gmail sender is configured by the owner (app password done); real sending is tested on the laptopP2Partly built
- INT-08Automation layer: core notifications/escalations in our own code (pg-boss); n8n Community Edition (self-hosted in Dammam, internal-only) for per-hotel imports and syncs; a built-in "when X → notify Y" rule builder for hotels later (ADR-0007)P2Partly built
- INT-09SSO (Microsoft Entra ID / Google / Okta)P2Live
- INT-10Integration health monitor (PMS sync lag, SIP trunk status)P2Coming soon
ADMIN
Administration
Live 9Sample 0Coming soon 0
- ADMIN-01Property setup wizard: floors, rooms, types, areas (CSV import)MVPLive
- ADMIN-02Staff, roles, shifts, areas, languagesMVPLive
- ADMIN-03Extension mapping & per-extension agent behaviourMVPLive
- ADMIN-04Request catalogue, SLA, escalation configurationMVPLive
- ADMIN-05Checklist & inspection template builderMVPLive
- ADMIN-06Voice-agent knowledge base (hours, policies, amenities) in EN/ARMVPLive
- ADMIN-07Tenant templates pushed to all properties (brand standards) · Owner 2026-10-12 (answers workbook, Q-116, Q-124): the roles that may push group standards are a per-company setting (default tenant admin + regional VP); sold as a group add-on priced per propertyP2Live
- ADMIN-08Feature switches per hotel: every feature can be turned on or off per hotel by its admin (within its package, GTM-11), with sensible defaults per hotel type (PTYPE); a switched-off feature disappears from menus and the server refuses itMVPLive
- ADMIN-09Approval rules per hotel (delegation of authority): one setting screen where each hotel chooses who approves what — parts and stock purchases, guest-damage charge/waive, leave, promotions, shift swaps, early check-in/late checkout, room moves, recovery gestures above a person's level, notices to guests — by role, optionally with money limits (e.g. up to SAR 2,000 the department head, above it the GM). Ships with a researched default matrix and "reset to default"; every approval in the app reads it · Owner 2026-10-12 (answers workbook, Q-81, Q-82 to Q-85, Q-103, Q-107, Q-109): new roles controller, hr_manager (HR department head) and banquet_captain; the owner may approve; a cost is captured on every purchase, gesture and damage decision; a request with no estimate goes to the top approver; a refusal tells the requester why with a one-tap "ask again"; per-hotel owner-access setting Standard / Extended / Full (default Extended, built 2026-10-16; Q-175 asks the co-founders only to confirm or change the default); approvers and managers see full ladders, others only their own line; department-head visibility of FIN-02/FIN-04 is a per-hotel permissionMVPPartly built
PLAT
Platform Foundations
Live 20Sample 1Coming soon 0
- PLAT-01Multi-tenant model (tenant → region → property → dept → area) with Postgres row-level securityMVPLive
- PLAT-02Role-based access per the roles docMVPLive
- PLAT-03Arabic/English with full RTL everywhereMVPLive
- PLAT-04Staff-app workforce languages + auto-translation of notes (supervisor writes Arabic, attendant reads Bengali). Pilot (owner 2026-10-04, Q-13): AR, EN, HI, UR, BN, NE, TLMVPPartly built
- PLAT-05Offline-first staff app with sync + photo upload outboxMVPLive
- PLAT-06Push notifications (iOS/Android/web)MVPLive
- PLAT-07Immutable audit log for sensitive actionsMVPLive
- PLAT-08KSA data residency (Google Cloud Dammam), encryption, retention. Swappable AI vendors with pseudonymised data for any offshore callMVPSample
- PLAT-09Monitoring, alerting, uptime, error trackingMVPLive
- PLAT-10Hijri + Gregorian dates, prayer times per city, Arabic-Indic digits optionMVPLive
- PLAT-14Installable app on any device: install from the browser today (PWA on iPhone and Android, no store), store apps (iOS/Android via Expo) after the pitch, and secure use on hotel-provided phones or tablets under the hotel's device management (MDM: managed config, remote wipe, no personal data on device)MVPLive
- PLAT-12Per-property branding: each hotel's primary and accent colours and logo (light/dark variants) applied across guest, staff and manager screens; set by the platform owner for the client or by the property admin; derived shades keep text readable; synthetic demo stays on Direction AMVPLive
- PLAT-13Light / dark / system colour mode on every screen, remembered per device; a property may set its defaultMVPLive
- PLAT-11Security programme: pen test before pilot; ISO 27001 → SOC 2 Type II roadmap · Owner 2026-10-12 (answers workbook, Q-68): scrypt PIN-hash upgrade with silent re-hash on next sign-in, scheduled right after the 28 Oct freeze; pen-test firm and month not namedP2Live
- PLAT-15Public status page: live status of the platform (web, API, voice, database) with incident history, published for clientsP2Live
- PLAT-16Trust page: how Tahiyya protects data: permanent audit history (PLAT-07), encryption, Saudi hosting (PLAT-08), PDPL toolkit (COMP-02), the ISO 27001 → SOC 2 Type II plan (PLAT-11), failover plans; never claims a certification not yet heldP2Live
- PLAT-17Public API with owner-approved access: a documented REST API (what the app already uses) with per-hotel API keys, scopes (read rooms/requests, create requests, read reports…), rate limits and a full audit of every call; keys are issued only after the platform owner approves the client and purpose, and a hotel can switch its keys off at any timeLaterPartly built
- PLAT-18MCP server (Model Context Protocol): an AI assistant a hotel already uses (Claude, ChatGPT or another) can, with the owner's and the hotel's permission, read the hotel's live state and act through the same scopes as PLAT-17 ("what is late in housekeeping?", "open a work order for Rm 410"); every action is attributed to the person who connected the assistant and audited; nothing a human could not do themselvesLaterPartly built
- PLAT-19Plug-in / connector for AI models (a Claude connector, a ChatGPT app, and the equivalents): the packaged, listed form of PLAT-18 that a hotel installs from the assistant's own directory, with the owner's approval per hotel and per scopeLaterPartly built
- PLAT-20Staff activity and access centre for the GM and the IT head: who is signed in and active now (by department, device and last seen), each person's activity timeline from the audit log and task events, activity reports and exports (per person, department, period), and controls: sign a session out, suspend or reactivate an account, force a PIN change, see and remove devices, change what a role may do (within the hotel's approval rules); every control action in the audit log. Transparent to staff (a "what is recorded about me" page), work activity only (no location off shift, no keystrokes or screen capture), retention as a hotel rule (PDPL)MVPLive
- PLAT-21Demo and pitch mode: everything is open at any hour and on any day. A rehearsal at 02:00, a pitch on a Friday or a walk-through at 22:30 must not meet a closed pool, a dish "not served now", an upsell that waits for 06:00, an empty cleaning plan or a sample guest who has already "left". The demo hotel's spa, gym and pool, dishes (and the iftar and suhoor windows), upsell suggestions, cleaning-plan build time and sample stays ignore the clock; a real hotel keeps its own hours and rules, and cannot switch this onMVPLive
SEC
SEC
Live 3Sample 0Coming soon 0
- SEC-01Security · Owner 2026-10-12 (answers workbook, Q-62, Q-64): any staff member logs; closed incidents kept 5 yearsP2Live
- SEC-02Security · Owner 2026-10-12 (answers workbook, Q-63): duress also posts into the shift-handover channel after the person is safeP2Live
- SEC-04Room-entry log correlated with guest "someone entered my room" complaintsP2Live
FIN
Finance
Live 4Sample 0Coming soon 0
SPA
SPA
Live 2Sample 0Coming soon 0
TRN
Transport
Live 3Sample 0Coming soon 1
- TRN-01"Bring my car" via room phone → valet queue + ETAP2Live
- TRN-02Digital valet ticket with car photosP3Live
- TRN-03Airport / Haram / event shuttle boardP3Live
- TRN-04Hotel fleet: cars, drivers, a driver app and a dispatch board for chauffeur bookings (GUEST-23)P3Coming soon
ESG
ESG
Live 0Sample 0Coming soon 1
- ESG-01Energy, water, waste per occupied room + portfolio benchmarkLaterComing soon
IT
IT
Live 0Sample 0Coming soon 1
- IT-01System-health monitoring of integrations (see INT-10)P2Coming soon
MKT
Sales & Marketing (proposed 2026-10-04)
Live 4Sample 1Coming soon 0
- MKT-01Corporate accounts & LNR tracker: local negotiated rate agreements (rate, dates, room nights committed vs produced, contact, renewal date) with production imported from PMS reportsP3Live
- MKT-02Lead pipeline for the Director of Sales & Marketing: lead → site inspection → proposal → won/lost, with follow-up reminders and a weekly pipeline summary · Owner 2026-10-12 (answers workbook, Q-121): the weekly pipeline summary is sent to the GM automatically, customisable per hotelP3Live
- MKT-03Campaign & offer tracker (seasonal offers, Riyadh Season packages) with channel and conversion tracking via GUEST-16 · Owner 2026-10-12 (answers workbook, Q-123, Q-137): public short links with a redirect and counts per marketing channel (pairs with GTM-13)LaterLive
- MKT-04Teaser video (30–45 s, AR/EN) to send before the pitch: the product in motion from the website footage, music and narration. *Built 2026-10-12: EN and AR, 1920×1080 and 1080×1350, captions over the music bed (marketing/video/teaser/); narration to add once a cleared voice exists (ElevenLabs, A-07)*MVPLive
- MKT-05Presentation refresh: the ten pitch decks in business/presentations/ (Guest / Staff / Management × Narcissus / Crowne Plaza × EN/AR) rebuilt with the new screens and features after UXR-24, better looking (Claude Design when the account has it, otherwise python-pptx on a new template); a general refresh pass of manuals, demo script and website shots in W4 · Owner 2026-10-12 (answers workbook, A-08, C14): the reviewer pack and the 12 decks go to Imran Azhar as "draft, numbers and screens may change"; feedback by Monday 19 Oct; the final text pass stays last · cloud 2026-10-16: text pass done for all 12 decks (features of 12–13 Oct, roadmap with Partly built, staff languages slide corrected to PLAT-04); to do on the laptop: render check with the real fonts and the screenshots in business/presentations/SCREENSHOTS_NEEDED_DECKS.mdMVPSample
GTM
Website, sign-up, plans & free trial (owner 2026-10-06)
Live 17Sample 0Coming soon 0
- GTM-01Public Tahiyya website (Arabic first, English): what the company and the app do and for whom, a tour by department, screenshots, a 60–90 second demo video, the instant demo (GTM-09), a security and privacy page (Saudi data residency, PDPL), company details (CR and VAT numbers once registered), contact and WhatsApp; fast, search-friendly, right-to-left done properlyLive
- GTM-02Transparent pricing page: packages with exactly what each includes, prices in SAR with VAT shown, monthly or yearly, add-ons (hardware and installation items such as the room-phone voice line, TV channel, NFC door tags, PMS link), one-off setup, FAQ; groups and bespoke builds go to GTM-03 / GTM-04Live
- GTM-03"Customize your plan" questionnaire: a few short steps (hotel type, rooms, departments, guest channels, languages, integrations, hardware, support level) with a live price that shows the maths, ending in an emailed quote; above set limits (large groups, bespoke work) it hands over to a human quotePartly built
- GTM-04Quote builder for the Tahiyya team: turn questionnaire answers or a sales conversation into a quote (line items, discount, validity), send it as a link or PDF in Arabic or English, and let the client accept it onlineLive
- GTM-05Hotel client registration and sign-in: company details, first property, an admin user verified by email and mobile one-time code; creates the client account and property (PLAT-01); sign-in for client admins and managers; password resetPartly built
- GTM-06Plans and subscription: choose a package (monthly or yearly), upgrade or downgrade, add properties, invoices that meet ZATCA e-invoicing with 15% VAT, payment through a Saudi gateway (mada, Apple Pay, cards; bank transfer for yearly); gateway, prices and billing entity are owner decisionsPartly built
- GTM-07Client onboarding wizard: departments, floors and rooms (CSV, ADMIN-01), staff logins in bulk from Excel/CSV, invitations by SMS, WhatsApp or email, property code + PIN or QR login for frontline staff without email (ADMIN-02), roles per department, printable QR room cards; ready to use the same dayPartly built
- GTM-0830-day free trial with no card: the browser and phone features for one property with optional sample data; everything that needs hardware or installation is excluded (room-phone voice line, TV channel, NFC door tags, PMS link); limits to be decided by the owner (room or staff cap, "Trial" mark on guest-facing pages); reminders before the end; afterwards read-only, export, then deletion under PDPL unless they subscribeLive
- GTM-09Instant demo hotel without registering: website visitors open a sample hotel with ready-made logins (today's demo hotel and hotel switcher), reset every night, nothing they type is keptLive
- GTM-10Trial safeguards: business email or verified mobile, one trial per company or property, rate limits, manual approval for large groups, clear terms and consent at sign-upLive
- GTM-11Plan entitlements: which features each package and the trial include, switched on and off by the server (not just hidden), with a friendly "available in …" prompt to upgradeLive
- GTM-12Lead capture: "book a demo", WhatsApp click-to-chat and a contact form with PDPL consent; leads notify the Tahiyya team and feed a simple pipeline (MKT-02 pattern)Live
- GTM-13Privacy-friendly website analytics and a sign-up funnel (visits → demo → trial → paid) without third-party ad trackers by defaultLive
- GTM-14Tahiyya team console: client accounts, plans, trials and renewals, usage, support sign-in to a client account only with the client's permission and an audit entry (PLAT-07)Live
- GTM-15Owner login and demo profiles: the platform owner signs in with their own account (separate from hotel staff, secret set by the owner) and keeps a demo profile per prospect (hotel name in English and Arabic, city, brand colours, logo uploaded in the app and stored only in the database, never in the repository); one tap applies a profile to the demo hotel so every demo login shows that prospect's branding, with the "sample branding" disclaimerLive
- GTM-16A demo hotel per prospect: the owner creates a separate demo workspace for a prospect (their branding, room count, departments, synthetic data) with its own logins to hand over, resettable and expiring; built with self-registration (GTM-05/07) because both need the same multi-hotel setupLive
- GTM-21Everything under tahiyya.com, and a demo address per prospect: the app at app.tahiyya.com and the API at api.tahiyya.com (Render custom domains, Cloudflare DNS); a wildcard *.tahiyya.com on the web service so each prospect's demo hotel (GTM-16) or demo profile (GTM-15) opens at its own address, <slug>-demo.tahiyya.com (the slug is the prospect's code in the owner console; demo.tahiyya.com is the neutral Demo Hotel Riyadh); the hostname selects the hotel, so no 3-hour switch and no mix-ups between two prospects; an Open demo button on each prospect and client row in the owner console; a "Team sign-in" link in the website footer to app.tahiyya.com/en/owner; the owner console sign-in becomes two named co-owner accounts with a password and a second factor (passkey or authenticator) instead of one shared PIN, with an audit line per sign-in (SEC-01 pattern). Guest pages and staff PIN sign-in stay per hotel and open, as today, because QR cards must work without a login. Synthetic data only until in-Kingdom hosting (PLAT-08). The hosted demo's old address keeps working during the change; the QR card, voice:check target and DEMO_SCRIPT move to the new address in the same changeLive
DOCS
Manuals and training material (owner 2026-10-10)
Live 5Sample 0Coming soon 0
- DOCS-01Master user manual for hotel clients (AR/EN) with screenshots of every feature; later cut per hotel type and package · cloud 2026-10-12/16: ten chapters written and reviewed against the code for waves 1–3 (EN/AR, docs/06-manuals/user-manual/, ch. 10 HR and recruitment new), served per role by DOCS-04; to do: the screenshots (docs/06-manuals/SCREENSHOTS_NEEDED.md, on the laptop)MVPLive
- DOCS-02Owner's manual and installation guide (AR/EN) with pictures, including the hardware side (QR cards, tablets, room-phone line, PBX) · cloud 2026-10-12/16: five chapters written and reviewed for waves 1–3 (EN/AR, docs/06-manuals/owners-guide/, new 4.10 reports centre and 5.8 IT notes); to do: the screenshots (on the laptop)MVPLive
- DOCS-03How-to videos: one per feature group for staff and managers, and an owner's guide video, from the film pipeline (marketing/video) · cloud 2026-10-13: ten scene-by-scene scripts with EN/AR narration in docs/06-manuals/how-to-videos/; to do: filming (on the laptop film pipeline)P2Live
- DOCS-04Client manual pack per plan, feature and role: the user manual a hotel receives follows its plan, chosen features and hardware; in the app each person sees only the chapters for their role and department; PDF and print copies for the hotel, marked with the client name, "Confidential: licensed to <hotel>" and the date; no internal know-how (prompts, rule sources beyond the published "Why this default", installation playbook)MVPPartly built
- DOCS-05Tahiyya team onboarding and installation playbook + client intake form (internal, confidential, never given to clients): per client what to set up and customise according to the plan, features and hardware chosen (QR cards, tablets, room-phone line / PBX, TV, Wi-Fi, kiosks, printers), installation steps and checklists, and an intake form the client fills in (Markdown + Word) that drives the configuration and the client manual pack (DOCS-04); IP and trade-secret protectionMVPLive
TEST
TEST
Live 2Sample 0Coming soon 0
- TEST-01Test mode: testers, role sets and notes on the real screens. In the owner console a co-owner opens a test round (name, demo hotel, optional script UAT-1/2/3) and adds testers, each with a short code or link and a role set: for example tester 1 = GM, front-office manager, housekeeping supervisor; tester 2 = room attendant, runner, technician, kitchen; tester 3 = the guests of rooms 412, 318 and 515. A tester opens the link on any phone, tablet or laptop, picks a role from a bar at the bottom of every screen ("Testing as Noura, HK supervisor ▾") and switches roles without PINs; guest roles open the room's guest page. A floating Note button on every screen opens a short form: kind (bug, confusing, wording, looks wrong, idea, works well), text, optional pin on the screen (tap where it is wrong) and an automatic snapshot of the screen; the app attaches the context itself (address, role, device and viewport, language, app version and commit, the last requests with their status codes, console errors, the script step if one is selected). Notes are stored per round (synthetic demo hotels only) and listed in the owner console with filters and a status (new, fixed in <commit>, by design, cannot reproduce) that testers see too. Export for Claude: pnpm --filter @qsh/api test:export <round> writes qa/uat/rounds/<date>-<round>.md plus the snapshots, in the shape of the Claude run reports, so the next session reads it firstPartly built
- TEST-02Script steps in the app. The UAT scripts (qa/uat/scripts/UAT-*.md, EN and AR) are read into the round so each tester sees only the steps for their roles, in their language, with the expected result; one tap marks ✅ / ⚠ / ❌ and opens the note form with the step attached; the round's table (the same columns as the Word scripts) is built from the marks, which replaces the printed sign-off table; the co-owner signs the round off in the app (rule 8: owner UAT)Live