Skip to content
Get a quote Call +66 93 004 4098

WordPress and platforms

Adding an online booking system to your website: options for clinics, salons and tours

Clinics, salons, spas and tour operators: how to add online booking to your website, which route fits, and what PDPA asks of you.

Cover image for this guide: Bookings

Do you need a booking system or a booking request form?

If customers must pick a real, available time slot and get an instant confirmation, you need a booking system: software that knows your staff, rooms and hours, blocks taken slots and sends reminders. If you confirm every appointment by hand anyway, a well-designed booking request form is cheaper, simpler and often converts just as well.

A good rule: count how many bookings you take in a busy week and how much staff time goes into back-and-forth messages. A small tutor or a boutique clinic with a dozen appointments a week can live with a request form and a quick reply on WhatsApp. A salon with six stylists, or a tour operator selling seats on daily departures, will lose customers to double bookings and slow replies without live availability. Booking is one feature among many, so if you are planning the whole site, our guide on how to make a website for your business shows where it fits in the project.

Three ways to add booking to a website

A hosted booking service, embedded

You sign up with an online scheduling service, set up staff and services in its dashboard, and embed its booking widget or link on your site. It runs on the provider's servers, handles reminders and often payments, and charges a monthly subscription that usually rises with the number of staff or bookings. Your data lives on its platform.

A WordPress booking plugin

The booking engine runs inside your own WordPress site, styled to match your theme, with bookings stored in your database. Plugins are commonly sold as a one-time licence or a yearly licence for updates and support. You get more control over design and data, and more responsibility for updates.

A booking request form

A form asks for the service, a preferred date and time, and contact details. Staff confirm by phone, email or message. It is the cheapest and fastest to launch, and it fits businesses that must check each request before accepting it.

Hosted serviceWordPress pluginRequest form
Live availabilityYesYesNo, staff confirm
Typical cost modelMonthly subscriptionOne-time or yearly licencePart of the site build
Where data is storedProvider's platformYour website databaseYour website and inbox
Look and feelProvider's widget, limited stylingMatches your themeMatches your theme
Deposits onlineOften built inOften through an add-onNot usually
Best forBusy multi-staff businesses wanting quick set-upBusinesses wanting control and one systemLow volume or hand-checked bookings

Which booking features should you look for?

Whichever route you choose, test these features with your own services and staff before you sign up or buy. A free trial or a demo site is enough to find the gaps. Pay special attention to the Thai-language side: many booking tools translate their customer screens but leave confirmation emails, date formats or error messages in English.

  • Real availabilityOpening hours, days off, public holidays and staff leave, all blocking slots automatically.
  • Staff, rooms and equipmentBookings tied to a named therapist, a treatment room or a tour vehicle.
  • BuffersCleaning or travel time between appointments so the diary stays realistic.
  • Deposits and paymentsOnline deposits by card or PromptPay where the tool supports it.
  • RemindersAutomatic email or message reminders before the appointment.
  • Cancellation rulesClear cut-off times and self-service rescheduling.
  • Calendar syncTwo-way sync with Google Calendar or Outlook so staff see one diary.
  • Thai and EnglishCustomer screens, emails and dates in both languages.

What clinics, salons and tour operators each need

Each business books a different thing. Clinics book by treatment and practitioner and must handle health data with care, salons and spas book by stylist or therapist and service length, and tour operators sell seats on fixed departures, often to customers abroad who pay a deposit to hold their place.

Clinics

Dental, aesthetic and physiotherapy clinics need booking by treatment and by practitioner, with longer slots for first visits. The biggest difference is data. A booking form that asks about symptoms, medications or previous treatments collects health information, which is treated as sensitive under Thai law. Ask only what you need to schedule the visit and collect medical history at the clinic, or through a properly secured intake process. Our page on clinic and medical website design covers the rest of a clinic site.

Salons and spas

Customers often want a particular stylist or therapist, so staff choice and each person's own schedule matter most. Packages, such as a massage plus a facial, need the system to book two services back to back, sometimes with two staff members. Buffers for cleaning and product preparation keep the day from running late.

Tour operators

Tours are sold by departure and capacity, not by staff time. You need seat limits per departure, options such as private or join-in groups, and pickup points or hotel names. Many customers book from abroad, so the system should show times in Bangkok time, accept international cards, and send a clear confirmation with meeting details in English. Deposits matter here, because no-shows on a full minibus cost real money.

Deposits, reminders and no-shows

No-shows are the hidden cost of online booking. Two tools reduce them: a deposit and a reminder.

Taking deposits

Many hosted booking services and some WordPress plugins can take a deposit at the time of booking through a connected payment gateway. Card payments are the most widely supported. PromptPay QR support depends on whether the tool connects to a Thai payment gateway that offers it, so check the vendor's current documentation rather than assuming. Decide your refund rules before launch and show them next to the Pay button.

