Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Available webhook types

Webhook This document describes the various webhook types available for interaction with external systems. Webhooks are triggered by specific events in the queue system, and each webhook type corresponds to different actions or changes within the system.

Webhook Types

Each webhook type is contained in “type” the type field in of the payload sent out to the destination URL. The receiving endpoint has to must appropriately handle the payload that is coming in incoming POST request accordinglypayload.

Webhook Type

Description

positionCreated

Triggered when a walk-

...

in or manual ticket is created.

bookingConfirmation

...

Triggered when a customer creates a new booking.

bookingActivated

Triggered when a booking is activated (i.e., the timeslot

...

positionRemoved - Staff rejected a ticket

...

becomes active).

bookingUpdated

Triggered when a booking is updated (e.g., rescheduled).

positionRemoved

Triggered when staff reject a ticket.

positionRetry

Triggered when staff call retry on a ticket.

positionCalled

...

Triggered when staff call a position.

positionFulfilled

...

positionCompleted - Staff checked-out position

...

positionCancelled - Customer cancelled position

...

positionCancelledByStaff - Staff cancelled upcoming booking

...

feedbackReceived - Customer updated feedback on ticket

Webhook payload

...

Triggered when staff check in a position.

positionCompleted

Triggered when staff check out a position.

positionCancelled

Triggered when a customer cancels a position.

positionCancelledByStaff

Triggered when staff cancel an upcoming booking.

feedbackReceived

Triggered when a customer updates feedback on a ticket.

Webhook Payload

Webhook payloads are sent in a POST request. The request supports headers configuration, for example for auth which can be used for authentication purposes.

Field

Type

...

Description

message

string

Present for some

...

webhook types

...

; communicates a message to the customer associated with

...

the event.

data

object

...

Contains detailed information about the event.

Data Fields

Field

Type

Description

position

object

Represents the current state of the ticket or booking

...

(Position model).

type

...

organization - name of organization that this queue event corresponds to

Example payloads

Position created webhook

...

string

Type of the webhook, corresponding to the actions listed above.

organization

string

Name of the organization to which the queue event corresponds.

Position created webhook

Code Block
{
  "message": null,
  "data": {
    "position": {
      "status": "pending",
      "priority": 0,
      "location": {
        "locationName": "Ombori Stress Test 1",
        "organizationTitle": "Ombori Title"
      },
      "label": "A2",
      "locale": "en",
      "registrationData": {
          "phone": { value: "+48888888888" },
      },
      "notification": {
        "type": "phoneNumber",
        "settings": {
          "from": "",
          "to": "+460000",
          "recipient": ""
        }
      },
      "id": "4f288ab1-72c9-402a-95b3-296766336b68",
      "type": "anonymous",
      "queue": "b23bea4f-8e8a-4da6-b413-04454f8428aa",
      "createdAt": "2021-01-21T14:05:17.527Z"
    }
  },
  "type": "positionCreated",
  "organization": "ombori"
}

Booking created webhook

Code Block
{
  "message": "Your booking for 2021-01-21 15:10 is now confirmed. Ticket: https://qr.run/Pt5vJ05h",
  "data": {
    "position": {
      "location": {
        "locationName": "Ombori Stress Test 1",
        "organizationTitle": "Ombori Title"
      },
      "type": "booking",
      "priority": 100,
      "createdAt": "2021-01-21T14:07:21.598Z",
      "locale": "en",
      "registrationData": {
          "phone": { value: "+48888888888" },
      },
      "notification": {
        "type": "phoneNumber",
        "settings": {
          "from": "",
          "to": "+460000",
          "recipient": ""
        }
      },
      "numberOfPeople": 1,
      "booking": {
        "start": "2021-01-21T14:10:00.000Z",
        "end": "2021-01-21T14:15:00.000Z",
        "virtualAppointment": {
          "isEnabled": false
        }
      },
      "status": "draft",
      "label": "",
      "id": "255c8a1d-b8b6-4fb4-b6d6-4a5416203e1b",
      "queue": "b23bea4f-8e8a-4da6-b413-04454f8428aa",
      "bookingReminderAt": null
    }
  },
  "type": "bookingConfirmation",
  "organization": "ombori"
}

Booking activated webhook

