Email Templates
Create and customize email templates for invoices, booking confirmations, payment receipts, and more.
Overview
The email template editor lets you design the content of outgoing emails sent from the system. Each template type is used in a specific context — when sending an invoice, confirming a booking, or welcoming a guest. Templates support dynamic variables that are replaced with real data at send time.
Template Types
The system supports the following template types:
| Type | Used For |
|---|---|
invoice | Sending invoices via email (with PDF attachment) |
booking_confirmation | Confirming a reservation to the guest |
payment_receipt | Acknowledging a payment received |
quote | Sending quotations or estimates |
welcome_guest | Welcome message sent at check-in |
checkout_summary | Summary email sent at check-out |
custom | User-defined templates for any purpose |
Each type (except custom) has a specific trigger point in the system where it can be used automatically or manually.
Template Variables
Templates use double-curly-brace syntax for dynamic content. Variables are automatically replaced with actual values when the email is sent.
Guest Variables
| Variable | Output |
|---|---|
| Guest's full name |
| Guest's first name |
| Guest's last name |
| Guest's email address |
| Guest's phone number |
| Guest's company name |
Booking Variables
| Variable | Output |
|---|---|
| Booking reference code |
| Check-in date (formatted) |
| Check-out date (formatted) |
| Room name or number |
| Room type name |
| Total nights |
| Number of guests |
| Current booking status |
| Total booking amount |
Invoice Variables
| Variable | Output |
|---|---|
| Invoice code (e.g., INV-00042) |
| Date of invoice |
| Payment due date |
| Invoice grand total |
| Outstanding balance |
| Subtotal before tax |
| Total tax amount |
Payment Variables
| Variable | Output |
|---|---|
| Payment amount received |
| Date of payment |
| Payment method (Cash, UPI, etc.) |
| Transaction reference number |
Organization Variables
| Variable | Output |
|---|---|
| Organization name |
| Organization full address |
| Organization phone number |
| Organization email |
| Organization website |
| Organization GSTIN |
Creating a Template
Step-by-Step
- Navigate to Settings → Email Templates
- Click New Template (or the
+card) - Fill in the template details in the Config tab:
| Field | Description |
|---|---|
| Name | Internal name for identification (e.g., "Standard Invoice Email") |
| Type | Select from the available types (Invoice, Booking Confirmation, etc.) |
| Subject | Email subject line — supports |
| Header Text | Text shown in the email header section |
| Footer Text | Text shown at the bottom of the email |
| Set as Default | Toggle to make this the default template for its type |
| Editor Mode | Switch between Visual (drag-and-drop) and HTML (raw code) |
- Use the Variables tab to see all available variables for the selected type
- Build the email body using the Visual Editor or write HTML directly
- Preview the template to verify formatting
- Save the template
Visual Editor
The visual editor provides a Canva-like drag-and-drop experience for building email templates without writing HTML.
Editor Layout
| Panel | Description |
|---|---|
| Left Sidebar — Elements | Add new content blocks to the email (text, heading, image, button, etc.) |
| Left Sidebar — Layers | View and reorder all sections in the template |
| Center Canvas | Live preview of the email — click any element to select and edit it |
| Right Sidebar — Properties | Edit the selected element's styles, content, and attributes |
Available Elements
| Element | Description |
|---|---|
| Text | Paragraph text block |
| Heading | Large heading text (H1) |
| Divider | Horizontal rule separator |
| Spacer | Empty spacing block |
| Button | Call-to-action button with customizable colors |
| Image | Image element — upload from local or set URL |
| Logo | Organization logo (auto-uses your org logo URL) |
| Info Row | Label-value pair row (e.g., "Invoice Date: ") |
| Card | Styled container card with shadow and padding |
| HTML | Raw HTML block for advanced content |
Element Properties
When you click an element on the canvas, the Properties panel shows context-aware controls:
Text Elements (<p>, <h1>–<h6>, <span>, <a>, <button>, etc.)
- Text Content — Edit the text directly, insert
- Typography — Font family, font size, bold, italic, underline, line height
- Alignment — Left, center, right
- Colors — Text color, background color (with color picker)
Image Elements (<img>)
- Image Source — Enter a URL or upload from local (converts to base64 data URL)
- No text content section shown
Link Elements (<a>)
- Link URL — Set the
hrefattribute
All Elements
- Size — Width, height
- Spacing — Padding, margin
- Border — Border width, border style (none / solid / dashed / dotted / double), border color, border radius
- Element Actions — Move up/down, clone, delete
Section Actions
Each section on the canvas has a floating action bar with:
- Move Up / Move Down — Reorder among sections
- Duplicate — Clone the entire section
- Delete — Remove the section
Toolbar
| Action | Description |
|---|---|
| Template Name | Click to rename the template inline |
| Undo / Redo | Full undo/redo history (Ctrl+Z / Ctrl+Shift+Z) |
| Zoom | Zoom in/out of the canvas |
| Preview Toggle | Switch between editor and preview mode |
Preview Mode
Click the Eye icon in the toolbar to toggle preview mode. Preview renders the email exactly as it will appear in the recipient's inbox, including:
- Body padding applied to content sections
- Header and footer sections rendered without extra padding
- All styles preserved (borders, colors, fonts)
TIP
You can switch between Visual and HTML mode at any time. The Visual editor generates clean inline-styled HTML compatible with all major email clients.
Subject Line Example
Invoice {{invoice_number}} from {{org_name}}Renders as: Invoice INV-00042 from Grand Hotel
Body Example
<p>Dear {{guest_name}},</p>
<p>Thank you for choosing {{org_name}}. Please find your invoice
<strong>{{invoice_number}}</strong> attached to this email.</p>
<p><strong>Invoice Details:</strong></p>
<ul>
<li>Invoice Date: {{invoice_date}}</li>
<li>Total Amount: {{invoice_total}}</li>
<li>Due Date: {{invoice_due_date}}</li>
<li>Balance Due: {{invoice_balance}}</li>
</ul>
<p>If you have any questions, please contact us at {{org_email}}
or {{org_phone}}.</p>
<p>Thank you,<br>{{org_name}}</p>Custom Templates
The custom template type allows you to create templates for any email purpose not covered by the built-in types. Custom templates:
- Can use all available variables
- Are not tied to any automatic trigger
- Can be selected manually when composing an email
- Useful for marketing emails, special offers, seasonal greetings, etc.
Setting Defaults
Each template type can have one default template that is automatically used when sending that type of email.
Setting a Default
- Open the template you want to set as default
- Toggle Set as Default in the Config panel
- The template is now marked with a default badge
If no default is set for a type, the system will prompt you to select a template each time.
TIP
You can have multiple templates of the same type (e.g., several invoice templates for different scenarios) but only one can be the default.
Preview Functionality
The template editor includes a Preview mode that shows how the email will look with sample data:
- Open a template in the editor
- Click Preview
- The system fills in all variables with sample data:
- Guest name: "John Doe"
- Invoice number: "INV-00001"
- Organization name: Your actual org name
- Dates: Current date
- Amounts: Sample amounts
- Review the rendered HTML output
- Switch back to Edit mode to make changes
Preview uses your actual organization details but placeholder data for guest and transaction fields.
Integration with Gmail Sending
Email templates integrate directly with the Gmail sending flow:
Sending Flow
- Trigger: User clicks "Send" on an invoice, booking, or other record
- Template Selection: System loads the default template for that type (or prompts user to choose)
- Variable Replacement: All
are replaced with actual data from the record - Compose: The rendered email is shown in a compose dialog for review
- Attachments: Relevant attachments (e.g., invoice PDF) are added automatically
- Send: Email is sent via the connected Gmail account using OAuth2
Customization at Send Time
Even after template rendering, you can customize the email before sending:
- Edit the subject line
- Modify the body text
- Add or remove recipients (To, CC, BCC)
- Add additional attachments
Prerequisites
Gmail sending requires a connected Gmail account. See Integrations → Gmail OAuth2 Setup for configuration.
Best Practices
- Keep templates concise — guests prefer short, clear emails
- Always include key information — invoice number, amounts, dates
- Use your organization variables — ensures branding stays consistent even if details change
- Test with Preview before setting a template as default
- Create type-specific templates — a booking confirmation has different needs than an invoice email
- Include contact information — use
andso guests can reach you
Permissions
Email template management is controlled by the Email Templates RBAC module:
| Permission | Access |
|---|---|
| View | Browse and preview templates |
| Create | Create new templates |
| Update | Edit existing templates, set defaults |
| Delete | Remove templates |
| Manage | Full access to all template operations |