Key takeaways
- Write one canned response per moment, not per topic. “Refund approved” and “Refund declined” are two different replies.
- Every template needs a placeholder that forces the agent to read the ticket, a name, an order number, the problem in the customer’s own words.
- Pair every “no” with an option. A refusal with nothing after it is the message that gets screenshotted.
- Give a real deadline or none at all. “As soon as possible” is what customers come back to complain about.
- Audit the library quarterly against real conversations. Anything typed by hand twice belongs in it; anything unused in three months goes.
You have typed “sorry about the delay with your order” more times than you can count. So has everyone else on your team, slightly differently, which is the real problem.
Below are 120 canned responses to lift straight into your help desk: 107 live chat snippets across 14 moments in a conversation, plus 13 full email and ticket templates with subject lines. They cover greetings, order tracking, shipping delays, refunds, returns, out-of-stock items, discount codes, apologies, angry customers, saying no, after-hours cover and closing.
Copy one, swap what’s in the brackets, send.
Handle live chat, email and tickets from one Tidio inbox
What are canned responses?
A canned response is a pre-written reply an agent saves once and inserts whenever the same question comes round again. They pick it, edit the details that change (name, order number, dates) and send. Canned messages, canned answers, saved replies, quick replies and macros all mean the same thing.
They are not auto-replies. An auto-reply fires on a trigger with nobody reading it. A canned response is chosen by a person who has read the message and judged it the right answer. Which is the whole reason canned responses don’t have to sound canned.
How to use these templates
Every template below uses square brackets for anything you must change:
| Placeholder | What to swap in |
|---|---|
| [Customer name] | First name only, spelled the way they spell it |
| [Agent name] | The name customers see, not your internal handle |
| [Company] | Your store or brand name |
| [order number] | The full reference, including any prefix |
| [ticket number] | Your help desk’s reference for the conversation |
| [issue] | The problem in the customer’s own words, not your category name |
| [timeframe] | A real deadline: “by 5pm Friday”, never “soon” |
| [amount] | The figure and the currency |
| [link] | The exact page, not your homepage |
| [refund/store credit/exchange] | Pick one, delete the rest |
Three things to change before you send:
- The deadline. If you can’t hit the time a template promises, change the number, don’t delete the promise.
- The register. These read the way a small team talks. If your brand is more formal, lengthen the greeting and sign-off and leave the middle alone.
- One specific detail. Name the product, the date, the error message. A reply with nothing specific reads as a form letter even when it isn’t.
And one rule on when not to use a template: if you can’t tell what the customer is asking, don’t send anything canned. A confident answer to the wrong question is worse than a slow one.

