📋 Converted from lead — . Customer details pre-filled.
Customer Information
QT-0001
Products / Items
#
Type
Product Name
Qty
Unit Price
Tax Type
VAT
Subtotal
Subtotal (excl. VAT)AED 0.00
VATAED 0.00
Discount− AED 0.00
Total (incl. VAT)AED 0.00
🔒 Terms & conditions and bank details are set by admin and will appear automatically on the PDF.
Leads
Name
Phone
Email
Status
Assigned To
Notes
No leads yet.
Logistics — Order Fulfilment
Viewing archived cards (Delivered) — Admin only
Active Orders
—
Pipeline Value
—
Delivered This Month
—
Overdue Cards
—
Orders Per Stage
Workload by Technician
Avg. Days Per Stage
Settings
Company Information (appears on PDF)
No logo
PNG, JPG recommended. Will appear on PDF.
My Preferences
Your quote prefix is auto-assigned from your initials. Contact admin to change it.
All Users
Name
Email
Role
Prefix
Status
Quotes
Leads
Actions
No users found.
Roles
← Select a role to view and edit its permissions
These are the active business workflows built into the portal. They are read-only — they document how the system behaves so rules are not accidentally overridden during development.
📋
Lead → Quote Conversion Flow
Applies to: Sales role and any role with leads_create + quotes_create
Active
1
Create a Lead — Salesman enters customer name, phone, email and notes. Lead status starts as New.
2
Customer fields lock — Once a quote is generated from the lead, the customer name, phone and email become read-only in both the lead and the quote. Prevents data drift.
3
Convert to Quote — Clicking "Quote" on a lead opens the quote form with customer details pre-filled. The lead is linked to the quote via lead_id.
4
Quote number auto-generated — Format: INITIALS-XXXX (e.g. RS-0003). Each salesman has a unique 2-letter prefix derived from their name.
5
Lead status syncs with quote — Saving a quote as Accepted or Rejected automatically moves the linked lead to Closed. Any other status moves it to Follow-up.
ⓘ Salesmen cannot create a quote directly — they must start from a lead. Admins can create quotes freely.
✓
Lead Close Flow
Applies to: Any role with leads_close permission
Active
1
Set status to Closed — When a lead is saved with status Closed, a modal appears asking: "Was the quotation accepted by the customer?"
2
Outcome selected — Choosing Accepted or Not Accepted (Rejected) updates both the lead status and all linked quotes to that outcome.
3
Status badge applied — The quote shows an Accepted or Rejected badge. The lead disappears from the salesman's view.
4
Visibility after close — Closed leads and Accepted/Rejected quotes are hidden from salesman views. Admin sees everything in All Activity.
ⓘ The "Closed" tab in Leads is only visible to users with leads_view_all. Salesmen never see closed records.
👥
Admin Lead Assignment
Applies to: Roles with leads_assign permission
Active
1
Admin assigns a lead — From the Leads table, admin clicks "Assign" and selects a salesman from the dropdown.
2
Salesman receives the lead — The lead appears in the salesman's Leads list tagged "Assigned by Admin". They can update status and notes only.
3
Restricted editing — On an assigned lead, the salesman gets a limited edit modal (status + notes only). They cannot edit customer details or delete the lead.
ⓘ Assigned leads are fetched via a separate RLS-safe query on assigned_to = auth.uid(). The lead owner and assignee both see it.
👁
Data Visibility by Role
Applies to: All roles — enforced at both UI and database (RLS) level
Active
1
Quotes — Each salesman sees only their own quotes. Closed quotes (Accepted/Rejected) are hidden from salesman views. Admin sees all quotes from all users.
2
Leads — Salesmen see only leads they created or were assigned. Admin sees all leads across all users. Closed leads are hidden from salesmen.
3
Customers — Customer Database is admin-only by default. De-duplicates customers across quotes and leads by matching name + phone.
4
Reports & Audit Log — All Activity and Audit Log are admin-only. Every significant action (create, edit, delete, close, assign) is logged with user name and timestamp.
ⓘ RLS (Row Level Security) is enforced at the Supabase database level — not just in the UI. Even direct API calls respect these rules.
#
Quote Numbering System
Applies to: All users who can create quotes
Active
1
Unique prefix per salesman — On first quote, a 2-letter prefix is auto-generated from the user's initials (e.g. Rayan Saleh → RS).
2
Collision check — If two salesmen share the same initials, the system auto-increments (e.g. RS → RS2) and saves it to their profile.
3
Sequential per user — Quote numbers increment from the user's highest existing number (e.g. RS-0004 follows RS-0003).
ⓘ The prefix is stored in profiles.quote_prefix. Admin can manually override a user's prefix from the Users table.
📄
VAT Calculation & PDF Export
Applies to: Roles with quotes_export_pdf permission
Active
1
UAE VAT at 5% — Applied automatically per line item. Subtotal (excl. VAT), VAT amount, and Total (incl. VAT) are calculated live.
2
PDF generated client-side — Uses jsPDF. Includes company logo, name, address, customer details, product table, totals, terms and bank details.
3
Company details from admin settings — Logo, company name, address, terms and bank details are pulled from the admin's saved Settings, not from the individual salesman.
ⓘ PDF button only appears after a quote is saved. Terms and bank details are set company-wide by admin only.
🔒
User Account Lifecycle
Applies to: Admin only
Active
1
Registration — Any person with the link can register. Password must be min 8 characters with at least one uppercase letter and one number.
2
Role assignment — New accounts default to the Salesman role. Admin assigns the correct role from Settings → Users & Roles.
3
Deactivation — Admin can deactivate a user without deleting them. Deactivated users are blocked on login and shown at 50% opacity in the user list.
4
Deletion — Removing a user deletes their account from Supabase Auth but keeps all their quotes and leads intact (user_id reference remains).
5
Password reset — Admin can set a new password for any user directly from the Edit User modal using the service role key.
ⓘ The admin account ([email protected]) cannot be deactivated or deleted through the portal.
Notifications & To-Do Alerts
Configure how and when the To-Do list notifies you. Browser push notifications work on desktop and mobile — on iPhone, add the portal to your Home Screen first for full push support.
Browser Push Notifications
Checking permission...
Morning digest — 6:00 AM UAE
Shows count of Today tasks when you open the portal
Evening nudge — 6:00 PM UAE
Reminds you of Today tasks still Not Started
WhatsApp Digest (coming soon)
Daily task summary sent to your WhatsApp number via API
Soon
WhatsApp number
Enter your number for when the API is connected
Database Setup SQL
Run this SQL once in your Supabase SQL Editor:
Logged In Devices
All active sessions across all user accounts. Remove a session to immediately sign that device out.
Loading sessions…
No active sessions found
No device sessions have been recorded yet.
Company Documents
Organise trade licenses, certificates, and all company documents.
Flag documents expiring withindays
Empty here
Create a folder or add a document to get started.
New Folder
Move Document
Preview not available for this file type.
● Admin — User Management
All Users
Name
Email
Role
Prefix
Status
Quotes
Leads
Actions
No users found.
● Admin — Customer Database
All Customers
Name
Phone
Email
Source
Salesman
Date
No customers found.
● Admin — Sales Dashboard
Period:
Pipeline Value
-
Total Quotes
-
Total Leads
-
Avg Quote Value
-
Conversion Rate
-
Overdue Leads
-
Salesman Performance
Lead Status Breakdown
Quote Status Breakdown
🏆 Top 5 Quotes by Value
Quote
Customer
Salesman
Value
Status
🕑 Recent Activity
All Activity
Type
Ref / Name
Customer
Salesman
Value
Status
Date
● Admin — Closed Deals
Closed Quotes
-
Closed Leads
-
Closed Value
-
Accepted / Rejected Quotations
Quote #
Salesman
Customer
Total (incl. VAT)
Status
Date
Closed Leads
Name
Salesman
Phone
Status
● Admin — Audit Log
Audit Log
Time
User
Action
Details
No audit logs match your filters.
● Admin — Requests
Requests
Date
Salesman
Lead
Quote
Type
Status
Actions
No requests yet.
● Admin — User Detail
User Detail
Quotations
Quote #
Customer
Total (incl. VAT)
Status
Date
Leads
Name
Phone
Email
Status
Viewing archived tasks
Viewing archived RMA cases — cases closed and removed from active list
Open Cases
—
In Progress
—
Resolved / Closed
—
Awaiting Parts
—
Cases by Stage
Cases by Type
Assigned Workload
Warranty vs Non-Warranty
Cases Opened — Last 8 Weeks
Avg. Days to Resolution
RMA Automation
Case Lifecycle
Auto-Archive on Close
When a case is marked Closed, it is automatically archived and removed from the active list. Customers can still view their tracking page.
New RMA Case
Move to Stage
Select New Stage
Document Preview
Employee Profile
Loading...
Employee Profile
Customer Records
Quote #
Total
Status
Date
No quotes for this customer.
Name
Phone
Status
Date
Salesman
No leads for this customer.
Approve Request
Salesman
Lead
Quote
Select the outcome to approve this close request:
Quotation Detail
Bill To
Details
Quote #
Date
Salesperson
Status
Product
Qty
Price
VAT 5%
Subtotal
Subtotal (excl. VAT)
VAT (5%)
Total (incl. VAT)
Terms & Conditions
Bank Details
Quotation Details
🔒 Customer details are managed from Customer Database. Quote status is updated via the Requests approval flow.
-
-
-
-
Draft
Lead Details
Name
Phone
Email
Status
Salesman
Date
Notes
Attachment
Edit Lead
0 / 500
Add Lead
🔒 Customer details are locked. Contact admin to update name, phone or email.
UAE VAT TRN — 15 digits. Leave blank for individuals.
0 / 500
Attach a product photo, enquiry image, or document. Max 3MB.
Edit User
Changes apply immediately when saved.
Loading roles...
Loading documents...
Passport-Size Photo
Staff ID card sized photo — shown on employee profile
Upload Document
Remove User
Are you sure you want to remove ? Their account will be deleted but their quotations and leads will be kept.
Edit Customer
Close Lead
Was the quotation accepted by the customer?
Assign Lead
Assign to a salesman.
Update Assigned Lead
👥 Assigned by Admin —
Add New Role
User Overrides
Customise permissions on top of their role defaults
ⓘ Changes here override the role's default permissions for this user only. Role:
Create New Card
Product / Description
Qty
Unit Price (AED)
Total: AED 0.00
#1085Stage
Order value
—
Invoice
Created
—
Order items
Client
?
Activity
?
Move stage
Assigned to
Due date
Admin actions
Add Company Document
Leave blank if no expiry (e.g. MOA, VAT Certificate)
Click to upload
No file chosen — PDF, JPG, PNG up to 10MB
Document Expiry Tracker
Company & all employee documents
Warning thresholddays
Sort by
Custom (drag to reorder)
Status
Newest first
Oldest first
A to Z
Z to A
Task notes
Auto-saves on close
Automation
Completion
Delete on Done — with 5s undo window
Task disappears immediately, you can undo within 5 seconds
Stale tasks
Archive Later tasks older than 30 days
Automatically moves forgotten backlog tasks to archive
Archive all done tasks now
Run once to clean up any completed tasks still showing