Intelligent Staffing for a Resource Request
A common challenge for resource managers is finding resources who most closely match the criteria of a resource request. Trying to find someone who precisely matches all the filter criteria sometimes leads to nobody being returned in the results. The resource manager then has to remove certain filter values to return resources in the displayed list.
The Intelligent Staffing engine reduces the time and manual effort involved in finding suitable resources to assign to resource requests. Intelligent Staffing considers the Role, RPG, skill ratings, availability of a resource, Worked With Customer, and any custom filter fields in the Resource Filter. Resources are automatically ranked in the results.
The Intelligent Staffing engine is available on the Resource Request Lightning page and uses the Resource Search Service API to return the results. For more information about the Resource Search Service API, see the "PSA Apex API Developer Reference" documentation on Community.
When searching for resources, the Resource Search Service (RSS) balances the need to return the best matches with the need to return results quickly, while preserving the stability of the system. When the volume of resources in your org is low, both can be achieved with resources searched exhaustively. However, when the volume of resources in your org is high, the system restricts the number of resources considered to ensure the matches are returned quickly without overloading the system. In this case, the results returned are still true matches, according to the selected filter criteria and match settings. But some resources, that would otherwise match, might not be included in the results.
Best Practices
To do an exhaustive search of resources, you can improve the results by setting more scalable search criteria.
To do so:
- Set more fields and skills to essential, using the filters and match settings.
- Minimize the fields and skills set to ideal, desirable, and suggested.
- Prioritize fields or skills over availability.
When Intelligent Staffing is not enabled, the Role, RPG, skills, Worked With Customer, and any custom filter fields are considered as essential for matching. A resource must precisely match the filter criteria in the PSA Resource Filter to be returned in the PSA Resourcing component.
You can match all skills or any skills using the Match All and Match Any options. If you are matching any of the skills, the resource must have at least one of the requested skills at the required minimum rating to be returned.
Results in the PSA Resourcing component are sorted by availability in descending order. Any resources without availability information are at the bottom of the list. Results are not ordered when there is no availability data.
You can enable Intelligent Staffing by selecting Include Recommended Resources in the PSA Resource Filter on the Resource Request Lightning page. This setting is for each individual resource request. The default value of Include Recommended Resources is specified in Include Recommended Resources Default in Resource Filter Lightning Component Properties.
To set Include Recommended Resources in the PSA Resource Filter as selected by default, select Include Recommended Resources Default for the PSA Resource Filter component in App Builder. For more information, see Resource Filter Lightning Component Properties.
When Include Recommended Resources is selected, and you click Apply, Intelligent Staffing calculates a rank for every resource. The rank results are displayed in the Rank column. Resources are automatically sorted by rank ascending in the Rank column on the PSA Resourcing component. The Rank column represents the numerical ranking that PSA awards each resource.
Any results depend on how you configure the weighting custom settings, and the rank sequence applied depends on the rank priority settings. For more information about configuring these attributes as non-essential, and their weightings, see Resource Search Service Settings.
When Include Recommended Resources is selected, and all your weighting custom settings are set to “Essential”, Role, RPG, Worked With Customer, and any custom fields are all considered as essential for matching a resource.
The Rank column displays the results in the PSA Resourcing component, and a numerical ranking is calculated for each resource. The resources are automatically sorted by rank ascending.
By default, when multiple resources match the Role, RPG, Worked With Customer, and any custom filter fields, firstly their skill ratings, and then secondly their availability determine their resource rank.
Example: The filter includes a skill of French at a minimum rating of 2. The following resources all match the Role, RPG, or a combination of any, and all meet the minimum rating of 2 for a skill of French:
Resource | Skill | Rating | Availability |
---|---|---|---|
A | French | 3 | 100% |
B | French | 4 | 70% |
C | French | 3 | 80% |
D | French | 4 | 60% |
The resources are ranked as follows from the highest rank of 1 to the lowest rank of 4:
Rank | Resource | Rating | Availability |
---|---|---|---|
1 | B | 4 | 70% |
2 | D | 4 | 60% |
3 | A | 3 | 100% |
4 | C | 3 | 80% |
Intelligent Staffing calculates a unified skills rating to compare the resources. This provides a single comparison where the Resource Filter includes multiple skills, and the resources returned might have multiple skills with various ratings. A different calculation is performed based on whether the Skills filter is Match All, or Match Any.
Match All
A unified skills rating is calculated as below, when a search request specifies Match All.
Match All Example
- Resource E is retrieved with skill ratings of 5, 3, 5, 0, and 2 for a Match All search request.
- Although there are five ratings, 0 is excluded, so there are now four values.
- Resource E's unified skill rating is: 4 / (1/5 + 1/3 + 1/5 + 1/2) = 3.243.
- The 3.243 rating is rounded to two decimal places = 3.24.
- Resource E's unified skill rating value is used to determine their rank.
Match Any
A unified skills rating is calculated from the maximum of a resource's matching skill ratings when a search request specifies Match Any.
Match Any Example One
- Resource E is retrieved with skill ratings of 5, 3, 5, 0, and 2 for a Match Any search request.
- Resource E's unified skill rating is 5, as this is their highest matching skill rating.
Match Any Example Two
- Resource A has skill ratings of 4,3, and 2 for three skills.
- Resource B has skills ratings of 4 and 1 for two skills.
- Resources A and B both have the same unified skill rating of 4.
The score calculation considers the essential and desirable skills for the resource request when Enable Desirable Skills in the Skills Management custom setting is selected when creating the resource request and Include Recommended Resources is selected in the Resource Filter.
The scores are then used to determine the rank of the resources displayed in the Resource Grid.
Match All
The following example illustrates what happens when a search request specifies Match All, where:
- Essential Skills: Apex, Java, and ExtJS.
- Desirable Skills: CSS and HTML.
- Each essential skill carries 100 points and each desirable skill carries 1 point.
- Include Recommended Resources checkbox is selected.
Resources Filtered | Essential Skills | Desirable Skills | Score Calculated |
Rank
|
---|---|---|---|---|
Tony |
ExtJS, Apex | 200 | 4 | |
Tim |
Apex, Java, ExtJS | 300 | 2 | |
John |
Apex, Java | CSS | 201 | 3 |
Samantha |
Apex, Java, ExtJS | CSS, HTML | 302 | 1 |
The score is calculated as shown in the table and since the request specifies Match All, only Samantha is displayed in the Resource Grid.
Match Any
The following example illustrates what happens when a search request specifies Match Any. where:
- Essential Skills: Apex, Java, and ExtJS.
- Desirable Skills: CSS and HTML.
- Each essential skill carries 100 points and each desirable skill carries 1 point.
- Include Recommended Resources checkbox is selected.
Resources Filtered | Essential Skills | Desirable Skills | Score Calculated |
Rank
|
---|---|---|---|---|
Tony |
ExtJS, Apex | 200 | 4 | |
Tim |
Apex, Java, ExtJS | 300 | 2 | |
John |
Apex, Java | CSS | 201 | 3 |
Samantha |
Apex, Java, ExtJS | CSS, HTML | 302 | 1 |
The score is calculated as shown in the table and the resources are displayed by rank in ascending order in the Resource Grid.
The best match is decided by scoring and filtering. The scoring and filtering can be affected by duplicate skill requests and skill ratings.
To find the best match, the following rules are applied to take account of duplicate skill requests and skill ratings:
Filtering when Match All is selected:
If a Resource Request has duplicate Resource Skill Requests with different ratings, a unique Resource Skill Request with the highest rating is considered.
Filtering when Match Any is selected:
If a Resource Request has duplicate Resource Skill Requests with different ratings, a unique Resource Skill Request with the lowest rating is considered.
When calculating the score:
If a resource has duplicate skill ratings or different ratings for the same skill, a unique skill with maximum rating is considered.
Consider Expiration Date with Match All:
Resources with expired certificates are filtered out and are not considered when calculating the score.
Consider Expiration Date with Match Any:
Resources are returned based on filtering the matching skills and certifications other than the expired ones. Expired certificates are not considered for scoring.
The following Resource Search Service weighting custom settings are available to influence resource ranking:
- Group Weighting
- Region Weighting
- Role Weighting
- Practice Weighting
- Custom Filter Fields Weighting
- Worked With Customer Weighting
Role, RPG, and Worked With Customer Weighting
The Role, RPG, and Worked With Customer settings are referenced by Intelligent Staffing to determine whether the Role, RPG, and Worked With Customer filters are essential for matching resources. An Essential weighting means a resource must match the Role, RPG, and Worked With Customer filters.
Other role and RPG values from most to least important are:
- Ideal
- Desirable
- Suggested
Ideal, Desirable and Suggested mean a resource does not have to match any field values.
Custom Filter Fields Weighting
The Custom Filter Fields Weighting setting is also referenced by Intelligent Staffing to determine the following:
- Whether resources must match all custom filter fields.
- The weighting applied by Intelligent Staffing for a match with each custom filter field.
Essential means a resource must match all custom filter fields. Ideal, Desirable and Suggested mean a resource does not have to match any custom filter fields.
If you have three custom fields in the Resource Filter, you can set Custom Filter Fields Weighting to Desirable, meaning resources would not need to match all three fields. By default, resources who match most or all of the custom filter fields are ranked higher in the results. You can prioritize the attributes that are used to automatically rank resources.
For more information, see Resource Ranking Priority.
Where you have two resources who both match the Role, RPG, Worked With Customer, skills, and availability, the resource who matches the most custom filter fields is ranked higher in the resource results. Resources who do not match any custom fields are not necessarily excluded from filter results.
You cannot set a different value for individual custom filter fields. For example, you cannot set "Desirable" for a custom filter field , and "Ideal" for another custom filter field.
When filtering resources on regions, practices, and groups in the PSA Resource Filter, you can include resources in sub-regions, practices, or groups of a specified parent region, practice, or group. These sub-RPGs are shown as matched when the Include sub-RPGs option is selected on the resource request, as they are scored equally to the parent region.
Example:
- A resource request for EMEA.
- EMEA is a parent region with a sub-region of UK.
- Another parent region is USA.
- The custom setting for the region is set to Essential.
The resource must be in the EMEA region for them to be included. - A resource in the region UK, which is a sub-region of EMEA, is given the same preference as a resource with the region of EMEA and is considered a match.
The attributes of Role, RPG, Worked With Customer, and custom fields do not need to be essential for matching resources. When attributes are non-essential, resources are considered and returned, even when they do not match the filter criteria in the Resource Filter. See Resource Search Service Settings.
When Include Recommended Resources is selected, and some or all your weighting custom settings are set to a value other than “Essential”, the equivalent attribute is considered as non-essential for matching resources.
The Rank column displays the results in the PSA Resourcing component, and a numerical ranking is calculated for each resource. The resources are automatically sorted by rank ascending.
Default resource ranking is determined after considering the following for each resource in the order shown:
- Their Role, RPG, Worked With Customer, and any custom filter fields.
- Their skills and ratings.
- Their percentage availability.
The rank calculation also depends on the values of the weighting custom settings for the role, RPG, worked with customer, and custom filter fields. See Resource Search Service Settings.
The following examples show how weightings and default ranking priorities influence how resources are ranked.
In all examples, where:
- Include Recommended Resources is always "Selected".
- All returned resources are displayed below any held, assigned, suggested, or pinned resources.
Example One
Custom Setting Field | Custom Setting Value | Resource Filter Field | Resource Filter Value | Results |
---|---|---|---|---|
Role Weighting |
Essential | Role | Consultant |
|
Region Weighting |
Ideal | Region | United States | |
Practice Weighting |
Essential | Practice | - | |
Group Weighting |
Essential | Group | - | |
Worked With Customer Weighting | Essential | Worked With Customer | Yes | |
Custom Filter Fields Weighting | Essential | Willing to Travel | Yes |
Example Two
Custom Setting Field | Custom Setting Value | Resource Filter Field | Resource Filter Value | Results |
---|---|---|---|---|
Role Weighting | Essential | Role | Consultant |
Below the above, in the sequence shown, are resources who:
|
Region Weighting | Ideal | Region | United States | |
Practice Weighting | Desirable | Practice | Consumer | |
Group Weighting | Essential | Group | - | |
Worked With Customer Weighting | Essential | Worked With Customer | Yes | |
Custom Filter Fields Weighting | Essential | Willing to Travel | Yes |
Example Three
Custom Setting Field | Custom Setting Value | Resource Filter Field | Resource Filter Value | Results |
---|---|---|---|---|
Role Weighting | Essential | Role | Consultant |
Below the above, in the sequence shown, are resources who:
|
Region Weighting | Ideal | Region | United States | |
Practice Weighting | Desirable | Practice | Consumer | |
Group Weighting | Suggested | Group | Consulting | |
Worked With Customer Weighting | Essential | Worked With Customer | Yes | |
Custom Filter Fields Weighting | Essential | Willing to Travel | Yes |
Example Four
Custom Setting Field | Custom Setting Value | Resource Filter Field | Resource Filter Value | Results |
---|---|---|---|---|
Role Weighting | Essential | Role | Consultant |
Two resources are matched.
|
Region Weighting | Ideal | Region | United States | |
Practice Weighting | Desirable | Practice | Consumer | |
Group Weighting | Desirable | Group | Consulting | |
Worked With Customer Weighting | Essential | Worked With Customer | Yes | |
Custom Filter Fields Weighting | Essential | Willing to Travel | Yes |
Example Five
Custom Setting Field | Custom Setting Value | Resource Filter Field | Resource Filter Value | Results |
---|---|---|---|---|
Role Weighting | Ideal | Role | Consultant |
Two resources are matched. Matching one Ideal attribute ranks higher than matching multiple Desirable attributes. Resource one is ranked higher than resource two because:
|
Region Weighting | Desirable | Region | United States | |
Practice Weighting | Desirable | Practice | Consumer | |
Group Weighting | Desirable | Group | Consulting | |
Worked With Customer Weighting | Desirable | Worked With Customer | Yes | |
Custom Filter Fields Weighting | Essential | Willing to Travel | Yes |
Example Six
Custom Setting Field | Custom Setting Value | Resource Filter Field | Resource Filter Value | Results |
---|---|---|---|---|
Role Weighting | Essential | Role | Consultant |
Resources who match the Region, Worked With Customer, and Willing to Travel, are ranked the highest. Below the above, in the sequence shown, are resources who match:
|
Region Weighting | Ideal | Region | United States | |
Practice Weighting | Essential | Practice | Consumer | |
Group Weighting | Essential | Group | Consulting | |
Worked With Customer Weighting | Desirable | Worked With Customer | Yes | |
Custom Filter Fields Weighting | Desirable | Willing to Travel | Yes |
Resources are ranked according to the relative priorities of the weighting custom settings.
You can determine the priority of the following when ranking resources using Intelligent Staffing:
- Resource percentage availability.
- Number of PSA Resource Filter fields that resources match.
- Resource skill ratings.
For example, you can set the PSA Resource Filter fields to be the most important, followed by skill ratings, and then percentage availability.
Resource ranking priority is controlled by the following Resource Search Service Settings:
- Availability Priority
- Filter Fields Priority
- Skills Priority
For more information, see Resource Search Service Settings.
Resources with the best match on the highest priority attribute move towards the top of the results. Where two resources have the same values for the highest priority of attributes, the second highest priority attribute is then used to sort resources. Finally, the third priority attribute is used.
Example
- Resource D is ranked the highest in the results with the highest skills rating when skills is the highest priority in the configuration.
- Resource D is ranked highest even with the lowest availability because availability is the lowest priority.
- Resource A and B are identical for matching fields in the PSA Resource Filter.
- Resource B is ranked higher than Resource A because of a higher skills rating.
- Although Resource A has higher availability than Resource B, as availability is the lowest priority, Resource B is ranked higher than Resource A.
Resource | Resource Availability | PSA Resource Filter Field Match Rank | PSA Resource Filter Skills Rating | Resource Ranking Priority Results |
---|---|---|---|---|
A | 50% | Joint Third | Fourth |
|
B | 40% | Joint Third | Third | |
C | 30% | Second | Second | |
D | 20% | First | First |
Below are some examples to show how three resources are ranked based on the following:
- Resource percentage availability.
- Number of PSA Resource Filter fields that resources match.
- Numerical resource skill ratings.
- Priority ranking custom setting values.
The examples below use the fields and values in the following table.
Field Type | Field Name | Value |
---|---|---|
PSA Resource Filter Field | Include Recommended Resources | Selected |
Resource Search Service Custom Setting | Role Weighting | Ideal |
Resource Search Service Custom Setting | Practice Weighting | Ideal |
Resource Search Service Custom Setting | Group Weighting | Ideal |
Resource Search Service Custom Setting | Region Weighting | Ideal |
Resource Search Service Custom Setting | Custom Filter Fields Weighting | Essential |
Resource Search Service Custom Setting | Worked With Customer Weighting | Essential |
The following examples show how ranking priority custom settings contribute towards resource rank results.
Example One
Custom Setting Field | Custom Setting Value | Resource | Resource Availability | PSA Resource Filter Field Matches | Resource Skill Rating | Example One Resource Ranking Priority Results |
---|---|---|---|---|---|---|
Filter Fields Priority | 1 | A | 50% | Three | 1 |
|
Skills Priority | 2 | B | 20% | Two | 3 | |
Availability Priority | 3 | C | 100% | One | 2 |
Example Two
Custom Setting Field | Custom Setting Value | Resource | Resource Availability | PSA Resource Filter Field Matches | Resource Skill Rating | Example One Resource Ranking Priority Results |
---|---|---|---|---|---|---|
Filter Fields Priority | 3 | A | 50% | Three | 1 |
|
Skills Priority | 2 | B | 20% | Two | 3 | |
Availability Priority | 1 | C | 100% | One | 2 |
Example Three
Custom Setting Field | Custom Setting Value | Resource | Resource Availability | PSA Resource Filter Field Matches | Resource Skill Rating | Example One Resource Ranking Priority Results |
---|---|---|---|---|---|---|
Filter Fields Priority | 1 | A | 50% | One | 1 |
|
Skills Priority | 2 | B | 20% | One | 3 | |
Availability Priority | 3 | C | 100% | One | 2 |
Example Four
Custom Setting Field | Custom Setting Value | Resource | Resource Availability | PSA Resource Filter Field Matches | Resource Skill Rating | Example One Resource Ranking Priority Results |
---|---|---|---|---|---|---|
Filter Fields Priority | 1 | A | 50% | One | 1 |
|
Skills Priority | 2 | B | 20% | One | 1 | |
Availability Priority | 3 | C | 100% | One | 2 |
Type | Name | Description | PSA Location | Default Value |
---|---|---|---|---|
Checkbox | Include Recommended Resources Default | Select Include Recommended Resources Default for the PSA Resource Filter component in App Builder to set Include Recommended Resources in the PSA Resource Filter as selected by default. | PSA Resource Filter component in Lightning App Builder on the Resource Request Lightning page | Deselected |
Checkbox | Include Recommended Resources | Enable Intelligent Staffing by selecting Include Recommended Resources in the PSA Resource Filter on the Resource Request Lightning page. This setting is for each individual resource request. The default value of Include Recommended Resources is specified by Include Recommended Resources Default in Resource Filter Lightning Component Properties. | PSA Resource Filter component on the Resource Request Lightning page | Deselected |
Column | Rank | This column is displayed in the PSA Resourcing component when Include Recommended Resources is selected. Rank is a numerical ranking for resources. | PSA Resourcing Component | Not Applicable |
Custom Setting Field | Filter Fields Priority | Determines the priority of Role, RPG, Worked With Customer, and custom filter fields when matching and ranking resources with Intelligent Staffing. | Resource Search Service Custom Settings | 1 |
Custom Setting Field | Skills Priority | Determines the priority of skill ratings when matching and ranking resources with Intelligent Staffing. | Resource Search Service Custom Settings | 2 |
Custom Setting Field | Availability Priority | Determines the priority of percentage availability when matching and ranking resources with Intelligent Staffing. | Resource Search Service Custom Settings | 3 |
Custom Setting Field | Custom Filter Fields Weighting | Determines how important it is that the resource matches custom filter fields. Essential means all custom filter fields must match the fields for the resource. Other possible values from most important to least important are Ideal, Desirable, and Suggested. | Resource Search Service Custom Settings | Essential |
Custom Setting Field | Group Weighting | Determines how important it is that the resource matches the Group filter. | Resource Search Service Custom Settings | Essential |
Custom Setting Field | Practice Weighting | Determines how important it is that the resource matches the Practice filter. | Resource Search Service Custom Settings | Essential |
Custom Setting Field | Region Weighting | Determines how important it is that the resource matches the Region filter. | Resource Search Service Custom Settings | Essential |
Custom Setting Field | Role Weighting | Determines how important it is that the resource matches the Role filter. | Resource Search Service Custom Settings | Essential |
Custom Setting Field | Worked With Customer Weighting | Determines how important it is that the resource matches the Worked With Customer filter. Essential means the Worked With Customer filter must match the field for the resource. Other possible values from most important to least important are Ideal, Desirable, and Suggested. | Resource Search Service Custom Settings | Essential |