HTML Confirmations

The HTML Email Confirmations module provides for sending html based guest communications via email, including reservation confirmations. This section will cover how to customize html emails (intended for readers with HTML and CSS expertise) and create a responsive confirmation email that formats to fit desktop, web browser and smartphone email clients.

Responsive HTML Email Confirmation

One challenging aspect of authoring html emails is that there are no standards and email clients vary widely as to what CSS they support. MailChimp publishes a cross reference of email client CSS support by browser, desktop and mobile mail clients. The common set of supported elements is limited, so for an html email to work on as many clients as possible, it must make use of only that common set of css features.

RDP provides a sample responsive html email confirmation, HTMLResponsive.htm, which was creating following the expert advice provided in the tutorial Creating a Simple Responsive HTML Email from tutsplus.com. To ensure maximum email client compatibility the following techniques are used:

  • Not all email client support media queries, so a fluid layout is created using nested tables
  • Some email clients ignore or strip out styles within a <style> tag, so styles must be inline
  • max-width is not supported by all email clients, so it's necessary to wrap each table in conditional code which creates a set width table for its contents
Please reference the tutorial above for detailed explanations of the techniques employed.

The responsive confirmation sample is also installed on the RDP data server at <rdp root folder>/Reports10/Confirmations/HTMLResponsive.htm.

Data Items

Data items within the html template of the format [*file.field*] will be replaced at run-time with values from from the guest's reservation. For example the data item [*hreserve.resnum*] will be replaced with the guests reservation confirmation number. Data items from the following files are available: hreserve, guests, resnotes, hreservecomment, units, unitscomment, rateplan, groupmst. A list of the available fields from each of these files can be obtained from RDPWin -> System/DDFInfo, by selecting the file name on the 'Tables' tab. Data item file and field names are not case sensitive.

The following additional data items that do not exist in the data files are also available:

Data Item Value
[*hreserve.creditcard*] Credit card type used on the reservation
[*hreserve.creditcardnum*] Masked credit card number used on the reservation
[*hreserve.firstname*] Guest first name
[*hreserve.lastname*] Guest last name
[*hreserve.lockaccesscode*] Lock access code for the reservation
[*lockaccessnote*] Lock access note for the reservation
[*hreserve.lockoffs*] Lockoff list
[*hreserve.totalchargenotax*] Total charge excluding tax
[*hreserve.tax1*] Total of tax 1
[*hreserve.tax2*] Total of tax 2
[*hreserve.depositamountdue*] If the 1st deposit has been paid, 0.00 will show. If the 1st deposit hasn't been paid, it will show the deposit amount.
[*hreserve.roomratenongroup*] If the 1st rate transaction has folio type M, asterisks (******) will show in place of the room rate. If it's not folio type M, HReserve.RoomRate will show.
[*propertycodedesc*] Property code description from the reservation room number
[*rateplannote*] Note on rate plan
[*units.description*] Description from room type table (C2)
[*units.irmdescription*] Description from IRMDetails
[*unitlocation/map and directions*] If address information is available, link to Google map
[*unitsnote*] Note on the unit/room
[*confirmationnote.note*] Confirmation note on the reservation
[*folioN*] Narrow format folio, which includes date, description and total columns. Displays all folio items regardless of folio type
[*folioN-i*] Narrow format folio, folio I items only
[*folioN-a*] Narrow format folio, folio A items only
[*folioN-b*] Narrow format folio, folio B items only
[*folioN-L*] Narrow format folio, folio L items only
[*folioN-m*] Narrow format folio, folio M items only
[*itineraryN*] Narrow format itinerary, which includes date, description and cost columns
[*itinerary/noprice*] Itinerary including date and description columns only
[*itineraryFull*] Itinerary including Activity(Vendor Name), Date, Time, Description, Price, Qty, Cost, and Confirmation columns
[*itineraryFull/noprice*] Itinerary including Activity(Vendor Name), Date, Time, Description, Qty, and Confirmation columns
[*hreserve.acceptdocumentaddress*] Link to accept a document (such as a lease) page
[*hreserve.addservicesaddress*] Link to IRM for adding virtual store items to an existing reservation
[*hreserve.checkinaddress*] Link to self checkin (requires Self Checkin module)
[*hreserve.checkoutaddress*] Link to self checkout (requires Self Checkout module)
[*hreserve.optinaddress*] Link to GDPR compliance opt in to communications page
[*hreserve.optoutaddress*] Link to unsubscribe page
[*hreserve.paymentaddress*] Link to IRM to pay the balance on an existing reservation
[*hreserve.reservationaddress*] Link to IRM manage existing reservation
[*hreserve.surveyaddress*] Link to survey page (requires Survey Module)
[*RateDetail*] Rate detail, which includes date, description, room rate, tax, days, and total charge columns
[*RateDetailN*] Narrow format rate detail, which includes date, description, days, and total columns
[*CreditCardReceipt*] Detailed payment receipt information (transaction sequence number must be passed in)
[*GateCodeZZ*] Gate code from Table ZZ, where the subrecord (MMDDYY) is the first date using the gate code, and the data is the gate code (which changes weekly)
[*TableCZ.PropertyName*] Property Name from Table CZ, sub record 03
[*TableCZ.PropertyAddress*] Property Address from Table CZ, sub record 04
[*TableCZ.PropertyCity*] Property City from Table CZ, sub record 05
[*TableCZ.PropertyState*] Property State from Table CZ, sub record 05
[*TableCZ.PropertyZipCode*] Property Zip Code from Table CZ, sub record 05
[*TableCZ.PropertyPhone*] Property Phone from Table CZ, sub record 06
[*TableCZ.PropertyEmail*] Property Email from Table CZ, sub record 08
[*TableCZ.PropertyWebsite*] Property Website from Table CZ, sub record 10