107 canned response examples by scenario
The groups run in conversation order. These are one-line snippets; where you want longer, full-conversation wording for the same moments, our live chat scripts library sits alongside this one.
7 greeting and welcome canned responses
Works in: live chat
The first message sets how much work the customer thinks they’re in for. Say who you are and ask one question they can answer in a line. Never open with a menu.
First hello
Hi [Customer name], thanks for stopping by [Company]. I’m [Agent name]. What can I help you with today?
Returning customer
Welcome back, [Customer name]. Your last order [order number] arrived on [date], is this about that one, or something new?
Proactive on a product page
Hi, I’m [Agent name] from [Company]. If you have a question about [product], sizing, delivery, anything, I’m right here.
Visitor stuck at checkout
Hi [Customer name], I can see checkout is giving you trouble. Tell me what you’re seeing on screen and I’ll sort it from my side.
Chat opened with no message
Hi, you’re through to [Agent name] at [Company]. Type whatever you need, a half-question is fine, I’ll work the rest out.
Greeting in the customer’s language
¡Hola, [Customer name]! I’m [Agent name]. I can help in English or Spanish, whichever is easier for you.
Busy-hour greeting
Hi [Customer name], thanks for waiting. I’m [Agent name] and I’ve got your chat now. What’s happening with [issue]?
Tip: Keep two or three greetings and let the trigger pick. A proactive chat on a product page needs a different opener from one on the returns page, and multilingual support needs one per language.
7 acknowledgment canned responses
Works in: live chat · email
An acknowledgment buys time only if it contains a number. “We’ll get back to you soon” buys nothing. Say what you’ve read and when you’ll be back.
Confirming you’ve read it
Thanks [Customer name], I’ve got your message about [issue]. Give me [timeframe, e.g. “two minutes”] to pull up your account and I’ll come back with a proper answer.
When you need to research
I’ve read everything you sent, [Customer name]. This one needs a real look rather than a quick guess. I’ll have an answer for you by [timeframe].
Acknowledging a long message
Thanks for laying it all out, [Customer name], that saves us a round trip. So I’ve got it right: [one-line summary of the issue].
When it’s not your area
Got it, [Customer name]. [Department] handles [issue] and they’re faster at it than I am. Let me bring them in.
Ticket received by email
Thanks for writing in, [Customer name]. Your ticket is [ticket number] and I’m on it now. You’ll hear from me by [timeframe].
Second contact about the same thing
I can see you wrote to us on [date] about [issue], [Customer name]. Sorry you’ve had to chase. I’m picking it up now and I’ll stay on it until it’s closed.
Out of your depth, staying with them
This is a new one for me, [Customer name], and I’d rather check than guess. Give me [timeframe] with our [Department] team and I’ll come back either way.
7 canned responses for asking questions
Works in: live chat · email
Two jobs: getting the detail you need, and proving you understood before you act. Ask for one thing at a time and say why, people hand over an order number faster when they know what it unlocks.
Asking for details
Asking for an order number
Happy to look into that, [Customer name]. What’s the order number? It starts with [prefix] and it’s at the top of your confirmation email.
Verifying the account
I can make that change for you. For security I need [info needed] first, same detail you used when you signed up.
Asking for a screenshot
A screenshot would save us both a few messages. Grab one of the whole window including the address bar and drop it into the chat.
Asking what they’ve tried
Before I send you round in circles. What have you already tried? I’ll skip straight past it.
Confirming you understood
Reading it back
Let me check I’ve got this: you ordered [item], received [wrong item], and you’d like [refund/replacement]. Is that right?
Narrowing it down
Two things could cause this. Is it happening every time, or only when you [specific action]?
Confirming the outcome they want
So the result you want is [outcome], not [alternative outcome]. Tell me if I’ve got that the wrong way round.
8 canned responses for holds and status updates
Works in: live chat · email
Silence is what makes a wait feel long. 63% of customers say their demand for greater transparency has risen compared with a year ago (Zendesk CX Trends, 2026). And an update with no news still counts, as long as it lands when you said it would.
Asking to hold
I need [timeframe, e.g. “about three minutes”] with our [Department] team to get you a straight answer rather than a guess. Stay with me?
Coming back from a hold
Thanks for holding, [Customer name]. Here’s where we are: [status]. Next step is [action], and that happens by [timeframe].
The hold is running long
This is taking longer than I said it would. Two options: stay with me for another [timeframe], or leave me your email and I’ll write the moment I know.
Queue is long
You’re number [position] in the queue, so about [timeframe]. If you’d rather not wait, leave your question here and I’ll answer by email.
Promised update with no news
No news yet on [issue], [Customer name], but I said I’d update you at [time], so here I am. Next check-in is [timeframe].
Status of an open ticket
Your ticket [ticket number] is with [Department] and it’s marked [status]. Realistically you’ll have an answer by [date].
A fix is on the way
Our engineers have reproduced [issue] and the fix ships on [date]. Until then, [workaround] will keep you moving.
Nothing to report but a date
7 transfer and escalation canned responses
I don’t have a fix for you today, [Customer name], and I won’t pretend otherwise. What I do have is a date: [date]. I’ll write to you then either way.
Works in: live chat
Nobody minds being transferred. They mind explaining it all again. Say who is taking over, why they’re better placed, and that the history goes with them.
Handing to a specialist
[Agent name] on our [Department] team knows [issue] far better than I do. I’m bringing them in now. They can see everything we’ve said, so you won’t have to start again.
Escalating to a manager
I’d like my manager [Agent name] to look at this with me. They’ll be with you in [timeframe] and they’ll have read the whole thread first.
Transfer with a summary
Passing you to [Department] now. Here’s the summary going with you: [one-line summary]. Correct me if I’ve missed anything.
Escalating a bug
This is a genuine bug, not a setting. I’m raising it with our engineers as [ticket number] and I’ll own it until it’s closed.
They asked for a manager
That’s fair, [Customer name]. My manager is [Agent name] and I’m asking them to take this over. They’ll reply by [timeframe].
Nobody available right now
The person who can approve this is [Agent name], and they’re back at [time]. I’ve written your case up so they can act on it first thing rather than read it first thing.
Warm handoff to phone
This is five minutes on a call and half an hour in chat. Can [Department] ring you on [phone number] at [time]?
Tip: Build the summary line into the template rather than trusting it to happen. A clear escalation path fails at exactly this point.
8 troubleshooting and self-service canned responses
Works in: live chat · email
Troubleshooting templates end in an instruction, not a theory. One step, ask what happened, next step. And when you send a help article, send the paragraph, not the homepage.
Troubleshooting
First step
Let’s start with the quickest fix: [step]. Tell me what happens after you try it.
Step by step
Three steps, in this order: 1) [step], 2) [step], 3) [step]. Tell me where it stops behaving and we’ll pick it up there.
Known issue
You’ve hit [issue]. You’re not the first today, and it isn’t anything you did. The fix ships on [date]; until then, [workaround] works.
Can’t reproduce it
I’ve tried [issue] on [device/browser] and it works my side, which means something specific to your setup is causing it. Send me [info needed] and I’ll match your conditions exactly.
Offering to do it for them
I can do this from my side in about [timeframe] if you’d rather not click through it yourself. Say the word and I’ll start.
Sending a help article
Linking a guide
[link] walks through [task] with screenshots. Start at step [number]. You’ve already done the ones before it.
Link plus the short version
Short answer: [one-line answer]. Longer version with the screenshots, if you want to see it done: [link].
Pointing to a video
There’s a [duration] video that shows this better than I can describe it: [link]. I’ll stay in the chat while you watch.
Tip: These are the best candidates to hand to an AI agent: repetitive, one correct answer, and the answer already sits in your knowledge base, the pattern self-service is built on. Service teams put about 30% of cases with AI today and expect that to reach 50% by 2027 (Salesforce State of Service, 7th edition, November 2025).

