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

  • 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:

  1. Set up general information
  2. Set the greeting and music
  3. Set up call answering
  4. Choose and assign agents
  5. Set up call exception handling
  6. 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: 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:

All Call queues 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.

For details on how to create resource accounts and ready them for use with auto attendants, see Manage Teams resource accounts.

Agents see the resource account name when they receive an incoming call.

Assign a calling ID (optional)

Available for Teams channel/collaborative calling desktop users and Teams mobile client users with standard Call queues.

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)
  1. Under Assign calling ID, select the Add button.
  2. On the Add accounts pane, search for one or more resource accounts you want to allow agents to use for outbound caller ID purposes.
  3. Select the Add button next to the resource account with an assigned phone number.
  4. 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:

Set the Service level threshold

This feature is in public 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.

The following settings are recommended:

  • Conference mode to On
    • This 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 will erase 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:

New-CsCallQueue (For new call queues) Set-CsCallQueue (For existing call queues)
-OverflowRedirectPersonTextToSpeechPrompt -OverflowRedirectPersonTextToSpeechPrompt
-OverflowRedirectPersonAudioFilePrompt -OverflowRedirectPersonAudioFilePrompt
-OverflowRedirectVoicemailTextToSpeechPrompt -OverflowRedirectVoicemailTextToSpeechPrompt
-OverflowRedirectVoicemailAudioFilePrompt -OverflowRedirectVoicemailAudioFilePrompt
-TimeoutRedirectPersonTextToSpeechPrompt -TimeoutRedirectPersonTextToSpeechPrompt
-TimeoutRedirectPersonAudioFilePrompt -TimeoutRedirectPersonAudioFilePrompt
-TimeoutRedirectVoicemailTextToSpeechPrompt -TimeoutRedirectVoicemailTextToSpeechPrompt
-TimeoutRedirectVoicemailAudioFilePrompt -TimeoutRedirectVoicemailAudioFilePrompt
-NoAgentRedirectPersonTextToSpeechPrompt -NoAgentRedirectPersonTextToSpeechPrompt
-NotAgentRedirectPersonAudioFilePrompt -NotAgentRedirectPersonAudioFilePrompt
-NoAgentRedirectVoicemailTextToSpeechPrompt -NoAgentRedirectVoicemailTextToSpeechPrompt
-NoAgentRedirectVoicemailAudioFilePrompt -NoAgentRedirectVoicemailAudioFilePrompt

Callback

Callback allows eligible callers waiting in queue to receive a callback to the number they are 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 eligble 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 will 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 Interplay

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

The caller will become eligible for callback after waiting in the queue for 60 seconds however, as the default music is 2 minutes long, call queue timeout will occur and the caller will never be offered callback.

Once a caller has successfully requested a callback, the callback is also subject to the call queue timout configuration. If a callback times out the information about the caller will be 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 for 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:

New-CsCallQueue (For new call queues) Set-CsCallQueue (For existing call queues)
-IsCallbackEnabled -IsCallbackEnabled
-CallbackRequestDtmf -CallbackRequestDtmf
-WaitTimeBeforeOfferingCallbackInSecond -WaitTimeBeforeOfferingCallbackInSecond
-NumberOfCallsInQueueBeforeOfferingCallback -NumberOfCallsInQueueBeforeOfferingCallback
-CallToAgentRatioThresholdBeforeOfferingCallback -CallToAgentRatioThresholdBeforeOfferingCallback
-CallbackOfferAudioFilePromptResourceId -CallbackOfferAudioFilePromptResourceId
-CallbackOfferTextToSpeechPrompt -CallbackOfferTextToSpeechPrompt
-CallbackEmailNotificationTarget -CallbackEmailNotificationTarget

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>

Modify an existing call queue:

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

Create a new call queue:

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>

Modify an existing call queue:

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 2 times more calls than agents

Create a new call queue:

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>

Modify an existing call queue:

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

Create a new call queue:

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>

Modify an existing call queue:

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.

Note that 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

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

  1. Microsoft Teams Windows client, Microsoft Teams Mac Client, Microsoft Teams on Virtualized Desktop Infrastructure.
  2. Microsoft Teams iPhone app, Microsoft Teams Android app.
  3. Teams Phone Mobile Cellular Phone Dialer.
  4. Selecting Longest Idle for the agent routing method automatically enables Presence based routing.
  5. It's not possible to set the order the agents are presented with calls when using a group or channel for membership.
  6. 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.
  7. Microsoft Teams Phone only.
  8. Through the User Settings Portal page at https://aka.ms/vmsettings.
  9. Only standard channels are supported.
  10. Transferring calls between PSTN connectivity methods isn't supported.
  11. Performed through Team Phone Mobile app or see #8.
  12. 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:

  1. Select Run Tests, which populates the diagnostic in the Microsoft 365 Admin Center.

  2. In the Run diagnostic pane, enter the Resource Account in the Username or Email field, and then select Run Tests.

  3. The tests will 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.

Here's what you get with Microsoft Teams Phone.

Getting service phone numbers.

Country and region availability for Audio Conferencing and Calling Plans.