E-commerce

How to write e-commerce customer service scripts without sounding like a robot?

How to write e-commerce customer service scripts without sounding like a robot?

June 26, 2026

An e-commerce customer service script is not intended to turn your agents into robots. Well-designed, it does the opposite: it removes the repetitive part to leave more room for human judgment.

The observation is simple: the same requests return every day, but every improvised response can create a different promise. The tension arises there: going fast without losing the tone, accuracy, and trust.

This article does not duplicate any existing backlog content, as it provides an operational library of standard customer service responses, whereas other guides focus mainly on support strategy, FAQ, chatbot, or post-purchase.

Summary

Why should your customer service scripts be written as conversations?

Customers quickly detect a copy-pasted response. The problem is not the template, but the cold, vague template that is disconnected from their situation.

Keeping reminds us that a template works when it handles a repeatable case while allowing quick personalization before sending (Keeping, templates 2026).

For a Shopify store, scripts must meet three needs: save time, respect policy, and maintain a credible brand voice. The ideal response goes straight to the point, acknowledges the situation, and indicates the next step.

What is the difference between a script, a macro, and a canned response?

A canned response is the text sent to the customer. A macro is a canned response integrated into the helpdesk, sometimes with variables, tags, and actions. A script is an internal decision tree that guides the agent.

  • Macro: inserted with one click in Gorgias, Zendesk, Help Scout, or Shopify Inbox

  • Variable: first name, order number, tracking link, product, carrier

  • Action: tag, status, assignment, refund, or modification depending on the tool

  • Script: "if delivered", "if delayed", "if lost package" branches

Gorgias specifies that macros can include e-commerce variables and Shopify actions when the store is connected (Gorgias, macros).

What structure should be used for each answer?

Use a short four-step structure. It works in emails, chats, and DMs, as long as you adapt the length.

  1. Greet naturally, using the first name if available.

  2. Reformulate the problem into one concrete sentence.

  3. Give the answer or the action already taken.

  4. Indicate the deadline, link, or next step.

Example: "Hello Sarah, I have checked order #1842. The package is indeed in transit, with an estimated delivery on Thursday. Here is the tracking: [link]. If the status does not change by Friday morning, I will launch a carrier inquiry."

Avoid decorative phrases like "your satisfaction is our priority" if they are not followed by a specific action.

How do you keep a human tone with variables?

Personalization is not just about the first name. The message must prove that a human has read the ticket.

  • Specific detail: order, product, date, event or channel

  • Mirror phrase: echo the actual concern: urgent gift, stuck package, hesitating on size

  • Active verb: "I have checked", "I am sending you", "we are correcting"

  • Useful ending: a question or an option, not an empty phrase

Ecommerce Circle recommends planning for 5 to 10 seconds of mandatory personalization before sending, otherwise the macro is too rigid (Ecommerce Circle, macro library).

Simple rule: if you wouldn't talk like that to a customer in a store, don't write it in the helpdesk.

Which scripts should you create first for an e-commerce store?

Do not create 80 responses on the first day. Start with the inquiries that recur every week and have a clear policy.

  • Delivery: WISMO, missing tracking, delay, delivered but not received, incorrect address

  • Returns: return request, label, size exchange, late return

  • Refunds: refund initiated, bank processing time, partial refund

  • Order: cancellation, address modification, invoice, gift

  • Promo: invalid code, cannot be combined, refund of difference

  • Product: size, compatibility, stock, maintenance, defect

This foundation often covers the majority of the volume. Only then should you add sensitive cases: VIP customers, threat of a public review, payment disputes, premium products, or press inquiries.

What examples of template responses can you adapt?

Standard WISMO

"Hello [First Name], I checked order #[number]. It is currently [status] with [carrier]. You can track the progress here: [link]. Delivery is estimated on [date]. If the tracking does not update within 48 hours, reply to this message and I will follow up with the carrier."

Carrier delay

"I see the delay on your package, and I understand it is frustrating. The last scan indicates [status] in [location]. I am monitoring the case until [date]. If there is no movement, I will open an investigation and offer you the best available solution."

Simple return

"Your order is eligible for a return. You can initiate the request here: [portal link]. Once the package is received and checked, the refund is sent to the initial payment method within [timeframe]."

