{"id":5755,"date":"2024-10-09T11:03:08","date_gmt":"2024-10-09T09:03:08","guid":{"rendered":"https:\/\/www.msb365.blog\/?p=5755"},"modified":"2024-10-09T11:03:08","modified_gmt":"2024-10-09T09:03:08","slug":"build-the-callback-function-in-microsoft-teams","status":"publish","type":"post","link":"https:\/\/www.msb365.blog\/?p=5755","title":{"rendered":"Build the Callback function in Microsoft Teams"},"content":{"rendered":"<p>This article is a sequel for my blog article \u2018<span style=\"color: #008080;\"><strong><a style=\"color: #008080;\" title=\"How to build a call center with Microsoft Teams\" href=\"https:\/\/www.msb365.blog\/?p=5405\" target=\"_blank\" rel=\"noopener\">How to build a call center with Microsoft Teams<\/a><\/strong><\/span>\u2019 and describes how we can extend our Call Center configuration with the callback function.<br \/>\nThis 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, <strong><a href=\"https:\/\/www.linkedin.com\/in\/sherv\/\" target=\"_blank\" rel=\"noopener\">Shervin Shaffie<\/a><\/strong>, who has taken the time to create a video on this topic, including a small demo.<\/p>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<h3>What is it<\/h3>\n<p>Callback allows eligible callers waiting in queue to receive a callback to the number they\u2019re calling from when an agent becomes available.<\/p>\n<p>A caller becomes eligible for callback based on any of the following configured conditions coming true:<\/p>\n<ul>\n<li>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.<\/li>\n<li>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\u2019t eligible for callback.<\/li>\n<li>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.<\/li>\n<\/ul>\n<p>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.<\/p>\n<p>Eligible callers will receive an option to request callback after the music on hold finishes playing.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<h3>How to build<\/h3>\n<p>Modify an existing call queue:<\/p>\n<pre>Set-CsCallQueue -Identity &lt;Call Queue GUID&gt; -IsCallbackEnabled $true -CallbackRequestDtmf \"Tone1\" -WaitTimeBeforeOfferingCallbackInSecond 30 -CallbackOfferTextToSpeechPrompt \"If you would like to have a callback when an agent becomes available, press 1\" -CallbackEmailNotificationTarget &lt;Team or DL GUID&gt;<\/pre>\n<p>In order for the call queue GUID to be found, we first need the command:<\/p>\n<pre>Get-CSCallQueue<\/pre>\n<p>After executing this command, we find the required GUID under the corresponding queue under \u2018Identity\u2019.<br \/>\nWith the command option <em>\u2018-WaitTimeBeforeOfferingCallbackInSecond\u2019<\/em> we define the waiting time in seconds. In my example, 30 seconds were defined.<\/p>\n<p>To find out the team or DL GUID, which is also required, we use the following command:<\/p>\n<pre>Get-Team<\/pre>\n<p>The required GUID is listed as \u2018GroupID\u2019.<\/p>\n<p>The detailed commands and other options can be found under the following Microsoft link:<\/p>\n<div class=\"vlp-link-container vlp-layout-basic\"><a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoftteams\/create-a-phone-system-call-queue?tabs=general-info\" class=\"vlp-link\" title=\"Create a Call queue in Microsoft Teams - Microsoft Teams\" rel=\"nofollow\" target=\"_blank\"><\/a><div class=\"vlp-layout-zone-side\"><div class=\"vlp-block-2 vlp-link-image\"><img decoding=\"async\" src=\"https:\/\/learn.microsoft.com\/en-us\/media\/open-graph-image.png\" style=\"max-width: 150px; max-height: 150px\" \/><\/div><\/div><div class=\"vlp-layout-zone-main\"><div class=\"vlp-block-0 vlp-link-title\">Create a Call queue in Microsoft Teams - Microsoft Teams<\/div><div class=\"vlp-block-1 vlp-link-summary\">Learn how to set up Call queues in Microsoft Teams. Call queues provide a greeting message, hold music, call redirecting, and other features.<\/div><\/div><\/div>\n<p>&nbsp;<\/p>\n<h3>How does the callback work from the agent&#8217;s point of view?<\/h3>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<h3>Next step<\/h3>\n<p>As promised at the beginning, here is the video by Shervin Shaffie,<\/p>\n<div class=\"wonderplugin-video\" style=\"width:800px;height:600px;position:relative;display:block;background-color:#000;overflow:hidden;max-width:100%;margin:0 auto\" data-aspectratio=\"1.3333333333333\"><iframe class=\"wpve-iframe\" width=\"100%\" height=\"100%\" src=\"https:\/\/www.youtube.com\/embed\/t9X9XRd8OcA\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n","protected":false},"excerpt":{"rendered":"<p>This article is a sequel for my blog article \u2018How to build a call center with Microsoft Teams\u2019 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. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5759,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[1923,15,3],"tags":[],"class_list":["post-5755","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365","category-ms-teams","category-powershell"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts\/5755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5755"}],"version-history":[{"count":3,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts\/5755\/revisions"}],"predecessor-version":[{"id":5758,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/posts\/5755\/revisions\/5758"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=\/wp\/v2\/media\/5759"}],"wp:attachment":[{"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.msb365.blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}