Create a Call queue in Microsoft Teams
Call queues route callers to people in your organization who can help with a particular issue or question. Calls are distributed one at a time to the people in the queue, who are known as agents.
Call queues provide:
- A greeting message.
- Music while people are waiting on hold in a queue.
- Call routing - in First In, First Out (FIFO) order - to agents.
- Handling options for queue overflow and timeout.
Before you follow the procedures in this article, be sure you have read Plan for Teams Auto attendants and Call queues and followed the getting started steps.
What's new for Call queues in the past six months
November 5
- Nested Auto attendants and Call queues no longer require a resource account and associated licensing.
September 16
- Callback functionality available through PowerShell cmdlets
- Conference mode is now supported for Skype for Business clients and calls that are routed to the queue from Skype for Business Server
April 8 - Additional messaging options for call queue Overflow, Timeout, and No Agents exception routing in Teams admin center and PowerShell cmdlets
Steps to create a Call queue
The steps to set up a Call queue includes:
- Set up general information
- Set the greeting and music
- Set up call answering
- Choose and assign agents
- Set up call exception handling
- Set up authorized users
The steps outlined in the article create Call queues using the Teams admin center. For instructions to create Call queues using PowerShell, see Creating Call queues with PowerShell cmdlets.
Follow these steps to set up your Call queue
- Step 1: General info
- Step 2: Greeting and music
- Step 3: Call answering
- Step 4: Agent selection
- Step 5: Exception Handling
- Step 6: Authorized users
Step 1: Set up general information
To set up a Call queue, in the Teams admin center, expand Voice, select Call queues, and then select Add.
Type a name for the Call queue in the box at the top.
Add an existing resource account
Before you can create and manage resource accounts, you must do the following actions:
- Obtain Microsoft Teams Phone Resource Account licenses
- Obtain phone numbers
- Assign permissions for managing a resource account
All Call queues that directly answer calls must have an associated resource account. All resource accounts must be assigned a Microsoft Teams Phone Resource Account license. If you wish, you can assign several resource accounts to a Call queue.
Nested Auto attendants and Call queues that receive calls from an auto attendant or call queue that has already answered the call don't require a resource account.
For details on how to create resource accounts and ready them for use with auto attendants or call queues, see Manage Teams resource accounts.
Agents see the resource account name or call queue name when they receive an incoming call.
Assign a calling ID (optional)
Assign outbound caller ID numbers for the agents by specifying one or more resource accounts with a phone number. Agents can select which outbound caller ID number to use with each outbound call they make. Within the Calls App, agents can use their Call Queue (CQ) / Auto Attendant (AA) number or their own personal Direct InWard Dial (DID).
Note
The resource account used for calling ID purposes must have a Microsoft Teams Phone Resource Account license and one of the following assigned:
- A Calling Plan license and a phone number assigned
- An Operator Connect phone number assigned
- An online voice routing policy (phone number assignment is optional when using Direct Routing)
- Under Assign calling ID, select the Add button.
- On the Add accounts pane, search for one or more resource accounts you want to allow agents to use for outbound caller ID purposes.
- Select the Add button next to the resource account with an assigned phone number.
- Select the Add button at the bottom of the pane.
If you don't have a resource account with an assigned phone number, you must create a resource account. For more information, see Create a Teams resource accounts.
After you create this new resource account for calling ID, you still need to:
- Assign a Microsoft Teams Phone Resource Account license.
- Assign a Microsoft Calling Plan license, assign an Operator Connect phone number, or assign an online voice routing policy for Direct Routing.
- Assign the phone number to the resource account, if you're using Microsoft Calling Plan.
Set the Service level threshold
This feature is in private preview.
Service level measures the efficiency and responsiveness to incoming customer requests within a specific Service level threshold.
You can set the threshold target to any value from 0 to 40 minutes (2,400 seconds). The value must be less than the value set for Call timeout. Setting the value to blank (empty) disables the service level metric calculation for the call queue.
Note
Service level metrics are not currently available in Queues app.
Service level metrics are not currently available in historical reporting.
Set the Call queue language
Choose a supported language.
This language is used for system-generated voice prompts and voicemail transcription, if you enable them.
After you select a language, select the Next button at the bottom of the Add a Call queue page.
Summary of recommended Call queue settings
The following settings are recommended:
- Conference mode to On
- Conference mode will be the only option available for Call queues after June 2025
- Routing method to Round robin or Longest idle
- Presence-based routing to On
- Agent alert time: to a minimum of 20 seconds
Extra functionality available through PowerShell cmdlets
Caution
These configuration options are currently only available through PowerShell cmdlets and they don't appear in Teams admin center. If these options are configured through PowerShell, any changes to the Call queue through Teams admin center erases these settings.
Additional messaging
The Overflow, Call timeout and No Agents exception redirect options for Person in organization and Voicemail personal support additional prompting just like the other redirect options.
For more information, see:
Callback
Callback allows eligible callers waiting in queue to receive a callback to the number they're calling from when an agent becomes available.
A caller becomes eligible for callback based on any one of the following configured conditions coming true:
Wait time in queue Once a caller in queue exceeds this configured wait time they become eligible for callback. This option applies to callers at the front of the queue.
Number of calls in queue Once the number of callers in queue reaches this level, new callers arriving in the queue become eligible for callback. This option applies to callers arriving in the queue. Callers that arrived in the queue before this limit was reached aren't eligible for callback.
Calls to agent ratio Once the number of callers waiting in queue exceeds the ratio, new callers arriving in the queue become eligible for callback. This option applies to callers arriving in the queue.
Additionally, for a call to become eligible for callback, it must have a valid inbound phone number in E.164 format and it must not be presenting to an agent.
Eligible callers receive an option to request callback after the music on hold finishes playing.
You can also set the messaging a caller hears, the key they need to press, and an email address to be notified if the callback fails.
Callback and Call Queue Timeout
In order for an eligible call to be offered callback, the Call timeout value must be set high enough to allow the call to become eligible for callback and for the music to finish playing after the call becomes eligible.
Consider the following call queue configuration:
- Callback wait time in queue: 60 seconds
- Call Queue Timeout: 120 seconds
- Call Queue Music: Default
In this configuration, a caller becomes eligible for callback after waiting in the queue for 60 seconds. However, as the default music is two minutes long, call queue timeout will occur and the caller won't be offered a callback.
Once a caller successfully requests a callback, the callback is also subject to the call queue timeout configuration. If a callback times out, the information about the caller is sent to the configured email notification address.
In order for a callback to be successful, the call queue timeout value must be high enough to allow for the call to become eligible, for the music to stop playing, for a caller to successfully request a callback, and for the callback to be queued until an agent becomes available and answers the call.
Note
Conference mode must be enabled on the call queue in order to configure callback.
In addition to the eligibility requirements already listed, for callers within the North American Numbering Plan, the inbound phone number must not start with any of the following digits in order to become eligible for callback:
Starting Digits |
---|
1-242, 246, 264, 268, 284 |
1-340, 345 |
1-441 , 473 |
1-500 |
1-600, 649, 658, 664, 670, 671, 684 |
1-700, 721, 758, 767, 784, 787 |
1-800, 811, 822, 833, 844, 855, 866, 877, 888 |
1-809, 829, 849, 868, 869, 876 |
1-900, 939 |
1-nnn-555-1212 |
1-nnn-555,0100-0199 |
For more information, see:
PowerShell Examples
Calls become eligible after waiting 60 seconds
Create a new call queue:
New-CsCallQueue -Name "Callback Eligible After 60 seconds" -UseDefaultMusicOnHold $true -LanguageID en-US -IsCallbackEnabled $true -CallbackRequestDtmf "Tone1" -WaitTimeBeforeOfferingCallbackInSecond 60 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
To modify an existing call queue, use the Set-CsCallQueue cmdlet, as shown in the following example:
Set-CsCallQueue -Identity <Call Queue GUID> -IsCallbackEnabled $true -CallbackRequestDtmf "Tone1" -WaitTimeBeforeOfferingCallbackInSecond 60 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
Calls become eligible for callback when there are more than 50 calls in queue
To create a new call queue, use the New-CsCallQueue cmdlet, as shown in the following example:
New-CsCallQueue -Name "Callback Eligible After 50 calls" -UseDefaultMusicOnHold $true -LanguageID en-US -IsCallbackEnabled $true -CallbackRequestDtmf "Tone1" -NumberOfCallsInQueueBeforeOfferingCallback 50 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
To modify an existing call queue, use the Set-CsCallQueue cmdlet, as shown in the following example:
Set-CsCallQueue -Identity <Call Queue GUID> -IsCallbackEnabled $true -CallbackRequestDtmf
"Tone1" -NumberOfCallsInQueueBeforeOfferingCallback 50 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
Calls become eligible for callback when there are 2 times more calls than agents
To create a new call queue, use the New-CsCallQueue cmdlet, as shown in the following example:
New-CsCallQueue -Name "Callback Eligible After 2x calls to agents" -UseDefaultMusicOnHold $true -LanguageID en-US -IsCallbackEnabled $true -CallbackRequestDtmf "Tone1" -CallToAgentRatioThresholdBeforeOfferingCallback 2 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
To modify an existing call queue, use the Set-CsCallQueue cmdlet, as shown in the following example:
Set-CsCallQueue -Identity <Call Queue GUID> -IsCallbackEnabled $true -CallbackRequestDtmf
"Tone1" -CallToAgentRatioThresholdBeforeOfferingCallback 2 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
Calls become eligible for callback after waiting 60 seconds or when there are more than 50 calls in queue
To create a new call queue, use the New-CsCallQueue cmdlet, as shown in the following example:
New-CsCallQueue -Name "Callback Eligible After 60s or 50 calls" -UseDefaultMusicOnHold $true -LanguageID en-US -IsCallbackEnabled $true -CallbackRequestDtmf "Tone1" -WaitTimeBeforeOfferingCallbackInSecond 60 -NumberOfCallsInQueueBeforeOfferingCallback 50 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
To modify an existing call queue, use the Set-CsCallQueue cmdlet, as shown in the following example:
Set-CsCallQueue -Identity <Call Queue GUID> -IsCallbackEnabled $true -CallbackRequestDtmf "Tone1" -WaitTimeBeforeOfferingCallbackInSecond 60 -NumberOfCallsInQueueBeforeOfferingCallback 50 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
Hiding authorized users
Hidden authorized users are authorized users who shouldn't appear on the list of supervisors for the agents who are members of a particular call queue.
Hidden authorized users aren't visible to Queues app users.
For more information, see:
New-CsCallQueue (For new call queues) | Set-CsCallQueue (For existing call queues) |
---|---|
-HideAuthorizedUsers | -HideAuthorizedUsers |
Nested Auto attendants and Call queues
Nested Auto attendants and Call queues, or auto attendants and call queues that don't directly answer phone calls, no longer require a Resource Account and associated licensing.
Existing configurations that use Resource Accounts will continue to function and remain fully supported. A combination of both methods can be used at the same time.
When call queue Exception handling occurs, the Voice app
destination for Overflow, Timeout, and No Agents can refer to an auto attendant or call queue directly instead of the Resource Account for that auto attendant or call queue.
For more information, see the following documentation:
New-CsCallQueue (For new call queues) | Set-CsCallQueue (For existing call queues) |
---|---|
-OverflowActionTarget | -OverflowActionTarget |
-TimeOutActionTarget | -TimeOutActionTarget |
-NoAgentActionTarget | -NoAgentActionTarget |
PowerShell Example
Overflow to another Auto attendant or Call queue
To modify an existing call queue, use the Set-CsCallQueue cmdlet, as shown in the following examples:
Overflow
Set-CsCallQueue -Identity <CallQueue GUID> -OverflowAction Forward -OverflowActionTarget <Auto Attendant or Call Queue GUID>
Timeout
Set-CsCallQueue -Identity <CallQueue GUID> -OverflowAction Forward -TimeOutActionTarget <Auto Attendant or Call Queue GUID>
No Agents
Set-CsCallQueue -Identity <CallQueue GUID> -OverflowAction Forward -NoAgentActionTarget <Auto Attendant or Call Queue GUID>
Resources for complex scenarios
Call queue feature compatibility
Feature | Teams Desktop1 | Teams Web | Teams Mobile App2 | Teams Phone Mobile3 | Skype for Business | IP Phones | Standard Call Queues | Channel Based Call Queues | Comment |
---|---|---|---|---|---|---|---|---|---|
Agent Routing Methods | |||||||||
Attendant Routing | Y | Y | Y | Y | Y | Y | Y | Y | Default |
Longest Idle4 | Y | Y | Y | Y | N | Y | Y | Y | Recommended |
Round Robin | Y | Y | Y | Y | Y | Y | Y | Y | Recommended |
Serial | Y | Y | Y | Y | Y | Y | Y5 | Y5 | |
Agent Routing Options | |||||||||
Presence Based Routing4 | Y | Y | Y | Y11 | N | Y | Y | Y | Default |
Agents can opt out | Y | Y | Y | Y11 | Y8 | Y8 | Y | Y | Default |
Transfer Modes | |||||||||
Conference Mode6 | Y | Y | Y | Y | Y | Y | Y | Y | Default |
Transfer Mode | Y | Y | Y | Y | Y | Y | Y | Y | |
Collaborative Calling | |||||||||
Channel Based Queues | Y | N | N | N | N | N | N/A | Y9 | Agents on non-supported devices can still answer calls however they won't have the collaborative calling user interface |
Dynamic caller ID | |||||||||
Standard Call queue | Y | Y | Y | N | N | N | Y | N/A | |
Channel based Call queue | Y | N/A | N/A | N/A | N/A | N/A | N/A | Y | |
PSTN Connectivity Methods | See Note 10 | ||||||||
Calling Plans | Y | Y | Y | Y | Y | Y | Y | Y | |
Direct Routing | Y | Y | Y | Y | N12 | Y | Y7 | Y | |
Operator Connect | Y | Y | Y | Y | N | Y | Y7 | Y | |
Miscellaneous | |||||||||
Call toast shows Resource Account Name | Y | N | Y | N | Y | Y | Y | ||
Click-to-call | Y | N | N | N | N | N | Y | Y | |
Compliance recording | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Not supported |
Location based routing | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Not supported |
Notes
- Microsoft Teams Windows client, Microsoft Teams Mac Client, Microsoft Teams on Virtualized Desktop Infrastructure.
- Microsoft Teams iPhone app, Microsoft Teams Android app.
- Teams Phone Mobile Cellular Phone Dialer.
- Selecting Longest Idle for the agent routing method automatically enables Presence based routing.
- It's not possible to set the order the agents are presented with calls when using a group or channel for membership.
- Conference mode isn't supported if phone calls are routed to the queue from a Direct Routing gateway that's enabled for Location-Based Routing.
- Location based routing isn't supported with Call queues. For more information, see Voice apps (Auto Attendant or Call Queue).
- Microsoft Teams Phone only.
- Through the User Settings Portal page at https://aka.ms/vmsettings.
- Only standard channels are supported.
- Transferring calls between PSTN connectivity methods isn't supported.
- Performed through Team Phone Mobile app or see #8.
- Call queues that are assigned a direct routing number don't support Skype for Business clients, Lync clients, or Skype for Business IP Phones as agents. The Teams client is only supported with a co-existence mode of Teams Only.
Supported clients
The following clients are supported for call agents in a Call queue:
- Skype for Business desktop client 2016 (32-bit and 64-bit versions)
- All IP phone models supported for Microsoft Teams.
- Mac Skype for Business Client (version 16.8.196 and later)
- Android Skype for Business Client (version 6.16.0.9 and later)
- iPhone Skype for Business Client (version 6.16.0 and later)
- iPad Skype for Business Client (version 6.16.0 and later)
- Microsoft Teams Windows client (32-bit and 64-bit versions)
- Microsoft Teams Mac client
- Microsoft Teams on Virtualized Desktop Infrastructure (Windows Virtual Desktop, Citrix, and VMware)
- Microsoft Teams iPhone app
- Microsoft Teams Android app
Call Queue Diagnostic Tool
If you're an administrator, you can use the following diagnostic tool to validate that a Call queue is able to receive calls:
Select Run Tests, which populates the diagnostic in the Microsoft 365 Admin Center.
In the Run diagnostic pane, enter the Resource Account in the Username or Email field, and then select Run Tests.
The tests return the best next steps to address any tenant, policy, and resource account configurations to validate that the Call queue is able to receive calls.
Related articles
Plan for Teams Auto attendants and Call queues
Here's what you get with Microsoft Teams Phone.
Getting service phone numbers.
Country and region availability for Audio Conferencing and Calling Plans.