Position is one of the base type which we are using in Queue system. It includes This document outlines the structure of the "Position" object used in the Queue System. Positions, including dates, labels, language and more information that can be used. General (or walk in or A-type) tickets are first level of implementation, Bookings using the same interface but also have bookings
property in body.
Schema:
id - internal ticket identifier
location - queue display name (store, department and others info)
type - ticket type, possible values: anonymous (walk-in ticket), booking (pre-booking), manual (tickets issued by staff)
priority - internal value
locale - customer preferred language (en, ar, sv)
registrationData - an optional object, provides information which customer specified during registration flow. For phone number key is fixed:
phone
. Format for each value is{key: {value: value}}
notification - customer contact information
type - type of notifications that customer subscribed to (phoneNumber or email)
settings.from - not relevant/internal use
settings.to - customer phone number
settings?.recipient - customer email (in case of email or phone notifications)
booking
start - timeslot start in case of bookings, local timezone
end - timeslot end in case of bookings, local timezone
virtualAppointment
- keep information if it’s a virtual appointment or not. OptionalisEnabled
- shows if it’s a virtual appointment or not (true \ false). In case of false all other fields in virtualAppointment are omitted.eventId
- event id specified in MS Graph api. Default user for the organisation is associated with this event.url
- link to ms teams call for joiningmanagerId
- manager id from ADmanagerEmail
- manager email (if not specified, default manager for organisation will be used)
status - ticket status, possible values: draft (pre-booking created but not active), pending (ticket is inside queue), notified (ticket called out by staff), fulfilled (ticket checked in by the staff), completed (ticket has been served), rejected (ticket was cancelled either by customer or staff)
station information
id - internal id
label - label which is shown for customers and in admin
label - assigned ticket number (A1, B2 and such)
queue - queue identifier, can be used to correlate data
createdAt - ticket creation time, ISO string
fulfilledAt - time when customer checked-in datetime, ISO string
calledAt - customer called next (by pressing call next of selecting the ticket from the list of pending tickets), ISO string
completedAt - time when ticket was moved to completed state (after ticket was fulfilled, the terminate state), ISO string
rejectedAt - time when ticket was rejected, ISO string
bookingReminderAt - if configured, when the booking reminder will be sent to customer, ISO string
QRCodeCheckInPositionId - value of the QR code to render to allow check-in by the staff
Info |
---|
Changelog 22-02-2021:
|
Changelog 28-01-2021:
Added calledAt, completedAt, rejectedAt, and additional details, are central to managing queue interactions. These include general walk-in tickets and bookings, both utilizing similar interfaces but with specific properties related to bookings.Schema Overview
Field | Type | Description |
---|---|---|
id | string | Internal ticket identifier. |
location | string | Queue display name, such as store or department. |
type | string | Type of ticket (e.g., 'anonymous' for walk-in, 'booking' for pre-booking, 'manual' for staff-issued). |
priority | integer | Internal priority value. |
locale | string | Customer's preferred language (e.g., 'en', 'ar', 'sv'). |
registrationData | array | Captures information during the ticket creation process. Detailed below. |
notification | object | Customer contact information for notifications. Detailed below. |
status | string | Current status of the ticket. Detailed below. |
booking | object | Information related to bookings. Detailed below. |
servedBy | object | Information about the person who served the ticket. Detailed below. |
station | object | Information about the station where the ticket was served. Detailed below. |
queue | string | Identifier for the queue. |
createdAt | datetime | ISO string indicating when the ticket was created. |
fulfilledAt | datetime | Time when customer checked in. |
calledAt | datetime | Time when customer was called next. |
completedAt | datetime | Time when the ticket moved to completed status. |
rejectedAt | datetime | Time when the ticket was rejected. |
bookingReminderAt | datetime | Time when the booking reminder will be sent, if configured. |
activatedAt | datetime | Time when the ticket was activated (e.g., for order pickup). |
fulfilledBy | string | Identifier of the staff who checked the ticket in. |
servedById | string | Identifier of the staff who served the ticket, from AD or Ombori database. |
QRCodeCheckInPositionId | string | Value of the QR code for staff to allow check-in. |
Registration Data:
Field | Type | Description |
---|---|---|
name | string | Field name as specified in Console. |
value | string | Value entered by the user. |
label | string | Label presented to the customer. |
type | string | Type of field (e.g., 'input', 'checkbox'). |
placeholder | string | Optional placeholder text for input fields. |
validationRules | object | Contains 'required', 'regexp' for validation. |
Notification:
Field | Type | Description |
---|---|---|
type | string | Notification type (e.g., 'phoneNumber', 'email'). |
settings | object | Settings for the notification (detailed below). |
Notification Settings:
Field | Type | Description |
---|---|---|
from | string | Internal use, typically not presented. |
to | string | Customer phone number in E.164 format. |
recipient | string | Customer email address. |
Booking:
Field | Type | Description |
---|---|---|
start | datetime | Start time of the booking, local timezone. |
end | datetime | End time of the booking, local timezone. |
appointment | object | Details of the appointment (detailed below). |
virtualAppointment | object | Virtual appointment details if applicable. |
Virtual Appointment:
Field | Type | Description |
---|---|---|
displayName | string | Display name of the manager. |
eventId | string | ID of the event in the calendar. |
managerEmail | string | Email of the manager. |
managerId | string | ID of the manager from AD database. |
Served By:
Field | Type | Description |
---|---|---|
id | string | User ID from the database. |
string | Email of the person who served. | |
firstName | string | First name (optional). |
lastName | string | Last name (optional). |
displayName | string | Full name (optional). |
Station Information:
Field | Type | Description |
---|---|---|
id | string | Internal ID of the station. |
label | string | Label shown to customers and in the admin panel. |
labelPrefix | string | Prefix used for this ticket category. |
color | string | Color used to mark the ticket in the Console. |
Example:
Code Block |
---|
{ "id": "_id_", "location": null, "type": "booking", "priority": 100, "locale": "en", "notification": { "type": "phoneNumber", "settings": { "from": "", "to": "+phoneNumber", "recipient": "test@email.com" }, }, "registrationData": { "phone": { value: "+48888888888" }, }, "booking": { "start": "yyyy-MM-dd HH:mm", // with respect to timezone "end": "yyyy-MM-dd HH:mm", // with respect to timezone "appointment": { displayName: "John Doe eventId: "****" managerEmail: "manager@ombori.com" managerId: "f31c6a56-........" }, "virtualAppointment": { eventId: "AAMkADExYWZmYjI4LTMxMjIt......=" isEnabled: true managerEmail: "virtual-booking@some-domen.com" managerId: "9cd376b6-......." url: "https://teams.microsoft.com/l/meetup-join/19....." } }, "servedBy": { id: "fc13d10c-.......", email: "manager@ombori.com", firstName: "", lastName: "" }, "station": { "id": "1234_id", "label": "A" }, "status": "draft", "label": "", // label will generated when time comes "queue": "_queue_id_", "createdAt": "2020-05-26T08:47:37.1700000Z", "calledAt": "2020-05-26T15:30:37.1700000Z", "fulfilledAt": "2020-05-26T17:15:59.6100000Z", "completedAt": "2020-05-26T17:16:59.6100000Z", "bookingReminderAt": null, "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}" } |
...