Home/Admin
Welcome back, admin. Manage customers, orders, demos, warranty, referrals and payouts from here.
Everything that needs you
Pulled live from across the business — pending demos, open enquiries, new order leads, filters coming due, and referral applications waiting to be approved. Action everything from here without bouncing tabs. Updates automatically.
Pulling pending items from Supabase.
At a glance
—
Active customers
—
Revenue this month
—
Pending tasks
—
Affiliate payouts due
Loading activity…
Pulling the last 24 hours from the database.All accounts
| Customer | Phone | Address | Joined | Action |
|---|---|---|---|---|
| Loading customers… | ||||
Login only
Quick path: spin up a customer login. A temp password is generated, then you copy a ready-to-send WhatsApp message with their credentials. Use this for customers who haven’t bought a unit yet but want portal access. For new installs, use Register customer instead — that one also records the warranty and filter schedule.
Share these credentials with the customer via WhatsApp. They can change the password after first login.
Full install record
Use this when you’ve just installed a unit at a customer’s home. This creates their login account, records the warranty (machine model + serial + install date), and sets up the filter replacement schedule — all in one go. They’ll get a WhatsApp message with their login. The unit appears under Warranty regs + Filter reminders automatically.
Computed from the install date. The customer sees these dates on their dashboard, and they auto-appear in Filter reminders as the dates approach.
All set.
Tip: Upload the warranty certificate and a photo of the install now while you remember. The customer will see them in their account dashboard.
All transactions
For orders closed on WhatsApp. 30-second log. Writes to the orders table. For installs that need warranty + filter schedule, use Register customer instead — this form only logs the sale.
Use the Stage dropdown on each row to progress an order through its lifecycle: lead → contacted → paid → installed (or cancelled). Installed and cancelled orders are locked.
| Order # | Customer | Model | Amount | Stage | Action |
|---|---|---|---|---|---|
| Loading orders… | |||||
Field schedule
Mark your available slots in the master calendar. Customer requests appear as pending — confirm to lock them in and notify primewater.sg@gmail.com.
Confirm → marks the booking as confirmed in the database and fires an email to primewater.sg@gmail.com. Reschedule → opens WhatsApp with a propose-new-time template. Reject → cancels the booking and sends a polite WhatsApp.
Audit trail of every email sent, calendar event created, and customer WhatsApp template fired. Auto-clears after 30 days in production.
Rental applications
Customers who submitted the rent-form page land here. Move them through the funnel: pending → contacted → confirmed → installed → active.
Click any row to drill in. Use the status dropdown inside the drilldown to advance the application through the funnel — admin only.
| Name | Phone | Plan | Unit | Install | Status | Submitted |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Your availability
Tick the windows you can do home demos in. Mon–Sat, 3 windows per day (morning · afternoon · night) — max 2 windows ticked per day so you don’t over-commit. Customers see only what you tick. Each demo is ~2 hours in their home (incl. travel).
Speed up planning. Bulk operations apply to the visible week (Mon–Sat).
Recurring revenue
Customers whose 6-month or 12-month filter is approaching due date — auto-computed from each install date in the customer record. One-click WhatsApp reminder per row uses your filter-due template.
🚀 Send all reminders due now
Opens a WhatsApp tab for every overdue + this-week customer (0 right now). Click Send in each tab. Auto-stamps "reminded" so they don't get double-messaged.
Sorted by urgency. Click WhatsApp to fire the filter-reminder template (pre-filled with their name + due date). "Mark reminded" suppresses the row for 7 days so you don't double-message.
Email captures
Every email captured by a newsletter strip (footer), the homepage popup, or the buyer’s guide download. Sourced from newsletter_subs. Father can export the list for Mailchimp / SendGrid later.
Guide opens = total clicks on the “Read the guide now →” link across all signups. Resubmits = email already subscribed but submitted again (tracked per row).
Click any row to copy the email. Click Export CSV below to download for upload into Mailchimp / SendGrid.
| Name | Source | Opens | Re-tries | Last opened | Signed up | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Canned messages
Pre-written messages you send 50× a day. Click Use on any template → opens WhatsApp with the message pre-typed. Edit the [bracketed] bits, hit send. Saves about 30 minutes a day.
Variables: [name] [date] [time] [model] [address] [serial]
From the contact form
Every message submitted through contact lands here in real time. Tap WhatsApp to reply directly, or mark as resolved once you’ve handled it.
| When | From | Interest | Message | Action |
|---|---|---|---|---|
| Loading enquiries… | ||||
Audit trail
Every email, calendar event, WhatsApp template, and system event — in one searchable timeline. Auto-clears after 30 days in production.
Pending approval
| Customer | Serial | Purchased | Status | Action |
|---|---|---|---|---|
| No warranty registrations yet. | ||||
Approve flips the registration to active, fires a WhatsApp confirmation to the customer, and starts the 5-year coverage clock. PDF certificate generation lands in a later pass.
Become a referrer
| Applicant | Phone | Type | Code | Applied | Action |
|---|---|---|---|---|---|
| Loading referral applications… | |||||
Approve fires a welcome WhatsApp with the referrer's tracking link and unlocks the affiliate dashboard for them.
| Referrer | Tracking link | Sales | Earned | Pending | Action |
|---|---|---|---|---|---|
| No active referrers yet — approve a pending applicant to add them here. | |||||
PayNow batch
| Referrer | PayNow | Sales | Amount | Action |
|---|---|---|---|---|
| No payouts ready yet. Once referrers convert sales and clear the 14-day holding window, they appear here. | ||||
Holding period is 14 days from sale completion. Anything within that window is in the next batch.
| Date | Referrer | Sales | Amount | Reference |
|---|---|---|---|---|
| No payouts run yet. | ||||
Stock & reorders
Real-time stock count of the SKUs you sell. Yellow = low (≤ threshold), red = out. Click any row to adjust manually.
Add to inventory after a Korea container clears customs.
Owner only · role-gated
People with access to this dashboard. Owners can do everything (delete customers, edit templates, change settings, add/remove other admins). Staff can run day-to-day operations but not the sensitive ops. The last owner cannot be removed or demoted.
One click does everything: allowlists the email, creates their auth account, and gives you a temp password to WhatsApp them. No email invite — bypasses the broken Supabase mailer that was sending links to localhost and getting flagged as spam.
| Name | Role | Added | Action | |
|---|---|---|---|---|
| Loading admins… | ||||
Click Demote to flip an owner to staff (or staff to owner). Click Remove to revoke admin access entirely — the user keeps their auth account but stops being recognised as admin. The last owner is protected: the DB trigger blocks the demote/remove.
Configure your world
Business identity, working hours, notification destinations, and integrations. Changes save to the Supabase settings table and apply on every device.
Your reply appears inline on the customer’s account dashboard. They see it next time they open account — or live if they’re already on it.
Plain text. No length cap, but keep it concise — the customer reads this on the same card as their original message.
Walk through the 3 steps below. The Mark paid button at the bottom records the payment in Supabase once you’ve actually sent it.
Paying
—
—
Amount
S$0
1PayNow to this number
—
Open your bank app (DBS PayLah, PayNow, OCBC), paste the number, send S$0.
2WhatsApp them the receipt
💬 Open WhatsApp with pre-filled messageOpens WhatsApp with a friendly “your S$0 just landed” message you can edit before sending.
3Confirm payment