Back to blog

Forty Minutes of Silence: Support Standards for a Shopify App That Never Closes

Forty minutes of silence and one wrong letter in German cost us two merchants. The 11 support standards I now hold my Shopify app team to, in every language.

Aziz Banihashemi
Aziz Banihashemi
· 12 min read
Forty Minutes of Silence: Support Standards for a Shopify App That Never Closes

The short answer

Shopify app support fails less often on the technical problem than on what surrounds it: silence, tone, and language. After losing a merchant in the UK to forty minutes of silence and being rightly scolded by a merchant in Germany for one wrong letter, these are the standards I now hold my team to:

StandardTarget
First human reply in live chatWithin 1 minute
Longest silence during a live conversation3 to 5 minutes
Store accessSay what you will touch, ask before changing, show visible progress
ToneShort and warm, never short and cold
QuestionsAnswer every one, even if the answer is "next"
Text in another languageChecked by a fluent reader or approved by the merchant before it goes live
FormalityStart formal (Sie, Lei, usted, keigo, 您) and follow the merchant's lead
Quiet hoursPublished, with an honest auto-reply and written shift handoffs
ClosingOnly when the merchant's problem is solved, followed by an email if they left

The rest of this article is how I learned each of them.

A support day that starts in Sydney and ends in Honolulu

I run Discount Prime, a Shopify discount app, and our support day starts when the sun comes up in Sydney and winds down when it sets over Honolulu and the US West Coast. In late October, 9 a.m. in Sydney is still 3 p.m. the previous afternoon in Los Angeles and noon in Honolulu. Somewhere in that long stretch of hours, a merchant is opening the chat window inside our app, and they do not care what time it is for us. They also do not care what our first language is. They care whether we sound like we are on their side.

This is the story of two merchants, what my team and I got wrong with each of them, and what we changed afterwards.

What happened with the merchant in the UK?

A merchant in the United Kingdom came to us in the middle of moving a live sale over from another discount app. Some products were not showing the sale, the discount that did appear was larger than the one they had set, and they could not find how to add a countdown timer. They asked, very politely, for help.

We replied within a minute. So far, so good.

The cause turned out to be simple. The previous app had changed the product prices themselves, and our discount was landing on top, a textbook case of discount stacking during a migration. For a merchant in a live sale, a discount that is too large is money leaving with every order, so they switched the sale off while we looked. We asked for collaborator access so we could correct the prices directly. They granted it. We wrote "just a moment please".

Then we went quiet.

A couple of minutes later, the merchant asked how it was going. Nobody answered. Some time after that, they wrote that since they had heard nothing, they would assume we had abandoned the task. That went unanswered too. My team was not idle. They were inside the store, working on the prices. But they did not say so, and nothing on the merchant's own product pages had visibly changed.

Forty minutes after granting access, the merchant gave up. They removed our access, corrected every price by hand in about ten minutes, and went back to their old app. When we finally wrote again, our first line asked whether they had removed our access. The countdown timer question, asked more than once, was never answered.

What did the follow-up email reveal?

I wrote to the merchant myself to apologise and to offer to finish the job. They replied, courteously, and told me exactly why they had left. There had been no replies, and before the silence there had been rude ones. Nothing was visibly happening on their side. They had tried to stay understanding regardless of how we were responding, but after forty minutes they gave up, and they would not be coming back, mainly because of how they had been spoken to. They still thanked me for writing.

I read that email several times. The technical problem was small enough for the merchant to fix alone in ten minutes. What lost us the customer was not the bug. It was the silence and the tone.

Reading our messages again with their eyes, I could see it. There was no rudeness in the intent. But there were phrases like "as I told you", which in English sounds like a teacher correcting a pupil. There were requests where the merchant had asked a question. There was "Have you removed our access?", which reads as an accusation, and a "Sorry to hear that" before the conversation was closed. No thanks for granting access. No apology for the wait. No "would you mind". Just instructions and explanations, the way anyone writes when they are concentrating on a bug and typing in a language that is not their first.

To a courteous British merchant, used to an English in which politeness lives in exactly those small phrases, that brevity did not read as efficient. It read as dismissive. And dismissiveness from someone who currently holds access to your store is a good reason to take that access back. They were right to do it.

What went wrong with the merchant in Germany?

The second story is shorter, and it went wrong in the opposite direction.

During a support task for a German merchant, my team wrote a short piece of German text into one of the merchant's storefront widgets, the kind of message shoppers see next to a price or in the cart. It contained a single wrong letter: an n where there should have been an m. Nobody on our side noticed. The merchant did, and wrote us a very angry email. If we opened our eyes and looked carefully, they said, we would find our own mistake.

