> ## Documentation Index
> Fetch the complete documentation index at: https://docs.1club.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Templates

> Reusable message content in 1Club - custom templates for manual sends, plus the system template catalog you can customize for booking, membership, and lifecycle emails. Variables resolve per recipient at send time.

A template is reusable message content that 1Club stores so you do not retype it every time. There are two kinds: **custom templates** you author for manual sends, and **system templates** - the built-in catalog behind booking confirmations, receipts, welcome emails, and other automatic messages. An owner or admin writes and customizes templates, staff with template access pick custom ones when composing, and members receive system templates automatically.

## When to use it

Templates keep repeated messages consistent and in your gym's own voice. A custom template saves you rewriting the same note from the inbox, and customizing a system template rewords an automatic email without rebuilding it - you copy the built-in version, edit the copy, and can reset to the default at any time. Both use `{{variable}}` tokens that resolve per recipient when a message is sent, so each member sees their own name, booking, or plan.

Typical uses:

* **A welcome note for new members** - a padel gym keeps a `message` template that greets each new member by first name and invites them to book an intro session.
* **A booking confirmation in your own words** - a padel gym rewords the Booking Confirmation email to add court etiquette and the member's door PIN, which disappears for members without one.
* **A warmer renewal reminder** - a yoga studio customizes the Membership Expiration Reminder with the plan name, expiry date, and renewal price.

