JSONPath `contains` not working in IdentityNow workflows

Hi team,
I’m working on a workflow in SailPoint IdentityNow where I need to filter accessItems to exclude roles whose names contain "Birthright" (case-insensitive). However, when I try using JSONPath filters like:

$.getAccess.accessItems[?(@.name contains 'Birthright')]

I faced the below issue-
image

From the documentation it is valid to use in workflow to filter — but it doesn’t seem supported in IdentityNow workflows.

Has anyone else faced this? Are there any known workarounds besides using a script step?

If this is a limitation, it would be very helpful to include in SailPoint’s JSONPath documentation. Appreciate any guidance or confirmation!

-Riddhi Jain
riddhi.c.jain@pwc.com

Hi Riddhi,

I will reroot you to the same problem. You should use an HTTP request action to run a search based on your criteria.

Here’s the relevant discussion: Workflow - compare string contains does not work

Hi Riddhi, instead of using keyword contains, you can use regular expression in order to achieve that.

Try the below expression that will give you the results

$.getAccess.accessItems[?(@.name =~ /.*Birthright/)].name

This should give you all the names of the access which will contain the Keyword Birthright.
EDIT: P.S that this is case sensitive

Hope this helps :slight_smile:

3 Likes

Thanks Neeraj this helps. I ran the query without .name and it worked.
$.getAccess.accessItems[?(@.name =~ /.*Birthright/)]

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.