Generating Macros & Canned Responses
Every support team builds a library of canned responses -- "macros" in Zendesk, "saved replies" in Intercom, "templates" everywhere else. Good macros dramatically speed up common replies. Bad macros sound robotic and get complained about in CSAT surveys. AI helps you write and maintain a macro library that actually sounds human and stays fresh.
What You'll Learn
- How to generate a complete macro library with AI in a single session
- Writing macros with variables that feel personal, not templated
- How to audit and refresh your existing macros
- Common macro mistakes AI helps you catch
Why Macros Matter
If you send a version of the same response 20 times a week, you need a macro. Without one, you're retyping. With a bad one, every customer feels like they got a form letter. The goal is a library of macros that:
- Cover the top 80% of incoming tickets
- Read like a human typed them fresh
- Use variables (
{{first_name}},{{order_id}}) for personalization - Get reviewed and refreshed quarterly
Most teams don't have this. They have 120 outdated macros written by three different people in three different voices over five years. AI can fix that in an afternoon.
Generating a Macro Library From Scratch
The workflow:
- Export your top 50 ticket subjects from the past 90 days (Zendesk, Intercom, Freshdesk all support this).
- Paste the list into Claude or ChatGPT with this prompt:
Here are our top 50 most common support ticket subjects. For each one, draft a macro/canned response following our brand voice (below). Each macro should:
- Start with a sentence acknowledging the customer's specific issue
- Use
{{first_name}}for personalization- Use
{{order_id}},{{plan_name}}, etc. where relevant- Include a clear next step
- End warmly
- Be under 120 words
Brand voice: [paste 3-5 sentences describing your voice]
Format: For each macro, give me a title (for the help desk), the body, and a list of variables used.
Ticket subjects: [paste list]
You'll get 50 drafts to review. Even if you keep only half and rewrite a quarter, you've just saved days of work.
Example Output
For a ticket subject "Can I change my email address?":
Title: Update Email Address
Body:
Hi {{first_name}},
Happy to help you update your email. You can change it yourself anytime under Settings -> Account, but if you don't have access to the current email, reply here with a photo ID and we'll update it on our end within one business day.
Let me know if you run into any trouble!
-- {{agent_first_name}}, {{company}} Support
Variables: first_name, agent_first_name, company
Variables That Feel Personal
The trick to making macros feel handwritten is heavy use of variables plus at least one sentence that responds to the specific ticket.
Variable ideas beyond the basics
{{first_name}}(always){{order_id}}or{{ticket_id}}{{plan_name}}for SaaS{{last_interaction_date}}("It's been a while since we spoke!"){{agent_first_name}}(your own name in the sign-off){{days_with_us}}("Thanks for being a customer for{{days_with_us}}days!")
Prompt AI to suggest variable placement:
Review this macro and suggest where to add personalization variables to make it feel less templated. Return the revised macro with variables in place.
Always leave one sentence for customization
A smart pattern is to include {{open_line}} as a variable at the start of your macro -- a place where the agent types one custom sentence tied to the specific ticket. Customers feel the personal touch even when the rest is canned.
Auditing Your Existing Macros
If you already have 80 macros of mixed quality, AI can audit them:
Below are our existing customer support macros. For each one, tell me:
- Is the voice consistent with our brand? (Yes / No + why)
- Is it too long / too short / just right?
- Does it use personalization variables well?
- Would I be embarrassed to receive this as a customer? (Yes / No)
- Priority: Keep / Rewrite / Delete
Brand voice: [3-5 sentences]
[paste all macros]
You'll get a prioritized list: which ones are fine, which need rewrites, which are duplicates, which are obsolete.
Finding Macro Gaps
Also ask AI what's missing:
Based on these common support situations [paste list of ticket categories], here are the macros we currently have [paste titles]. What common scenarios do we NOT have a macro for? Suggest 10 new ones we should add.
This surfaces the scenarios where your agents are still typing from scratch and gives you a prioritized backlog.
Common Macro Mistakes AI Helps You Catch
Mistake 1: "Per our policy" language
AI can scan macros for corporate jargon:
Find any uses of phrases like "per our policy," "as stated," "unfortunately," "we value your feedback," or similar corporate phrases in these macros. List them with suggested rewrites.
Mistake 2: Missing an acknowledgement
Many old macros launch straight into the answer without a human opener. AI can fix this in bulk:
For each of the following macros, add an opening acknowledgement line that responds to the customer's likely feeling. Keep the rest of the body unchanged.
Mistake 3: Dead links or outdated steps
If your product's UI has changed, macros can reference buttons that no longer exist. Ask:
Here's our latest product UI description: [paste]. Here are our existing macros that reference UI steps: [paste]. Flag any macros with outdated UI references.
Mistake 4: Inconsistent sign-offs
Some macros end with "Best," others with "Cheers," others with "Regards." Small thing, but it reads as chaotic. Ask AI to standardize them all.
Branching Macros for Different Contexts
For complex tickets, you might want conditional macros. A single "Refund Request" macro can cover three cases:
Draft a single macro for refund requests that includes three conditional branches using
{{#if}}syntax:
- If within 30 days: offer a full refund
- If 30-60 days: offer store credit
- If over 60 days: offer troubleshooting first
Make the branches feel natural, not scripted. Each branch should have its own warm acknowledgement.
Zendesk, Intercom, and most help desks support conditional macros with simple syntax.
Quarterly Refresh
Set a quarterly calendar reminder: "Refresh macro library."
Each quarter:
- Pull CSAT scores by macro (most help desks support this).
- Flag any macro with below-average CSAT.
- Paste low-performers into AI with: "This macro is scoring below our average CSAT. Rewrite it to be more empathetic and specific. Keep all facts identical."
- Test the new version on next week's tickets.
- Promote the winner.
Over a year, your macro library becomes a finely tuned asset.
Key Takeaways
- Generate an initial macro library from your top 50 ticket subjects with one AI prompt
- Use heavy personalization variables plus one
{{open_line}}for agent customization - Audit existing macros with AI for voice, length, jargon, and dead links
- Every quarter, rewrite the macros that score lowest on CSAT
- Include conditional branches in complex macros so one template covers multiple scenarios

