Log in
Free resource · No email wall

Support Macro Templates: 14 Copy-Paste Examples + a 3-Layer Framework That Doesn't Sound Robotic

A support macro template is a saved, variable-filled reply your helpdesk applies to common tickets in seconds. This page hands you a 14-macro starter library, a framework (Acknowledge → Resolve → Close the loop), and a 30-second rewrite rule that keeps every reply specific to the customer in front of you.

Used in support stacks built on Zendesk, Intercom, Freshdesk, Help Scout, Front, and Gorgias.

TL;DR

A support macro template is a saved, reusable reply your team applies to common tickets in seconds — but most macro libraries quietly turn agents into copy-paste robots. This page hands you a 14-macro starter library (refund, shipping, login, billing, bug, escalation, churn-save) and a 3-layer framework — Acknowledge → Resolve → Close the loop — that keeps macros human. We also give you the 70/30 rule for combining macros with a 30-second AI rewrite, so every reply stays specific to the customer in front of you.

What is a support macro template?

A support macro template is a saved, pre-written response your helpdesk automatically fills in — with the customer's first name, their order ID, the ticket subject, policy variables — so agents resolve repetitive tickets in 10 to 30 seconds instead of five minutes. Modern teams run macros inside Zendesk, Intercom, Freshdesk, Help Scout, Front, and Gorgias; the API surface differs but the concept is identical.

A macro is not a workflow rule (the if-this-then-that engine that assigns, tags, and routes tickets), and it is not a chatbot script (which fires without an agent in the loop). It is the human-written text an agent applies, edits if needed, and sends. That distinction matters: the productivity gains you see in the research literature come from macros that an agent still owns, not from autoreply queues.

The stakes are real. Salesforce's State of Service research found 78% of support agents struggle to balance speed and quality — and McKinsey's economic-potential analysis estimates generative AI can reduce customer-care function costs by 30–45%. A well-designed macro library is the cheapest first step toward both — but only if the macros themselves don't sound like a robot.

Original framework

The Macro Stack: the 3-layer framework every good macro follows

Every support macro that consistently resolves tickets without sounding canned is three stacked layers: Acknowledge, Resolve, Close the loop. Skip a layer and the reply reads like a form letter. Stack all three and a 30-second macro feels like a hand-written reply.

Why the order matters: the Zendesk 2026 CX Trends report found 74% of consumers get frustrated when they have to repeat information, and 85% of CX leaders say customers drop brands that can't resolve on first contact. The Acknowledge layer exists to prove you read the ticket; the Resolve layer exists to make first contact the last contact.

01 · Acknowledge

Acknowledge

Name the feeling, mirror the issue — one sentence, no caveats.

Hi {customer.first_name} — really sorry you've had to chase this down.

02 · Resolve

Resolve

The actual answer or next step, with named variables and a clear time-bound.

I've refunded ${order.total} back to your original card — it should land within 3-5 business days.

03 · Close the loop

Close the loop

What happens next + a low-friction reply path so the customer never has to dig.

Reply right here if it hasn't shown by Friday and I'll chase it personally — no need to open a new ticket.

Starter library · 8 categories + 6 bonus

14 copy-paste support macro templates

Steal these macros — every one structured as Acknowledge / Resolve / Close the loop, written in two voices (Formal SaaS and Warm DTC), with named variables called out for direct paste into your helpdesk. Toggle voice on any card. Tip — paste any of these into a free ZeroTwo chat and ask Claude or GPT-5 to rewrite it in your brand voice in two seconds.

Refund — approved

Acknowledge

Hi {customer.first_name}, thanks for the patience while we looked into refund #{ticket.id}.

Resolve

I've approved a full refund of ${order.total} on order {order.id}; the credit will appear on your original payment method within {policy.refund_window_days} business days.

Close the loop

Reply on this thread if it hasn't appeared by then and I'll escalate directly — no new ticket needed.

ID: refund-approvedCopy

Refund — denied (policy-bound)

Acknowledge

Hi {customer.first_name}, I read through your note and I understand why you're disappointed.

Resolve