It is easy to read that email as an overreaction to a typo. It is not. In German, the last letter of a word often carries grammar. Den and dem, einen and einem: the difference between n and m marks the grammatical case, so to a native reader the error does not look like a slip of the keyboard. It looks like a grammar mistake, the kind a careful company does not make. And it was not sitting in a chat window. It was on the merchant's storefront, where every shopper would read it as the merchant's own mistake. Our technical support person was focused on getting the widget working and did not have the German to see it. The merchant saw nothing else.

I have written before about why storefront apps should speak your customers' language. This merchant taught me the second half of that lesson: speaking the language badly can be worse than not speaking it at all.

Why do both failures have the same root cause?

Put the two stories side by side and the pattern is clear. In English, our risk was tone: correct information delivered so plainly that it felt cold. In German, our risk was accuracy: a small error that a native speaker reads as carelessness. Both come from the same place.

The person answering is under two pressures at once. The first is technical: a discount is not applying, a sale is live, and the clock is running. The second is linguistic: they are writing in a language that is not their first, to someone for whom it is.

When both pressures hit together, something has to give. In English, the first thing to go is everything that is not strictly information: greetings, thanks, softeners, small check-ins. In other languages, it is the second read-through that catches the wrong ending, the wrong level of formality, or the wrong script. The merchant never sees the pressure. They only see what is left.

What does each language ask of a support team?

Our app's admin is available in nine languages, and merchants write to us in many more. These are the ones we hear most often, and what each one asks of us. None of this is about stereotypes. Every merchant is an individual. It is about not making the mistakes a native reader notices in the first line, so they can get on with reading what you actually said.

German: precision is respect

German readers notice errors quickly, and in customer-facing text they read them as a lack of care. Grammatical endings matter, as our merchant reminded us, and so does consistency in formal address. Start with Sie and only switch to du if the merchant does. German text also runs long, so anything written for a storefront widget needs checking in place on the live page, not just in a settings field. We keep a German version of our site for the same reason: German merchants deserve to read about the product in German that was written with care.

Japanese: politeness is built into the grammar

Japanese has formal levels of speech, keigo, built into its verbs. A message that is grammatically correct but in plain form can feel abrupt, and machine translation often mixes levels within a single reply, which reads as careless. Polite forms are the minimum in support, and apologies for inconvenience are expected, not a sign of weakness. Japanese text also has no spaces between words, so a short widget label can wrap in odd places on a narrow screen. Our Japanese page follows the same rules we ask of support.

Chinese: two scripts, two vocabularies

Chinese merchants may write in Simplified characters, used in mainland China and Singapore, or Traditional characters, used in Taiwan and Hong Kong. Replying in the wrong one is noticed immediately, and the vocabulary differs too: software is 软件 in mainland usage and 軟體 in Taiwan. That is why we publish separate Simplified Chinese and Traditional Chinese pages rather than one. Use the respectful 您 rather than 你 with a merchant you do not know, and favour clear, numbered steps over long explanations.

Spanish: which Spanish?

A merchant in Spain and a merchant in Mexico or Argentina do not use quite the same Spanish. Forms of address differ, vosotros is used in Spain and not in Latin America, and everyday words change: a computer is an ordenador in Spain and a computadora in most of Latin America. Start with usted until the merchant is less formal, and do not skip the greeting. A reply that jumps straight into instructions can feel as cold in Spanish as it did in English.

Italian: register first, then content

Italian business writing opens with courtesy. Buongiorno in chat and Gentile followed by the merchant's name in an email are the norm, and the formal Lei is the right default until the merchant chooses tu. A reply that is accurate but drops the opening can come across as brusque, however helpful the content. Our Italian page opens the same way.

Portuguese: Brazil is not Portugal

Brazilian and European Portuguese differ in address, vocabulary, and tone. A mobile phone is a celular in Brazil and a telemóvel in Portugal. Brazilian merchants often expect a warmer, more personal register; in Portugal, a more formal one is safer. Find out which one you are writing to before you answer, and send Portuguese-speaking merchants to material written for them.

The eleven standards we now hold ourselves to

None of these is complicated. That is rather the point: they are the things that get dropped under pressure, so they have to be written down and practised until they are automatic.

1. Acknowledge within one minute, even if the answer takes longer

In live chat, the merchant is watching. The first human reply should arrive within about a minute. We met this one in the UK, and it was not enough on its own: a fast first reply buys goodwill, and everything after it decides whether you keep it. The reply does not need to contain the answer. It needs to contain a person, a name, and a time.

Hi Sarah, thank you for getting in touch. I'm looking at your campaign now and will come back to you within five minutes.

That message takes fifteen seconds to write and buys the agent five calm minutes to investigate.

2. Never leave a silence longer than a few minutes, and make progress visible

Once a conversation is underway, no gap should run longer than three to five minutes without a short update. The update does not need news. It needs to say what is happening and when the next message will arrive.

