Bookwise Appointments Suite — Documentation

Guide to installing and using Bookwise Appointments Suite. The booking basics (services, staff, hours, e-mails, customer links, roles, REST API) are the same as in the free plugin: see the Bookwise Appointments documentation. This page covers what the Suite adds.

Contents

1. Installation

Requirements: WordPress 6.3 or newer and PHP 7.4 or newer. HTTPS is needed for live payments and for Google sign-in.

  1. In WordPress go to Plugins → Add New → Upload Plugin, choose the Suite zip and click Install Now, then Activate.
  2. A Bookwise menu appears. The extra settings are under Bookwise → Suite, one tab per feature.
Use either Bookwise Appointments (free) or the Suite, not both at once. If both are active, only the one WordPress loads first runs and the other stays idle with a notice asking you to deactivate one. Your services, staff and bookings are shared and are kept when you switch.

2. Getting started

  1. Add a service and a staff member with weekly hours (in either order), assign the staff member to the service (on the service page or on the staff member’s page), and put [bookwise_booking] on a page (see the free documentation).
  2. Open Bookwise → Suite and set up only the features you want. Each tab explains what it needs.
  3. Test with Stripe test keys and a Twilio test number first.

3. Online payments (Stripe)

Customers pay on Stripe's hosted Checkout page. You need a Stripe account.

  1. In the Stripe dashboard (test mode first) copy the secret key (starts with sk_test_ or sk_live_).
  2. Under Developers → Webhooks add an endpoint with the address shown on the Payments tab (it ends in /wp-json/bkwzs/v1/stripe-webhook) and select these events: checkout.session.completed, checkout.session.async_payment_succeeded, checkout.session.expired, charge.refunded. Copy its signing secret (starts with whsec_).
  3. On the Payments tab paste both, choose the currency and the hold time, and save. Check connection to Stripe confirms the key.
  4. Edit a service and choose its payment: No online payment, Full price at booking, Deposit: fixed amount or Deposit: percent of the price.

4. Text messages (Twilio)

  1. In the Twilio console copy your Account SID (starts with AC) and Auth Token, and get or verify a sending number.
  2. On the Text messages tab paste them, enter the number in international format (for example +15551234567), set the default country code and switch text messages on.
  3. Edit the confirmation and reminder messages. Merge tags: {business} {service} {staff} {name} {date} {time} {link}. Reminders are set in hours before the appointment (default 24, 1).
  4. Use Send a test message to your own mobile number.

A text is sent only to a customer who ticked the consent box on the booking form. Customers who reply STOP are blocked by Twilio itself; the plugin learns about it the next time it tries and then skips that number for good.

5. Google Calendar

