Creating Planner Plans using Power Automate

Currently, the Microsoft Planner connector for Power Automate/Power Apps does not have a ‘Create Plan’ action. There are options to manage tasks and buckets, but when it comes to plans, there are only actions to list content.

Alternatives to create a plan

We can use the graph API to create Planner plans. Previously, to use the Graph API in Power Automate, we would need to either use one of two premium connectors: the HTTP action (managing the authentication and all of that to connect to Graph manually), or using the HTTP with Azure AD action. Or even, it can be done by building a custom connector.

New action under the Office 365 groups connector

But recently a new action was released in preview under the ‘Office 365 groups’ connector: Send an HTTP request.

This action was intended to be used to make calls to the Graph API, in a similar way as the ‘Send an HTTP request to SharePoint’ is used to make calls to SharePoint Rest API (and for the moment it seems this action will stick to the standard connectors, which will open a lot of new automation possibilities).

How to make a call to graph and create a plan using the new action

The request is simple enough. We need to do a POST request against the planner plans endpoint: https://graph.microsoft.com/v1.0/planner/plans

Using two parameters only:

  1. The id (guid) of the group: (Microsoft 365 group – not security groups) where the plan will be created, easily found on Azure AD:
  2. The plan name:

Then to create a plan, use the following request format:

{
        "owner": "Group Id here",
        "title": "Plan title"
}

Add the ‘Send an HTTP request’ action under the Microsoft 365 groups connector, and use the format specified above to create Plans:

Results:

After calling the action, when the plan is successfully created:

Details about the plan are returned and can be used to automate more steps, such as adding tasks to the plan using the recently created plan.

4 comments

  1. Michel,

    was looking for a more simple creating without “graph”.

    thanks it works,

    small question, how to parse the reponse body, so i can use the response for further use.

    1. Hi Jan,

      At the moment the only way to do it is using Graph…To parse the response you can use the ‘Parse JSON Action’ with the response from the Graph call and the following schema (:

      {
      “type”: “object”,
      “properties”: {
      “createdDateTime”: {
      “type”: “string”
      },
      “owner”: {
      “type”: “string”
      },
      “title”: {
      “type”: “string”
      },
      “id”: {
      “type”: “string”
      },
      “createdBy”: {
      “type”: “object”,
      “properties”: {
      “user”: {
      “type”: “object”,
      “properties”: {
      “displayName”: {},
      “id”: {
      “type”: “string”
      }
      }
      },
      “application”: {
      “type”: “object”,
      “properties”: {
      “displayName”: {},
      “id”: {
      “type”: “string”
      }
      }
      }
      }
      },
      “@odata.context”: {
      “type”: “string”
      },
      “@odata.etag”: {
      “type”: “string”
      }
      }
      }

Leave a Reply

Your email address will not be published. Required fields are marked *