Versions Compared

Key

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

Here you can find list of examples / base for email templates. By default we’re using Sendgrid, but examples below are valid for others systems.

Template input data:

  • type – to determine appropriate content in the dynamic template, one of values:

    • bookingConfirmation – Customer created booking

    • bookingRescheduled - Customer rescheduled booking date/time

    • remindedAboutBooking – Booking reminder for customer

    • bookingActivated – Booking is activate and is a queue ticket now

    • positionCancelled – staff removed future booking created by the customer

    • positionCancelledByCustomer - Customer cancelled position

    • notifiedToApproach - notify customer that it’s his/her turn soon

    • positionCalled – Position called by staff

    • positionRetry – staff pressed ‘Retry’ because customer did not show up

    • positionRejected – staff pressed ‘Reject’ to remove ticket

    • feedbackRequested- an email with reminder to provide feedback (if not provided yet)

  • position – Position model schema

  • actionLink – link to present to customer, link depends on email type (see below)

...

  • Bookings

    1. notifiedToLeaveSoon - send an email message that customer should leave store soon

    2. notifiedToLeave - time to leave the store

  • Curbside pickup

    1. notifiedAboutBooking - notification for curbside pickup

    2. notifiedToReschedule - when curbside is rescheduled

NOTES:

...

For getting phone number it’s better to get it from notification or from registration field (in case if notification way is changed only registration field keeps phone number information). Query like position?.notification?.settings?.to ?? position?.registrationData?.phone?.value should be used

...

Info

Changelog 22-02-2021:

  1. Added stations schema

  2. Warning! We won’t update position example here, we will only update Position model link

  3. We won’t update change log section any more, please look into Page history for checking what was changed

Info

Changelog 18-02-2021:

  1. Updated location schema

Info

Changelog 5-02-2021:

  1. Added Notes section

Info

Changelog 28-01-2021:

  1. Updated position schema, please visit Position model

Info

Changelog 27-01-2021:

  1. Added registrationData into position schema

Info

Changelog 14-01-2021:

  1. Added virtualAppointment into booking

Info

Changelog 01-12-2020:

  1. Changed positionReject to positionRejected

  2. notifiedToApproach was added

Info

Changelog 04-12-2020:

  1. Changed bookingReminder to remindedAboutBooking

Info

Changelog 24-12-2020:

  1. Added “recipient” field into notification.setting for “phoneNumber” notification type (if email specified)

Template by type:

...

This guide provides an overview of integrating email notifications into the queue system using external services, including SendGrid. While SendGrid is our default email service provider, the queue system is versatile enough to integrate with other email services if required.

Below, you will find detailed descriptions of template payloads and examples that are applicable for various scenarios within the queue management system.

This approach is an alternative to using webhooks for sending notifications and is particularly useful if utilizing an external SendGrid account.

Template Input Data Overview

The content of dynamic email templates is determined based on the type of notification, which reflects different events within the queue system:

  • Booking Confirmations and Changes:

    • bookingConfirmation: Customer created a booking.

    • bookingRescheduledToAdmin: Update sent to a manager when a customer reschedules a booking.

    • bookingRescheduledToCustomer: Update sent to a customer when they reschedule a booking.

    • remindedAboutBooking: Reminder sent to customers about their booking.

    • bookingActivated: Notification that a booking is now an active queue ticket.

  • Cancellations:

    • positionCancelledByAdminToCustomer: Email to customer when staff cancels a future booking.

    • positionCancelledByCustomerToAdmin: Notification to queue manager when a customer cancels their position.

    • positionCancelledByCustomerToCustomer: Email to customer confirming their cancellation.

    • positionCancelledByAdminToAdmin: Notification to admin with an attached ics file to update the calendar.

  • Operational Notifications:

    • notifiedToApproach: Alerting the customer that their turn is coming up soon.

    • positionCalled: Notification when a position is called by staff.

    • positionRetry: Notification when staff press 'Retry' due to a no-show.

    • positionRejected: Email when staff press 'Reject' to remove a ticket.

    • feedbackRequested: Reminder to provide feedback if it hasn’t been provided yet.

  • Threshold Notifications:

    • StaffNotificationPendingTicketsCountThreshold: Alert when the number of pending tickets reaches a specified threshold.

    • StaffNotificationPeopleAverageWaitingTimeThreshold: Alert when the average waiting time threshold is reached.

