White-label salon operations manual
BookMeOS Docs
BookMeOS is a complete business management and booking platform for appointment-based businesses.
Getting Started
Use the setup checklist below after a fresh installation or when preparing a new salon account for launch.
- Install BookMeOS. Upload the application, create a MySQL database, open the installer, enter database credentials, and create the first administrator account.
- Log in as an admin. Visit the admin login page, sign in with the installer-created owner account, and keep the password secure.
- Configure business settings. Add branding, contact information, time zone, business hours, booking behavior, and notification preferences.
- Add staff. Create public staff profiles, upload staff images, set bios, and choose who can be booked online.
- Add services. Enter service names, descriptions, prices, duration, buffer time, deposit options, images, and online booking status.
- Assign services to staff. Use Staff Services so BookMeOS knows which stylists can perform each service.
- Test the booking flow. Submit a test request as a customer, confirm it in admin, check the calendar, and verify any email notifications.
Dashboard
The Dashboard is the daily command center. It summarizes activity and provides quick links to common admin tasks.
- Metrics: Track today’s appointments, pending requests, weekly appointment volume, active staff, customers, and payment-related status cards.
- Incoming appointment requests: Review new online submissions and quickly confirm or cancel them.
- Today’s schedule: See upcoming appointments for the day without opening the full calendar.
- Quick actions: Jump to adding appointments, customers, staff, services, homepage content, or Lobby Display screens.
- System status: Watch configuration indicators such as email setup, payment setup, PWA readiness, and active lobby screens.
Appointment Requests
Online bookings arrive as appointment requests. Depending on settings, they may need manual confirmation before appearing as confirmed appointments.
- Pending status: A pending request means the customer submitted a desired service, stylist, date, and time but the salon has not finalized it yet.
- Confirming: Confirm the request when the selected time, stylist, and service are acceptable.
- Cancelling: Cancel requests that cannot be accommodated or were submitted in error.
- Rescheduling: If the customer needs a different time, cancel or edit the existing request and create the corrected appointment.
- Slot holds: If pending slot holds are enabled, pending requests temporarily block the selected time to reduce double-booking risk.
Appointments
The Appointments area lists scheduled work and supports manual appointment creation by admins.
- Viewing appointments: Review customer, service, stylist, start time, end time, source, status, notes, and payment state.
- Filters: Narrow the list by date, stylist, status, or other available criteria.
- Manual appointments: Create appointments directly for walk-ins, phone calls, or internal scheduling.
- Status values: Common statuses include pending, confirmed, completed, cancelled, and no-show.
- Payment status: Track whether payment is not required, pending, unpaid, paid, or requires follow-up.
- Appointment sources: Distinguish online requests from admin-created appointments.
Calendar
The Calendar provides a visual schedule for stylists and the front desk.
- Day view: Focus on one day’s timeline and appointment flow.
- Week view: Plan staffing and availability across multiple days.
- Month view: Review broader booking patterns and future demand.
- Stylist filters: Show all staff or one stylist at a time.
- Status filters: Display pending, confirmed, completed, cancelled, or no-show appointments as needed.
- Manual booking: Add an appointment from the calendar using centralized availability checks.
- Appointment detail view: Open appointment details to review customer, stylist, service, status, notes, and timing.
Customers
The Customers area is for salon client records only. It is separate from admin users and staff profiles.
- Customer search: Find clients by name, phone, or other available fields.
- Phone-number sign-in: Customers can sign into their booking portal using a phone-centered flow.
- Customer records: Store contact details, preferences, appointment history, notes, and industry-specific profile information.
- Preferred stylist: Save a customer’s preferred stylist to guide future booking decisions.
- Appointment history: Review past and upcoming visits to improve service consistency.
Customer Profiles
Customer Profiles centralize the information stylists and reception need before, during, and after a visit.
- Personal details such as name, preferred name, phone, email, birthday, and address.
- Haircut and color notes including natural color, current color, texture, length, formulas, and chemical history.
- Private notes for internal salon use.
- Customer-visible notes for summaries that may be shared through customer-facing experiences.
- Photos for profiles, inspiration, or visit documentation when enabled.
- Visit history connected to appointments and services.
- Preferences such as preferred days, times, stylist, communication choices, and product preferences.
- Allergies and sensitivities such as sensitive scalp notes or product restrictions.
Staff
Staff records describe real service providers. They are not the same thing as admin login users, though a staff profile may be linked to an admin user.
- Adding staff: Create each stylist, receptionist, or team member who should appear in scheduling or public content.
- Editing staff: Update names, contact details, role titles, specialties, bios, social links, and images.
- Active status: Active staff can be used operationally; inactive staff are retained for history but removed from normal workflows.
- Booking-enabled status: Only booking-enabled staff are offered for online appointments.
- Public visibility: Choose which staff display on public pages or marketing sections.
- Display order: Control the order staff appear in lists, public team sections, and booking flows.
Staff Services
Staff Services is the assignment matrix connecting stylists to the services they can perform.
- Service assignment matrix: Check or uncheck service assignments for each staff member.
- Why assignments matter: BookMeOS uses assignments to prevent customers from booking services with stylists who do not perform them.
- Public booking impact: A service appears with available staff only when active, public-bookable services have active, booking-enabled staff assigned.
- Warnings: Treat “no services assigned” warnings as launch blockers for that stylist or service.
Services
Services define what customers can book and what staff can perform.
- Service name and description: Use customer-friendly language that explains what is included.
- Duration: Set realistic appointment lengths so the calendar stays accurate.
- Buffer time: Add cleanup, consultation, or transition time around appointments.
- Price: Enter the customer-facing service price used for booking review and remaining-balance estimates.
- Appointment Deposit: Enable deposits per service when payment should be collected before the appointment can be confirmed. Choose a fixed amount or a percentage of the service price, then add a clear customer-facing policy description.
- Online booking status: Disable online booking for consultation-only or internal services.
- Service image: Upload visual content for public service presentation.
- Staff assignments: Assign staff after creating services so the booking flow can offer valid stylist choices.
Products
Products support retail merchandising and promotional content for businesses that sell products in-store or online.
- Adding retail products: Create product records with names, descriptions, categories, and brand details.
- Product image: Upload clear product photography for storefront and display use.
- Price and sale price: Show regular pricing and highlight promotional pricing when needed.
- Public visibility: Choose whether products are visible to customers.
- Featured products: Mark products for homepage or promotional placement.
- Lobby Display integration: Use products in promotions, slides, and digital signage blocks.
- Inventory tracking: If inventory fields are available, keep counts current so staff know what can be sold.
Homepage Content
Homepage Content controls customer-facing marketing copy and media without editing code.
- Hero content: Update the main headline, subheading, buttons, and featured image or media.
- Welcome section: Explain the business’s story, values, and client experience.
- Team section: Tune the wording that introduces the staff area.
- Booking call-to-action: Encourage visitors to start an appointment request.
- Footer content: Keep business details, messaging, and supporting links accurate.
- Media uploads: Upload images through the admin interface. Avoid raw image path entry so paths remain portable and validated.
Lobby Display
Lobby Display is designed as a digital sign for waiting rooms, product walls, lobby TVs, and front-desk screens. It is not an admin dashboard.
- Displays and multiple screens: Create separate screens for a main TV, front desk display, retail wall, or styling area.
- Layouts and zones: Arrange content into visual zones that can hold different block types.
- Block types: Add announcements, images, videos, QR codes, promotions, staff highlights, appointment widgets, clocks, and business information.
- Images and videos: Use uploaded media and select fit options such as contain, cover, or fill depending on the screen design.
- QR codes: Point guests to booking, product pages, review links, or promotions.
- Promotions and staff highlights: Feature retail products, service specials, and team members.
- Appointment widgets: Show appropriate appointment information while respecting privacy controls.
- Public preview: Preview screens before showing them on a physical display.
- Privacy controls: Avoid exposing sensitive customer or appointment details in public areas.
Email Settings
Email Settings controls SMTP delivery for appointment notifications and business communications.
- SMTP host and port: Enter the mail server hostname and connection port from the business’s email provider.
- Username and password: Use the provider’s SMTP credentials, app password, or authorized mailbox credentials.
- Encryption: Select the required encryption option, commonly TLS or SSL.
- Sender information: Set the from name and from email customers should see.
- Test email: Send a test after saving settings to confirm credentials and deliverability.
- Appointment notifications: Enable or disable request, confirmation, cancellation, and reminder-style messages where available.
Users
Users are admin and staff login accounts for BookMeOS. They are separate from customer accounts and separate from staff profile records.
- Adding admin users: Create a login with name, email, role, optional staff link, active status, and a temporary password.
- Roles: Typical roles include owner, administrator, manager, receptionist, stylist, and display-only.
- Permissions: Roles determine access to admin features such as appointments, customers, staff, settings, and user management.
- Active/inactive accounts: Inactive users cannot log in but remain available for history and audit purposes.
- Changing passwords: Users can change their own passwords; authorized admins can reset another user’s password without knowing the old password.
- Linking users to staff profiles: Link a stylist login to a staff profile when future workflows should limit that user to their own schedule or clients.
Settings
Settings define the core business behavior and customer-facing identity for a BookMeOS installation.
- Branding: Configure business name, logo, colors, and public identity details.
- Contact information: Keep phone, email, address, website, and social links current.
- Business hours: Set operating days and hours used by booking and availability.
- Booking behavior: Control rules such as online availability, request handling, and scheduling defaults.
- Auto-confirm: Decide whether online bookings become confirmed immediately or require admin approval.
- Pending slot holds: Choose whether pending requests temporarily reserve appointment times.
- Payments & Stripe: Configure Stripe test/live modes, publishable and secret keys, webhook signing secret, currency, success/cancel URLs, and the temporary payment hold duration. Secret keys are not displayed after saving.
- Payment slot holds: Deposit-required bookings hold the selected time temporarily while the customer completes Stripe Checkout. If payment is not completed before the hold expires, the slot is released.
- PWA settings: Manage app-style metadata such as icons, colors, and installable web app settings.
Booking Workflow
The customer booking flow is designed to be simple while still respecting staff skills, availability, and salon confirmation rules.
- Phone sign-in: The customer enters a phone number so BookMeOS can find or create the customer record.
- Select service: The customer chooses an active, online-bookable service.
- Select stylist: The booking flow offers staff who are active, booking-enabled, and assigned to the selected service.
- Select date and time: BookMeOS checks business hours, staff hours, service duration, buffers, and existing appointments.
- Cross-stylist alternatives: If the preferred stylist is unavailable, alternate stylists or nearby times may be suggested.
- Review price and deposit: If the service requires a deposit, the review step shows the service price, deposit due today, estimated remaining balance, and deposit policy before payment.
- Submit request: For services without deposits, the existing request workflow continues. For deposit-required services, BookMeOS creates an awaiting-payment appointment and sends the customer to secure Stripe Checkout.
- Payment confirmation: The Stripe webhook is the source of truth. A customer returning from Stripe may see “payment confirmed” or “payment is still being verified” until the webhook finishes processing.
- Confirmation: After a successful deposit, BookMeOS confirms the appointment or keeps it pending according to the business’s online booking settings.
- Customer portal: Customers can return to view appointment information and related booking details where enabled.
Troubleshooting
Stylist not appearing during booking
Confirm the staff member is active, booking-enabled, assigned to the selected service, and has available hours for the requested time.
Service has no assigned staff
Open Staff Services and assign at least one active, booking-enabled staff member to the service.
Appointment not appearing due to filters
Clear date, status, and stylist filters. Also check whether the appointment is pending, awaiting payment, cancelled, deleted, or assigned to a different staff member.
Deposit payment is missing or failed
Open Payments & Stripe to confirm Stripe is enabled, the correct test/live mode is selected, the active secret key is saved, and the webhook signing secret matches Stripe. Then review the appointment payment status and recent payment history.
Webhook is not updating deposits
Copy the exact webhook endpoint from Payments & Stripe into the Stripe Dashboard, subscribe to the relevant Checkout and payment events, and verify the signing secret. Do not rely on the success page to mark a payment paid.
Customer cancelled Stripe Checkout
The appointment remains awaiting payment only until the temporary hold expires. The customer can retry payment from the customer portal while the hold is active.
Refund questions
Refunds are not automatic on cancellation. An authorized administrator can issue a full or partial Stripe refund and record the reason according to the salon’s deposit policy.
SMTP test failure
Verify host, port, username, password, encryption, sender address, firewall rules, and whether your email provider requires an app password.
Cached CSS
Hard-refresh the browser, clear cache, or update the asset version if the hosting environment aggressively caches static files.
Media not displaying
Check that the file exists, the upload path is correct, file permissions allow public reading, and the media type is supported by the browser.
Lobby Display token or screen mismatch
Confirm the display URL points to the correct screen identifier or token and that the intended screen is active.
Installer database credential errors
Recheck database host, name, username, password, user privileges, and whether the database server accepts connections from the web server.
Frequently Asked Questions
Can BookMeOS be white-labeled?
Yes. BookMeOS is intended for branded deployments using the business name, colors, content, staff, services, and public messaging.
Are admin users the same as customers?
No. Admin users are login accounts for staff or administrators. Customer accounts and customer sessions are separate.
Are staff profiles the same as admin users?
No. Staff profiles describe salon team members for scheduling and public content. Admin users are login accounts. A user may optionally link to a staff profile.
Why can’t a customer book a service?
The service must be active, public-bookable, assigned to at least one active booking-enabled staff member, and available during business and staff hours.
Should pending requests hold appointment slots?
Most businesses should enable pending slot holds to reduce accidental double-booking while requests wait for approval. Deposit-required appointments also use payment holds while Stripe Checkout is pending.
Can deposits vary by service?
Yes. Each service can require no deposit, a fixed deposit, or a percentage deposit. Existing appointments keep the deposit amount that was captured when the appointment was created.
Do I need separate Stripe keys for test and live mode?
Yes. Configure test keys for sandbox payments and live keys for production payments. Never place real card data or live credentials in documentation or source control.
Can I use Lobby Display as a private admin dashboard?
No. Lobby Display is designed for public-facing digital signage. Avoid placing private customer, staff, or operational information on public screens.
How should passwords be shared?
Do not email or display passwords in plain text. Create or reset a temporary password, share it securely, and ask the user to change it after login.
Can this documentation be hosted separately?
Yes. This documentation is static HTML, CSS, and JavaScript. Copy the docs folder anywhere and open index.html directly.