Order {order.id} is outside our {policy.refund_window_days}-day refund window, so I'm not able to issue a cash refund. I can offer a one-time store credit of ${alternative.amount} as a goodwill gesture.

Close the loop

Reply 'yes' on this thread and I'll apply it within the hour. If you'd rather not, I'll close this out and you keep the order.

ID: refund-deniedCopy

Shipping delay / lost in transit

Acknowledge

Hi {customer.first_name}, sorry your order is running late — I've pulled up tracking on {order.id}.

Resolve

The carrier last scanned the package on {tracking.last_scan_date} at {tracking.last_scan_location}. I've opened a trace with them; if it hasn't moved within {policy.trace_window_days} business days, I'll either ship a replacement or refund in full — your choice.

Close the loop

Tracking link is here: {order.tracking_url}. I'll check back in by {followup.date} regardless.

ID: shipping-delayCopy

Login & password reset

Acknowledge

Hi {customer.first_name}, thanks for confirming the email on the account.

Resolve

I've triggered a password reset to {customer.email}. The link is single-use and expires in 60 minutes — if it doesn't show in your inbox within 5 minutes, please check spam.

Close the loop

If the reset still doesn't reach you, reply with a screenshot of the inbox search and I'll switch you to magic-link sign-in instead.

ID: login-resetCopy

Billing — unexpected charge

Acknowledge

Hi {customer.first_name}, I see the charge you're asking about on {transaction.date}.

Resolve

It's for {transaction.description} — ${transaction.amount} on the {plan.name} plan, billed on your normal {billing.cycle} cycle. Receipt is attached for your records.

Close the loop

If that doesn't match what you expected, reply here and I'll walk through your billing history line by line.

ID: billing-charge-questionCopy

Bug report acknowledged

Acknowledge

Hi {customer.first_name}, thanks for the detailed write-up on this — the screenshots helped.

Resolve

I've reproduced the issue on my end and filed it as {bug.id} with our engineering team. Current ETA for a fix is {bug.eta}; I'll keep this ticket open and update you as it moves.

Close the loop

In the meantime, the workaround is: {bug.workaround}. Reply here if that doesn't unblock you.

ID: bug-report-acknowledgedCopy

Escalation (warm hand-off to senior)

Acknowledge

Hi {customer.first_name}, I want to make sure this gets the attention it deserves.

Resolve

I'm handing your ticket to {agent.senior_name}, our {agent.senior_role}, who has full context already — I've shared every message in this thread so you won't need to repeat anything.

Close the loop

You'll hear from them within {policy.escalation_response_hours} business hours on this same thread.

ID: escalationCopy

Churn-save (cancellation intent)

Acknowledge

Hi {customer.first_name}, I see you started a cancellation — sorry to see you considering leaving.

Resolve

Before you go, two things: (1) I can offer {save.offer} on your next {save.cycle} if billing was the issue, and (2) if there's a feature or workflow that wasn't working for you, I'd genuinely like to know what we could fix.

Close the loop

Reply with either 'yes' to the offer, 'no thanks' to cancel cleanly, or tell me what wasn't working — I'll handle it from there.

ID: churn-saveCopy

+ Six bonus starter macros

Pass to sales

Acknowledge interest, route to sales rep, confirm SLA for first call.

Outage alert

Acknowledge known issue, link to status page, commit to follow-up window.

KYC verification

Explain why ID is needed, list accepted documents, give upload link.

Feature request acknowledged

Thank, log to product board, set expectation that you don't promise dates.

Refund follow-up

Confirm refund landed, ask if anything else was off, offer goodwill credit.

NPS auto-reply

Thank for the score, ask the one follow-up question that depends on score range.

So your library doesn't rot

Naming, taxonomy, and governance

Use the Audience > Topic > Action naming convention, assign one owner per category, and review every macro on a 90-day cadence. Intercom publishes the same convention in its own help docs — there is no need to invent a new one. The reason this matters: industry-standard first-contact resolution sits at 70–79%, and only 5% of contact centers achieve the "world-class" ≥80% mark. A rotting macro library is the silent reason FCR drops below that line.

01

Naming convention