Reminders

Email reminders are standard in almost every booking tool. SMS or messaging app reminders are offered by some tools as a paid feature. Use them as the tool provides them; a reminder 24 hours ahead with a simple reschedule link usually does more than a stern cancellation policy.

Connecting the rest

Payments and calendars are the connections most booking setups need. If you also want bookings to flow into a CRM, our guide to API integrations for business websites explains how those links work. Deposits create financial records too, so read our article on connecting your website to accounting software before choosing a payment setup.

Booking data and PDPA

Thailand's Personal Data Protection Act B.E. 2562 (2019) applies to every booking form, because names, phone numbers and emails are personal data. A few practical points:

  • Tell people why you collect each field. Link a privacy notice next to the form, in Thai and English, explaining what you keep, for how long and who sees it, including the booking provider if you use a hosted service.
  • Keep marketing separate. A booking does not give you permission to send promotions. Use a separate, unticked opt-in box.
  • Treat health information as sensitive. Section 26 of the PDPA lists health data among sensitive categories, which generally require explicit consent to collect. For clinics, keep the online form to scheduling details, and ask for explicit consent if you must collect anything about a patient's condition.
  • Check where the tool stores data. Hosted services may store bookings outside Thailand, which brings the Act's rules on cross-border transfers into play. Ask the vendor and record the answer.

This is general guidance, not legal advice. Clinics in particular should have their consent wording checked by a lawyer familiar with the PDPA.

How much does online booking cost to set up?

The running costs differ by route. A hosted service is a subscription for as long as you use it, so multiply the monthly fee by three years when comparing. A WordPress plugin is usually a licence, one-time or renewed yearly for updates, plus the time to configure it. A request form costs nothing extra once the site is built.

Booking and enquiry flows inside a website are part of our website development work and are included in the Business package, which starts from THB 30,000 as an indicative one-time price for up to 15 pages in English and Thai, forms, blog, keyword mapping and schema markup. A typical project takes around 15 days. We build booking into the website; we do not build standalone booking apps or custom scheduling software. Our WordPress site pricing page shows what each package includes, and the final figure is set in your written quote.

Two more reads help before you brief anyone. The step-by-step guide on building a WordPress website from scratch shows where a booking plugin is installed and tested. And if you are curious whether chat-style assistants could take booking requests, our article on AI in website development looks at what those tools can and cannot do today.

UX tips that lift completed bookings

  • Keep it to three steps: service, time, contact details.
  • Design for a phone first; many customers book on a phone.
  • Show the price or deposit before the last step, not after.
  • End on a confirmation page with date, time, address and a map link, plus an add-to-calendar button.

More guides on website features

Sources

Litesh Dhir, co-founder of Website Development Bangkok
Reviewed by Litesh DhirCo-founder, SEO and web development

Builds and ranks the websites: the systems behind the 17 client sites whose Search Console numbers we publish. This guide was written by the Website Development Bangkok team. More about us

Common questions

Can I add online booking to my existing website?

Usually, yes. A hosted booking service can be embedded on almost any site as a widget or a link. A WordPress booking plugin needs your site to run on WordPress, with a theme that can style it properly. If your current site is built on a closed platform or an old theme, it may be simpler to add booking as part of a redesign.

Should I use a booking plugin or a hosted booking service?

Choose a hosted service if you want quick set-up, built-in reminders and payments, and you accept a monthly fee and data held on the provider's platform. Choose a WordPress plugin if you want the booking pages to match your site, keep data in your own database and prefer a licence over a subscription. Compare three years of cost, not the first month.

Can customers pay a deposit when they book online?

Yes, with most hosted booking services and many plugins, through a connected payment gateway. Cards are widely supported. Whether PromptPay QR is available depends on the tool and the Thai gateway it connects to, so confirm it in the vendor's current documentation. Show the deposit amount and refund rule clearly before the customer pays.

Do clinic booking forms need special handling under PDPA?

Yes. Health information is a sensitive category under Section 26 of the PDPA and generally requires explicit consent. The safest approach is to limit the online form to what you need to schedule the visit, such as name, contact details, service and preferred time, and collect medical history at the clinic. Link a clear privacy notice and have your consent wording reviewed by a lawyer.

Is a booking system included in a website package?

Booking or enquiry flows are included in our Business package, which starts from THB 30,000 as an indicative one-time price. That covers setting up the booking route inside your website, either a plugin or an embedded service. Subscription or licence fees charged by the booking tool are separate. We do not build standalone booking apps or custom scheduling software.

Tell us about your website

Send a few lines on WhatsApp or through the quote form. You get a written quote with the scope, timeline and price for your project.

Or WhatsApp or call +66 93 004 4098, every day, 10:00 to 19:00 ICT. service@websitedevelopmentbangkok.com

WhatsApp Call