Skip to content
WACRM.AI

How to take bookings over WhatsApp with WACRM

WACRM can host a public booking page for one of your services: a customer picks a time, gets a WhatsApp (or SMS) reminder, and can reply to confirm or cancel. Workspace has no screen yet for creating the service or its hours — this guide covers what you set up yourself today and what needs a request to WACRM.

By Huy Nguyen (David), Founder & CEO of Netbase JSC Updated

WACRM’s booking engine already runs a real flow end to end: a service with a price and duration, a public page where a customer picks a time and leaves their phone number, a 24h/2h reminder over WhatsApp or SMS, and a Workspace board where your team sees the result. What it doesn’t have yet is a Workspace screen for the setup step — creating the service is a Core API call, and setting its hours needs a request to WACRM. This guide walks through both parts honestly: what you do yourself today, and what you ask us for.

What you need before you start

  • A WACRM Workspace account with at least one project.
  • curl (or any HTTP client that can set a header) — creating a bookable service today goes through the Core API, not a Workspace screen.

Set up a bookable service

1. Create an API key with the booking scopes

In Workspace, open Workspace Setup / API & Keys and create a new key. Switch on “Restrict what this key can do (advanced)” and tick bookings:write (and bookings:read, so the same key can also look up what you create) — WACRM’s booking endpoints check these two scopes on every request, and they aren’t part of a key’s default scope set. The new key is shown once, in a “Your new API key” dialog right after you create it — copy it immediately, since WACRM stores it hashed and can’t show it to you again.

2. Create the service

Code
curl -X POST https://api.wacrm.ai/v1/crm-projects/<project>/booking-services \
  -H "Authorization: Bearer <your-key>" \
  -H "Content-Type: application/json" \
  -d '{"name": "Haircut", "duration_minutes": 30, "price": "25.00", "currency": "USD"}'

A successful call answers 201 with the new service’s id. price/currency are optional — a service with no price set yet isn’t an error. You can PATCH the same service later to change its name, duration, price or active flag.

3. Ask WACRM to add your staff hours — this part isn’t self-serve yet

Here’s the part this guide can’t turn into a “do it yourself” step: a service only has bookable times once at least one staff member exists for your project with a weekly schedule and a timezone. There is no Workspace screen, and no documented API endpoint either, for creating or editing that schedule today — tell WACRM the days, hours and timezone you want, and we’ll add it on our side. Until that exists, your booking page will correctly show “No available times” for every date, even though the service itself is already real.

Share your public booking page

Your booking page lives at https://app.wacrm.ai/store/<your-project-slug>/book. Workspace doesn’t show or let you copy this link anywhere yet, so ask WACRM for your project’s slug the first time you need it. Once you have the address, share it however you’d share any link — paste it into a WhatsApp message to a customer, put it in your WhatsApp profile, or add it to your own website. The page itself is a normal, token-free web page; a customer doesn’t need WhatsApp installed to open it or to book.

What the customer does

  1. Choose a service from the list, then choose a date.
  2. Choose a time from the real available slots for that date (there are none until your staff hours exist, per the step above).
  3. Enter a phone number (required — this is how WACRM reaches them for the reminder) and, optionally, a name.
  4. Confirm booking. The page shows “You’re booked!” on success. If someone else takes the same slot a moment earlier, the page says so plainly and asks them to pick another time, rather than double-booking it.

The reminder

WACRM sends a reminder 24 hours and again 2 hours before the appointment. WhatsApp is tried first when your project has a connected WhatsApp number: a plain message while the 24-hour conversation window with that contact is open, or an approved reminder template once it has closed. If there’s no connected WhatsApp number, or the WhatsApp send fails, the reminder falls back to SMS. If the contact has no WhatsApp consent on file, no reminder goes out on either channel — this is a silent skip, said here plainly rather than left to surprise you.

A customer can reply to a reminder: “C” or “confirm” records a confirmation, “cancel” actually cancels the booking, and “reschedule” only flags it for your team to follow up — a text reply carries no new time, so nothing moves automatically.

Staff sees the booking

In Workspace, open Bookings. Every booking lands in one of five columns — New, Confirmed, Reminded, Completed, No-show — and an empty column says so honestly instead of the whole board looking broken. One real gap worth knowing: a booking card shows the service’s real name, but the contact and staff are shown as a shortened id rather than a name, since Workspace has no contacts directory or staff directory wired into this board yet.

What’s self-serve today, and what needs WACRM

StepSelf-serve today?Where
Create the bookable serviceYesCore API, POST .../booking-services
Set staff working hoursNoAsk WACRM — no screen or endpoint yet
Find your booking page’s linkNoAsk WACRM for your project’s slug
Share the booking pageYesAny channel you like, including a WhatsApp message
A customer books a timeYesThe public booking page
24h/2h reminder goes outYes, when the contact has WhatsApp consent on fileAutomatic (WhatsApp first, SMS fallback)
Staff sees the bookingYesWorkspace → Bookings
Booking by texting your WhatsApp number directlyNoNot wired up yet — only the public page creates a booking
“Powered by WACRM” badge on the pageNo, built but offAsk WACRM to turn it on
Huy Nguyen (David), Founder and CEO of Netbase JSC

Talk to an expert

Huy Nguyen (David), Founder & CEO

Ask David a question about take bookings over whatsapp with wacrm.

Frequently asked questions

Can a customer book an appointment just by texting my WhatsApp number?

Not yet. WACRM's AI receptionist can answer booking questions and propose a booking through the Core API, but nothing turns an inbound WhatsApp message into one of those calls today — that wiring hasn't shipped. The only way a customer can actually book right now is the public booking page below; sharing its link in a WhatsApp message is the closest thing to "booking over WhatsApp" that works today.

Why can't I create my bookable service or set its hours from Workspace?

The service itself can be created and edited through the Core API with a bookings:write key, which is a real, working self-serve path (see the steps below). Staff hours are a different story: there is no Workspace screen and no documented API endpoint yet for creating or editing a staff member's schedule — those rows exist only once WACRM adds them for your project. Until that happens, your service has no bookable times at all, even though it already exists.

Will my customer get a WhatsApp message or a text message as a reminder?

WhatsApp first, when it's available: if your project has a connected WhatsApp number, WACRM sends a plain message while the 24-hour conversation window with that contact is open, or an approved reminder template when it isn't. If there's no connected WhatsApp number, or the WhatsApp send fails, it falls back to SMS. Either way, nothing is sent at all if the contact has no WhatsApp consent on file — that's a silent skip, not a fallback to another channel.

What happens if a customer replies "reschedule" to a reminder?

Replying "reschedule" doesn't move the appointment by itself — a text reply has no new time attached to it. It flags the booking's most recent reminder for your attention, so you can follow up and actually change the time from Workspace or the API. Replying "C" or "confirm" records the confirmation without changing anything else; replying "cancel" does cancel the booking, the same as cancelling it yourself.

Want this set up for you?

Quick Setup connects your number with coexistence in 48 hours, done by a person.