Multiple Approval requests to same manager for same catalog item

MichaellaP
Tera Contributor
Is there a recommended way in Flow Designer to consolidate approvals by approver, so that if a manager owns multiple requested groups, they receive a single approval request listing all groups requiring their approval rather than one approval per group?
1 REPLY 1

yashkamde
Giga Sage

Hello @MichaellaP ,

 

Here you can utilize scripted approval in flow designer :

Scripted Approvals in Flow Designer with Flow Variables 

 

In your case, since you're consolidating by manager (not by group), you're resolving sys_user_group.manager for each requested group into a de-duped list of manager sys_ids, then passing those into U[...] - so each manager gets exactly one approval covering all groups they own.

 

(function execute(inputs, outputs) {
    var approverMap = {};
    var groups = inputs.requested_groups; // array of group sys_ids

    groups.forEach(function(groupId) {
        var grGroup = new GlideRecord('sys_user_group');
        if (grGroup.get(groupId)) {
            var managerId = grGroup.getValue('manager');
            if (!managerId) return;

            if (!approverMap[managerId]) {
                approverMap[managerId] = [];
            }
            approverMap[managerId].push(grGroup.getValue('name'));
        }
    });

    var approverIds = Object.keys(approverMap); // unique manager sys_ids

    // Since each approver must independently approve
    var approvalSyntax = 'ApprovesAllU[' + approverIds.join(',') + ']';

    outputs.approval_syntax = approvalSyntax;
})(inputs, outputs);

 

If my response helped mark as helpful and accept the solution.