Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

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

    • remindedAboutBooking – Booking reminder for customer

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

    • positionCancelled – staff removed future booking created by the customer

    • notifiedToApproach - notify customer that it’s him turn soon

    • positionCalled – Position called by staff

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

    • positionRejected – staff pressed ‘Reject’ to remove ticket

  • position – ticket information, including dates, labels, language and more information that can be should be used in the template

    • 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. Optional

        • isEnabled - 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 joining

        • managerId - manager id from AD

        • managerEmail - 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)

    • label - assigned ticket number (A1, B2 and such)

    • queue - queue identifier, can be used to correlate data

    • createdAt - ticket creation time, ISO string

    • fulfilledAt - customer checked-in datetime, 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

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

Optional types (they could be used or not, depends on queue settings):

  • Bookings

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

    2. notifiedToLeave - time to lean store

  • Curbside pickup

    1. notifiedAboutBooking - notification for curbside pickup

    2. notifiedToReschedule - when curbside is rescheduled

Changelog 27-01-2021:

  1. Added registrationData into position schema

Changelog 14-01-2021:

  1. Added virtualAppointment into booking

Changelog 01-12-2020:

  1. Changed positionReject to positionRejected

  2. notifiedToApproach was added

Changelog 04-12-2020:

  1. Changed bookingReminder to remindedAboutBooking

Changelog 24-12-2020:

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

Template by type:

  1. bookingConfirmation:

    {
        "position":
          {
            "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
                "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",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "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"    
    }

    <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. remindedAboutBooking:

    {
        "position":
          {
            "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
                "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",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "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"    
    }

      <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>
    

  3. bookingActivated:

    {
        "position":
          {
            "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
                "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_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "bookingActivated",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

      <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.label}}‬. يرجى الحضور في خلال 15 دقيقة لتجنب إلغاء الموعد تذكرة: ‪{{actionLink}}‬" 
            {{else}}
                Your position: {{position.label}}. Please come within 15 minutes to avoid cancellation of your appointment. Ticket: {{actionLink}}
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
    

  4. positionCancelled:

    {
        "position":
          {
            "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
                "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",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "positionCancelled",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/book"    
    }

      <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.label}} برجاء زيارة {{actionLink}} إذا كنت ترغب في حجز موعد جديد
            {{else}}
                Position {{position.label}} was cancelled. Visit {{actionLink}} if you would like to request a new position.
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
    

  5. notifiedToApproach

    {
        "position":
          {
            "id": "_id_",
            "location": null,
            "type": "booking",
            "priority": 100,
            "locale": "en",
            "notification": {
                "type": "email",
                "settings": {
                    "from": "",
                    "to": "+phoneNumber",
                    "recipient": "test@email.com"
                },
            },
            "registrationData": {
              "phone": { value: "+48888888888" },
            },
            "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",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "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_"    
    }


      <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>
  6. positionCalled

    {
        "position":
          {
            "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
                "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_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "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"    
    }

      <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>
    

  7. positionRetry

    {
        "position":
          {
            "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
                "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_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "positionRetry",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92/positions/1c645e74-edd8-48ed-b5c7-3c48fa715c8a"    
    }

      <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}}
                We called your ticket, but did not find you. We will try again in few minutes. Please approach the entrance.
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
    

  8. positionReject

    {
        "position":
          {
            "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
                "virtualAppointment": {
                  eventId: "AAMkADExYWZmYjI4LTMxMjIt......="
                  isEnabled: true
                  managerEmail: "virtual-booking@some-domen.com"
                  managerId: "9cd376b6-......."
                  url: "https://teams.microsoft.com/l/meetup-join/19....."
                }            
            },
            "status": "cancelled",
            "label": "B1",
            "queue": "_queue_id_",
            "createdAt": "2020-05-26T08:47:37.1700000Z",
            "fulfilledAt": "2020-05-26T17:15:59.6100000Z",
            "bookingReminderAt": null,
            "QRCodeCheckInPositionId": "{"type":"check-in-position","positionId":"ce4a66df-51ff-47af-bf5e-4e26f82d266b"}"
        },
        "type": "positionReject",
        "actionLink": "https://queue.qa.ombori.com/ombori-demo/queues/36a4bdd7-7145-48f9-be92-0fd659f96f92"    
    }

      <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.label}} برجاء زيارة {{actionLink}} إذا كنت ترغب في حجز موعد جديد
            {{else}}
                Position {{position.label}} was cancelled. Visit {{actionLink}} if you would like to request a new position.
            {{/equals}}
            </p>
                
          </div>
        </body>
      </html>
    

  • No labels