Code Block
{
  "message": "Your position: B1. Please come within 15 minutes to avoid cancellation of your appointment. Ticket: https://qr.run/1WPccolK",
  "data": {
    "position": {
      "location": {
        "locationName": "Ombori Stress Test 1",
        "organizationTitle": "Ombori Title"
      },
      "type": "booking",
      "priority": 100,
      "createdAt": "2021-01-21T14:08:44.038Z",
      "locale": "en",
      "registrationData": {
          "phone": { value: "+48888888888" },
      },
      "notification": {
        "type": "phoneNumber",
        "settings": {
          "from": "",
          "to": "",
          "recipient": ""
        }
      },
      "numberOfPeople": 1,
      "booking": {
        "start": "2021-01-21T14:10:00Z",
        "end": "2021-01-21T14:15:00Z",
        "virtualAppointment": {
          "isEnabled": false
        }
      },
      "status": "pending",
      "label": "B1",
      "id": "65e8eb52-7bba-4393-9a59-0b29c9251959",
      "statusqueue": "pendingb23bea4f-8e8a-4da6-b413-04454f8428aa",
      "prioritybookingReminderAt": 0null,
      "fulfilledAt"location": {
 : "2021-01-21T14:10:00.479Z",
      "leaveReminderAt": null,
      "locationNameleaveAt": "Omborinull
Stress Test 1"    }
  },

     "labeltype": "A2bookingActivated",
  
   "localeorganization": "enombori",

}

Booking updated webhook

Code Block
{
     "notificationdata": {
   
    "typeposition": "phoneNumber",{
        "settingslocation": {
          "fromlocationName": "Ombori Stress Test 1",
          "toorganizationTitle": "+460000","Ombori Title"
      },
      "recipienttype": "booking",
        }
      }"priority": 100,
      "idcreatedAt": "4f288ab12021-72c9-402a-95b3-296766336b6801-21T14:08:44.038Z",
      "typelocale": "anonymousen",
      "queueregistrationData": "b23bea4f-8e8a-4da6-b413-04454f8428aa", {
          "createdAtphone": "2021-01-21T14:05:17.527Z"
 { value: "+48888888888" },
   }   },
      "typenotification": "positionCreated",{
   "organization": "ombori" }

Booking created webhook

Code Block
{   "messagetype": "YourphoneNumber",
 booking for 2021-01-21 15:10 is now confirmed. Ticket: https://qr.run/Pt5vJ05h","settings": {
    "data": {     "positionfrom": {"",
          "locationto": "",
{          "locationNamerecipient": "Ombori Stress Test 1""
        }
      },
      "typenumberOfPeople": "booking"1,
      "prioritybooking": {
 100,       "createdAtstart": "2021-01-21T14:07:21.598Z",
      "locale": "en",
      "notification": {10:00Z",
         "typeend": "phoneNumber2021-01-21T14:15:00Z",
        "settingsvirtualAppointment": {
          "fromisEnabled": "",false
        }
 "to": "+460000",    },
      "recipientstatus": "pending",
      "label": "B1",
}       }"id": "65e8eb52-7bba-4393-9a59-0b29c9251959",
      "queue": "numberOfPeople": 1b23bea4f-8e8a-4da6-b413-04454f8428aa",
      "bookingbookingReminderAt": {null,
        "startfulfilledAt": "2021-01-21T14:10:00.000Z479Z",
 
      "endleaveReminderAt": "2021-01-21T14:15:00.000Z"null,
        "virtualAppointmentleaveAt": {null
    }
  },
  "isEnabledtype": false
  "bookingUpdated",
  "organization": "ombori"
}

Position rejected by staff webhook

Code Block
{
  "message": "Position A7 was }cancelled. Visit https://qr.run/1FfHJUrk if you would like },to request a new position.",
  "statusdata": "draft",
{
     "labelposition": "",{
      "id": "255c8a1db573b730-b8b6ab6e-4fb44314-b6d68c8f-4a5416203e1b1ad654aeb169",
      "queuestatus": "b23bea4f-8e8a-4da6-b413-04454f8428aa",
      "bookingReminderAt": null
    }
  },rejected",
      "typepriority": "bookingConfirmation"0,
      "organizationlocation": "ombori" }

Booking activated webhook

Code Block
{
  "message": "Your position: B1. Please come within 15 minutes to avoid cancellation of your appointment. Ticket: https://qr.run/1WPccolK","locationName": "Ombori Stress Test 1",
        "dataorganizationTitle": {"Ombori Title"
    "position": {  },
      "locationregistrationData": {
          "locationNamephone": "Ombori{ Stress Test 1"value: "+48888888888" },
      },
      "typelabel": "bookingA7",
      "prioritylocale": 100"en",
      "createdAttype": "2021-01-21T14:08:44.038Zanonymous",
      "localequeue": "enb23bea4f-8e8a-4da6-b413-04454f8428aa",
      "notificationcreatedAt": {
 "2021-01-21T14:11:52.436Z",
      "typerejectedAt": "phoneNumber2021-01-21T15:05:17.527Z",
 
      "settingsservedBy": {},
          "fromstation": "",null
    }
  },
  "totype": "positionRemoved",
  "organization":     "ombori"
}

