How can we pull the Display Value of an entitlement into a custom Remediation Notification email template in certifications?

Hi Community,

I am struggling to pull the Display Value of an entitlement into a custom Remediation Notification email template.

The Goal: When an entitlement is revoked during an Access Review, the email should show: Your access to ActiveDirectory - IIQAD\HR_AdminAccess has been revoked.

The Problem: Currently, my template only shows the technical DN or the short Name (e.g., ActiveDirectory - HR_AdminAccess), but I need the display value of an entitlement which is IIQAD\HR_AdminAccessfor my case. Right now it shows its value i.e. HR_AdminAccessbut I want its display value.

Hi,
In IIQ email templates (Velocity):
Use $!entitlement.getDisplayableName()
If inside a loop, use $!item.target.getDisplayableName()

This will return the display value (e.g., IIQAD\HR_AdminAccess) instead of the technical name (HR_AdminAccess).
Thanks.

Hi @prakhargarg5678 ,

In your custom Remediation email template, variable “$remediationDetails“ should be available.

This variable comes from workflow and is available in OOTB template “Remediation Notification“.

From this variable, you can get account request and attribute request details in other variables. Please refer OOTB email template “Remediation Notification“.

Once you get attribute request e.g. $attrReq, you can use $attrReq.getDisplayValue() in your template to get Display name of entitlement.

Hope this helps. If this solves your query, please mark it as solution.

Hi @prakhargarg5678

During certification remediation notifications, the email template does not automatically resolve the entitlement to its ManagedAttribute object. The variables available in the template typically expose only the entitlement value (for example: HR_AdminAccess or the DN), not the display value stored on the ManagedAttribute.

So the template is working correctly — it just doesn’t perform a ManagedAttribute lookup.

To display the entitlement display name (e.g., IIQAD\HR_AdminAccess), you need to resolve the entitlement inside a rule and pass the display value to the email template.

Result:
Instead of:
ActiveDirectory – HR_AdminAccess

You will get:
Your access to ActiveDirectory – IIQAD\HR_AdminAccess has been revoked.

This is a standard customization whenever certification emails need user-friendly entitlement names.

Hope this is helpful

Note: Found a fix? Help the community by marking the comment as solution. Feel free to react(:heart:, :+1:, etc.) with an emoji to show your appreciation or message me directly if your problem requires a deeper dive

Hi Mandar,

Thank you for the suggestion! I tried $attrReq.getDisplayValue(), but it returned the same technical value (the DN/sAMAccountName) instead of the display value.

Hi Sateesh,

Thanks for the suggestion. I tried using $!item.target.getDisplayableName() and $!item.getDisplayableName(), but both returned empty values in the email. It seems that in my environment, the item object is null during the remediation phase.

@prakhargarg5678 : Since item or entitlement is not available in the Remediation template, you can resolve the ManagedAttribute manually:
#set($ma = $context.getObjectByName(“ManagedAttribute”, $attrReq.getValue()))
$!{ma.getDisplayName()}
This returns the display value instead of the technical DN/sAMAccountName.

Hi,

I tried resolving the ManagedAttribute manually also:
#set($ma = $context.getObjectByName(“ManagedAttribute”, $attrReq.getValue()))
$!{ma.getDisplayName()}

But, its also giving me its value which is HR_AdminAccess instead of its display value which is IIQAD\HR_AdminAccess.

@prakhargarg5678 In that case the required value (IIQAD\HR_AdminAccess) may not be in displayName.

Please check the ManagedAttribute and see which attribute actually contains that value. You can debug using:
#set($ma = $context.getObjectByName(“ManagedAttribute”, $attrReq.getValue()))
$!ma.attributes
Then use the correct attribute (e.g., displayableName, nativeIdentity, or a custom attribute) in the template.

@prakhargarg5678 In your email template, you can execute the a rule and get the values you want to use in your email template.

#set($spctx=$spTools.class.forName("sailpoint.api.SailPointFactory").getMethod("getFactory", null).invoke(null, null).getCurrentContext())
#set($ruleObj=$spctx.getObjectByName($spTools.class.forName("sailpoint.object.Rule"), "Bean Shell Dev Guide - 017 Generate Email Contents"))
#set($ruleArgs = {
    "someKey"  : "someValue",
    "otherKey" : "otherValue"
})
#set($dynamicBodyContent=$spctx.runRule($ruleObj, $ruleArgs))

You can refer article: https://community.sailpoint.com/t5/Technical-White-Papers/BSDG-17-Dynamic-E-Mail-content-with-Bean-Shell/ta-p/73123.

In your case, you can pass the entitlement value, and other relevant details to the rule argument and execute the rule to return the display name which you want.

Note: Found a fix?Help the community by marking the comment as solution. Feel free to react(:heart:,:+1:, etc.)with an emoji to show your appreciation or message me directly if your problem requires a deeper dive.