Almanac

Consultant-focused KB for Microsoft Dynamics 365 Contact Center: implementation notes, gotchas, and configuration decisions beyond the official docs — across voice and digital channels, routing, agent and supervisor experience, Copilot & AI, workforce engagement, analytics, administration and security.

3 versions · feature-assignment-methods.md
v3🤖 markdown-import4 days agomarkdown import
… 11 unchanged lines …
- After **100 agents decline** a single item, auto-assignment stops: supervisor must assign manually
- Assignment cycles trigger on: new work item, presence change, agent added to queue. Records also have a **5-minute periodic trigger**
- **Dynamic Prioritisation (Preview):** AI-driven priority escalation based on wait time or queue transfer; **cannot be combined** with custom prioritisation rules on the same queue
+ - **Assignment scale limits (published 11 Sept 2026)** — the ceilings are very different for OOB and custom methods. From [Assignment scale limits](https://learn.microsoft.com/en-us/dynamics365/customer-service/implement/service-quotas#assignment-scale-limits):
+ | Assignment method | Backlog awaiting assignment | Incoming conversation rate | Max queues | Max users per queue | Users across queues |
+ |---|---|---|---|---|---|
+ | Default, no cross-queue prioritisation | 50,000 | 5,000/min | n/a | 5,000 | 10,000 |
+ | Default, with cross-queue prioritisation | 50,000 | 5,000/min | 100 | 5,000 | 10,000 |
+ | Custom, no cross-queue prioritisation | 10,000 | 500/min | n/a | 2,000 | 10,000 |
+ | Custom, with cross-queue prioritisation | 10,000 | 500/min | 20 | 2,000 | 10,000 |
+
## When to use / skip
Almost all deployments use one of the OOB push methods. Use No auto assignment when the operating model is genuinely pull-based, small specialist teams, or supervisor-controlled allocation where auto-push would misfire. Use Custom only when out-of-the-box genuinely can't meet the requirement, the most common legitimate reason is needing the `is_working` calendar operator to respect agent shift schedules.
… 4 unchanged lines …
## Gotchas
- **No auto assignment has no safety net.** Because nothing is pushed, a quiet or distracted queue lets items sit indefinitely. Monitor the queue and set up supervisor alerting before you rely on it.
+ - **Custom assignment costs you an order of magnitude of headroom.** Custom methods cap at 10,000 queued work items and 500 conversations a minute against 50,000 and 5,000 for the out-of-the-box ones, and cross-queue prioritisation drops from 100 queues to 20. Nobody tells you this at design time; you find it when volumes grow. Check the numbers against the client's peak before you agree to a custom ruleset.
- **Custom assignment requires explicit presence and capacity rules.** Workstream defaults don't carry over. Miss this and work gets assigned regardless of agent availability.
- **The decline limit matters operationally.** If agents miss notifications at go-live (common), items can get stuck after 3 decline cycles. Configure deliberately and test the decline flow in UAT.
- **Dynamic Prioritisation is Preview.** Don't use in production for regulated environments yet.
… 2 unchanged lines …
- Pick-based (No auto assignment) looks attractive to clients who want representatives to "choose their own work", but it moves the SLA risk onto floor supervision. Only recommend it where there's genuinely someone watching the ongoing conversations dashboard; otherwise a Least Active push queue is safer.
- Simulate the decline flow in UAT before go-live. Go-live week is when agents are learning the workspace and notification sounds: 3 misses is easy to hit accidentally. Know exactly what happens to a work item after 3 declines before the first real customer call.
+ - The scale limits published in September 2026 are the strongest argument yet against custom assignment. A contact centre running 2,000+ agents in a single queue, or peaking above 500 conversations a minute, is outside what custom methods support at all. Get the client's peak hour and agent counts on paper before the design workshop, not after.
- Custom assignment is a maintenance burden that almost never gets accounted for in post-go-live support scoping. If a client is asking for it, challenge them hard: if a simple classification tweak combined with an OOB method covers the requirement, take that path. Custom rulesets become orphaned config quickly.
- Dynamic Prioritisation is worth watching for GA but don't put it in any production scope while it's Preview, particularly in regulated environments.
---
- *Source last updated: 2026-08-12 | Review when: Dynamic Prioritisation reaches GA or new assignment methods released*
+ *Source last updated: 2026-09-11 | Review when: Dynamic Prioritisation reaches GA, or the published assignment scale limits change*
v2🤖 markdown-importlast monthmarkdown import
## What it does
- Controls how work items in a queue are matched to agents. Four options: Highest Capacity, Advanced Round Robin, Least Active (OOB), and Custom. Assignment cycles run continuously; work items not matched in a cycle are retried next cycle.
+ Controls how work items in a queue are matched to agents. Five options: Highest Capacity, Advanced Round Robin, Least Active (OOB), No auto assignment (pick-based, GA Aug 2026), and Custom. Assignment cycles run continuously; work items not matched in a cycle are retried next cycle.
## Key facts
- **Highest Capacity:** assigns to agent with most available capacity matching skills and presence; tie-breaks by round robin
- **Advanced Round Robin:** rotates in order of queue join date, then last assignment timestamp; good for fairness
- **Least Active:** assigns to agent with longest time since last capacity was released; available for **voice and messaging only** (not records); default for new voice/messaging queues
+ - **No auto assignment (pick-based):** the system routes conversations to the queue but doesn't assign them to anyone. Representatives pick work items up from their Inbox; supervisors can assign manually from the ongoing conversations dashboard in Copilot Service workspace. GA August 2026. Use when you want manual pull or supervisor-driven allocation rather than push
- **Custom:** fully configurable via prioritisation and assignment rulesets; workstream defaults for presence, capacity, and skills **do not apply**: must define explicitly in the custom rules
- OOB assignment methods take priority over custom-method queues when both have the same queue priority number
- Agent decline limit: default **3 attempts**; configurable 1–5 via OData on `msdyn_omnichannelconfiguration`; after limit, agent is excluded from auto-assignment for that item (can still manually pick)
… 2 unchanged lines …
- **Dynamic Prioritisation (Preview):** AI-driven priority escalation based on wait time or queue transfer; **cannot be combined** with custom prioritisation rules on the same queue
## When to use / skip
- Almost all deployments use one of the OOB methods. Use Custom only when out-of-the-box genuinely can't meet the requirement, the most common legitimate reason is needing the `is_working` calendar operator to respect agent shift schedules.
+ Almost all deployments use one of the OOB push methods. Use No auto assignment when the operating model is genuinely pull-based, small specialist teams, or supervisor-controlled allocation where auto-push would misfire. Use Custom only when out-of-the-box genuinely can't meet the requirement, the most common legitimate reason is needing the `is_working` calendar operator to respect agent shift schedules.
## Configuration decisions
- Least Active vs Highest Capacity: Least Active is better for blended voice/messaging teams; prevents burnout by not re-flooding agents who just finished a call
+ - No auto assignment vs a push method: only choose pick-based if you have the supervision to watch the queue; nothing chases an unattended item, so SLAs depend entirely on representatives pulling work
- Whether to configure custom assignment: adds maintenance overhead; only justified for operating-hours-aware routing or complex multi-stage skill relaxation
## Gotchas
+ - **No auto assignment has no safety net.** Because nothing is pushed, a quiet or distracted queue lets items sit indefinitely. Monitor the queue and set up supervisor alerting before you rely on it.
- **Custom assignment requires explicit presence and capacity rules.** Workstream defaults don't carry over. Miss this and work gets assigned regardless of agent availability.
- **The decline limit matters operationally.** If agents miss notifications at go-live (common), items can get stuck after 3 decline cycles. Configure deliberately and test the decline flow in UAT.
- **Dynamic Prioritisation is Preview.** Don't use in production for regulated environments yet.
## Consultant notes
+ - Pick-based (No auto assignment) looks attractive to clients who want representatives to "choose their own work", but it moves the SLA risk onto floor supervision. Only recommend it where there's genuinely someone watching the ongoing conversations dashboard; otherwise a Least Active push queue is safer.
- Simulate the decline flow in UAT before go-live. Go-live week is when agents are learning the workspace and notification sounds: 3 misses is easy to hit accidentally. Know exactly what happens to a work item after 3 declines before the first real customer call.
- Custom assignment is a maintenance burden that almost never gets accounted for in post-go-live support scoping. If a client is asking for it, challenge them hard: if a simple classification tweak combined with an OOB method covers the requirement, take that path. Custom rulesets become orphaned config quickly.
- Dynamic Prioritisation is worth watching for GA but don't put it in any production scope while it's Preview, particularly in regulated environments.
---
- *Source last updated: 2026-04-27 | Review when: Dynamic Prioritisation reaches GA or new assignment methods released*
+ *Source last updated: 2026-08-12 | Review when: Dynamic Prioritisation reaches GA or new assignment methods released*
v1🤖 markdown-import2 months agomarkdown import
Initial version.