Skip to main content
Sequenzy localization settings with callouts showing locale mappings and text direction
Sequenzy lets you author an email in one primary language and keep extra localized variants alongside it. You configure localization at the company level, then each email template can store per-locale variants that Sequenzy uses at send time.

How It Works

  1. You set a primary language for the company.
  2. You add supported locales such as es, fr, or pt-BR.
  3. You choose which subscriber custom attribute contains the locale value.
  4. You optionally map raw attribute values like spanish or pt_BR to normalized locale codes.
  5. 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

Sequenzy localization settings with callouts showing language, direction, and locale mappings
If the locale you need is not in the language picker, you can enter a standard locale code directly. Use a two- or three-letter language code with optional script, region, or variant subtags, for example:
  • fr-CA for Canadian French
  • sr-Latn for Serbian written in Latin script
  • en-AU for Australian English
Primary locale codes can contain up to 10 characters. Additional supported locale codes can contain up to 32 characters. Sequenzy accepts either hyphens or underscores and saves the canonical form, so 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.
Before you send a campaign, the review step lists languages that are outdated, not translated, or failed, and what those subscribers will receive.

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:
  1. Reads the configured subscriber attribute.
  2. Normalizes and maps the value to a locale.
  3. Tries an exact locale match such as pt-BR.
  4. Falls back to a base locale match such as pt.
  5. Falls back again to your configured fallback locale.
  6. 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, add lang 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
Only visible copy is translated. Merge tag fallbacks are visible copy, so they are translated too. A subject of 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_company returns the effective localization settings for a company.
  • list_templates returns template-level localization status by locale.
  • get_template returns the full localized variants for a template.
  • set_template_localization stores a caller-supplied localized variant. Pass keepEdits: true to protect it from automatic translation on save.
  • sync_template_localizations queues AI translation for selected or all enabled non-primary locales. Pass skipEdited: true to keep edited translations.
  • get_template_localization_coverage counts, per language, how many sequence and transactional emails are translated, translating, failed or missing.
  • translate_missing_template_localizations queues AI translation for every sequence and transactional email missing a language, or whose last translation failed.
  • sequenzy://company exposes 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/sync queues AI translation. Omit locales from the JSON body to sync every enabled non-primary locale. Explicit syncs retranslate edited translations unless you pass skipEdited: true; kept locales come back in skippedLocales.
  • GET /api/v1/templates/localizations/coverage returns translation counts per language across every sequence and transactional email.
  • POST /api/v1/templates/localizations/translate-missing queues AI translation for every sequence and transactional email missing a language.
Translations stored through the API, CLI or MCP are replaced by automatic translation on save, as before. Pass 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.