Invalid promo code

"The code [CODE] does not apply to this cart because [clear reason]. You can use it on [condition] until [date]. If you share your cart with me, I will check the most advantageous option."

How to respond when the answer is negative?

A refusal can remain human if the rule is clear and the alternative is honest.

Late return

"Hello [First Name], I have checked order #[number]. The return window ended on [date], so I cannot accept a standard return. If the item has a defect, send me two photos and I will have the file reviewed."

Refund impossible

"I understand your request. In this specific case, we cannot refund because [reason]. What I can do: [store credit, exchange, diagnostic, escalation], if that works for you."

Zendesk recommends acknowledging the emotion before resolving, especially with a frustrated or angry customer (Zendesk, angry customers).

How to organize your macro library?

A useful library is easily found. A cluttered library ends up ignored.

  • Name: Delivery::WISMO::In-transit status

  • Description: when to use, when to escalate

  • Channel: long email, short chat, very short social

  • Owner: support or ops manager

  • Last review: date visible in Notion or the helpdesk

  • Policy link: return, refund, delivery, promo

Keep a single source version in the helpdesk, then document the rules in Notion or Google Docs. Unreviewed personal macros quickly create contradictory promises.

When should you avoid a canned response?

Some cases deserve manual writing, or at least a deep rewrite.

  • High anger: insulting, highly anxious or publicly exposed customer

  • Dispute: chargeback, legal threat, disputed payment

  • Exception: out-of-policy commercial gesture or expensive product

  • VIP: loyal customer, influencer, important B2B

  • Security: personal data, fraud, sensitive error

In these situations, use the macro as a reminder, not as a final message. The introduction and conclusion must be fully personalized.

See also handoff humain chatbot to decide when to exit an automated flow.

How do you maintain your scripts without letting them grow obsolete?

An obsolete macro can cost more than a slow response: wrong refund processing time, outdated promotion, replaced carrier, expired policy.

  • Every month: top macros used, macros never used, CSAT by macro if available

  • Every quarter: returns, refunds, promos, new products, carriers

  • Before BFCM: delivery times, promo codes, cut-offs, extended returns

  • After an incident: massive delay, out of stock, payment bug, peak in delivered-not-received

Shopify reminds us that return policies must specify the process, timeframes, fees, and support contact (Shopify, return policy). Your macros must reflect these exact rules.

To go further, link this routine to your BFCM support preparation.

How does Qstomy transform your scripts into consistent AI support?

Qstomy uses your FAQs, validated scripts, and support content to respond with a consistent voice, without inventing a return policy or a delivery promise.

DTC Scenario

A Shopify brand receives 1,200 tickets per month, of which 38% concern WISMO, returns, and promo codes. By importing 25 validated scripts into Qstomy, it aims for a realistic pilot: 30 to 45% of simple questions resolved automatically and a first response time cut in half on the remaining queues.

The right workflow: validated human macro, Qstomy adaptation, testing on 30 conversations, then monitoring escalations. If the bot hesitates on a refund or an emotional tone, it hands over control.

See AI customer support, Shopify integration, e-commerce chatbot KPIs and request a demo.

Which playbooks should you apply starting this week?

Playbook 1: Ten Priority Responses

Export 90 days of tickets, categorize requests by volume, then write ten scripts: WISMO, delay, return, refund, exchange, promo code, cancellation, address, size, defect.

Playbook 2: Human Voice Test

Each macro is read aloud by two agents. If it sounds robotic/administrative, rewrite it with an active verb, a shorter sentence, and a clear next step.

Playbook 3: Channel Versioning

Adapt the three most used macros into email, chat, and Instagram DM versions. Same core message, different lengths.

Playbook 4: Measurement

Compare first response time, resolution time, and CSAT before/after deployment. A good library should speed up response times without hurting satisfaction.

Useful Links

Enzo

June 26, 2026

Convert over 2,000 customers on average per month with Qstomy.

The world’s 1st Shopify AI dedicated to customer conversion

Empowering 200+ e-commerce merchants

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.

Subscribe to the newsletter and get a personalized e-book!

No-code solution, no technical knowledge required. AI trained on your e-shop and non-intrusive.

*Unsubscribe at any time. We do not send spam.