{"id":92089,"date":"2023-05-26T06:52:03","date_gmt":"2023-05-26T06:52:03","guid":{"rendered":"https:\/\/www.techrepublic.com\/?p=4099878"},"modified":"2023-05-26T06:52:03","modified_gmt":"2023-05-26T06:52:03","slug":"azure-communication-services-microsofts-powerful-tool-for-call-automation","status":"publish","type":"post","link":"https:\/\/cloudnewshub.com\/?p=92089","title":{"rendered":"Azure Communication Services: Microsoft\u2019s powerful tool for call automation"},"content":{"rendered":"<figure id=\"attachment_4099883\" aria-describedby=\"caption-attachment-4099883\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-article wp-image-4099883\" src=\"http:\/\/cloudnewshub.com\/wp-content\/uploads\/2023\/05\/azure-communication-services-microsofts-powerful-tool-for-call-automation.jpg\" alt=\"A tech customer service center.\" width=\"770\" height=\"513\"><figcaption id=\"caption-attachment-4099883\" class=\"wp-caption-text\">Image: Monkey Business\/Adobe Stock<\/figcaption><\/figure>\n<p>Microsoft has slowly been expanding the business capabilities of its <a href=\"https:\/\/www.techrepublic.com\/article\/microsoft-azure-the-smart-persons-guide\/\">Azure<\/a> platform, adding services and application programming interfaces that can be used to provide a set of message-driven workflows. Much of this development builds on its Service Bus backbone, and the tooling used to run both Azure Functions and the Azure App Service.<\/p>\n<p><strong>SEE: <\/strong>Get an in-depth understanding of <a href=\"https:\/\/www.techrepublic.com\/article\/learn-microsoft-azure-online-training\/\">Microsoft Azure online<\/a> with this training bundle from TechRepublic Academy.<\/p>\n<p>Building a message-based, event-driven architecture on Azure makes a lot of sense. It\u2019s an effective and portable way of building distributed applications that can scale both up and out as needed.<\/p>\n<p>One growing set of APIs are<a href=\"https:\/\/azure.microsoft.com\/en-us\/products\/communication-services\/\" target=\"_blank\" rel=\"noopener noreferrer\"> Azure\u2019s Communication Services<\/a>, which bridge distributed computing and voice communications, linking code to public telephone networks and other communication services, like <a href=\"https:\/\/www.techrepublic.com\/article\/microsoft-teams-the-smart-persons-guide\/\">Teams<\/a>. It\u2019s a powerful tool, with support for voice and video calls \u2014 both over the internet and through the telephone network \u2014 as well as text via chat, SMS and email.<\/p>\n<p>Jump to:<\/p>\n<h2 id=\"automating\">Automating Azure Communication Services<\/h2>\n<p>The Azure Communication Service APIs make it easy to plug these technologies into your code, giving apps direct access to your customers and users. What\u2019s perhaps most interesting about these tools is they let you build your own custom call center applications, adding multichannel communications to customer service and sales tools or as part of a support platform.<\/p>\n<p>Where things get interesting is when<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/communication-services\/concepts\/call-automation\/call-automation\" target=\"_blank\" rel=\"noopener noreferrer\"> you add support for call automation<\/a>, making voice a direct part of your workflows. Instead of integrating your applications into a digital call center, you\u2019re able to build a dedicated tool to route and assign telephony and web calls appropriately.<\/p>\n<p>With this dedicated tool, you\u2019re not limited to pre-call routing; your code can handle moving calls from one endpoint to another \u2014 for example, when escalating a customer support issue. There\u2019s also support for click-to-call applications, either through the web or through an app, enabling quick video and voice connections from user apps to support desks.<\/p>\n<p>In addition, developing code for the automation APIs is simple enough. As well as REST APIs, you\u2019re able to use <a href=\"https:\/\/www.techrepublic.com\/article\/top-programming-languages-employers-want\/\">C# or Java<\/a> libraries to add functionality to new and existing applications.<\/p>\n<p><strong>SEE:<\/strong> <a href=\"https:\/\/www.techrepublic.com\/article\/develop-highly-marketable-coding-skills-course-bundle\/\">Develop highly marketable coding skills<\/a> with this training bundle from TechRepublic Academy.<\/p>\n<p>These are integrated with Azure\u2019s event infrastructure, which lets you build business logic around a call. This allows you to build tooling to manage and triage call queues, so if a call from a valued customer is passed into a queue it can be prioritized or routed to a specialist operator.<\/p>\n<h2 id=\"adding\">Adding automation to your code<\/h2>\n<p>The <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/communication-services\/quickstarts\/call-automation\/callflows-for-customer-interactions?pivots=programming-language-java\" target=\"_blank\" rel=\"noopener noreferrer\">C# and Java SDKs<\/a> are probably the most likely ways to build enterprise communications workflows. They both offer the same features, from setting up calls to working with existing calls and managing recording a call.<\/p>\n<aside class=\"pinbox right\">\n<h3 class=\"heading\">Cloud: Must-read coverage<\/h3>\n<\/aside>\n<p>There\u2019s one important caveat: Once a call has been answered you can only move it between Azure Communication Services endpoints, as Microsoft has yet to add the ability to redirect calls to other phone numbers.<\/p>\n<p>Calls are managed using asynchronous APIs, so you can trigger a welcome message and put a call in a queue for an agent at the same time. Your code sits between the caller and the voice service they\u2019re using, only responding when new events are raised.<\/p>\n<p>Using asynchronous methods means you\u2019re not tying up resources waiting for responses, ensuring users get the best response time while keeping compute costs to a minimum. You can even use this approach to direct an incoming call to multiple endpoints, so any waiting agent can pick it up. Alternatively, calls can be redirected if not answered in sufficient time, without the caller knowing the call has been transferred.<\/p>\n<p>Once an action has completed, it raises an event your code needs to handle. Events are delivered using Azure\u2019s Event Grid or via Webhooks, so you can use standard libraries and techniques to work with them.<\/p>\n<p>Incoming call notifications are delivered by Event grid, so you can use tools like Azure Functions to respond to a call and trigger a workflow. Once a call has been set up any further events are delivered by Webhooks, meaning you will need to keep track of the context of a call in your code. Callback events are simple enough to use, with the tools built into .NET and Java.<\/p>\n<h2 id=\"building\">Building your own custom call center<\/h2>\n<p>You\u2019ll find the service supports most of the features you should expect to find in a PABX or a call center, ensuring user familiarity and the ability to integrate it with both existing workflows and tools. New applications can now take advantage of recently released Azure Communications Service\u2019s UI components, which simplify integrating calls into your code and into services like Teams.<\/p>\n<p>Automating the call flow in and out of your applications can significantly reduce load on your staff. For example, there are tools to decode dual-tone multi-frequency tones, allowing you to<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/communication-services\/how-tos\/call-automation\/play-action?pivots=programming-language-java\" target=\"_blank\" rel=\"noopener noreferrer\"> build a custom interactive voice response service<\/a>.<\/p>\n<p>You could perhaps use the recording tools to take a voice message, then pass the recording to Azure Cognitive Services speech recognition tools, so an agent is prebriefed and ready to engage before they start to call. Similarly, any identifying information could be handed over to Dynamics 365, for direct access to customer relationship management content.<\/p>\n<p>This perhaps is the biggest advantage of using Azure Communications Services, its deep integration with the rest of the Azure platform and the other Microsoft clouds. By working with your own code and Microsoft\u2019s services, and even with the Power Platform low-code tools, you\u2019re able to build much more complex services more quickly.<\/p>\n<p><strong>SEE:<\/strong> Discover how <a href=\"https:\/\/www.techrepublic.com\/article\/microsoft-report-low-code-tools-lifeline-overburdened-it-teams\/\">using low-code tooling can ease your IT team\u2019s workload<\/a>.<\/p>\n<p>There\u2019s another advantage to using these tools to build your own call center environment.<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/communication-services\/how-tos\/call-automation\/actions-for-call-control?tabs=csharp\" target=\"_blank\" rel=\"noopener noreferrer\"> By using workflow to route calls internally over Azure<\/a>, you\u2019re able to provide a single external number for your services and hide all the numbers given to operators and other staff, using the same number for outgoing calls from your customer service platforms. Providing privacy for staff is important, and using this technique helps maintain it while still giving customers access to your support platform.<\/p>\n<p>Microsoft continues to expand its communications APIs, providing tools for businesses of all sizes to use cloud-hosted telephony. With the ability to integrate features like this with Teams, the resulting applications fit neatly into existing business processes without significantly changing the way we work.<\/p>\n<p><strong>Read next:<\/strong> Improvements in the data store for <a href=\"https:\/\/www.techrepublic.com\/article\/microsoft-dataverse-new-ai-tools\/\">Microsoft Dataverse<\/a> aim to help businesses build on their data.<\/p>\n<p> <!-- default newsletter at the end --> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Image: Monkey Business\/Adobe Stock Microsoft has slowly been expanding the business capabilities of its Azure platform, adding services and application programming interfaces that can be used to provide a set of message-driven workflows. Much of this development builds on its Service Bus backbone, and the tooling used to run both Azure Functions and the Azure [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":92090,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[327,78,283,40,783,152,27],"tags":[],"class_list":["post-92089","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api","category-automation","category-azure","category-cloud","category-cloudsync","category-microsoft","category-software"],"_links":{"self":[{"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=\/wp\/v2\/posts\/92089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=92089"}],"version-history":[{"count":0,"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=\/wp\/v2\/posts\/92089\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=\/wp\/v2\/media\/92090"}],"wp:attachment":[{"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=92089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=92089"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudnewshub.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=92089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}