Use `Audience > Topic > Action` — for example, `Customer > Billing > Refund-approved`. Intercom publishes the same convention.

02

Single owner per category

Assign one named owner (not a team) for each macro category. Owners get the auto-renewal Slack ping every 90 days.

03

90-day review cadence

Every macro is reviewed quarterly: still accurate? still on-brand? still being used? Anything below 5 uses per quarter gets archived.

04

Sunset rule

Macros with zero uses in 180 days are archived. They are not deleted — they live in an `_archived` folder for context.

05

Mandatory link to a knowledge-base article

Every macro that resolves a policy question links to the canonical KB article. If the KB changes, the macro updates with it.

06

Version on every change

Note the date and editor in the macro body comment. When the macro gets blamed for a bad reply, you'll know who shipped what when.

AudienceTopicActionFull name
CustomerBillingRefund-approvedCustomer > Billing > Refund-approved
CustomerShippingDelay-trace-openedCustomer > Shipping > Delay-trace-opened
CustomerAuthPassword-reset-sentCustomer > Auth > Password-reset-sent
CustomerRetentionCancellation-saveCustomer > Retention > Cancellation-save
InternalEscalationSenior-handoffInternal > Escalation > Senior-handoff

Editorial stance · proprietary to this page

The 70/30 rule: when to send a macro verbatim vs. rewrite with AI

Send the macro verbatim no more than 70% of the time. For the other 30% — anything emotionally charged, anything where the customer has clearly already escalated themselves, anything where a flat reply would feel hostile — run a 30-second AI rewrite. The evidence base for this comes straight from the Stanford and MIT field study of 5,179 customer-support agents at a Fortune 500 software company: novice agents lifted productivity 34% when an AI assistant was in the loop, and the experienced agents saw the AI disseminate the best-practice patterns of the top performers to the whole team.

"Access to the tool increases productivity, as measured by issues resolved per hour, by 14% on average, including a 34% improvement for novice and low-skilled workers but with minimal impact on experienced and highly skilled workers. We provide suggestive evidence that the AI model disseminates the best practices of more able workers and helps newer workers move down the experience curve."
— Erik Brynjolfsson (Stanford), Danielle Li (MIT Sloan), Lindsey R. Raymond (MIT). "Generative AI at Work," NBER Working Paper No. 31161 (2023).

Worked example · same ticket, two replies

The ticket: Customer says: 'My order #58241 was supposed to arrive yesterday for my daughter's birthday today. Tracking hasn't moved in 4 days. This is unacceptable.'

Shipping-delay macro — verbatim

Hi Emma, sorry your order is running late — I've pulled up tracking on 58241.

The carrier last scanned the package on May 17 at Dallas TX. I've opened a trace with them; if it hasn't moved within 3 business days, I'll either ship a replacement or refund in full — your choice.

Tracking link is here: https://track.example/58241. I'll check back in by Friday regardless.

Technically correct. Emotionally tone-deaf. The customer flagged a birthday — the macro doesn't acknowledge it.

Same macro + 30-second AI rewrite (Claude)

Hi Emma — I'm really sorry. A birthday gift not arriving is exactly the kind of miss we never want, and I want to make this right today, not Friday.

Tracking on 58241 last scanned May 17 in Dallas, which is unacceptable. I've already opened a carrier trace and I'm not going to wait the full 3-day window: I'm shipping a replacement overnight today at no charge, so it lands tomorrow. If the original then shows up later, keep it.

Your replacement tracking will come through within the hour. Reply right here if there's anything else I can do — and again, I'm sorry it landed on a birthday.

Acknowledges the birthday. Ships overnight today. Takes the next ticket off the queue before it arrives.

We ran this rewrite through ZeroTwo's side-by-side chat — pick any two models, paste the macro, and ship the better reply. Salesforce's State of Service report found AI-assisted reps spend 20% less time on routine cases — roughly 4 hours back per week. The 30 seconds you spend on a rewrite is the cheapest 30 seconds you'll spend all day.

Run any macro through 60+ models — free.

Drop a macro, get a tone-matched rewrite from Claude, GPT-5, Gemini, and 60 more — in one tab. No card.

