{"id":13058,"date":"2023-02-28T13:10:42","date_gmt":"2023-02-28T21:10:42","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=13058"},"modified":"2023-03-01T09:28:44","modified_gmt":"2023-03-01T17:28:44","slug":"new-microsoft-planner-api-capabilities-now-available-in-microsoft-graph","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/new-microsoft-planner-api-capabilities-now-available-in-microsoft-graph\/","title":{"rendered":"New Microsoft Graph Planner API capabilities now available"},"content":{"rendered":"<p><span data-contrast=\"auto\">We are pleased to announce <\/span><b><span data-contrast=\"auto\">new capabilities for Microsoft Graph Planner API<\/span><\/b><span data-contrast=\"auto\">, in response to some of our top customer requests. The updates are spread across two major areas:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">First, a new set of<\/span> <a href=\"https:\/\/aka.ms\/businessScenarioAPI\"><b><span data-contrast=\"none\">business scenarios capabilities<\/span><\/b><\/a><span data-contrast=\"auto\">, which allow integration of external signals and data into the Planner ecosystem. These capabilities will support both Application permissions and Delegated permissions.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Second, providing<\/span><b><span data-contrast=\"auto\"> application permissions for <\/span><\/b><a href=\"https:\/\/aka.ms\/plannerAPI\"><b><span data-contrast=\"none\">existing Planner API capabilities<\/span><\/b><\/a><span data-contrast=\"auto\">, in addition to the support for Delegated permissions already available today.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Below are a few examples of how your organization can use these new capabilities.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"1\"><span data-contrast=\"none\">Example uses<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p><b><span data-contrast=\"auto\">External signals integration.<\/span><\/b><span data-contrast=\"auto\"> You can now use business scenario capabilities to create, read, update, or delete tasks in response to external signals.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Courier New\" data-listid=\"8\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"auto\">Syncing action items from an external system<\/span><span data-contrast=\"auto\">: Let\u2019s say your organization uses a ticketing system and you\u2019d like all tickets to be represented in Planner, too, so users can easily view the tickets from the Tasks app in Teams or any of the other experiences that show Planner tasks. Whenever a new ticket is created, your application can use a business scenario to create a corresponding Planner task. When using a business scenario to create a task, you can set the externalID of the Planner task. In this case you might set it to the ticketID, allowing you to query for the task based on the ticketID.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"o\" data-font=\"Courier New\" data-listid=\"8\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"2\"><span data-contrast=\"auto\">Tasks resulting from events in other systems<\/span><span data-contrast=\"auto\">: Now let\u2019s imagine a manufacturing organization with a number of production line assets. When one of them fires off an event signaling a machine failure, an urgent task can be created to track the follow-up action to inspect the machine. When creating the task via a business scenario, you can set the externalID to the failureID for the failure to easily query the task.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">There are a few other benefits of using a business scenario to create and manage these tasks. Your organization can configure business scenario permissions to prevent users from taking undesirable actions, like deleting the tasks created via the business scenario. Furthermore, using business scenario capabilities provides an application access only to the tasks created via that business scenario \u2013 preventing unnecessary access to all remaining tasks across your organization.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559685&quot;:1080,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Export or backup. <\/span><\/b><span data-contrast=\"auto\">Until now, backing up tasks across Teams and Groups required you to pick a user and make that user part of all the relevant Teams or Groups with Planner plans and tasks to be backed up. It was possible to use the Planner API with Delegated permissions \u2013 in the scope of that user \u2013 getting all of the tasks that user had access to. However, if that user was ever removed from one of the relevant Teams or Groups, the backup would be missing those tasks because the user would no longer have access. With the addition of application permissions to the existing Planner APIs, it\u2019s now possible to query each of the plans you\u2019d like to include in your backup from across many Teams and Groups, without needing to manage a user\u2019s membership in them.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Read more about these new capabilities in our previous <\/span><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/announcing-updates-to-the-planner-api-in-microsoft-graph\/\"><span data-contrast=\"none\">blog post<\/span><\/a> <span data-contrast=\"auto\">or review the documentation for <\/span><a href=\"https:\/\/aka.ms\/businessScenarioAPI\"><span data-contrast=\"none\">business scenario capabilities<\/span><\/a> <span data-contrast=\"auto\">and for the <\/span><a href=\"https:\/\/aka.ms\/plannerAPI\"><span data-contrast=\"none\">existing Planner API capabilities<\/span><\/a><b><span data-contrast=\"auto\">. <\/span><\/b><span data-contrast=\"auto\">The <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/plannertask-get?view=graph-rest-beta&amp;tabs=http#permissions\"><span data-contrast=\"none\">Get plannerTask documentation<\/span><\/a> <span data-contrast=\"auto\">is one example of a capability that now shows support for Application permissions.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Happy coding!<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are pleased to announce that the new Planner API capabilities are now available in Microsoft Graph, in response to some of our top customer requests.<\/p>\n","protected":false},"author":103206,"featured_media":13081,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[191],"class_list":["post-13058","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph","tag-planner-api"],"acf":[],"blog_post_summary":"<p>We are pleased to announce that the new Planner API capabilities are now available in Microsoft Graph, in response to some of our top customer requests.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/13058","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\/103206"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=13058"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/13058\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/13081"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=13058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=13058"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=13058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}