Localization
Localization in JustAI is driven by attributes: you pass a user’s locale as an attribute, then tag each variant with the locale(s) it’s eligible for.
In the examples below, we’ll call the attribute locale. If you name it something else, just substitute your attribute name anywhere you see locale.
This tutorial shows how to set up:
- Basic localization routing (EN users see EN copy, ES users see ES copy)
- A “localization test” (e.g., improve Spanish subject lines without impacting English)
- Optional: localized controls (so your baseline is localized too)
Before You Start
Section titled “Before You Start”- Decide what you’ll use as the locale value (examples:
en-us,es-es,fr-fr). - Make sure your delivery request can provide that locale to JustAI (via your integration or API call).
- For A/B tests, use Configure → Integration → Internal Experimentation (Recommended).
1) Define A Locale Attribute (Org Settings)
Section titled “1) Define A Locale Attribute (Org Settings)”- Go to Organization Settings → Template Defaults:
https://console.justwords.ai/settings?tab=Template%20Defaults - Create a new attribute for user locale. In this tutorial we’ll call it
locale, but the name can be whatever you prefer (for exampleuserLocaleorlanguage). - Add the locale options you support (for example
en-us,es-es,fr-fr). - Mark your primary locale as the default (often
en-us).
Make sure the options you configure match what your CRM/ESP actually sends today (including formatting like hyphens vs underscores). If your CRM sends en-US, either standardize it upstream or add an option/alias that maps it to your canonical value.
- Learn more: Attribute Configuration
2) Add locale To The Template’s Segmentation
Section titled “2) Add locale To The Template’s Segmentation”In your template setup, include locale in Personalization → Attributes. This makes locale available for organizing and targeting variants in that template.
- Setup guide: Templates → Setup Guide
3) Tag Each Variant With A Locale Filter
Section titled “3) Tag Each Variant With A Locale Filter”Open your template from https://console.justwords.ai/templates, then go to Studio → Variants. Tag each variant with the locale it’s meant for (often shown as Hypersegment or Attributes on the variant).
Example structure for a localized campaign:
- Control (EN):
locale=en-us - Control (ES):
locale=es-es - Variant A (ES):
locale=es-es - Variant B (ES):
locale=es-es
With this setup, a user with locale=es-es is only eligible for variants tagged locale=es-es (and likewise for en-us).
4) Run A Localization Test (Optimize Within A Locale)
Section titled “4) Run A Localization Test (Optimize Within A Locale)”If your localized copy already exists and you want to improve it, treat each locale like its own “lane”:
- Pick one locale to optimize (e.g., Spanish
es-es). - Keep your Spanish baseline as a control tagged
locale=es-es. - Create a few Spanish variants tagged
locale=es-es(for example: 2–3 subject-line alternatives). - In your template’s Configure → Integration, launch using Internal Experimentation so JustAI can split traffic within that locale.
This lets you run experiments that improve Spanish performance without mixing results with English (or changing what English users see).
5) When You Need Localized Controls (Important)
Section titled “5) When You Need Localized Controls (Important)”If you don’t tag controls by locale, your “control” can become a mixed baseline (or a fallback that matches everyone), which makes readouts hard to trust.
To keep comparisons clean:
- Tag every control with a locale the same way you tag treatments.
- Use Internal Experimentation so that when a user is assigned to the control bucket, JustAI can still serve the matching localized control for that user’s locale.
6) Quick QA Checklist
Section titled “6) Quick QA Checklist”- Confirm your template is using Internal Experimentation.
- Confirm
localeis present for real users hitting the template (ask your technical teammate if you’re unsure). - Confirm each localized variant (and control) has the right
locale=...tag. - Avoid “catch-all” variants (no locale tag) unless you intentionally want a fallback.