Translations
Send one email in multiple languages: add per-language translations to a single template and Owlat picks the right version for each recipient.
Translations let you send the same email in multiple languages. Instead of creating separate templates for each language, you add translations to a single template — and Owlat automatically picks the right version based on each recipient's language. This works for both marketing campaigns and transactional emails.
How translations work
- You build your email in its default language using the main editor.
- You add one or more additional languages in the email's Translations view.
- When the email is sent, each recipient gets the version matching their Language field.
- Recipients with no language set — or a language you haven't translated — fall back to the default version.
The resolution order is: the language requested on the send (transactional only) → the contact's stored language → the email's default language. If the chosen language has no translation, Owlat falls back to the default content.
What gets translated
Each translation stores its own copy of the text content for that language, while the structure, layout, images, colours, and styling stay shared across every language. The translatable fields are:
| Field | Where it comes from |
|---|---|
| Subject line | The email subject |
| Preview text | The email's preview/preheader text (marketing emails only) |
| Text-block content | Headings and paragraphs in text blocks |
| Button labels | The visible text on button blocks |
| Image alt text | The alt text on image blocks |
Text inside columns and containers is picked up recursively, so nested content is translatable too. You design the email once and translate only the text, rather than rebuilding it for each language.
Adding translations
Translations live in a dedicated table view per email, not in the main block editor.
Open the Translations view
Open the email, then click Translations in the editor toolbar. (Marketing emails open at /dashboard/send/emails/{id}/translations; transactional emails at /dashboard/send/transactional/{id}/translations.) You'll see a grid with one row per translatable field and one column per language.
Add a language
Click Add Language and pick a language from the list. Owlat creates a new column, seeding it with a copy of the default-language text as a starting point.
Edit each cell
Click any cell in the new language column and type the translation. Changes save automatically as you edit each cell — there's no separate save button.
Repeat for more languages
Add as many languages as you need. Each one is independent, so adding or removing a language never affects the others.
In the Translations view, the default-language column is shown for reference only and cannot be edited. To change the original copy, edit the email in the main editor — those edits become the source the other languages are translated from.
Start with your most important secondary language. You can always add more languages later without affecting existing translations.
Auto-translate with AI
Each language column has a sparkle button (✨) labelled Auto-translate with AI. Clicking it sends every empty field in that column to your configured LLM and fills in a draft translation, leaving any cells you've already written untouched. It's a fast way to get a full first pass that you can then review and tweak cell by cell.
Auto-translate calls the AI provider configured for your deployment. If no provider or API key is set up, the button reports a configuration error. See AI Agent & Autonomy for how the LLM provider is configured.
Setting contact language
A contact's language preference can be set in two ways:
- In the dashboard — edit the Preferred Language field on the contact's detail page
- CSV import — include a
Languagecolumn in your import file
Language values should use standard language codes (e.g., en, fr, de, es). This keeps contact preferences and template translations matching consistently.
Forms cannot capture a contact language — form fields are limited to email, text, and checkbox types, and submissions never write the Language field. The public Contacts API and the SDKs also do not accept a language parameter when creating or updating a contact. The one exception is the Transactional API, where a send can specify the language to use for that message (see below); it does not change the stored contact language.
Translations in campaigns
When you create a campaign, you select a template. If that template has translations:
- Each recipient automatically receives the version matching their language
- The campaign report shows results across all language versions
- You don't need to create separate campaigns per language
Translations in transactional emails
Transactional emails support the same translation system. A transactional email can carry its own per-language subject and block translations, and Owlat resolves the right language for each send.
- The send can request a specific language explicitly via the Transactional API. If it doesn't, Owlat uses the recipient contact's stored language, then the email's default language.
- If the resolved language has no translation, the default-language content is used.
This means a single transactional email — for example an order confirmation — can be delivered in each recipient's own language without maintaining separate emails.
Best practices
- Keep translations in sync — when you update the default-language version, update the translations too
- Use simple, clear language — shorter sentences translate more naturally and look better across different languages
- Test each language — send test emails for every translation to verify that text fits properly within the layout
- Prioritize by audience — translate into the languages that cover the largest portion of your audience first
- Review AI drafts — auto-translate gives you a fast first pass, but always proofread before sending
If you add new text blocks to your email after creating translations, remember to translate those blocks as well. Untranslated fields fall back to the default-language content.
Next steps
- Email Editor — build the email you'll translate
- Email Templates — manage your template library
- Transactional Emails — translate order confirmations and other system emails
- Contacts — set language preferences on your contacts
- Campaigns & Reporting — send translated campaigns