Position retry by staff webhook

Code Block
{
  "recipientmessage": ""We called your ticket, but did not find you. }We will try again in few  },minutes. Please approach the entrance.",
  "numberOfPeopledata": 1,
 {
    "bookingposition": {
        "startid": "2021-01-21T14:10:00Z",
efe8bc5d-4afc-431b-bad6-321707b08447",
       "endstatus": "2021-01-21T14:15:00Zpending",
      "priority": 0,
      "virtualAppointmentlocation": {
        "locationName": "Ombori Stress Test 1"isEnabled":,
 false       "organizationTitle": "Ombori }Title"
      },
      "statusregistrationData": "pending",{
          "labelphone": { value: "B1+48888888888" },
      "id": "65e8eb52-7bba-4393-9a59-0b29c9251959"},
      "queuelabel": "b23bea4f-8e8a-4da6-b413-04454f8428aaA4",
      "bookingReminderAtlocale": null"en",
      "fulfilledAt": "2021-01-21T14:10:00.479Z",notification": {
        "leaveReminderAttype": null"applePass",
        "leaveAtsettings": null{
    }   },   "typepassTypeIdentifier": "bookingActivatedpass.com.ombori.queueservice",
     "organization": "ombori" }

Position rejected by staff webhook

Code Block
{   "messagedevices": "Position[]
A7 was cancelled. Visit https://qr.run/1FfHJUrk if you would like}
to request a new position.",  },
"data": {     "positiontype": {"anonymous",
      "idqueue": "b573b730b23bea4f-ab6e8e8a-43144da6-8c8fb413-1ad654aeb16904454f8428aa",
      "statuscreatedAt": "rejected2021-01-21T14:06:01.994Z",
      "prioritycalledAt": 0"2021-01-21T14:15:17.527Z",
      "locationservedBy": {},
        "locationNameretryCount": "Ombori Stress Test 1"
 1
     },
  },
   "labeltype": "A7positionRetry",
  "organization": "ombori"
}

Position called by staff webhook

Code Block
{
  "localemessage": "enIt is your turn now.",
  "data": {
    "typeposition": "anonymous",{
      "queuestatus": "b23bea4f-8e8a-4da6-b413-04454f8428aanotified",
      "createdAt": "2021-01-21T14:11:52.436Z" "priority": 0,
      "servedBylocation": {},
        "stationlocationName": null
"Ombori Stress Test 1"
   }   },
  "type": "positionRemoved",   "organizationregistrationData": "ombori"
}

Position retry by staff webhook

Code Block
{{
     "message": "We called your ticket, but did not find you. We will try again in few minutes. Please approach the entrance.", "phone": { value: "+48888888888" },
      },
      "datalabel": {"A4",
      "positionlocale": {"en",
      "idnotification": "efe8bc5d-4afc-431b-bad6-321707b08447",{
        "statustype": "pendingapplePass",
        "prioritysettings": 0, {
          "passTypeIdentifier":  "location": {"pass.com.ombori.queueservice",
          "locationNamedevices": "Ombori Stress Test 1"[]
        },
      "label": "A4"},
      "localeid": "enefe8bc5d-4afc-431b-bad6-321707b08447",
      "notificationtype": {"anonymous",
        "typequeue": "applePassb23bea4f-8e8a-4da6-b413-04454f8428aa",

       "settingscreatedAt": {
   "2021-01-21T14:06:01.994Z",
      "passTypeIdentifiercalledAt": "pass.com.ombori.queueservice2021-01-21T14:07:01.994Z",      
      "devicesservedBy": []{},
      "station": null
}    }
  },
      "type": "anonymouspositionCalled",
  "organization": "ombori"
}

Position checked-in by staff webhook

Code Block
{
  "queuemessage": "b23bea4f-8e8a-4da6-b413-04454f8428aa",
   null,
  "createdAtdata": "2021-01-21T14:06:01.994Z",{
      "servedByposition": {},
      "retryCountid": 1"efe8bc5d-4afc-431b-bad6-321707b08447",
    }   },
  "type"status": "positionRetryfulfilled",

 "organization": "ombori" }

Position called by staff webhook

Code Block
{   "messagepriority": "It0,
is your turn now.",   "datalocation": {
        "positionlocationName": {"Ombori Stress Test 1",
        "statusorganizationTitle": "notifiedOmbori Title",
      "priority": 0},
      "locationregistrationData": {
          "locationNamephone": "Ombori{ Stress Test 1"value: "+48888888888" },
      },
      "label": "A4",
      "locale": "en",
      "notification": {
        "type": "applePass",
        "settings": {
          "passTypeIdentifier": "pass.com.ombori.queueservice",
          "devices": []
        }
      },
      "id": "efe8bc5d-4afc-431b-bad6-321707b08447",
      "type": "anonymous",
      "queue": "b23bea4f-8e8a-4da6-b413-04454f8428aa",
      "createdAt": "2021-01-21T14:06:01.994Z",
      "servedBy": {},
      "stationretryCount": null1,
    }   },
  "type"station": "positionCalled"null,
  "organization": "ombori" }

