Use caseWorkflow automationReporting and analytics
One support team answering customers in twelve languages without hiring for each one
A translation layer inside Zendesk, Intercom or Gorgias: messages shown in your team's language, replies sent back with your glossary and formality rules.
A blueprint, not a client story. The business described is illustrative; the architecture, integrations and trade-offs are real, and this is how I would build it. By Ergini, .
The short version
An AI integration inside the helpdesk that lets a small support team answer customers in eight to twelve languages. Incoming messages appear translated next to the original, and replies are drafted in the team's language and translated back under a glossary, per-market formality rules and pre-approved legal wording. Numbers and dates are checked in code, risky replies get a back-translation check, and a person sends every message. A weekly report shows where the help center is missing a language.
- Best for
- European e-commerce brands, SaaS companies and hotel groups whose support team sits in one country while customers write in eight or more languages.
- Connects to
- Zendesk, Intercom or Gorgias, DeepL API, Glossary and market profiles, Zendesk Guide, Slack
- The AI does
- Translates in both directions under your glossary and formality rules, adds a tone note to each inbound message, and compares back-translations of risky replies with the draft.
- People do
- Read the original beside the translation, write or approve every reply, resolve anything a check blocks, and sign off each market's glossary and legal wording.
- Built as
- AI Integration, usually $3.5K - $15K
A team of four, and customers in eleven languages
Say you run support for a European e-commerce brand from Lisbon. Four people work in English and cover Portuguese, Spanish and some French between them. The shop sells into Germany, Austria, Switzerland, the Netherlands, Belgium, Italy, Poland, Sweden and Denmark, and customers write in their own language, as they should.
Everything else goes through a browser tab: paste the message into a translation site, read the English, write a reply, paste it back and send whatever comes out. Mostly it works. The German customer gets du from a brand that has always said Sie, a product name that is also an ordinary word arrives translated, and now and then a number changes on the way: a 30-day window becomes 'a month'.
Nobody can check the Polish reply before it goes, and withdrawal or warranty wording is improvised each time in a language nobody on the team reads. Hiring a native speaker per market does not scale down to forty Danish tickets a week.
The fix is not a chatbot that talks to customers on its own. It is an AI integration inside the helpdesk the team already uses: the four keep writing every reply themselves, so the personal touch stays, and the parts that must not change are protected in code.
A German refund complaint, answered by someone who reads no German
The agent sees the original and the translation side by side, writes in English, and sees every check that ran before the reply can go out.
Zendesk, Monday 09:12
Customer · Email, German
Guten Tag, ich habe am 2. September die Trail Shell Jacke in Größe M bestellt und am 5. zurückgeschickt. Bis heute keine Erstattung. Das ist jetzt schon das zweite Mal, dass ich so lange warten muss. Mit freundlichen Grüßen, Katrin Weber
- detect_language(message: 10492)de / confidence 0.99 / formal register
- translate(to: "en", source: "de", glossary: "de-en v14")Hello, I ordered the Trail Shell jacket in size M on 2 September and sent it back on the 5th. Still no refund. This is already the second time I have had to wait this long. / tone note: frustrated, second complaint about waiting
Ana, support · Draft in English
Hi Katrin, I'm sorry you've had to wait again. Your Trail Shell jacket reached us on 9 September and your refund of €129.90 was approved today. It usually takes 3 to 5 business days to show on your account. If it hasn't arrived by 19 September, reply here and I'll chase it personally.
- translate(to: "de", formality: "prefer_more", glossary: "en-de v14", protect: ["Trail Shell"])German draft returned / protected name unchanged
- apply_profile(market: "de-DE", version: 6)greeting 'Guten Tag Katrin Weber', since Frau or Herr cannot be read from a first name / Sie throughout / sign-off 'Viele Grüße'
- check_invariants(source: "en", target: "de")€129.90 = 129,90 € / 9 Sep = 9. September / 19 Sep = 19. September / 3 to 5 = 3 bis 5 / all match
- back_translate_and_compare(reason: "refund amount and date promise")meaning matches the draft / no commitment added or dropped
Reply as sent · Email, German
Guten Tag Katrin Weber, es tut mir leid, dass Sie erneut warten mussten. Ihre Trail Shell Jacke ist am 9. September bei uns eingegangen, und Ihre Erstattung über 129,90 € wurde heute freigegeben. In der Regel dauert es 3 bis 5 Werktage, bis der Betrag auf Ihrem Konto erscheint. Sollte er bis zum 19. September nicht angekommen sein, antworten Sie einfach auf diese E-Mail, dann kümmere ich mich persönlich darum. Viele Grüße, Ana
- Ana read the checks and sent it. The ticket keeps the German original, the English translation, her draft and the German reply.
What the layer does between customer and agent
A model works in two places: translation in both directions, and the comparison behind back-translation checks. Detection, the glossary, number checks, legal wording and the decision to hold a reply are ordinary code.
01 Trigger · Zendesk, Intercom or Gorgias webhook
A customer writes in any language
A helpdesk webhook fires on each new customer message, by email, chat or messaging. The layer never replies by itself; it prepares what the agent sees.
02 Plain code
Detect the language, per paragraph
Quoted history and signatures are stripped first. Very short messages ('ok, danke') fall back to the customer's known language, and a message that mixes languages is marked as mixed rather than forced into one.
03 AI model · DeepL API
Translate inbound, with a tone note
DeepL translates into the team's language with the market's glossary, which it applies only when the source language is named, so detection comes first. A small model adds one line on tone, because literal translation loses sarcasm and anger.
04 Person
The agent writes in their own language
With original and translation side by side, using macros and the help center as usual. Legal wording is inserted as locked snippets by ID, never typed freehand.
05 AI model · DeepL API: glossary, formality, ignore_tags
Translate outbound under the market profile
Formality comes from the profile, product names and order numbers are wrapped in tags DeepL is told to ignore, and locked snippets are swapped for their approved translation instead of being machine translated.
06 Plain code
Check what must not change
Amounts, dates, order numbers and links are parsed from both versions in each locale's format and compared as values. Protected names, banned terms and the form of address are checked too. A mismatch blocks sending.
07 Decision
How much checking does this reply need?
The risk tier comes from rules on topic, content and language, not from the model's confidence.
- Routine: status updates and how-to answers with no amounts or promises then ready to send once the checks pass
- Money, dates, legal topics, a complaint, or a lower-resource language then a second model back-translates the reply and differences from the draft are highlighted
- A check fails or the back-translation disagrees then held for a native reviewer in Slack before anyone can send it
08 Result
Every version kept, gaps counted
The original, translation, draft and sent text stay on the ticket. A reply with no help-center article in that language to point to is counted for the weekly gap report.
The mistakes machine translation makes in support
Grammar is rarely the problem. These are, and each has its own check rather than a hope that the engine improves.
The wrong form of address
Du where the brand says Sie reads as overfamiliar, and the rule varies by brand as well as country: many Dutch brands write je, Swedish support uses du almost everywhere, a German premium brand wants Sie. The profile sets it, DeepL's formality setting enforces it with prefer_more or prefer_less so unsupported languages do not fail the call, and a word-list check catches informal pronouns in a formal market.
Product names translated as ordinary words
A glossary helps with terms, but a name like Trail Shell is safest when the engine never touches it. Names are wrapped in ignored tags, and a check confirms each one comes back unchanged.
Idioms, sarcasm and anger
'Great, another week without my order' translates literally as praise. The tone note beside every inbound translation tells the agent the mood, so the reply answers the customer and not just the words.
Two languages in one message
Swiss customers switch between German and French, Belgian ones between Dutch and French, and forwarded threads add a third language in the quote. Detection runs per paragraph, the reply follows the customer's own latest text, and the agent can override it in one click.
Legal wording that has to be exact
Withdrawal rights, warranty terms and replies to data requests are never machine translated. They are approved snippets per language, and a draft that touches those topics without the snippet is flagged before it can be sent.
A confident, wrong number
Engines occasionally rewrite numbers: 30 days becomes a month, a decimal comma moves, a date changes format. Amounts, dates and quantities are parsed from both versions in their own locale and compared as values, so 129.90 and 129,90 match while 129.90 and 12.990 do not.
One profile per market, not one prompt for all of them
A market profile is data: the team edits it, it is versioned, and each translation records the version it used. Some of what differs:
| Market | Address | What the profile handles | Legal snippets | Review rule |
|---|---|---|---|---|
| Germany | Sie, unless the brand chose du | A neutral greeting with the full name, since Frau or Herr cannot be read from a first name | Withdrawal instructions (Widerrufsbelehrung) and warranty wording | Back-translation on money and dates |
| Switzerland, German-speaking | Sie | ss instead of ß, applied by a code rule after translation; prices in CHF | Swiss return terms only, because the EU withdrawal texts do not apply there | As Germany |
| France | vous | French terms wherever one is standard, per the glossary | Droit de rétractation and legal guarantee texts | Back-translation on money, dates and legal topics |
| Netherlands and Flanders | u or je, per brand | Two profiles, because vocabulary and tone differ | Withdrawal text (herroepingsrecht) | Standard checks |
| Sweden | du | Dates written 9 september; prices in kronor | Withdrawal text (ångerrätt) | Standard checks |
| Albanian and other lower-resource languages | ju by default | A smaller glossary and more reviewer notes | Only after a native speaker approves them | Every reply back-translated and reviewed by a native speaker until the error log supports less |
The report that shows where each language falls behind
Translation fixes the conversation, not the reason for it. In multilingual support a common reason is that the answer exists in English but not in the customer's language, or only in an old version. The layer already knows which topics came up in which language, so once a week it compares that with the help center.
On Zendesk Guide the check is direct: the Help Center API lists the locales an article is missing, and each translation carries an outdated flag that is set when the source article changes. The report joins those with ticket counts, such as 'returns for sale items: 31 Italian tickets this month, no Italian article' or 'sizing guide: Polish version outdated since June'.
Those few articles deserve a professional or carefully reviewed translation, since a help-center page is read far more often than any single reply. The same profiles and glossary carry over to public review replies, which have the same language problem in public.
Adding a market without guessing
Each new language goes live the same way, with a test set before any customer sees a reply.
- Collect 50 to 100 real tickets from that market, with the replies actually sent, as the test set.
- Build the glossary: names to protect, the brand's words for refund, voucher, delivery and account, and words it never uses.
- Set the profile: form of address, greeting and sign-off, date and currency formats, and the topics that count as high risk.
- Have the legal snippets translated once by a professional translator or lawyer, and lock them.
- Run the test set through the layer and have a native speaker review a sample, logging each error as meaning, tone, terminology or formality.
- Go live with back-translation on every reply in that market, and relax it only when the error log justifies it.
The test sets are re-run whenever the glossary, a profile or the translation engine changes, before the change reaches customers; the scoring approach is covered in evaluation frameworks compared.
Is your helpdesk's built-in translation enough?
Often it is. Zendesk, Intercom and Gorgias all offer translation for agents in some form, with differences in channels and plans; Intercom, for example, lists AI auto-translation of conversations in its Copilot add-on. For a team covering two or three extra languages without strict tone rules, switching that on is the right first step. If quality in a language matters more than speed, Unbabel pairs machine translation with human review and integrates with Zendesk, Salesforce, Intercom and Freshdesk.
A custom layer earns its cost when the rules are the product: a glossary that protects your names, a form of address per market and brand, legal wording that must never be paraphrased, number checks before anything is sent, and a report of where your help center fails each language. It also wins when several helpdesks or brands need one set of rules, or when your data protection review needs to know exactly which provider sees which message.
The build leaves the helpdesk as it is: a sidebar app on the Zendesk Apps framework, or the equivalent surface in Intercom or Gorgias, plus a small webhook service that calls DeepL for translation and a language model only for tone notes and back-translation checks. If you later move to a built-in feature, the glossary, profiles, snippets and test sets stay yours.
How you would know it is working
A blueprint has no results to report, so here is what I would measure from the first week instead, on your own data.
- Translations sent unedited
- Share of outbound translations sent as produced, per language. A falling rate in one language points at its glossary or profile.
- Blocked sends by check
- Number mismatches, protected-name misses, formality and legal-snippet flags per week: a safety record and a map of where the engine struggles.
- Native reviewer error rate
- Errors per hundred reviewed replies in the monthly sample, by type: meaning, tone, terminology, formality.
- CSAT and reopen rate by language
- Compared with the languages the team speaks natively. A gap that does not close means the replies are readable but not yet good.
What a build like this costs
This is built as AI Integration, which runs $3.5K - $45K overall. A build like this one usually lands in the single AI feature tier: $3.5K - $15K, 1-3 weeks. The first working version runs on your real data well before the end of that window.
What it costs to run
DeepL's API is billed per character, and each ticket is translated in and out, plus a back-translation for risky replies. For a team handling a few thousand tickets a month that is a modest monthly line, well below the cost of one hire; tone notes and comparisons add fractions of a cent to a few cents per ticket.
What moves the price
- How many languages and markets, and how many need their own profile (German for Germany and for Switzerland are two)
- How many helpdesks and brands the layer spans
- How much legal wording needs professional translation and locking per market
- Whether the language-gap report is included, and which help center it reads
Who this is for
- E-commerce brands selling across the EU from one support team in one country
- Hotel groups whose guests write before, during and after a stay in their own language
- SaaS companies whose customers expect German, French or Dutch while the team works in English
- Teams pasting messages into a translation site and hoping nothing important changed on the way
Questions people ask about this
Can AI translate support tickets well enough to send?
For the major European languages, yes, when a person reads the result before sending and the parts that must not change are protected in code: product names, amounts, dates, order numbers and legal wording. The failures that matter in practice are a wrong form of address, a translated product name or a changed number, and each has its own check.
How do I connect DeepL to Zendesk?
Through a small service that listens to Zendesk webhooks, calls the DeepL API and shows the result in a sidebar app built on the Zendesk Apps framework, storing each version on the ticket. One detail catches people out: DeepL applies a glossary only when the source language is set explicitly, so language detection has to run first.
Do customers have to be told a reply was machine translated?
No, as long as a person reads, approves and sends every reply: the customer is dealing with that person, who uses a translation tool, which is the reading of the EU AI Act I design around. If replies ever go out without a person in between, Article 50 applies and the first message has to say it is an AI; see the Article 50 transparency rules.
Is sending customer messages to a translation API GDPR compliant?
It can be, with the usual controls: a data processing agreement with the provider, processing in a location your policy accepts, no retention of message text beyond the request, and only the text sent, never the customer record. The same review covers the language model used for tone notes, and both belong in your record of processing activities.
What does a multilingual support layer cost?
It usually falls in the lowest tier of my AI integration pricing for one helpdesk and up to a dozen languages. It moves with the number of helpdesks and brands, how much legal wording needs locking per market, and whether you want the language-gap report. Running costs are mostly per-character translation fees, small next to hiring for each language.
Sources