Dynamics 365 Universal Resource Scheduling – Basic Concepts

With Dynamics 365 Universal Resource Scheduling (URS) you can enable scheduling for any entity in Dynamics 365 Sales, Field Service, Customer Service, and Marketing, including custom entities.

URS comes when you install Dynamics 365 Field Service or Customer Service.

  • With Dynamics 365 Field Service, you can schedule technicians on work orders.
  • With Dynamics 365 Customer Service, you can use scheduling tools to book cases to customer service reps in the right department and time zone.
  • You can also use URS to schedule any custom entity in Dynamics 365.

The below diagram highlights the concepts behind the Dynamics 365 Universal Resource Scheduling. You can use this diagram to get a shared understanding of the high-level features that come with URS.

Resources

A resource is anything that can to be scheduled against a requirement.

Resource Types: The different resource types are:

  • Generic: Used as a place holder to define a type of resource that is needed until a specific named resource can be used in its place. Generic resources are intended to be used in Project Operations where you can create tasks and then assign generic resources to them. This way, resource demand can be represented by placeholders while you estimate your schedule and financial numbers. You can then generate resource requirements for the generic resources and fulfill them. https://docs.microsoft.com/en-us/dynamics365/project-operations/psa/manage-resources#assign-generic-resources-to-tasks-and-generate-resource-requirements.
  • Account: Defines a resource associated with a Dynamics 365 account record. These typically represent external organizations that you leverage to perform work.
  • Contact: Defines a resource associated with a Dynamics 365 contact record. These typically represent individuals outside your organization.
  • User: Specifies the resource as an internal user working for your organization.
  • Equipment: Defines resources that represent a specific piece of equipment, such as a large piece of machinery, mobile workstation, video projector, or another item.
  • Crew: Represents multiple resources that are always scheduled together as group and are not scheduled individually, such as a cleaning or survey crew.
  • Facility: Represents a facility that can be scheduled such as a building, room, or service bay.
  • Pool: Represents a pool of resources that have something in common such as all being electricians or tied to a specific region. Pools are typically used as placeholders, until an individual member of the pool is assigned to the item.

Work Hours: For each resource, you typically define working hours which determine the resource availability. (The time zone information must also be set).

Start / End Locations: When you define a starting and ending location, you have three options that you can define:

  • Organization unit address: Uses the latitude and longitude associated with the Organizational Units that the resource belongs to.
  • Resource Address: Uses the latitude and longitude associated with the corresponding record. Only applies to Accounts, Contacts and Users.
  • Location Agnostic: Does not have a specific location defined. Can be useful when resources don’t have a clearly defined starting and ending location.

Constrains: See the list of constrains below. Constrains can be linked to a resource and a requirement which will help you find the most appropriate resource to be booked on the requirement.

Constrains

Each resource can be associated with “constrains” that provide the ability to add attributes to your resources and make it easier to identify the ideal resource for a job.

Out of the box, the following “constrains” are available withing Dynamics 365:

Roles: Define the roles that resources might have in an organization. For example, an organization might create roles for positions like developer, consultant, or project manager.

Skills / Characteristics: Define specific skills, certifications or characteristics that resources can possess. They could designate specific programs, credentials, or room specifications.

  • Rating values: Define how proficient a resource is in a specific skill.

Territories: Lets you define the specific territories that a resource belongs to. A single resource can be associated with multiple territories.

Organizational Unit: Defines the specific organization unit that the resource belongs to and will be schedule out off. For Facility / Equipment, we can set the latitude and longitude associated with the Organizational Units that the resource belongs to.

Resource Types: See description under Resources.

Pool Types: A resource pool type can be one of the following:

  • Facility: Represent buildings or locations.
    • Facilities must have an organization unit defined from them.
    • The start and end location must be set to the Organization Unit that is selected.
  • Accounts / Contacts/ Users: Represents individual people and items that can be scheduled.
  • Equipment: Pieces of equipment.

Team: Filter resources of type “User” based on the User’s Team

Business Unit: Filter resources of type “User” based on the User’s Business Unit

