Reply Templates
Save canned replies with variables and an optional subject line, then insert them into any reply in one click.
Reply templates are reusable, canned responses for the replies your team sends over and over — refund confirmations, password-reset steps, "we're looking into it" holding replies. Each template has a name, an optional category, an optional subject line, and a body. Templates can contain {{variable}} placeholders that are filled in with the ticket's details the moment you insert one, so a single "Refund processed" template greets every customer by name without any manual editing.
Creating a template
- Go to Templates in the sidebar.
- Click New template.
- Fill in the fields:
- Name — how the template appears in the list and in the composer's Templates menu (e.g. Password reset instructions). Required.
- Category — optional. One of Billing, Technical, Account, or General, or leave it as No category. Categories help the AI suggest the right template for a ticket — see Categories and AI suggestions.
- Subject — optional. Sets the reply's subject line when the template is applied. Leave it blank to keep the default
Re: <ticket subject>. Supports{{variable}}placeholders. See Subject lines. - Audience tags — optional. Scopes which tickets see this template in AI suggestions; empty means it's in the shared pool, eligible for every ticket. See Tag-Scoped Knowledge.
- Content — the body of the reply. Required. Supports
{{variable}}placeholders.
- As you type, a Variables row appears under the body listing every placeholder detected across the subject and content — a quick way to confirm you spelled them correctly.
- Click Save template.
Both Name and Content are required; Save template stays disabled until both are filled.
Template variables
Placeholders use double curly braces — {{variable_name}} — and are replaced with the ticket's live values the moment you insert the template. Six variables are supported:
| Variable | Resolves to | When unavailable |
|---|---|---|
{{customer_name}} | The customer's name | Falls back to the customer's email address |
{{customer_email}} | The customer's email address | Always present |
{{ticket_id}} | The ticket's ID | Always present |
{{ticket_subject}} | The ticket's subject line | Always present |
{{agent_name}} | Your name (the operator inserting the template) | Replaced with an empty string |
{{workspace_name}} | Your workspace's name | Replaced with an empty string |
Any token that isn't one of these six is left untouched: {{order_number}} is sent to the customer as the literal text {{order_number}}. The same happens with a misspelled name — see Common pitfalls.
Subject lines
The subject field controls the reply's subject line when you insert the template:
- Set a subject → inserting the template overwrites the composer's current subject with it (variables substituted). Use this when a fresh subject reads better than
Re: …. - Leave it blank → the composer's subject is left exactly as it was, normally
Re: <ticket subject>.
A subject can use the same {{variable}} placeholders as the body, so Re: {{ticket_subject}} — resolved works.
Inserting a template in the composer
When you're replying to a ticket (the Templates picker isn't shown on internal notes):
- Click Templates in the composer toolbar.
- Optionally type in the search box to filter by name or category.
- Click a template to open a preview. The preview shows the subject and body with variables already filled in for this ticket. Each placeholder is shown as a chip — green if it will resolve, amber if it isn't recognized (a useful last check before sending).
- Click Insert.
Inserting a template replaces the entire reply body with the template's content — it does not append at your cursor. If the template has a subject, it also overwrites the subject. Anything you'd already typed in the reply is discarded, so insert the template first and then edit.
A worked example: refund follow-up
A "Refund processed" template for billing replies:
- Name: Refund processed
- Category: Billing
- Subject:
Your refund for {{ticket_subject}} is on its way - Content:
Hi {{customer_name}},
Good news — I've processed your refund in full. You'll see it back on your
original payment method within 5–10 business days.
If there's anything else I can help with, just reply to this email.
Best,
{{agent_name}}
{{workspace_name}} SupportInserting this on a ticket from ada@example.com with subject "Order #4471 — wrong size" produces the subject Your refund for Order #4471 — wrong size is on its way and a body that greets Ada by name and is signed by you and your workspace.
Categories and AI suggestions
A template's category — Billing, Technical, Account, or General — is one signal the AI uses to decide which template to suggest for a ticket: it matches a template's category against the ticket's classified category. Leaving a template uncategorized means it isn't tied to any one ticket type. For how the AI uses your templates and knowledge to draft replies, see the AI Agent overview; to scope a template to a specific audience, see Tag-Scoped Knowledge.
Common pitfalls
- Misspelled or unknown variables are sent literally.
{{custmer_name}}and{{order_number}}aren't recognized, so the raw{{…}}text goes to the customer. Use the preview's amber chips and the editor's Variables row to catch these before sending. - No spaces or quotes inside the braces. Only
{{customer_name}}works —{{ customer_name }}(spaces) and{{"customer_name"}}(quotes) are not recognized and are sent as-is. - Variable names are case-sensitive. Use lowercase exactly as listed;
{{Customer_Name}}won't resolve. - Inserting overwrites your draft. Insert the template before composing, not after — it replaces the whole body, and the subject too if the template sets one.
- Empty signature variables.
{{agent_name}}and{{workspace_name}}resolve to nothing when those values aren't set, which can leave a dangling "Best," with no name. Confirm they're populated, or avoid them where a blank would read badly.