Resource Management Workspace variant with multiple tabs
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2025 11:28 AM - edited 04-04-2025 11:32 AM
Sharing an idea we're pursuing to enhance the Resource Management Workspace (hoping to get on the roadmap, or have the SPM team hint that it's already there 😛 ).
Currently, RMW only shows a single tab with Resource Cards that only the current user owns/has created. Good for individual resource managers, but has a few limitations in our view:
- No ability to share Resource Cards with other users. Each user has to create their own card with the same filters (and/or name).
- Our resource management teams would like cards filtered by different resource attributes - primary group, primary role, primary skill, project, cost center, etc. We can do that, but unless we use a naming convention (e.g. Group | ServiceNow Team, or Role | Analysts), there's no way to easily filter or have collections of these different resource cards
One method we've found around the first limitation is to create a copy of the /api/sn_rm_ws/resource_management_workspace/createResourceBoard scripted API, and add 'owner' as an input parameter. From there we've been able to create a Flow Action to call that new API and then use a Flow to enumerate through all of our Resource Managers / Project Managers and automatically create resource cards for them with pre-set filter criteria (e.g. User.Active is true AND Manager is (dynamic) me).
For the second, we've done some digging and realized that the RMW uses data-driven tabs, meaning the tab and content is loaded from a Data Broker script (Get RM Workspace Tabs), which defines the single tab with a basic query to get board by the current user:
const tabs = [{
"id": "my_resource_cards",
"route": "resource_cards_tab",
"fields": {
"tabName": "my_resource_cards",
"query": "owner=" + gs.getUserID()
},
"label": gs.getMessage("My Resource Cards"),
"options": {}
}
];
So, as part of a development spike, we decided to add a new custom field to the Resource Board table, what would allow us to categorize the capacity type being represented by the board (group, role, skill, resource, task). We then created a copy of the Data Broker script, and defined some, with the crux of their criteria being:
"tabName": "my_resource_cards",
"query": "owner=" + gs.getUserID()
"tabName": "group_cards",
"query": "u_capacity_type=group"
"tabName": "role_cards",
"query": "u_capacity_type=role"
"tabName": "skill_cards",
"query": "u_capacity_type=skill"
"tabName": "project_cards",
"query": "u_capacity_type=work_type"
After that, we cloned the 'home' page under RMW, and updated the Tabs component to point at the new Data Broker source.
Here's the result:
These simplified tab queries obviously mean that all of these card types would be visible to all users, so we've still got some thinking to do around whether/how we could handle that. Right now, we think we would create all these capacity-type cards using flows, so users are only limited to creating cards that show up on the 'My Resource Cards' tab only.
- Labels:
-
Resource Management
- 565 Views

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2025 09:47 AM
Hi @DavidB-ADT ,
I like the way you have designed the workspace. However, I am not sure it's impact on the upgrade... Having said that I believe your version would be liked by users.
Great idea...
Thank You!
Namita Mishra
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-09-2025 08:25 AM
You bring up a point we're debating internally - does creating a variant of the landing page impact upgrades, or should we do this as a completely separate custom app, essentially maintaining a copy of the RMW app.
I've argued in favor of the first option on the assumption that leaving the original 'home' intact allows us to still do upgrades. Our variant is just a slightly tweaked version of the original; worst case we could delete the variant, upgrade RMW, create a variant again and apply the customizations fairly easily again.