See [Welcome message example](#welcome-message-example-racket-sports), [padel booking confirmation](#worked-example-padel-booking-confirmation), and [yoga membership renewal](#worked-example-yoga-membership-renewal) for the full text of each.

Template content is channel-neutral: 1Club stores structured blocks (paragraphs, buttons, images), and each channel renders its own projection - email through the branded transactional layout, SMS and WhatsApp as plain text.

<Note>
  Customizing templates is a paid capability. Free organizations and organizations still on the Grow trial see a **plan-locked** banner and an **Upgrade** button on the Templates page. The **Add template** button is disabled until you upgrade.
</Note>

## The Templates list

Both kinds of template live at **Settings** > **Communication** > **Templates**. The grid has four columns:

* **Name** - the template name.
* **Source** - a **Custom** chip for templates you authored, a **System** chip for built-in templates, and an additional **Customized** chip when you have an active override for a system template.
* **Type** - `message`, `transactional`, or `receipt`.
* **Actions** - depends on the source (see below).

A customized system template is shown as its **system** row carrying both the **System** and **Customized** chips; the underlying override is folded into that row rather than appearing as a separate line, so you never see duplicates.

### Row actions

* **Custom template** - **View**, **Edit**, **Copy**, **Delete**.
* **System template** - **Customize** if you have not overridden it yet, or **Edit** if you already have a customized version.

## Creating a custom template

Use a custom template for the ad-hoc notes you send from the [Inbox](/inbox/overview) - a class reminder, a promotional blurb, a re-engagement note.

1. On the Templates page, click **Add template**. (The button is disabled if your plan does not include template customization.)
2. Fill in **Name** (required).
3. Choose the **Type**:
   * **Message** - shows up in the inbox compose picker for manual sends.
   * **Transactional** - a system-style email body.
   * **Receipt** - invoice receipt content.
4. For **message** and **transactional** types, add a **Subject** and optional **Preview text** (the snippet shown in the inbox preview line of an email client).
5. Write the body in the block editor. Add paragraphs, buttons, images, and dividers.
6. Insert variables from the **Available Variables** panel on the right. Click a variable chip to copy `{{token}}` to your clipboard, then paste it into the body or subject.
7. Click **Save**.

To duplicate an existing custom template, use the **Copy** action on its row. A copy is created with `(Copy)` appended to the name and opens in the editor.

### Welcome message example (racket sports)

A `message` template you send to new padel members after they join:

```text theme={null}
Subject: Welcome to {{organizationName}}!

Hi {{contactFirstName}},

Welcome to {{organizationName}}. Your first court is on us - reply to
this message and we'll get you booked for an intro padel session.

Questions? Reach us at {{organizationEmail}} or {{organizationPhone}}.

- {{senderName}}
```

## System template catalog

System templates are the built-in messages 1Club sends automatically. The Templates page lists only the **customizable** ones - the emails you are allowed to rebrand and reword. Each declares its own variable set, which the editor surfaces when you customize it.

| Template | What it is sent for |
| - | - |
| Booking Confirmation | Sent when a booking is confirmed |
| Booking Update | Sent when a booking is changed |
| Booking Cancellation | Sent when a booking is cancelled |
| Booking Player Welcome | Sent to additional players added to a booking |
| Booking Reminder | Sent before an upcoming booking |
| Instructor Schedule Invite | Sent to an instructor when a class or PT session they run is scheduled, updated, or cancelled |
| Member Invitation | Sent when inviting someone to join as a member |
| Payment Link | Sent with a pay-now link for an invoice or transaction |
| Waitlist Joined | Sent when a member joins a class waitlist |
| Waitlist Spot Available | Sent when a waitlist spot opens up |
| Waitlist Expired | Sent when a held waitlist spot expires |
| Review Request | Sent after attendance to request a review |
| Membership Expiration Reminder | Sent before a membership expires |
| Welcome Email | Sent once when a member first becomes active |

### System emails you cannot customize

A separate set of system emails is fixed and does not appear in the catalog, because they carry security-sensitive or platform-level content: password reset, email verification and resend verification, inbox verification, organization invitation, account confirmation, instructor invitation, invitation reminder, signup notifications, and AI report verification. These always send with their built-in wording.

## Customizing a system template

Customizing replaces the built-in email with your own version for that one template key. Under the hood, 1Club copies the system template's content blocks into an organization-owned template, then applies your edits; at send time it uses your active override instead of the built-in email.

1. On the Templates page, find the system template row and click **Customize**.
2. The editor opens pre-filled with the system template's default subject, preview text, and content blocks.
3. Edit the subject and body. Use the in-editor **Insert variable** picker - it lists exactly the variables this template supports (for example, `{{entityName}}`, `{{clubName}}`, `{{bookingDate}}` on Booking Confirmation), grouped by category.
4. Click **Save**. The row now shows both **System** and **Customized** chips.

To go back to the built-in email, open your customized template and click **Reset to Default**. This deletes the override after a confirmation prompt and cannot be undone; the built-in system email takes over again immediately.

<Note>
  Keep every required variable in a customized template. If you delete a token the template depends on (for example `{{bookingDate}}` on a booking confirmation), that value simply will not appear in the sent email - the token is not re-inserted for you.
</Note>

### Worked example: padel booking confirmation

Rebrand the Booking Confirmation email for a padel club so it reinforces the court-etiquette rules and surfaces the door PIN:

```text theme={null}
Subject: You're on court - {{entityName}} at {{clubName}}

Hi {{contactFirstName}},

You're confirmed for {{entityName}} at {{clubName}} on {{bookingDate}},
{{bookingTime}} ({{bookingDuration}}).

Your door PIN: {{accessPin}}

Please arrive 10 minutes early and bring clean indoor shoes.
```

`{{accessPin}}` resolves to the member's access PIN, or to nothing when they do not have one - so the PIN line quietly disappears for members without door access.

### Worked example: yoga membership renewal

Customize the Membership Expiration Reminder for a yoga studio to add a warm renewal nudge:

```text theme={null}
Subject: Keep your practice going - {{planName}} renews soon

Hi {{contactFirstName}},

Your {{planName}} membership at {{clubName}} expires on {{expirationDate}}.
Renew for {{renewalPrice}} to keep your unlimited mat time.
```

## Variables

Write variables as `{{variableName}}`. They are substituted per recipient when the message is sent, using the recipient's contact record and your organization's settings. A token that is not part of the template's variable set is left in the message verbatim - it is not replaced and it does not block saving.

### Manual message templates

For `message` templates, the following variables resolve at send time. This is the set surfaced in the **Available Variables** panel and the same set expanded when a manual message goes out:

| Variable | Description |
| - | - |
| `{{contactName}}` | Recipient's full name |
| `{{contactFirstName}}` | Recipient's first name (for greetings) |
| `{{contactEmail}}` | Recipient's email |
| `{{organizationName}}` | Your organization's name |
| `{{organizationEmail}}` | Your organization's contact email |
| `{{organizationPhone}}` | Your organization's phone number |
| `{{senderName}}` | The staff member sending the message |
| `{{subject}}` | The message subject (handy inside body copy) |
| `{{messageDate}}` | The formatted send date |

### Receipt templates

`receipt` templates additionally resolve `{{receiptNumber}}`, `{{receiptDate}}`, `{{amount}}`, and `{{paymentMethod}}` alongside the contact and organization tokens above.

### System template variables

Each system template declares its own variable set - Booking Confirmation exposes booking tokens (`{{entityName}}`, `{{clubName}}`, `{{bookingDate}}`, `{{bookingTime}}`, `{{bookingDuration}}`, `{{bookingTotal}}`, `{{accessPin}}`), Membership Expiration Reminder exposes `{{planName}}`, `{{expirationDate}}`, `{{renewalPrice}}`, `{{renewUrl}}`, and so on. When you customize a system template, the **Insert variable** picker shows exactly that template's tokens, so you can only reference values 1Club can actually fill for that send. These booking and membership tokens are only meaningful on their own system template (or on a trigger-based [automation](/marketing/automations) that binds the matching record) - they do not resolve on a plain manual `message` template.

<Note>
  Unknown tokens are not rejected when you save through the admin editor - they are simply left un-substituted in the sent message. Only 1Club's AI assistant enforces the variable allow-list when it drafts a template for you. Always confirm your tokens against the **Available Variables** or **Insert variable** list.
</Note>

## Per-channel content

The same template can be delivered over email, SMS, or WhatsApp. Because content is stored as channel-neutral blocks:

* **Email** renders the blocks through the branded transactional layout, using the **Subject** and **Preview text**.
* **SMS and WhatsApp** render a plain-text projection of the same blocks - buttons collapse to their link text, and formatting is stripped. Keep bodies short if you send over these channels.

## Tips & best practices

* **Greet with `{{contactFirstName}}`, not `{{contactName}}`.** First name reads warmer in a salutation; full name is better for formal receipts.
* **Customize the highest-volume emails first.** Booking Confirmation, Booking Reminder, and Welcome Email reach nearly every member - branding those has the most impact.
* **Preview text earns the open.** Fill **Preview text** on email templates; it is the snippet shown next to the subject in most inboxes.
* **Do not delete required tokens.** Removing a value like `{{bookingTime}}` or `{{expirationDate}}` leaves a gap in the sent email rather than an error.
* **Reset is your undo.** If a customization goes wrong, **Reset to Default** restores the built-in email cleanly - there is no need to hand-rebuild it.
* **Use automations for triggered sends.** A template is reusable content; to send it automatically on an event (booking upcoming, membership expiring, review after check-in), wire it into an [automation](/marketing/automations).

## Troubleshooting

| Symptom | Cause | Fix |
| - | - | - |
| **Add template** button is greyed out | Template customization is not in your plan, or you are on the Grow trial | Upgrade from the plan-locked banner or **Settings** > **Organization** > **Subscription** |
| A `{{token}}` shows up literally in a sent message | The token is not in that template's variable set, or it is a system token used on a plain `message` template | Replace it with a variable from the **Available Variables** / **Insert variable** list |
| Customized a system template but members still get the old wording | The override is inactive, or you edited a different template than the one that fires | Confirm the row shows the **Customized** chip; re-open and re-save |
| A value like the access PIN is blank in the email | That variable is optional and the recipient has no value for it (for example, no PIN assigned) | Expected behavior - the line renders empty; consider wording that reads fine without it |
| Booking or membership tokens do not resolve in a manual send | Those tokens only bind on their system template or a trigger-based automation | Move the send into an [automation](/marketing/automations), or use manual-message variables only |
| Cannot find a system email to customize (for example password reset) | That email is non-customizable by design | Only the catalog templates listed above can be edited; security emails are fixed |

## Related

* [Compose](/inbox/compose) - Where `message` templates are applied to outbound sends.
* [Inbox](/inbox/messages) - The conversation list these messages land in.
* [Automations](/marketing/automations) - Trigger-based sends that reuse system templates with booking and membership variables.
* [Settings overview](/settings/overview) - Where Communication settings, including Templates, live.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.