This article is a sequel for my blog article ‘How to build a call center with Microsoft Teams’ and describes how we can extend our Call Center configuration with the callback function.
This is another step that we have the possibility to further improve our Call Center and all this without using 3rd party tools. At the end of this article I will link you to a video from Microsoft Principal Technical Specialist, Shervin Shaffie, who has taken the time to create a video on this topic, including a small demo.
This article only describes the configuration with PowerShell. Shervin, on the other hand, shows in detail in his video how the configuration can also be carried out using the GUI. I therefore recommend watching his video for a deeper understanding.
What is it
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 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 (PSTN calling) 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.
We also have the option to set the messaging a caller hears, the key they need to press, and an email address to be notified if the callback fails.
Especially when we look at the first two options, it is immediately obvious to a Microsoft Teams engineer that this is a call queue setting, which we will now discuss further.
How to build
Modify an existing call queue:
Set-CsCallQueue -Identity <Call Queue GUID> -IsCallbackEnabled $true -CallbackRequestDtmf "Tone1" -WaitTimeBeforeOfferingCallbackInSecond 30 -CallbackOfferTextToSpeechPrompt "If you would like to have a callback when an agent becomes available, press 1" -CallbackEmailNotificationTarget <Team or DL GUID>
In order for the call queue GUID to be found, we first need the command:
Get-CSCallQueue
After executing this command, we find the required GUID under the corresponding queue under ‘Identity’.
With the command option ‘-WaitTimeBeforeOfferingCallbackInSecond’ we define the waiting time in seconds. In my example, 30 seconds were defined.
To find out the team or DL GUID, which is also required, we use the following command:
Get-Team
The required GUID is listed as ‘GroupID’.
The detailed commands and other options can be found under the following Microsoft link:

How does the callback work from the agent’s point of view?
As soon as an employee is available again, their phone (or Teams client) rings. When they answer the call, they are informed that it is a callback and that the customer is currently being called. The information that the customer had previously stored is also passed on.
Next step
As promised at the beginning, here is the video by Shervin Shaffie,