Book Optimised Slot
Confirm an optimiser-proposed slot for an automatic Harbor Soho service occurrence, create the customer, and save the booking without switching to manual reservation handling.
In this article
Use this guide when a Harbor Soho operator is booking the Soho lunch service from a slot calculated by the optimiser. The operator chooses the party size, decides whether tables are free, fixed, required, or preferred, selects one returned start time, and reviews the booking before saving.
The booking is not accepted just because the slot was visible in the modal. Antylogic recalculates availability during save, creates the customer first, then books the reservation only if the selected `starts_at` is still available for the same occurrence, party size, and table constraints.
Before you start
- You are working inside `Harbor Demo Group` with `Harbor Soho` as the active location.
- The Soho lunch service occurrence is open, automatic, and has a valid layout and optimisation configuration.
- Your role can manage reservations or optimisation, use automatic reservations, read availability, and create customers.
- Customer name and phone number are available before saving.
- If the booking must use fixed tables, the target tables are selectable in the Harbor Soho layout.
Instructions
- 1.
Open New Reservation
Start from the reservations calendar and choose New reservation, or open the Soho lunch service occurrence detail and start the new reservation there. From the occurrence detail, the service is already selected and the modal starts at party size.
- 2.
Confirm Service And Party Size
Choose the booking date and service when they are not already filled in, then enter the number of guests. The optimiser can only calculate slots after the occurrence and `party_size` are valid.
- 3.
Choose Table Strategy
Use indifferent when the optimiser can choose freely. Use assign for fixed tables, required when selected tables must be used, or preferred when selected tables should be prioritised. Only assign sends `table_ids`, which is the branch that creates fixed table assignments during this action.
- 4.
Calculate Availability
Run availability for the selected occurrence, party size, and table constraints. Review the returned start times, table information, slot metrics, and split-turnover eligibility before choosing a slot.
- 5.
Select Slot Or Use The Exception Flow
Select the start time the guest accepts. If there is no suitable slot, use the waitlist option instead of booking an optimised slot. If the selected slot is split-turnover eligible, review the warning before continuing.
- 6.
Enter Customer Details
Enter the customer's full name and phone number. The modal creates the customer first, then uses that customer in the optimised booking request.
- 7.
Review And Save
Review the customer, phone, Soho lunch service, party size, selected start time, and table choices. Save the reservation only when the details match the guest request; Antylogic recalculates availability before it creates the booking.
Validations and limits
- The occurrence must belong to Harbor Soho, use automatic booking mode, remain open, and not be completed or in the past.
- The modal requires date, service, valid `party_size`, table selection when the mode is not indifferent, selected slot, customer name, and customer phone before it can continue.
- The booking request requires `occurrence_id`, `starts_at`, and `party_size > 0`; the occurrence-specific backend route overwrites `occurrence_id` from the route.
- If `table_ids` are sent, they take priority and create `manual_fixed` table assignments. `preferred_table_ids` and `restricted_table_ids` are stored on the reservation but do not create assignments by themselves in this action.
- Antylogic recalculates availability while saving and rejects the booking if the selected `starts_at` is no longer available.
- The waitlist fallback creates a waitlist reservation through the reservations flow and does not call `optimization/book`.
- If post-book optimisation fails after the reservation is created, the response can include a warning and the occurrence may need manual follow-up.
Expected result
Antylogic creates the customer, books the reservation with booked status and phone channel, records fixed table assignments when `table_ids` were used, refreshes reservation and optimisation data, and closes the modal. The occurrence version is advanced and the optimisation cache is marked stale before the post-book optimisation run.