Group Approvals in Flow Designer missing 'an approval from each group' option?

mcorl
Tera Expert

Hey gang!

TL;DR - Flow Designer does not appear to have functionality to accept a single approver from each group. It's either every approver from every group or a single approver from any group.

Customer requirements are typically satisfied by a single approval from each group when it comes to group approvals in a workflow. If they have four approval groups, it's typically not desirable for only a single approval to come from a single group. A single rejection from any group is a different story, but at least one approval from each group is the most common requirement I see. Now, everybody's favorite classic workflow editor had no problem dealing with this requirement and has a couple options. One was 'An approval from each group' and 'First response from each group'.

Flow Designer appears to be devoid of such options. In the lone 'Ask for Approval' action, there is indeed a setting to determine "when" to Approve. Let's take a look at those options:

Anyone approves = A single approval from any number of approvers is all that is needed to satisfy this approval.
All users approve = Every single standalone approver and group member needs to approve to satisfy this approval.
% of users approve = A provided percentage of user approvals is needed to satisfy this approval.
# of user approveA provided number of user approvals is needed to satisfy this approval.

Clearly, none of the above options allow a single user from each group to approve and satisfy the approval.

The one option I did NOT mention above is All responded and anyone approves. This would appear to be the closest choice for what I'm looking for and tends to make one believe it satisfies the approval by translating to 'At least one person from each group needs to respond and approve before we're good'. Unfortunately, it does not work that way.

In the screenshot below, you can see my configuration.

  1. I am pulling in multiple users from a table and requiring ALL of them to approve, which works fine.
  2. I am requiring ALL manual approvers to approve, which works fine.
  3. I am pulling in multiple groups (that contain 2 or more users each) and asking for a response from all groups with anyone approving, which does NOT work. It waits for all the other approvals, including every group member to approve before considering the Approval action 'approved'.
    1. I would expect this to set the remaining group members to No Longer Required after the 1st approval for that group was submitted. That doesn't happen.
    2. That does happen when I set it to Anyone approves. Then once a member from ANY group approves, it sets ALL groups to approved and ALL other members from ALL groups to No Longer Required.

 

find_real_file.png

I was considering opening a support ticket for this, but was hesitant since there doesn't appear to be another person in the entire ServiceNow ecosystem who has asked this question (or at least none I could find). Typically when I can't find anyone else having my issue, it means I'm overlooking something or unaware of some type of functionality. I find it hard to believe no one else has seen this and that I'm the first person to ask, but I guess it's possible. It's also possible this is a bug in Flow Designer and I will need to submit a support ticket.

Regardless, I apologize for the verbose post and look forward to your feedback!! 

 

1 ACCEPTED SOLUTION

mcorl
Tera Expert

Howdy gang!

**Update

This still does not work in Flow Designer the way it does in Workflow Editor. I even tried to create a legacy subflow to handle the group approvals to run in parallel with the other approvals and that didn't work either. So my solution was to handle ALL the approvals in a good old fashioned Approval Coordinator. Everything works as expected now and I just wait for the coordinator to return a result and process that result back in Flow Designer.

Seems like such a common thing. I'm mystified why Flow Designer can't handle the first approval from each dynamic group declared in an array. Maybe in San Diego or Tokyo...

View solution in original post

19 REPLIES 19

Maik Skoddow
Tera Patron
Tera Patron

Hi @mcorl 

what about that configuration:

find_real_file.png

 

Kind regards
Maik

If my answer replied your question please mark appropriate response as correct so that the question will appear as resolved for other users who may have a similar question in the future.

Hi Maik and thank you for the idea. Unfortunately, the dynamic number of approval groups getting pulled in from a glide_list can range from none to ???. Since all the groups will land on one conditional line, this would not work for my situation. It would essentially work the same way as the 'Anyone approves' since it also accepts a single approval as being good for all groups.

However, your idea is a fantastic workaround for anyone else with a flow dedicated to a single item and a defined list of approval groups!!

An even better idea would be to have a baseline option 'First approval from each group' LOL

Thanks again.

Hi @mcorl 

Another idea:

Create a simple Workflow with one Group Approval Activity and call that Workflow from Flow

Kind regards
Maik

If my answer replied your question please mark appropriate response as correct so that the question will appear as resolved for other users who may have a similar question in the future.

Good Morning Maik,

So I considered your 2nd suggestion and am sorry to say I don't believe this will work either, for a couple reasons.

  1. The primary reason it won't work is because I'm getting the group approvals from a glide_list value and not querying a table.
    1. I'd have to query the approval groups from a table and then flush the results through a "For Each" loop, so that each approval would individually call the approval subflow for processing.

  2. Even if I got fancy and did an array, breaking down the glide_list contents, issue 2 prevents this from working the way I'd like.

  3. I stand corrected on my 1st couple statements. You can perform a "For Each" loop on a glide_list value, but the issue below still prevents this from working how I'd like.

  4. The 2nd issue is that I want all these group approvals to go out the same time as the other approvals that follow the manager approval.
    1. Calling a subflow for each group would wait for an approval or rejection before returning to the main flow to grab the next group approval.
    2. Issue 1 blocks issue 2

I do appreciate your time and ideas, which may solve issues for other folks on this forum. Unfortunately, they don't resolve the issues I'm having. Keep the ideas coming though if you think of anything else. Just because it may not solve my issues doesn't mean it's a bad idea.

Thank you.
-Mark