8 order status and tracking canned responses
Works in: live chat · email
“Where is my order” is the most repetitive question in e-commerce support and the one most often answered badly. Give the carrier, the last scan and the date in one message, or they’ll ask again tomorrow.
Order confirmed
Order [order number] is confirmed and being packed now. It leaves us on [date] and your tracking link lands in your inbox the moment it does.
Where is it right now
[order number] left our warehouse on [date] and it’s with [carrier]. Latest scan: [location] on [date]. Delivery is still on for [date].
Tracking not updating
Tracking for [order number] hasn’t moved since [date]. Nine times in ten that’s a missed scan rather than a lost parcel. I’ve asked [carrier] to confirm and I’ll come back by [timeframe].
Changing the address
I can change the address on [order number] because it hasn’t shipped yet. Send me the full new address and I’ll update it while we’re talking.
Too late to change the address
[order number] is already with [carrier], so I can’t change it from here. But you can, on [carrier]’s redelivery page: [link]. Do it before [time] today and it’ll catch the parcel.
Split delivery
Two items on [order number] ship on different dates: [item] on [date], [item] on [date]. You’ll get two tracking numbers rather than one, so don’t worry when the first parcel looks short.
Delivered but not received
[carrier] marked [order number] delivered at [time] on [date] to [location]. Worth checking [common place] first, if it’s not there, tell me and I’ll open a claim today rather than tomorrow.
Guest checkout, no account
No account needed: [order number] plus the postcode on the order will pull it up here, [link].
Tip: Automate this group first. Tidio’s Shopify order status integration lets the Lyro AI agent verify the shopper, pull live fulfillment and tracking data from Shopify and answer in the chat. So agents only see the orders that have actually gone wrong.
8 shipping delay and lost parcel canned responses
Works in: live chat · email
Bad news travels better with a decision attached. Give the new date and the way out of it in the same message. Most people take the date; the ones who can’t were going to ask for a refund anyway.
Delay you know about
[order number] is running [number] days late because [reason]. The new delivery date is [date]. If that’s too late to be useful, say so and I’ll refund [amount] today instead.
Delay with no new date
I don’t have a new date for [order number] yet, and I’d rather say that than invent one. I’m chasing [carrier] and I’ll write to you by [timeframe] whether or not I have news.
Weather, strike or closure
[carrier] has paused deliveries in [area] until [date]. Your parcel is safe, it’s just parked. I’ll email you the moment it moves.
Lost in transit
[order number] hasn’t scanned since [date], so I’m treating it as lost rather than making you wait it out. Replacement or refund. Which would you rather?
Damaged on arrival
That’s not how it should have arrived, and I’m sorry. Send me a photo of the item and the box, and I’ll have a replacement on its way to you by [date].
Wrong item sent
We sent the wrong thing, and that’s on us. Your [correct item] ships today and should reach you by [date]. Keep the wrong one or send it back with the free label in your email. Whichever is less hassle.
Missing item from an order
[item] is missing from [order number]. I’ve checked the packing weight and you’re right. It ships today and I’ll send tracking within [timeframe].
Customs hold
[order number] is held at customs in [country] and needs [document] before it moves. Here’s the form and where to send it: [link]. Most parcels clear within [timeframe] after that.

8 refund, return and exchange canned responses
Works in: live chat · email
Returns are not an edge case: retailers told the National Retail Federation they expected 15.8% of annual sales back in 2025, and 19.3% of online sales[1] (2025 Retail Returns Landscape). Write these as if a fifth of your customers will read one, because they will.
Approving a refund
Refund approved
Refund approved, [Customer name], [amount] back to the [payment method] you paid with. Banks take [timeframe] to show it, so don’t worry if it isn’t there tomorrow.
Partial refund
I can refund [amount] for [reason] and you keep the item. That lands in your account within [timeframe]. Does that work for you?
Refund plus an apology
Refunding [amount] now, and I’ve added [store credit/discount code] for the trouble. You don’t need to send anything back.
Returns and exchanges
Return instructions
Your return label for [order number] is on its way to your inbox. Drop it at any [carrier] point by [date] and your refund goes out the day it reaches us.
Exchange for a different size
I’ve put [item] in [size] aside in your name until [date]. Send the original back with the label in your email and the new one ships as soon as yours is scanned.
Return outside the window
You’re [number] days past our [number]-day window, but the item is unused, so I’m making an exception this once. Label’s in your inbox.
When you have to say no
Refund declined, with options
I can’t refund [item], because [reason]. What I can do is [repair/replace/store credit], tell me which is most useful and I’ll start it now.
Final sale item
[item] was a final-sale item, so a refund isn’t something I’m able to do. I can offer [store credit/exchange] instead, which is usually the better deal anyway. Want me to set that up?
Tip: Keep the refund window, carrier and processing time in one snippet and paste it into every template here, when the policy changes you edit one paragraph instead of eight. Your public return policy should use the same wording; customers do compare.

7 out-of-stock and cancellation canned responses
Works in: live chat · email
An out-of-stock message with no alternative is a lost sale. Give three ways forward (wait, be told, or buy something else) and let them pick.
Out of stock
[item] is out of stock until [date]. I can hold one for you, email you the minute it lands, or point you at [alternative item], which is in stock now and [difference].
Backorder with a date
[item] is on backorder and we expect it on [date]. Your card isn’t charged until it ships, and you can cancel any time before then.
Backorder with no date
I don’t have a restock date for [item], and going on the last few, it’s usually [timeframe]. Want me to refund you now and tell you when it’s back?
Discontinued
We’ve stopped making [item]. The closest thing we have is [alternative item], the difference is [difference]. Here it is: [link].
Canceling before dispatch
Canceled. [order number] won’t ship and [amount] goes back to your card within [timeframe]. Nothing else for you to do.
Too late to cancel
[order number] is already with [carrier], so I can’t stop it in transit. Refuse it at the door, or use the free return label in your email, either way you get [amount] back.
Canceling a subscription
Your subscription is canceled and you keep access until [date]. No renewal, no charge. If you’d rather pause than cancel, I can do that instead, just say.
8 pricing, discount and upsell canned responses
Works in: live chat · email
Price questions are sales conversations. Answer with the number first, justify it second, and never make someone ask twice for a figure that’s on your website.
Pricing questions
What it costs
[product] is [amount], and that includes [what’s included]. The full price list is here: [link], nothing hidden underneath it.
Why it costs that
[product] is [amount] because [reason, e.g. “it’s made in batches of 40 in [place]”]. If that’s over budget, [alternative] does most of the same job for [amount].
Asking for a discount
I can’t discount [product] today. What I can tell you is that it goes into the [season] sale on [date], and I’ll email you the moment it does if you want.
Discounts
Discount code that won’t work
[code] expired on [date], which is why checkout is rejecting it. Use [new code] instead. I’ve just created it and it works until [date].
First-order code
[code] takes [percentage] off your first order and runs until [date]. Enter it at checkout under “discount”. It won’t apply on its own.
Price dropped after they bought
[item] dropped to [amount] on [date], [number] days after you paid. I’ve refunded the difference, [amount] back to your card within [timeframe].
Upsell and cross-sell
Pairing an add-on
Since you’re getting [item], [add-on] is worth the [amount]. It’s the thing that stops [common problem]. Want me to add it before I close the order?
Moving up a tier
Going on your usage, [plan name] would work out [amount] cheaper a month than what you’re on now. Want me to switch you over and prorate this month?
Tip: Put the expiry date in the template, not just in the code. Most “my discount code doesn’t work” chats are codes that expired last week.

