Part 3 of 7 · Translation relay series ~5 min read

How a message gets translated for staff

The relay knows the language now. Next it turns the customer’s message into your team’s working language so a staff member who doesn’t speak a word of it can read it and act. The goal isn’t a perfect literary translation — it’s a faithful, plain one, with the bits the machine wasn’t sure about marked so a person can judge them. Most messages go through the cheap model and stop. The hard passages get a second, stronger pass before anyone sees them.

Key takeaways

  • Protected terms, numbers, and prices are masked before translation, then restored after (covered in Part 5).
  • The everyday translation runs on Claude Haiku 4.5 — small, fast, and cheap.
  • The model returns a confidence read per passage, not one score for the whole message.
  • Low-confidence passages get a second pass from the stronger Claude Sonnet 4.6.
  • Staff see the original and the translation side by side, with unsure passages highlighted.

The translate-in flow, per message

Translate-in flow for one incoming message A vertical flow diagram. At the top, an input box "Cleaned message + language" with the message text and the detected language from Part 2. Below that, a step "Mask protected terms" — brand names, product names, account IDs, numbers, and prices are swapped for placeholders so the model can't alter them. Below that, a check "Already translated this turn?" — if the same message was already translated (a retry), reuse the stored result and route to "Show to staff." If not, continue. The next step "Translate with Haiku 4.5" — the cheap model turns the masked message into the team's working language and returns a confidence read per passage. The next step "Any passage below threshold?" — if no passage is low-confidence, route straight to "Show to staff." If one or more passages are shaky, look at how shaky. The next step "Re-run weak spans on Sonnet 4.6" — the stronger model re-translates only the low-confidence passages, not the whole message, to keep cost down. Each terminal box — Show to staff, Highlight span, Flag for human, Restore terms — represents where the message can end up. Show to staff: confident translation ready. Highlight span: a passage stays marked unsure even after Sonnet, so it's shown with the original next to it. Flag for human: the meaning is genuinely unclear, so a bilingual teammate is asked before the reply is written. Restore terms: the masked placeholders are swapped back to the exact original names and figures. A note at the bottom: the cheap model handles almost everything; the stronger model only touches the passages that need it. Cleaned message + language text · from Part 2 detect Step 1 Mask protected terms names · numbers · prices Step 2 Already translated this turn? reuse cached result Step 3 Translate with Haiku 4.5 confidence read per passage Step 4 Any passage below threshold? none → show to staff unclear → flag for human Step 5 Re-run weak spans on Sonnet only the shaky passages Show to staff confident, ready Highlight span show with original Flag for human ask a bilingual Restore terms put names back exact cached none restore fixed still unclear The cheap model handles almost everything — the stronger one only touches what needs it.
Fig 3. The translate-in flow, per message. Mask the protected terms, translate with the cheap model, read the confidence per passage, re-run only the shaky passages on the stronger model, then restore the exact names and figures and show staff the result.

Mask first, translate second

Before a single word goes to a model, the relay locks down anything that must not change. Your brand name, your product names, account and order IDs from the glossary, and every number and price in the message are swapped for neutral placeholders — little tokens like [[TERM_1]] and [[NUM_3]]. The model translates the words around them but literally cannot touch what’s inside, because it never sees the real values. After translation, the placeholders are swapped back to the exact originals. This is the single most important guardrail in the whole system, and Part 5 is devoted entirely to it. For now: by the time the message reaches the model, the risky parts are already safe.

The cheap pass does most of the work

The everyday translation runs on Bedrock with Claude Haiku 4.5 — a small, fast model that costs a fraction of a cent per message. The prompt is short and strict: “Translate the message between the placeholders into {team language}. Keep the placeholders exactly as they are. Stay faithful and plain; don’t add or drop meaning. Return the translation, and for each sentence return a confidence score from 0 to 1.”

That per-passage confidence is the part that earns its keep. A whole-message score would tell you the message is “87% fine,” which is useless — the 13% that’s wrong might be the one sentence that decides the refund. Scoring each sentence means the relay can be confident about the easy parts and honest about the one clause it struggled with, and a staff member can see exactly where to look.

The careful pass, only where it’s needed

If every passage clears the confidence threshold, the message is done — the cheap model handled it, no further calls. If one or two passages come back shaky, the relay re-runs only those passages on the stronger Claude Sonnet 4.6, with the surrounding sentences as context. This is the heart of keeping the bill small: the expensive model never translates a whole message, only the handful of clauses that genuinely need a better reader. Slang, sarcasm, a half-sentence that switches language mid-way, an idiom that doesn’t map cleanly — these are where Sonnet earns its higher price.

After the second pass, a passage either clears (it’s now confident, and it’s shown normally) or it’s still unclear. A still-unclear passage isn’t buried — it’s highlighted in the staff view with the original text right beside it, so the agent can see “the relay isn’t sure what this clause means.” And if the whole message is genuinely impenetrable — truly mixed languages, or a cultural reference with no equivalent — it’s flagged for a bilingual teammate before a reply is written. The relay would rather admit it’s stuck than hand the agent a confident-looking sentence that’s quietly wrong.

What the staff member actually sees

The agent opens the thread and sees two columns. On the left, the customer’s original message in their own language. On the right, the translation in the team’s language. Anything the relay wasn’t sure about is highlighted, and hovering shows the original snippet for that passage. The protected terms — order numbers, product names — appear identically on both sides, because they were never translated. The agent reads the right column, glances at the highlights, and now understands the customer’s problem as well as if it had come in their own language. They don’t have to trust the machine blindly, because the original is always one glance away.

Next post: the agent writes a reply in their own language, and the relay carries it back out — translating it into the customer’s language, showing a round-trip check, and waiting for a person to press send.

All posts