Title: Yatoon Salon Booking &amp; Appointments
Author: yatoon
Published: <strong>March 26, 2026</strong>
Last modified: October 12, 2026

---

Search plugins

![](https://ps.w.org/yatoon-booking-system/assets/banner-772x250.png?rev=3712302)

![](https://ps.w.org/yatoon-booking-system/assets/icon-256x256.png?rev=3571419)

# Yatoon Salon Booking & Appointments

 By [yatoon](https://profiles.wordpress.org/yatoon/)

[Download](https://downloads.wordpress.org/plugin/yatoon-booking-system.4.8.1.zip)

 * [Details](https://syr.wordpress.org/plugins/yatoon-booking-system/#description)
 * [Reviews](https://syr.wordpress.org/plugins/yatoon-booking-system/#reviews)
 *  [Installation](https://syr.wordpress.org/plugins/yatoon-booking-system/#installation)
 * [Development](https://syr.wordpress.org/plugins/yatoon-booking-system/#developers)

 [Support](https://wordpress.org/support/plugin/yatoon-booking-system/)

## Description

**Run your salon’s bookings, schedules, payments, and customer relationships from
WordPress.**

Yatoon gives salons a polished booking experience for clients and a practical local
booking toolkit for the team. Clients choose services, add-ons, professionals, dates,
and times on mobile; staff manage the day from WordPress.

**[Try the live booking demo](https://yatoon.com/bookingdemo/)** – no account or
installation required.

**Watch the complete mobile booking demo:**

Built for nail salons, hair salons, barbershops, spas, beauty studios, and other
appointment-based businesses. Yatoon has also been used for daily bookings at a 
real nail salon for more than a year.

**Local-first workflow:** Free keeps scheduling, availability, customer records,
and bookings inside WordPress. External payment, calendar, messaging, and platform
connections are Pro features.

#### What Free includes

 * Local WordPress scheduling, availability checks, customer records, notifications,
   and booking management
 * Mobile booking for services, options, professionals, dates, times, customer details,
   and confirmation
 * Customer self-service for reviewing, rescheduling, cancelling, and rebooking 
   appointments
 * Staff calendar workflows with mobile rescheduling, temporary breaks, shared-resource
   checks, and capability-based Yatoon roles
 * Services, categories, images, variations, add-ons, pricing, staff qualifications,
   schedules, breaks, and closed dates
 * Waitlist, service menu, customer portal, staff portal, booking blocks, Elementor,
   and shortcode integrations
 * Customer-facing AI Chat when WordPress AI Client and a provider are connected
   and Chat is enabled by an administrator

Third-party integrations are optional and require their own accounts, credentials,
supported regions, and provider terms. Local mode continues to work inside WordPress
when an external provider is unavailable.

#### What customers experience

 * A mobile booking flow for services, variations, add-ons, professionals, date,
   time, customer details, and confirmation
 * Several services or guests in one booking journey, with separate staff choices
   and reference photos where enabled
 * Clear service durations, prices, appointment summaries, directions, and calendar
   actions
 * Secure self-service for viewing, rescheduling, cancelling, rebooking, and eligible
   service changes
 * A branded service menu, discovery storefront, portfolio, favorites, quick rebooking,
   and lightweight installable customer app

#### What your team manages

 * Services, categories, images, variations, add-ons, pricing, staff qualifications,
   and schedules
 * Business hours, staff schedules, breaks, time off, closed dates, and availability
   rules
 * Appointment calendar, client records, notes, reports, notifications, and waitlist
 * Mobile-friendly rescheduling, temporary break controls, shared-resource checks,
   and role-specific staff workspaces

Before a booking or sensitive change is saved, Yatoon rechecks staff qualification,
schedules, breaks, closed dates, existing appointments, shared resources, and relevant
external availability. If a time is taken during checkout, the customer keeps their
details and gets a clear recovery path.

#### Add it to any WordPress page

Use the native block, Elementor widget, or one of these shortcodes:

 * `[yatoon_booking]` – complete booking form
 * `[yatoon_service_menu]` – visual service menu with Book buttons
 * `[yatoon_customer_portal]` – customer self-service portal
 * `[yatoon_staff_portal]` – mobile staff schedule portal
 * `[yatoon_discovery]` – discovery storefront and booking entry points

### External Services and Privacy

**Google Maps – `www.google.com/maps`.** The confirmation page displays a lazy-loaded
map when a business address is configured. The preview sends the public business
address and normal browser connection information to Google; it does not include
customer names, email, appointment details, or manage tokens. Clicking the map opens
Google Maps directions to that address. See [Google Privacy](https://policies.google.com/privacy)
and [Google Terms](https://policies.google.com/terms).

Free Local mode performs booking and availability inside WordPress and does not 
require Square, Vagaro, Stripe, PayPal, Twilio, Google Calendar, Microsoft Outlook,
or Meta WhatsApp.

Optional external services are described below. They are used only by their configured
features; third-party sign-in additionally requires the user to choose the relevant
sign-in button. Local booking does not require third-party sign-in.

**Google sign-in – `accounts.google.com`, `oauth2.googleapis.com`, `openidconnect.
googleapis.com`.** Available in Free and Pro, disabled by default. After an administrator
configures and enables it, a customer or eligible staff member can choose Google
sign-in. The browser sends the configured OAuth client ID, callback URL, requested
identity scopes, and random state/nonce to Google. The server exchanges the authorization
code using the configured client credentials and requests the approved identity 
profile. Google returns an account identifier, verified email, and name/profile 
image URL when available; Yatoon uses this identity to link the local account. Appointment
details are not sent for sign-in. See [Google Privacy](https://policies.google.com/privacy)
and [Google Terms](https://policies.google.com/terms).

**Sign in with Apple – `appleid.apple.com`.** Available in Free and Pro for customers,
disabled by default. After an administrator configures and enables it, a customer
can choose Apple sign-in. The browser sends the Services ID, callback URL, requested
name/email scopes, and random state/nonce. The server exchanges the authorization
code with a signed client credential and fetches Apple’s public verification keys.
Apple returns an account identifier and, when approved and available, name/email;
the email can be an Apple private relay address. Yatoon links this identity to the
local account. Appointment details are not sent for sign-in. See [Apple Privacy](https://www.apple.com/legal/privacy/)
and [Apple Developer Terms](https://developer.apple.com/terms/).

**Facebook sign-in – `www.facebook.com`, `graph.facebook.com`.** Available in Free
and Pro for customers, disabled by default. After an administrator configures and
enables it, a customer can choose Facebook sign-in. The browser sends the configured
App ID, callback URL, requested public-profile/email scopes, and random state. The
server exchanges the authorization code using the configured app credentials, then
requests the approved profile with the access token. Meta returns the account identifier,
name, and email when available; Yatoon links this identity to the local account.
Appointment details are not sent for sign-in. See [Meta Privacy](https://www.facebook.com/privacy/policy/)
and [Meta Platform Terms](https://developers.facebook.com/terms/).

**Fonts.** Yatoon does not download fonts from any remote host, and does not bundle
font files either. Choosing a font family under Brand & Colors only adds that family
name to the CSS font stack; otherwise the system font is used.

**Yatoon push relay (Cloudflare Worker) – `https://yatoon-api.yatoon.workers.dev`.**
Optional and disabled by default. When explicitly enabled, Yatoon sends a signed,
pseudonymous browser push subscription endpoint and a generic event type to this
Cloudflare Worker. Customer names, contact details, services, appointment times,
and notes are never sent. See [Yatoon](https://yatoon.com/) and the [Cloudflare Privacy Policy](https://www.cloudflare.com/privacypolicy/).

**Freemius – `https://api.freemius.com`.** Used for optional account connection,
licensing, plugin updates, and upgrade screens. It is contacted only when an administrator
opts in or uses one of those features. See [Freemius Privacy Policy](https://freemius.com/privacy/)
and [Freemius Terms](https://freemius.com/terms/).

**Provider integrations.** Each service below is contacted only when an administrator
has configured its credentials and switched the corresponding feature on, and only
while performing the action that needs it. Provider credentials are stored encrypted
in WordPress; Yatoon diagnostics must not include them.

**Free package providers.** Free can use the following optional services when the
site owner enables them:

 * Google Maps – `www.google.com/maps` (confirmation-page directions map)
 * OpenAI – `api.openai.com` (optional AI assistant). [Privacy](https://openai.com/policies/privacy-policy/)–
   [Terms](https://openai.com/policies/business-terms/)
 * Anthropic – `api.anthropic.com` (optional AI assistant). [Privacy](https://www.anthropic.com/legal/privacy)–
   [Terms](https://www.anthropic.com/legal/commercial-terms)
 * Google Gemini – `generativelanguage.googleapis.com` (optional AI assistant). 
   [Privacy](https://policies.google.com/privacy) – [Terms](https://ai.google.dev/gemini-api/terms)
 * Cloudflare Turnstile – `challenges.cloudflare.com` (optional booking-form bot
   check). [Privacy](https://www.cloudflare.com/privacypolicy/) – [Terms](https://www.cloudflare.com/website-terms/)

Before any customer text can reach an AI provider, an administrator must enable 
the relevant AI feature, and Yatoon requires explicit one-time customer consent 
and screens the message for sensitive data. Customer-facing AI is off by default
on new installations, and connecting a provider alone does not publish it.

Site owners are responsible for obtaining required consent, publishing an accurate
privacy notice, configuring retention, and complying with the rules of their region
and chosen providers.

## Screenshots

[⌊Mobile booking flow: services, add-ons, staff, date, time, and a clear appointment
summary.⌉⌊Mobile booking flow: services, add-ons, staff, date, time, and a clear
appointment summary.⌉[

Mobile booking flow: services, add-ons, staff, date, time, and a clear appointment
summary.

[⌊Service menu with categories, images, durations, prices, and Book buttons.⌉⌊Service
menu with categories, images, durations, prices, and Book buttons.⌉[

Service menu with categories, images, durations, prices, and Book buttons.

[⌊Staff selection with Any Staff, preferred professional, and real available openings.⌉⌊
Staff selection with Any Staff, preferred professional, and real available openings
.⌉[

Staff selection with Any Staff, preferred professional, and real available openings.

[⌊Multi-service and group booking for several services or guests in one visit.⌉⌊
Multi-service and group booking for several services or guests in one visit.⌉[

Multi-service and group booking for several services or guests in one visit.

[⌊Confirmation receipt with services, times, prices, directions, and calendar actions.⌉⌊
Confirmation receipt with services, times, prices, directions, and calendar actions
.⌉[

Confirmation receipt with services, times, prices, directions, and calendar actions.

[⌊Customer self-service for reviewing, rescheduling, cancelling, and rebooking.⌉⌊
Customer self-service for reviewing, rescheduling, cancelling, and rebooking.⌉[

Customer self-service for reviewing, rescheduling, cancelling, and rebooking.

[⌊Mobile Staff Portal with a practical day schedule.⌉⌊Mobile Staff Portal with a
practical day schedule.⌉[

Mobile Staff Portal with a practical day schedule.

[⌊Admin calendar, service catalog, customer records, and appointment management.⌉⌊
Admin calendar, service catalog, customer records, and appointment management.⌉[

Admin calendar, service catalog, customer records, and appointment management.

[⌊Booking confirmation with services, times, prices, directions, and calendar actions.⌉⌊
Booking confirmation with services, times, prices, directions, and calendar actions
.⌉[

Booking confirmation with services, times, prices, directions, and calendar actions.

[⌊Customer self-service and mobile staff booking screens.⌉⌊Customer self-service
and mobile staff booking screens.⌉[

Customer self-service and mobile staff booking screens.

[[

[[

## Installation

 1. Install and activate **Yatoon Salon Booking & Appointments**.
 2. Open **Yatoon Booking > Settings > Features & setup > Setup Wizard**.
 3. Add your services, prices, durations, staff, schedules, business hours, breaks,
    and closed dates.
 4. Connect only the payment, calendar, messaging, or platform integrations your workflow
    needs.
 5. Add the booking block, Elementor widget, builder element, or `[yatoon_booking]`
    shortcode to a public page.
 6. Run a test booking, customer self-service, and staff workflow before launch.
 7. Exclude booking and portal pages from full-page caching and delayed JavaScript 
    optimization.

Open **Settings > Features & setup > Help & demo** for the built-in quick start,
demo, and troubleshooting guide. The package also includes `docs/quick-start.md`,`
docs/validation.md`, and reproducible focused test instructions in `tests/README.
md`.

## FAQ

### What does Pro add?

Pro adds unlimited staff, two-way Square Appointments synchronization, one-way Vagaro
import with booking creation, online payments and deposits, no-show tracking, SMS
and calendar integrations, advanced customer self-service, growth tools, multi-location
operations, and priority support.

### Does Yatoon require Square?

No. Yatoon Free runs in Local mode inside WordPress. Square, Vagaro, Stripe, PayPal,
Twilio, Google Calendar, and Outlook Calendar are optional integrations.

### How does AI Chat connect, and how fast is it?

AI Chat uses the WordPress AI Client and the provider connections configured by 
the site owner. It does not use a separate AI Relay or expose provider credentials
in the browser. The chat keeps the complete provider response and shows a clear 
sending state; it does not use fake character-by-character playback. The current
public WordPress AI Client returns a complete text result rather than exposing a
stable token-stream API to plugins, so this release does not claim token-by-token
streaming.

### Are AI features enabled automatically?

No. New installations keep Chat Concierge, the booking-form Style Assistant, natural-
language rescheduling, and reply drafts off until an administrator enables each 
feature. Connecting a provider or entering an API key does not publish an AI widget
by itself. Existing sites keep their saved settings when updating.

### What does the Square integration cover?

Yatoon Pro supports two-way Square Appointments synchronization – creating, updating,
and cancelling Square bookings and receiving Square webhooks – plus Square online
payment, deposit, and refund options. Point of sale is limited to recording that
an appointment was paid in Square POS or Tap to Pay so it settles correctly in Yatoon’s
own reports and invoices; Yatoon does not replace the Square point-of-sale application.

### What exactly does the Vagaro integration do?

It reads services, staff, and availability from Vagaro and creates new appointments
in Vagaro when a customer books. It is an import plus booking creation, not two-
way synchronization: Yatoon does not push Vagaro reschedules or cancellations, receive
Vagaro webhooks, or run a scheduled re-pull.

### Can customers book more than one service or guest?

Yes. Each guest can have separate services, staff assignments, timing, and reference
photos while remaining part of one booking journey.

### Does Pro support deposits and online payments?

Yes. Configure the provider and deposit rules required by your business, then test
the complete payment and refund workflow in the provider’s test environment before
going live.

### Does the no-show rule charge the customer automatically?

It requires a deposit; it does not take money on its own. Once a customer reaches
your threshold, their next booking is treated as a deposit booking and checkout 
asks for the deposit amount configured under Payments, through the gateway configured
there. If no deposit gateway is set up, the rule can only flag the customer.

### How does Yatoon protect against schedule conflicts?

It checks staff qualification, working hours, breaks, closed dates, existing appointments,
shared resources, and external availability where applicable. A final server-side
check runs immediately before the change is saved.

### Can customers and staff manage appointments from a phone?

Yes. Customers can use the lightweight booking app and Customer Portal, while the
Staff Portal is designed for mobile daily operations.

### What database hosting does conflict protection require?

Booking writes require MySQL/MariaDB connection-scoped advisory locks (`GET_LOCK`).
Lock acquisition, availability checks, booking writes, and lock release must use
the same primary database connection and server. A connection pool, multiplexing
proxy, read/write router, or multi-writer cluster must preserve that connection 
and server for the whole operation. Open Tools > Site Health to check advisory-lock
support; that probe does not certify every proxy or cluster routing configuration.
If required locks cannot be acquired, Yatoon refuses the booking write and returns
a retry/error message rather than saving an unprotected appointment. Ask the host
to confirm connection pinning and run concurrent booking checks on a disposable 
site before launch.

### Does Yatoon work with page builders?

Yes. Major booking surfaces are available through Gutenberg blocks, Elementor widgets,
shortcodes, and adapters for Bricks, Beaver Builder, Divi, and Brizy.

### Is Yatoon multilingual?

Yatoon includes complete bundled translations for Simplified Chinese, Traditional
Chinese (Hong Kong and Taiwan), Spanish (Spain and Mexico), and Vietnamese. The 
catalogs cover every plugin message; product names and technical terms remain in
their original form where appropriate. Translation coverage is listed in `languages/
translation-coverage.json`. Site owners can edit their own service names, descriptions,
policies, and labels.

### Where can I get help?

Downloads, licensing, updates, and priority support are available through [Yatoon.com](https://yatoon.com/).
Copy the privacy-safe technical summary from Operations when reporting an integration
problem.

## Reviews

![](https://secure.gravatar.com/avatar/c8fdbb218150ad3ff6090d1895432ad571d5b0ba1ede54fcfe3b9d1a1956e484?
s=60&d=retro&r=g)

### 󠀁[Beauty and easy booking, perfect for Spa salons](https://wordpress.org/support/topic/beauty-and-easy-booking-perfect-for-spa-salons/)󠁿

 [sansan2026](https://profiles.wordpress.org/sansan2026/) May 5, 2026

Finally found an appointment booking system that doesn't complicate things. The 
setup for my spa services was very straightforward. Highly recommend for any local
business owner!!Thanks

 [ Read all 1 review ](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/)

## Contributors & Developers

“Yatoon Salon Booking & Appointments” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ yatoon ](https://profiles.wordpress.org/yatoon/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

“Yatoon Salon Booking & Appointments” has been translated into 3 locales. Thank 
you to [the translators](https://translate.wordpress.org/projects/wp-plugins/yatoon-booking-system/contributors)
for their contributions.

[Translate “Yatoon Salon Booking & Appointments” into your language.](https://translate.wordpress.org/projects/wp-plugins/yatoon-booking-system)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/yatoon-booking-system/),
check out the [SVN repository](https://plugins.svn.wordpress.org/yatoon-booking-system/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/yatoon-booking-system/)
by [RSS](https://plugins.trac.wordpress.org/log/yatoon-booking-system/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 4.8.1

 * Make the lifetime-spend VIP threshold configurable and let owners set individual
   clients to automatic, VIP, or not VIP.
 * Keep customer booking-history status labels compact and prevent narrow history
   columns from stretching rows.
 * Fix saving employee weekly schedules and date-specific overrides in the Free 
   edition.
 * Allow authorized customer email and phone edits while preserving linked booking
   history.
 * Add Gemini 3.8 Flash and Claude Haiku 5.5 as the latest model options and defaults.
 * Translate AI model option descriptions into the bundled locales while keeping
   model names in English.
 * Complete the bundled Spanish, Vietnamese, Simplified Chinese, and Traditional
   Chinese translations.
 * Correct JavaScript percent formatting for membership discounts.

#### 4.8.0

 * Use the uploaded Business Logo for installable app icons, falling back to the
   bundled Yatoon icon.
 * Disclose optional Google, Apple, and Facebook sign-in; describe partial translations
   and database hosting requirements.
 * Consolidate plugin feedback on Today while preserving earlier opt-outs and snoozes;
   defer cron label translations until init and include focused integration test
   instructions.
 * Summarize visits once on the owner Today page while retaining individual service
   details and actions.
 * Present local and legacy Square multi-service appointments as complete units,
   label add-ons, fold cancelled items, and exclude cancelled visits from the default
   list without removing their history.
 * Add a built-in Help & demo guide, quick-start documentation, and a quiet optional
   WordPress.org review invitation after sustained appointment use.
 * Keep appointment filters visible when there are no results, clarify full CSV 
   export, and improve customer list paging and accessible searches.
 * Coordinate service search with category navigation, support category names and
   multiple search terms, improve mobile search controls, and retain translated 
   More labels.
 * Consolidate General settings save actions in a persistent bar with accurate unsaved-
   state feedback and tuck template reset into More tools.
 * Add named setup steps with completion based on saved configuration and resume
   the first unfinished step.
 * Keep the selected appointment time visible in the mobile cart, clarify selected
   versus confirmed appointments, and improve translated step guidance and accessible
   status labels.
 * Simplify the admin sidebar to six workspaces plus All tools; add related-page
   navigation and searchable Website & Growth and Settings hubs. Keep original pages,
   permissions, direct links and complete tool search available.
 * Condense repeated settings navigation, clarify Pro badges, maintain bundled translations
   and repair the legacy Deposit & Prepay settings link.
 * Search the booking history by name, email, or phone; show each customer once,
   exclude cancelled appointments, and manually send review invitations with corrected
   email addresses.
 * Archive services while preserving bookings, options and employee assignments.
 * Use effective employee service durations for REST booking creation and availability.
 * Correct staff utilization using actual saved schedules and time off; aggregate
   material costs across all services.
 * Remove all owned scheduled task argument variants on deactivation without removing
   business data.
 * Preserve zero-minute add-ons in the service editor and clarify service archive
   actions.
 * Clarify staff customer access and sync diagnostics.
 * Compact WordPress submenu with seven core shortcuts; remaining tools are organized
   in a searchable, permission-aware All tools directory. Original page registrations,
   direct URLs and topbar search remain available.
 * Employee hours now preserve different weekday and split-shift schedules; date-
   specific one-time changes override only that date and the recurring default returns
   automatically.
 * Schedule validation protects saves and availability, create and reschedule paths.
   Square remains the default availability source in Square mode; optional Yatoon
   restrictions limit Yatoon bookings without changing Square calendar availability.
 * Calendar appointments are displayed using the timezone saved with each booking,
   including bookings near day boundaries.
 * Calendar hover details remain fully visible within the browser window instead
   of being clipped by the scrolled day grid.
 * Refined staff profile, message, checkout and editor sheets with consistent accessible
   close controls.
 * Customer-profile merge with its own permission, matching contact review, retained-
   profile selection, atomic consolidation and historical contact aliases.
 * Make snapshots consistent, restore all tables in one checked transaction, invalidate
   snapshots on erasure and remove them on full-data uninstall.
 * Validate restored booking availability; report actual bulk-update outcomes and
   protect schema retries with database locks.
 * Recover unfinished Stripe events and Square staff saves; serialize payment attempts
   and report failed journal writes.
 * Refresh expired frontend nonces once, limit active checkout holds and alert on
   persistent payment exceptions.
 * Store reference photos outside the public website and migrate previously tagged
   uploads to private access links.
 * Preserve mobile category, padding, validation-scroll and review-summary fixes;
   use responsive recovery cards.
 * Restricted public employee data and unified staff, variation and add-on scheduling,
   Any Staff duration ranges, waitlist matching and location checks.
 * Added encrypted checkout recovery, expiring Local-calendar payment holds, provider
   reconciliation and reuse of existing verified payments after interrupted submissions.
 * Fixed complete failed-job counts and pagination; added owner-facing availability
   diagnosis and private customer / visit context in Today.
 * Fixed peak resource capacity and cleanup occupancy; added optional Local-calendar
   service stages with saved booking snapshots.
 * Reduced initial booking JavaScript with a lazy checkout component; retained scrolling
   seasonal effects and added an optional reduced-motion-aware glass surface.
 * Retained the compact mobile flow, current-catalogue Book Again and guarded optional
   location modules on booking pages.

#### 4.7.8

 * Placed waitlist controls beside booking setup and added switch status and a settings
   shortcut on the Waitlist page.
 * Unified confirmation emails in one responsive layout with an easy-to-open appointment
   link. Existing plain-text preferences still work.
 * Refined the appointment summary card, mobile spacing, and service-change emails.
 * Improved waitlist recovery, including same-day signup and checks for every selected
   service.
 * Clarified accepted mail status and service names in appointment changes.
 * Improved the setup wizard and first booking checklist.
 * Clarified setup availability checks and booking readiness.
 * Simplified the default admin menu and strengthened local Any Staff selection.
 * Fixed confirmation emails to show selected service options and service-change
   emails to preserve the original option.

#### 4.7.6

 * Signing out of the Staff Portal now ends the session on the server, not just 
   in the browser. Previously the sign-out button only cleared local data, leaving
   the staff token usable until it expired on its own; if the sign-out request fails
   the portal now stays signed in and says so rather than implying it worked.
 * Fixed the installable offline app never registering: the Service Worker scripts
   are served through a rewrite rule, so WordPress redirected them to a trailing
   slash and the browser refused them. Both the booking and staff workers now load,
   and the error they logged on every page is gone.
 * The calendar’s booking popover now re-checks which way it should open while the
   day grid scrolls, instead of keeping the direction it was given when it opened.
 * Stopped shipping three Pro-only admin screens that no Free site could reach.
 * Added a guided first-run flow for Business, Team, Services, real staff availability,
   and the Booking Page, with a dashboard checklist for anything skipped.
 * Fixed Review Request emails so `{service_name}` is populated from the linked 
   service, added a real-booking preview, and replaced the overly promotional Google
   CTA with a calm invitation to share honest feedback.
 * Removed stray asterisks from review settings and email buttons, and stopped filtering
   Google review invitations by an internal rating so every invited client receives
   the same optional feedback path.
 * Made internal star-rating emails opt-in, prevented them from being sent alongside
   the direct Google review request, fixed their settings save path, and added their
   service details and delivery outcomes.
 * Replaced the short in-memory delivery history with an additive database-backed
   delivery ledger, migrating retained records and adding Sent / Failed filters 
   plus 25 / 50 / 100 row pagination.
 * Added scoped color modes: Customer Booking Widget supports Follow system, Light,
   and Dark; Yatoon Admin and Staff Portal support Light and Dark.
 * Added a shared semantic color-scheme token layer without duplicating the existing
   Beauty, Clean, and Luxury theme styles.
 * Updated the booking progress Current state to use each selected theme’s primary,
   border, and Light/Dark/Follow-system surface tokens instead of a fixed fill; 
   completed steps remain green.
 * Fixed Theme Preview persistence so Save Theme always saves the theme currently
   being previewed and the matching seasonal effect.
 * Restored Custom as an explicit storefront choice: named themes now control their
   complete component palette, while Custom applies the merchant’s saved colors 
   and per-button styling without deleting those settings.
 * Added the Custom Theme Library: Brand & Colors edits become a pending Custom 
   theme, then can be named, saved, applied, renamed, or deleted. Free stores one
   Custom theme; Pro stores up to five.
 * Made Custom Theme Library management discoverable beside Brand & Colors: saved
   themes now have explicit Use, Edit, Rename, and Delete actions, and a visible
   pending-save prompt appears after palette changes are saved.
 * Loaded the Custom Theme Library controller on the Brand & Colors menu itself,
   so its top-of-page prompt and save, use, edit, rename, and delete actions work
   on the screen where palette changes are made.
 * Moved the Custom Theme Library into the actual Brand & Button Settings screen,
   made Brand saves mark a pending Custom theme through its Settings API path, and
   made that screen available in Free with the one-theme limit.
 * Added saved Custom themes by name to Front-end style and Theme Preview. Choosing
   one applies its complete saved snapshot; later visual edits clear the active 
   snapshot and require an explicit update or new saved theme.
 * Fixed named Custom themes sharing the last globally saved palette. Save or Update
   now captures the current Brand controls as an independent sanitized snapshot,
   so every saved theme restores its own appearance.
 * Clarified the Custom Theme Library workflow: Edit this theme loads its saved 
   controls, Apply theme activates a saved theme, and Save changes to selected theme
   stores edits explicitly.
 * Removed the redundant Custom-theme selector. Editing a named theme now locks 
   that exact theme as the save target, loads its stored controls immediately, and
   sends the live form snapshot as JSON so saved themes cannot be confused with 
   one another.
 * Simplified Custom Theme Library actions to one Use and edit this theme control,
   which activates the selected theme, loads its values, and locks it as the only
   save target.
 * Seasonal effect controls now appear only for their matching theme: Festive Red
   Snowfall, Halloween Bats and Pumpkins, or Emerald Sparkles. Restored the optional
   Halloween pumpkins and gave all seasonal effects gentle free-direction drift 
   and rotation while preserving reduced-motion support.
 * Added the Modern booking theme with structured cards, contemporary spacing, teal
   actions, refined focus states, and full Light/Dark compatibility.
 * Added a scoped Theme Preview to Booking Experience settings with Beauty, Clean,
   Luxury, and Modern specimens, plus a nearby Save Theme action that persists the
   selected theme and its matching seasonal effect; Preview controls only expose
   Snowfall for Festive Red and Bats for Halloween.
 * Added the Festive Red booking theme with Light/Dark/Follow system support and
   an optional low-density, reduced-motion-safe Seasonal Snowfall effect scoped 
   to the booking widget and Theme Preview.
 * Organized Core and Seasonal themes in settings and added the polished Halloween
   theme with optional reduced-motion-safe bat decoration in the widget and Theme
   Preview.
 * Improved Festive Red Snowfall contrast and stacking so the optional effect remains
   visible above widget surfaces without intercepting interaction.
 * Kept booking data, APIs, and permissions compatible; the only new database object
   is the additive notification delivery ledger.

#### 4.7.5

 * Added a Delivery activity view with Sent / Failed filters across the retained
   WordPress email outcomes, explicit retry feedback, and a notification-only retry
   action that avoids racing an in-progress worker.
 * Improved Front Desk performance for busy days with server-backed customer, service,
   status, and professional filters that remain compatible with incremental Load
   more results.
 * Added import conflict reporting for duplicate, ambiguous, and incomplete rows,
   with preview-safe results and bounded sample details before records are changed.
 * Added deeper salon reporting metrics including repeat-client, retention, rebooking,
   cancellation, no-show, completion, average-ticket, booked-hour, commission, contribution,
   and forward-revenue views.
 * Made multi-location and shared-resource scheduling consistent across calendar,
   Front Desk, availability, booking, and customer workflows.
 * Added location-aware waitlist storage, filtering, exports, claim links, and scheduled
   availability checks. The waitlist migration is represented by schema manifest
   revision 16; the internal YATOON_DB_VERSION remains 4.7.1.
 * Updated release metadata and Dashboard generated assets for 4.7.5.

#### 4.7.4

 * Added a Daily Staff Time Grid with one shared local-time axis across employee
   columns, precise appointment placement and duration, overlap lanes, break and
   unavailable backgrounds, shared-resource visibility, and a current-time line.
   Desktop moves continue through existing availability and server-side reschedule
   validation; mobile keeps a single-employee grid with Move / Reschedule fallback.
 * Made appointment cards quicker to inspect: hover-capable desktop pointers show
   the existing quick preview with a short handoff delay, while desktop clicks, 
   touch taps, and keyboard activation open the existing full appointment details
   modal. Move / Reschedule remains in the card action menu, and calendar source,
   minified, RTL, and manifest assets were rebuilt.

#### 4.7.3

 * Restored the customer-facing AI Chat as a shared Free and Pro feature. Both packages
   now load one canonical Concierge class and six shared traits; customer chat remains
   available in Free when an administrator connects a provider and enables it.
 * Kept customers inside AI Concierge when final contact validation rejects a phone
   number, email address, or customer name. The editable contact form now reopens
   with the entered details preserved.
 * Fixed typed chat messages being accepted before the AI consent box was checked.
   The consent gate now covers every typed message before it is added to the conversation.
 * Improved multi-person chat booking so shared services, guest names, selected 
   options, prices, durations, and professionals remain correct through review and
   confirmation.
 * Improved the mobile chat control, service and option selection, running visit
   summary, and recovery when a customer changes a service, professional, date, 
   or time.
 * Added clearer local booking workflows for mobile staff rescheduling, temporary
   breaks, shared-resource checks, and capability-based Yatoon roles.
 * Completed the 4.7.3 release metadata and asset-manifest updates, and removed 
   obsolete Concierge build artifacts from both release packages.

#### 4.7.2

 * Added the customer-facing AI Chat to Free and Pro as an opt-in feature. Customers
   can describe what they want, review real services and availability, and continue
   through the existing booking flow.
 * Hardened AI chat input, consent handling, sensitive-data screening, bounded requests,
   multilingual responses, and provider rate limits.
 * Improved customer self-service, responsive booking layouts, availability checks,
   notifications, and local booking reliability.

## Meta

 *  Version **4.8.1**
 *  Last updated **6 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/yatoon-booking-system/), [Lao](https://lo.wordpress.org/plugins/yatoon-booking-system/),
   [Russian](https://ru.wordpress.org/plugins/yatoon-booking-system/), and [Spanish (Mexico)](https://es-mx.wordpress.org/plugins/yatoon-booking-system/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/yatoon-booking-system)
 * Tags
 * [appointments](https://syr.wordpress.org/plugins/tags/appointments/)[beauty](https://syr.wordpress.org/plugins/tags/beauty/)
   [booking](https://syr.wordpress.org/plugins/tags/booking/)[salon](https://syr.wordpress.org/plugins/tags/salon/)
   [spa](https://syr.wordpress.org/plugins/tags/spa/)
 *  [Advanced View](https://syr.wordpress.org/plugins/yatoon-booking-system/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/yatoon-booking-system/reviews/)

## Contributors

 *   [ yatoon ](https://profiles.wordpress.org/yatoon/)
 *   [ Freemius ](https://profiles.wordpress.org/freemius/)

## Support

Issues resolved in last two months:

     1 out of 1

 [View support forum](https://wordpress.org/support/plugin/yatoon-booking-system/)