@Mandar45
IIQ 8.4 doesn’t support per-user email language out of the box, but you can achieve this cleanly with Velocity-based language branching inside a single email template.
Add a language attribute to each Identity
Add a preferredLanguage attribute (e.g., en, de, fr) via Identity Mappings.
Enable multi-language support
Gear Icon → Global Settings → IdentityIQ Settings → Miscellaneous → Multi-Language Descriptions
Set your default language and add your local language as a supported language.
Update your email template using Velocity
Copy and rename the default template (never edit OOTB — it gets overwritten on upgrade). Apply this pattern to both Subject and Body:
#set($lang = $identity.getAttribute(“preferredLanguage”))
#if($lang == “de”)
Subject: Ihre Genehmigung ist erforderlich
Sehr geehrte(r) $identity.displayName,
$workItem.description
$baseURL/identityiq/workitem.jsf?id=$workItem.id
#elseif($lang == “fr”)
Subject: Votre approbation est requise
Bonjour $identity.displayName,
$workItem.description
$baseURL/identityiq/workitem.jsf?id=$workItem.id
#else
Subject: Your approval is required
Dear $identity.displayName,
$workItem.description
$baseURL/identityiq/workitem.jsf?id=$workItem.id
#end
$baseURL ensures IIQ links resolve correctly regardless of language.
Deploy and test
Import via Gear Icon → Global Settings → IdentityIQ Configuration → Import from File, then verify under Debug → EmailTemplate. Trigger a test notification for a user with preferredLanguage set to confirm end-to-end.
For many languages at scale, use messages_*.properties resource bundles instead of inline Velocity blocks — easier to maintain. Thanks.