Customer service scripts are pre-written lines your team can use when the same situation comes up again. Done well, they save time and keep everyone sounding like the same company. Done badly, they sound like a robot reading a card. This guide gives you 21 customer service scripts for chat and email, plus a simple way to write your own so they sound like a person.
What customer service scripts are (and aren't)
A customer service script is a starting point for a reply. It holds the facts, the order of ideas, and a tone you've agreed on. The person using it adds the customer's name and the details of what happened.
Think of it like a recipe, not a screenplay. Nobody wants to read the same stiff paragraph a hundred other people got. But nobody wants to start from a blank page at 4 pm on a Friday either.
Small teams get the most from scripts for three reasons:
- New hires can answer well on day one instead of week three.
- Hard moments like refunds and bad news get said the same careful way every time.
- You stop rewriting the same answer forty times a week.
If you've seen the term "canned responses," it's close to the same idea. We cover the saved-reply side in our guide to canned responses. Scripts go a little further because they cover the whole shape of a conversation, not just one block of text.
What to put in a customer service script
Every good script has the same four parts. Check each one before you save it.
- Acknowledge. Show you read the message and understood the problem.
- Answer or act. Give the fact, the fix, or the next step. Do it early.
- Say what happens next. Give a time, a person, or a link.
- Leave a door open. Make it easy to reply if it didn't work.
Then mark the spots where a human adds something. Use square brackets in your internal copy, like [name] and [order number], so nobody sends a script with a blank still in it.
Customer service script examples for greetings
The first line sets the tone. Keep it short, warm, and specific to the channel.
- Live chat opener: "Hi [name], this is Sam at [business]. What can I help you with today?"
- Email, first reply: "Hi [name], thanks for the details about [issue]. I'm looking into it now and will have an answer for you by [time]."
- Returning customer: "Hi [name], good to see you again. I can see your last order from [month], so I'll start from there. What's going on?"
Notice none of these ask the customer to repeat anything. If you keep your conversations in one shared inbox, you can see the history before you type the first word.
Scripts for delays and bad news
Bad news travels worse when it's vague. Give the new date, the reason in one sentence, and an option.
- Late order: "I'm sorry, your order is running two days behind because our supplier shipped late. It now leaves on [date]. If you'd rather cancel, I can refund you today."
- Slow reply: "You're right to expect an answer sooner, and I'm sorry you waited. Here's where things stand: [update]. I'll write again by [time] either way."
For a longer treatment with full email drafts, see how to tell customers about a delay.
Scripts for saying no
A good no has a reason and an alternative. It never ends on the refusal.
- Outside the refund window: "I checked, and this order is 45 days old, which is past our 30-day window, so I can't refund it. What I can do is offer store credit for the full amount. Would that work?"
- Feature you don't have: "We don't offer that today, and I don't want to promise something I can't deliver. Here's what we do have that gets close: [option]. I've also noted your request for the team."
Customer service scripts for angry customers
An angry message needs three things before it needs a policy: to be heard, to hear "sorry," and to see action. Keep the script short. Long replies read as defensive.
- Name the feeling: "I'd be frustrated too. You paid for [product] and it didn't work the way you expected."
- Take ownership: "This is on us, and I'm sorry. I'm fixing it now rather than sending you to someone else."
- Hold a boundary: "I want to get this sorted for you. I can't keep going if the messages stay abusive, so let's reset and focus on the fix."
We go deeper on tone and timing in how to handle angry customers.
Scripts for apologies
Say what went wrong in plain words. Skip the "any inconvenience this may have caused" fog.
- We made a mistake: "We charged you twice by mistake. I've refunded the extra $[amount], and it should show on your card in [number] business days."
- We don't know yet: "I don't have the cause yet, and I'm not going to guess. I'll update you by [time] with what I find."
Scripts for billing and payment questions
- Explaining a charge: "That $[amount] charge is your monthly plan, which renewed on [date]. Here's the line on your receipt: [link]. Does that match what you expected?"
- Payment failed: "Your card was declined on [date], so your plan is on hold. You can update it here: [link]. Once that's done, everything switches back on."
Never ask a customer to type a full card number into chat or email. Send them to your secure checkout page instead.
Scripts for troubleshooting
Troubleshooting scripts work best as short numbered steps with one check at the end.
- Ask for detail: "To find this faster, could you tell me what you clicked just before the error and what you saw on screen? A screenshot helps a lot."
- Walk through a fix: "Try these three steps: 1) sign out, 2) clear your browser cache, 3) sign back in. Let me know what you see after step 3, and we'll go from there."
If a bug is on your side, log it where your team can see it and tell the customer you did. Our guide to customer bug reports shows how.
Scripts for handing a customer to someone else
Customers hate being passed along. If you must hand off, make it smooth.
- Escalating: "I'm bringing in [name], who handles billing. I've shared everything you told me, so you won't need to repeat it. They'll write to you by [time]."
Scripts for closing and follow-up
- Closing a solved ticket: "Glad that's working now. I'll close this ticket, and if anything comes back, just reply here and it reopens."
- Closing an unsolved one: "I wasn't able to fully fix this, and I'm sorry. Here's what I tried and what I suggest next: [options]. Reply any time and I'll pick it back up."
- Follow-up after a week: "Checking in on [issue]. Is everything still working? If not, tell me and I'll take another look."
- Asking for feedback: "If you have thirty seconds, how did we do on this one? A single line helps us fix what's broken."
That's 21 scripts. For full email drafts around refunds, delays, and apologies, our customer service email templates go further.
How to write customer service scripts that sound human
Anyone can write a stiff script. These habits keep yours warm.
- Start from real messages. Pull your last 50 emails and chats. The five most common topics get scripts first.
- Write it the way you'd say it. Read it out loud. If you'd never say it to a friend, rewrite it.
- Use contractions and short sentences. "We can't" beats "we are unable to."
- Leave blanks on purpose. A name, a date, and one sentence about the specific problem make a script feel personal.
- Give your team permission to change it. A script is a floor, not a fence.
Avoid empty phrases that sound like scripts at their worst: "Your call is important to us" and "We value your feedback." They tell the customer nothing.
Customer service script mistakes to avoid
Three mistakes show up again and again.
First, sending the script word for word. Customers can tell. Always change at least the opening line to match what they wrote.
Second, never updating. A script that quotes last year's return window will cause more trouble than none at all. Review yours every quarter, and fix any line that no longer matches your policy.
Third, using a script where a person is needed. If someone is grieving, furious, or confused about something serious, put the script aside and write like a human. The SBA's business management guide is a useful read on building steady habits like this into a small team.
Keeping your scripts in one place
Scripts only help if everyone uses the same version. The easiest way is to keep them in the tool your team already works in. SupportifyGPT puts email, chat, and bug reports in one shared inbox, so your whole team sees the customer's history and answers from the same playbook.
You can also turn your best scripts into help center articles. Our support bot finds the right article with hand-written rules, and then a model writes the reply in its own words, using only what you wrote. If your articles don't cover the question, it says it doesn't know and hands the chat to a person. Any new answer it drafts is saved as a draft for you to approve, so nothing goes live unreviewed.
Every feature is on every plan, from $15 a month, with no fee per answer and a 14-day free trial. See everything that's included, or start your free trial and load your scripts in an afternoon.
Ready to make customer support simple?
Start a free 14-day trial of SupportifyGPT. Every feature included, no setup fee, live in minutes.
Start your free trial