mail merge style text substitution

personalise the booking process for each customer

How does it work?

Adding mail merge fields to your settings is as easy as typing "Dear {FIRSTNAME} {SURNAME}," at the start of your confirmation email. Just quote the special codes wrapped in curly brackets and the system swaps in the information that is right for that person.

Why Do You Need It?

Your customers deserve to have something better than standard general messages. Using mail merge means that you can address them by their own name and give the important information they need about their specific booking.

How to use this feature

You can add mail merge fields to many different parts of the system. All you need to do is add the correct code, wrapped in curly brackets, into the setting where you want it to appear.

For example, if you want to quote the start time and duration of the booking on the thank your page, you would use our {START} and {DURATION} fields, like this:

Which will give a result like this:

Dates and times will be formatted according to your chosen international setting. They will also of course be adjusted to the timezone of the person who will be reading them.

Standard fields

There are lots of different fields available:

tr>
FieldDescriptionExample output
{START}The start date and timeApril 4, 2013 12:00 PM
{START-DATE}Just the date partApril 4, 2013
{START-TIME}Just the time part3:30 PM
{START-HOUR}The hour of the start time13
{START-MINUTE}The minute of the start time15
{START-YEAR}The year of the start time2013
{START-MONTH}The month of the start timeApril
{START-MONTHINYEAR}The number of month of the start time4
{START-DATEINMONTH}The date of the start time4
{START-DAY}The day of the start timeThursday
{START-MILLIS}The unix time of the booking1365076800000
{START-ISO-8601}The start time formatted to the ISO 8601 standard2015-01-23T08:00:00+0000
{START-SALESFORCE}The start time formatted as the Salesforce API expect them2/4/2013 1:30 PM
{START-BOOKER},
{START-DATE-BOOKER},
{START-TIME-BOOKER}
When viewed by person making the booking (e.g. in the 'email to user'), these are the same as above. But when the calendar owner views these ('email to you'), these are converted to report the equivalent time for the other party.April 4, 2013 12:00 PM
{START-TEAM},
{START-DATE-TEAM},
{START-TIME-TEAM}
Sometimes the team member is in a different zone to both the calendar owner and the person making the booking.April 4, 2013 12:00 PM
{START-FORMAT-yyyy-MM-dd},To have the start time/date appear in a particular pattern. In this example, a four digit year followed by two digit month and date. You can use any pattern characters documented here.2014-06-18
{END}The end date and time. There are also END- versions of all the above.April 4, 2013 1:00 PM
{DURATION}The length of the booking45 minutes
{START+60}Adjust the start (or end) time by a set number of minutes (plus or minus). Useful if you need to quote, for example, the time ahead of the start of the appointment that the booker should arrive.April 4, 2013 11 AM
{TIMEZONE}The base time zone for the bookingUSA/Pacific
{TIMEZONE-BOOKER}The time zone for the person making the bookingEurope/Paris
{CREATED}The date and time the booking was madeApril 4, 2013 10:33 AM
{REF}The booking referenceABCD-EFGH-IJKL
{IP}The IP address that the booking was made from192.168.64.132
{ID}The YouCanBook.Me identifier for this booking (rarely used by calendar owners)5WwJxCTuNGBXtGwWKSTj
{SERVICE-NAME},
{SERVICE-DESCRIPTION},
{SERVICE-IMAGE}
When using our services feature, these quote the information for the selected serviceInitial Consultation
{SERVICE-NAME-NO-GROUP}When using our services feature, these quote the information for the selected service, but without the Group name if it is broken down in groupsInitial Consultation
{TEAM-NAME},
{TEAM-DESCRIPTION},
{TEAM-IMAGE},
{TEAM-EMAIL}
When using our teams feature, these quote the information for the selected team memberDr Sue Smith
{TENTATIVE-TIME}When you have the system set to automatically cancel tentative bookings after a set amount of time72 hours
{UNITS}The selected number of bookable units5
{CANCEL}A clickable link to send the user to allow them to cancel the bookingclick to cancel
{CANCEL-LINK}For more control, use this version to build a cancel link.https://example.youcanbook.me/?c=1234567890
{CANCELLATION-CODE}The short code generated by the system at the moment a booking is cancelled.FHDCJG
{RESCHEDULE}The link to send the user to allow them to reschedule the bookingclick to reschedule
{RESCHEDULE-LINK}For more control, use this version to build a reschedule link.https://example.youcanbook.me/?r=1234567890
{ACCEPT}The link to send the calendar owner to allow them to accept a tentative bookingaccept
{REJECT}The link to send the calendar owner to allow them to reject a tentative bookingreject
{PRICE},
{PRICE*0.2}, etc.
When using our payments feature use these to quote the calculated price, or some multiple of it.$150.00
{PRICE-SIMPLE},
{PRICE-SIMPLE*0.5}, etc.
Quote the price without the currency symbol or localised formatting. Useful when redirecting the information to another service via a [webhook](/feature/webhooks) for example.123.45
{LINK}The link back to start of the booking processhttps://example.youcanbook.me
{CANCELLATION-REASON}After a user has cancelled, any reason they gave.Sorry - I will be out of town that day.

Alongside the standard fields quoted above, you can manage your own set of shorthand codes.

Conditional sections

Advanced users can set out sections of their content to only display in particular situations using our special conditional sequence:

{IF}xxx{EQUALS}yyy{THEN}aaa{ELSE}bbb{ENDIF}

The system compares the text you put in for xxx and yyy. If they are the same, aaa is presented, otherwise bbb is shown. For this to be useful, you will nearly always want to make xxx one of our other mail merge fields.

For example, say most of your services happen at one location, but one of them happens at a different address. You could include this in the email to user:

Only one of the two sets of instructions would be shown, based on the users choice of service.

Note: The {ELSE} field is optional in the conditional sequence.

Note: Conditional sequences only work after the booking form stage.

Pair fields

Another class of our mail merge fields are designed to be used in pairs. They effect the text that appears between them.

Timezone different

Wrap sections of text you only want to display when the booker has selected a different timezone to the calendar owner. For example ...

{TIMEZONE-DIFFERENT} Important!!! User is in {TIMEZONE-BOOKER}{TIMEZONE-DIFFERENT}

... would only show when the booker wasn't in the same location as you.

Change case sections

Three pairs can help you manage the text case of the wrapped information: {LOWERCASE}, {UPPERCASE} and {TITLECASE}. These can be a handy way to standardise the way information that is entered. So, if a user enters their email address in capital letters you can quote it in lower case like this ...

{LOWERCASE}{EMAIL}{LOWERCASE}

Encoding information for URLs

If you need to dynamically build links to another service, a pair of {ENCODE} tags will help convert the information from your user into a safe format...

https://example.com/api/addCusomter.php?name={ENCODE}{NAME}{ENCODE}&address={ENCODE}ADDRESS{ENCODE}

When adjusting settings which the system knows will be output as links, there's no need to include these wrappers. For example, you would not use them in the 'afterwards' > 'messages' > 'go to a url' setting, where the fields will all be encoded automatically.

Looping over multiple services

If you allow your users to book more than one service at a time, you can use a pair of {SERVICES} tags to repeat a section of your text once for each selected service. For example:

{SERVICES} Service: {SERVICE-NAME} {SERVICE-IMAGE} {SERVICES}

We offer a really simple system for adding personalised fields to all your communication with your users.