Each staff member connects their own Google account, using an OAuth client that you create in your own Google Cloud project.

  1. In the Google Cloud console create a project and enable the Google Calendar API.
  2. Set up the OAuth consent screen (while testing, add the staff members' Google accounts as test users).
  3. Create an OAuth client ID of type Web application and add the redirect address shown on the Google Calendar tab exactly (it ends in admin-post.php?action=bkwzs_google_callback).
  4. Paste the client ID and secret on the tab and save. Press Connect next to a staff member and sign in with that person's account.

6. Discount codes

On the Coupons tab add codes with a percent or fixed amount, a number of uses (0 = unlimited), valid-from and valid-until dates and, if you like, the services it applies to. The booking form shows a “Discount code (optional)” box when at least one active code exists. The discounted price is what Stripe charges. A use is taken when the booking is made and given back if the booking never happens (for example payment expires). Enter 100 percent for a free booking.

7. Intake questions

When you edit a service, the Intake questions rows let you add extra questions for that service: text, long text, a choice list (separate the answers with commas) or a checkbox, optionally required. Answers are checked on the server, saved with the booking, shown on the booking page under Customer answers and added to the booking e-mails at the end of the details table. For your own e-mail wording you can also use the tags {intake} (plain text) and {intake_html}.

8. Special days

When you edit a staff member, Special days lets you give one date its own hours (for example 09:00-12:00, 13:00-17:00) or mark it as a day off. That date then replaces the weekly hours for that person, in the staff member's time zone.

9. License key

Under Bookwise → Suite → License you can enter a license key. All features work without a license key. The key is optional and is only used for support and update eligibility; there is no activation requirement. Lost your key? Contact admin@007aj.com.

10. Privacy and personal data

Payment records (amount, currency, payment type, status, refund amount, dates and Stripe payment references) are NOT removed by WordPress Erase Personal Data. They are retained for bookkeeping and tax rules. They hold no card data, name or e-mail address. Only the free-text payment note is cleared.

The Suite adds to the WordPress personal data tools (Tools → Export Personal Data and Erase Personal Data) and suggests privacy-policy text under Settings → Privacy; keep only the parts for the services you use. Secret keys and tokens are stored encrypted. Card numbers never reach your site.

DataStored on your siteSent toExportErase on request
Bookings and customersName, e-mail, phone (optional), notes, time zone, service, time, statusNobodyYesNotes and internal notes removed; customer record anonymised; the booking row (time, service, status, price) is kept without personal data. Upcoming active bookings are kept until cancelled or past.
E-mail logRecipient, type, time, resultNobodyYesDeleted
Stripe paymentsAmount, currency, payment type, status, refund amount, dates, Stripe references (no card data, no name, no e-mail)Stripe: e-mail, service name, booking reference, amountYesRetained on purpose (bookkeeping and tax rules). NOT removed by Erase Personal Data; only the free-text note is cleared. Stripe payment references stay with the payment record.
Text messages (Twilio)Log: type, time, status, Twilio reference, phone number; consent wording and time; STOP listTwilio: phone number and message textYesPhone number in the log and the consent record removed. The STOP list (numbers that replied STOP) is retained so STOP requests are respected.
Google CalendarEvent reference; staff tokens (encrypted)Google: event title (service and customer name), time, booking reference, business location. Never e-mail or phone.YesThe plugin asks Google to delete the event and drops the reference. If Google cannot be reached the eraser says so; delete the event in Google Calendar or erase again later.
Discount codesCode and discount on the booking; use counterNobody (the discounted price goes to Stripe)YesCode and discount removed from the booking; the anonymous use counter stays
Intake answersAnswers with the bookingNobodyYesRemoved

Retention statement. Payment records are NOT deleted when a booking or a customer is erased on request. Kept on purpose: amount, currency, payment type, status, refund amount, dates and the Stripe payment references (no card data, name or e-mail). Bookkeeping and tax rules require them. The text-message STOP list is also kept so STOP requests are respected. You decide how long to keep these retained records and delete them yourself afterwards. The eraser tells you what it kept and why. Personal data that is removed or anonymised includes intake answers, the discount code, the text-message consent record, phone numbers in the text-message log, free-text payment notes and the Google Calendar event. Data held by Stripe, Twilio and Google is not changed by Erase Personal Data; use their own tools for that.

The suggested privacy-policy text matches this table, and the export includes everything the Suite stores about a person’s bookings (including the retained payment records).

11. Uninstalling

Deactivating or deleting the plugin keeps your data. To remove everything when it is deleted, tick the delete-data option under Bookwise → Settings first. This removes the Suite's tables and settings as well.

12. Troubleshooting

Stripe says the signature is wrong

Copy the signing secret of this endpoint (it starts with whsec_), and use test keys with a test-mode endpoint.

The customer paid but the booking is not confirmed

Check in Stripe that the webhook endpoint is enabled and shows successful deliveries. The booking is confirmed when the webhook arrives.

Text messages are not sent

Check the Account SID, token and number, that the customer ticked the consent box, and (for a Twilio trial account) that the number is verified. The Text messages tab lists recent messages and any error.

Google says redirect_uri_mismatch

The redirect address in your Google OAuth client must match the one shown on the Google Calendar tab exactly.

Reminders are late

Reminders and retries run on WP-Cron, which runs when the site is visited. On a quiet site set up a real server cron job that calls wp-cron.php.

13. External Services & Data

The Suite connects to an outside service only when you turn the matching feature on, and sends nothing until you have entered your credentials for it.

ServiceUsed forWhat is sentTerms and privacy
StripeOnline paymentsAmount, currency, service name, booking reference and the customer's e-mail address to start a Checkout payment; refund requests. Card details are entered on Stripe only.Terms · Privacy
TwilioText messagesThe customer's phone number, your sending number and the message text, only for customers who gave consent.Terms · Privacy
Google CalendarCalendar syncSign-in code exchange; for each booking of a connected staff member the event title (service and customer name), start and end time, booking reference and your business location; reads start and end times of that staff member's calendar entries for the days being booked. The customer's e-mail address and phone number are not sent. Edits made in Google are not synced back.Terms · Privacy
007aj.comLicense key check, only if you enter a license keyThe key, your site's host name (for example example.com), and the product name bookwise-appointments-suite. Nothing else: no bookings, no customer data.Terms · Privacy

The Suite does not track visitors and sets no cookies.

14. Support

Email admin@007aj.com. Please include the Suite version (shown under Plugins) and what you expected to happen.

← Back to Bookwise Appointments Suite