Skip to content

Powered by Grav CMS + Helios Theme

Emails and reminders

Bookings provides eleven customer messages and five merchant notifications. Manage them under KahunaCart → Settings → Notifications, where each has an on/off switch.

Your theme can override the templates for the eleven customer messages.

Before you begin

  • kahunacart.settings to switch a message on or off.
  • A running worker to send all queued messages, including receipts.
  • Email set up on the site, which is the Email plugin and whichever provider you send through. See Emails.
  • system.custom_base_url configured for jobs queued from the command line, so email links use the correct host.

Customer messages

These eleven customer messages appear under Notifications:

Message When Carries an invitation
Booking request received A booking is waiting for you to say yes No
Booking confirmed A booking with nothing to pay is going ahead Yes
Add this to your calendar A booking that rode in on an order is going ahead Yes
Booking cancelled (customer) It was called off Yes, a cancellation
Booking moved It was rescheduled Yes, replacing the entry
Booking declined You said no Yes, a cancellation
Reminder It is coming up No
Thank-you It happened No
Added to a waiting list A full class took their name instead No
A place is being held for you One is held while they pay for it No
You have a place They are off the list and on the register Yes

Avoid duplicate confirmations

Paid bookings include appointment details in the order receipt, which serves as the confirmation.

Bookings linked to an order do not send Booking confirmed. They can send Add this to your calendar, containing a short message and an .ics attachment. Disable that message to send only the receipt.

Bookings without orders, including free appointments and payment on the day, send Booking confirmed instead.

A booking awaiting approval always sends Booking request received, whether or not it has an order. The receipt confirms payment; this message makes the pending approval clear.

Waiting list messages

The final three messages apply to waiting-list bookings.

Added to a waiting list confirms that no payment has been taken.

A place is being held for you applies to paid classes. It gives the hold deadline and links to the booking, where the customer can add the place to their cart. If the offer expires, the place is offered to the next person; the original customer remains on the waiting list.

You have a place includes a calendar invitation because the place is confirmed. The other waiting-list messages do not include one.

Each message includes Manage this booking, linking to /booking with the customer’s token. The plugin serves the page automatically, and the same link works for guests and account holders.

To remove the management link, clear Plugins → KahunaCart Bookings → Messages → Manage page. Account holders are then directed to their Bookings tab. Guests receive no self-service link.

The calendar invitation uses the same booking URL, so customers can open it from their calendar entry.

The calendar invitation

Four messages attach appointment.ics. Calendar apps use its event identity to create or update the appointment, so rescheduling replaces the existing entry.

Pending approval requests and reminders do not attach an invitation. Invitations are sent when the customer has a confirmed appointment or its details change.

Reminders

By default, reminders are sent 24 hours and 1 hour before the appointment. Edit the comma-separated hours under Plugins → KahunaCart Bookings → Messages → Reminders. Clear the field to disable reminders.

Reminders apply to confirmed and pending bookings. Cancelled, rejected and no-show bookings are excluded.

A reminder goes once per appointment per lead time, however many workers you run.

Rescheduling resets reminders. A moved appointment receives reminders for its new time, even if reminders were already sent for the original time.

Note

Setting 24, 1 sends two reminders: one a day before the appointment and one an hour before it.

The thank-you

The thank-you is enabled by default and sent two hours after the appointment ends. Its default content contains no discount code or review request.

Only bookings from the past week are eligible when the follow-up runs. Enabling it does not email the store’s entire booking history.

Confirmed and completed bookings only, and never a no-show.

Merchant notifications

Merchant messages use the configured notification channels, such as email, Slack or Pushover. See Notifications.

Event When How loud
Booking made Somebody booked a time Normal
Booking waiting for you Somebody asked for a time on a service you approve by hand High
Booking cancelled A booking came off and the time went back Normal
Paid for a time you no longer have Money arrived after the time had gone High
A class has sold out The last place on one date has gone Normal
Balance not paid A deposit came in, the rest fell due and it has not arrived High
A customer moved their booking A customer picked a new time for their own booking from their link or account Normal

Approval requests and booking conflicts have high priority because both need a decision from you.

A sold-out class has Normal priority. The notification is sent once per date, rather than once for each booking.

Notification payloads include the booking reference, service, time and status. They exclude customer email addresses and telephone numbers. The one message that says who is A customer moved their booking: it names the customer, because they moved their own booking and you want to know whose, and shows the old time beside the new one.

A customer moved their booking is sent only when the customer did the moving, from their link or account. A booking you or your desk moved sends nothing, because you were there. It is not the same as the customer's own Booking moved email, which tells them their new time. It is one message per move: a customer who moves a booking from 2pm to 4pm, back to 2pm and on to 4pm again sends three, and the same move submitted twice sends one.

When an outside calendar stops loading, the dashboard alert goes to the same channels as well, under a row called An outside calendar is not loading. You get one message when it starts and a "Cleared" one when everything loads again. That needs KahunaCart 1.5.3 or later.

The first three notifications are sent once per booking. Conflicts are reported once per order, even when several booking lines are affected.

Troubleshoot delivery

  • No reminders. Check the worker, the Reminders field and the Reminder notification switch, in that order.
  • Extra confirmations. A paid booking should send the receipt and, if enabled, a calendar invitation. A separate Booking confirmed message means the booking is not linked to its order.
  • Duplicate calendar entries. A rescheduled appointment should update the existing entry. Check that the calendar app is applying updates to the original event.
  • Links point to localhost. Set system.custom_base_url so the worker can build the correct URLs.
  • Missing management links. Restore /booking under Messages → Manage page.

Override a message template

Each customer email has a template pair. Copy both files into user/themes/<your-theme>/templates/emails/ to override them. Shared appointment details use one partial, so a change there applies to all messages. See the template reference.

HTML templates extend the core email layout and inherit its colours, logo and footer.

These eleven messages are not available in an order’s Send email… menu, which does not support add-on messages. Sent messages still appear on the order timeline.

  • Notifications - the screen all eighteen are listed on, and the channels yours go out through
  • Emails - the layout every one of these extends, the mail log, and what a failed send looks like
  • Classes and waiting lists - what the last three messages are about
  • Settings reference - the lead times, the thank-you and the manage page
  • Customer accounts - where a signed-in customer reads their own appointments instead of following a link