Assigner
Use case

Dynamics 365 Unified Routing: Licensing, Add-On Cost, and Routing Rules for Customer Service

Unified routing is the part of Dynamics 365 Customer Service that decides which queue a case lands in and which representative picks it up. Most teams meet it for one of two reasons: they want to route something that is not a case, or they turned it on and their existing routing stopped working. Both have documented answers, and neither is in the pricing page.

See how it works
Rules you control Works beside your stack No black box No sales call
Routing Studio
Assigned

Routed by your rules
Inbox
Assignees load
Skipped

In short

Unified routing is the Dynamics 365 Customer Service and Contact Center engine that classifies incoming work and assigns it to a queue and a representative based on skills, presence, and capacity. It is off by default when Customer Service is installed on its own, and you enable it in the Copilot Service admin center under Routing, Manage unified routing. Microsoft does not name a required SKU in the routing documentation itself; it points to the Dynamics 365 Licensing Guide, so verify your entitlement before you budget. Two documented behaviors decide most projects. Basic routing can be used for cases only, so routing any other record type forces you onto unified routing. And after you enable unified routing, the active basic routing rule will not route records until you configure intake rules, which is why routing appears to break the moment the toggle flips. Assigner is a routing layer that sits beside Dynamics 365 rather than inside it, distributing leads, support tickets, and ops tasks through one engine by round-robin, weighted round-robin, skill, live workload, priority, and availability, at $12 per user per month billed yearly ($15/mo billed monthly). It is a companion, not a replacement, and not a live two-way sync. The AI assists, the rules stay yours, every assignment is explainable.

// THE FIT

Why it fits

This page is for a Dynamics 365 Customer Service administrator or support operations lead who has been told to turn on unified routing, or who is pricing the move from Customer Service Professional to a tier that carries it. It assumes you already own Dynamics and are deciding how much routing engine you actually need to buy, not whether to replace your CRM.

Basic routing covers cases and nothing else

Microsoft states it plainly in the unified routing FAQ: basic routing can be used for cases only, and to route any record type you use unified routing. That one sentence, not a feature comparison, is what pushes most teams onto the heavier engine.

Enabling it stops your current routing

After you enable unified routing, the active basic routing rule will not route records until you configure intake rules. Teams that flip the toggle in production to see what it does find that nothing routes at all, and the cause is documented rather than a bug.

Out-of-the-box assignment ignores working hours

The documented out-of-the-box assignment strategies do not consider representative operating hours. Honoring a schedule means writing a custom assignment method using the is_working operator, and the moment you go custom the workstream defaults for presence, capacity, and skill matching stop applying.

// COMPARE

Side by side

The four out-of-the-box assignment methods, and where each one leaks

Assignment method How it picks a representative Channels Honors working hours Where it leaks
Highest capacity The representative with the highest available capacity who matches skills and allowed presence. Ties are broken round robin. All channels No The fastest closer frees capacity first and keeps absorbing the queue, so throughput looks great and fairness quietly degrades.
Advanced round robin A rotation seeded by the order users were added to the queue, then updated by assignment. Ties go to the earliest last-assignment time. All channels No Ordering is kept per queue, so a representative sitting in three queues can receive back-to-back items from different queues.
Least active The longest time since capacity was last released for a voice or messaging conversation, adjusted by the wrap-up setting. Voice and messaging only No A representative who has just signed in has no last capacity release time, so the system treats them as least active and hands them the next item.
No auto assignment (pick) Nothing is assigned. Work sits in the queue and representatives pull it from their Inbox. All channels Not applicable Items stay unattended unless somebody watches the queue, which Microsoft calls out directly in the documentation.
Custom assignment method Your own assignment ruleset, evaluated strictest rule first and relaxed until somebody matches. All channels Only if you add the is_working operator yourself Workstream defaults for presence, capacity, and skill matching are not used, so anything you forget to restate is simply gone.

Least active is the default selection when you create a voice or messaging queue. Round robin ordering is maintained per queue rather than per person, which is the single most common reason a Dynamics fairness complaint survives a correct-looking configuration.

// DETAIL

In detail

What the documentation says, and what it costs you in practice

What Dynamics 365 unified routing costs, and why Microsoft will not print a number

There is no published price for unified routing as a line item. The routing documentation says only that specific licensing requirements apply when you use unified routing in Dynamics 365 Customer Service and Dynamics 365 Contact Center, and then links to the Dynamics 365 Licensing Guide, a PDF that changes without a changelog. Neither the provisioning article nor the record routing article names a SKU. If a vendor or a blog tells you the exact edition unified routing requires, ask them to point at the sentence, because Microsoft does not write it down in the docs.

