Velocity Template Language
Custom email templates use the Velocity Template Language, which is different from Expression Language (EL) syntax in the following ways:
- You can leave off the curly brackets for variable names. Shorthand notation is acceptable in most languages.
- The format is simplified. Add a dollar sign before the variable that you want to add to a template, and use dot notation for sub-objects.
- Most velocity variables can be used anywhere, but some are limited to specific templates. Refer to the Template availability column for details.
For more information, see the Velocity User Guide.
| Variable | Template availability | 
|---|---|
| ${user.profile.login} | Available in all templates | 
| ${user.profile.email} | Available in all templates | 
| ${user.profile.secondEmail} | Available in all templates | 
| ${user.profile.firstName} | Available in all templates | 
| ${user.profile.lastName} | Available in all templates | 
| ${user.profile.locale} | Available in all templates | 
| ${user.profile.mobilePhone} | Available in all templates | 
| ${user.profile.primaryPhone} | Available in all templates | 
| ${user.profile.username} | Available in all templates | 
| ${user.profile.fullName} | Available in all templates | 
| ${user.profile.city} | Available in all templates | 
| ${user.profile.state} | Available in all templates | 
| ${user.profile.streetAddress} | Available in all templates | 
| ${user.profile.zipCode} | Available in all templates | 
| ${user.profile.countryCode} | Available in all templates | 
| ${user.groups.names} | Available in all templates | 
| ${user.groups.ids} | Available in all templates | 
| ${org.name} | Available in all templates | 
| ${org.locale} | Available in all templates | 
| ${org.subDomain} | Available in all templates | 
| ${org.activationTokenExpirationHours} | Available in all templates | 
| ${baseURL} | Available in all templates | 
| ${oktaLogoUrl} | Available in all templates | 
| ${activationLink} | Available in these templates: 
 | 
| ${activationToken} | Available in these templates: 
 | 
| ${samAccountName} | Available in these templates: 
 | 
| ${technicalContact.login} | Available in these templates: 
 | 
| ${technicalContact.email} | Available in these templates: 
 | 
| ${technicalContact.secondEmail} | Available in these templates: 
 | 
| ${technicalContact.firstName} | Available in these templates: 
 | 
| ${technicalContact.lastName} | Available in these templates: 
 | 
| ${technicalContact.locale} | Available in these templates: 
 | 
| ${technicalContact.fullName} | Available in Password Reset by Admin | 
| ${pushVerifyActivationLink} | Available in Send Push Verify Activation Link | 
| ${androidOktaVerifyAppLink} | Available in Send Push Verify Activation Link | 
| ${iosOktaVerifyAppLink} | Available in Send Push Verify Activation Link | 
| ${registrationEmailVerificationLink} | Available in these templates: 
 | 
| ${registrationEmailVerificationToken} | Available in these templates: 
 | 
| ${instanceDisplayName} | Available in these templates: 
 | 
| ${unlockAccountLink} | Available in these templates: 
 | 
| ${recoveryLink} | Available in these templates: 
 | 
| ${factorDisplayName} | Available in these templates: 
 | 
| ${orgTechSupportEmail} | Available in these templates: 
 | 
| ${unlockAccountTokenExpirationDate} | Available in these templates: 
 | 
| ${resetPasswordLink} | Available in these templates: 
 | 
| ${oneTimePassword} | Available in these templates: 
 | 
| ${resetPasswordTokenExpirationDate} | Available in these templates: 
 | 
| ${request.date} | Available in Authenticator Enrolled | 
| ${request.time} | Available in these templates (and versions of these templates with Report Suspicious Activity button): 
 | 
| ${request.location} | Available in Authenticator Enrolled | 
| ${request.performedBySubject} | Available in Authenticator Enrolled | 
| ${request.factor} | Available in Factor Enrolled | 
| ${request.factors} | Available in Factor Reset | 
| ${request.ipAddress} | Available in Sign In From New Device | 
| ${request.reportSuspiciousActivityToken} | Available in Authenticator Enrolled (with Report Suspicious Activity button) | 
| ${request.browser} | Available in Sign In From New Device | 
| ${request.relayState} | Available in Forgot Password | 
| ${verificationLink} | Available in Email Factor Verification | 
| ${verificationToken} | Available in these templates: 
 | 
| ${emailAuthenticationLink} | Available in Email Challenge | 
| ${email} | Available in these templates: 
 | 
