- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
I'm working on RITM approvals and need to modify the default group approval behavior. I have a custom field 'approvers' (List of Users type) on the Group table that contains specific users who should receive approval requests.
My requirements:
- Use Group Approval (not User Approval) to preserve which groups were requested
- Only users in the custom 'approvers' field should get approval requests, not all group members
- Don't want to manually extract user sys_ids and use individual user approvals
Current challenge:
When I use standard group approval, it sends requests to ALL active group members, but I only want the subset defined in my custom 'approvers' field.
I've considered scripted group approvals but want to ensure:
· It still shows as a group approval in the system
· The group relationship is maintained for reporting
· Only my specified approvers receive the request
Has anyone implemented something similar? What's the best approach - workflow script, business rule, or some other method that maintains the group approval context while filtering the actual approvers?
Solved! Go to Solution.
- Labels:
-
Flow Designer
-
Workflow Automation
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
got it.
then do this
-> let the approval go to that group using OOTB Ask for Approval
-> use before insert business rule on sysapproval_approver table and see if this is generated due to Group approval i.e. Group field not empty
-> then grab the custom list field and see if the current approver is allowed or not
-> if not then use setAbortAction(true) and record won't be inserted
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
sysapproval_approver table is in global scope, so your BR should also be in global scope
Then only setAbortAction(true) works
Note: setAbortAction() will only work if you create BR/script in original scope as that of table
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
@Ankur Bawiskar
Thanks!!!
It works when I shifted the script to the global scope.
I have one more question. Currently, I am running the flow as an admin, so everything works. The Business Rule is in the global scope and is still able to access information from tables inside a scoped application.
Since the flow runs under the current user session, if this Business Rule is triggered, will it still be able to access information from the scoped application’s tables?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Glad to know that my script worked.
Try running Flow as User Session and perform testing
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
I believe I answered your question.
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Yes, thank you again for providing the solution.
Please also consider commenting on the accepted solution that the script should be in the global scope, not in any specific application scope. This will help readers quickly understand the solution without having to go through other comments.
