Bookings
A generic booking system that works for salons, clinics, restaurants, consultants — anything with fixed-time service slots. Customers book via:
- The WhatsApp flow (offer slots → confirm → cancel)
- A hosted public page (
/book/[agency]/[client]/[service]) - An embeddable widget on the client’s own website
Every booking mirrors to Google Calendar so the staff see it in their normal calendar view.
The 4-step setup
Connect Google Calendar
/dashboard/integrations → Google Calendar card → Connect. OAuth + permission grant.
Define your business hours
/dashboard/chat-settings → Business Hours. Per-day open/close, lunch breaks,
holidays, timezone.
Create services
/dashboard/calendar-services → New service. Name, duration, buffer, capacity,
price.
Hook into a flow OR share a link
- Flow → drop in the
offer_slots+confirm_bookingblocks - Hosted page → click “Share link” on a service row → copy + send
- Embed → click “Copy embed” → paste the script tag on your site
Per-client service definitions — duration, price, capacity.
Service catalogHow slots are generated from hours + breaks + existing bookings.
Availability enginePublic URL, slot picker, contact form, confirmation.
Hosted booking pageScript tag the client drops on their own website.
Embed widgetLifecycle
Every booking goes through:
CONFIRMED → (CANCELLED | NO_SHOW | COMPLETED)Cancellation strategy: delete the Google event, retain our row — the slot frees on the calendar immediately while analytics keeps the cancelled-with-reason record.