Getting Started
A first-run setup guide for the admin or manager standing up the Appointments module for a salon, spa, or clinic. Enable the module, understand who can do what, tour the sidebar, and walk a numbered checklist that takes you from an empty module to taking bookings — online and at the front desk.
Enable the module
The Appointments module ships with ERPat but is off until a company turns it on. Nothing in this guide — the sidebar menu, the settings page, the public booking page, or the two background email jobs — works until the module is enabled for your business.
-
Sign in as an admin
Log in with an account that can manage modules (an administrator, or a role granted module-management access).
-
Open Manage Modules
Go to Settings → Manage Modules.
-
Enable “Appointments”
Find the Appointments module in the list and switch it on. Internally this sets the flag module_appointments to
1for your company. -
Confirm the sidebar appears
The Appointments group now shows in the left menu (under Operations) with its Calendar, Services, Packages, Waitlist, Reports, and Settings items — subject to your permissions.
1, the sidebar item and the Settings page won’t appear, the public booking URL /appointments/book/{company-slug} returns a 404, and both scheduled email jobs (reminders and review requests) exit immediately and send nothing. Enable the module first, always.
Permissions reference (table)
Access is controlled by a set of permission keys. Each key unlocks a specific area or action. The base appointments permission opens the booking workspace; the others are granular gates layered on top. Assign these to roles the same way you assign any other ERPat permission.
| Permission key | Label | What it unlocks |
|---|---|---|
appointments |
Appointments | Base access to the booking workspace — the Calendar & list. Also lets a user open an appointment’s detail card, view Customer History, and filter the list by status. Required for everything else in the workspace. |
appointments_create |
Create Appointment | Shows the Add Appointment button and allows saving a brand-new booking. Without it the button is hidden. |
appointments_update |
Update Appointment | Edit a booking, change its status (Confirm / Check In / Complete / No Show / Cancel), manage item lines, and use Commit Items to Stock. The busiest front-desk permission. |
appointments_delete |
Delete Appointment | Soft-delete a booking and its lines. Usually reserved for managers. Note: deleting does not reverse stock/loyalty — use Cancel instead when those effects matter. |
appointment_services |
Manage Services | Opens the Services & Categories catalog page (view). Required to see the treatment menu at all. |
appointment_services_create |
Create Service | Shows Add Service and Add Category; allows creating new services and categories. |
appointment_services_update |
Update Service | Edit a service or category, and use Assign Staff to map providers to a service. |
appointment_services_delete |
Delete Service | Soft-delete a service or a category. |
appointment_packages |
Manage Packages | Opens the Packages & Memberships area (view/manage bundles). |
appointment_packages_create |
Create Package | Create a new package or membership. |
appointment_packages_update |
Update Package | Edit an existing package/membership. |
appointment_packages_delete |
Delete Package | Soft-delete a package/membership. |
appointment_packages_sell |
Sell Package | Sell a package to a customer, creating their entitlements. |
appointment_waitlist |
Manage Waitlist | Opens the Waitlist area to see and manage queued customers. |
appointment_waitlist_create |
Create Waitlist Entry | Add a customer to the waitlist manually. |
appointment_waitlist_update |
Update Waitlist Entry | Edit a waitlist entry or send the manual “slot opened” notification (the bell). |
appointment_waitlist_delete |
Delete Waitlist Entry | Remove a waitlist entry. |
appointment_reports |
Appointment Reports | Opens the Reports page (Workforce Monitor, items-used, and related analytics). |
appointment_checkout |
Appointment Checkout | Shows the Checkout button on an appointment and allows creating invoices / recording payments. See Checkout & Payments. |
manage_appointment_settings |
Manage Appointment Settings | Required to see the Settings sidebar item and to open and save the Appointment Settings page (public booking on/off, slot/lead/advance windows, reminders, deposits, commission, loyalty, reviews, auto-invoice). |
Suggested role matrix
There are no built-in Appointments roles — you compose them from the keys above. Below is a practical starting point for three common personas. Adjust to fit how your business divides labor.
| Capability (permission) | Front desk | Manager | Admin |
|---|---|---|---|
Open workspace (appointments) | Yes | Yes | All |
Create bookings (appointments_create) | Yes | Yes | All |
Edit & change status (appointments_update) | Yes | Yes | All |
Delete bookings (appointments_delete) | No | Yes | All |
Checkout & invoicing (appointment_checkout) | Optional | Yes | All |
View services catalog (appointment_services) | View | Yes | All |
Create / edit / delete services (appointment_services_*) | No | Yes | All |
Packages & selling (appointment_packages* / _sell) | Sell only | Yes | All |
Manage waitlist (appointment_waitlist*) | Yes | Yes | All |
Reports (appointment_reports) | No | Yes | All |
Settings (manage_appointment_settings) | No | Optional | All |
Why this split
Front desk / reception lives in the Calendar. They create bookings, check clients in, record items used or sold, mark visits Completed or No Show, and work the waitlist. Give them create + update, waitlist, and — where your workflow calls for it — checkout and the ability to sell packages. Keep delete, catalog editing, reports, and settings off their plate to avoid accidental damage.
Managers own the business setup and oversight: they build the service menu, assign staff, manage packages, delete bookings when needed, take payments, and review performance. Whether they also configure Settings depends on whether you want booking rules centralized to admins.
Admins need nothing granted — the is_admin flag bypasses every check, so they see and do everything, including Settings and Manage Modules. Reserve admin for the handful of people who set the module up in the first place.
Navigating the module
Once enabled, Appointments appears as a group in the left sidebar under Operations. Each item is gated by its own permission, so a user only sees the ones they can access. Here is what each destination is for.
First-time setup checklist (SOP)
Follow this in order — the sequence matters. You can’t assign an active category that doesn’t exist yet, and a service with no assigned providers produces no bookable slots. Actor: Admin / Manager.
-
Enable the module
As an admin, go to Settings → Manage Modules and switch Appointments on. Confirm the sidebar group appears. (Full detail in Enable the module above.)
-
Create service categories
Open Appointments → Services. In the right-hand Service Categories panel, click Add Category. Give each grouping a Name (e.g. Hair, Nails, Facials), pick a Color, optionally set a Sort order, leave Status Active, and Save. Repeat for every grouping. Do this first — the service form only lists Active categories.
-
Create your services
In the left panel click Add Service. Enter the Name, pick a Category, set the Duration in minutes (this sizes calendar slots), optionally set Buffer Before / After for setup and cleanup, enter a Price, choose a Color, and confirm Status is Active. Leave Public checked for anything you want bookable online (uncheck it for internal-only services). Save. Repeat for the whole menu. See Services & Staff.
-
Assign staff (providers) to each service
On each service row, click the Assign Staff (users) icon, select the providers who can perform that service, and Save. Only assigned providers are offered when booking — a service with a Providers count of
0is effectively unbookable, online or off. -
Make sure providers have working hours
The availability engine reads each provider’s working times from their HR weekly Schedule — not from Appointments. A provider with no schedule (or an off-day) generates no slots. Confirm every booking provider has in/out times set in HR before you go live.
-
Configure Appointment Settings
Open Appointments → Settings. Set the booking window and behavior: Slot interval (e.g. 15 min), Minimum lead time (e.g. 60 min to block last-minute bookings), Maximum advance booking (e.g. 60 days), Cancellation window (e.g. 24 h), and Reminder lead time (1440 = a day-before reminder). Optionally set Default warehouse ID (for back-bar stock), Require deposit + percent, Service commission %, Loyalty points per 1.00, Auto-create invoice on completion, and Enable review requests + delay. Click Save and look for “Settings updated successfully.” See Settings & Reminders.
-
(Optional) Build packages & memberships
If you sell prepaid bundles or memberships, create them under Appointments → Packages now so front desk can sell them at checkout. See Packages & Memberships.
-
(Optional) Turn on public online booking
Still in Settings, tick “Enable public booking page” and Save. The read-only Public booking URL shown is your shareable link, built from your company slug: /appointments/book/{company-slug}. Click it to preview exactly what customers see, then share it. See Online Booking Portal.
-
Do a smoke test
Create one test booking from the Calendar (front-desk path) and — if public booking is on — one from your public URL. Confirm each lands in the list, the confirmation email arrives, and you can move it through Confirmed → Checked In → Completed. You’re live.
First-run edge cases
The Appointments group only appears when the module is enabled and you hold at least the base appointments permission (or are an admin). Each sub-item further needs its own permission — for example the Settings item requires manage_appointment_settings. Confirm the module flag is on in Settings → Manage Modules, then check your role’s permissions.
Public booking 404s unless both the Appointments module is enabled and “Enable public booking page” is turned on in Settings. Also verify the company slug is correct — the public and review links are built from it. See Online Booking Portal.
No time slots appear even though the service is public.Three things must all be true: the service is Active and Public, at least one provider is assigned to it, and that provider has an HR weekly Schedule with in/out times for the chosen day. Large service buffers, a strict minimum lead time, or a date beyond maximum advance can also legitimately return “No available times” — that isn’t the same as “fully booked.”
Do I have to schedule the reminder / review emails myself?No. Both jobs are enabled by default and start automatically once the module is on. Reminders run every 5 minutes; review requests run hourly but only when “Enable review requests” is also on. Values you save in Settings take effect on the next run.
Can front-desk staff see the Reports or Settings pages?Only if you grant them. Reports needs appointment_reports and Settings needs manage_appointment_settings. In the suggested matrix both are left off Front desk and kept with Managers/Admins.
Prefer setting it Inactive (or just unchecking Public) over deleting, so past appointments and reports keep a clean reference. Deletes are soft deletes that hide the record from the catalog. The same principle applies to appointments: Cancel rather than delete when you need entitlement release and waitlist alerts to fire.
Next steps
With the module enabled, catalog built, staff assigned, and settings tuned, head into the day-to-day pages: