Template Compliance: Managing WhatsApp Template Languages

If you’re using WhatsApp templates in RapidPro.app, make sure your templates are created with the correct languages so they map cleanly to the languages configured in your workspace. Some WhatsApp language variants don’t have direct equivalents in RapidPro.app, so using the wrong variant can cause mismatches and prevent the right template from being selected.

Quick setup checklist

  1. Use generic languages (avoid region variants)
  2. Apply the WhatsApp → RapidPro.app language mappings
  3. Validate templates against workspace languages
  4. Test language selection in a flow
  5. Troubleshoot mismatches
1
Use generic languages and avoid region-specific variants

Some WhatsApp template language variants do not map cleanly to RapidPro.app language codes. To reduce mismatches, use the generic language instead of region-specific variants.

Avoid these region-specific WhatsApp languages:

  • Chinese (HKG) zh_HK
  • Chinese (TAI) zh_TW
  • English (UK) en_UK
  • English (US) en_US
  • Portuguese (Brazil) pt_BR
  • Spanish (Argentina) es_AR
  • Spanish (Spain) es_SPA
  • Spanish (Mexico) es_MX
💡
Tip: If you already created templates using a region variant, create a second template using the generic language code and test which one is selected reliably.

2
Apply the WhatsApp to RapidPro.app language mapping

Use the mappings below to align WhatsApp template languages with RapidPro.app language codes:

af="afr"     # Afrikaans
sq="sqi"     # Albanian
ar="ara"     # Arabic
az="aze"     # Azerbaijani
bn="ben"     # Bengali
bg="bul"     # Bulgarian
ca="cat"     # Catalan
zh_CN="zho"  # Chinese (CHN)
hr="hrv"     # Croatian
cs="ces"     # Czech
da="dah"     # Danish
nl="nld"     # Dutch
en="eng"     # English
et="est"     # Estonian
fil="fil"    # Filipino
fi="fin"     # Finnish
fr="fra"     # French
de="deu"     # German
el="ell"     # Greek
gu="gul"     # Gujarati
he="enb"     # Hebrew
hi="hin"     # Hindi
hu="hun"     # Hungarian
id="ind"     # Indonesian
ga="gle"     # Irish
it="ita"     # Italian
ja="jpn"     # Japanese
kn="kan"     # Kannada
kk="kaz"     # Kazakh
ko="kor"     # Korean
lo="lao"     # Lao
lv="lav"     # Latvian
lt="lit"     # Lithuanian
mk="mkd"     # Macedonian
ms="msa"     # Malay
mr="mar"     # Marathi
nb="nob"     # Norwegian
fa="fas"     # Persian
pl="pol"     # Polish
pt_PT="por"  # Portuguese (PT)
pa="pan"     # Punjabi
ro="ron"     # Romanian
ru="rus"     # Russian
sr="srp"     # Serbian
sk="slk"     # Slovak
sl="slv"     # Slovenian
es="spa"     # Spanish
sw="swa"     # Swahili
sv="swe"     # Swedish
ta="tam"     # Tamil
te="tel"     # Telugu
th="tha"     # Thai
tr="tur"     # Turkish
uk="ukr"     # Ukrainian
ur="urd"     # Urdu
uz="uzb"     # Uzbek
vi="vie"     # Vietnamese
⚠️
Warning: If your template language does not map cleanly, RapidPro.app may select the wrong template (or none), especially in multilingual workspaces.

3
Validate templates against your workspace languages

  1. Open Workspace Settings → Languages and list your enabled languages.
  2. For each language you support, confirm you have a WhatsApp template created in a compatible language code.
  3. Standardize on one approach (generic language codes) so your team doesn’t mix variants across templates.
💡
Tip: Use consistent naming in your provider dashboard (e.g., notify_delivery_eng, notify_delivery_fra) so it’s obvious which RapidPro.app language each template supports.

4
Test template language selection in a flow

  1. Pick one contact and set their Preferred Language to a target language you support.
  2. Trigger a simple WhatsApp flow step that sends a template message.
  3. Repeat with a second language.
  4. Confirm the correct template is selected each time.
💡
Tip: When debugging, temporarily include a language marker in the template text (e.g., “(EN)”, “(FR)”) so you can confirm selection instantly—then remove it before production.

Common Issues

Templates aren’t being selected for the right language

Fixes:

  • Confirm your WhatsApp template uses a language code that maps correctly (use the mapping list above).
  • Avoid region-specific variants like en_US, pt_BR, es_MX, etc.
  • Verify the contact’s preferred language is set correctly when testing.
One language works, but another doesn’t

Fixes:

  • Check whether the failing language is one of the “avoid” variants.
  • Create and approve a generic template instead (e.g., use en instead of en_US).
  • Confirm the template is approved and active in your provider dashboard.