Configure price refresh for future appointments
This article explains how to configure Zenoti to apply service price changes to appointments that have already been booked for future dates. The setting prevents stale pricing on bookings made weeks or months ahead and gives center managers a self-service way to apply new rates.
Overview
The feature is opt-in at two levels:
An organization administrator enables the master setting at the organization level.
A center manager configures the rules for their own center — which kinds of price changes start a refresh, which appointments are eligible, and what is excluded.
Saving a configured price change shows a confirmation prompt with the impact. The price change saves either way; the prompt controls only whether future appointments are refreshed.
Before you begin
The feature is off by default. The organization-level toggle must be on, and each center must save its own configuration, for any prompt to appear. Different actions require different role permissions. Organization administrators can turn on the organization-level toggle. Center managers and above can configure center-level settings and view the refresh log. The confirmation prompt fires for any user with permission to edit service prices, employee profiles, or job configurations.
To configure these permissions, at the organization level, click the Configuration icon and navigate to Security > Security Roles, select the role, and click the Permissions tab.
Supported triggers
Trigger | Where the change is made | What is refreshed |
|---|---|---|
Service master price change | Service catalog > Centers tab > Sale price | All future appointments for that service at that center |
Employee–service change | Employee profile > Services tab > Guest cost or Price scaling factor | All future appointments for that employee–service combination |
Job–service change | Job configuration > Service price | All future appointments for employees in that job, for that service |
Changes to guest-specific pricing, consumable mappings, duration-based pricing, tax groups, demand pricing groups, or other indirect price influences do not trigger a refresh.
Enable the feature at the organization level
At the organization level, click the Configuration icon and navigate to Services.
Turn on the Allow centers to configure price refresh for future appointments toggle.
Click Save.
Turning the toggle off later preserves any settings centers have saved, but hides the configuration page until the toggle is turned back on.
Configure the feature at the center level
At the center level, click the Configuration icon and navigate to Services > Price refresh for future appointments.
Under Triggers, select one or more events. At least one is required to save.
Under Appointment scope, choose the following:
Appointment type: All appointments (one-off and recurring) or recurring/standing only.
Time window: All future dates or a specific date range.
Review the Exclusions notice.
Click Save settings.
A live scope summary appears below the appointment scope section — for example, All appointments + All future dates will be updated. Regardless of the scope you choose, refreshes never apply to appointments with campaign discounts applied, appointments with partial or full payment recorded, or appointments redeemed against a membership, package, loyalty points, or gift card. For an exception to any of these, contact your Zenoti representative. Saving a configured price change shows a confirmation prompt. The price change saves either way; the prompt only controls the refresh. Click Confirm & update to apply the new price to matching future appointments and write a log entry, or click Cancel to skip the refresh. Save the price change again later to retry. The information shown varies by where the change was made. A single-center price change shows the service name, old → new price, trigger type, and counts of appointments to update and excluded (with reasons). An organization-level change shows the service name, old → new price, the number of enabled centers out of the total, the total appointments to update across them, the total excluded, and a note that each center's rules apply. An employee profile or job configuration change shows the employee or job name, change type, affected services as X services across Y appointments, and the excluded count. All prompts include an irreversibility warning.
View the refresh log
Every confirmed refresh writes a log entry recording who confirmed it, when (UTC), the trigger type, the old and new price, the scope and exclusion categories applied, the counts of appointments updated and excluded with per-reason breakdown, and the affected centers. You can view the log from at the center level by navigating to Services > Price refresh for future appointments > View refresh log, or from the activity log on any affected appointment or invoice. Toggling the price refresh setting on or off is also logged, with employee attribution.
Note
Price changes made through Data I/O imports, API calls, or other backend bulk update paths do not show the confirmation prompt. These changes save normally; future appointments are not refreshed.
Considerations
If zero future appointments would be affected, the save completes without showing the prompt.
If the center setting is off and an organization administrator changes the price, no prompt appears for that center and no refresh runs.
If two operators change the same price at the same time, the first confirm wins and the second operator sees the recalculated state.
When an employee has appointments across multiple centers, refreshes only run at centers where the setting is on and this kind of price change is configured.
For a standing series, each future occurrence is evaluated independently against the scope and exclusion rules.
If the toggle is turned off after refreshes have run, already-refreshed prices remain and the toggle change is logged.