AllStar Moonwalks
Admin Portal — sign in to continue
Dashboard
⚠️ Demo Mode: Replace https://hjteywapdngzospmqsxq.supabase.co and sb_publishable_noyniN62fAxriQGHJQGhHA_gYeWy4sU in this file's script with your real Supabase credentials to connect live data.
Bookings This Month
Excludes cancelled
Revenue This Month
Confirmed + completed
Pending Bookings
Needs action
Total Customers
All time
Abandoned Carts
Needs follow-up
📈 Orders — Last 7 Days
Recent Bookings
Upcoming Events
Event DateEnteredCustomerAddressItemsTotalBalance DueStatusActions
DateCustomerAddressDriverStatusNotesActions
↕️ Drag a stop's ⠿ handle to reorder it within its driver's list (or within Unassigned) — the order is saved immediately and is what Manual Route in Optimize & Send Routes starts from.
🗺️ Route Map
Name Phone Email Loyalty Bookings Last Event Total Spent Actions
PhotoItemCategoryPrice/DayAvailableActions
Invoice #CustomerAmountDue DateStatusActions
Quote #CustomerEvent DateTotalStatusActions
Financial year overview
YTD Revenue
$0
YTD Expenses
$0
Net Profit
$0
Profit Margin
0%
Unpaid Invoices
$0
Avg / Booking
$0
Revenue vs Expenses — Monthly
Top Revenue Months
Outstanding Receivables
Expense Breakdown by Category
💳 Stripe
TimeCustomerAmountBooking Match
🧾 Square
TimeCardAmountBooking Match
NamePhoneEmailSourceEvent DateStatusActions
CustomerRatingPlatformReviewDateActions
Avg Rating
Total Surveys
Would Recommend
5-Star Responses
CustomerDateRatingCommentsBookingResponse
CodeDescriptionDiscountAudienceChannelsUsesExpiresStatusActions
📧 Email Templates — Quick Send
Opens your email client with template pre-filled. Logged automatically.
DateCustomerTypeNotesStaffActions
PriorityTaskCustomer/LinkDue DateAssignedStatusActions
Pay PeriodEmployeeHoursRateGrossFed TaxFICAMileageTipsNet PayActions
NameRolePhoneEmailStatusActions
00:00:00
EmployeeClock InClock OutHoursDateMileageGPSStatusActions
Name/UnitTypeMake/ModelYearLicense PlateStatusBook ValueActions
DateVehicleTypeDescriptionCostNext DueActions
💡 Email & SMS sending requires a server-side integration (SendGrid, Twilio). Track campaigns here and mark status manually.
🛒 Incomplete Orders Customers who entered their info at checkout but didn't finish paying
CustomerContactEvent DateItemsEst. TotalWhenStatusActions
CampaignTypeDateRecipientsConversionsStatusActions
Revenue — Last 12 Months

📥 Import Data

Step 1 — Download Template

Download the CSV template, fill it in, then upload below. Column headers must match exactly.

Step 2 — Upload CSV

🔔 Customer Notifications

Master switch for all automatic customer/owner SMS (booking confirmations, payment received, daily reminders) and booking confirmation emails. Turn this off while importing historical orders or testing the site so real customers don't get texted or emailed. Turn it back on when you're ready to go live. Manual sends from the admin portal are not affected.

Loading…

Business Information

Pricing Defaults

Service Area

📍 Delivery Distance Fees

Set your HQ address to auto-calculate a distance-based delivery surcharge. Geocoding uses free OpenStreetMap — no API key needed.

🔒 Strict Clock-In/Out GPS Radius

Uses the same HQ Address above. When an employee has "Require GPS within HQ radius" turned on (Employees tab), driver.html blocks their clock-in and clock-out unless they're physically within this distance of HQ.

🌙 Overnight & Multi-Day Fees

Applied automatically when a rental spans multiple days.

Overnight rules: If customer keeps equipment overnight and picks up by 11 AM → flat overnight fee. Pick up after 11 AM → full extra day rate is charged instead. Intermediate nights (equipment kept an extra day) always charge a full day rate.

📧 Email — SendGrid

Email sends through a Supabase Edge Function that calls SendGrid — your API key is stored as a Supabase secret and never exposed in the browser. Get your SendGrid API key ↗

One-time setup: In Supabase → Edge Functions → Secrets, add SENDGRID_API_KEY = your key. The send-email function is already deployed in supabase/functions/send-email/. Run: supabase functions deploy send-email

📱 SMS — Twilio

SMS sends through a Supabase Edge Function that calls Twilio — credentials stored as secrets. Twilio console ↗

One-time setup: In Supabase → Edge Functions → Secrets, add:
TWILIO_ACCOUNT_SID · TWILIO_AUTH_TOKEN · TWILIO_FROM_NUMBER (e.g. +19365550100)
Then run: supabase functions deploy send-sms

⭐ Google Review Link

Find this in Google Business Profile → Get more reviews → Copy link

✉️ Automatic Message Templates

Edit the wording of every automatic email/SMS this app sends — order confirmation, deposit/payment receipts, 5-day & day-before reminders, delivery/pickup ETA texts sent from the Driver App, employee Driver App login invites, and the post-event review request. Changes take effect immediately, no deploy needed. Leave a message type untouched and it keeps sending the default wording.

Placeholders you can use: {firstName} {eventDate} {bizName} {bizPhone} {address} {items} {itemsNoPrice} {total} {financialSummary} {balanceDue} {balanceDueLine} {portalLink} {reviewUrl} {surveyUrl}
{financialSummary} (email) inserts a full total/paid/balance block with a pay-online link when money is owed. {balanceDueLine} (SMS) is a short " Balance due: $X." sentence, blank when nothing's owed. {portalLink} is the customer portal URL.
Delivery/Pickup ETA types only: {etaClause} — a pre-built fragment like ", estimated arrival 2:15 PM (about 12 min away)" or blank if no live ETA could be computed.
Employee Login types only: {actionLink} — the employee's one-time set-password link. Email-only (no SMS).
Note: "Driver En Route"/"Driver Arrived"/"Delivery Complete" above are reserved types nothing currently sends automatically — the real driver-triggered "on the way" messages customers actually receive are the Delivery/Pickup ETA types in the next group.
Live Preview (sample data — not a real customer)
TypeCustomerEvent DateScheduledStatusActions