-
Notifications
You must be signed in to change notification settings - Fork 15
Canned Responses
Every service desk has a handful of replies it sends over and over β the password-reset confirmation, the request for a screenshot, the "I've escalated this to our supplier" note. Canned responses let you write one once and then drop it into a reply with a single click.
They live in the reply window as a Templates button, and there are two kinds: ones your whole team shares, and ones that are only yours.
Open a ticket, click Reply, and you'll see a Templates button on the right-hand side of the Message row, just above the editor.
Click it and the menu splits in two:
- Team β the shared templates an administrator has set up for everyone
- Mine β your own private ones, which nobody else can see
Click any name and the text drops straight into your reply.
π‘ It inserts at your cursor β it does not wipe your draft. A canned response is usually the middle of a reply, not the whole thing. Type your opening line, drop the template in, add a closing line. If you'd already typed something, it stays.
Once inserted, the text is just ordinary text in the editor β edit it, delete a paragraph, change a word. You're never stuck with the template's exact wording.
A template can contain merge codes β placeholders that become real values the moment you insert it. Write this once:
Hi [requester_first_name],
I have reset your password on [ticket_reference]. You'll be prompted to set a
new one at your next sign-in.
Thanks,
[analyst_name]
β¦and every time you insert it you get "Hi Sarah, I have reset your password on INC-482-11920β¦" with your own name at the bottom.
These are the same merge codes as the automated email templates, so there's nothing new to learn if you've written one of those.
| Code | Becomes |
|---|---|
[requester_first_name] |
The requester's first name β for friendly greetings |
[requester_name] |
Their full name |
[requester_email] |
Their email address |
[ticket_reference] |
The ticket reference, e.g. INC-482-11920
|
[ticket_url] |
A link to the requester's own view of the ticket in the portal. Needs the public web address set, or links sent from a scheduled job have no site name in them |
[ticket_subject] |
The ticket's subject line |
[ticket_status] |
Its current status |
[ticket_priority] |
Its current priority |
[analyst_name] |
Your name β so one shared template signs off correctly for everyone |
[department_name] |
The ticket's department |
[created_date] |
When the ticket was raised |
You don't have to memorise them. In the template editor, each one is a button β click it and it drops in at the cursor.
A code that isn't recognised is left alone, visibly, as
[like_this]. That's deliberate: seeing the raw code in your draft tells you something's wrong, whereas silently blanking it looks like a finished sentence and gets sent.
Templates are written in the same editor as a reply, so bold, colours, bullet lists, headings, tables and links all survive the round trip. A long "new starter accounts created" checklist keeps its bullets.
You don't need any special permission for these. Anyone who can work tickets can have them.
The best moment to save a template is the second you finish typing something you know you'll type again:
- Write your reply as normal.
- Click Templates β + Save draft as template.
- Give it a name and click Save.
The name is what you'll see in the menu, so name it for the situation ("Printer offline β first steps") rather than the wording.
You have to type something first β there's nothing to save from an empty editor, and FreeITSM will tell you so rather than saving a blank template.
Hover over any template under Mine in the menu and two small icons appear:
- β Replace with current draft β updates that template's text to whatever is in your editor right now (and lets you rename it). This is how you edit a template: insert it, fix the wording, then save it back over itself.
- π Delete β asks first, then removes it.
Those icons never appear on Team templates β you can't change the team's wording by accident.
Nobody but you. A private template is not visible to your colleagues, your manager, or an administrator β it doesn't appear on the settings page and it isn't in anyone else's menu. It follows you, so on a multi-company install it's there whichever company you're working in.
These are the ones everyone sees under Team, and they're managed in Tickets β Settings β Reply templates.
Because a shared template puts words in front of your customers under the company's name, editing them needs the Manage the shared reply templates the whole team can insert permission β see Roles & Permissions. Analysts without it still use every shared template; they just can't rewrite them.
On the settings tab, Add opens the editor:
| Field | What it does |
|---|---|
| Name | What analysts see in the Templates menu |
| Template text | The rich-text body, with merge-code buttons underneath |
| Display order | Lower numbers appear first in the menu β put your most-used at the top |
| Active | Turn a template off without deleting it. Inactive ones vanish from the menu but stay on the settings tab |
The list shows a plain-text Preview of each template so you can tell two similarly-named ones apart at a glance.
β οΈ Deleting a shared template removes it from everyone's menu immediately. If you're only retiring it for now, switch Active off instead.
- Need more information β "To look into this I need the exact error message, a screenshot, and roughly when it started." Pairs well with asking for a screen recording.
- Awaiting your reply β the nudge before a ticket auto-closes.
- Escalated to our supplier β with a reference and a realistic timescale.
- Out of scope β the polite decline, worded once and agreed by the team, so nobody has to freelance it under pressure.
- New starter setup complete β the long checklist nobody wants to retype.
On a multi-company install, shared templates follow the same "global default + per-company" model as ticket types and priorities:
- Working in the MSP / Default company, a template you create is a global default every company can use.
- Working in a client company's context, a new template belongs to that company alone.
Your private templates are never company-scoped β they're yours, and they follow you everywhere.
On a single-company install none of this is visible: every template is simply available.
Being straight about the edges of the first version:
- The picker is on the email reply window. Portal, WhatsApp and web-chat replies don't have it yet.
- There are no folders or categories β templates are one flat list per section, ordered by Display order.
- There's no usage reporting, so you can't yet see which templates actually get used.
- New installs ship with no templates at all β the list starts empty and you fill it with your own.
- Tickets β the inbox these live in
- Roles & Permissions β who can edit the shared list
- Canned Responses β Developer Guide β how it works under the hood
- Internationalisation β the UI is translated; your template text is not
FreeITSM β an open-source IT Service Management platform Β· github.com/edmozley/freeitsm Β· MIT licence
- Installation
- β° Scheduled tasks (cron jobs)
- Architecture
- AI Providers
- Internationalisation (i18n)
- Timezones & Time Handling
- Theming & Dark Mode
- β¨οΈ Command palette (βK)
- π Searching inside tickets
- π Attached documents
- MobileβFriendly
-
Security
- Layer 1 β which modules you can enter
- β³ π§© Module Access Control
- β³ π οΈ Module Access β Developer Guide
- Layer 2 β what you can administer
- β³ π Roles & Permissions
- β³ π οΈ Roles β Developer Guide
- β³ π€ Why capabilities are constants
- Layer 3 β the System module
- β³ π Admin Access Control
- Hardening
- β³ π Security review response 2026-08
- β³ π‘οΈ Security hardening 2026-08
- β³ π οΈ Security hardening 2026-08 β Developer Guide
- β³ π‘οΈ Round three β plain English
- β³ π οΈ Round three β Developer Guide
- Single Sign-On (SSO)
- ποΈ LDAP & Active Directory
- Browser Extension
- API Reference
-
π REST API β how it works
- β³ π« REST API: Tickets
- β³ π» REST API: Assets
- β³ π΄ REST API: Problems
- β³ π REST API: Changes
- β³ π REST API: Knowledge
- β³ β REST API: Tasks
- β³ ποΈ REST API: CMDB
- β³ π REST API: Contracts
- β³ ποΈ REST API: Calendar
- β³ πΏ REST API: Software
- β³ π¦ REST API: Service Status
- β³ βοΈ REST API: Morning Checks
- β³ π REST API: Forms
- β³ βοΈ REST API: Workflow
- β³ πΊοΈ REST API: Network Mapper
- β³ π§ Using the API docs page
- β³ π OpenAPI specification
- β³ β OpenAPI: kept correct
- β³ π οΈ Maintaining the catalogue
- Watchtower
-
Tickets
- β³ Mailbox Authentication
- β³ π€ Email send log
- β³ Basic IMAP mailboxes
- β³ Email rendering & images
- β³ SLA Management
- β³ WhatsApp channel
- β³ π¬ Web chat channel
- β³ π£ Slack channel
- β³ π Linking tickets
- β³ ποΈ Canned responses
- β³ βοΈ Limiting replies to particular senders
- β³ βοΈ Email signatures
- β³ π The public web address
- β³ π Raising a ticket for someone else
- β³ π Merging tickets
- β³ β Splitting tickets
- β³ β Selecting several tickets
- β³ π οΈ Snoozing tickets β Developer Guide
- β³ π₯ Collision detection
- β³ β±οΈ Time tracking
- Problem Management
- Tasks
- Assets
- Knowledge
- Change Management
- Calendar
- Morning Checks
- Reporting
- Software
- Forms
- Contracts
- Service Status
- π Notifications
- π¨ War Room
- Self-Service Portal
- LMS
- Process Mapper
- CMDB
- Network Mapper
- Workflows
- Issue trackers (Jira, Azure DevOps)
- System
-
Overview
- β³ π Progress tracker
- β³ Concepts & vocabulary
- β³ Email routing & mailboxes
- β³ Settings: global vs per-company
- β³ Users & self-service
- β³ Staff cross-company access
- β³ Worked examples
- β³ Pitfalls & gotchas
- β³ Scope: what it's for
- β³ π οΈ Developer Guide (make a module multi-company)
- β³ ποΈ Case study: CMDB (a linked graph)
- β³ π§ͺ Test harness (prove it's isolated)