Service Bookings
Service bookings let customers schedule appointments, classes, or time-window sessions through WhatsApp or the web store. Socialone generates available time slots from schedules you define per product, handles staff assignment, and tracks each booking through its lifecycle.
Setting Up a Service Product
A service booking starts with a product of type Service. When creating the product, set:
- Product Type: Service (not Physical or Digital).
- Duration (minutes): how long each appointment lasts. Used by exact-mode schedules to break a time window into individual slots.
- Price: the cost per session, booking, or class.
- Delivery Method: set to
at_locationfor in-person sessions, or leave asnonefor remote/digital sessions where a meeting link is shared.
Schedule Modes
Each schedule you add to a service product defines a recurring block of availability for a specific day of the week. There are three schedule modes:
| Mode | How slots are generated | Best for |
|---|---|---|
| Exact | The start–end window is divided into sub-slots of duration_minutes + buffer_minutes each. Each sub-slot is bookable independently. | 1:1 appointments (haircuts, consultations, check-ups) |
| Window | The entire start–end block is one bookable slot with its own label. Max bookings controls how many concurrent customers are accepted. | Morning / afternoon pick-up windows, broad time preferences |
| Class | The entire block is a single session. Max bookings is the class capacity (seats). Once full, the slot shows Unavailable. | Fitness classes, group workshops, tours |
Schedule Fields
- Day of Week: which day this schedule applies (Monday – Sunday). Add separate schedules for different days.
- Start / End Time: the opening and closing of the availability block for this day.
- Max Bookings: how many concurrent bookings are allowed per slot. For exact mode this applies per sub-slot; for class mode it is the total class capacity.
- Buffer Minutes: (exact mode only) a gap added after each appointment before the next slot starts. Useful to allow travel or cleanup time between sessions.
- Window Label: (window mode only) the display label shown to the customer, e.g. "Morning" or "Afternoon".
- Assigned To: pin this schedule to a specific staff member (Membership). When set, only that staff member's availability is checked for this block. Leave blank for any-staff availability.
- Meeting Link: a video or virtual meeting URL (Zoom, Google Meet, etc.) associated with this schedule. Sent to the customer in the booking confirmation when included in the notification template.
Adding Schedules
- Open the service product and go to the Schedules tab.
- Click Add Schedule.
- Select day of week, start and end time, and schedule mode.
- Set buffer minutes (exact), window label (window), or leave defaults (class).
- Optionally assign a staff member and add a meeting link.
- Save. The schedule becomes active immediately.
Add multiple schedules to cover different days. You can also add multiple schedules for the same day to handle different staff or time blocks.
Staff Assignment
When a schedule has Assigned To set, Socialone automatically assigns that staff member to bookings in that slot. When a schedule has no assigned staff, Socialone uses round-robin or least-busy auto-assignment across all staff members who have schedules for the product on that day.
- Pinned schedule: book only with the named staff member. Availability checks are scoped to that member's existing bookings.
- Any-staff schedule: Socialone picks the least-busy eligible staff member at booking time. The assigned member is locked onto the order.
- The customer can optionally filter by staff when viewing slots via the web store (pass
staff_idquery param to the slot API).
How Slots Are Shown to Customers
When a customer opens a service product on the web store, they see a date picker. After selecting a date, Socialone fetches slots from the backend and displays available times. Each slot shows:
- Start and end time
- Available / Unavailable status
- Remaining capacity (for class / window modes)
- Window label (window mode)
- Assigned staff name (when pinned)
Booking Lifecycle
A service booking follows a separate status path from product orders:
| Status | Meaning | Available actions |
|---|---|---|
| Pending | Booking received, awaiting staff confirmation | Confirm Booking, Cancel |
| Scheduled | Appointment confirmed and on the calendar | Complete Booking, Mark as No Show, Cancel |
| Completed | Service was delivered | — |
| No Show | Customer did not attend | — |
| Cancelled | Booking was cancelled | — |
The appointment_at and appointment_end_at timestamps on the order record exactly when the slot was booked. These are shown in the order detail under Appointment.
Rescheduling a Booking
Staff can reschedule any active booking (Pending or Scheduled) from the order detail panel. Reschedule is not available for cancelled, completed, or no-show bookings.
- Open the order and click Reschedule next to the Appointment section.
- Pick a new date. Socialone loads available slots for that date immediately.
- Optionally select a staff member to filter slots by that person's availability.
- Choose a time slot from the list of available slots for the selected date and staff.
- Click Confirm reschedule. The booking's appointment time is updated and the customer receives a Booking Rescheduled notification if one is configured.
- The system validates capacity — the slot must still be available after accounting for existing bookings.
- If the new slot has a different staff member's meeting link attached, the meeting link in the order notes is automatically updated.
- If no slots are showing for the new date, check that a schedule exists for that day of the week and has not reached its max bookings limit.
Booking Reminders
Set up a Booking Reminder notification template (see Order Notifications) to automatically message customers before their appointment. Configure the reminder lead time in OMS Settings.
Related Docs
Related product
Commerce & Orders for WhatsApp selling
Manage WhatsApp catalogs, products, variants, bulk imports, product messages, carts, payments, and order follow-up from one Socialone workspace.
View product →