In my previous article I refined my resource search with the Resource Category entity conditioned by the Event type. You can find that blog post here.
In this article I will add additional filtering with the help of the Characteristic entity when I continue my search for the perfect Resource.
This is part of a series of articles about Universal Resource Scheduling (URS) and examples on how to customize and use it for custom entities.
The difference between Category and Characteristics
First of all – think of Characteristics as one level deeper than Category. Here are a few examples:
Resource Type | Category | Characteristics |
Contact/User | Developer | JavaScript C# SQL |
Equipment | Vehicle | Manual Gearbox Air Conditioning Diesel |
Facility | Meeting Room | Projector Speaker |
The biggest difference system wise between Category and Characteristics is that a Characteristic can have a Rating Value (note that it’s not mandatory though). For example if you are looking for a trainer for an advanced PowerApps training session, you want to differentiate the trainer who knows it very well from the once who only knows the basics.

Sidenote: The right section on the Bookable Resource form is not visible by default so if you don’t see it make changes to your form.
You can change the Rating Model to values of your choice by navigating to Universal Resource Scheduling App (1), choose Settings (2) and then Proficient Models (3).

Only one Rating Model can be active for Skill (eg Characteristic) at a time
How we use Characteristics in our Event scenario
So in my former blog post we added a filter on Resource Category (entity is called Role in the Schedule Assistant) to make sure our search was only going to show Trainers.

But finding all available trainers is still not specific enough for us to actually find an appropriate Resource. So let us use Characteristics to narrow it down even further. First of all I will create two N:1 relationships between Event and Characteristics, one called Subject and one called Language.

I also add these two values to the existing Option Set Characteristic Type so I can create two new views that filter on Subject and Language.

I pop them on the form and use the filtered views I just created to make it more user friendly.

This is my event when I’ve populated a subject and a language.

Add Characteristics to our filtering
I’m continuing on the same workflow from my former blog post, where I’ve already created the Resource Requirement. So I add two steps where I create a record of the entity Requirement Characteristic and populate the Subject(1) in one of the records and the Language in the other.
Most important step is to make sure that populate the lookup for the Resource Requirement that was created in the first step of the workflow. It’s placed under Local Values (2).

The Result
This time when I use the Schedule Assistant it now added the filter for my Subject and Language skills and narrowed my Resource search. BOOM.

Limitations and the next step
To use lookup fields to add Characteristics for filtering is only a viable choice if you have a specific set of Characteristics to search from and are in no need to add several of the same Characteristics type. But what if we want to search for a trainer who knows both Flow, PowerApps and Power BI for a full day training? And what if we want to add a rating value for those skills for even more specific results? Then this solution will not be sufficient.
In my upcoming article I will present an alternative solution where you are able to filter on as many Characteristic as you want and also add the appropriate rating value of those skills but with its’ own limitations.
Until next time… Catch you on the flip side!