Deploy a Flow Supporting Multiple Languages

Introduction: Multi-language flows let you run one automation while delivering messages in each contact’s preferred language. You build the flow once, add translations, and RapidPro.app automatically selects the right language when sending messages.

Launch one flow in many languages (the clean way)

If you just need the essentials, follow this quick path:

  1. Enable a Primary language and add Additional languages in Workspace Settings
  2. Create the flow and confirm its primary editing language
  3. Build all messages in the primary language first
  4. Switch to each secondary language to see what’s missing
  5. Translate content (manual or auto-translate with an LLM)
  6. Test delivery using contacts with different Preferred Languages

This setup keeps your canvas readable and ensures contacts receive messages in the language they expect.

Step-by-Step Process

1
Confirm languages in workspace settings
  1. Open Workspace Settings.
  2. Find Languages (or Language Settings).
  3. Set your Primary language (default for your workspace).
  4. Add at least one Additional language you want to support.
  5. Save changes.

[CAPTURE: Workspace Settings page showing Primary Language + Additional Languages.]

💡
Tip: Choose the language your team will use to build flows as the primary language (it keeps editing consistent).

2
Create a flow and select its primary language
  1. Go to Flows.
  2. Click New Flow.
  3. Enter a flow name.
  4. Select the flow language you want to design in (this becomes the flow’s primary editing language).
  5. Click Create.

[CAPTURE: New Flow dialog showing Name + Language selector + Create button.]

⚠️
Warning: If translations are missing later, the flow may fall back to this primary language for those messages.

3
Build the flow in the primary language first
  1. Add your nodes and actions as usual.
  2. Write all Send Message content in the primary language first.
  3. Save the flow.

[CAPTURE: Flow editor showing a few Send Message nodes written in the primary language.]

💡
Tip: Build your core logic first, then translate. It reduces rework if the flow structure changes.

4
Switch to a secondary language in the flow editor
  1. In the flow editor, locate the language selector (near the top of the editor).
  2. Click the secondary language you want to translate into.
  3. Scan the canvas to see which message steps are still untranslated.

[CAPTURE: Flow editor language selector with the secondary language selected + untranslated nodes highlighted.]

⚙️
Technical Detail: Untranslated message steps are visually flagged so you can quickly find what still needs translation.

5
Translate messages (manual or auto-translate with an LLM)

You can translate in two ways:

Option A — Manual translation

  1. Click a Send Message node.
  2. Add the translated text for the selected language.
  3. Save and repeat for each message node.

Option B — Auto-translate with an LLM

  1. Make sure an LLM is configured in Workspace Settings → Artificial Intelligence.
  2. Use the auto-translate feature for the selected language (if available).
  3. Review translations and adjust wording where needed.

[CAPTURE: Send Message editor showing translation fields OR an auto-translate control (if available).]

⚠️
Warning: Never translate variables like @contact.first_name, @results.*, or @globals.*. Keep them exactly as-is so they render correctly at runtime.

6
Validate delivery based on contact language preference
  1. Open a Contact profile.
  2. Check the contact’s Preferred Language.
  3. Start the flow for that contact and confirm the correct language is used.
  4. Repeat with another contact set to a different language.

[CAPTURE: Contact profile showing Preferred Language + a simulator/test run showing translated messages.]

💡
Tip: Test at least one full run per language before using the flow in production.

Common Issues & Quick Fixes

My flow shows only one language in the editor

Problem: You can’t switch to a secondary language while editing the flow.

Fix: Enable additional languages in Workspace Settings first. Only workspace-enabled languages appear in the flow editor.

Some messages still send in the primary language

Problem: A contact receives a few messages in the default language even though you translated the flow.

Fix: Check for untranslated nodes in that language and translate them. Missing translations typically fall back to the flow’s primary editing language.

Variables break after translation

Problem: Messages show blank values or literal variable text after translating.

Fix: Ensure variables (like @contact, @results, @globals) were not modified. Variables must remain identical across languages.

The contact receives the wrong language

Problem: The flow sends translations, but not the one you expect for a specific contact.

Fix: Verify the contact’s Preferred Language and test again. Also confirm the target language is enabled and translated for all required nodes.