Skip to main content
Use a walk-in queue when customers arrive without a booking, and a waitlist when no slot suits the customer now. Both are enabled per definition and both can be resolved by creating an appointment and linking it back. For the model behind them, see the Appointments concept. All endpoints are bearer authenticated and live under https://api.[tenant].getomneo.com/api/v3.

Walk-in queue

Check a customer into the queue for a definition that allows walk-ins. Send a POST to /appointment-queues with the definition and location. Omit profile_id for an anonymous walk-in.
The response is 201. For an anonymous walk-in, drop profile_id:
The entry returns wrapped in a data object, with status defaulting to waiting and appointment_id still null:
For an anonymous walk-in, profile_id, profile, staff_id, and staff are null. A queue entry moves through four statuses.
Advance the status with a PUT to /appointment-queues/{id}:

Converting a served entry into an appointment

To keep a record of the service, create an appointment and link it to the queue entry through the appointment_id field. Create the appointment first, then set appointment_id on the queue entry:
The queue entry now points at the appointment, so the walk-in and its resulting booking are tied together.

Waitlist

Register a customer’s interest when no slot suits. Send a POST to /appointment-waitlists. profile_id is required here (a waitlist entry always belongs to a known Profile). Include desired_start_at to record when the customer would like to be seen.
The entry returns wrapped in a data object, with status defaulting to active:
A waitlist entry moves through three statuses.

Fulfilling a waitlist entry

When a slot opens, create an appointment for the customer, then fulfil the entry by linking the appointment through appointment_id and setting the status to fulfilled:

Filtering queues and waitlists

Both lists support the same filter pattern as the rest of the API. Filter by definition, location, and status to build an operator view for one service at one store.
Both list endpoints are paginated. Use page[size] and page through meta.pagination, the same as every other Omneo list endpoint.

End-to-end example: a walk-in becomes a booked service

This is the full arc for a customer who arrives without a booking and is served.
1

Check the customer in

The entry is created with status: "waiting" and an id (here 812).
2

Call the customer

3

Create the appointment for the service

Take the appointment id from the 201 response.
4

Mark served and link the appointment

The queue entry now points at the appointment, tying the walk-in to its booking. A waitlist entry follows the same shape: create the appointment, then PUT the entry with status: "fulfilled" and appointment_id.

Response codes

Errors

Edge cases and gotchas

  • Anonymous walk-ins have no Profile. Omit profile_id on a queue create for a walk-in you cannot identify. The waitlist always requires profile_id, because an entry has to belong to a known customer so you can contact them.
  • Linking is the source of truth, not conversion. Nothing converts a queue or waitlist entry automatically. You create the appointment yourself, then set appointment_id on the entry and move its status.
  • Statuses differ between the two. A queue moves through waiting, called, served, cancelled; a waitlist through active, fulfilled, cancelled. Filter with the values that belong to each resource.
  • Deleting removes the entry. DELETE returns 204 and no body. To keep the record, set status to cancelled instead.