How to create Teams call queue

  • Last update on October 5th, 2023

Call queues direct callers to individuals in your organization who can assist with specific issues or questions. Calls are distributed one by one to the people in the queue, who are known as agents.

Call queues offer:

  • A greeting message.
  • Music while people are on hold in a queue.
  • Call routing in First In, First Out (FIFO) order to agents.
  • Options to handle queue overflow and timeout.

Below, we explain two methods for creating a Teams call queue:"

1. Using PowerShell


  1. PowerShell is installed on your computer
    • MSTeams Module is installed
    • MSOnline module is installed
  2. You have tenant administration rights
  3. You have purchased Microsoft Teams Phone
  4. The agents, distribution lists, and Teams channels mentioned below have already been created


$credential = Get-Credential Connect-MicrosoftTeams -Credential $credential
Connect-MsolService -Credential $credential

Create audio files

Replace “d:\” with the path where the WAV files are stored on your computer. 

$content = [System.IO.File]::ReadAllBytes('d:\sales-hold-in-queue-music.wav')
$audioFileSalesHoldInQueueMusicID = (Import-CsOnlineAudioFile -ApplicationID HuntGroup
 -FileName "sales-hold-in-queue-music.wav" -Content $content).ID

Get users ID

$userAdeleID = (Get-CsOnlineUser -Identity "").Identity
$userSalesBillID = (Get-CsOnlineUser -Identity "").Identity
 $userSalesMaryID = (Get-CsOnlineUser -Identity "").Identity

Create call queue

New-CsCallQueue -Name "Sales" -AgentAlertTime 15 -AllowOptOut $true -MusicOnHoldAudioFileID $audioFileSalesHoldInQueueMusicID -OverflowAction Forward -OverflowActionTarget $userAdeleID -
OverflowThreshold 200 -TimeoutAction Forward -TimeoutActionTarget $userAdeleID -TimeoutThreshold 120 -RoutingMethod Attendant -ConferenceMode $true -User @($userSalesBillID, $userSalesMaryID) -LanguageID "en-US"

For more detailed instructions on how to create a Teams Call Queue using PowerShell, please refer to the following article: Create a call queue with cmdlets.

2. Using CoreView

  • Go to the CoreView portal.
  • Under “Actions”, select “Management actions”. 
  • Under the Filter assistant, choose “Teams” and then select “Create Teams call queue”.
  • The following wizard will open:

Let's take a detailed look at all the steps you'll need to complete in the wizard: 

Step 1: General

In this section, you will have to fill out the following fields:

  • Name: give an appropriate name to your Call Queue
  • Resource account: in Microsoft Teams, a resource account is required for each auto attendant or call queue. 
  • Language: choose as per your requirement.

Resource Accounts are special Azure AD objects (you can think of them as Microsoft 365 User Accounts) that can only be created from the Teams Admin Center or via Teams PowerShell. You can't create these accounts in M365 Admin or Azure AD. For more details, please refer to the MSDN article Manage Resource Account in MS Teams.


Step 2: Greeting

In this section, you can choose one of the following:

  • No greeting
  • Play an audio file: upload a file to play.
  • Greeting message: add a text-to-speech greeting message. 

Step 3: On hold

This is the music that plays for people while they're on hold. You can either use the default music provided with the call queue, or you can upload a custom .WAV, .mp3, or .WMA audio file to use as your on-hold music.

Step 4: Call answering

Here, you can add the users and groups who will serve as call agents and receive calls from the call queue. The service will prioritize the users in the list first, followed by the groups. The order of users and distribution groups will be respected by the service, depending on the routing type you choose.

Key terminologies

  • Conference mode: this mode reduces the amount of time it takes for a caller to be connected to an agent after the agent accepts the call.
  • Attendant: with attendant routing, the first call in the queue will ring all of the call agents at the same time. The first call agent to pick up the call gets the call.
  • Serial: with serial routing, incoming calls will ring call agents one by one. starting from the beginning of the call agent list.
  • Round robin: With round robin routing, each call agent will get the same number of calls from the queue.
  • Longest idle: if you select “Longest idle” for the agent routing method, presence-based routing will be automatically enabled.
  • Presence-based routing: this method uses the availability status of call agents to determine whether an agent should be included in the call routing list for the selected routing method.

Step 5: Call overflow

Here, you can set the maximum number of calls that can be in the queue at once, based on your needs. The limit is 220 calls. Once the maximum number is reached, any additional calls will either be disconnected or redirected, depending on your selection below.

Step 6: Call queue timeout

Here, you can set the maximum wait time. You can also decide if the call will be disconnected or forwarded once this time limit is reached.

Step 7: No agents

Here, you have the power to queue, disconnect, or redirect calls when all agents are away. Use the toggle at the top of the tab to apply settings to new incoming calls only.