Still with you. I can see the discount is set up correctly, so I'm now checking how your theme loads it. Another few minutes, please.

Silence is where merchants fill in the worst explanation. A heartbeat message replaces their guess with the truth.

Progress should be visible, too. Our merchant was watching their own product pages, and for forty minutes nothing on them changed. When a fix touches several products, fix one first, tell the merchant, and ask them to check that the compare-at price and sale badge look right. One corrected product they can see is worth more than a complete fix they cannot. Our guide to discount display settings covers what "looks right" should mean on each surface.

3. Treat store access as borrowed trust

A merchant who grants collaborator access is letting a stranger into their business. That changes what silence means. Forty minutes of quiet in an ordinary chat is poor service. Forty minutes of quiet while holding access to someone's store, during their live sale, looks like something is being done to it behind their back. Before touching anything, say what you will look at. Ask before making any change the merchant did not request. When you finish, say what you did and tell them they can remove the access whenever they like.

Thank you for the access. I'll only look at the campaign settings and the theme app embed, and I won't change anything without asking you first.

Where possible, avoid the emergency altogether. A merchant moving from another app in the middle of a sale is exactly the situation our dry-run simulation exists for, and our guide to preventing double discounting explains how to spot a previous app's price changes before a new campaign lands on top of them.

4. Short is fine. Cold is not.

I am not asking anyone to write long messages. Long messages are hard to read in chat and harder still in a second language. The goal is short and warm, and the difference is usually a handful of words:

Short and coldShort and warm
Send me collaborator access.Would you be happy to send me collaborator access? Then I can correct this directly in your store.
As I told you, the old app changed your prices.That's a fair point. It looks like your previous app changed the prices themselves. I'll put that right.
Just a moment please.Thank you for the access. I'm correcting the prices now and will update you within five minutes.
Have you removed our access?I'm so sorry for going quiet. That was our mistake, not yours. I'd still like to finish this for you whenever it suits.
Sorry to hear that.I completely understand. If you'd like to try again, I'll set it up with you step by step.

Use the merchant's name. Thank them for anything they do for you, including waiting. Apologise for delays without making a production of it. End with a line that keeps the door open. These are the markers English speakers, and British English speakers especially, read as respect. Without them, a correct answer can still feel like a brush-off.

5. Answer every question, and own the fix rather than the cause

If a merchant asks two things, answer both, even if one answer is "I'll come back to this as soon as the prices are fixed." A question left hanging reads as a question ignored.

The same goes for explaining the cause. The previous app really had changed the prices, and it mattered for the fix. But a merchant losing money in a live sale does not need to be told whose fault it is. They need to hear that you will put it right. Explain the cause once, briefly, and spend every message after that on the fix.

6. Check anything written in another language before it reaches a merchant or a shopper

A merchant who writes in German, Japanese, Chinese, Spanish, Italian or Portuguese is telling you which language they think in. Reply in it where you can. Translation tools make that possible for a small team, but they need supervision. Technical terms should match the words the merchant actually sees in their Shopify admin and in our app. Step-by-step instructions should be checked before they are sent.

Text that will appear on a storefront needs a higher bar still, because shoppers read it as the merchant's own words. Our German story is the reason. Any widget text we write in a language we do not master is now either checked by a fluent reader or, better, written or approved by the merchant. That is also why our widget translations let merchants enter their own wording for every language their store publishes, instead of anyone guessing it for them.

7. Match the formality the language expects

Default to the formal form of address in every language that has one: Sie, Lei, usted, polite keigo, 您. Follow the merchant's lead if they become less formal, never the other way round. Greet, thank, explain, and close, in whatever form those take in the merchant's language.

8. Separate fixing from talking

When an agent is deep in a technical problem, the conversation suffers. When a second person is available, one fixes and one talks. When there is only one person, the agent should use prepared phrases, in each language we support, for the parts that get dropped under pressure: openings, holding messages, requests, apologies, and closings. A good phrase bank is not about sounding scripted. It is about making sure the polite version is the easy version.

Writing tools help here as well. Asking one to check a draft for tone, grammar, and formality before sending takes a few seconds and catches exactly the kind of message that cost us both of these merchants. I have spent twenty years building AI systems, and this is one of the most practical uses I know: not writing support for you, but catching the line you would regret.

9. Be honest about the quiet hours

Between Sydney's morning and Honolulu's evening, there are hours when traffic is low and a human may not be online immediately. That is normal for a small team. Hiding it is not. Show the hours when people are available, set an automatic reply outside those hours that says when a human will answer, and keep that promise.

At the end of each shift, every open conversation gets a short written summary for whoever picks it up next: what the merchant asked, what we checked, what is still open. Nobody should have to ask a merchant to repeat themselves because the sun moved. This matters most in the weeks before Black Friday, when every merchant is changing campaigns at once; our 48-hour BFCM checklist is written with that rush in mind.