Position checked-in by staff webhook

Code Block
{   "messagecalledAt": null,
  "data": {
    "position": {"2021-01-21T14:06:01.994Z",
      "idfulfilledAt": "efe8bc5d-4afc-431b-bad6-321707b084472021-01-21T14:07:07.074Z",
      "statuscompletedAt": "fulfilled2021-01-21T15:06:01.994Z",       "priority": 0,
      "locationleaveReminderAt": {
 null,
      "locationNameleaveAt": "Ombori Stress Test 1"null
    }
  },
  
   "labeltype": "A4positionFulfilled",
   
  "localeorganization": "enombori",
   
}

Position checked-out by staff

Code Block
{
  "notificationmessage": {null,
        "type"data": "applePass",{
        "settingsposition": {
  
       "passTypeIdentifierid": "pass.com.ombori.queueserviced144003e-14bb-4d17-b67d-f501c066f563",

         "devicesstatus": []"completed",
        }
      }"priority": 0,
      "typelocation": "anonymous", {
        "queuelocationName": "b23bea4f-8e8a-4da6-b413-04454f8428aaOmbori Stress Test 1",
        "createdAtorganizationTitle": "2021-01-21T14:06:01.994Z",Ombori Title"
      "servedBy": {},
      "retryCountregistrationData": 1,{
      "station": null,   "phone": { value:  "fulfilledAt+48888888888": "2021-01-21T14:07:07.074Z" },
      "leaveReminderAt": null},
      "leaveAtlabel": null"A6",
    }   },"locale": "en",
      "type": "positionFulfilledanonymous",
      "organizationqueue": "ombori"
}

Position checked-out by staff

Code Block
{b23bea4f-8e8a-4da6-b413-04454f8428aa",
      "createdAt"message": null,: "2021-01-21T14:11:15.694Z",
      "dataservedBy": {},
      "positionstation": {null,
      "idfulfilledAt": "d144003e2021-14bb-4d17-b67d-f501c066f56301-21T14:11:21.276Z",
      "statuscalledAt": "completed2021-01-21T14:25:01.994Z",
      "prioritycompletedAt": 0,"2021-01-21T15:06:01.994Z",        "location":  {  
      "locationNameleaveReminderAt": "Ombori Stress Test 1"
 null,
      "leaveAt": null
     },
  },
   "labeltype": "A6positionCompleted",
   
  "localeorganization": "en",ombori"
}

Position cancelled by customer webhook