Additional Notification Types

  • Bookings:

    • notifiedToLeaveSoon: Alert that the customer should prepare to leave soon.

    • notifiedToLeave: Notification that it's time for the customer to leave the store.

  • Order Pickup:

    • notifiedAboutBooking: Notification for a curbside pickup booking.

    • notifiedToReschedule: Notification when a curbside pickup is rescheduled.

Key Payload Fields

  • position: Schema of the current ticket or booking state.

  • actionLink: A URL that varies depending on the type of email, providing actions the recipient can take directly from the email.

Various examples, by type:

  1. bookingConfirmation:

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "phoneNumber",
                "settings": {
                    "from": "",
                    "to": "+phoneNumber",
                    "recipient": "test@email.com"
                },
            },
            "station": {
              "label": "A"
            },
            "booking": {
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }
            },
            "status": "draft",
            "label": "", // label will generated when time comes
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "bookingConfirmation",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

    Code Block
    <html><head><title></title></head>
      <body>
      <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
        
        <p>        
        {{#equals position.locale "ar"}}
            حجزك لـ ‪{{position.date}}‬ مؤكد الآن.
            تذكرة: ‪{{actionLink}}‬
        {{else}}
            Your booking for {{position.booking.start}} is now confirmed. Ticket: {{actionLink}}
        {{/equals}}
        </p>        
        
      </div>
    </body>
    </html>

  2. bookingRescheduledToAdmin

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "email",
                "settings": {
                    "from": "",
                    "recipient": "test-manager@email.com"
                },
            },
            "station": {
              "label": "A"
            },
            "booking": {
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }
            },
            "status": "draft",
            "label": "", // label will generated when time comes
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "bookingRescheduledToAdmin",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

  3. bookingRescheduledToCustomer

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "email",
                "settings": {
                    "from": "",
                    "recipient": "test-manager@email.com"
                },
            },
            "station": {
              "label": "A"
            },
            "booking": {
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }
            },
            "status": "draft",
            "label": "", // label will generated when time comes
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "bookingRescheduledToCustomer",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }


    Code Block
    <html><head><title></title></head>
      <body>
      <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
        
        <p>        
        {{#equals position.locale "ar"}}
            some text on ar‬
        {{else}}
            Booking for {{position.booking.start}} is was rescheduled. Queue: {{actionLink}}
        {{/equals}}
        </p>        
        
      </div>
    </body>
    </html>

  4. remindedAboutBooking

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "phoneNumber",
                "settings": {
                    "from": "",
                    "to": "+phoneNumber",
                    "recipient": "test@email.com"
                },
            },
            "station": {
              "label": "A"
            },
            "booking": {
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }
            },
            "status": "draft",
            "label": "", // label will generated when time comes
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "bookingReminder",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

    Code Block
    
      <html>
        <head>
          <title></title>
        </head>
        <body>
          <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
          
            <p>        
            {{#equals position.locale "ar"}}
                لا تنس حجزك في 
            {{else}}
                Don't forget your booking in 15 minutes
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
    

  5. bookingActivated:

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "phoneNumber",
                "settings": {
                    "from": "",
                    "to": "+phoneNumber",
                    "recipient": "test@email.com"
                },
            },

...

  1. 
           "station": {
              "label": "A

...

  1. "

...

  1. 
          

...

  1.  

...

  1.  },

...

  1.         

...

  1. 
            "booking": {
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }
            },
            "status": "

...

  1. pending",

...

  1. 
       

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  "label": "B1",
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "

...

  1. bookingActivated",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

    Code Block

...

  1. 
      <html>
        <head>
          <title></title>
        </head>
        <body>
          <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
            
            <p>        
            {{#equals position.locale "ar"}}
    

...

  1. "رقم موعدك: ‪{{position.

...

  1. label}}‬. 

...

  1. يرجى 

...

  1. الحضور في خلال 15 دقيقة لتجنب إلغاء الموعد 

...

  1. تذكرة: ‪{{actionLink}}‬" 
            {{else}}
                Your 

...

  1. position: {{position.

...

  1. label}}. Please come within 15 minutes to avoid cancellation of your appointment. Ticket: {{actionLink}}
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
    

...

  1. positionCancelledByAdminToAdmin

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "

...

  1. email",
                "settings": {
                    "from

...

  1. ": "

...

  1. ",
                    "recipient": "

...

  1. test-manager@email.com"
             

...

  1.  

...

  1.  

...

  1.  },
            },
            "station": {
              "label": "A"
            },
            "booking": {
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }
            },
            "status": "draft",
            "label": "B1",

...

  1. 
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "rejectedAt": "2020-05-26T15:30:37.1700000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "

...

  1. positionCancelledByCustomerToAdmin",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/

...

  1. admin"    
    }

  2. positionCancelledByAdminToCustomer:

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
            

...

  1.   "locationName": "Ombori Street",
     

...

  1.      

...

  1.     "organizationTitle": "Ombori Title"
    

...

  1.      

...

  1.    },
     

...

  1.        

...

  1. "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "phoneNumber",
                "settings": {
      

...

  1.               "from": "",
     

...

  1.  

...

  1.  

...

  1.              

...

  1. "to": "+phoneNumber",
               

...

  1.      "recipient": "test@email.com"
          

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1. },
            

...

  1. }

...

  1. ,
            

...

  1. "station": {
              

...

  1. "label": "A"
         

...

  1.    },
     

...

  1.  

...

  1.  

...

bookingActivated:

...

  1.      "

...

  1. booking": {
       

...

  1.          "

...

  1. start": "

...

  1. yyyy-MM-dd HH:mm", // with respect to timezone
       

...

  1.          

...

  1. "

...

  1. end": "

...

  1. yyyy-MM-dd HH:mm", // with respect to timezone
            

...

  1.  

...

  1.  

...

  1.   "virtualAppointment": {
         

...

  1.          

...

  1. eventId: "

...

  1. AAMkADExYWZmYjI4LTMxMjIt......="
               

...

  1.  

...

  1.   isEnabled: true
         

...

  1.  

...

  1.         managerEmail: "

...

  1. virtual-booking@some-domen.com"
                  

...

  1. managerId: "

...

  1. 9cd376b6-......."
                

...

  1.  

...

  1.  url: "https://teams.microsoft.com/l/meetup-join/19....."
                

...

  1. }
            },
            "

...

  1. status": "

...

  1. draft",
            "label": "B1",
            "

...

  1. queue": "

...

  1. _queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
       

...

  1.      

...

  1. "rejectedAt": "2020-05-26T15:30:37.1700000Z",
            "

...

  1. bookingReminderAt": 

...

  1. null,
            "

...

  1. QRCodeCheckInPositionId": 

...

  1. "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        

...

  1. },

...

  1. 
        "

...

  1. type": 

...

  1. "positionCancelledByAdminToCustomer",
        

...

  1. "actionLink": "

...

  1. https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/book"    
    }

    Code Block
    
      <html>
    

...

  1.     <head>
          <title></title>
        

...

  1. </head>
        <body>
          <div data-role="module-unsubscribe" class="module" role="

...

  1. module"

...

  1.  

...

  1. data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
            
            <p>  

...

  1.  

...

  1.      
            

