0.20.0
WordPress accounts, outgoing webhooks, a rebuilt email set and a large workspace update. Storage upgrades to schema 6 (additive). See [customer accounts](docs/customer-accounts.md), [webhooks](docs/webhooks.md), [emails](docs/emails.md) and [admin workspace](docs/admin-workspace.md).
Read full notes 35 changes
### Booking form, manage page and dashboard
- Customer accounts Optionally link customers to WordPress accounts. Logged-in customers have their details filled in and see their bookings in the dashboard without an emailed link (
[core_bookings_dashboard]). - Customer accounts Require login per site or per service, enforced on the server. Create accounts at booking (checkbox or automatic,
subscriberby default) without revealing existing accounts. - Customer accounts Accounts link only after the email is proven (Core Bookings created the account, or the customer confirmed an emailed link), because WordPress lets users change their email without confirmation. "Trust WordPress account emails" is an opt-in for sites that verify emails at registration and never applies after a user changes their email.
- Customer accounts Managers can create, link or unlink a customer's account with a reason. Deleted users are unlinked; privacy export and erasure include the link.
- Customer accounts Where accounts apply (login required, account creation on, or FluentCart), logged-in customers book under their account email; elsewhere they are prefilled and may book for someone else.
- Outgoing webhooks Send booking, payment, customer, session-pack and waitlist events to Zapier, Make, n8n, FluentCRM or any HTTPS address from Settings > Webhooks, in a standard or flat format.
- Outgoing webhooks Requests are signed (Standard Webhooks), limited to public HTTPS addresses, and retried for about two days. Each endpoint has a delivery log with Resend and turns itself off after repeated failures, emailing the admin.
- Outgoing webhooks Payment holds that expire unpaid now appear in the timeline and notify integrations; pack, waitlist and customer changes emit events for developers too.
- Emails Readable statuses ("Awaiting payment") instead of internal codes.
- Emails An editable email per event (confirmed, awaiting payment, request received, approved, declined, rescheduled with the previous time, cancelled, refunded, balance paid), each able to follow the general template.
- Emails Calendar (.ics) files attached to confirmations and reschedules.
- Emails Optional staff and admin emails for new, cancelled and rescheduled bookings; approval and calendar-conflict emails include booking details.
- Emails From name, From address and Reply-To settings. Waitlist and session-pack emails use the selected delivery provider.
- Emails Completed and no-show updates no longer email the customer.
- Emails Starts on the first bookable date, respects notice and horizon, lists common timezones first, shows the hold time and the amount on the payment button, and marks errors on their fields.
- Emails Optional phone and notes fields and a per-service booking policy saved with each booking.
- Emails Customers can add a cancellation reason and release an unpaid hold; change and cancel buttons hide inside the cutoff.
- Emails The dashboard has Upcoming and Past tabs, editable profile fields, session-expiry notice, and only offers "Book again" for bookable services.
- Emails The standalone page uses the site logo, shows the amount due and lists only active hosts.
- Workspace Add phone and walk-in appointments, with an optional customer email, recorded payment, or an override with a reason.
- Workspace Reopen completed or no-show appointments, confirm a payment-review booking after checking the provider, reschedule from available times, resend confirmations, edit customer contact details and copy the manage link.
- Workspace Filter by staff, date range and any status; upcoming views list the next appointment first. CSV export follows the filters with fuller columns.
- Workspace Group sessions, date-specific hours and FluentCart extras are edited as rows, with weekly repeats.
- Workspace Customers list linked account, bookings, next appointment and credits; rosters get a session picker, capacity, CSV and print; the waitlist shows service and staff.
- Workspace Remove saved credentials, copy webhook and redirect addresses, 18 more currencies, and optional customer details in staff Google events.
- Workspace Setup checks cover the background worker, its schedule, the encryption key, FluentCart and the Stripe publishable key. Operations shows readable names, and old finished records are cleaned up after 30 days.
- Fixes Refunds on confirmed bookings no longer drop pending reminders (Stripe and FluentCart).
- Fixes The background jobs schedule re-creates itself if it goes missing.
- Fixes The refund form stays available after a partial refund.
- Fixes Block text and many interface and validation messages are now translatable; admin muted text meets contrast guidelines.
- Fixes Rate limits can trust your own proxies, and next-slot searches no longer use up booking submissions.
- Fixes Imports and exports keep the new service options and booking contact fields.
- Fixes Privacy export and erasure include booking phone numbers and notes.
- Fixes Webhook address checks cover IPv6 records and pin each request to the checked address; calendar attachments are written to a private temporary folder.
- Fixes A failed database upgrade shows an admin notice and retries instead of stopping the site.