If I had to guess you passing in a string value and not the sys ID. But it will all depend on the type the attribute your trying to search is. If the attribute you are looking at is a reference then you will want to pass the sys_id of the object your look at and not the human friendly name.
The only way to know for sure is to look at each attribute you are passing to see what type it is set to. If it is a text field then what you have should work. But it is a look up attribute you will need the sys_id of the object.
Have you tried sending the payload in PostMan with hard coding the values?
I find this method very handy for complex Advanced Searches like what you have out lined here. This way you have something to cross reference while building you workflow. This allows for you to confirm that your attributes are pointed correctly.
Yes, I have tried sending the payload in Postman with hardcoded values, and it works fine. However, when using the workflow with variables, such as "value": "{{attribute.organization_profile}}", it fails. It seems like the syntax isn’t resolving properly, which might be causing the issue or the syntax is wrong.
If anyone faces the same problem, here is the solution:
If you specify the profile naming differently from the ID, the attribute.organization_profile, for example, will be resolved as the profile name instead of the Sys ID. This causes the search request to fail because these attributes (ProfileSearchAttribute / ProfileSelectAttribute) require a Sys ID as their value.
The solution is to use the ID instead of the profile name, as shown below: