Answer foreign-language Zendesk tickets in the customer's language
Read every ticket side by side in English, write your reply in English, and send it back in the language the customer actually wrote in.
Build an app my support reps open whenever a ticket arrives in a language nobody on shift speaks. Right now those tickets get parked until someone bilingual logs on. This app is the working surface that fixes that: any rep should be able to read the whole conversation in English and send a real answer back in the customer's language, without leaving the screen.
The landing view is a queue of open Zendesk tickets, pulled with Search Tickets and backed by List Tickets for the plain default listing. Each row shows the requester, the subject, a badge for the language the customer wrote in, and how long the ticket has been waiting since the customer's last comment. Detect the language by sending the subject and the first customer comment through DeepL Translate Text without specifying a source language, then read the detected source language DeepL returns. Sort longest wait first, and let the rep filter down to non-English tickets only.
Opening a ticket shows the full conversation from List Ticket Comments in two columns: the customer's original words on the left, the English translation on the right, aligned comment by comment with the oldest at the top. Translate the entire thread in a single DeepL Translate Text call by passing the comment bodies as an array of strings, since Translate Text accepts up to 50 strings per request. Do not translate one comment per call. Label each comment with its author and timestamp, and visually mark internal notes so the rep can tell them apart from what the customer actually saw.
Below the thread sits a reply composer where the rep writes in English. As they type, render the outbound translation into the customer's language in a panel beside the English, using Translate Text with the target language taken from the language picker. The rep must always see the translated version rendered before anything is sent. Debounce the translation so it does not fire on every keystroke.
Give the composer a tone control that runs the English draft through DeepL Rephrase Text (Write) to soften it, make it more formal, or tighten it up, then re-renders the outbound translation from the rephrased text. Keep the rep's original English one undo away so a rephrase is never destructive.
Send does two things with Update Ticket. First it posts the translated text as a public reply, so the customer reads their own language. Then it adds the rep's English original as an internal note, so the next rep inherits the audit trail and can see exactly what was intended rather than guessing from a machine translation. These are two separate Update Ticket calls: if the public reply succeeds but the note fails, say so plainly instead of silently dropping half the record.
Default the reply language to whatever the customer wrote in, and offer everything else from DeepL List Supported Languages using the target-language list. DeepL only supports formality control on some target languages, and List Supported Languages reports which ones via a supports formality flag. Show a formal and informal toggle only for those languages, remember the rep's choice per language rather than globally, and pass it as the formality option on Translate Text. This matters in German and Japanese, where the wrong register reads as rude.
Add a Draft a reply button that kicks off a background agent. The agent reads the whole translated thread, works out what the customer actually asked, and writes a plain English response grounded in the specifics of the conversation rather than generic filler. When it finishes, its draft lands in the reply composer for the rep to edit, with the translated preview rendering from it like any other draft. The agent never sends and never calls Update Ticket itself. Show that it is running, and let the rep keep reading the thread while it works.
Cache the inbound thread translations per ticket so reopening a ticket does not re-translate and re-bill the same comments. Keep the queue reachable from the ticket view so a rep can work several tickets in one sitting without navigating back and forth.
What does this prompt do?
- Lists your open tickets with a badge for the language the customer wrote in and how long they have been waiting, so nothing sits parked until a bilingual colleague logs on.
- Shows the whole conversation in two columns, the customer's original words beside a plain English translation, so any rep on shift can follow what happened.
- Lets you write your reply in English and see the translated version before anything is sent, with a one-click tone control to make it warmer, more formal, or shorter.
- Sends the translated reply to the customer and quietly files your English original on the ticket, so the next person picking it up sees exactly what was meant.
What do I need to use this?
- A Zendesk account, with agent access to the tickets your team works
- A DeepL account with API access; the free plan is fine for lower volumes
- Reps who write comfortable English, since the app handles both directions of translation for them
How can I customize it?
- Change which tickets fill the queue, for example only unassigned ones, only a specific support group, or only tickets waiting longer than an hour
- Choose which languages appear in the reply picker, and set whether each one starts out formal or informal
- Adjust what the drafting assistant is told about your tone, product, and policies so its first drafts already sound like your team
FAQs
Will this send anything to the customer on its own?
Does the customer see my English original?
Can I fix the wording before it goes out?
Does it handle languages where politeness matters, like German and Japanese?
Do I need a paid DeepL plan?
What if a ticket is already in English?
Related templates
Work "I think I was hacked" tickets in one place: see each customer's real breach exposure beside their conversation, then note, tag, and reply with confidence.
See which questions your customers keep asking, then record a short avatar explainer for the ones actually worth answering on video.
Reps work their live ticket queue on one screen, get a cited draft answer pulled straight from your documentation, and send it without leaving the app.
One screen showing every published post, the languages it exists in, and which translations fell behind after the English was edited.
Work foreign-language Intercom conversations in English, and see your reply translated back into English before it goes anywhere near the customer.
Your content team opens one board each week, sees exactly which entries are missing German or French, and fills the gaps without leaving the page.
Stop parking tickets until someone bilingual logs on.
Give every rep on shift one screen where they can read and answer whatever language your customers write in.