Open ZeroTwo free →

The numbers behind the 70/30 rule

Sourced. Recent. Linked. Every claim on this page traces back to a peer-reviewed paper or a published industry report.

14%

average productivity lift for customer-support agents using generative AI, rising to 34% for novice and low-skilled agents — measured across 5,179 agents in a Stanford + MIT field study.

NBER WP 31161 — Brynjolfsson, Li, Raymond (2023)

30–45%

potential reduction in customer-care function costs from generative AI, per McKinsey's economic-potential analysis.

McKinsey — The economic potential of generative AI

20%

less time spent on routine cases by AI-assisted reps — roughly 4 hours back per week per agent.

Salesforce Sixth Edition State of Service

73%

of support agents say an AI copilot would meaningfully improve their work, and 90% of CX leaders see clear ROI from AI in the contact center.

Zendesk CX Trends Report 2026

74%

of consumers get frustrated when they have to repeat information — and 85% of CX leaders say customers drop brands that can't resolve on first contact.

Zendesk CX Trends Report 2026

78%

of support agents struggle to balance speed with quality of response — the exact tension a well-designed macro library is built to resolve.

Salesforce State of Service (2022)

How to install these macros in Zendesk, Intercom, Freshdesk, and Help Scout

In each platform, paste the macro body, map the variables to your data model, set a category, and assign an owner. The four-step install is the same shape on every helpdesk — only the variable syntax and admin path differ. Zendesk publishes its canonical Macros API reference if you'd rather automate the import.

Zendesk

Docs →
  1. 1Settings → Macros → Add macro. Title it `Audience > Topic > Action`.
  2. 2Paste the macro body. Map `{customer.first_name}` to `{{ticket.requester.first_name}}` and other variables to Zendesk's placeholders.
  3. 3Set the category, assign the owner in the description field, and tag it with the stack layer (`acknowledge`, `resolve`, `close`).
  4. 4Save, test on a sample ticket, and add to the team-shared view.

Intercom

Docs →
  1. 1Inbox → Macros → Create macro. Name it with the `Audience > Topic > Action` convention.
  2. 2Paste the body and map dynamic fields with Intercom's `{{first_name}}` syntax.
  3. 3Attach the macro to the relevant team inbox so the right people see it.
  4. 4Test on a sample conversation, then publish.

Freshdesk

Docs →
  1. 1Admin → Productivity → Canned Responses → New.
  2. 2Title the response and paste the macro body. Map variables to Freshdesk placeholders.
  3. 3Choose visibility: personal, group, or all agents.
  4. 4Save and test on a sample ticket reply.

Help Scout

Docs →
  1. 1Inbox settings → Saved Replies → New saved reply.
  2. 2Name with the `Audience > Topic > Action` convention and paste the body.
  3. 3Map variables to Help Scout's `{%customer.firstName%}` placeholders.
  4. 4Save, then test against a sample reply.

How ZeroTwo fits in

Turn your macro library into an AI-assisted workflow

ZeroTwo lets your team draft, rewrite, and tone-shift any macro across Claude, GPT-5, Gemini, Grok and 60+ other models from one place — so you keep your library lean and your replies specific to each customer. The Zendesk 2026 CX Trends Report found 73% of agents say an AI copilot would meaningfully improve their work and 90% of CX leaders see clear ROI from AI in the contact center. The workflow:

  1. 1Paste a macro from this page (or your own library) into a free ZeroTwo chat.
  2. 2Add the customer's last two messages so the model has the actual emotional context.
  3. 3Ask any of 60+ models to rewrite the macro in the customer's tone, or sharpen it, or soften it.
  4. 4Copy the result back into your helpdesk and send. Total time: 30 seconds.

Frequently asked questions

