End-to-End Workflows (SOP)
This is the “how it all fits together” page. Every other page in this guide explains one screen in depth; this one chains those screens into complete, real-world Standard Operating Procedures — from a customer's first online booking all the way through the visit, payment, loyalty, and review. Follow a whole SOP top to bottom, or jump to the single step you need. Each procedure names the actor so you always know who does what.
How to use these SOPs
Read a whole SOP when you're learning a routine end to end; use the quick index below to jump to the one that matches the situation in front of you. Each step is written as do-this-then-that, tagged with who performs it, and cross-links to the screen where it happens.
Pick the SOP that matches your situation
A new customer books online, is served, pays, earns points, and is asked for a review.
Front desk books a caller or walk-in straight from the calendar.
Sell a prepaid bundle, then draw down sessions across future visits.
Mark a no-show and follow up the right way.
Full slot to waitlist to notified to a real booking.
Manager's daily and monthly review using Reports.
Stand up a brand-new business from zero to taking bookings.
Every term used in these SOPs, defined once.
The lifecycle backbone every SOP rides on
Almost every SOP moves an appointment along the same status pipeline. Status decides the calendar color, which buttons appear on the appointment card, and what business logic fires (stock, commission, and loyalty on Completed; entitlement release and waitlist alerts on Cancelled).
Two off-ramps leave the pipeline at any non-terminal stage:
#d9534f.
#777777.
SOP 1: New customer, online booking to review
The full customer journey when someone finds you online, books, comes in, is served, pays, earns loyalty, and is asked to review. This is the flagship end-to-end flow and it touches nearly every screen in the module.
Stage A — Customer books online
-
Customer opens the booking page — actor: Customer
They open the business's public booking URL /appointments/book/{company-slug} (from your SMS, social bio, or Google profile), or click your card on the directory at /appointments/book.
-
Select a service — actor: Customer
Under Select a service they click a service card (which shows duration and price). Only services that are both Public and Active appear here. Picking one reveals the provider + date step.
-
Choose provider, date, and a real time slot — actor: Customer
They leave Provider on Any available provider (or pick one), choose a date, and click a time slot. Slots are computed live from the provider's working hours minus existing bookings and buffers, and respect minimum lead time and maximum advance. If nothing is free, jump to SOP 5 (waitlist).
-
Enter details and confirm — actor: Customer
They fill Name, Phone, and a valid Email (all required), optionally a note, then click Confirm Booking.
-
System books it — actor: System
The slot is re-checked inside a locked transaction, a customer account is auto-created if the email is new (or reused if it exists), and the appointment is written as Confirmed with source online. The customer gets a confirmation email; the assigned staff (or the company email as fallback) gets a “new appointment” notice. The customer lands on the thank-you page with a Reference code.
Stage B — Arrival, service, and items
-
Check the customer in on arrival — actor: Front desk
Open the booking from the calendar or list and click Check In. The chip turns Checked In.
-
Record products used and sold — actor: Front desk
Click Manage Items and add any Back-bar use (supplies consumed, priced 0) and/or Retail sale lines (products the customer takes home). Do this before completing so completion decrements stock and the invoice includes the retail lines.
-
Complete the visit — actor: Front desk
When the service ends, open the card and click Complete. Moving to Completed fires the one-time completion logic: captures commission, decrements back-bar stock (if the Warehouse module is on and a default warehouse is set), and awards loyalty points. These are latched so retries never double-count.
Stage C — Pay, earn loyalty, get a review request
-
Take payment at Checkout — actor: Front desk (needs Appointment Checkout permission)
Open the card and click Checkout. Review the Billable Items, click Create Invoice, then pick a Payment method and click Record Payment (the Amount defaults to the full balance due). The green “This invoice is fully paid.” alert confirms a zero balance. See Checkout for the full procedure.
-
Loyalty accrues automatically — actor: System
If the tenant set a loyalty rate above zero, points were already awarded once when you clicked Complete: points = floor(total × rate). There's no manual “award points” button. Check the running balance in Customer History.
-
Review request goes out — actor: System
If Enable review requests is on, an hourly job emails the customer a review link once the configured delay (default 24 h) has passed — once per appointment, latched even if the email fails.
-
Customer leaves a review — actor: Customer
They open the link (/appointments/review/{company-slug}/{uuid}), pick 1–5 stars, optionally comment, and submit. Only Completed visits are reviewable, and only once each. The published review feeds per-staff and per-service averages on Reports.
SOP 2: Front-desk / phone booking
Booking a caller or a walk-in directly from the admin calendar — the fastest path when the customer is on the phone or standing at the desk. This is the internal mirror of SOP 1's Stage A.
-
Open the booking form — actor: Front desk (needs Create permission)
On the Appointments page, click the desired day/time on the calendar to pre-fill the date and time, or click Add Appointment for a blank form.
-
Pick the service — actor: Front desk
Choose the Service (Select2, required). This sets the duration and price and triggers the live slot lookup. Only active services appear.
-
Pick a provider — or leave it blank — actor: Front desk
Choose a Provider, or leave it blank for any available provider — handy on the phone when the caller doesn't mind who. Each slot option then shows which provider it belongs to, and picking the time assigns them.
-
Confirm the date and pick a real slot — actor: Front desk
Set the Date, wait for the Time dropdown to load available slots, and pick one. The Time field is not free text — it only lists what the availability engine returns.
-
Attach the customer — actor: Front desk
Pick an existing Customer from the dropdown, OR type a Name plus a valid Email to auto-create an account, OR just type Name/Phone for a no-account walk-in. Optionally pick a Resource (room/chair/equipment).
-
Set status, add notes, and save — actor: Front desk
Leave Status as Confirmed (the default) so the customer gets a confirmation email, add customer-facing Notes and/or staff-only Internal Notes, then click Save. The row and calendar refresh. A brand-new booking also emails the assigned provider.
From here the visit runs exactly like SOP 1 Stage B & C: check in, manage items, complete, checkout. Full field-by-field detail lives on Calendar & Appointments.
SOP 3: Sell & redeem a package
Selling a prepaid bundle (a membership or a one-off package like “5 Facials”) and then drawing down its sessions across future visits. This spans the Packages catalog, the sale, and the Checkout coverage step — often over several appointments and weeks.
Stage A — Sell the package
-
Confirm the package exists and has services — actor: Manager
On the Packages page, the catalog package must have at least one included service (e.g. “3 × Facial”). A package with no included services cannot be sold — the sale is refused with “Add at least one included service to this package first.” If needed, edit it and add a Service + Qty row.
-
Open the Sell modal — actor: Front desk (needs Sell permission)
Click the shopping-cart (Sell) icon on the package row. Review the name, price, and the included-services list.
-
Pick the customer and sell — actor: Front desk
Choose the Customer (required) and click Sell Package. In one transaction the system creates the customer package, one entitlement per included service, and — only if the price is above 0 — an unpaid invoice for the package price. Expiry is stamped from the package's validity at the moment of sale.
-
Collect payment for the package — actor: Front desk
Selling a priced package raises an unpaid invoice (status not-paid, note “Package: <name>”) — it does not mark it paid. Take payment through the normal core Invoices flow.
Stage B — Redeem sessions across visits
-
Book the covered service as normal — actor: Front desk / Customer
Create the appointment for a service the customer has a session for (via SOP 2 or SOP 1). Make sure the customer account is attached.
-
Open Checkout before invoicing — actor: Front desk
On the appointment card click Checkout. The Package coverage section appears only while the appointment has a customer and no invoice yet.
-
Apply a session to cover the service — actor: Front desk
On the service row, open the Apply package… dropdown and pick the available entitlement (it shows the remaining count). The line switches to a blue Covered by package badge and drops off the bill; one session is claimed atomically.
-
Invoice whatever remains — actor: Front desk
Click Create Invoice for the remaining billable lines (retail sales, any uncovered services), then take payment as in Checkout.
SOP 4: No-show handling
What to do when a customer simply doesn't turn up — and how it differs from a cancellation. Getting the status right keeps your availability, reports, and no-show metric accurate.
-
Wait out your grace period — actor: Front desk
Give the customer whatever grace window your business allows before marking the visit. There's no timer in the module — this is a judgement call at the desk.
-
Open the appointment card — actor: Front desk
Find the booking on the calendar or list and open its detail card. No Show is available from any non-terminal status (Confirmed, Checked In, In Progress).
-
Click No Show — actor: Front desk
The chip turns No Show (grey). The visit is now excluded from availability and from workforce workload, and it counts toward No-shows this month on Reports. No email is sent.
-
Follow up — actor: Front desk / Manager
Because No Show sends nothing automatically, reach out yourself: call or message the customer to rebook. If they want a future slot, book it via SOP 2. If you'd rather have them wait for a preferred time, add them to the Waitlist (see SOP 5).
-
Spot repeat offenders in Reports — actor: Manager
Over time, read the No Show column in the Workforce Monitor against the monthly no-show tile to see whether no-shows cluster around specific providers or times, then adjust policy (deposits, reminders) accordingly.
No Show vs. Cancel — which to use
These are not interchangeable. Pick based on what actually happened and what you want the system to do.
| Situation | Use | What the system does |
|---|---|---|
| Customer didn't arrive and gave no notice | No Show | No email. Excluded from availability and workload. Counts toward the monthly no-show metric. |
| Customer (or you) cancelled the booking | Cancelled | Captures a reason, emails the customer, releases package sessions (if uninvoiced), and auto-emails matching waitlist entries. |
| You want package sessions returned and the waitlist alerted | Cancelled | Only Cancel triggers entitlement release and waitlist notification — No Show does neither. |
SOP 5: Full slot to waitlist to booking
The “we're fully booked” recovery path: capture the customer on a waitlist, notify them when a cancellation frees a slot, and convert them into a real booking. Instead of losing the customer, you hold their demand and re-engage automatically.
Stage A — Get onto the waitlist
-
Hit a full date — actor: Customer
On the public booking page, the customer picks a service and a date that returns “No available times for this date.” A waitlist prompt appears.
-
Join the waitlist — actor: Customer
They click Join the waitlist and enter Name (required) and Email (required); Phone is optional here. The service and preferred date carry over automatically. They see “You're on the waitlist — we'll email you if a spot opens.” The entry is created as Waiting with source online.
-
Open the Waitlist screen — actor: Front desk
Go to Appointments → Waitlist and click Add to Waitlist.
-
Capture the request — actor: Front desk
Pick an existing Customer (or type the name), enter Email (strongly recommended — it's what makes notifications reach them) and Phone, choose the Service (required), optionally a preferred Provider (or leave Any available), and optionally a Preferred date (blank = Flexible). Save. New entries always start Waiting with source staff.
Stage B — A slot frees up and they're notified
-
An appointment is cancelled — actor: Front desk (or Customer)
When an appointment is cancelled, the system reads its service, date, and provider and finds Waiting entries that match: same service, (no preferred date OR same date), and (no/unassigned preferred provider OR same provider).
-
System auto-emails matching entries — actor: System
It emails up to 20 matching entries the slot-open template (with a booking-page link) and flips each to Notified. This fires whenever an appointment is cancelled — not when a slot merely opens for other reasons (e.g. a reschedule).
-
Notify the rest by hand if needed — actor: Front desk
On a busy list, the 20-email cap may leave some matching customers un-emailed. Work down the remaining Waiting rows and click the bell Notify (slot open) icon on each — it only appears on Waiting rows, sends the same email, and flips them to Notified.
Stage C — Convert to a real booking
-
Customer re-books — actor: Customer / Front desk
The waitlist does not create the appointment. The notified customer still books normally — online from the link, or you book it for them via SOP 2.
-
Record the outcome — actor: Front desk
Open the waitlist entry with the pencil (Edit) and set Status to Booked (they converted) or Cancelled (they dropped off). Booked and Cancelled are hidden from the default view, keeping your live Waiting/Notified list clean.
SOP 6: End-of-day & end-of-month review
The manager's regular pulse-check using the read-only Reports dashboard. Nothing here is editable — you look at the numbers and act on them elsewhere. Remember the scope rule baked into the page: only the Workforce Monitor honours the date filter; the four top tiles and the Reviews panel are fixed windows.
End of day
-
Reconcile the day's appointments — actor: Front desk
Before you close, make sure every visit is in a terminal state: Completed for served customers, No Show for absentees, Cancelled where relevant. Un-completed visits count as zero revenue in Reports, so leaving a served visit un-completed understates the day.
-
Confirm every completed visit was paid — actor: Front desk
For each completed appointment, verify Checkout shows the green “This invoice is fully paid.” banner, or a known open balance (e.g. a pay-link sent). Partial payments leave the balance open.
-
Read the pulse tiles — actor: Manager
Open Reports and read the four tiles: Today's Appointments, Upcoming this week (rolling 7 days), Completed this month, and No-shows this month. No input needed — these are fixed windows in the company timezone.
End of month
-
Set the reporting window — actor: Manager
On Reports, in the Workforce Monitor filter set Start date to the 1st and End date to the last day of the month you're reviewing (it defaults to the current month), then click Filter.
-
Read per-provider performance — actor: Manager
Each row shows Appointments, Completed, No Show, Booked hrs, Revenue, and Commission. Rows are auto-sorted by Revenue (highest first), so top earners lead. Remember: Revenue and Commission count only Completed appointments, while Booked hrs counts every non-cancelled, non-no-show appointment — so hours and revenue won't move together.
-
Read the feedback — actor: Manager
Scroll to the Reviews panel for the all-time average star rating and the 10 most recent published reviews. These are not affected by the date filter — they're always latest-published, all-time.
-
Act on what you see — actor: Manager
Low provider revenue? Check those appointments were actually marked Completed. High no-shows for one provider or time? Adjust reminders or deposits. Low ratings? Read the recent-review comments for the reasons.
SOP 7: New business onboarding
Standing up a brand-new business from zero to taking bookings. Do these stages in order — later stages depend on earlier ones (you can't assign a category that doesn't exist yet, and a service with no provider produces no slots).
Stage A — Enable the module
-
Turn on the Appointments module — actor: Admin
Enable Appointments for the company in Settings → Manage Modules. Until it's enabled, none of the screens below (or the public page) work. See Getting Started.
-
Grant permissions — actor: Admin
Give the right roles the Appointments permissions they need: base access, create/update/delete, Appointment Checkout, Manage Appointment Settings, and the services/packages/waitlist/reports gates. Admins bypass all permission checks.
Stage B — Build the catalog
-
Create categories first — actor: Manager
On the Services page, in the right Service Categories panel, add your groupings (e.g. Hair, Nails, Facials) with a colour and sort order. Do this first — only active categories appear in the service form's Category dropdown.
-
Create services — actor: Manager
In the left panel, click Add Service and set Name, Category, Duration (drives slot sizing; minimum 5 min, defaults to 30), buffers before/after for setup/cleanup, Price, colour, and Status = Active. Leave Public checked to offer it online (it's checked by default). See Services & Staff.
-
Assign providers to each service — actor: Manager
On each service row, click the Assign Staff (users) icon and select the staff who can perform it. Only assigned providers are offered when booking that service — a service with 0 providers is unbookable, and the Providers count is your quick health check.
-
Give every provider a working schedule — actor: Admin / Manager
The availability engine reads working hours from each provider's HR weekly Schedule (in/out times) — not from Appointments. No schedule means no slots will ever appear for that provider, no matter how they're assigned.
Stage C — Configure booking rules & automation
-
Turn on public booking — actor: Manager (needs Manage Appointment Settings)
In Appointment Settings, tick Enable public booking page. The read-only public URL /appointments/book/{company-slug} is built from the company slug.
-
Tune the slot engine — actor: Manager
Set the slot interval (e.g. 15 min gives more slots than 30), minimum lead time (blocks last-minute bookings), and maximum advance days (the booking horizon), plus the cancellation window.
-
Set reminders, deposits, and warehouse — actor: Manager
Configure the reminder lead time (1440 = 24 h; never 0), deposits, auto-invoice, and — if you use the Warehouse module — the default warehouse so back-bar stock decrements on completion.
-
Set loyalty & review automation — actor: Manager
Set Loyalty points per 1.00 spent (0 = off; a modest rate like 0.01 = 1 point per 100), tick Enable review requests, and set the review delay (around 24 h feels natural).
Stage D — Optional extras & launch
-
Build packages / memberships (optional) — actor: Manager
If you sell prepaid bundles, create them on Packages with included services and quantities before you start selling — see SOP 3.
-
Smoke-test the public flow — actor: Manager
Open /appointments/book/{company-slug} yourself, book a test slot end to end, and confirm the confirmation email arrives. If the page 404s, re-check that the module is enabled and public booking is on. If no times show, re-check the three-condition rule above.
-
Share the booking link — actor: Manager
Publish the direct /appointments/book/{company-slug} link on your SMS, social bio, and Google profile so customers skip the directory and land straight in the flow. You're now live — new bookings arrive as Confirmed and flow through SOP 1.
Cross-cutting edge cases & FAQs
The gotchas that span more than one SOP, gathered here so you can scan them fast. Expand any that apply.
Revenue and Commission count only appointments marked Completed. If a served visit is still Checked In or In Progress, it contributes zero. Complete it, and check you filtered the Workforce Monitor to the right date range (only that table honours the filter).
The customer can't pay via the online pay link.The pay link generates fine, but the customer can only actually pay if the tenant has online payments configured and guest invoice payment (client_can_pay_invoice_without_login) enabled. Otherwise the link is a dead end. See Checkout.
How do I set an appointment to In Progress?There's no dedicated In Progress button on the detail card — the card jumps from Confirmed/Checked In straight to Complete. Set In Progress via the Status dropdown on the edit form instead.
A past appointment seems to have vanished from the list.The list filter hides Completed, Cancelled, and No Show by default. Tick those status checkboxes to bring them back.
Why did no time slots appear online for a provider?No slots appear for a provider with no HR weekly schedule (in/out times) that day, or when the service is missing its Public/Active flags or an assigned provider. Slots also respect minimum lead time and maximum advance, so a too-soon or too-far date legitimately returns nothing. See the three-condition rule in SOP 7 Stage B.
The review link says “not available.”The public review page only works for appointments already marked Completed, and only once each. A customer who follows the link before staff complete the visit sees a not-available message; a second submit shows “You've already reviewed this visit.”
Cancelling didn't return the customer's package sessions.Cancellation returns sessions only if no invoice was created for that appointment. Once invoiced, the covered service was already excluded from that invoice, so sessions aren't refunded automatically — adjust manually if needed. See SOP 3 Stage B.
Some waitlisted customers weren't auto-emailed after a cancellation.Auto-notify is capped at 20 emails per cancellation and only fires when a Confirmed appointment is cancelled. On a busy list, notify the rest by hand with the bell icon on each remaining Waiting row (SOP 5 Stage B).
Where to go next
Each SOP above is a chain of screens. Drill into any one for the full field-by-field detail.
The booking hub and the whole appointment lifecycle.
Invoicing, payments, package coverage, loyalty, reviews.
Sell bundles and redeem sessions across visits.
Capture demand and convert freed slots into bookings.
The customer-facing flow and the slot engine.
Workforce Monitor, revenue, commission, reviews.
Build the catalog and assign providers.
Booking rules, reminders, loyalty, review automation.
Every term in these SOPs, defined once.