Introduction: If you support multiple languages, translating every message node manually can slow you down. With an LLM (like ChatGPT or Anthropic) connected to RapidPro.app, you can auto-translate your flow in one pass—then review and publish faster.
7–10 min read
Flows
Updated on: 18/12/2025
Auto-translate your flow (then review fast)
If you just need the essentials, follow this quick path:
- Confirm prerequisites: Additional languages + an enabled LLM model
- Switch the editor to the target language (so untranslated nodes appear)
- Open the Flow Translation panel
- Run Auto Translate and monitor completion
- Review every translated node and preserve variables exactly
- Re-check SMS length and Unicode risk after translation
Auto-translate speeds up multilingual rollout—but quality still depends on a careful human review.
Step-by-Step Process
- Open Workspace Settings.
- Verify you have Additional Languages added (not just the default language).
- Go to Artificial Intelligence.
- Confirm at least one LLM provider/model is configured and active.
[CAPTURE: Workspace Settings showing Additional Languages + AI section with at least one model enabled.]
- Go to Flows.
- Open the flow you want to translate.
- In the flow editor, use the language selector to switch from the primary language to the target language (example: English → Spanish).
- Confirm untranslated message nodes are visually flagged (often highlighted).
[CAPTURE: Flow editor showing language selector and untranslated nodes highlighted after switching language.]
- After switching languages, look for Flow Translation on the right side of the editor.
- Click Flow Translation to open the translation view.
- Review the list of items needing translation (messages and any relevant categories).
[CAPTURE: Flow editor with the “Flow Translation” panel open and a list of nodes awaiting translation.]
- In the Flow Translation panel, click Auto Translate.
- If prompted, select the LLM you want to use (when multiple models are available).
- Start the translation.
- Watch the progress indicator until it completes.
[CAPTURE: Flow Translation popup showing Auto Translate button + model selection + completion percentage/progress.]
- Click through translated Send Message nodes in the target language.
- Fix wording, tone, formatting, and local terms as needed.
- Ensure variables are preserved exactly (examples:
@contact.first_name,@results.*,@globals.*).
[CAPTURE: A translated Send Message node being reviewed in the editor.]
- In the translation panel, check if you see Make Default (or equivalent).
- Use it only if you want the flow’s default language to become the translated language.
[CAPTURE: Flow Translation panel showing “Make Default” option.]
- If the channel is SMS, re-check message length after translation.
- Watch for extended characters (accents, emojis, non-Latin scripts) that may trigger Unicode.
- Shorten messages or split long content across multiple nodes if needed.
[CAPTURE: Send Message editor showing character counter and/or warning indicators.]
Common Issues & Quick Fixes
I don’t see “Auto Translate”
Problem: The translation panel is open, but there’s no auto-translate button.
Fix: Confirm an LLM model is configured and enabled in Workspace Settings → Artificial Intelligence. Also confirm you switched the editor to a non-default language.
My variables got translated or changed
Problem: Messages show broken personalization (or literal variable text) after translation.
Fix: Restore variables exactly (for example, @contact.first_name, @results.*, @globals.*). Never translate or “localize” variable names.
Some categories on “Wait for Response” are still untranslated
Problem: The completion percentage isn’t 100%, or some labels/options stay in the primary language.
Fix: Review the translation panel list and translate remaining categories (especially user-visible quick replies or category names used as on-screen options).
My SMS got split into multiple messages after translation
Problem: Translated content arrives as multiple SMS parts or costs more than expected.
Fix: Shorten translated copy and remove unnecessary Unicode characters where possible. Split long text across multiple Send Message nodes to control where breaks happen.