What is published is the list price of the tiers the capability lives inside. As of September 2026 Microsoft lists these on the Dynamics 365 Customer Service pricing page:

PlanUS list priceBilling
Customer Service Professional$50.00 per user/monthPaid yearly
Customer Service Enterprise$105.00 per user/monthPaid yearly
Customer Service Premium$195.00 per user/monthPaid yearly
Dynamics 365 Contact Center (add-on)$110.00 per user/monthPaid yearly, discounted when bought with Customer Service Enterprise or Copilot for Service

The practical shape of the decision is a tier move, not an add-on checkbox. The published gap between Professional and Enterprise is $55 per user per month, so for a 40 seat support team that is $26,400 a year in list price before any discount, and the routing engine is one of several things you get for it. That is the number worth putting in front of whoever approves the budget, alongside an honest answer to a narrower question: do you need unified routing, or do you need work distributed fairly?

Two costs hide behind the license. Observability is one. Routing diagnostics has been deprecated in favor of Azure Application Insights, which requires a managed environment and bills through Azure Monitor on a pay-as-you-go model, so understanding your own routing decisions is a separate meter. AI-predicted skills are the other: intelligent skill finder depends on AI Builder being available in your region, and if it is not, setup returns a generic error.

Why records stop routing the moment you enable unified routing

This is the most expensive gotcha in the product and it is documented in one line: after you enable unified routing, the active basic routing rule will not route records until you configure intake rules. Enabling the toggle does not layer a smarter engine on top of what you had. It replaces the path, and the new path is empty until you build it.

The sequence that actually works, in order, is:

  1. Enable unified routing in the Copilot Service admin center under Routing, then Manage unified routing, toggle to Yes, Save.
  2. Enable each record type for routing through the records channel configuration. Nothing routes for a record type you have not added.
  3. Set your users up as bookable resources. This is a listed prerequisite and it is the one people skip.
  4. Create a workstream with Type set to Record and a work distribution mode of Push or Pick.
  5. Create intake rules and map them to the workstream or to an active basic routing rule. Conditions can reach two levels into related records.
  6. Configure work classification rules and route-to-queue rules on the workstream.

Microsoft is explicit that you should not do this first in production: the recommendation is to configure and test unified routing in a test or development environment first, and there is a warning that enabling it might affect runtime operations on account of solution import that can affect SQL load. Existing queues are migrated automatically, which is the one part of this that takes care of itself.

If records still are not routing after all of that, the documented first check is whether you configured an intake rule and mapped it to a basic routing rule that is active. The second is quieter and catches everyone at least once: configuration changes, including routing settings, skills, capacity profiles, and calendars, take up to 15 minutes to take effect. A rule that looks broken is often a rule that is not live yet.

Where work silently disappears instead of erroring

Routing failures that throw an error get fixed on the day they happen. The ones that cost money are the ones the platform handles quietly, and unified routing has several.

A conversation routed to a queue with no representatives is closed automatically by the system. Not held, not escalated, not flagged. Records such as cases behave differently: they remain in the queue and are simply never auto-assigned. So the same misconfiguration produces a deleted customer conversation on one channel and a growing pile of untouched cases on another.

Permissions cause the same outcome. If a representative does not have permission to an assigned work item, the assignment is stopped and the conversation is closed to protect it. A representative can even pick a work item for a record they cannot access, at which point they cannot view the details and the conversation closes. A security role change made for an unrelated reason can therefore start closing conversations days later.

Auto assignment requires a private queue with at least one representative. That is the documented answer to why a queue has unassigned work items, and it catches teams who built public queues out of habit.

Declines are capped. A representative who rejects a work item, or lets the notification time out, has their priority reduced for it. After three declines, or your configured limit, they are no longer offered that item at all. The limit is org-wide and adjustable between one and five. You can read it with an OData call against msdyn_omnichannelconfigurations and a null value means the default of 3. If 100 representatives decline a single item, auto assignment gives up on it entirely and only a supervisor or a manual pick will move it.

Finally, an unmatched work item just waits. If no assignment rule matches anyone, the item remains in the queue until someone assigns it by hand or routes it elsewhere. There is no overflow by default and no alert.

Round robin in unified routing is not the round robin people picture

When a support manager asks for round robin they usually mean one thing: over a week, everybody should end up with roughly the same amount of work. Advanced round robin in unified routing does something narrower.

The initial order is based on when a user was added to the queue, and then the order is updated based on assignments. Crucially, the ordering is maintained queue-wise. A representative who belongs to three queues holds a separate position in each one, so depending on their last assignment timestamp per queue they can be handed back-to-back or concurrent work items from different queues. Each queue is being scrupulously fair on its own and the person is being buried.