10. Never close a conversation the merchant did not close

A conversation is resolved when the merchant's problem is solved or the merchant says they are done, not when the chat goes quiet. Our UK conversation was marked resolved minutes after the merchant left, with the prices still wrong and a question still open. It was not resolved. It was lost.

11. Always close the loop

If a merchant leaves a chat before it is resolved, or writes to us angry, follow up with an apology if one is due, a clear summary of where things stand, and an offer to finish. Do not argue with an angry merchant about whether the mistake was small. If they noticed it, their shoppers did too. My follow-up email did not win the UK merchant back, and it was not owed to. But it is how I learned what had really gone wrong. Without it, we would have filed the conversation under "customer went away" and learned nothing. When I looked back at what 100 support conversations taught us, the lessons came from the conversations we followed up on.

Why does this matter more for apps than for stores?

A Shopify app lives inside someone else's business. When our support is slow, cold, or careless with their language, the merchant does not just think less of us. They wonder whether the thing running their discounts on their storefront is in safe hands. Every chat is a small audit of that question, and it is held in the merchant's language, not ours.

The merchants who write to us come from everywhere, write in many languages, and work at every hour of the day. The support they deserve is the same everywhere: a quick human hello, no long silences, care with their store and their words, short messages that still sound like they came from someone who is glad to help, and a follow-up when things go wrong.

We lost the merchant in the UK, and I am not going to pretend otherwise. What they left me with was an honest, courteous explanation of how our support felt from the other side of the chat window. The merchant in Germany was less gentle, and just as right. Between them, they are why these standards now exist.

If you run a Shopify app, I would be glad to hear which standards you hold your own team to. And if you are a merchant with a question about your discounts or widgets, get in touch. We will say hello first.

shopifycustomer-supportlive-chatinternationalizationlocalizationshopify-appsfounder-notes
Aziz Banihashemi

About the author

Aziz Banihashemi

Aziz Banihashemi is the founder of several software companies specializing in artificial intelligence, with more than twenty years of hands-on experience building AI-powered software systems. Based in Toronto, Canada, he focuses on product design for systems that harness AI and ship on the Shopify platform.

Frequently asked questions

How fast should a Shopify app reply to a live chat message?

In live chat, the merchant is watching the screen, so the first human acknowledgment should arrive within about one minute, even if the full answer takes longer. After that, no gap should run longer than three to five minutes without a short update that says what is happening and when the next reply will come.

Why would a merchant think a support agent was rude when the agent was only being brief?

Many English speakers, and British English speakers in particular, read politeness from small markers such as greetings, the person's name, softeners like 'could you' and 'would you mind', thanks, and a closing line. An agent writing in a second language under technical pressure tends to drop exactly those markers first, so a message that is efficient in intent can read as curt or dismissive.

What should a support team do when a merchant grants collaborator access to their Shopify store?

Treat it as borrowed trust. Say what you will look at and change before you touch anything, ask before making changes the merchant did not request, show progress the merchant can see on their own store, report what you did when you finish, and tell the merchant when they can remove the access. Silence while holding access to someone's store feels very different from silence in a normal chat.

Why do small spelling mistakes matter so much in German?

In German, a single letter at the end of a word often carries grammar. Den and dem, or einen and einem, mark different grammatical cases, so an n where an m belongs reads to a native speaker as a grammar error rather than a slip of the keyboard. In a storefront widget, shoppers read it as the merchant's own mistake. Anything a support team writes in German for a storefront should be checked by a fluent reader or approved by the merchant before it goes live.

How formal should Shopify app support be in German, Japanese, Chinese, Spanish and Italian?

Start formal and follow the merchant's lead. Use Sie in German, Lei in Italian, usted in Spanish until the merchant is less formal, polite keigo forms in Japanese, and the respectful 您 in Chinese. For Chinese, also match the script: Simplified for mainland China and Singapore, Traditional for Taiwan and Hong Kong.

How can a small Shopify app team cover support across all time zones?

Be honest about coverage. Publish the hours when a human is online, set an automatic message outside those hours that says when a reply will come, hand off open conversations with a written summary at the end of each shift, and follow up by email when a merchant leaves a chat before it is resolved.

What should a Shopify app do when a merchant writes an angry email about a small mistake?

Thank them for pointing it out, fix it immediately, confirm the fix, and apologise without arguing about how small the mistake was. If the merchant noticed it, their shoppers did too. Then change the process so the same kind of mistake cannot ship again.

Run profit-first promotions on Shopify

Discount Prime brings eight discount types, margin analytics, and conflict detection into one Shopify-native app.

See pricing

Or see it live in our demo store and watch every feature working on a real Shopify store.

Related articles