I’m looking for a way to map case attributes using Expression Builder for a GSO playbook/block.
Scenario: I’m working with the ServiceNow integration that accepts discreet values for urgency and impact when creating/updating incidents. 1 = High, 2 = Medium, 3 = Low.
The case priority in GSO is an integer between 0 and 100. 100 = Ciritical, >= 80 <= 99 = High, >=60 <= 79 = Medium, >= 40 <= 59 = Low, etc.
As such, the GSO priority value needs to be transformed to something that ServiceNow will accept. Unfortunately, I can’t find a way to achieve this using the function available in the Expression Builder.
The most logical function is ifthenelse, but there are some initial short-comings:
- You can’t chain functions to emulate else if;
- You can’t return the initial value on a false evaluation to then pipe to a subsequent ifthenelse.
e.g. [Priority | ifThenElse(">", "79", "1", ifThenElse(">", "59", "2", “3”))] < Can’t process the chained ifthenelse
or
[Priority | ifThenElse(">", "79", "1", initialValue) ] ifThenElse(">", "59", "2", “3”) < No known way of returning the piped-in value for a false evaluation
How can this transform be achieved?