8 apology canned responses
Works in: live chat · email
A good apology names the thing, skips the explanation and arrives attached to an action. “We apologize for any inconvenience caused” does none of that. For serious cases, our apology letter to customers guide has the longer structure.
You got it wrong
I gave you the wrong information about [issue] earlier. The correct answer is [correct info]. That was my mistake. Here’s what I’m doing about it: [action].
The company got it wrong
We charged you twice for [order number]. [amount] is going back to your card now and you’ll see it within [timeframe]. Sorry for the scare.
Late reply
You wrote on [date] and nobody came back to you. That isn’t good enough and I’m sorry. I’ve got it now and I’ll have an answer by [timeframe].
Broken promise
We said [promise] and it didn’t happen. I’d rather fix it than explain it: [action] is under way and it’s done by [date].
Repeat problem
This is the [number] time this has happened to you, which is [number] too many. I’ve flagged your account so it comes straight to me from now on, and [action] should stop it recurring.
Apology with compensation
Sorry, [Customer name], [issue] was our error. I’ve credited [amount] to your account and it’s there now. The underlying problem was fixed on [date].
Apologizing for a colleague
I’ve read the chat from [date] and you were right to be annoyed. I’m sorry that’s how we handled it. Let me take [issue] where it should have gone in the first place.
When you can’t undo it
I can’t undo [issue], and I’m sorry. That’s the honest answer. What I can do is [action] or [action]. Which would you rather I started with?
8 canned responses for angry customers and difficult requests
Works in: live chat · email
This is where a badly written template does the most damage. Never argue the detail, never quote policy without an option after it, and get to something concrete inside three messages, 85% of CX leaders say customers will drop brands over unresolved issues, even on the first contact (Zendesk CX Trends, 2026). For the de-escalation itself, see how to deal with angry customers.
Angry customers
Taking the heat
You’ve every right to be annoyed, [Customer name]. Let me deal with the actual problem: [issue]. I’ll have something concrete for you within [timeframe].
Slowing it down
I want to fix this properly rather than quickly. Send me the order number and one line on what went wrong, and I’ll take it from there.
Threatening to leave
I’d rather keep you than win the argument, [Customer name]. Here’s what I can do today: [option] or [option]. If neither is enough, I’ll close the account myself and refund [amount].
Saying no without losing them
Out of policy
[request] isn’t something our policy allows, and I’d be lying if I told you otherwise. The nearest thing I can do is [alternative], would that help?
Escalating for an exception
[request] is outside what I can approve, but it isn’t outside what [Department] can. Give me until [timeframe] and I’ll come back with a yes or a no, not a maybe.
They’ve asked before
I know you’ve asked before, and the answer hasn’t changed: [request] isn’t something we do. What has changed is [alternative], which is new since [date].
Feature requests
Logging a request
That’s a fair ask. I’ve logged [request] with our product team as [ticket number] with your notes attached, and I’ll tell you if it gets picked up.
Declining a feature
[request] isn’t on our roadmap, so I won’t string you along. [workaround] gets most of the way there, want me to set it up with you now?
Tip: Write the “no” templates with your manager in the room and agree the exception rule in advance. Every one should name the alternative an agent is allowed to offer, so nobody has to guess at 4:55pm on a Friday.
8 after-hours, closing and feedback canned responses
Works in: live chat · email
Closing messages get skimmed, so front-load them: what happened, the reference, what to do next. And “we’re closed” needs something useful attached, 74% of consumers say that because of AI they now expect customer service to be available 24/7 (Zendesk CX Trends, 2026), which is why the after-hours reply is usually the first thing a team hands over to automation.
After hours
Out of hours
We’re offline until [time] on [day]. Leave your question here and it’ll be first in the queue in the morning, or [link] answers most things instantly.
Holiday closure
We’re closed for [holiday] until [date]. Orders placed now ship on [date]. Anything urgent about an existing order goes to [email address], which is checked daily.
Weekend cover
Nobody’s on chat at weekends, but this inbox is read on Monday at [time]. If it’s about a delivery, [link] has live tracking right now.
Closing the conversation
Wrapping up
That’s [issue] sorted, [one-line summary of what happened]. Anything else while I’m here?
Nothing more needed
All done, then. Your reference is [ticket number] if you ever need to pick this back up. Have a good [day/weekend], [Customer name].
Closing without a resolution
We haven’t got you a fix today and I’m not going to pretend we have. [Department] has it as [ticket number] and they’ll email you by [date]. I’ll be watching it too.
Asking for feedback
One-question rating
Would you rate this chat before you go? One click, and it comes to me rather than into a report nobody reads.
Asking for a review
If [Company] got this right today, a line on [review site] genuinely helps a small team: [link]. If we didn’t, tell me instead and I’ll fix it.
Tip: Ask from inside the conversation while the fix is still fresh, response rates fall off a cliff by the next day. Our customer satisfaction survey guide covers what to ask.

Use live chat to support your customers in real-time
13 canned email and ticket templates
Email needs a subject line the customer will recognize in a crowded inbox, and enough structure to read as a decision rather than a note. Each of these is complete, subject, body, sign-off. See also our customer service email templates and help desk templates.
1. Acknowledging a ticket and setting a reply time
Send within minutes of a ticket arriving, before you’ve done any work on it. Its only job is to turn “did anyone see this?” into a date. Promise a time you can beat, not one you’d like to hit.
Subject: We’ve got your message about [issue], ticket [ticket number]
Hi [Customer name],
Thanks for writing in. I’ve read your message about [issue] and I’m looking into it now.
You’ll hear from me by [timeframe, e.g. “5pm Thursday”], with an answer if I have one, and with an update if I don’t.
If anything changes at your end in the meantime, reply to this email and it comes straight to me.
[Agent name] [Company] Support
2. Asking for the information you need to start
Send when the ticket is missing something you can’t proceed without. Ask for everything at once, number it, and say where to find anything obscure.
Subject: Two things I need before I can fix [issue]
Hi [Customer name],
I can sort [issue] out. I just need two details first:
1. [info needed] 2. [info needed]
Reply here with both and I’ll have it done within [timeframe]. If you’re not sure where to find [info needed], it’s on [where to find it].
If it’s easier to send a screenshot than to type it out, that works too, anything I can read is fine.
[Agent name]
3. Proactive shipping delay
Send before the customer notices. A delay you announce is an inconvenience; a delay they discover is a complaint. Always include the way out.
Subject: Your order [order number] is running [number] days late
Hi [Customer name],
Your order [order number] hasn’t left our warehouse on time. [Reason, in one sentence, with no excuses attached.]
The new delivery date is [date]. Your tracking link is [link] and it’ll update the moment the parcel moves.
If [date] is too late to be any use, reply with “refund” and I’ll send [amount] back to your card today, nothing to return.
Sorry for the wait.
[Agent name]
Why it works: it gives a new date rather than a bare apology, and puts the refund one word away, which costs you far fewer orders than a week of silence.
4. Refund approved
Send the moment the refund is processed, not when it lands. The gap between your action and their bank’s is what generates the follow-up ticket, so name it.
Subject: Refund approved for order [order number]
Hi [Customer name],
[amount] is on its way back to the [payment method] you paid with. Your bank will take [timeframe] to show it, so don’t worry if it isn’t there tomorrow.
You don’t need to send [item] back, pass it on to someone who’ll use it if that’s easier.
Nothing else is outstanding on [order number], and I’ve made a note of [reason for the refund] so we can look at it properly.
Anything else on this order, just reply here and it comes back to me.
[Agent name]
5. Return instructions
Send with the label attached. Number the steps, give the deadline, say when the money moves, those three remove almost every follow-up question.
Subject: Your return label for order [order number]
Hi [Customer name],
Your prepaid return label is attached. Three steps:
1. Put [item] in any box you have, the original packaging isn’t required. 2. Stick the label on the outside and cover the old one. 3. Drop it at any [carrier] point by [date].
Your refund of [amount] goes out the day the parcel is scanned at our warehouse, and takes [timeframe] to reach your account.
Keep the drop-off receipt until the refund lands, if anything goes astray in transit, that receipt is all I need to refund you anyway.
[Agent name]
6. Declining a refund, with an option
The hardest template in any library. One sentence of reason, two alternatives, and an open door to escalation, offering it is far cheaper than having it demanded.
Subject: About your refund request for order [order number]
Hi [Customer name],
I’ve looked at [order number] and I can’t refund it: [reason, in one plain sentence].
I don’t want to leave you with nothing, so here’s what I can do instead:
– [option 1] – [option 2]
Reply with whichever you’d prefer and I’ll set it up today. If neither works for you, tell me and I’ll take it to my manager rather than close this off.
[Agent name]
Why it works: the refusal and the alternative arrive together, so there’s nothing to reply to angrily. And offering the escalation yourself keeps it inside your process.
7. Apologizing for a mistake
Send when the fault is unambiguously yours. Name what happened, skip the explanation, show two actions: the one already done and the one that stops it recurring.
Subject: We got this wrong. Here’s what we’re doing about it
Hi [Customer name],
[What happened, in one sentence, with no excuse attached.] That was our mistake.
Here’s what I’ve already done: [action], in place as of [date].
Here’s what happens next: [action], done by [date].
I’ve also credited [amount] to your account. It’s there now, nothing for you to claim.
If any of that doesn’t match what you’re seeing, reply and I’ll look again today rather than tomorrow.
[Agent name]
8. Replying to an angry complaint
Send after reading the whole thread, never mid-argument. Concede the point, state the facts once, offer a choice, name the person above you before they ask.
Subject: Your complaint about [issue], [ticket number]
Hi [Customer name],
You’re right to be annoyed, and I’m not going to argue the details with you.
Here’s where things stand: [one-line summary of the facts].
Here’s what I can do today: [option] or [option]. Tell me which and it’s done within [timeframe].
If you’d rather speak to someone above me, my manager is [Agent name] and I’ll ask them to call you on [phone number] at a time that suits you.
[Agent name]
Why it works: it refuses the argument without conceding facts that aren’t true, and naming the manager first turns an escalation threat into a scheduled call.
9. Declining a feature request
Send when the answer is genuinely no. A clear no with a workaround lands better than a vague maybe that comes back in six months.
Subject: Your request for [request]
Hi [Customer name],
Thanks for taking the time to explain [request]. I’ve logged it as [ticket number] with your notes attached, and the product team does read them.
I’ll be straight with you: it isn’t on our roadmap, so I can’t give you a date, and I’d rather say that than leave you waiting on a maybe.
What might help in the meantime is [workaround], which gets you [what it achieves]. Here’s how to set it up: [link]. Happy to walk you through it on a call if that’s easier.
[Agent name]
10. Following up when a customer has gone quiet
Send once, a few days after your question went unanswered. Be generous about the silence and make replying a small job.
Subject: Still here when you’re ready, [ticket number]
Hi [Customer name],
I asked for [info needed] on [date] so I could finish [issue] off, and I haven’t heard back. No problem, I know how weeks go.
The moment you send [info needed], I can wrap this up in about [timeframe].
And if you’ve solved it another way, or it stopped mattering, just say so and I’ll close the ticket with no follow-up.
Either way you won’t hear from me again about this one unless you write first.
[Agent name]
11. Closing a ticket after no response
Send after your follow-up has also gone unanswered. Most teams get this one wrong: closing a ticket should read as tidying up, not giving up. Say explicitly that a reply reopens it.
Subject: Closing [ticket number], reply any time to reopen it
Hi [Customer name],
I haven’t heard from you since [date], so I’m marking [ticket number] as resolved to keep it out of your inbox.
For the record, here’s where we got to: [one-line summary].
Nothing is lost. Reply to this email at any point and the ticket reopens with the full history attached. You won’t have to explain it again.
[Agent name]
Why it works: “reply any time to reopen it” in the subject line prevents the angry reopen a week later, and the one-line summary means nobody has to reconstruct the case in March.
12. Confirming a resolution
Send when the fix is live and verified, not when it’s deployed. Say what changed and what to do if it comes back.
Subject: [issue] is fixed, order [order number]
Hi [Customer name],
[issue] is sorted. [What changed, in one sentence.]
You don’t need to do anything, the change is already live on your account as of [date].
If [symptom] turns up again, reply to this email rather than starting a new ticket: it comes back to me with the whole history attached, so you won’t have to explain it twice.
Thanks for your patience while we worked through it.
[Agent name]
13. Asking for feedback after a resolved ticket
Send a day after the resolution, once only. One question, one click, and a real person at the other end of a bad score.
Subject: Did we get it right, [Customer name]?
Hi [Customer name],
[issue] is closed, and I hope it stayed closed.
One question, one click: how was the support you got? [link]
It comes to me rather than into a report nobody reads. If the answer is “not great”, tell me why in the box underneath and I’ll come back to you personally. I’d rather hear it now than read it in a review later.
Thanks for bearing with us, [Customer name].
[Agent name]
Canned response best practices
- Name templates the way an agent thinks, not the way a manager files. “Refund approved” beats “CS_REF_001”. Agents search these under time pressure with a customer watching the typing indicator.
- One moment, one template. The usual failure is a single “refunds” macro covering approval, refusal and processing time at once. Split it, and none of the versions needs heavy editing before it goes.
- Force a personal detail into every template. A bracket the agent has to fill is a checkpoint that makes them look at the ticket. Templates with nothing to change are the ones sent to the wrong person.
- Put a date in, never an adverb. “Within 24 hours” is a promise you can audit. “As soon as possible” appears in almost every complaint about response times.
- Never lead with the refusal. Say what you can do, then what you can’t. That reordering does more for tone than any amount of softening language, and it’s the core of positive scripting. Live chat etiquette is the same job from the agent’s side.
- Decide which templates belong to the AI. Order status, opening hours, return policy, password resets: one correct answer, no judgment needed. Hand those over to an AI agent that answers from your help center and keep your team for the conversations where someone is upset or spending money, our chat support skills guide covers what that leaves a human to do well.
How to set up canned responses in Tidio
Tidio calls them macros: a saved library of replies you can drop into a live chat, a ticket or an internal note in a couple of keystrokes. The steps below follow Tidio’s own Macros guide.
Macros are not on every plan. Tidio’s pricing page marks them unavailable on Free and Starter, and includes them from Growth upward (checked in October 2026). So budget for a paid seat before you build a library your agents depend on.
- In the Tidio panel, open Settings → Macros.
- Click Create a new macro, name it the way an agent would search for it (“Refund approved”), and paste the template. The name is optional, but without one the macro can only be found by browsing or by a word from its text.
- Choose whether it’s private to you or visible to every agent, and add a label so it’s findable by scenario rather than by scrolling. Variables such as the customer’s name fill in on their own when the data exists, so [Customer name] can become a real merge field.
- In any conversation (live chat, ticket reply or internal note) click the Macros icon at the lower left, or type / to open the list and keep typing to filter by macro name: /refund narrows it to your refund replies. Type # to filter by label instead. Pick one, edit the brackets, send.
Macros can also act when you send them: reassign the chat, change a ticket’s status or add a tag. Set that up on your most-used macros. A “Refund approved” macro that also tags the ticket saves a second click every time.


