How to translate emails directly in Salesforce – without copy-paste?

Many teams copy email text from Salesforce into external translators and back again. That takes time, is error-prone, and doesn’t fit clean CRM processes. Can you avoid the media break?
1) What works with Salesforce out of the box—and where are the limits?
- Manual copy-paste or browser plug-ins: works, but it’s slow, error-prone, and not audit-proof inside the CRM.
- Third-party integrations in general: there are other vendors and custom builds via API—effort and integration depth vary widely.
Bottom line: if you want to “translate email text directly in the record/editor,” you need an integrated solution.
2) The pragmatic solution: DeepL for Salesforce
With DeepL for Salesforce, you translate emails directly in the CRM—no copy-paste, no tool switching. You control tone (formality), preserve formatting, and secure terminology (glossaries/“non-translatables”).
Official docs: https://www.deepl-for-salesforce.com/de/documentation
What the app covers (excerpt):
- Translate emails, notes, and fields directly in Salesforce
- Formality (Sie/du), Preserve Formatting, Split Sentences, Tag Handling
- Glossaries and Non-Translatables for consistent terminology
- Automatable via Salesforce Flows/Apex; Results tab for monitoring
3) Step by step: Translate emails directly in Salesforce
Goal: translate email text inside the CRM without copy-paste—either on demand (click) or automatically (Flow).
0) Prerequisites (one-time)
- Install the app & assign permissions (AppExchange → Get It Now; assign the appropriate Permission Sets).
- In DeepL for Salesforce → Configurations: enter your DeepL API key (optionally set error email/debug).
- Optional quality setup:
- Settings (e.g., “more/less” formality, Preserve Formatting)
- Glossaries / Non-Translatables (brand/technical terms)→ See docs sections Configurations, Settings, Glossaries, Results.
1) On-demand translation via button
a) Create a target field (one-time): On EmailMessage, add a (Long) Text field, e.g., TranslatedBody_c (for the translation preview).
b) Create a translation template:
- App → Templates → New
- Object Name: EmailMessage
- Type: Records
- Setting: choose your desired setting (e.g., formality)
- Configure:
- Source Field: HtmlBody (or TextBody)
- Target Field: TranslatedBody_c
- Optional Context Field (e.g., Subject) for better accuracy
c) Expose a Flow action & wire it to a Quick Action:
- Setup → Flows → New Flow (Screen Flow)
- Resource recordId (Text, Available for input)
- Action: DeepL Translation → Parameters: Id = recordId, Template = your template
- (Optional: confirmation screen “Translation successful”)
- Activate the Flow
- Add a Quick Action to the EmailMessage layout → “Action Type: Flow” → select your Flow
Result: On the email record, the user clicks the action → DeepL writes the translation into TranslatedBody_c. (Details & screenshots: see Documentation.)
2) Automatic translation (incoming/outgoing)
- Record-Triggered Flow on EmailMessage (After Insert)
- Action: call DeepL Translation with your template ID
- Optional: write detected source/target language to fields, set flags, etc.
3) Quality & traceability
- Check Results (success/errors; use Clear for cleanup)
- Use Glossaries/Non-Translatables to maintain terminology
- Set Settings appropriately (Formality, Preserve Formatting, Split Sentences, Tag Handling)→ All described in the official docs: see Documentation.
4) Conclusion
Salesforce doesn’t translate free-form email text on the fly. Workarounds (multilingual templates per language) are labor-intensive; copy-paste to external translators wastes time. DeepL for Salesforce solves exactly this: translate emails directly in the CRM, control tone, maintain terminology, and automate when needed—without leaving your system.
If this is relevant for you and you want to try it yourself, you can test the app for free. You can download DeepL for Salesforce from the AppExchange.