Macros are one of the most effective tools for Zendesk administrators. They can support efficiency, consistency and shorter response times. At the same time, you often see macro lists that appear unmanageable: long, unorganised lists of macros that no one remembers any more, with outdated information and unclear names.
A macro can be a significant time-saving for a support organisation. It can also develop into a time-waster that creates confusion, errors and frustration for both agents and customers. The difference typically lies not in the technology, but in the discipline and strategy behind creation, maintenance and administration.
The article serves as a guide to creating clarity and structure in macros, with a focus on transforming macros from potential time-wasters into reliable time-savers.
Part 1: Macros that actually save time (green flags)
A good macro is targeted, easy to use and works reliably. Below are macro types that typically create value in day-to-day operations.
The effective welcome macro
When a new customer makes contact for the first time, a good first impression is important. A manual welcome message takes time, and the content can vary between agents.
What makes it good?
-
Personal: Uses placeholders such as
{{ticket.requester.name}}to personalise the greeting. - Informative: Confirms receipt, sets expectations for response time and can include a ticket number.
- Proactive: Can link to an FAQ or a getting started guide that answers typical questions from new customers.
Example:
Title: Welcome - New customer
Actions:
- Set status to: Open
- Add tag:
new_customer,welcome_sent- Public comment:
Hi
{{ticket.requester.name}},Welcome to [Your Company]! Your enquiry has been received, and we will follow up as soon as possible, typically within 24 hours on weekdays.
Your case number is
{{ticket.id}}, which can be used as a reference for later contact.While you wait, you may be able to find answers in our FAQ here: [Link to FAQ].
Kind regards,
{{current_user.name}}
The "Enquiry received" macro
For enquiries that do not require an immediate solution, but where an acknowledgement is relevant, this macro can save time. It ensures that the customer receives a confirmation without the agent having to formulate the same message repeatedly.
What makes it good?
- Standardised: Customers receive the same professional confirmation.
- Fast: The ticket is updated with a few clicks.
- Sets expectations: Can inform about current response times during high load.
Example:
Title: Response - Acknowledgement
Actions:
- Set status to: Pending
- Add tag:
acknowledgement_sent- Public comment:
Hi
{{ticket.requester.name}},Thank you for your enquiry. Your message has been received, and a specialist is looking at the case now.
We will follow up as soon as there is an update.
Kind regards,
{{current_user.name}}
The focused solution macro
This is a widely used macro type for recurring questions. The key is to be specific and keep the macro focused on a single problem.
What makes it good?
- Precise: Solves one specific and well-defined problem.
- Complete: Contains necessary information, links and step-by-step instructions.
- Concluding: Typically sets the ticket to Solved and asks whether the solution was satisfactory.
Example:
Title: Solution - Password reset
Actions:
- Set status to: Solved
- Add tag:
password,reset- Public comment:
Hi
{{ticket.requester.name}},Your password can be reset by following these steps:
- Go to the login page: [Link to login page]
- Click on "Forgot password?".
- Enter the email address (
{{ticket.requester.email}}) and click "Send".- You will receive an email with a link to create a new password.
Please note that the link expires after 60 minutes.
The case can be resumed if you experience any further problems.
Kind regards,
{{current_user.name}}
The internal escalation macro
Not all macros are customer-facing. Some of the most time-saving macros are those that streamline internal processes.
What makes it good?
- Internal: Set up to add only an internal comment.
- Automated: Automatically assigns the ticket to the correct group or person.
- Informative: Adds relevant tags and an internal note that provides context for the escalation.
Example:
Title: Internal - Escalate to 2nd level support
Actions:
- Assign to: Group: 2nd Level Support
- Set status to: Open
- Add tag:
escalation,2nd_level- Internal comment:
Hi team,
The ticket requires technical expertise beyond 1st level. The following has already been attempted: [basic troubleshooting step 1] and [basic troubleshooting step 2].
The customer is experiencing [brief description of the problem].
Kind regards,
{{current_user.name}}
Part 2: When macros do more harm than good (red flags)
A bad macro can create more problems than it solves. Below are typical macro patterns that often cause challenges.
Excessive "all-in-one" macros
A macro that tries to do everything at once can, for example, change organisation, add many tags, write a long comment, change priority, assign to a group and set the status to Solved.
Why is it harmful?
- Unpredictable: Small errors can have large and unexpected consequences (e.g. wrong organisation or premature closure).
- Inflexible: If individual actions are not relevant, it requires manual clean-up, which reduces the value of the macro.
- Hard to maintain: Process changes make complex macros difficult to update and test.
Red flag: If a macro has more than 5-6 actions, splitting it should be considered.
Outdated information
Prices, links and procedures change. A macro that was created several years ago may contain incorrect information.
Why is it harmful?
- Poor customer experience: Dead links or incorrect information create confusion and distrust.
- Wasted agent time: Errors have to be discovered, apologised for and corrected manually.
- Reduced trust in macros: Repeated errors mean agents stop choosing macros, and the system loses its effect.
Red flag: Macros with specific data (prices, dates, links, names) require a plan for ongoing maintenance.
Macros with an inappropriate tone
Macros written in haste or with a frustrated tone can be reused and reinforce a poor communication style.
Why is it harmful?
- Impersonal and cold: Phrases such as "As previously stated in our FAQ..." can seem dismissive.
- Passive-aggressive: Phrases such as "We have now, for the third time..." can escalate dissatisfaction.
- Damages the brand: Communication is part of the brand, and macros scale the tone broadly.
Red flag: Macros should be read through from the customer's perspective with a focus on a friendly, helpful and professional tone.
Macros that degrade data quality
Macros that add incorrect or inconsistent tags can affect data quality and reporting.
Why is it harmful?
-
Poor reporting: Different tags for the same problem (e.g.
login_errorandlogin_problem) give imprecise reports. - Difficult analysis: Dirty and inconsistent data make it difficult to draw meaningful conclusions.
- Hidden problems: Real trends can be overlooked if tagging is inconsistent.
Red flag: The tag structure should be reviewed regularly, and macros should follow a defined tag nomenclature.
Part 3: Effective maintenance of macros
Creating good macros is only part of the work. Maintenance is crucial to avoid decay in the macro library.
Quarterly "Macro Audit"
A fixed, quarterly review should be scheduled: a "Macro Audit". During the audit, the macro collection is critically reviewed.
Checklist for the Macro Audit:
-
Identify unused macros:
- Go to Admin > Macros.
- Sort by "Last used".
- Macros that have not been used in the last 6 months are candidates for deletion. Investigate the reason: an unclear name or redundancy.
-
Check for outdated content:
- Review the 20 most used macros.
- Test links for validity.
- Verify that information (prices, names, procedures) is still correct.
-
Analyse naming and structure:
- Assess whether names are intuitive and follow a logical convention.
- Assess whether macros are correctly grouped into categories.
- Identify macros with overlapping purposes that can be merged.
-
Gather feedback:
- Gather input from agents who use the macros daily: which macros work well, which create problems, and which are missing.
Naming and logical structure
A clear name is crucial for agents to be able to find and use the right macro. A simple naming convention could be:
Category - Action - Specific Detail
Examples:
Response - Acknowledgement - GeneralSolution - Reset - PasswordInternal - Escalation - BillingTask - Create - Follow-up
The structure makes it possible to quickly scan the list. The categories (Response, Solution, Internal, Task) group the macros logically.
Use of descriptions and categories
The "Description" field is often overlooked when creating macros. The description acts as the macro's manual and can be used to explain:
- When the macro should be used.
- What the macro does (e.g. "Sets the ticket to solved and adds a CSAT survey").
- Any prerequisites (e.g. "Make sure the customer's organisation is correct before use").
The category function in Zendesk can also be used to group related macros and make the list clearer.
Access management
Not all agents need all macros. A 1st level agent rarely needs macros that are specific to 2nd level support or billing.
Roles and macro categories can be used to manage access. Limiting the visible macros per role makes the list shorter and more relevant and reduces the risk of incorrect use.
Documentation outside Zendesk
Zendesk's description field is useful, but more comprehensive documentation can be valuable. A page in an internal wiki (Confluence, Notion, SharePoint, Google Docs) can document:
- The naming convention.
- A list of "approved" macros and their purpose.
- A guide for requesting a new macro.
This creates transparency and ensures a shared understanding.
Part 4: Templates for the most used macros
Below are copy-paste-ready templates for basic macro types. Templates should be adapted to your tone of voice and specific needs.
Template 1: First response to a common question
Title: Solution - [Topic] - [Brief Description]
Description: Used to answer questions about [topic]. Sets the ticket to solved and adds a relevant tag.
Actions:
- Set status to: Solved
- Add tag:
solved,[relevant_topic_tag]- Public comment:
Hi
{{ticket.requester.name}},Thank you for your question about [topic].
[Insert a clear, precise and easy-to-understand explanation here. Use lists and links to make it easy to read.]
Example:
- Step 1: Go to [link].
- Step 2: Click on [button].
- Step 3: Enter the details.
You can read more in the guide here: [link to guide].
Hopefully this resolves the problem. The case can be resumed if you have any further questions.
Kind regards,
{{current_user.name}}
Template 2: Request for more information
Title: Task - Request info - [Specific Info]
Description: Used when specific information is missing from the customer in order to proceed. Sets the ticket to pending.
Actions:
- Set status to: Pending
- Add tag:
awaiting_customer,missing_info- Public comment:
Hi
{{ticket.requester.name}},In order to help you as well as possible, we need some additional information.
We would like you to provide the following:
- [Specific information 1, e.g. "Your username"]
- [Specific information 2, e.g. "A screenshot of the error"]
- [Specific information 3, e.g. "The time the problem occurred"]
Once we have received the information, we will continue investigating the case.
Kind regards,
{{current_user.name}}
Template 3: Internal notification and assignment
Title: Internal - Assign and notification - [Department/Person]
Description: Assigns the ticket to [Department/Person] and adds an internal note about the context. For INTERNAL use ONLY.
Actions:
- Assign to: [Group or Agent]
- Set status to: Open
- Add tag:
internal_assignment,[relevant_tag]- Internal comment:
Hi
{{ticket.assignee.name}},The ticket has been assigned to you, as it concerns [specific subject area].
Brief summary:
- Customer:
{{ticket.requester.name}}- Problem: [Brief description of the problem]
- Preliminary action: [What has been done so far]
Kind regards,
{{current_user.name}}
Template 4: Closing a ticket due to inactivity
Title: Task - Close - Inactivity
Description: Used to close tickets that have been pending for more than X days without a response from the customer.
Actions:
- Set status to: Solved
- Add tag:
closed_inactivity- Public comment:
Hi
{{ticket.requester.name}},We are following up on your enquiry.
As we have not received a response within [number] days, the case has been closed on the assumption that the problem has been resolved.
If you still need help, you can create a new enquiry by replying to this email.
Kind regards,
{{current_user.name}}
Part 5: Common macro mistakes and how to avoid them
Even experienced agents can make mistakes. Below are typical pitfalls and ways to reduce the risk.
Mistake 1: Dynamic content that fails
Placeholders such as {{ticket.requester.name}} are useful, but if the data does not exist, the result can be empty fields or errors such as "Error: Unknown placeholder".
How to avoid it:
- Know the placeholders and which data they require.
- Test macros by creating a test ticket with minimal data and running the macro.
- Use conditional logic in advanced cases; for most macros, it is about ensuring that basic data (such as the requester name) is always present.
Mistake 2: Incorrect use of CC and followers
This is a classic and potentially serious mistake.
- CC (Carbon Copy): Adds a person as an external participant. The person can see all public comments and can reply.
- Followers: Adds a person as an internal participant. The person can see all comments (public and internal), but cannot reply unless the person is assigned the ticket.
How to avoid it:
- Golden rule: A customer should NEVER be added as a "Follower" in order to be kept informed internally. The customer does not receive notifications about public responses.
- An internal colleague should NEVER be added as a "CC" unless the colleague is explicitly meant to participate in the public dialogue. This can result in internal comments being accidentally sent to the customer if you do not switch from "Public" to "Internal".
- In macros, there should be a high level of awareness of whether a CC or a Follower is being added.
Mistake 3: An internal comment is sent by mistake
Macros may have been created with default text that explains the macro's function. If the text is not removed, and the macro is used with a public comment, internal text can end up with the customer.
How to avoid it:
- Train agents to double-check the comment field before "Apply".
- Consider two versions of complex macros: one clean public version and one internal version.
- Do not place default internal notes in the public comment field. Use the internal comment field for this.
Mistake 4: Conflicting actions
A macro can contain actions that conflict with each other or with Zendesk's rules, e.g.:
- Setting status to "Solved" and at the same time adding a "Follower".
- Setting status to "Solved" in a public comment, but having an internal comment that says "Needs further investigation".
How to avoid it:
- Keep macros simple and focused.
- Test macros thoroughly after creation or editing: run them on a test ticket and verify that actions are performed correctly, and that the ticket ends up in the correct state.
Conclusion: From time-waster to time-saver
Macros are not a solution that can be set up once and then ignored. They are living tools that require ongoing attention, maintenance and discipline. A well-managed macro library is a sign of a mature and efficient support organisation and can save time, ensure consistency, improve data quality and strengthen the customer experience.
A messy and outdated macro list, on the other hand, creates frustration, errors and wasted time for both agents and administrators.
The task for Zendesk administrators is to manage the macro collection. With a clear naming structure, regular audits, feedback from agents and a focus on simplicity and clarity, macros can be developed from a potential time-waster into a reliable and valuable time-saver.
It requires effort, but the investment can deliver a significant return in the form of more satisfied agents, more satisfied customers and cleaner data.