Tie-breaking is well defined and worth knowing: when several representatives match and the order-by value is equal, the system assigns to the one whose last assignment was earliest. Under highest capacity, ties also fall back to round robin order.

Least active has its own edge. It ranks on the time since capacity was last released for a voice or messaging conversation, and a representative who has just signed in to Copilot Service workspace has no last capacity release time recorded. The system therefore considers that representative the least active of the matched set and assigns them the next work item. Arriving late is rewarded, which is the opposite of what a fairness policy is supposed to do. The underlying data lives in the msdyn_agentchannelstate table if you want to audit it.

None of this is broken. It is a set of defensible local rules whose combined behavior does not match the sentence "distribute work evenly across the team," which is the sentence the business actually asked for.

The quotas that shape a real deployment

These are organization-level limits from the published service quotas, and they matter at design time because several are not adjustable.

LimitValueAdjustable
Intake rules100 for recordsNo
Route-to-queue rules per workstream200 rulesNo
Classification rulesets per workstream10 rulesets, 100 rules per rulesetNo
Prioritization rulesets per queue1No
Incoming conversations or work items100 per minute total across voice, live chat, digital messages, and recordsYes
Bulk user updates for skills, capacity profiles, queue membership25 users per bulk updateYes
Bulk user provisioning500 per 15 minutesYes
Time for routing, skill, capacity, and calendar changes to take effect15 minutesNo

The 100 per minute ceiling is aggregated, not per channel: 50 voice calls, 35 chats, and 15 digital messages in the same minute reaches the limit, and anything past the hundredth item may see reduced service quality. The 25 user bulk update limit is the one that bites operationally. Reshuffling skills or capacity profiles across a 200 person contact center is eight separate bulk operations, each followed by a 15 minute settle.

One structural constraint does not appear in any quota table: you cannot configure a mailbox for advanced queues. If you manage queue mailboxes, Microsoft recommends staying on basic queues, which pulls against the move to unified routing. Unified routing is also not supported in Unified Service Desk, so a team still running USD has a client migration in front of them before any of this applies.

Skills and capacity profiles: the parts that earn the license

If you are paying for unified routing, skills and capacity are what you are paying for. Both have behavior worth knowing before you model them.

Skill matching runs in one of two modes set on the workstream. Exact Match filters to representatives whose rating is greater than or equal to the required value, then orders them by available capacity. Closest Match filters on presence and capacity, then orders by closeness of skill rather than by available capacity, which means the best-matched person can be handed work while a less-skilled colleague sits idle. That is a deliberate trade and it should be a conscious one.

A warning that costs people a morning: if you modify a rating model, ongoing conversations and open work items keep their existing rating, and the result can be that no representatives match the assignment criteria at all. Changing a rating scale mid-flight can strand live work.

Capacity comes in unit-based and profile-based flavors. With profiles, a work item can carry more than one, and the documented resolution is clean: if two representatives each match one required profile and a third matches both, the third gets the work. Unified routing looks for available capacity in both the default profile from the workstream and the profile appended during classification.

The assignment cycle itself is triggered by a new work item arriving, a presence change, a runtime capacity update, a representative being added to the queue, and a periodic trigger every five minutes for record work items. Note that a capacity change made manually does not trigger a cycle, and that record routing therefore has up to five minutes of built-in latency. If your service level is measured in minutes, budget for that.

Where Assigner fits beside Dynamics 365 Customer Service

Assigner does not replace unified routing and it does not sync two ways with Dynamics. It is a routing layer that sits beside your stack and decides who gets a piece of work, using round-robin, weighted round-robin, skills, live workload, priority, and availability, with every decision explainable after the fact.

It is worth looking at in three situations. The first is when the work you need routed is not a case and not a conversation: internal ops tasks, onboarding steps, review queues, anything that lives outside the channels unified routing was built for. The second is when your fairness problem crosses systems, because Dynamics splits routing across products already, with assignment rules covering leads and opportunities in Sales and unified routing covering cases in Customer Service, so a team wanting one definition of fair is otherwise configuring and paying for two engines. The third is working hours, since the out-of-the-box methods do not consider representative operating hours without a custom assignment method.

Where it is the wrong answer, plainly: if you need voice and digital channel handling, presence-driven concurrent conversation control, or agent-facing omnichannel workspaces, that is what you are buying Dynamics 365 Contact Center for, and Assigner does not do it. Pricing is $12 per user per month billed yearly ($15/mo billed monthly), self-serve.

// FAQ

Questions buyers ask

Frequently asked questions

What is unified routing in Dynamics 365?

