A dispatcher at a commercial HVAC contractor gets a work order for a rooftop unit replacement that needs a refrigerant-certified technician and a licensed electrician on site at the same time. Neither one can do the job alone, and the customer has a four-hour access window. On most schedule boards, this becomes two separate booking searches, two different sets of availability to cross-reference by hand, and a fair amount of guessing about who else is nearby when the first match falls through. Dynamics 365 Field Service has had a purpose-built answer to this for a while, and it lives inside a feature called Field Service requirement groups. What changes this year is that Field Service is also rolling out an AI agent that can optimize those multi-resource schedules on its own, and the two capabilities need to be understood together, not separately, if a rollout is going to hold up.

Why Requirement Groups Exist
A requirement group bundles several resource requirements that are commonly scheduled together for a single job: two technicians with different skills, a technician paired with a piece of equipment, or a facility resource alongside the staff member who runs it. It solves a narrower problem than it sounds like it should. Field Service already has crews for resources who always work as a fixed unit, so requirement groups are reserved for combinations that vary from job to job, which is exactly the HVAC scenario above. Get that distinction wrong early and dispatchers end up maintaining crew records for what are really one-off pairings, which defeats the purpose of either feature.
Configuring Field Service Requirement Groups: A Three-Step Setup
Building a usable requirement group takes three steps, and the order matters more than the documentation implies, because the template governs everything downstream.
The first step is the requirement group template, created under Resource Scheduling settings. Two fields here decide how strict the matching logic is. The “Select” setting is either All, meaning every resource in the group must satisfy every requirement, or Any, meaning a resource can fulfill any one of them; nesting subgroups lets a team combine both, for instance a root group set to Any with two subgroups each set to All, which is how a dispatcher models “either an electrician-plus-tech pairing or a single dual-certified tech will do.” The “Part of Same” setting controls how tightly the resources have to be related to each other, ranging from a shared location association up through a shared organizational unit, which is the strictest option and the one most enterprises with multiple legal entities or regional service territories will actually need.
The second step is adding individual requirements to the template: duration, characteristics or skills, resource categories, work location (facility, on-site, or location-agnostic), and preferred resources, each capped at ten values. That cap is easy to hit for a services company with a large skills taxonomy, and the practical fix is to push filtering down to characteristics rather than trying to enumerate every acceptable technician by name.
The third step is booking through the schedule assistant, which searches for resources that can fulfill the group’s requirements and defaults to recommending the option requiring the fewest resources first. Requirement group templates can also be attached directly to incident types, so a work order created from a known incident type pulls in its multi-resource requirements automatically instead of relying on a dispatcher to remember which jobs need a paired booking.
The Detail That Breaks Onsite Jobs
One behavior catches teams off guard during go-live. The schedule assistant matches resources by arrival time, not by when they start traveling. For a job where both resources are dispatched from the same depot, that distinction rarely matters. It matters a great deal when one technician is thirty minutes from the site and the other is ninety minutes out on a different route; the assistant will still try to land them at the customer’s door at the same moment, which can mean the closer resource sits idle waiting for a window that a smarter dispatcher would have staggered. Any territory with technicians spread across a wide radius should account for this when setting expectations with dispatch staff, rather than treating a rejected recommendation as a bug.
A handful of other constraints are worth knowing before they show up as a production surprise. Requirement groups do not support multi-day scheduling; a job spanning more than one day needs Field Service’s separate multi-day scheduling capability instead. Every requirement inside a group must share the same duration, so a job needing a technician for four hours and a specialist for only the first hour has to be modeled as two bookings, with cascade crew changes disabled afterward so adjusting one booking’s length does not silently drag the other along with it. And incident types that already carry their own characteristics cannot be linked to a requirement group template at the same time, which pushes teams toward attaching characteristics to the individual requirements inside the group rather than to the incident type itself.

Where the Scheduling Operations Agent Fits
Requirement groups solve how a multi-resource job gets modeled and booked once. The Scheduling Operations Agent, entering broader preview this month, is aimed at a different problem: keeping the whole day’s schedule coherent after the first booking, when cancellations, overruns, and priority changes start cascading across a technician roster. It already handled single and multi-resource optimization in an earlier preview; what is new is an “automate optimizations” capability that runs in two modes. Interactive mode surfaces suggested changes for a dispatcher to accept in the moment, which is closest to how the tool has worked so far. Batch mode runs asynchronously against a defined scope of resources, on a schedule, which is the part that actually reduces manual dispatch work rather than just speeding up the click-through.
The naming is a little ahead of what the feature currently does, and that gap is worth being precise about with stakeholders. Every optimization the agent proposes, in either mode, still requires human approval before it takes effect, and it will not touch a booking marked “Do Not Move.” That is a sensible guardrail, but it means batch mode is closer to an overnight queue of pre-vetted suggestions waiting for a morning review than to unattended rescheduling. Teams evaluating this as a way to cut dispatcher headcount should model it as an efficiency gain on the review step, not a removal of the step.
Setup runs through three admin-configured objects: goals, which define what the agent is optimizing for and the constraints it has to respect, such as skill eligibility and territory boundaries; scopes, which define which resources and requirements are in play; and plans, which schedule batch runs. None of this is exposed to end users by default, so a pilot needs a maker or admin to own the configuration from day one, and it needs a data foundation of accurate characteristics and territory assignments on the underlying resources, since the agent’s recommendations are only as good as the constraint data it is reading. This is also where requirement group discipline pays off twice: a schedule with sloppy or missing characteristics will produce weak optimization suggestions regardless of how well the agent itself is configured. Regional rollout is uneven as well; the feature is unavailable in Azure Government and China cloud environments and is still expanding across other regions, so a multinational deployment should confirm coverage before promising a go-live date to any specific site.
Sequencing a Rollout That Actually Holds
The practical order is to get requirement groups and their underlying characteristics right first, on a defined subset of incident types, before layering the agent on top. A team that tries to configure both at once tends to spend its pilot debugging which layer produced a bad recommendation. Once requirement group bookings are reliable for a specific service line, interactive-mode agent suggestions are a reasonable next step, since a dispatcher is reviewing every change anyway. Batch mode is worth piloting only after that interactive period has built some trust in the agent’s judgment on that same resource pool, and even then it should start on a narrow scope rather than the full technician roster. Routeget Technologies has run this kind of phased rollout with field service clients who tried to skip straight to full automation and ended up rebuilding their characteristic taxonomy mid-project instead; sequencing it the other way costs a little more calendar time upfront and considerably less rework later.
#FieldServiceScheduling #RequirementGroups #SchedulingOperationsAgent #MultiResourceBooking #DispatchOptimization #DynamicsFieldService