The data items [*folio*] and [*itinerary*] produce wider output including additional columns of quantity, item price, tax details. The wider format does not fit well on small devices, so the alternative narrower format produced by [*folioN*], [*itineraryN*] or [*itinerary/noprice*] is recommended.

Data Types

Most data items will display as plain text. Fields of data type 'Currency' will be displayed with a decimal point and two places to the right. For field of data type 'Date', three date formats are available: short, long and day of week. Date format is indicated by appending '-s', '-L' or '-dw' to the data field name. By default, short date format will be used.

Date Format Syntax Result
Short [*hreserve.arrivaldate-s*] 5/11/2015
Long [*hreserve.arrivaldate-L*] Monday, May 11, 2015
Day of Week [*hreserve.arrivaldate-dw*] Monday

Formulas

The use of basic arithmetic functions (add, subtract, multiply, divide) is supported for any numeric data type field. Formulas must begin with [formula] and end with [/formula]. For example: [formula][*hreserve.othercharge1*]+[*hreserve.othercharge2*]+[*hreserve.othercharge3*][/formula]

Opt Out and Survey Links

If IRM is installed then unsubscribe (opt out) and survey links to appropriate IRM pages can be added with the special purpose data items [*optoutaddress*] and [*surveyaddress*]. Adding a survey link requires the Guest Survey and Communications module (SK). If IRM is not installed, an opt out link is still recommended and an alternate procedure is documented below.

If the Guest Survey module is installed, first configure the URL to the IRM root directory. This configuration is found in RDPWin -> Stats/Surveys/Configuration. For example: https://irm.resortdata.com/irmnet/.

Opt Out

If IRM is installed, then add an unsubscribe (opt out) link similar to this example: <a href="[*optoutaddress*]">Unsubscribe</a>. If the URL to the IRM root address is not configured as described above, then the unsubscribe link should include the URL to the IRM root as follows: <a href="https://irm.resortdata.com/irmnet/[*optoutaddress*]">Unsubscribe</a>. If the guest clicks the opt out link, then the 'SuppressMassEmail' field on the guest history master will be modified.

If IRM is not installed: This option requires an email account to be set up and the mailbox to be manually monitored. If the recipient clicks the link, it will send an email to the designated inbox to unsubscribe. Once the email is received, find the guest history or master account and update the record by checking the Don't Mass Email box. For example: <a href="mailto:[email protected]?subject=Unsubscribe&body=Please remove me from your mailing list.">Unsubscribe</a>Note: the unsubscribe@YOUREMAIL should be replaced with the designated email address.

Survey

If the Guest Survey and Communications module (SK) is installed, a link to a configured guest survey can be added similar to this example: <a href="[*surveyaddress*]">Guest Survey</a>.