Hello! I am using a workflow with a Provisioning Completed trigger, and I am trying to filter on the operation to create different workflows for ‘Add’ vs. ‘Remove’. I’m having some difficulty getting the json filter working and I could use some help.
Looking at the test input to the workflow:
{
"trackingNumber": "4b4d982dddff4267ab12f0f1e72b5a6d",
"action": "IdentityRefresh",
"requester": {
"id": "2c91808b6ef1d43e016efba0ce470906",
"name": "Adam Admin",
"type": "IDENTITY"
},
"recipient": {
"id": "2c91808b6ef1d43e016efba0ce470909",
"name": "Ed Engineer",
"type": "IDENTITY"
},
"errors": [
"General Error",
"Connector AD Failed"
],
"warnings": [
"Notification Skipped due to invalid email"
],
"sources": "Corp AD, Corp LDAP, Corp Salesforce",
"accountRequests": [
{
"source": {
"id": "4e4d982dddff4267ab12f0f1e72b5a6d",
"name": "Corporate Active Directory",
"type": "SOURCE"
},
"accountId": "CN=Rob.Robertson,ou=csm,ou=sales,dc=helpco,dc=com",
"accountOperation": "Modify",
"provisioningResult": "SUCCESS",
"provisioningTarget": "Corp AD",
"ticketId": "72619262",
"attributeRequests": [
{
"operation": "Add",
"attributeName": "memberOf",
"attributeValue": "CN=sales,DC=helpco,DC=com"
}
]
}
]
}
The filter I am trying to use is:
$.trigger.accountRequests[?(@.source.name == "Corporate Active Directory")].attributeRequests[?(@.attributeValue == "CN=sales,DC=helpco,DC=com")].operation
In a “String Compare” card to determine if the operation is add or remove. If I replace the second conditional (attributeValue) with “0”, it works fine, but the conditional does not work. I tried it in a JSON validator online and it works fine. Is there some SailPoint restriction on the number of conditional filters you can have in a JSON expression?