What is a support macro template (versus a canned response or a trigger)?
A support macro template is a saved, reusable reply your helpdesk fills in with customer data (name, order ID, ticket fields) so an agent can resolve a repetitive ticket in seconds. A canned response is the older term for the same thing — most platforms now use 'macro' interchangeably. A trigger is different: it's an automation rule that fires actions (assign, tag, route) when conditions are met. A macro is the reply; a trigger is the workflow that may or may not include sending one.
How many macros should a support team have?
Start with 14–20 macros covering your top ticket categories — the ones that make up 70–80% of inbound volume. Past 40, libraries get hard to search and agents fall back to typing replies from scratch. If your library is creeping past 40, the fix is almost always tighter taxonomy and a 90-day archive cadence, not more macros.
How do you write a macro template that doesn't sound robotic?
Use the Macro Stack: open with one sentence that acknowledges the customer's situation (Acknowledge), give the actual answer with named variables and a clear timeline (Resolve), then tell the customer what happens next and how to reply with one click (Close the loop). Skip the corporate openers ('We apologize for any inconvenience…'). Lead with a specific, human first line that names the issue. Then, on roughly 30% of tickets, run the verbatim macro through an AI rewrite to match the customer's tone — that's the 70/30 rule.
Should macros include personalization variables? Which ones?
Yes — every macro should pull `{customer.first_name}`, `{ticket.subject}`, `{order.id}`, and any policy-tied numbers like `{policy.refund_window_days}` dynamically. Customers who feel they're talking to a person, not a template, are dramatically more likely to mark a ticket resolved on first reply. The Zendesk CX Trends Report 2026 found 74% of consumers get frustrated when they have to repeat information — variables are how you avoid that.
How often should we review and update our macro library?
Every 90 days, with one named owner per category. The review checks four things: still accurate (does it match current policy?), still on-brand (does the tone reflect how you write now?), still being used (more than 5 uses per quarter?), and still linked (does the KB article it references still exist?). Anything that fails one of those gets edited; anything that fails two gets archived.
Can macros handle complex or multi-step issues, or only simple ones?
Macros work best for tickets where 60–80% of the reply is repeatable — refunds, shipping updates, password resets, billing questions, escalations. Truly novel or emotionally charged tickets should not be macroed; they should be hand-written, full stop. The Macro Stack is what lets you tell the difference: if you can't honestly write a one-sentence Acknowledge that fits more than one customer, the ticket needs a custom reply.
How does ZeroTwo help me write better support macros?
ZeroTwo lets you draft, rewrite, and tone-shift any macro across Claude, GPT-5, Gemini, Grok, and 60+ other models from a single chat — so when you're applying the 70/30 rule and a particular ticket needs a softer, sharper, or more technical voice, you can get three model rewrites side-by-side in seconds. Open a free chat and paste any macro on this page to try it now.
Are these macro templates free to copy and use commercially?
Yes — every macro on this page is free to copy, adapt, and ship in any helpdesk you use. No attribution required (though it's appreciated). The 14 starter macros, the Macro Stack framework, and the governance checklist are published here precisely so support teams can lift them into Zendesk, Intercom, Freshdesk, Help Scout, Front, or Gorgias without rebuilding from scratch.

Key takeaways

  • 01A support macro template is a saved, variable-driven reply your helpdesk fills in so agents resolve repetitive tickets in seconds, not minutes.
  • 02The Macro Stack — Acknowledge → Resolve → Close the loop — is the 3-layer framework that keeps macros human and gets used on this page in every starter macro.
  • 03Steal the 14-macro starter library (refund, shipping, login, billing, bug, escalation, churn-save) in formal-SaaS and warm-DTC voices.
  • 04Govern with `Audience > Topic > Action` naming, one owner per category, and a 90-day review cadence — past 40 macros, taxonomy beats volume.
  • 05Apply the 70/30 rule: ship the macro verbatim 70% of the time, run it through a 30-second AI rewrite the other 30% so every reply stays specific to the customer.

Written by

The ZeroTwo Editorial Team

Customer-support operators and applied AI engineers who ship macro libraries against Zendesk, Intercom, Freshdesk, and Help Scout every week. Claims on this page are audited against NBER Working Paper 31161, the Zendesk CX Trends Report 2026, and Salesforce's State of Service.

Published · Updated

Ship better support replies today.

60+ models, one subscription, free to start. No card. Drop any macro on this page into ZeroTwo and rewrite it to match the customer in front of you in 30 seconds.