Apply Change Approval Policy ends after first approval

Ron Legters
ServiceNow Employee
ServiceNow Employee

This customer has really complex change approvals. In our flows, we've got a bunch of things happening in parallel. We got 'Apply Change Approval Policy' that can generate as many as 10 approvals, then we've got two more that need scripting to find the approval group or user. The issue is that if the scripted approvals are approved first, as soon as one of the Approval Policy approvals approves, the CR is 'Approved'. I found another post that says if the 'Approval' field is left empty parallel approvals will wait for each other, and that helped with the scripted approvals, but I don't see anything like that on the 'Apply Change Approval Policy' action. 

Is the solution to configure the Approval Policies themselves differently?

1 ACCEPTED SOLUTION

Ron Legters
ServiceNow Employee
ServiceNow Employee

For this customer, multiple approvals are based on Conflicts, so we queried for all applicable conflicts, then did a 'For Each' conflict, and for each conflict, created a record directly in the 'Group Approvals' table.  In the next step in the Flow, we collect the Group approvals records with a 'Look Up Records' step, then a For Each action that waits for them to be complete (Active = false, which means they're either approved or rejected). Then we update the Change request accordingly.

RonLegters_0-1754321649698.png

RonLegters_1-1754321706417.png

 

View solution in original post

5 REPLIES 5

Deepak Shaerma
Kilo Sage

Hi @Ron Legters 
 You’ve correctly identified that leaving the ‘Approval’ field empty on scripted approvals can help coordinate parallel approvals by ensuring they don’t prematurely complete the approval process. However, the ‘Apply Change Approval Policy’ action does not offer the same flexibility directly. I am providing some approach to handle:
1. or scenarios where multiple approvals are running in parallel, and you wish the Change Request (CR) to be approved only when all approvals are granted, you should ensure that your approval conditions act with an “AND” logic rather than “OR.” This means configuring your process so that the CR’s final approval status is dependent on all individual approvals being granted, not just one.

2. Creating a Business Rule or Flow Logic that triggers on update of an approval record.
Checking Conditions: When an approval is granted, the script checks if there are any other pending approvals for the CR. If yes, the process waits. If no, and all approvals are granted, then the CR is marked as ‘Approved’.
Coordination: For the ‘Apply Change Approval Policy’ produced approvals, ensure your script or flow includes logic to identify these approvals and includes them in the “all approvals granted” check.
Note: Please Mark this Helpful and Accepted Solution. If this Helps you to understand. This will help us a lot.
Thanks & Regards 
Deepak Sharma


Thank you for the reply, Deepak. Can you give me a little more detail as to how, exactly, to accomplish these? Your statements make sense, in theory, but I'm not seeing how, specifically, to apply them.

Thanks!

M_48
Tera Contributor

Hi did you find away to achieve this? Thanks in advance

Ron Legters
ServiceNow Employee
ServiceNow Employee

For this customer, multiple approvals are based on Conflicts, so we queried for all applicable conflicts, then did a 'For Each' conflict, and for each conflict, created a record directly in the 'Group Approvals' table.  In the next step in the Flow, we collect the Group approvals records with a 'Look Up Records' step, then a For Each action that waits for them to be complete (Active = false, which means they're either approved or rejected). Then we update the Change request accordingly.

RonLegters_0-1754321649698.png

RonLegters_1-1754321706417.png