Comprehensive guide for all user roles — Web Application & Mobile App
Introduction
G-Flex AI+ is a multi-tenant B2B2C HR & healthcare benefits platform developed by Genesis Flex Sdn. Bhd. for the Malaysian market. It connects employers (Corporates), healthcare providers (Merchants), and employees (Members) on a single platform, with an Admin layer for Genesis Flex staff.
Who This Manual Is For
This manual is organised by user role. Jump directly to your role using the left sidebar, or read sequentially for a complete understanding of the system.
Role
Who They Are
Primary Platform
Key Capabilities
Admin
Genesis Flex staff
Web App
Full system control — corporates, merchants, members, plans, billing, reporting
A Benefit Plan defines the rules — annual limit, encounter limit, covered merchant types, dependant eligibility. A Member Benefit Plan (MBP) is the enrolment linking a specific member to a specific plan, tracking their utilisation.
Guarantee Letters (GLs) +
A GL is a pre-authorisation issued to a member before a medical visit, guaranteeing payment to the merchant up to a specified amount. It must be issued before the visit for panel (registered) clinic visits.
Panel vs Non-Panel Claims +
Panel claims occur at registered G-Flex AI+ merchants — the merchant registers the patient, submits a bill, and payment is settled via invoice. Non-Panel (NP) claims are reimbursement claims submitted by the member for visits at non-G-Flex AI+ providers — subject to a two-tier approval workflow.
Bills → Invoices → E-Invoices +
Bills are individual encounter records submitted by merchants. Multiple bills are bundled into an Invoice for payment settlement with a corporate. An E-Invoice is the LHDN-compliant digital tax invoice submitted to Malaysia's tax authority.
Multi-Tenancy +
Each Administrator (Genesis Flex entity) is a separate tenant. All data — corporates, members, merchants, plans, bills — is isolated by administrator_id. Row-Level Security (RLS) in the database enforces this isolation automatically.
Language Support
The web application supports English and Bahasa Malaysia. Click the language toggle button at the bottom of the left sidebar to switch the entire interface — navigation labels, page titles, table headers, buttons, status badges, and form labels — to Bahasa Malaysia (or back to English). Your preference is saved across sessions automatically.
💡 Tip
The mobile app also supports English and Bahasa Malaysia. Change your language preference in Profile → Settings.
System Architecture
Technical overview of the G-Flex AI+ platform
System Architecture
G-Flex AI+ consists of two frontend applications backed by a shared Supabase (PostgreSQL) database.
Web Application
Single HTML file (gflex-app.html)
Vanilla JavaScript — no framework
Works via file:// or HTTPS
Roles: Admin, Corporate, Merchant, Member
Mobile App
React Native + Expo SDK 52
iOS & Android
Expo Router (file-based navigation)
Roles: Member, Corporate Approver
Supabase Backend
PostgreSQL 17 database
73 tables, 131+ RLS policies
Supabase Auth (email/password)
13 storage buckets
Edge Functions (sync, push)
Realtime subscriptions
Integrations
LHDN (Malaysia e-invoicing)
NIH ICD-10-CM API (diagnosis codes)
Bubble.io (legacy data sync)
pg_cron (scheduled sync every 30 min)
User Data Flow
GL issued (if required)
→
Member visits clinic
→
Merchant registers patient
→
Bill submitted
→
Invoice created
→
E-Invoice (LHDN)
→
Payment settled
Browser / Device Requirements
Platform
Requirement
Web — Chrome / Edge
Version 90+ recommended
Web — Firefox
Version 88+
Web — Safari
Version 14+
Mobile — iOS
iOS 15+ (iPhone 8 or newer)
Mobile — Android
Android 10+
Internet connection
Required for all operations (no offline mode in v1)
Getting Started
Accessing the system and logging in — web and mobile
Getting Started
Web Application — Login
The G-Flex AI+ web application uses a split-screen login layout. The left panel displays the Genesis Flex branding; the right panel contains the login form.
Figure 1 — Web Login Screen
1
Open the G-Flex AI+ web application in your browser. Your administrator will provide the URL.
2
Enter your email address (the email registered with your G-Flex AI+ account).
3
Enter your password. First-time users should use the temporary password provided by your administrator, then change it immediately in Settings → Profile.
4
Tick "Remember me" to keep yourself logged in across browser sessions. Leave unticked on shared computers.
5
Click "Sign In". You will be routed to the dashboard appropriate for your role.
Password Reset
Click Forgot password? and enter your email address. A reset link will be sent to your inbox. The link expires after 1 hour.
Mobile Application — Login
Download G-Flex AI+ from the App Store (iOS) or Google Play (Android). Open the app and you will be presented with the login screen.
Figure 2 — Mobile Login Screen
Biometric Login (Face ID / Fingerprint)
After your first successful password login, the app will offer to enable biometric authentication. Once enabled, subsequent logins show Face ID and Fingerprint buttons below the "Sign in" button. Biometric can be toggled off in Profile → Settings → Biometric Login.
💡 First Login
All migrated users have a temporary password: GFlex@Reset2026. Change it immediately after logging in via Settings → Profile → Change Password.
Navigating the Web Application
After login, a left sidebar appears with navigation links tailored to your role. Click any item to navigate — the main content area updates without a full page reload.
Figure 3 — Web Application Main Layout showing sidebar navigation and dashboard
Top Bar Elements
Page title — current module name on the left
Bell icon — in-app notification dropdown (unread count badge)
Language toggle — bottom of sidebar, switches EN ↔ BM
Sign Out — bottom of sidebar, logs you out and clears the session
Merchant — Dashboard
Clinic operations overview
Merchant The merchant dashboard shows today's clinic activity.
KPI Cards
KPI
Description
Patients Today
Registered patients for today's date
Open Bills
Bills in draft/pending status awaiting submission
Revenue (MTD)
Total approved bill amounts for the current month
Invoices
Number of outstanding invoices
Merchant Navigation
Dashboard — clinic overview
Patients — register a new patient / open active registrations
Bills — submit and manage bills for completed visits
GLs — view and verify guarantee letters
Products & Services — manage your product/service catalogue
Invoices — view invoices issued to your clinic
Queue — patient queue management
Telemedicine — teleconsultation sessions
Payors — TPA/payor management (CMS feature)
Merchant — Register Patient
Opening a visit record for a G-Flex AI+ member
Merchant Registering a patient creates an open registration that links the member to a benefit plan for this visit. The registration must be closed by submitting a bill.
Registration Workflow
1
Click "Add Patient" from the Patients page or Dashboard. The button is larger and more prominent than standard buttons (8px 18px padding, 13px font) for quick access during busy clinic hours.
2
Search for the member by name or NRIC. If a corporate filter is active on the Members page, the search is scoped to that corporate.
3
Review Treatment Policy. If the member's corporate has a treatment policy, it appears as a collapsible amber banner. Read it before proceeding.
4
Select a benefit plan. Eligible plans are shown as cards with annual limit, remaining balance, and encounter limit. Plans blocked by an already-open registration show an informational message instead.
5
Click "Register Patient". An open registration record is created. The patient is now in the active registrations list.
Walk-In Registration
The Walk-In button is only available for merchants with the CMS module enabled. If your clinic does not have CMS enabled, walk-in registration is not available — only G-Flex AI+ members can be registered.
⚠ One Active Registration Per Plan
A member cannot have two concurrent open registrations using the same benefit plan. If a plan is already in use at another clinic, it will appear as blocked and cannot be selected until the other registration is closed (bill submitted).
Close Encounter
When closing an encounter (via bill submission or force close), a confirmation dialog appears asking you to confirm the action. This prevents accidental closures of active visits.
Line Item Auto-Calculation
When adding line items during bill submission or the Submit Claim flow, the total for each line item auto-calculates as Qty × Unit Price. You can enter either the total or the unit price — the other field adjusts automatically.
Dependant Eligibility
When registering a dependant member, only plans that allow the dependant's relationship type are shown. Child dependants older than the plan's Child Max Age are automatically excluded.
Merchant — Bill Submission
Filing a completed visit record for payment
Merchant Bills are submitted after a patient visit is complete. They form the basis for invoicing and payment.
Submitting a Bill
1
Select the member from the bill submission form. The treatment policy appears in a collapsible banner.
2
Select the active registration (or create a new one if there's no open registration).
3
Enter visit details: visit date, claim number, receipt type.
4
Add line items for each service provided. The available line item types depend on your merchant type (see table below). Each type has a lookup searchbox connected to the clinical master list. Unit price auto-calculates from total ÷ qty to 2 decimal places.
5
SST toggle: if your clinic is SST-registered, toggle SST on. The SST amount (8%) is automatically calculated and added to the total.
6
Click "Submit Bill". The bill moves to Pending status and an admin notification is triggered.
Line Item Types by Merchant Type
Not all line item types are available to every merchant type. The system automatically filters the available types based on your clinic's registered merchant type:
If you do not see a line item type you expect, check your merchant type registration with your Genesis Flex administrator. Specialist, Hospital, and Medical Centre merchants have access to all line item types including Imaging.
Bills Table
The Bills listing page shows the following columns:
Claim No + Date — the claim number and visit date
Member — patient name
Merchant — your clinic name
Type — receipt type
Amount — total billed amount
Status — current bill status badge
Actions — icon buttons (eye icon to view bill details)
NIH ICD-10 Diagnosis Search
When adding diagnosis line items, the search queries both the local clinical lookup list and the NIH ICD-10-CM API (74,719 codes). NIH results are marked with a teal ICD-10 badge. Selecting an NIH code automatically saves it to the local list for faster future searches.
Adding a New Clinical Item
If your required medication, treatment, or diagnosis is not in the list, type it and click "Add [text] as new [Type]". The item is created as Pending and must be approved by the admin. You can still use it in the current bill — it will appear with a gold PENDING badge.
Merchant — Guarantee Letters
View and verify GLs for incoming patients
Merchant Merchants have read-only access to GLs. GLs are issued by the Genesis Flex admin or requested by the corporate.
Verifying a GL
When a patient presents a GL at the clinic, search for the member in the GL listing to verify the GL is valid, the approved amount, and the expiry date. Do not provide services exceeding the GL approved amount without contacting Genesis Flex.
GL Disclaimer
The corporate's GL disclaimer text is shown on the GL record. Read it carefully — it may contain specific treatment restrictions or pre-authorisation requirements.
Merchant — Active Registrations
Manage open patient visits
Merchant Active Registrations shows all open patient visits at your clinic. A registration is opened when you Register a Patient and closed when you submit a bill.
Active Registration Table
Each row shows: Member Name, NRIC (masked), Corporate, Benefit Plan, Registration Time. Actions:
Submit Claim — opens the bill submission modal pre-populated with the registration details
Force Close — closes the registration without submitting a bill (use only if the patient did not receive services)
Filter & Refresh
Filter by Merchant Type and Registration Status. Click Refresh to update the list in real-time.
⚠ Force Close
Force closing a registration without submitting a bill releases the benefit plan lock. Only use this if the patient did not receive any services.
Merchant → Telemedicine
Telemedicine (Merchant)
The Telemedicine module lets CMS-enabled merchants manage remote video consultation sessions for their members. It is only visible when the merchant account has Telemedicine enabled by the G-Flex AI+ administrator.
⚠️ Feature Toggle Required
Telemedicine only appears in your sidebar if the Admin has enabled the CMS Module and Telemedicine feature flag for your merchant account. Contact your G-Flex AI+ admin if the menu item is missing.
Session Status Lifecycle
Pending Request
→
Confirmed
→
Waiting
→
In Progress
→
Completed
Cancelled
·
Declined
·
No Show
Managing Teleconsult Sessions
Action
When to Use
Result
Confirm
Member has submitted a request
Status → Confirmed; member notified
Start Session
Appointment time; member is waiting
Status → In Progress; Daily.co video room activated
Decline
Merchant cannot accommodate request
Status → Declined; member notified
Mark No Show
Member did not join at appointment time
Status → No Show; slot freed
Complete
Consultation finished
Status → Completed; e-prescription can be issued
Issuing an E-Prescription After a Teleconsult
After a session is marked Completed, a Issue Rx button becomes available on the session row. This opens the 3-step E-Prescription wizard pre-linked to the telemedicine booking. See Merchant → E-Prescriptions for the full wizard walkthrough.
Wireframe — Merchant Telemedicine Session List
All
Pending
Confirmed
Completed
Date / TimeMemberTypePlanStatusActions
03 May 2026, 10:00Ahmad ZulkifliVideoOutpatientConfirmed
03 May 2026, 11:30Nurul AinVideoGP PlusPending
02 May 2026, 09:15Lee Wei KangVideoSpecialistCompleted
Wireframe placeholder — replace with screenshot
Merchant → E-Prescriptions
E-Prescriptions (Merchant)
Merchants can issue digital e-prescriptions (E-Rx) linked either to a completed teleconsult session or to a submitted panel bill. Prescriptions are immediately visible to the member in their mobile app.
How to Issue an E-Prescription
The 3-step wizard opens from two entry points:
Teleconsult session row — click Issue Rx after the session is Completed
Submitted bill row — click the E-Rx button on an approved or paid bill
Step 1 Patient & COC Check
→
Step 2 Add Drugs
→
Step 3 Review & Issue
Step 1 — Patient & Continuity of Care Check
The patient's member record is pre-populated from the linked session or bill. The system performs a Continuity of Care (COC) check — if the member has an open prescription still within its validity period for the same drug class, a warning is shown. Controlled substances are blocked at this step if a prescription is still active.
Step 2 — Add Drugs
Add one or more drug rows. Each row captures:
Field
Required
Notes
Drug Name
Yes
Free text or searchable from local master list
Dosage
Yes
e.g. 500mg, 10mg
Frequency
Yes
e.g. Once daily, Twice daily, PRN
Duration (days)
No
Auto-computes valid_until date
Quantity
No
Number of units
UOM
No
Unit of measure — Tablet, Capsule, ml, etc.
Instructions
No
Free text patient instructions (e.g. Take after meals)
Click + Add Drug to add another row. Rows can be removed with the ✕ button.
⚠️ Controlled Substances
If a drug is classified as a controlled substance and the member already has an active prescription for it, the wizard blocks issuing a duplicate prescription. You must wait for the existing prescription to expire or be dispensed before issuing a new one.
Step 3 — Review & Issue
Review the full prescription summary: patient details, prescriber (your name and clinic), validity period, and all drug rows. Optionally add a Note for the member (e.g. "Return for follow-up in 2 weeks"). Click Issue Prescription to finalise.
On issue, the prescription is saved to the eprescriptions table with status = 'issued' and immediately appears in the member's Prescriptions screen in the mobile app.
Prescription Statuses
Status
Meaning
Issued
Prescription has been issued; not yet dispensed
Dispensed
Medication dispensed to the member by a pharmacy
Expired
Past the valid_until date without being dispensed
Cancelled
Cancelled by the prescriber before dispensing
Refills
When creating a prescription, you can set a Refill Limit (default 0). Members can present the prescription at a panel pharmacy for refills up to the allowed count. Each dispense increments refill_count. When refill_count = refill_limit, no further refills are allowed.
Manage your clinic's financial records within G-Flex AI+
Merchant Merchants with the Accounting module enabled gain access to a full suite of financial management tools directly within G-Flex AI+. This eliminates the need for a separate accounting system for clinic operations.
Feature Toggle Required
The Accounting module must be enabled by your G-Flex AI+ administrator. If you do not see the Accounting menu items in your sidebar, contact your admin to request access.
Chart of Accounts
Define and manage your clinic's own Chart of Accounts (COA). Accounts are organised by type: Assets, Liabilities, Equity, Revenue, and Expenses. Each account has a code, name, and type classification used throughout the accounting module.
Journal Entries
Create manual journal entries with debit and credit lines. Each entry must balance (total debits = total credits). Journal entries are posted to the General Ledger automatically.
GL Posting Configuration
Configure automatic General Ledger posting rules that map bill line item types and payment events to specific accounts in your Chart of Accounts. This automates the bookkeeping for daily clinic transactions.
Suppliers & Accounts Payable
Manage your clinic's suppliers and track amounts owed:
Suppliers — maintain a list of your clinic's suppliers (pharmaceutical companies, equipment vendors, etc.)
AP Bills — record bills received from suppliers
AP Payments — record payments made against AP bills
Credit Notes — record credit notes received from suppliers for returns or adjustments
Bank Accounts & Reconciliation
Register your clinic's bank accounts and perform bank reconciliation to match your G-Flex AI+ records against bank statements. This ensures your financial records are accurate and up to date.
SST Settings
Configure your clinic's SST (Sales and Service Tax) settings for accounting purposes. If your clinic is SST-registered, the system tracks SST collected on bills and SST paid on supplier invoices, generating the data needed for SST returns.
Merchant — Invoices
View invoices issued to your clinic
Merchant Merchants have read-only access to invoices. Invoices represent the bundled payment due from corporates for your submitted bills.
View invoice status (Finalised / Queued / Submitted / Paid), total amount, and the list of bills included. Contact your Genesis Flex account manager if you have queries about a specific invoice.
Glossary
Key terms used throughout G-Flex AI+
Term
Definition
Administrator
A Genesis Flex entity (tenant). All data is isolated per administrator.
Annual Limit
Maximum amount a member may claim per year under a specific benefit plan.
Assigned Benefit Plan (ABP)
The link between a benefit plan and a corporate — activating that plan for the corporate's members.
BRN
Business Registration Number — the corporate's official registration number.
Corporate
An employer company that has enrolled their employees in G-Flex AI+.
Dependant
A member whose relationship type is not 'principal' — typically spouse, child, or parent of an employee.
E-Card
Digital membership card displayed on the mobile app, showing member identity and coverage summary.
Maximum number of visits (encounters) allowed per year under a benefit plan.
FY Adjustment
A financial year addition or deduction applied to a specific member's plan limit by an admin or corporate user.
GL (Guarantee Letter)
Pre-authorisation letter issued to a member before a medical visit, guaranteeing payment to the merchant.
HSP
Hospital Stay Plan — GL type for extended inpatient stays.
ICD-10
International Classification of Diseases, 10th Revision — the standard system for diagnosis codes.
Invoice
A bundled payment request sent to a corporate, covering multiple approved bills.
LHDN
Lembaga Hasil Dalam Negeri — Malaysia's Inland Revenue Board. Receives e-invoices.
MBP (Member Benefit Plan)
The enrolment record linking a specific member to a specific plan, with their utilisation tracked.
MC
Medical Certificate — issued by a doctor for sick leave. Tracked as a bill line item type.
Merchant
A G-Flex AI+ registered healthcare or benefit provider (clinic, hospital, pharmacy, etc.).
MSIC
Malaysia Standard Industrial Classification — required for LHDN e-invoice submission.
NRIC
National Registration Identity Card number — Malaysia's 12-digit national ID number (e.g., 901231145678).
NP Claim
Non-Panel Claim — a reimbursement claim for a visit at a non-G-Flex AI+ provider.
Panel
A merchant registered in G-Flex AI+. Visiting a panel clinic means direct billing through G-Flex AI+.
Principal
The primary enrolled member (usually the employee). Dependants are linked to a principal.
RLS
Row-Level Security — database-level access control ensuring data isolation between tenants and roles.
RPC
Remote Procedure Call — a Supabase function call that executes server-side SQL logic.
SST
Sales and Service Tax — Malaysia's 8% service tax applied by SST-registered merchants.
TIN
Tax Identification Number — required for LHDN e-invoice submission.
TPA
Third-Party Administrator — an external claims management company acting as intermediary.
Utilisation
The proportion of a benefit plan's annual limit that has been claimed/used.
Watchlist
A flag placed by an admin on a member account suspected of fraudulent or excessive claiming.
Status Workflows
Visual reference for all status transitions
Status Reference
Bill Status
Draft
→
Pending
→
Submitted
→
Approved
→
Paid
Submitted
→
Rejected
Any
→
Cancelled
GL Status
Issued
→
Approved
→
Utilised
Approved
→
Cancelled
Invoice Status
Draft
→
Finalised
→
Queued
→
Submitted
→
Paid
E-Invoice Status
Pending
→
Submitted
→
Validated
Submitted
→
Rejected
Validated
→
Cancelled
NP Claim Approval Status
Submitted
→
Amount ≤ auto threshold?
→
Auto Approved
Pending Corporate
→
Corporate Approved
→
Amount > Tier 2?
→
Pending Admin
→
Fully Approved
Any pending
→
Rejected
Any pending
→
Info Requested
Status Badge Colour Reference
Status
Badge
Meaning
Draft
Draft
Not yet submitted; editable
Pending
Pending
Awaiting action or review
Submitted
Submitted
Submitted for approval
Approved
Approved
Approved; awaiting payment
Paid
Paid
Payment settled
Active
Active
Currently active record
Inactive
Inactive
Deactivated; not in use
Rejected
Rejected
Declined; see remarks
Open / Issued
Open
In progress (GL, registration)
FAQ
Frequently asked questions
Frequently Asked Questions
Login & Account
I forgot my password. What do I do? +
On the login screen, click Forgot password?, enter your email address, and check your inbox. The reset link expires in 1 hour. If you don't receive the email, check your spam folder or contact your administrator.
My account says "Inactive". Who do I contact? +
Contact your HR administrator or Genesis Flex support. Your account may have been deactivated by your company's admin.
Can I use the same email for web and mobile? +
Yes. The same credentials work for both the web app and the mobile app. Your session is separate between platforms.
Benefits & Claims
My benefit plan balance shows less than I expect. Why? +
Your balance reflects all approved bills, not just paid ones. Additionally, open registrations at panel clinics may temporarily hold entitlement. Contact your HR admin if you believe there is an error — they can review your FY adjustments and claim history.
Can I visit any clinic, or only G-Flex AI+ panel clinics? +
You can visit any clinic, but reimbursement processes differ. Panel clinics (G-Flex AI+ registered) handle billing directly — no out-of-pocket payment for covered services. Non-panel clinics require you to pay upfront and submit a Non-Panel (NP) reimbursement claim, subject to approval.
Do I need a GL before visiting a specialist? +
This depends on your corporate's policy. Some plans require a GL for all specialist visits; others only require one for inpatient admissions. Check your treatment policy (visible in the Benefits screen) or ask your HR team.
My NP claim has been in "Pending Corporate" status for days. What do I do? +
Contact your designated corporate NP approver or HR manager. They may not have been notified. You can also check the approval history in the Claim Detail screen to see if an "Info Requested" note has been sent to you.
Merchants (Clinic Staff)
A patient says their plan is blocked. What does this mean? +
The member's benefit plan is currently locked by an open registration at another G-Flex AI+ clinic. The patient cannot use the same plan at two clinics simultaneously. The other registration must be closed (bill submitted) before this clinic can register the patient with that plan. Offer to use a different plan if the member has one, or ask the patient to contact the other clinic.
The diagnosis code I need is not in the system. Can I add it? +
Yes. Type the diagnosis name or ICD-10 code in the searchbox. The system first searches local items and then the NIH ICD-10-CM API (74,719 codes). If not found, click "Add as new Diagnosis" — the item is created as Pending and must be approved by the admin. You can still use it in the current bill.
How do I close a patient registration without submitting a bill? +
In Active Registrations, click Force Close on the registration row. Use this only when the patient did not receive any services — for example, if they registered but left before being seen.
Admin
How often does data sync with Bubble.io? +
The Supabase → Bubble sync runs every 30 minutes via a scheduled Edge Function. Real-time changes in Supabase are also pushed to Bubble immediately via a database trigger and pg_net HTTP calls.
A merchant submitted a pending clinical item. How do I approve it? +
Go to Settings → Pending Items. You'll see a unified list of pending diagnoses and products/services. Click Approve to approve, or Reject (with confirmation) to reject. Approved items immediately become available in all bill submission searchboxes for that tenant.
How do I add a new admin user? +
Go to Settings → Users, click Add User, enter their email and role, and click Save. The user will receive an email from Supabase Auth to set their password. Their role determines what they can see and do in the system.
Support
For issues not covered in this manual, contact Genesis Flex support:
Email: support@genesisflex.my
Admin portal: admin@genesisflex.my
Hours: Monday–Friday, 9am–6pm MYT
💡 In-App Support (Mobile)
Members can access support via the mobile app: Profile → Support tab.