
How It Works
- You set a primary language for the company.
- You add supported locales such as
es,fr, orpt-BR. - You choose which subscriber custom attribute contains the locale value.
- You optionally map raw attribute values like
spanishorpt_BRto normalized locale codes. - Sequenzy resolves the recipient locale at send time and picks the best matching localized variant.
Company-Level Settings
Localization settings live on the company and apply to campaigns, automations, transactional template sends, and A/B test variants. You can configure:- Primary language and text direction: The language your emails are written in and whether new emails default to left-to-right or right-to-left.
- Supported locales: The set of languages you want to maintain for email.
- Fallback locale: The locale Sequenzy should use when a subscriber value does not match.
- Subscriber locale attribute: The custom attribute key to read at send time, including dot-paths like
profile.locale. - Value mappings: Raw subscriber values mapped to normalized locales, for example
spanish -> es. - Auto-sync mode: Whether localized variants sync only manually or automatically when the source language changes.
Custom Locale Codes

fr-CAfor Canadian Frenchsr-Latnfor Serbian written in Latin scripten-AUfor Australian English
pt_BR becomes pt-BR. Deprecated language aliases also resolve to their
modern codes, such as iw to he and tl to fil. Existing localized
variants stored under an older alias continue to work and appear under the
modern locale throughout the app and developer tools.
Per-Email Variants
Every email keeps its primary version as the source of truth. Additional locales are stored as localized variants with their own:- Subject
- Preview text
- Block content
- Sync status
- Last sync time
- Last sync error
- Whether you edited it by hand (
editedAt)
Adding A Language
When you add a language in Settings > Localization and save, Sequenzy translates your existing emails into it in the background, whether or not Translate automatically when I save is on. That covers every email step and A/B variant in sequences that are not archived, plus every enabled transactional email. You do not need to open each email. Each language in Settings shows how many of those emails are translated and updates while translations run, even after you reload the page. If some translations fail, or you added a sequence email since, click Translate N emails next to the language to translate the ones that are missing. This only fills in missing and failed translations. Translations you edited, up-to-date ones, and outdated ones are left alone. Outdated translations follow your Translate automatically when I save setting, or the Translate button in the email editor. Campaigns are not included: the campaign review step checks their translations before you send. Changing the language you write in does not translate every email into the previous one. Use Translate N emails next to it if you want that.Editing Translations
Open an email in the editor, click Translations, and choose a language to edit its subject, preview text and content directly. Changes only affect that language. Translations you edit are kept:- Automatic translation when you save never replaces an edited translation.
- When the original changes afterward, the edited translation is marked
Needs review (status
stale). Subscribers keep getting your edited version until you review it. Choose Keep my version to confirm it, or Retranslate to replace it with a fresh AI translation. - Translate in the Translations menu updates outdated, missing and failed languages and never touches edited ones.
Sync Status
Localized variants move through four statuses:synced: The locale matches the current primary-language source.stale: The primary email changed and this locale needs to be refreshed. Stale translations are still sent until you update them.syncing: Sequenzy is currently generating or refreshing the locale.failed: The sync attempt failed and kept the previous content. Failed translations are not sent; those subscribers get the fallback locale.
Send-Time Locale Resolution
When Sequenzy sends an email, it:- Reads the configured subscriber attribute.
- Normalizes and maps the value to a locale.
- Tries an exact locale match such as
pt-BR. - Falls back to a base locale match such as
pt. - Falls back again to your configured fallback locale.
- Uses the primary language if no localized variant is available.
Email Preferences Page
The page your unsubscribe link opens, and the embeddable preferences widget, use the same language as the contact’s emails: the language their attribute resolves to, or your primary language when you have not set up a language attribute. Your list names and company name appear as you wrote them. The page is translated into Arabic, Chinese (Simplified and Traditional), Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Thai, Turkish, Ukrainian and Vietnamese. Arabic and Hebrew read right to left. For any other language, the page uses your primary language if it is translated, otherwise English. Visitors can switch the language from the menu under the page. To open the page in a specific language, addlang to the link, such as ?lang=de. If the link
is invalid or expired, the page uses the visitor’s browser language.
Push Notifications
Push campaigns and sequence push steps use the same language list and language attribute. Adding a language translates sequence push steps too, and the language’s coverage and Translate button count them next to emails. A push can also go by the language of the device it is sent to when the contact has no language attribute. See Push notifications: Languages.AI Sync
When you sync a locale, Sequenzy translates the human-readable content while preserving the email structure. The sync keeps:- Block IDs and block order
- Styles and layout
- Links and tracking settings
- Merge tags such as
{{FIRST_NAME}} - HTML tags inside rich text
Hi {{FIRST_NAME|there}} becomes Hola {{FIRST_NAME|amigo}} in Spanish: the
variable name stays exactly as you wrote it, and only the fallback after | is
localized. Fallbacks that are not prose - numbers, codes, URLs, and email
addresses - are left alone, and so is any fallback inside a link, such as
https://shop.example.com/checkout?discount={{CODE|WELCOME10}}, because the
value there is read back verbatim rather than shown to the reader.
API, CLI, And MCP Access
Developer tools can inspect localized variants, store caller-supplied translations, and explicitly queue AI translation.CLI
MCP
get_companyreturns the effective localization settings for a company.list_templatesreturns template-level localization status by locale.get_templatereturns the full localized variants for a template.set_template_localizationstores a caller-supplied localized variant. PasskeepEdits: trueto protect it from automatic translation on save.sync_template_localizationsqueues AI translation for selected or all enabled non-primary locales. PassskipEdited: trueto keep edited translations.get_template_localization_coveragecounts, per language, how many sequence and transactional emails are translated, translating, failed or missing.translate_missing_template_localizationsqueues AI translation for every sequence and transactional email missing a language, or whose last translation failed.sequenzy://companyexposes the currently selected company as a read-only resource.
REST API
PUT /api/v1/templates/{templateId}/localizations/{locale}creates or replaces a localized variant using supplied HTML or Sequenzy blocks.POST /api/v1/templates/{templateId}/localizations/syncqueues AI translation. Omitlocalesfrom the JSON body to sync every enabled non-primary locale. Explicit syncs retranslate edited translations unless you passskipEdited: true; kept locales come back inskippedLocales.GET /api/v1/templates/localizations/coveragereturns translation counts per language across every sequence and transactional email.POST /api/v1/templates/localizations/translate-missingqueues AI translation for every sequence and transactional email missing a language.
keepEdits: true (CLI --keep-edits) to
protect them like a dashboard edit.
Notes
- Direct transactional sends that provide raw subject and HTML are not localized automatically. Template-based sends are.
- A localized variant can be edited manually. A primary-language change marks it as stale (Needs review) but keeps your edits.
- A/B test variants maintain their own localized copies separate from the base email template.