Stop typing the same reply
These 120 responses exist so nobody has to rewrite the shipping-delay message at 4pm on a Friday. Pick the twenty that match the questions you actually get, save them, and leave the rest until you need them. Then watch what your agents still type by hand. That’s your next batch.
Frequently asked questions
A canned response is a pre-written reply saved in your help desk and inserted by an agent when the same question comes up again. They edit the details that change (name, order number, dates) and send it. Canned messages, canned answers, saved replies and macros all mean the same thing.
An auto-reply is sent by the system on a trigger, with nobody reading the message first. A canned response is chosen by a person who has read it and judged this the right answer. Auto-replies suit acknowledgments and out-of-hours notices; canned responses are for anything needing a decision.
Give your name, name the company, and ask one open question. For example: “Hi [Customer name], thanks for stopping by [Company]. I’m [Agent name]. What can I help you with today?” If you know why they’re on the page, be specific: “I can see checkout is giving you trouble. Tell me what you’re seeing and I’ll sort it from my side.”
Enough to cover the questions that repeat, and no more. For most small teams that’s 30 to 60 in active use, the 120 here are a menu, not a target. A library nobody can search is slower than typing.
They do when sent blind: the wrong template, an unedited placeholder, a policy quote with nothing after it. They help when the agent has read the message, picked the right moment and changed the details. The template saves the typing; the agent still does the thinking.
AI handles the ones with a single correct answer (order status, opening hours, return windows, password resets) straight from your help center, without a template at all. It’s worse at judgment calls about exceptions and apologies. Most teams run both: an AI agent on the repetitive tier, a human library for the rest.
Build your reply library in Tidio and stop retyping