...

  1. {{#equals position.locale "ar"}}
                تم إلغاء 

...

  1. الحجز. {{position.label}} برجاء زيارة {{actionLink}} إذا كنت ترغب في حجز موعد جديد
         

...

  1.  

...

  1.   {{else}}
                

...

  1. Position {{position.label}} was cancelled. Visit {{actionLink}} if you would like to request a new position.
            {{/equals}}
        

...

  1.     </p>
        

...

  1.         
    

...

  1.  

...

  1.      </div>
       

...

  1.  </body>
      </html>
    

  2. positionCancelledByCustomerToCustomer

    Code Block
    {
        "

...

  1. position":

...

  1. 
          

...

  1. {
            "id": "

...

  1. _id_",
            "

...

  1. location": 

...

  1. {
         

...

  1.      "

...

  1. locationName": "

...

  1. Ombori Street",
              "

...

  1. organizationTitle": "

...

  1. Ombori Title"
        

...

  1.    

...

  1.  },
       

...

  1.      "type": 

...

  1. "booking",
         

...

  1.    "priority": 100,
    

...

  1.        

...

  1.  

...

  1. "locale": "en",
            "notification": {
                "type": "phoneNumber",
               

...

  1.  "settings": {
                  

...

  1.  

...

  1.  "

...

  1. from"

...

  1. : "

...

  1. ",
                    "to": "+phoneNumber",
              

...

  1.       "recipient": "test@email.com"
          

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1. },
    

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1. }

...

  1. ,
            

...

  1. "station": {
            

...

  1.   "label": "A"
            },
           

...

  1.  "booking": {
      

...

  1.    

...

positionCancelled:

...

  1.        "

...

  1. start": "yyyy-MM-dd HH:mm", // with respect to timezone
       

...

  1.          "

...

  1. end": "

...

  1. yyyy-MM-dd HH:mm", // with respect to timezone
       

...

  1.  

...

  1.         "virtualAppointment": {
     

...

  1.  

...

  1.  

...

  1.            

...

  1. eventId: "

...

  1. AAMkADExYWZmYjI4LTMxMjIt......="
            

...

  1.       isEnabled: true
     

...

  1.  

...

  1.          

...

  1.  

...

  1.   managerEmail: "virtual-booking@some-domen.com"
         

...

  1.  

...

  1.         managerId: "

...

  1. 9cd376b6-......."
                  

...

  1. url: "

...

  1. https://teams.microsoft.com/l/meetup-join/19....."
                

...

  1. }
    

...

  1.         },
            "

...

  1. status": "draft",
            "label": "B1",
            "

...

  1. queue": "

...

  1. _queue_id_",

...

  1. 
            

...

  1. "

...

  1. createdAt": "

...

  1. 2020-05-26T08:47:37.1700000Z",
            

...

  1. "rejectedAt": "2020-05-26T15:30:37.1700000Z",
            "bookingReminderAt": 

...

  1. null,
            "

...

  1. QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        

...

  1. "

...

  1. type": "

...

  1. positionCancelledByAdminToCustomer",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/positions/poisition-id"    
    }

...


  1. positionCancelledByCustomerToAdmin

    Code Block
    {
        "position":
       

...

  1.  

...

  1.   {
            "

...

  1. id": 

...

  1. "_id_",
            "location": {
     

...

  1.          "

...

  1. locationName": 

...

  1. "Ombori Street",
              

...

  1. "

...

  1. organizationTitle": "

...

  1. Ombori Title"
            },
            "

...

  1. type": "

...

  1. booking",
    

...

  1.   

...

  1.  

...

  1.  

...

  1.  

...

  1.    "priority": 100,
            "

...

  1. locale": 

...

  1. "en",
            

...

  1. "notification": {
                

...

  1. "type": 

...

  1. "email",
                "settings": {
    

...

  1.  

...

  1.                

...

  1. "from": "

...

  1. ",
                    

...

  1. "recipient": "

...

  1. test-manager@email.com"
                },
            },
            "

...

  1. station":

...

  1.  {
              "label": "

...

  1. A"
            },
            "

...

  1. booking":

...

  1.  {
                "

...

  1. start": "

...

  1. yyyy-

...

  1. MM-

...

  1. dd HH:mm", // with respect to timezone
                "

...

  1. end": "

...

  1. yyyy-

...

  1. MM-

...

  1. dd HH:mm", // with 

...

  1. respect to timezone
      

...

  1.  

...

  1.          "

...

  1. virtualAppointment": 

...

  1. {

...

  1. 
        

...

  1.     

...

  1.  

...

  1.      

...

  1. eventId: "

...

  1. AAMkADExYWZmYjI4LTMxMjIt......="
                  

...

  1. isEnabled: true
         

...

  1.      

...

  1.     managerEmail: "virtual-booking@some-domen.com"
     

...

  1.      

...

  1.      

...

  1.    managerId: "9cd376b6-......."
      

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1. url: "https://teams.microsoft.com/l/meetup-join/19....."
               

...

  1.  }
            },
          

...

  1.  

...

  1.  "

...

  1. status"

...

  1. : "draft",
            

...

  1. "label": "B1",
            "queue": "_queue_id_",
           

...

  1.  "createdAt": "2020-05-26T08:47:37.1700000Z",
            "rejectedAt": "2020-05-26T15:30:37.1700000Z",
            

...

  1. "bookingReminderAt": null,
            

...

  1. "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "positionCancelledByCustomerToAdmin",
        

...

  1. "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/admin"    
    

...

  1. }

  2. notifiedToApproach

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "email",
                "settings": {
                    "from": "",
                    "to": "+phoneNumber",
                    "recipient": "test@email.com

...

  1. "

...

  1. 
             

...

  1.  

...

  1.  

...

  1.  

...

  1. },
            },
           "station": {
              "label": "A"
            },        
            "booking": { // could be exist or could be missed
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }            
            },
            "status": "draft",
            "label": "B1",
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "calledAt": "2020-05-26T15:30:37.1700000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "notifiedToApproach",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/_id_"    
    }


    Code Block
    
      <html>
        <head>
          <title></title>
        </head>
        <body>
          <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
            
            <p>        
            {{#equals position.locale "ar"}}
                سيحل دورك قريباً. من فضلك توجه إلى المدخل.
            {{else}}
                It will be your turn soon. Please go to the entrance.
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
  2. positionCalled

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
            },
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "phoneNumber",
                "settings": {
                    "from": "",
                    "to": "+phoneNumber",
                    "recipient": "test@email.com

...

  1. "

...

  1. 
    

...

  1.         

...

  1.  

...

  1.  

...

  1.  

...

  1.  },
            },
            "station": {
              "label": "A"
            },
            "booking": {
                "start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }            
            },
            "status": "pending",
            "label": "B1",
            "queue": "_queue_id_",
            "calledAt": "2020-05-26T15:30:37.1700000Z",              
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "positionCalled",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

    Code Block
    
      <html>
        <head>
          <title></title>
        </head>
        <body>
          <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
            
            <p>        
            {{#equals position.locale "ar"}}
                حان دورك الآن.
            {{else}}
                It is your turn now.
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
    

  2. positionRetry

    Code Block
    {
        "position":
          {
            "id": "_id_",
            "location": {
              "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
        

...

  1.     },
    

...

  1.    

...

  1.  

...

positionRetry

...

  1.     "type": "

...

  1. booking",
            

...

  1. "priority": 100,
            "

...

  1. locale": "

...

  1. en",
            "

...

  1. notification": {
                "

...

  1. type": "

...

  1. phoneNumber",
                "

...

  1. settings": 

...

  1. {
           

...

  1.          "

...

  1. from": "

...

  1. ",
                    "

...

  1. to": 

...

  1. "+phoneNumber",
                    "

...

  1. recipient": "

...

  1. test@email.com"
                },
      

...

  1.   

...

  1.     },
            "

...

  1. station": 

...

  1. {
              

...

  1. "label": "

...

  1. A"

...

  1. 
    

...

  1.         },
            "

...

  1. booking": 

...

  1. {
                "

...

  1. start": "

...

  1. yyyy-MM-dd HH:mm", // with respect to timezone
                "

...

  1. end": "

...

  1. yyyy-MM-dd HH:mm", // with respect to timezone
       

...

  1.          "

...

  1. virtualAppointment": {
                

...

  1.  

...

  1.  

...

  1. eventId: "

...

  1. AAMkADExYWZmYjI4LTMxMjIt......="
    

...

  1.          

...

  1.      isEnabled: true
      

...

  1.  

...

  1.            

...

  1. managerEmail: "

...

  1. virtual-booking@some-domen.com"
           

...

  1.        

...

  1. managerId: "

...

  1. 9cd376b6-......."
                  

...

  1. url: "

...

  1. https://teams.microsoft.com/l/meetup-join/19....."
                }   

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.   
            },
     

...

  1.  

...

  1.       "status": "pending",
           

...

  1.  "label": "B1",
            "queue": "_queue_id_",
       

...

  1.  

...

  1.     "createdAt": "2020-05-26T08:47:37.1700000Z",
            

...

  1. "calledAt": "

...

  1. 2020-

...

  1. 05-26T15:30:37.1700000Z",
            "bookingReminderAt": null,
           

...

  1.  "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "positionRetry",
        

...

  1. "actionLink": "https://

...

  1. queue.qa.

...

  1. ombori.com/ombori-demo/

...

  1. queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    

...

  1. }

    Code Block
    
      <html>
        <head>
          <title></title>
        

...

  1. </head>
        

...

  1. <body>
          

...

  1. <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
            
        

...

  1.  

...

  1.    <p>      

...

  1.  

...

  1.  
           

...

  1.  

...

  1. {{#equals position.locale "ar"}}
         

...

  1.      

...

  1.  

...

  1.  تم الوصول لدورك، لكنك 

...

  1. لم تدخل. سنحاول مرة أخرى في غضون دقائق قليلة. الرجاء الإقتراب من المدخل
            

...

  1. {{else}}
        

...

  1.      

...

  1.    We called 

...

  1. your ticket, but did not find you. We will try again in few minutes. Please approach the entrance.
            {{/equals}}
       

...

  1.      </p>
               

...

  1.  

...

  1. 
    

...

  1.       </div>
        </body>
     

...

  1.  

...

  1. </html>
    

  2. feedbackRequested

    Code Block
    {
        "position":
          {
            "id": 

...

  1. "_id_",
            "location": {
       

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1. "locationName": "Ombori Street",
              "organizationTitle": "Ombori Title"
        

...

  1.     },
        

...

  1.     "type": "booking",
            "priority": 100,
        

...

  1.     

...

  1. "locale": "en",
      

...

  1.  

...

feedbackRequested

...

  1.      "

...

  1. notification": 

...

  1. {
       

...

  1.          "

...

  1. type": "

...

  1. phoneNumber",
                "

...

  1. settings": {
                    "

...

  1. from": "

...

  1. ",
                    "

...

  1. to": "

...

  1. +phoneNumber",
            

...

  1.         

...

  1. "

...

  1. recipient": "

...

  1. test@email.com"
               

...

  1.  

...

  1. },
            

...

  1. },
            "

...

  1. station": {
              

...

  1. "

...

  1. label": "

...

  1. A"

...

  1. 
            },
            "

...

  1. booking": {

...

  1. 
                "

...

  1. start": "yyyy-MM-dd HH:mm", // with respect to timezone
                "

...

  1. end": "

...

  1. yyyy-MM-dd HH:mm", // with respect to timezone
                "

...

  1. virtualAppointment": 

...

  1. {
                

...

  1.   eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
         

...

  1.          

...

  1. isEnabled: 

...

  1. true
                

...

  1.  

...

  1.  

...

  1. managerEmail: "

...

  1. virtual-booking@some-domen.com"
    

...

  1.          

...

  1.      managerId: "9cd376b6-......."
      

...

  1.  

...

  1.            

...

  1. url: "

...

  1. https://teams.microsoft.com/l/meetup-join/19....."
            

...

  1.     }     

...

  1.  

...

  1.       
          

...

  1.  

...

  1.  },
            "status": "pending",
            "

...

  1. label": "

...

  1. B1",
            "

...

  1. queue": 

...

  1. "_queue_id_",
            

...

  1. "createdAt": "

...

  1. 2020-05-26T08:47:37.1700000Z",
       

...

  1.      "calledAt": "2020-05-26T15:30:37.1700000Z",
            

...

  1. "fullfilledAt": "

...

  1. 2020-

...

  1. 05-26T20:30:37.1700000Z",
            "bookingReminderAt": null,
            

...

  1. "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "feedbackRequested",
        

...

  1. "actionLink": "https://

...

  1. queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

    Code Block
    
      <html>
        

...

  1. <head>
          <title></title>
        </head>
        <body>
       

...

  1.    

...

  1. <div data-role="module-unsubscribe" class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
            

...

  1. 
            

...

  1. <p>        
    

...

  1.  

...

  1.        {{#equals 

...

  1. position.locale "ar"}}
        

...

  1.      

...

  1.  

...

  1.   كيف كانت تجربتك 

...

  1. اليوم؟ يرجى إرسال ملاحظاتك إلينا حول حجزك: {{url_to_feedback}}
            {{else}}
                How was your experience today? Please give us feedback about your booking: {{url_to_feedback}}
            {{/equals}}
            

...

  1. </p>
                
          </div>
        </body>
      </html>
    

  2. positionReject

    Code Block
    {
     

...

  1.    "position":
          {
          

...

  1.  

...

  1.  "

...

  1. id"

...

  1. : "_id_",
            "location": {
     

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1. "locationName": 

...

  1. "Ombori Street",
           

...

  1.    "organizationTitle": "Ombori Title"
           

...

  1.  

...

  1. },
    

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1. "type": 

...

  1. "booking",
            "priority": 100,
         

...

  1.    "locale": "en",
        

...

  1.     "notification": {
                "type": 

...

  1. "phoneNumber",
         

...

  1.   

...

positionReject

...

  1.      "

...

  1. settings": {
         

...

  1.            "

...

  1. from": "

...

  1. ",

...

  1. 
          

...

  1.  

...

  1.          

...

  1. "

...

  1. to": "

...

  1. +phoneNumber",
                    "

...

  1. recipient": "

...

  1. test@email.com"
                },
            

...

  1. },
            "

...

  1. station": {
    

...

  1.          

...

  1.  "

...

  1. label": "A"
        

...

  1.  

...

  1.    },
            

...

  1. "

...

  1. booking": 

...

  1. {
                "start"

...

  1. : "yyyy-MM-dd HH:mm", // with respect to timezone
                "

...

  1. end": "yyyy-MM-dd HH:mm", // with respect to timezone
                "

...

  1. virtualAppointment": 

...

  1. {
                  

...

  1. eventId: "

...

  1. AAMkADExYWZmYjI4LTMxMjIt......="
                

...

  1.   isEnabled: true
          

...

  1.         managerEmail: "

...

  1. virtual-booking@some-domen.com"
                

...

  1.  

...

  1.  

...

  1. managerId: "

...

  1. 9cd376b6-......."
            

...

  1.       url: 

...

  1. "https://teams.microsoft.com/l/meetup-join/19....."
               

...

  1.  }       

...

  1.      
       

...

  1.  

...

  1.     },
            "

...

  1. status": "

...

  1. cancelled",
            "

...

  1. label": "

...

  1. B1",
            "

...

  1. queue": 

...

  1. "_queue_id_",
            

...

  1. "createdAt": "

...

  1. 2020-05-26T08:47:37.1700000Z",
            

...

  1. "calledAt": "2020-05-26T17:15:59.6100000Z",
            

...

  1. "rejectedAt": "

...

  1. 2020-

...

  1. 05-26T15:30:37.1700000Z",
            "bookingReminderAt": null,
          

...

  1.   "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "positionReject",
        

...

  1. "actionLink": "https://

...

  1. queue.qa.

...

  1. ombori.com/ombori-demo/

...

  1. queues/36a4bdd7-7145-48f9-be92-0fd659f96f92"    
    }


    Code Block
    
      <html>
        <head>
         

...

  1.  <title></title>
        </head>
        <body>
          <div data-role="module-unsubscribe" 

...

  1. class="module" role="module" data-type="unsubscribe" style="color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;" data-muid="4e838cf3-9892-4a6d-94d6-170e474d21e5">
            
      

...

  1.  

...

  1.      <p>    

...

  1.  

...

  1.    
         

...

  1.  

...

  1.   {{#equals position.locale "ar"}}
        

...

  1.  

...

  1.        تم 

...

  1. إلغاء الحجز. {{position.label}} برجاء زيارة {{actionLink}} إذا كنت ترغب في حجز موعد جديد
            

...

  1. {{else}}
          

...

  1.      

...

  1.  Position {{position.label}} was cancelled. Visit {{actionLink}} if you would like to request a new position.
         

...

  1.    {{/equals}}
       

...

  1.      </

...

  1. p>
                

...

  1. 
          

...

  1. </div>
        </body>
      </html>
    

  2. StaffNotificationPendingTicketsCountThreshold

    Code Block
    {
        "queue": Queue model,
        "type": "StaffNotificationPendingTicketsCountThreshold",
        "actionLink": (as html) "
        

...

  1.   Please be informed that one of your Queues has exceeded the set threshold. See details 

...

  1. below:
          Queue Name: Khorev's queue 2
       

...

  1.  

...

  1.  

...

  1.  Current People Count: 58 persons
          Threshold Setting: 55 persons"
    }

  2. StaffNotificationPeopleAverageWaitingTimeThreshold

    Code Block
    {
        "queue": Queue model,
        "type": "StaffNotificationPeopleAverageWaitingTimeThreshold",
       

...

  1.  "actionLink": (as html) "
          Please be informed that one of your Queues has exceeded the set threshold. See details below:
         

...

  1.  Queue Name: Khorev's queue 3
          Current Average Waiting Time: 1000 min(s)
      

...

  1.     Threshold 

...

  1. Setting: 1 

...

  1. min(s)
    }