Main Page
Business identity
The country sets the currency shown on every price (and the currency Stripe charges in) and pre-selects the default language new visitors land on. You can change the language afterwards — a business in Miami may well want Spanish.
Services
Add as many or as few as you like. Duration drives the booking engine in Phase 2.
Staff
Homepage "Get to know our staff" section
Each staff member auto-gets a public page at /staff.html?id=their-slug.
Gallery
Photos
Add image URLs or upload files. Drag rows to reorder (use ▲▼).
Reviews
Display mode
Google review link
Your Google Business profile URL, a g.page short link, a ready-made “write a review” link or the bare Place ID — we turn whichever you paste into the right link. It powers the “Read on Google” button on your site and the review invitations you send when approving a review in Members → ⭐ Reviews. Leave it empty and those invitations stay switched off.
Google reviews
Paste an embed snippet from a tool like Elfsight. With no embed the site falls back to a "Read on Google" link built from the review link above.
Internal reviews
Reviews are auto-collected when bookings are marked completed. Toggle whether to show a "Leave a review" CTA on the home page.
Locations
Business locations
Run more than one shop? Add every location here — customers pick one when they book, and each staff member's weekly rota says which location they work at on which day (set it in My Staffs → Hours & rota, or staff set their own in the Staff Portal). Leave this empty for a single-location business.
Main address & contact (homepage)
Map embed
Open Google Maps → search your address → Share → "Embed a map" → copy the src URL from the iframe and paste below.
Extras (optional)
Hours
Bookings
My Staffs
Operational view of every team member — drill in to see their bookings, agenda and internal notes.
Master Agenda
All staff at a glance — find an opening for a walk-in or check who's busy.
Timeline
Pick a date to load.
Waiting list
When a day is fully booked, clients can join a per-service queue. When a spot frees up the first in line gets an email offer with a claim window; if they don't book in time the offer passes to the next person automatically (hourly check). Configure the claim window in Settings → Booking behaviour, and per-service limits in the Services tab.
Queues
Loading…
Payments
Choose which payment methods customers can pick during booking. Drag-friendly: top of list shows first. online methods show their instructions to the customer; in-person methods just record the choice.
💳 Stripe (credit / debit card — pay online)
Card payments are charged inline at checkout (Stripe Elements) and land directly in the business's own Stripe account (Stripe Connect — Standard). Complete the one-time Stripe registration, then enable the card method in the list below.
Server keys never live here — the platform secret key + webhook secret are Firebase Secrets (see STRIPE-GO-LIVE.md). Remember to Save changes after editing.
🧾 Sales tax
When enabled, the tax is added on top of the discounted subtotal at checkout and recorded on every booking (ported from HealthyServices).
Remember to Save changes after editing.
Analytics
Self-tracked metrics. Numbers update as the public site is visited and bookings are created/completed.
Last 30 days
Marketing
🏷 Promo codes
Percentage or fixed-amount discounts. Add an influencer name to track partner campaigns — the 📊 button shows bookings and revenue attributed to that code.
🎁 Gift cards
Create a stored-value code after the purchaser pays you (cash, e-Transfer, etc.). Clients redeem it in the booking flow; the balance carries over between visits.
🎟️ Bundles (prepaid packages)
Sell packs like "10 visits for the price of 8". Define the packages here (don't forget 💾 Save changes), then record a sale to a registered client after they pay you.
Sell a bundle
🤝 Referrals
Every signed-in client has a personal referral link (shown in their account page). When someone signs up through it and completes their first booking, both sides earn loyalty points — configure the point amounts in Settings → Loyalty. The store credit rewards below are separate from those points.
Reward for the REFERRER (the existing client who shared their link)
Percentage is always paid after the friend's first booking is marked completed — that is the only moment the service value is known. Fixed follows the timing you pick below.
Reward for the REFERRED FRIEND (the new client)
When is it paid?
This timing applies to the friend's credit, and to the referrer's credit when it is a fixed amount. A percentage referrer reward is always paid after the first completed booking. Every reward is paid once and only once per referral.
Finance
🧾 Tax Return Assistant (Canada)
Enter your filing details, then get the figures for your return plus an estimate of income tax owed on your site revenue — before deductions.
Filing details
Estimate
Audit log
Who did what, when — booking changes, promo edits, gift cards, loyalty adjustments, CSV exports.
Settings
Booking behaviour
Define Morning / Afternoon / Evening. Used by auto-apply promos limited to a time of day.
Newsletter section
Floating "Book now" button
💝 Loyalty & referrals
Points are earned when a booking is marked completed. Referral bonuses pay out on the referred client's first completed booking.
🏅 Customer badges
Automatic achievement badges from each client's own history (ported from HealthyServices). Loyalty/reviewer badges can carry an automatic discount at checkout; the "frequent canceller" badge is staff-facing only.
How long each badge lasts
Never keeps a badge permanently. Anything else makes it temporary — only activity inside that window counts, so when it lapses the count starts again.
📧 Email notifications
Sends from the shared platform mailbox (info@smartbooking.studio) out of the box — the same default sender as HealthyServices. To send from the business's own mailbox instead, fill in ONE of the options below. These credentials are stored server-side (Firestore settings/email, admin-only) and never appear in the public site config.
Option A — Gmail / Google Workspace
Option B — Microsoft 365 (own Entra app)
Templates
Every email starts from the defaults imported from HealthyServices. Pick a template to customise its subject/body — {{variables}} like {{customerName}}, {{serviceName}}, {{date}}, {{position}} are filled automatically. Leave blank to keep the default.
📱 SMS notifications (Twilio)
Sends via your Twilio account. Credentials are stored server-side (Firestore settings/sms, admin-only) and never appear in the public site config. Requires the Blaze plan and the sendSms / smsReminders functions deployed.