{"id":39619,"date":"2020-06-29T13:17:54","date_gmt":"2020-06-29T20:17:54","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/premier-developer\/?p=39619"},"modified":"2020-06-24T13:27:54","modified_gmt":"2020-06-24T20:27:54","slug":"extending-teams-with-broadcast-messaging","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/premier-developer\/extending-teams-with-broadcast-messaging\/","title":{"rendered":"Extending Teams with Broadcast Messaging"},"content":{"rendered":"<p>App Dev Manager <a href=\"https:\/\/www.linkedin.com\/in\/andreamartini\/\">Andrea Martini<\/a> spotlights broadcast messaging capabilities with Teams.<\/p>\n<hr \/>\n<p>The recent shift to enable remote workers has seen the usage of unified collaboration platforms increasing rapidly; including Microsoft Teams. The ease of adoption and its efficacy as communication system (and more) made it a straightforward ally of many organizations.<\/p>\n<p>One of the common and important scenarios for many organizations these days is the necessity of sending a message &#8211; or even an alert &#8211; to all the users across the company. This is also called \u201cbroadcast messaging\u201d or \u201cproactive messaging\u201d.<\/p>\n<p>Someone may say that email would be historically the right vehicle for this task but recently messaging has evolved to a different level. Reaching a recipient on any possible collaboration platform is sometimes the most successful way to make sure the message is delivered.<\/p>\n<p>Microsoft Teams can provide this functionality with the integration of an App Template (<a href=\"https:\/\/docs.microsoft.com\/microsoftteams\/platform\/samples\/app-templates\">Company Communicator App<\/a>) which can be seen as an extension of the product.<\/p>\n<p>The app makes it possible through the addition and combination of different Azure Services and technologies:<\/p>\n<ul>\n<li>App Service (Bot)<\/li>\n<li>Service Bus<\/li>\n<li>Azure Function<\/li>\n<li>Azure Storage<\/li>\n<\/ul>\n<p><img decoding=\"async\" width=\"440\" height=\"650\" class=\"wp-image-39620\" src=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2020\/06\/overview.png\" alt=\"Overview\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2020\/06\/overview.png 440w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2020\/06\/overview-203x300.png 203w\" sizes=\"(max-width: 440px) 100vw, 440px\" \/><\/p>\n<p>The Company Communicator App is based on the guidelines of Teams and Bot proactive messaging described in following documentation:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/graph\/teams-proactive-messaging\">https:\/\/docs.microsoft.com\/graph\/teams-proactive-messaging<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/microsoftteams\/platform\/bots\/how-to\/conversations\/send-proactive-messages?tabs=dotnet\">https:\/\/docs.microsoft.com\/microsoftteams\/platform\/bots\/how-to\/conversations\/send-proactive-messages?tabs=dotnet<\/a><\/li>\n<\/ul>\n<p>In theory, the solution can also be extended even more by adding functionalities in one or more of the layers mentioned above.<\/p>\n<p>I just came across a scenario of a customer in need to send mandatory messages to a specific group of users of the organization at a scheduled time. It has been easy to extend the current <a href=\"https:\/\/github.com\/OfficeDev\/microsoft-teams-company-communicator-app\">code<\/a> with an external time triggered Azure Function (PowerShell based) to initiate the notification process.<\/p>\n<p>The cost of adoption of this solution is reasonably low. To get an idea you can read the sample estimate reported <a href=\"https:\/\/github.com\/OfficeDev\/microsoft-teams-company-communicator-app\/wiki\/Cost-estimate\">here<\/a>.<\/p>\n<p>Messages can be sent to:<\/p>\n<ul>\n<li>The General channel of a specific team<\/li>\n<li>A selection of members of a specific team<\/li>\n<li>All the users in the org having access to the app. <em>Note: this option provides the best route to reach a wider audience. Your organization can install the app to the targeted audience by using <\/em><a href=\"https:\/\/docs.microsoft.com\/graph\/teams-proactive-messaging#deploy-your-app-to-your-tenant-app-catalog\"><em>Graph API<\/em><\/a><em>.<\/em><\/li>\n<\/ul>\n<p>If you have any question the Premier Developer team is always glad to answer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the common and important scenarios for many organizations these days is the necessity of sending a message &#8211; or even an alert &#8211; to all the users across the company. This is also called \u201cbroadcast messaging\u201d or \u201cproactive messaging\u201d.<\/p>\n","protected":false},"author":582,"featured_media":39622,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[1134,3],"class_list":["post-39619","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-permierdev","tag-microsoft-teams","tag-team"],"acf":[],"blog_post_summary":"<p>One of the common and important scenarios for many organizations these days is the necessity of sending a message &#8211; or even an alert &#8211; to all the users across the company. This is also called \u201cbroadcast messaging\u201d or \u201cproactive messaging\u201d.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/39619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/users\/582"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/comments?post=39619"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/39619\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media\/39622"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media?parent=39619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/categories?post=39619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/tags?post=39619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}