Skip to main content
Page guide

Macros

Saved replies agents drop into a ticket in one click, with values filled in from the ticket, and one-click actions like "Close as solved" that set the status, priority, assignee, team, type or topic.

Admin › Tickets › Macros holds the replies your team sends again and again, like password reset steps or "we've ordered the part". An agent picks one in the reply box instead of typing it. A macro can also change the ticket, so a single click can close it as solved.

You need Manage helpdesk settings (tickets_admin.manage) to open this page, and to create, edit or delete a macro. Agents don't need it to use one: anyone who can work tickets picks macros in the reply box.

The Macros list, with action chips on a macro
The Macros list, with action chips on a macro

The list#

Search macros... looks in the name, description and text. Filter by Category, Inserts as (a public reply or an internal note) or Source (System or Your account). Select a column heading to sort by it, and Columns to show, hide or reorder columns.

  • Name, with its description (or the start of its text) under it. Macros marked System come with schoolOS and can't be edited or deleted.
  • Category.
  • Inserts as. Public reply, Internal note, or No reply for a macro that only sets things.
  • Sets. Chips for what it sets, like Status → Solved.

Select a row to edit it. The … menu at the end of a row holds Edit and Delete. Deleting asks you to confirm and can't be undone.

Add or edit a macro#

Select New macro, or select a row.

The New macro dialog with content, variables, Insert as and When used, also set
The New macro dialog with content, variables, Insert as and When used, also set
  • Name. What agents pick it by, like "Password reset instructions".
  • Category. Account Access, Hardware, Network, Printing, Software or General. Only groups the list.
  • Description. Optional: when to use it.
  • Content. The reply text. Leave it empty for a macro that only sets things.
  • Insert as. Public reply (the requester sees it) or Internal note (staff only). Picking the macro switches the reply box to that one.
  • When used, also set. See below.

A macro needs a name, and either content or something it sets. Select Create macro, or Save changes.

Variables#

Type {{ in Content, or select Insert variable, to add a value filled in from the ticket: the requester's first name, the ticket's number, subject or status, the linked device's serial number, the agent using the macro, your account's own fields and more. Variables lists them all.

  • A fallback says what to write when there's no value: {{requester.first_name | "there"}}.
  • Public replies leave out staff-only variables, like the latest internal note. Switch Insert as to Internal note to use them.
  • Preview with… fills the macro in for a ticket you enter, so you can read it as the requester will.
  • A warning under Content names any variable that won't fill: a typo, or a field that was deleted.

Macros written with the first four variables ({{requester_name}}, {{ticket_number}}, {{ticket_subject}} and {{agent_name}}) keep working.

When used, also set#

  • Department. Every department, or one. Status, priority, team and topic come from a department's own lists, so to set any of them, pick the department first. A macro for one department only shows on that department's tickets. Changing the department clears the choices that belonged to the old one.
  • Status, Priority, Assignee, Team, Type and Topic. Pick a value, or Don't change. Assignee can be Me (whoever uses it). Type is the same four everywhere, so it needs no department. Topic searches the department's tree by any part of a topic's path.

With content, these apply when the agent sends the reply. With no content, picking the macro applies them at once: a one-click "Close as solved".

Which should I choose?#

| Choice | Choose it when | | --- | --- | | Public reply | The text is for the requester: steps to follow, "we've ordered the part". | | Internal note | The text is for your team: a checklist for the tech, "Checked warranty, sent to vendor". | | Content and settings | The reply and the change go together: send the password steps and set the ticket to a Pending status to wait for the requester. Nothing changes until the agent sends. | | Settings only, no content | A one-click action with nothing to say, like "Close as solved" or "Send to Facilities – HVAC". It applies the moment the agent picks it. | | Every department | The macro only sets things every department shares, or nothing at all: a thank-you, a "please send a photo". | | One department | It sets a status, priority, team or topic. Those belong to one department, so it can only show on that department's tickets. |

For example, a district IT team makes "Chromebook screen – sent for repair": a public reply, "Hi {{requester.first_name | "there"}}, we've sent your Chromebook ({{asset.tag}}) for a screen repair. Ticket #{{ticket.number}} will update when it's back.", for the IT department, setting the status to "Waiting on vendor" and the team to Device repair. One pick and one send, and the ticket is answered, parked and with the right team.

A macro follows the same rules as a person. If you require a resolution summary, a macro that solves a ticket that doesn't have one is refused.

How agents use a macro#

In a ticket's reply box, the macro button lists the macros for that ticket's department, plus those for every department. Picking one puts its text in the box, with its variables filled in from the ticket, to edit before sending. The box switches to a public reply or an internal note, as the macro's Insert as says. A variable with no value, like {{assignee.name}} on an unassigned ticket, is left blank, or shows its fallback.

Macros only run when an agent picks one. To change tickets on their own when something happens, use a workflow.

Was this article helpful?

Updated October 20, 2026