The one idea behind it
Most booking tools ask “is this calendar free?”. That works for a consultant with a diary. It falls apart the moment a booking needs more than one thing: a Pico Laser session needs a therapist and a room and a machine, and any one of the three being busy makes the whole appointment impossible.
Exabloom answers a different question: can this actually happen at this time? It only offers a slot when every single thing the service needs is free at once. Three words carry the whole setup.
Here is the same idea as a Thursday afternoon. One therapist, one room and one machine are needed, and the number in each cell is how many are free.
Before you start
Four things need to be true. Check them now, not later.
- You are an admin. Services and calendars live in the workspace; the AI agent lives in the brand’s Admin Dashboard. You need access to both.
- Your WhatsApp channel is connected and messages are landing in the Inbox. If they are not, start with Set up your workspace.
- Your Calendars page has a Setup tab. Open Calendars: the two tabs at the top left are Calendar and Setup, and Setup opens a page headed Booking setup with Services at the top. If yours looks different, your brand is still on the older calendar. Message us and we will switch it over.
- You have a published AI agent, or are ready to make one. This guide covers the booking half; the agent’s voice, knowledge and instructions are covered in The AI agent & Knowledge Hub.
One calendar per thing
A calendar is anything that can only be in one place at a time. Your therapist Sarah is a calendar. Room 2 is a calendar. Pico machine #1 is a calendar. If you have two identical Pico machines, that is two calendars, not one calendar with a number on it.
Open Calendars, then Setup
Setup is where everything in this guide is built: Services first, then Calendars grouped under their group names, then Closed dates at the bottom. Bookings themselves stay on the Calendar tab.
Start a new calendar
A calendar is one thing that can be booked - a therapist, a room, a machine.
A group collects the ones that can stand in for each other, like your three treatment rooms.
A service is what the customer asks for, and says what it uses. Exabloom only offers a time when all of it is free at once.
A calendar is one thing that can be booked - a therapist, a room, a machine.
A group collects the ones that can stand in for each other, like your three treatment rooms.
A service is what the customer asks for, and says what it uses. Exabloom only offers a time when all of it is free at once.
Templates only pre-fill capacity, business hours and the time slot interval, and you can change all of it on the next screen. Read the hours before you trust one: Hourly room rental pre-fills every day, 11am to 2am, which suits a karaoke room and is wrong for a treatment room.
Name it, group it, give it hours
- Name it the way your team says it: Sarah, Room 2, Pico 1. Give each kind its own colour so the day view reads at a glance.
- Business hours is the single most-skipped step. With no hours the pane says the calendar stays unbookable, and it can never be offered. Each row is one day: the first Add hours gives you Monday 09:00 to 17:00, and every click after copies the previous row’s times onto the next free day, so five clicks and a couple of edits make a working week.
- For the second identical room or machine, open the row’s ⋯ menu on Booking setup and choose Duplicate, or use Save & duplicate again on the new calendar: it saves this one and hands you the next with the name counted up (Room 1, Room 2).
Two optional fields are worth knowing. Most bookings in a day caps how much one person or machine takes on, and they simply stop being offered once they hit it. Time slot interval is only the grid’s snap size for staff dragging blocks out by hand; how long a treatment takes is set on the service, not here.
Group the stand-ins
A group is your answer to “any of these will do”. Three treatment rooms go in a Treatment rooms group because a customer booking a facial does not care which one they get. Sarah and Mei go in Therapists. Your two Pico machines and your HIFU machine can all sit in one Machines group, because you will narrow it per service in the next step.
A calendar is one thing that can be booked - a therapist, a room, a machine.
A group collects the ones that can stand in for each other, like your three treatment rooms.
A service is what the customer asks for, and says what it uses. Exabloom only offers a time when all of it is free at once.
A calendar is one thing that can be booked - a therapist, a room, a machine.
A group collects the ones that can stand in for each other, like your three treatment rooms.
A service is what the customer asks for, and says what it uses. Exabloom only offers a time when all of it is free at once.
A calendar is one thing that can be booked - a therapist, a room, a machine.
A group collects the ones that can stand in for each other, like your three treatment rooms.
A service is what the customer asks for, and says what it uses. Exabloom only offers a time when all of it is free at once.
- You can also set Group on each calendar’s own page (the second pin in Step 1), and + New group sits right beside that dropdown.
- Leave anything genuinely one-of-a-kind ungrouped for now. It sits under an Ungrouped heading, and you can still use it: a service can point at a group of one.
Create the service
The service is the thing a customer says out loud. It is also the only thing the AI ever names. Services sit at the top of Booking setup, above the calendars, because that is the order a customer thinks in. A row that reads Needs setup has not been told what it uses yet, so it can never produce a time.
A calendar is one thing that can be booked - a therapist, a room, a machine.
A group collects the ones that can stand in for each other, like your three treatment rooms.
A service is what the customer asks for, and says what it uses. Exabloom only offers a time when all of it is free at once.
A sentence or two. The assistant reads this when a customer asks what something involves.
- Name it exactly as customers say it, not as your system calls it. “Pico Laser”, not “PL-60-STD”.
- What should customers and the AI know about this? is not decoration. Write the answer you would want a new receptionist to give.
- Gap before and Gap after are for setting up or wiping down. A 15-minute gap after holds everything the booking used for that extra quarter hour, and other services see it as busy.
- Leave Available to book on. The folded Booking rules at the bottom hold three settings you will rarely touch: Offer start times every (30 minutes by default), Least notice (1 hour) and Book up to (60 days ahead).
Say what it needs
This is the step that makes everything else work. Open the What it needs pane and add one row per thing the service uses. Each row reads as a sentence: 1 from Therapists.
- The number is how many of that group the service takes at once. Two therapists for a four-hand massage means 2 from Therapists, and Exabloom will only offer times when two are genuinely free.
- Anyone in the group is the normal answer, and the one you want for rooms. Exabloom picks whoever is free.
- Only certain ones narrows the row to named members. This is how “Pico Laser needs a Pico machine, not the HIFU” is expressed, and how “only Sarah and Mei are trained on this” is expressed.
- Customers can ask for a specific one should be on for people and off for everything else. Turn it on for Therapists and “I’d like Sarah please” works, on WhatsApp and on the booking page. Leave it off for rooms and machines: customers should never hear about those.
Missing a group? The dropdown’s last option is + Create a new group…, so you can invent Machines from inside the service and fill it later. A row you started and left on Choose… is dropped when you save rather than stored half-finished.
Prove it can be booked
A service can be set up so that nothing is ever bookable, and the symptom is silence: an empty booking page that could mean “fully booked” or “you asked for two therapists and have one”. So the editor answers both questions in place, in a panel on the right of the service form. It only exists once the service is saved (before that it says so), and it checks the saved version: if you have unsaved edits it is labelled Before your edits.
Save, then reopen the service
Read the panel
The first one would use Sarah, Room 2, Pico 1.
This service is ready to book.
This service needs 2 from Therapists, but only 1 is available to it.
Nothing is bookable in the next 14 days.
The first one would use Sarah, Room 2, Pico 1.
This service is ready to book.
Nothing is bookable in the next 14 days. Everything it needs is set up, so this is a full diary rather than a problem with the service.
These are the warnings you might see, and what each one means you should go and do.
Book one yourself
The last proof is a real booking from your side of the desk. Back on the Calendar tab, start a booking and watch which times the dialog offers.
The grey box under the times names what would be reserved, and each line has a dropdown listing only the members free at that time, so you can swap one without being able to double-book. The appointment then appears on every lane it uses at once, which is the fastest way to see that a single booking really did take the therapist, the room and the machine.
Give the AI its actions
Now hand it to the assistant. Agents live in the brand’s Admin Dashboard, one level above your workspace.
Open the Admin Dashboard
Open your agent
Turn on the calendar actions
The editor takes the whole screen; the sidebar is gone on purpose. Open the Actions tab and scroll down to the Calendar section.
Let the agent manage bookings directly in chat - check availability, book, reschedule and cancel. Always books for the contact in the conversation.
Services belong to each workspace, so which ones this agent may sell are picked on the workflow node in each workspace.
- List Services lets the agent read what it can sell: the name, the length and the description you wrote. It is told nothing about rooms or machines, and only sees services that are on and say what they need.
- Find Available Times asks Exabloom for times the service can actually happen. It books nothing, so it is safe to grant freely.
- Book a Service takes one of those times. This is the one that writes, and it carries an amber Write pill.
- Optionally, Reschedule Appointment and Cancel Appointment. Both act only on a booking belonging to the contact in that conversation (recurring series stay with your team), and both switch on and lock Get Contact’s Appointments, which is the only way the agent can identify an appointment at all.
Which services defaults to All services in the workspace it runs in. Choose Selected services, chosen per workspace unless the agent really should sell everything in every workspace it runs in. That choice is what makes the next step appear.
Publish and save
Let the agent manage bookings directly in chat - check availability, book, reschedule and cancel. Always books for the contact in the conversation.
Services belong to each workspace, so which ones this agent may sell are picked on the workflow node in each workspace.
Workflows cannot see a draft agent, so this matters.
Point the workflow at your services
An agent does not answer WhatsApp on its own. A workflow puts it in front of the conversation. Back in your workspace, edit the workflow that already handles incoming messages, or build the smallest possible one: a Contact replied trigger, then one AI Agent node. The building blocks are in Automate with workflows.
Open the workflow
Tick the services on the AI Agent node
The builder is another full-screen page with no sidebar. Click the AI Agent node to open its panel. Once an agent is chosen, a teal Workspace setup box appears. It exists because an agent is shared across the whole brand, while services belong to one workspace.
This Brand-shared agent needs to know what it can access and where data goes in this workspace.
The agent can only offer and book these, and only checks what they need.
Test it on WhatsApp
Message your own business number from your own phone and play the customer. Do not skip this: it is the only way to see what your description and instructions actually produce. This is what good looks like, start to finish.
Four things to watch for, in order.
- It names the right services. If it invents one, or offers the staff-training slot, your ticks in Workspace setup are wrong.
- The times it offers are real. Cross-check two of them against the Calendar tab. Every one should have a free therapist, a free room and a free machine. It looks at most 14 days ahead and gets at most ten times per search; it pages forward on its own, so it should only call a day full after checking it.
- The booking lands on every lane. Open the appointment on the Calendar tab: it is drawn once on each lane it uses, with your gaps either side. Hover one block and the others light up.
- A clash is handled gracefully. Book the last 2pm slot yourself while the conversation is mid-flight, then say yes on WhatsApp. The agent should tell the customer that time has just gone and offer the nearest alternatives instead of insisting.
What happens when they say yes
Worth knowing, because it is what lets you leave this running overnight. When the customer agrees to a time, the agent sends the service and the start time. It does not set the end time, and cannot invent a ninety-minute version of a sixty-minute treatment. If the customer asked for a person by name, the agent can pass that name as well, and it is then a requirement, not a preference.
- Exabloom re-checks availability at the instant of booking, with the relevant calendars locked. A time that would not be offered cannot be booked, not by the AI, not by the public page, not by a stale tab someone left open at lunchtime.
- It then allocates by a fixed rule, not a guess: anyone the customer asked for first, then whoever has the fewest bookings that day, then your calendar order. When a coordinator asks why John got it, there is an answer. A reschedule keeps a booking’s existing people and rooms where it can.
- Everything is reserved as one appointment. One customer, one reminder, one cancel button, however many resources it holds. Cancelling frees all of them at once.
- If the slot was taken in the meantime, the agent gets a plain sentence it can say out loud (“No Treatment rooms available at that time”, using your group’s name) plus the nearest alternatives, rather than an error it has to interpret.
Time off, closures and gaps
Three separate tools, and using the right one keeps the diary honest.
Leave, a dentist appointment, machine servicing. Lives on one existing calendar: Edit it, then open its Time off pane.
Public holidays, a team offsite. The Closed dates section at the bottom of Booking setup shuts every lane at once. Add a closed date there.
Setup and cleanup, set per service. Held on everything that booking used, and visible to every other service.
Setups to copy
Three shapes, simplest first. Read them as “groups, then what each service takes”.
The example throughout this guide. Machines are one group, narrowed per treatment.
The quantity field doing the work: one service simply needs two of the same pool.
No machines, but the same logic: a class cannot run without both a tutor and a room.
Good to know & pitfalls
- No opening hours is the number one cause of an empty booking page. Every calendar in every group the service uses needs hours. The warnings panel will say so in a sentence.
- Capacity is customers, not resources. Three rooms are three calendars. One calendar with capacity 3 is a group class.
- One row per group, no exceptions. Express “only the senior ones” as Only certain ones on the row you already have, not as a second row.
- Gaps are shared, not private. A 15-minute cleanup gap on one service makes the room busy for every other service too. That is the point, and it is why gaps belong on the service rather than in a rule only the searching service can see.
- Turn a service off rather than deleting it when bookings are still on the diary. Deleting keeps past bookings readable under the service’s name, but there is no undo.
- A draft agent is invisible to workflows. If the agent is not in the node’s dropdown, it was never published.
- Forgetting the Workspace setup ticks blocks publishing, and it is meant to. Nothing bound would mean nothing scoped.
- Do not tell the agent about rooms or machines in its instructions. It cannot see them, so asking it to mention one invites it to make something up. People you marked Customers can ask for a specific one are the only names it knows.
- Customers never learn which room or machine they got, on WhatsApp or on the booking page. Only the treatment and the time. Your team sees the full allocation on the Calendar tab, in the booking’s Using list, where each line has a Swap button for another free member of the same group.
- The booking link belongs to the service, in its Booking link pane, and its address is minted once and kept forever. Renaming the service or pausing the page does not break a link you already printed.
- Times are in your workspace’s timezone. Check it under Settings → Workspace before you test, or you will spend an afternoon debugging an offset.
A sensible order to do this in
If you are starting from an empty workspace this afternoon, this is the order that avoids doubling back.
Want us to set the first service up with you?
Send us your treatment list and who performs what. Our Singapore-based team will map it into calendars, groups and services on a call.