# Confirmation Email Builder (/docs/marketing/email-template-builder)



The confirmation email builder lets you design the booking confirmation email your customers receive — layout, content, images, buttons, and subject line — using a drag-and-drop editor. No coding required.

If you never touch the builder, nothing changes: activities without a template keep sending the standard confirmation email exactly as before.

How it works [#how-it-works]

Templates live in a library. Each template belongs to either:

* **A location** — the location default, used for every activity at that location, or
* **A specific activity** — an override that wins over the location default for that activity only.

At most one template per activity (and one per location) can be **enabled** at a time. When a confirmation is sent, Resytech picks the enabled activity template first, then the enabled location default, then the built-in email.

Manage location defaults under **Email Templates** in the dashboard; manage per-activity overrides from the activity's **Communication** tab, which also still holds the arrival-time and visibility settings.

Building a template [#building-a-template]

Creating a template starts you from a layout that reproduces the standard confirmation email, with your existing custom email body and terms already placed in editable blocks — so you refine rather than rebuild.

The editor has three panels: a **toolbox** of blocks on the left, the email **canvas** in the middle, and a **properties** panel on the right for the selected block. Drag blocks to reorder them; delete what you don't need.

Content blocks [#content-blocks]

Blocks you author yourself: **Heading**, **Text** (rich text), **Image**, **Button**, **Divider**, **Spacer**, **Columns** (two-column layout that stacks on phones), and **HTML** for hand-written markup.

Booking sections [#booking-sections]

Smart sections rendered by Resytech with the booking's live data. You place, reorder, and configure them — their internals stay accurate automatically:

| Section          | Shows                                                                                                                                               |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Booking details  | "Booking confirmed" header, activity name, and confirmation code                                                                                    |
| When             | Date, start time, duration, and arrive-by line                                                                                                      |
| Manage booking   | The customer self-service button                                                                                                                    |
| Where            | Your location's address and map                                                                                                                     |
| Order            | Line items, discounts, taxes and fees, and the total                                                                                                |
| Payment status   | Paid / balance due breakdown, including gift cards                                                                                                  |
| Equipment        | Reserved equipment, add-ons, and what's included (the equipment list is hidden for tours — the vehicle is not something the customer chose)         |
| Guests & Tickets | Tour guest or ticket counts per category, with per-category prices when the tour uses per-person category pricing. Renders for tour activities only |
| What to bring    | The activity's what-to-bring checklist                                                                                                              |
| Your answers     | The customer's custom-field answers                                                                                                                 |
| Facilitators     | The available-facilitator list (for operators who use it)                                                                                           |
| Terms            | Your terms text plus the activity's cancellation policy                                                                                             |
| Booked by        | Customer contact details and party breakdown                                                                                                        |
| Check-in code    | A scannable QR staff use to check the party in at departure. Renders for tour activities only                                                       |

Sections with nothing to show (for example, no equipment on the booking) are left out of the delivered email automatically.

**Tours always get the check-in code**: if a tour confirmation template doesn't include the Check-in code section, Resytech adds it automatically (right after Guests & Tickets) so tour customers always receive a scannable code. Place the section yourself to control where it appears. Raw-HTML templates in full-document mode are the exception — you own that document outright, so add `{{sections.checkin_qr}}` where you want it.

A location-wide template applies to activities with different settings, so the **Where** and **Custom Fields** sections also respect each activity's "show meeting location" and "show custom field answers" settings by default — an activity that hides those keeps them hidden. Each block has an option to override this.

Personalization [#personalization]

Insert **variables** like `{{customer.name}}`, `{{booking.confirmationCode}}`, or `{{activity.name}}` into any text and into the **subject line** using the variable picker. Variables fill in with the booking's real values when each email is sent. Leave the subject empty to keep the standard subject format.

If a template contains a variable Resytech doesn't recognize (usually a typo), you'll be warned when saving, and the template can't be enabled until it's fixed — misspelled variables would otherwise render as blank text.

Preview and test [#preview-and-test]

Before enabling a template:

* **Preview** renders your design — including unsaved edits — against one of your real bookings, exactly as a customer would see it.
* **Send test email** delivers the rendered email to your own address (marked `[TEST]`). Nothing is ever sent to the sample booking's customer.

Raw HTML mode [#raw-html-mode]

For full control, a template can be switched from the block editor to **raw HTML mode**, where you author the entire email body as HTML in a code editor. Variables work exactly as in the block editor, and each booking section is available as a **section token** — for example `{{sections.line_items}}` or `{{sections.payment_status}}` — which renders the same live section wherever you place it. Sections with no data for a booking still disappear automatically.

Two delivery options:

* **Wrapped in standard frame** (default): your HTML becomes the body inside the standard email shell — logo header, 600px card, contact row, and footer stay ours, so email-client quirks remain our problem.
* **Complete document**: your HTML is sent exactly as written, `<!doctype>` and all. Full control, full responsibility.

Switching is **one-way**: "Switch to HTML" converts your current block layout into editable starting HTML and keeps a copy of the block layout. Sections become their tokens with display options reset to defaults (the conversion marks any that had custom settings), and your terms text is converted into editable HTML so nothing you wrote is lost. "Revert to blocks" restores that saved layout and **discards all HTML edits**. Both switches require the template to be disabled first, and unknown variables or section tokens are flagged before the template can be enabled — same as the block editor.

Enabling and safety [#enabling-and-safety]

Enable a template to make it live; enabling one automatically disables any other enabled template in the same scope. Disable it any time to fall back to the location default or the standard email.

If an enabled template ever fails to render at send time, the customer still receives the standard confirmation email — a broken template can never block a confirmation. You'll get an alert email (at most one per day per template) telling you which template needs attention.