Code Block
{
  "message": null,
  "typedata": "anonymous",{
      "queueposition": "b23bea4f-8e8a-4da6-b413-04454f8428aa",{
      "createdAtid": "2021-01-21T14:11:15.694Zcce2ae86-1f5c-4dd4-b040-0b606a850f62",
      "servedBylocation": {},
        "stationlocationName": null"Ombori Stress Test 1",
        "fulfilledAtorganizationTitle": "2021-01-21T14:11:21.276Z",Ombori Title"
      "leaveReminderAt": null},
      "leaveAtregistrationData": null{
    }   },   "typephone": "positionCompleted",
  "organization"{ value: "ombori+48888888888" }

Position cancelled by customer webhook

Code Block
{,
     "message": null},
      "datatype": "booking",
{      "positionpriority": {100,
      "idcreatedAt": "cce2ae862021-1f5c-4dd4-b040-0b606a850f6201-11T14:48:24.479Z",
      "locationrejectedAt": {
 "2021-01-21T15:06:01.994Z",
      "locationNamelocale": "en"Ombori,
Stress Test 1"    "notification": {
 },       "type": "bookingphoneNumber",
        "prioritysettings": 100,{
          "createdAtfrom": "2021-01-11T14:48:24.479Z",
          "localeto": "en+4600000000",
          "notificationrecipient": {""
        "type": "phoneNumber",}
      },
  "settings": {   "numberOfPeople": 1,
      "frombooking": "",{
          "to": "+4600000000""start": "2021-01-13T05:30:00Z",
          "recipientend": "2021-01-13T06:00:00Z"
      },
 }       }"status": "rejected",
      "numberOfPeoplelabel": 1"",
      "bookingqueue": {"dd31dda9-5ec0-46c6-a75b-71cb1f66a48d",
        "start": "2021-01-13T05:30:00Z"QRCodeCheckInPositionId": "{\"type\":\"check-in-position\",\"positionId\":\"cce2ae86-1f5c-4dd4-b040-0b606a850f62\"}",
        "endbookingReminderAt": "2021-01-13T0613T05:00:00Z"
    }
  },
  "type": "positionCancelled",
  "statusorganization": "rejected",ombori"
}

Booking cancelled by staff webhook

Code Block
{
  "message": null,
  "labeldata": "",
 {
    "queueposition": "dd31dda9-5ec0-46c6-a75b-71cb1f66a48d",{
      "QRCodeCheckInPositionIdid": "{\"type\":\"check-in-position\",\"positionId\":\"cce2ae86-1f5c-4dd4-b040-0b606a850f62\"}",
      "bookingReminderAtlocation": "2021-01-13T05:00:00Z"
{
   }   },   "typelocationName": "positionCancelled",Ombori   "organization": "ombori"
}

Booking cancelled by staff webhook

Code Block
{
  "message": nullStress Test 1",
  "data": {     "positionorganizationTitle": {"Ombori Title"
     "id": "cce2ae86-1f5c-4dd4-b040-0b606a850f62" },
      "locationregistrationData": {
          "locationNamephone": "Ombori{ Stress Test 1"value: "+48888888888" },
      },
      "type": "booking",
      "priority": 100,
      "createdAt": "2021-01-11T14:48:24.479Z",
      "createdAtrejectedAt": "2021-01-11T1421T15:4806:2401.479Z994Z",
      "locale": "en",
      "notification": {
        "type": "phoneNumber",
        "settings": {
          "from": "",
          "to": "+4600000000",
          "recipient": ""
        }
      },
      "numberOfPeople": 1,
      "booking": {
        "start": "2021-01-13T05:30:00Z",
        "end": "2021-01-13T06:00:00Z"
      },
      "status": "rejected",
      "label": "",
      "queue": "dd31dda9-5ec0-46c6-a75b-71cb1f66a48d",
      "QRCodeCheckInPositionId": "{\"type\":\"check-in-position\",\"positionId\":\"cce2ae86-1f5c-4dd4-b040-0b606a850f62\"}",
      "bookingReminderAt": "2021-01-13T05:00:00Z"
    }
  },
  "type": "positionCancelledByStaff",
  "organization": "ombori"
}

...

Code Block
{
  "data": {
    "position": {
      "id": "788ab8bd-1590-4bfb-8569-7a4920a3d679id": "788ab8bd-1590-4bfb-8569-7a4920a3d679",
      "status": "completed",
      "priority": 0,
       "location": {
        "locationName": "Ombori Stress Test 1",
        "statusorganizationTitle": "completedOmbori Title",
      "priority": 0},
       "locationregistrationData": {
          "locationNamephone": "Ombori{ Stress Test 1"value: "+48888888888" },
      },
      "label": "A2",
      "locale": "en",
      "type": "booking",
      "queue": "dd31dda9-5ec0-46c6-a75b-71cb1f66a48d",
      "createdAt": "2020-12-14T12:16:20.308Z",
      "extraStatus": "goToEntrance",
      "QRCodeCheckInPositionId": "{\"type\":\"check-in-position\",\"positionId\":\"788ab8bd-1590-4bfb-8569-7a4920a3d679\"}",
      "station": {
        "id": "259a8de4-f5ea-42c4-a9af-e272a42f1b6f",
        "label": "C2"
      },
      "notification": {
        "type": "phoneNumber",
        "settings": {
          "from": "",
          "to": "+4600000000"
        }
      },
      "numberOfPeople": 1,
      "booking": {
        "start": "2020-12-14T12:30:00Z",
        "end": "2020-12-14T13:00:00Z"
      },
      "fulfilledAt": "2020-12-14T12:16:26.473Z",
      "calledAt": "2021-01-14T12:06:01.994Z",
      "leaveReminderAt": null,
      "leaveAt": null,
      "feedback": {
        "rating": 4,
        "message": "Lorem ipsum"
      }
    }
  },
  "type": "feedbackReceived",
  "organization": "ombori"
}

...