Active Rentals
—
Online Bookings Pending
—
Awaiting vehicle assignment
Failed / Unpaid
—
Upcoming Returns (7 days)
—
⏰ Overdue Returns
—
Past end date — action needed
Today's Pickups
—
Compliance Alerts
—
Expiring within alert window
Open Toll Items
—
Vehicles Under Repair
—
Recent Activity
Loading…
⚠️ Alerts
Loading…
This Week
Revenue
—
New Customers
—
Returned
—
Fleet Active
—
Total Fleet
-
Available
-
Rented
-
Maintenance
-
Retired
-
Fleet
Loading fleet...
Total Customers
-
Active
-
Inactive
-
Blacklisted
-
Customers
Loading customers...
📋 Reservations
All rental reservations — search, filter, and manage from here.
Total
-
Active
-
Open
-
Closed
-
Cancelled
-
Loading…
All system settings in one place. Changes apply immediately after saving.
Company
Billing & Payments
Fuel
Fleet Defaults
Notifications
Fees & Charges
Rental Defaults
Global defaults for vehicle classes. Use "Sync to all classes" to push bonds & overage rates to existing classes.
Bonds & Deposits
Compliance Alerts
Days before expiry to raise an alert. Warning = orange alert, Critical = red alert + WhatsApp notification.
Young Driver Bond (21-24)
Flat bond for drivers under "Young threshold". Leave 0 to use multiplier instead.
Drivers younger than this get the young bond. e.g. 25 means 21-24 inclusive.
Used only when fixed amount is 0. e.g. 150 = 1.5× class bond.
Online Booking — Rental Types
Control which rental types appear on the public booking page. Use this to launch one type at a time without touching any other settings.
💡 If only one type is enabled, customers skip the type-selection step entirely and go straight to vehicle selection.
Bond Bank Transfer Details
Bank details shown to customers paying their bond by bank transfer on the booking page.
API Integrations Admin only
These override the .env file. Leave blank to use the server's .env value. Sensitive keys show only the last 4 characters.
Email
💳 Stripe — Rent Account
Used for ongoing rent payments + customer card setup
🔒 Stripe — Bond Account
Used for security deposits / bond charges (separate Stripe account)
Miles WhatsApp
Other APIs
GPS Tracking (Traccar)
🔑 Agent API Keys
Bearer tokens for fine-nominator, toll-nominator, rego agent, etc.| NAME | ROLE | KEY | CREATED | ACTIVE | ACTIONS |
|---|---|---|---|---|---|
| Loading… | |||||
Vehicle Classes
| Class | Features | Available Online | Recommended | Status | Actions | ||
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Pricing Rates
Loading…
Vehicle Types
| # | Name | Status | Actions |
|---|---|---|---|
| Loading… | |||
Additional Charges
| # | Name | Category | Charge Type | Amount | Applies To | Taxable | Default | Status | Actions | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||||
Email Templates
Select a template on the left to edit
Variables:
WhatsApp Templates (Miles)
Edit the automatic WhatsApp messages customers receive. Use
{{variable}} placeholders.
Clearing a body falls back to the built-in default for that language only.
Select a template on the left to edit
Variables:
Terms & Conditions
One version per rental type — customers sign this in the contract
Show:
| Rental Type | Version | Status | Updated | Actions |
|---|---|---|---|---|
| Loading… | ||||
Privacy Policy
Synced from m8tservices.com.au/privacy-policy/ — read-only
Apply to Rental Types
Last synced: —
Not yet synced — click "Sync from Website" to load content.
Fair Wear & Tear Policy
Synced from m8tservices.com.au/fair-wear-tear-policy/ — read-only
Apply to Rental Types
Last synced: —
Not yet synced — click "Sync from Website" to load content.
Contract PDF Template
Editable text blocks printed on the generated contract PDF
🔧 Maintenance Categories
Configure the category types available when logging maintenance jobs and vehicle expenses. Changes apply to all new entries — existing records are not affected.
ADD NEW CATEGORY
💡 Tip: The value is stored with maintenance records (keep it short, lowercase, no spaces). The label is what operators see in dropdowns.
Audit Log
| Time | Event Type | Severity | Actor | Summary | Reservation | Customer |
|---|---|---|---|---|---|---|
| Select filters and search to load entries | ||||||
Admin Tools
Development and testing utilities. Use with care in production.
💾 Data Recovery Backup (Excel)
Everything you would need to keep operating, or rebuild, if this system were lost.
Seven sheets: Reservations, Vehicles (asset register
with VIN, expiries, purchase and sale), Customers (contact and licence
details), Payments, Bonds Held (money you owe back),
Vehicle Costs and Pricing. The first sheet explains
what the file holds and what it does not.
Contains customer personal information — names, contact details and dates of birth. Store it somewhere access-controlled. Licence and passport numbers are deliberately not included.
A copy is also emailed automatically every Monday to the company email set in Settings → General.
Contains customer personal information — names, contact details and dates of birth. Store it somewhere access-controlled. Licence and passport numbers are deliberately not included.
A copy is also emailed automatically every Monday to the company email set in Settings → General.
Stripe Processing Fees
Fills in the real Stripe fee on past payments so Analytics → Fees & Rails
can compare what PayTo and card actually cost you. Fees were never being recorded
because the webhook read the Stripe key from the wrong place — fixed, but the
history needs filling in once.
Safe to run more than once: it only touches payments with no fee recorded, and it does not alter any amount or status. It also runs automatically at 3:30am each night.
Safe to run more than once: it only touches payments with no fee recorded, and it does not alter any amount or status. It also runs automatically at 3:30am each night.
▶ Manual Billing Run
Runs the weekly billing engine immediately — same logic as the Thursday cron.
Use any date to simulate a past or future billing cycle.
Tip for testing: create a reservation with a start date 3–4 weeks in the past, then click Run several times stepping through dates to process each week.
Tip for testing: create a reservation with a start date 3–4 weeks in the past, then click Run several times stepping through dates to process each week.
🧾 Regenerate Closing Invoices
Rebuild every closed reservation's tax invoice using the current logic
(correct period, refunds shown as line items, no blank pages).
Use after shipping invoice logic fixes so historical invoices reflect the new rules.
Silent by default — no customer emails. Tick the box to email each customer their corrected PDF (rare — do this only when the change is material to them).
Silent by default — no customer emails. Tick the box to email each customer their corrected PDF (rare — do this only when the change is material to them).
🚧 Maintenance Mode
When enabled, all visitors see a friendly “back shortly” page instead of the CRM.
Use this BEFORE deploying risky changes (billing, payments, Stripe) so customers don’t hit a half-broken state mid-action.
Always reachable while ON: /health (uptime monitors), /api/webhooks/* (Stripe must keep delivering), /api/auth/login, and /api/settings (so you can turn it back off).
Always reachable while ON: /health (uptime monitors), /api/webhooks/* (Stripe must keep delivering), /api/auth/login, and /api/settings (so you can turn it back off).
Loading current status…
🏦 PayTo (Long-term + RTB)
When enabled, a "Send PayTo Setup Link" button appears on long-term and rent-to-buy reservations.
The customer authorises a weekly direct debit via NPP — no card surcharge, no chargebacks.
Daily rentals continue to use card payments unchanged.
Loading current status…
🩺 System Health
Live status of every monitor that matters. Auto-refreshes every 30 seconds while this tab is open.
External monitors (UptimeRobot etc.) poll the same endpoints.
New Terms & Conditions Version
Invoices
Loading…
| Invoice # | Date | Customer | Period | Type | Amount | Status | Actions |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Pending
-
Charged
-
Waived
-
Disputed
-
Pending Total
-
🛣️ Tolls
| Customer | Toll dates | Vehicle | Notices | To charge | Status | Actions | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Queued for agent
-
Needs review
-
Nominated
-
Due in 7 days (not nominated)
-
Auto-submit
-
📋 Fines
Pick first
| Notice # | Offence | Plate | Driver | Amount | Due | Status | Actions | |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
Open
-
With Insurer
-
In Repair
-
Closed
-
Total
-
🚨 Claims
| Claim # | Incident Date | Vehicle | Customer | Fault | Location | Days Open | Status | Actions |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
Pink Slip Due
-
Rego Due
-
Renewed (15d)
-
Spend Rego (15d)
-
Spend CTP (15d)
-
Active Runs
-
🤖 Registration Cockpit
Within next 15 days
📋 Stage 1 — Pink Slip Due
Send to workshop for inspection. Required before rego renewal.
0 selected
| Plate | Vehicle | Odometer | Pink Slip Expiry | Workshop | Action | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
🚗 Stage 2 — Rego Due
Dispatch the GitHub Actions agent to renew with QBE/Service NSW.
0 selected
| Plate | Vehicle | Rego Expiry | CTP Expiry | State | Action | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
✅ Stage 3 — Recently Renewed
Renewals paid in the selected window.
| Paid Date | Paid Time | Plate | Vehicle | Category | Amount | Supplier | New Expiry |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
⚡ Active Agent Runs
Currently queued or running on GitHub Actions.
| Started | Plates | Status | Run URL |
|---|---|---|---|
| Loading… | |||
Total Devices
-
Online (≤10 min)
-
Stale (10 min – 2 h)
-
Offline (>2 h)
-
📍 GPS Tracking
Live positions from Traccar
🪫 Battery warning
Click to filter the table to only these vehicles.
| Plate | Vehicle | Last Fix | Speed | Ignition | Battery | Odo (manual) | GPS odo (fleet) | Trip (Traccar) | Status | Location | Map | Approval |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||||
📈 Finance
|
→
💰 Revenue Breakdown
🧾 Expense Breakdown
🚗 Per-Vehicle P&L
⚠️ Top Outstanding Customers
Still owed after close
-
Rent to refund
-
Bonds to refund
-
📦 Closed reservations — settle up
Finished rentals that still owe money, rent paid in excess, and paid bonds not yet returned. Click the reservation to open it and reconcile. Oldest first.
💳 Rent & charges still owed 0
Same figure as the reservation's Payments sidebar. "Bond held" = paid bond not yet returned (you can deduct from it).
| Customer | Reservation | Vehicle | Closed | Rent | Extras | Total owed | Bond held | Open |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
💸 Overpaid — rent to refund 0
Customer paid more rent than the rental cost (early return, week charged in full). Open Payments to refund or keep as a claim.
| Customer | Reservation | Vehicle | Closed | Paid | To refund | Open |
|---|---|---|---|---|---|---|
| Loading… | ||||||
🏦 Bonds to refund 0
Bond paid, reservation finished, bond not released or transferred yet. ⚠️ = customer still owes money — settle that first.
| Customer | Reservation | Vehicle | Closed | Bond | Deductions | Net to refund | Paid by | Open |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
Stuck Customers
-
Total Past Due
-
💰 Collections — Chase Outreach
Two-step chase: customers needing rail setup, then customers with this week's payment failures.
🔧 Setup Needed 0
Customer has no PayTo mandate AND no saved card. Auto-billing won't work — they need to set up a rail.
| Customer | Reservation | Vehicle | Past Due | Days Out | Last Link Sent | Actions | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
🧾 Extra Charges Pending 0
One-off charges (toll, fine, damage, cleaning, late fee, adhoc) — includes post-close additions. Total: $0.00
| Customer | Reservation | Vehicle | Type | Description | Amount | Method | Status | Actions |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
💳 Payment Follow-up 0
Rail exists but this week's payment failed. Send a one-shot Pay Now link.
| Customer | Reservation | Vehicle | Amount Owed | Method | Last Failure | Actions | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
🏦 Bonds Outstanding 0
Reservations whose security bond isn't settled — not paid, awaiting approval, or link sent. Total held: $0.00
| Customer | Reservation | Vehicle | Bond | Status | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
Total Jobs
-
Scheduled
-
In Progress
-
Completed
-
Cost This Month
-
🔧 Maintenance
Parts on the list
-
Unpriced
-
Purchases logged
-
Spent on parts
-
Only Guilherme or Matheus can add a part to the price list.
| Part | Category | Supplier | Unit | Unit cost | Last bought | Total spent | Actions |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
🧾 Purchase log
Every buy, newest first. The latest purchase of a part sets its price.
| Date | Part | Supplier | Invoice | Qty | Total paid | Per unit | Actions |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
| Vehicle | Type | Status | Workshop | Assigned | Date | Labour | Parts | Total | Next Service | Actions |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||
Total
-
Draft
-
Sent
-
Accepted
-
Expired
-
💬 Quotes
| Customer | Class | Type | Start | End | Weekly | Total | Valid Until | Status | Actions | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||||
Filters
Select a report and click Run.
👤 Team & Permissions
Loading users...