Article last updated on the 5th of December, 2025.
Contents
1. Introduction
Microsoft Planner is a simple, visual task-management tool included in Microsoft 365. It helps teams organize work using boards made up of tasks that can be assigned, tracked, and updated collaboratively.
A Plan in Microsoft Planner is a workspace where a group organizes its tasks. Each Plan contains buckets, tasks, due dates, attachments, and progress tracking, giving teams a clear overview of what needs to be done and who is responsible.
While Planner Plans can serve as an alternative to SharePoint Task Lists, they are not direct replacements. Task Lists work well for structured, list-based tracking within SharePoint sites, whereas Planner is optimized for team-based, visually organized task management.
In this article, we will demonstrate how you can create Microsoft Planner plans for entities such as projects and link to them from a business module list or a My Tools button.
To accomplish this task, we are going to go through the following steps:
- Create an app registration allowing us to call the Microsoft Graph. We need this for getting the group id of a teamified site, as well as create Planner plans
- Set up a credential in WorkPoint 365 using the previously configured app registration
- Set up an endpoint configuration to call the Graph and get a teamified site's group id
- Set up an endpoint configuration to call the Graph and create a Planner plan under the previously fetched group id
- Create a System process for teamifying newly created project sites, get the group id, create a Planner plan, and write the plan's URL to the project metadata. For creating projects, we will use the default Create Entity process provided by WorkPoint.
- Optional: Create a JSON formatting on the project metadata field to display the Planner icon instead of the raw URL
There are quite a few steps to go through, so let's get started.
2. App registration setup
In this section, we will set up an app registration in Azure and grant it permissions to call the Graph and get a SharePoint site's group, and create Planner plans.
To set up an app registration, we need to go to the Microsoft Entra admin center.
- In the left side menu, click "App registrations".
- In the Command bar, click "New registration".
- Provide a fitting name for the app registration.
- Click the "Register" button.
Once registered, you should land on a page similar to the following:
- In the "Manage" section of the app registration's menu, click "API permissions".
This opens the API permissions page for the app registration:
On this page, you can manage what an application is allowed to do in your Microsoft 365 tenant. By default, new app registrations created by the method we used here come with the delegated "User.Read" permission. We don't need that, so we can go on and remove it:
- For the User.Read permission, which the menu button and select "Remove permission".
- In the confirmation dialogue, click "Yes, remove".
We now have an app registration with no permissions:
To accomplish the tasks we want to use this app registration for, we need to grant it the following permissions:
- Sites.Read.All: to resolve the SharePoint site via /sites/{hostname}:/{path} or /sites/{site-id}
- Group.Read.All: to read the Microsoft 365 group associated with the site (for example via /sites/{site-id}/group or by querying the group directly)
- Tasks.ReadWrite.All: to create Planner plans and tasks with app-only access (POST /groups/{group-id}/planner/plans
Let's add the Sites.Read.All permission now:
- Click the "Add permission" button.
- In the "Request API permissions" panel, click "Microsoft Graph".
- Select "Application permissions".
- In the "Select permissions" section, search for "sites".
- Expand the "Sites" category and check the "Sites.Read.All" permission checkbox.
- Click the "Add permissions" button.
This should add the "Sites.Read.All" permission to the app registration:
We use the same method to add the Group.Read.All and Tasks.ReadWrite.All permissions:
- Next, we click the "Grant admin consent for WorkPoint Demo" button
- In the confirmation dialogue, we click "Yes".
Our app registration now has all permissions it needs to help us get SharePoint site's Microsoft 365 groups and create plans. Next, we need to create a secret that we can provide when using this app registration:
- In the left menu, click "Certificates & secrets".
- On the Certificates & secrets page, click "New client secret".
- Provide a name for the secret and select an expiration option.
- To create the secret, click the "Add" button.
- Once the secret has been created, click the "Copy to clipboard" button for the secret Value. We will need this later, and if you refresh the page, you can no longer copy it. In that case, you would have to create a new secret.
The last thing we need now is to take a note of the app registration's Client ID, which we will also need later:
- Click the "Overview" menu item, and copy the "Application (client) ID" value.
3. Credential configuration
In this section we will configure a credential in WorkPoint 365 so we can use it to call the Graph API.
We begin in the HTTP Endpoint Library in the WorkPoint 365 administration:
- In the "Credentials" section of the HTTP Endpoint Library, we select "OAuth" and click the "Add" button.
- Provide a fitting title for the new credential.
- In the "Credential Type" field, select "Secret".
- In the "Authority" field, provide the following: https://login.microsoftonline.com/[Tenant ID]/oauth2/v2.0/token (replace [Tenant ID] with your tenant ID).
- In the "Audience" field, provide the following: https://graph.microsoft.com.
- In the "Client ID" field, provide the app registration's Client ID, which you copied earlier.
- In the "Tenant" field, provide your tenant ID.
- In the "Scope" field, provide the following: https://graph.microsoft.com/.default.
- In the "Secret" field, provide the app registration's secret value, which you copied earlier.
- To test the credential, click the "Test" button.
The outcome of the test should be a "Valid" text just below the Test button:
- To add the credential, click the "Add" button.
You should now be redirected back to the HTTP Endpoint Library and see the new credential:
4. Endpoint configuration
In this section, we will set up two endpoints in WorkPoint 365; one for getting a SharePoint site's Microsoft 365 group id, and one for creating a plan under said group id.
4.1. Get Group endpoint
Here, we will create the endpoint configuration we will use to get a SharePoint site's associated Microsoft 365 group. We begin in the HTTP Endpoint Library in the WorkPoint 365 administration:
- In the "Http Endpoints" section, click the "Add" button.
- Provide a fitting title for the endpoint configuration.
- Add a parameter in which we can pass in the title of the SharePoint site of which we want to get the associated Microsoft 365 group. Here, we call it "siteTitle".
- In the "Url" field, provide the following Graph endpoint Url: https://graph.microsoft.com/v1.0/groups.
- In the "Http(s) endpoint action" field, select "Get".
- Provide the following two headers; Accept and Content-type, and provide the value "application/json" for both.
- In the "Query" section, add a query with the key "$filter", and the value "displayName eq '[siteTitle]'".
- In the "Credential" selector, choose the credential you created in section 3 of this article.
At this point, if we have a SharePoint site which has already been groupified, we can provide the title of that SharePoint site, and test the endpoint configuration.
Here, we have provided the site title "Project Black", which we know already has Microsoft 365 group associated with it:
We can then click the "Test" button for the endpoint configuration and see the result in the "Test Result" section:
- Here, we have clicked the "Test" button, and we can see that the Graph returns a response, including the group "id", which we will need later.
We can now also automatically generate the endpoint schema for our endpoint using the Test Result:
- To automatically generate the schema from the test result, click the "Autogenerate from test" button.
This should fill the "Schema" field:
- To add the endpoint configuration, click the "Add" button.
This should save the endpoint and take you back to the HTTP Endpoint Library:
4.2. Create Plan endpoint
Here, we will create the endpoint configuration we will use to create a Planner plan for a SharePoint site's Microsoft 365 group.
We begin in the HTTP Endpoint Library in the WorkPoint 365 administration:
- In the "Http Endpoints" section, click the "Add" button.
- Provide a fitting title for the endpoint configuration.
- Add two parameters; one for the title of the plan the endpoint is going to create, and one for the id of the group under which the plan should be created. Here we name them "title" and "ownerGroup".
- In the "Url" field, provide the following Graph endpoint Url: https://graph.microsoft.com/v1.0/planner/plans.
- In the "Http(s) endpoint action" field, select "Post".
- Provide the following two headers; Content-type with the value "application/json", and Prefer with the value "return=representation". The Prefer header ensures that the full object created by the endpoint is returned in the response.
- in the "Body" field, provide the following object:
{
"owner":[ownerGroup],
"title":[title]
}
This ensures that when we call the plans-endpoint, we provide it with the title that we want to give the plan, and the group under which it should be placed. The values come from the configured parameters.
- In the "Credential" selector, choose the credential you created in section 3 of this article.
At this point, it's helpful to have a groupified SharePoint site to test the endpoint on. To test the endpoint, we need to provide a title for a Plan, as well as some Microsoft 365 group:
Here we have provided a title of "Test Group", and the ID of the Microsoft 365 group associated with "Project Black" which we used to test the "Get Group" endpoint with.
- With the parameter values provided, we click the "Test" button and note that we get a response back from the endpoint, including a range of data about the new Plan which has been created.
from here, we can automatically generate the schema for this endpoint configuration:
- Clicking the "Autogenerate from test" button fills the "Schema" field.
- We can now click the "Add" button to add the endpoint configuration.
This saves the endpoint configuration and returns you to the HTTP Endpoint Library:
5. System Process configuration
In this section, we are going to create a system process which, upon entity creation on our Projects module, will be responsible for groupifying and creating a Microsoft Team for the project, then use the Get Group endpoint to get the ID of the project's group, then create a Planner plan under that group, and then write the URL of the plan to the project's metadata.
For this purpose, we have created a simple Single line of text column with the internal name "ccPlanUrl" and display name "Plan" on the Projects business module:
Before we configure the System process, we need to ensure that we have provided all necessary consents to be able to run system processes, and groupify sites:
- In the Process Builder in the WorkPoint 365 administration, we click the "Connections" button.
You can read more about WorkPoint connections in this article.
- In the Connections side panel, we need to create a connection for running System processes. To create this connection, read the text under "Connection for WorkPoint Automate steps" header and click the "here" link and go through the consent form.
- Once the System process connection has been created, we also need to create a connection for Microsoft Teams integration. To create this connection, read the text under "Connection for Microsoft Teams integration" header and click the "here" link and go through the consent form.
- Once both connections have been created, click the Refresh button and ensure that the e-mail address of the user used for the connections are displayed:
We can now configure the System process:
- To create the new System process, click the "New" button.
- In the "Create new" dialogue, select to start from scratch.
- In the next step, provide a fitting title for the process and select the "System Process" type.
- Next, click the "Begin" button.
This creates an empty system process:
We begin by adding the "When an entity site is created" trigger and select the Projects module in the "Business module" field:
The first step we will add to the process is the "Create team" step:
The title "Create team" is a little bit of a misnomer, as it does more than that - specifically it creates a group for the selected SharePoint site and thereby creates a Microsoft Team for it as well.
In any case, once added, we make the following configuration in the "Options" tab of the step:
- In the "Business module" field, we select the Projects module.
- Since we want to groupify and create a plan for the project which just triggered this process, in the "Entity" field, we select a reference to "Entity.ID".
- In this instance, we select to make the Microsoft 365 group and Team created by this step public, but if you need to more tightly control access to the group and team, select "No". Remember to set up security settings to grant access afterwards.
- When a SharePoint site is groupified, a shared mailbox is created for it. The address for this shared mailbox consists of the group alias, which is the part before the @-sign, followed by the tenant information. For example, if we set the group alias to "P-0001" for a site on a tenant called "CalperIT", then the shared mailbox address would be "P-0001@CalperIT.onmicrosoft.com". In this instance, to ensure that all groups receive unique mailbox addresses, we make assign a reference to the Project ID of the project having been created. These should always be unique, and if you want to be sure about this, you could use the built-in Numerator Service in WorkPoint365 to assign unique numbers in your selected field.
- In the "Group display name" field, we assign the title of the project having been created.
Next, we add a "Send HTTP request" step to the process (but we title it "Get group" and name it "GetGroup":
- In the "Options" tab, in the "Endpoint" field, we select our "Get group" endpoint we created earlier. This endpoint takes the name of a SharePoint site and returns the associated Microsoft 365 group information, which we need for the next step.
- In the "siteTitle" parameter for the endpoint, we pass in the title of the entity (i.e. the project).
Next, we add another "Send HTTP request" step (but title it "Create plan" and name it CreatePlan):
- In the "Options" tab, in the "Endpoint" field we select the "Create Plan" endpoint we created earlier. This endpoint requires us to provide a title for the Planner plan we want to create, as well as the ID of a Microsoft 365 group, under which is will be created and accessible.
- In the "title" parameter, we select the title of the entity (project) we are creating the plan for. This ensures that the plan will have the same title as the project, making it easy to identify.
- In the "ownerGroup" parameter, we select the value[0].id value returned by the previous call, which fetched information about the project's Microsoft 365 group. This ensures that the group we create, is created under the Microsoft 365 group associated with the newly created project entity.
The last thing we need to do in this process is update the project metadata with the URL for the newly created Project plan. To do this, we add an "Update entity" step:
- In the "Options" tab, in the "Business module" field, we select the Projects module.
- In the "Entity" field, we assign the "Entity.ID" reference.
- In the "Fields" tab, we expand the "Plan" metadata field and add the following expression:
'https://planner.cloud.microsoft/webui/plan/' + CreatePlan.id + '/view/board?tid=f00789d0-2c63-4b0a-8c10-22afc59d32ec'
Two parts of the URL to any Planner plan are always static. These are the https://planner.cloud.microsoft/webui/plan/ and /view/board?tid=f00789d0-2c63-4b0a-8c10-22afc59d32ec parts.
Any plan has an internal ID, which needs to be inserted in between those two static parts. That's why, in the expression, we insert the two static strings, and a reference to the ID of the plan we just created in between.
Note that the "CreatePlan.id" reference may be different, depending on the name of the "Send HTTP request" step which creates the Planner plan.
We can now save and publish the system process:
6. Applying JSON formatting to Plan field
In this step, we will apply JSON formatting to show a cog-icon if the "Plan" field is empty, and if it contains the Planner URL (set by the system process), it displays the Planner icon as a button link.
For this purpose, we need two icons to display; a cog-icon, and the Planner icon.
For this demonstration, we use the following two icons, which we have placed in the Site Assets --> Images --> Icons folder on the root site of our solution:
On our Projects business module, we apply the JSON formatting to the Plan field:
- We open the options for the Plan field, expand the "Column settings" group and click "Format this column".
- In the "Format Plan column" side panel, we click "Advanced mode".
- In the JSON editor, we insert the following JSON formatting code:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "a",
"attributes": {
"href": "=if(@currentField == '', '', @currentField)",
"target": "_blank"
},
"style": {
"display": "flex",
"align-items": "center",
"height": "100%",
"width": "100%"
},
"children": [
{
"elmType": "img",
"attributes": {
"src": "=if(@currentField == '', 'https://workpointdemo.sharepoint.com/sites/casemngt/SiteAssets/images/icons/Processing.svg', 'https://workpointdemo.sharepoint.com/sites/casemngt/SiteAssets/images/icons/Planner.svg')",
"alt": "=if(@currentField == '', 'Processing...', 'Open Planner')"
},
"style": {
"width": "16px",
"height": "16px"
}
}
]
}
Be sure to adjust the URLs to the icons in the JSON formatting code. In this example, the icons are located on one of WorkPoint's demo solutions, but you will need to point to the location where you stored the icons on your own solution.
- Once inserted, we click the "Save" button.
Our Master entity's Plan field now displays the Processing icon, since it does not have a Plan:
We can now try testing our setup by creating a new project.
7. Adding a My Tools button to open Plan
In this section, we will add a My Tools button which opens a Project's Plan:
- In the My Tools configuration page, we select the Projects module, since that's where we want to place our button.
- We then create a new button called "Open Plan".
- In the "Icon url" field, we assign the URL of our Planner icon (which we placed in our Site Assets --> Images --> Icons folder on the root site of our solution).
- In the "Type" selector, we select "Link".
- In the "Url" field, we insert a reference to the ccPlanUrl field of the current project (the project on which the button is placed).
- We can then save the button, after which we need to clear the WorkPoint 365 browser cache to be able to use it.
Once the button has been saved and we have cleared our WorkPoint 365 browser cache, the button appears in the My Tools panel on any Project site:
8. Testing the setup
To test out setup, we can now use WorkPoint's provided default Create entity process for our Projects module:
- We provide metadata for our project and click the "Continue" button.
Note that we have provided a Project ID manually, which will be used as the alias for our Microsoft 365 group.
Our project is now being created:
Once the project has been created, we can find it in our Projects module, however, since the Plan has not yet been created yet (the System process has to finish running in the background, the "Plan" field displays the Processing icon:
After a couple of seconds, the System process has finished, created the plan, and updated the Plan field:
- Clicking the Planner icon takes the user to the Project's plan:
Comments
0 comments
Article is closed for comments.