[Custom]: You can also configure your own constrains with existing or custom entities.
More info under: https://docs.microsoft.com/en-us/dynamics365/common-scheduler/developer/extending-urs-step-by-step

Requirements

Define the specific resource requirements that are needed for a specific a record to be scheduled.

The following can be defined for a requirement:

Constrains: See the list of constrains above. (Except from the Team and the Business Unit).
Constrains can be linked to a resource and a requirement which will help you find the most appropriate resource to be booked on the requirement.

From Date: The earliest date and time when the requirement can be scheduled. Ex: if the From Date is 16/05/2021 at 8AM, then the booking can’t be scheduled before that date.

To Date: The latest date and time when the requirement can be scheduled. Ex: if the To Date is 31/05/2021 at 6PM, then the booking can’t be scheduled after that date.

Duration: The Duration required for the requirement. There are 3 fields that work together when requirements and bookings are created.

  • Proposed Duration: The initial duration on the requirement.
  • Fulfilled Duration: The duration based on the booking record created. Ex: if the requirement is of 6hrs, and you created 2 bookings of 1 hours each for the requirement, then the Fulfilled Duration is 2hrs.
  • Remaining Duration: The duration based on the booking records created. Ex: if the requirement is of 6hrs, and you created 2 bookings of 1 hours each for the requirement, then the Remaining Duration is 4hrs.

Requirement Status

  • Active: A requirement that has not yet been scheduled in the system.
  • Completed: A requirement that has successfully been scheduled and has a related booking created.
  • Canceled: A requirement that no longer needs to be scheduled for some reason.

Resource preferences: For each resource added as a resource preference, you can define a Preference Type:

  • Preferred: These resources will show at the top of schedule assistant results.
  • Restricted: These resources will be excluded from schedule assistant results.
  • Must choose from: Only these resources will show in schedule assistant results.

Fulfillment Preferences: Help to specify how items can be scheduled. For example, a fulfilled preference, might define that when attempting to schedule an item, it should use intervals of 60 minutes, and that they should be scheduled at the top of every hour.

Bookings

Define which resource is scheduled to work on the requirement. They also include statuses that define where the resource is at in the process.
For example, a resource booking would be created if John is scheduled to work on a broken printer issue tomorrow from 8:00 AM to 11:00AM. When John arrives on site his status can be changed from in progress to complete as he completes work.

Start Time: Start Date and Time of the Booking.

End Time: End Date and Time of the Booking.

Duration: Duration of the Booking.

Booking Status: The status of the booking.

  • Proposed: Updates the Proposed Duration on the Requirement.
  • Committed: Updates the Fulfilled and Remaining Duration on the Requirement.
  • Canceled: Reset the Proposed, Fulfilled and Remaining Duration on the Requirement.

Resource: The Resource that will work on the booking.

Requirement: The Requirement associated with this booking.

Entity Relationship Diagram

If we look at the Entity Relationship diagram, we see that Resources and Requirements can have many Constrains.
The Booking record is effectively the link between a Resource and a Requirement.

Universal Resource Scheduling - Entity Relationship Diagram

Booking Resources

Manual “Drag and Drop” the Requirement on the Resource using the Scheduling Board

Manual "Drag and Drop" the Requirement on the Resource

You select the requirement to schedule and drag it on the resource at the preferred start time. Once you drop the requirement, Dynamics 365 will automatically create the booking at the correct start time, end time and duration. You can still adjust the duration on the board.

Using the “Scheduling Assistant”.

Create bookings using the "Scheduling Assistant"

When using the “Scheduling Assistant”, Dynamics will prepopulate the “Filter” area with the constrains from the requirement and automatically filter the board to find the resources that match the data and constrains on the requirement.

You can then select the resource to create the booking.

Using the “Quick Book” from the requirement

Create bookings using the "Quick Book" button

Quick Book simplifies the schedule assistant experience to make scheduling easier and quicker.

Within the same window a single click brings up a pane showing available booking time slots based on the data and constrains on the requirement.

!! “Generic” resources are not retrieved using the “Scheduling Assistant” nor the “Quick Book”

Links to additional information