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 customerbookingActivated – 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 – Position model schema
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
notifiedToLeaveSoon - send an email message that customer should leave store soon
notifiedToLeave - time to lean store
Curbside pickup
notifiedAboutBooking - notification for curbside pickup
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
Changelog 5-02-2021:
Added Notes section
Changelog 28-01-2021:
Updated
position
schema, please visit Position model
Changelog 27-01-2021:
Added
registrationData
intoposition
schema
Changelog 14-01-2021:
Added
virtualAppointment
intobooking
Changelog 01-12-2020:
Changed
positionReject
topositionRejected
notifiedToApproach
was added
Changelog 04-12-2020:
Changed
bookingReminder
toremindedAboutBooking
Changelog 24-12-2020:
Added “recipient” field into notification.setting for “phoneNumber” notification type (if email specified)
Template by type:
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", "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>
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", "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>
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", "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>
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", "rejectedAt": "2020-05-26T15:30:37.1700000Z", "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>
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", "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_" }
<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>
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_", "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" }
<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>
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", "calledAt": "2020-05-26T15:30:37.1700000Z", "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>
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", "calledAt": "2020-05-26T17:15:59.6100000Z", "rejectedAt": "2020-05-26T15:30:37.1700000Z", "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>