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 |
${app.id} |
Available in all templates |
${app.name} |
Available in all templates |
${app.label} |
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:
|