Unified routing is the routing and assignment engine in Dynamics 365 Customer Service and Dynamics 365 Contact Center. It works in two stages: a classification stage where rules and machine learning models add information to a work item, and an assignment stage where work is prioritized and matched to a representative by skills, presence, capacity, and workload. It covers all channels, including records such as cases, so utilization is measured in one place.

How do I turn on unified routing in Dynamics 365?

Unified routing is off by default when Customer Service is installed on its own. In the site map of the Copilot Service admin center select Routing, select Manage under Manage unified routing, turn the Unified routing toggle to Yes, and select Save. You need an Administrator role, the Dynamics 365 System Administrator role on the root business unit, and Read-Write access in the Client Access License information.

Why are records not being routed after unified routing is enabled?

The documented cause is missing intake rules. After you enable unified routing, the active basic routing rule will not route records until you configure intake rules and map them to a basic routing rule that is active. Also confirm the record type is enabled through the records channel configuration, that your users are set up as bookable resources, and remember that configuration changes take up to 15 minutes to take effect.

What license do I need for Dynamics 365 unified routing?

Microsoft does not name a SKU in the unified routing documentation. Both the FAQ and the provisioning article say only that specific licensing requirements apply and link to the Dynamics 365 Licensing Guide. Published list prices for the tiers it lives in are Customer Service Professional at $50, Customer Service Enterprise at $105, and Customer Service Premium at $195 per user per month paid yearly, with Dynamics 365 Contact Center at $110 as an add-on. Confirm your entitlement in the guide before budgeting.

Is unified routing an add-on in Dynamics 365?

Not as a separately priced line item. Unified routing is a capability inside Dynamics 365 Customer Service and Dynamics 365 Contact Center rather than something you buy on its own, and it has to be enabled explicitly because it is off by default when Customer Service only is installed. Dynamics 365 Contact Center is a genuine add-on at a published $110 per user per month paid yearly, and it brings the voice and digital channels.

What is the difference between omnichannel and unified routing in Dynamics 365?

Unified routing is the engine that decides where work goes. Omnichannel is the set of channels it can route, along with the agent workspace that handles them. You can run unified routing for records such as cases without omnichannel channels at all, but accessing Omnichannel for Customer Service requires its own license. Enabling unified routing when omnichannel capabilities exist but are not deployed produces a message telling you to contact Microsoft Support.

Can basic routing rules route anything other than cases?

No. Microsoft states that basic routing can be used for cases only, and that you must use unified routing to route any record type. This is usually the deciding factor rather than any advanced feature: if the thing you need routed is not a case, basic routing cannot do it regardless of how simple your requirement is.

Where do I find routing rules in Dynamics 365?

Routing rules live on the workstream in the Copilot Service admin center, under Routing in the Customer support area. A workstream carries intake rules that decide which workstream picks up the work, work classification rulesets that add context, and route-to-queue rules that choose the queue. Assignment methods and prioritization rules are configured on the queue itself, not the workstream.

What assignment methods does unified routing support?

Four out of the box plus custom. Highest capacity picks the representative with the most available capacity. Advanced round robin rotates through queue members. Least active picks the longest since a capacity release and is available for voice and messaging only. No auto assignment leaves items for representatives to pick. You can also build custom assignment methods with your own prioritization and assignment rulesets.

Does unified routing respect agent working hours?

Not by default. The out-of-the-box assignment strategies do not consider representative operating hours. To honor a schedule you must write a custom assignment method using the is_working operator against the calendar schedule attribute. Automated assignment considers the representative calendar schedule only and ignores operating hours defined on the queue.

What happens if a work item has no matching representative?

For records, the unassigned work item remains in the queue until you manually assign it or route it to another queue. For conversations, a conversation assigned to a queue that has no representatives is closed automatically by the system. Assignment rulesets relax constraints as they go, evaluating the strictest rule first, but if nothing matches the item simply waits.

How many times will unified routing offer the same work item to an agent?

Three times by default. A rejection and a notification timeout both count as declining. After three declines, or your configured limit, the representative is no longer considered for auto assignment of that item, though they can still pick it manually. The limit is set org-wide and can be changed to any value from one to five.

Can I use unified routing with Unified Service Desk?

No. The documentation states that unified routing is not supported in Unified Service Desk. Representatives must use the Copilot Service workspace app to be assigned work through unified routing, and administrators configure it in the Copilot Service admin center, so a team still on USD has a client migration ahead of any routing project.

Keep reading

Related routing pages worth reading next:

Stop hand-sorting your incoming work

Let Assigner route it to the right available person by skill, workload, and availability, using rules you control. Nothing sits unassigned and no one gets cherry-picked. Every assignment shows why.