Skip to content
Glassjaw
Industry notes 6 min read

Multilingual campaign ops without the chaos

How we run weekly CRM campaigns across a dozen languages using one journey, locale-driven content, a fixed translation window and per-locale QA.

Abstract cover art: concentric arcs around a bright focal point on a dark blue field

Running one campaign in one language is a content problem. Running the same campaign in twelve languages on a weekly cadence is an operations problem. The copy is rarely what breaks first.

What breaks is the handover. Someone writes, someone translates, someone builds, someone presses send. Each step carries its own deadline and its own version of the truth, and by the third market the brief has quietly drifted.

We see the same failure pattern at brands with international audiences. A journey gets cloned per market, each clone picks up a small local fix, and two quarters later nobody knows which version is canonical. Correcting one broken link then means correcting it fourteen times.

Keep one journey, vary the content

Our first rule is that market is a content variable, not a journey variable. One canvas, one set of entry rules, one exit condition, and a content block that resolves by locale at send time.

Cloning feels fast on day one. It costs you every day after that. Each clone becomes a separate place where a consent rule, a suppression list or a tracking parameter can go stale without anyone noticing.

Some splits are legitimate. Different legal wording, a market with no SMS channel, a promotion that runs in two countries only. Split on those reasons, write the reason down next to the journey, and review every split once a quarter.

The same discipline applies to lifecycle programmes, which is why we set the structure up front rather than retrofitting it. We covered that groundwork earlier on this topic in onboarding journey design.

Decide where language lives in your data model

Locale should sit on the profile as a single attribute, written by a rule you can explain out loud. Most teams have three candidate signals: declared language preference, account country, and device or browser language.

Rank them once. Declared preference wins, country fills the gap, device language is the last resort. Store the source of the value too, so you can tell a guess from a choice.

Then define a fallback chain rather than a default. A profile marked fr-CA should fall back to fr before it falls back to en. Without a chain, one missing translation quietly drops the recipient into English.

Two checks we run on every new market:

  • Every locale in the profile data has a matching content variant, or an explicit fallback.
  • No locale value exists that the platform cannot resolve. Free-text language fields are where this goes wrong.

Give translation a window, not a chat thread

Translation requests that live in a messaging thread arrive late and undocumented. We replace that with a fixed weekly window: source strings freeze on a set day, translations return two working days later, build starts the morning after.

Send translators the full context, not a spreadsheet of fragments. That means the layout, the character limits, the audience, and the intent of the message. A subject line brief without a character limit comes back 60 characters long and gets truncated on mobile.

Keep a shared glossary for product names, tier names and anything legal. Decide once whether a brand term is translated or left in English, and record the decision. Re-litigating that every campaign is a slow tax on the team.

QA each locale before the send, not after

Locale QA is a checklist, and it is short enough to run properly. We hold ours to items that have genuinely broken sends:

  • Rendering: subject line length, preheader, push truncation on the shortest supported handset.
  • Personalisation tokens: every token has a fallback, and the fallback reads naturally in that language.
  • Numbers and dates: currency symbol, decimal separator, date order, and time zone in the copy.
  • Direction and script: right-to-left layouts and non-Latin scripts checked in a real client, not a preview pane.
  • Legal and links: the correct footer, the correct unsubscribe wording, and links pointing at the right locale of the site.

Run it on live seed profiles in each locale rather than on test data. A seed list with real attribute values catches the fallback problems that clean test records never will.

Plan the calendar around local reality

A single global send time is a compromise everywhere. Schedule by local time zone, and accept that your reporting day now spans more hours than your working day.

Build a market calendar of public holidays, school terms and category-specific events. Retail peaks differ by country. Sports and entertainment schedules move weekly and force real deadlines on the content chain.

Our work on Premier Padel runs dozens of multilingual tournaments a month across more than a million unified users, and the calendar is what makes that survivable. The journeys are fixed, the content is locale-driven, and the tournament schedule feeds the timing rather than the build.

Agree in advance what happens when a translation misses the window. Our default is to send the fallback language on time rather than delay the whole campaign. Hold that rule for a month and deadlines start being met.

Measure at market level as well as in aggregate. A programme that looks flat overall often hides one market improving and another declining. The same goes for testing: a locale-specific send time or a market-specific frequency cap is usually worth more than another localised subject line test.

If you want a second pair of hands on the weekly build and QA rhythm, that is the kind of work our execution team runs day to day.

What to do this week

  • Count your journeys that exist only because of language, and pick two to merge back into a single locale-driven canvas.
  • Write down your locale fallback chain, then query your profile data for any locale value that has no matching content variant.
  • Put a translation freeze day in the calendar, tell the team the window, and hold it for the next four campaigns.
Earlier on this topic · 1

Ready to transform your marketing?

Let's build something great.

By sending this form you agree to our privacy policy.