{"id":2133,"date":"2018-11-19T09:00:31","date_gmt":"2018-11-19T16:00:31","guid":{"rendered":"https:\/\/developer.microsoft.com\/en-us\/office\/blogs\/?p=2133"},"modified":"2018-11-19T09:00:31","modified_gmt":"2018-11-19T16:00:31","slug":"better-organize-and-automate-the-microsoft-teams-experience-with-the-availability-of-the-microsoft-graph-apis","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/better-organize-and-automate-the-microsoft-teams-experience-with-the-availability-of-the-microsoft-graph-apis\/","title":{"rendered":"Better organize and automate the Microsoft Teams experience with the availability of the Microsoft Graph APIs"},"content":{"rendered":"<p>The Microsoft Graph APIs are a game-changer for devs, and in this blog you\u2019ll see how you can build an unparalleled Teams experience.<\/p>\n<p>For the past several months we have been gathering extensive feedback from users regarding their <a href=\"https:\/\/products.office.com\/en-us\/microsoft-teams\/group-chat-software\">Teams<\/a> experience, and we know many have been asking for the ability better organize your users\u2019 teams and channel, automate Teams lifecycles, and create pre-loaded, familiar experiences for your users. Today, we are giving you those capabilities (and more) with the <a href=\"https:\/\/aka.ms\/teamsgraph\/v1\">general availability of 37 Graph APIs<\/a>.<\/p>\n<h5>With the new Graph APIs, you can now automate:<\/h5>\n<ul>\n<li>Provisioning of large sets of teams<\/li>\n<li>Automatically creating teams and channels (with business-specific logic)<\/li>\n<li>Deployment of apps in team and channels<\/li>\n<\/ul>\n<p>These collaboration tools include Microsoft Graph-enabled tabs or bots running inside Microsoft Teams apps. You can also call Microsoft Graph outside of a Microsoft Teams app, such as from a website or a web service. If you&#8217;ve already enabled your website for Microsoft Graph, you can use that work for Microsoft Teams by using the\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/platform\/#pivot=home&amp;panel=home-all\">Microsoft Teams developer platform<\/a>\u00a0to\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/platform\/concepts\/tabs\/tabs-overview\">create a tab<\/a>\u00a0that uses the existing website code. For scenario examples, check out our <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/Microsoft-Teams-Blog\/Overwhelmed-with-all-your-teams-and-channels-Provide-a-great\/ba-p\/288059\">TechCommunity blog<\/a>.<\/p>\n<h3>Automate team lifecycles<\/h3>\n<p>Use Microsoft Graph to\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/team_put_teams\">create a new virtual team<\/a>\u00a0when a new business issue arises,\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/group_post_members\">add the right people<\/a>\u00a0to the team, and configure the team with\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/channel_post\">channels<\/a>,\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/teamstab_add\">tabs<\/a>, and\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/teamsappinstallation_add\">apps<\/a>. If you want to get the new team together to discuss the business issue,\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/group_post_events\">add a new event<\/a>\u00a0to the team calendar.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2018\/11\/automate-team-lifecycles.png\" alt=\"automate team lifecycles\" width=\"522\" height=\"471\" \/><\/p>\n<p>When the business issue is resolved and you no longer need the team, use the Microsoft Teams API to\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/team_archive\">archive<\/a>\u00a0or\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/group_delete\">delete<\/a>\u00a0the team. If you know the maximum duration of the team when you create it, set an\u00a0<a href=\"https:\/\/support.office.com\/en-us\/article\/office-365-group-expiration-policy-8d253fe5-0e09-4b3c-8b5e-f48def064733?ui=en-US&amp;rs=en-US&amp;ad=US\" target=\"_blank\" rel=\"noopener noreferrer\">Office 365 group expiration policy<\/a>\u00a0for the team that automatically removes the team according to the policy.<\/p>\n<h5>Get work done even when no one is around<\/h5>\n<p>Use\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/concepts\/permissions_reference\">application permissions<\/a>\u00a0to work with\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/team\">teams<\/a>,\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/channel\">channels<\/a>,\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/teamstab\">tabs<\/a>, and\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/teamsapp\">apps<\/a>\u00a0without human intervention. Create a new channel when your customer files an order. Automatically create teams for classes at the beginning of the school year and archive them at the end.<\/p>\n<h5>Create teams linked to your app<\/h5>\n<p>Let customers to create new\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/team\">teams<\/a>\u00a0and\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/channel\">channels<\/a>.\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/teamsappinstallation_add\">Install<\/a>\u00a0your\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/platform\/#pivot=home&amp;panel=home-all\" target=\"_blank\" rel=\"noopener noreferrer\">Teams app<\/a>\u00a0in the new teams.\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/teamstab_add\">Pin your app to a tab<\/a>\u00a0in the new channel.\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/beta\/api\/channel_post_chatthreads\">Send messages<\/a>\u00a0to the channel linking back to your website.<\/p>\n<h5>Create and manage multiple teams and channels<\/h5>\n<p>Microsoft Graph makes it easy to create large numbers of teams and populate them with users and channels, by automate creating and managing\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/team\">teams<\/a>,\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/channel\">channels<\/a>,\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/teamstab\">tabs<\/a>, and\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/resources\/teamsapp\">apps<\/a>. Microsoft Graph also lets you\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/concepts\/teams_list_all_teams\">find<\/a>\u00a0and\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/team_archive\">archive<\/a>\u00a0the teams you are no longer using. This is the same API that the\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/enable-features-office-365\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Teams Admin Center<\/a>\u00a0and\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/teams-powershell-overview\" target=\"_blank\" rel=\"noopener noreferrer\">Teams PowerShell commandlets<\/a>\u00a0are built on.<\/p>\n<h5>Deploy apps to teams<\/h5>\n<p><a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/concepts\/teams_list_all_teams\">List the teams in your tenant<\/a>, and\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/teamsappinstallation_add\">install apps<\/a>\u00a0to them.\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/graph\/docs\/api-reference\/v1.0\/api\/teamstab_add\">Create tabs<\/a>\u00a0in channels to give users easy access to apps.<\/p>\n<p>Microsoft Graph APIs can enhance apps inside and outside of Teams. Basically, everything we said above can surface in these extensibility features:<\/p>\n<table style=\"height: 669px\" width=\"848\">\n<tbody>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Extensibility feature<\/strong><\/p>\n<\/td>\n<td width=\"474\">\n<p style=\"text-align: center\"><strong>Scenario<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Tabs<\/strong><\/p>\n<\/td>\n<td width=\"474\">Surface enhanced content within Microsoft Teams<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Connectors<\/strong><\/p>\n<\/td>\n<td width=\"474\">Post updates from external services to channels.<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Actionable Messaging<\/strong><\/p>\n<\/td>\n<td width=\"474\">Add enhanced interaction to your connector cards.<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Websites<\/strong><\/p>\n<\/td>\n<td width=\"474\">Surface enhanced content in your web pages.<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Bots<\/strong><\/p>\n<\/td>\n<td width=\"474\">Help users get tasks done, in conversations<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Activity Feed<\/strong><\/p>\n<\/td>\n<td width=\"474\">Engage users via feed notifications.<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Messaging Extensions<\/strong><\/p>\n<\/td>\n<td width=\"474\">Allow users to query and share information in conversations.<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Services<\/strong><\/p>\n<\/td>\n<td width=\"474\">Enhance your client applications with Microsoft Graph data via your web service.<\/td>\n<\/tr>\n<tr>\n<td width=\"150\">\n<p style=\"text-align: center\"><strong>Calling and\nonline meetings<\/strong><\/p>\n<\/td>\n<td width=\"474\">Create Microsoft Teams apps with bots that can initiate and participate in audio\/video calls, route\/transfer calls based on interactive voice response (IVR) flows, and participate in online meetings.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>What\u2019s next?<\/h3>\n<ul>\n<li>Check out <a href=\"https:\/\/www.youtube.com\/watch?v=uUAehm_KI6Q&amp;feature=youtu.be\">this tutorial<\/a> to see how to leverage the Graph APIs in your organization, today<\/li>\n<\/ul>\n<ul>\n<li>Stay tuned for more announcements regarding Graph APIs for messaging.<\/li>\n<li>Sign up for the <a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoftteams\/platform\/resources\/dev-preview\/developer-preview\">Teams Developer Preview Program<\/a> to get the latest updates in your tenant.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The Microsoft Graph APIs are a game-changer for devs, and in this blog you\u2019ll see how you can build an unparalleled Teams experience. <\/p>\n","protected":false},"author":69074,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3,128],"tags":[],"class_list":["post-2133","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph","category-microsoft-teams"],"acf":[],"blog_post_summary":"<p>The Microsoft Graph APIs are a game-changer for devs, and in this blog you\u2019ll see how you can build an unparalleled Teams experience. <\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/2133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69074"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=2133"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/2133\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=2133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=2133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=2133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}