- Perspectives on Power Platform
- Posts
- Microsoft Planner and the revenge of MS Project
Microsoft Planner and the revenge of MS Project
The new Planner Premium plans contain surprising dependencies to earlier generations of project management software from Microsoft.
Today, when a Microsoft 365 user is thinking about how to manage tasks related to some bigger deliverable (project, campaign, event etc.) they would likely open up Microsoft Planner. Being a modern looking tool that integrates with Microsoft Teams and is promoted in the M365 cloud portal, it sounds like a safe choice.
Little do they know that hidden inside the modern tool is an option that ties them to a version of MS Project Windows executable running in the cloud. Yes, the MS Project that has been around since 1984:
Are you serious?!? Oh totally. It’s a bit of a long story, involving multiple rounds of product innovation and rebranding from Microsoft. Rather than starting from the 80s, I’m going to take you through the experience in the way that the users will get exposed to it. Which is starting from the choice everyone gets today when creating a new Planner plan: “basic or premium?”
Creating a new plan in Planner: basic vs premium, what are you gonna go for?
As is often the case with Microsoft products, what it says in the UI doesn't necessarily have anything to do with what technology is used behind the scenes. A regular user is unlikely to understand what the options presented to him or her mean in practice. Heck, even the technical experts with deep expertise on the tools sometimes get misled by UI level changes and end up making poor, irreversible choices.
The case of Planner and its Basic vs. Premium plan types is an amazing example of the massive dependencies that exist in the product stack of Microsoft. It perfectly illustrates what may be hidden behind the scenes when MS product marketing decides to do a bit of rebranding. As well as the need for us MS tech professionals to keep track of these new layers and understand what’s beneath them.
Choosing your Planner plan type
Let's say the user needs to manage an employee onboarding process. They open Planner and see that there is a readymade template available for this. Great! Just one more question: do you want the Basic or Premium version?
The Basic plan template looks like this:
Employee Onboarding template in Planner, the Basic version.
Okay, nice. Now what more do I get if I go for the Premium option?
Employee Onboarding template in Planner, the Premium version.
Timelines, goals, people views. Plus, an additional benefit of "includes steps for IT and HR onboarding tasks." Well, since I appear to have a license for using the premium edition, why would I settle for anything less? Let's take advantage of the full capabilities and select the premium plan template. I've heard that it also includes the fancy Copilot that so many people are talking about on LinkedIn…
Click.👆 Boom! 💥 Bang! 😵💫
The user has just provisioned a Project for the Web project inside a Microsoft Dataverse database. Wait, what? Why? Because of the previous round of project management product innovation five years ago and the choices made back then.
Welcome to Power Platform, project managers!
Here's what the Planner Premium plan is under the covers: tables in Dataverse, accessible via Power Apps like any other data inside a Power Platform environment.
Planner Premium plan viewed via the Project model-driven Power App
If only the user would realize it, they could use this model-driven Power Apps interface for Project for the Web and view the plan data. Naturally they could also choose to do the data entry and modifications via this app. It’s got the same features as if you’d go to project[dot]microsoft[dot]com. This was the official user experience for a paid Project product not too long ago.
Then came the rebranding. “Project for the web will be renamed to Planner.” Okay, and what about the existing Planner? Well, that’s going to be Planner, too! Because Microsoft loves to simplify their products through introducing unified terminology - even when the actual technology this terminology refers to doesn’t change. Case in point: from copilots to agents.
Before this update, the original Planner in the pre-Premium days was an interesting concept. Rather than inventing yet another app specific database, it seemed to have been built in the lightest way possible on top of what already existed in Microsoft Graph. Using M365 Groups as plans (in the beginning) had its quirks, but the idea of not replicating concepts that already existed made sense from the perspective of the task management big picture in M365.
Project for the Web was another interesting initiative. Building non-BizApps products on top of Dataverse (then Common Data Service) was a brave and exciting idea back in 2019. It validated Power Platform as a key part of the mainstream MS cloud backbone. The potential for extensions and integrations via low-code tools were also an exciting opportunity - at least for us old XRM folks who always considered this to be The Right Platform for managing business data and processes. (Moving away from the SharePoint based architecture of earlier Project Online product was the icing on the cake, proving that building apps on top of SharePoint was NOT the right way anymore!)
The new Planner Premium is a continuation of this evolution. Similar to the earlier phases, Microsoft tries hard to not draw too much attention to the underlying services. Yet when you are not working inside a product silo but rather try to make Planner a part of your specific workflows, you absolutely need to see beyond the branding layer. Next, let’s look at the surprising limitations of choosing to create a Premium plan.
Securing top talent with our guide is a click away
Finding and attracting global talent
Processing international payroll on time
Staying compliant with employment & tax laws abroad
The natural expectation for a user is that "more is more". If you pay for the premium, you get more features. You may not need all of them, but surely, they can't hurt you? In the product documentation, the page Advanced capabilities with premium plans in Planner lists several useful looking project management capabilities. It doesn't mention that choosing a premium version would give you less of anything.
When you have both Basic and Premium plans in your My Tasks view in Planner, it soon becomes obvious that advanced features introduce a layer of complexity. Many of the task columns are locked from editing in your Premium plans and instead require navigating away from the tasks grid. Using simple due date concepts is no longer available, now you have to define start and end dates like a proper project manager (so that a Gantt chart timeline may be produced, whether you need it or not).
Viewing tasks from Premium plans vs. Basic plans under My Tasks.
Embedding plans into other Microsoft 365 tools becomes more limited. Want to include a plan on your team's SharePoint site? Sorry, only Basic plans can be embedded here. Same for modern tools like Loop. Yes, you see the option to add Planner. No, it does not mean you could add a Premium plan here. These and other differences between Basic vs Premium Plans have been listed in a comparison table in Microsoft’s documentation.
Where it gets seriously messy is on the automation side. This is the counterintuitive part for users. Naturally, one would assume that if you're using Premium features for project management, the need for establishing automated processes is higher. In practice, though, the act of automating task creation is incredibly complex if you've chosen Premium plan instead of a Basic plan.
In Planner Basic plans, to create a task, all you need is to call the dedicated connector in a cloud flow:
Creating a Planner Basic plan task with Power Automate cloud flow
In Planner Premium, you have no connector. No, the Planner connector in Power Platform doesn't support all plan types! You fool! What did you expect?!?😝
There is Microsoft Graph API support for reading Premium data (GET). When it comes to updates (POST), no support exists today. There are many threads in the Planner tech community where users are asking why Power Automate support goes missing the minute they upgrade from Basic to Premium plans. Everyone has concluded that it’s simply not possible to insert or update data into Premium plans.
Luckily, they are wrong.
What it takes to automate Planner Premium plans
Using Power Automate cloud flows on Premium plans is technically possible today. It’s just impossible to figure it out unless you know the dark history of the product offering that today is called Microsoft Planner. We need to think this through, step by step, using the information we have collected about the evolution of Microsoft’s project management software. Let’s try:
Microsoft Planner Premium plans used to be Microsoft Project for the Web projects.
Project for the Web was built on top of Microsoft Dataverse (earlier CDS, Common Data Service).
Project for the Web replaced Project Online that was built on top of SharePoint.
Both services have used the same core scheduling engine that runs on the MS Project Windows client application.
There must be a place where this scheduling magic happens in the cloud.
That place is the Project Schedule APIs. Naturally, today the documentation is found under the MS Learn pages of Dynamics 365 Project Operations! Let’s not even open the can of worms that is Project Service Automation (PSA) evolution to ProjOps and the CRM/ERP boundaries or we’ll never reach the end of this post.😅
Mr. ProjOps and Microsoft MVP Antti Pajunen has an excruciatingly detailed blog post about the topic: Project Operations and Project for the web: Schedule API guide for Power Automate users. You’ll find all the dirty details in there. I want to quote the important bit here, just in case the original post would ever go missing from the web:
“Scheduling tables can’t be updated directly in Dataverse so the APIs were created as a means of executing CUD (create, update, delete) operations against Project Scheduling Service (PSS), which is the Azure Service React hosted scheduling engine for Project for the web.”
…
“So what is Project in Project for the web then? That’s a good question. The Calculation Service reliable actor instance hosts winproj.exe. That’s why we’re able to use .MPP files with vanilla Project for the web. Some capabilities aren’t available in Project for the web, and that’s why schedules in the Project desktop app have richer features. As winproj.exe is behind it all in Project for the web, it’s possible the product team introduces more capabilities to Project for the web down the line.”
There we have the explanation for the mystery! There’s a version of the Microsoft Project executable running in the cloud, providing the same scheduling capabilities as the Windows PC client of MS Project. Apparently, the scheduling engine of MS Project is such a secret sauce that refactoring it as a cloud service available to web clients hasn’t been feasible for MS to perform. Of course, given that it’s behind an API, they could potentially do that later. For now, let’s just celebrate the legacy of great software by looking at the UI of the 1992 version 3.0 of winproj.exe:
Alright, back to the year 2024. The architecture of how Dataverse based plan and task details align with the Project Scheduling Service is not that difficult to understand on a high level. I’m only going to reference this image linked from the MS Learn pages, to illustrate what’s behind the Project Schedule APIs:
In short, we cannot directly insert and modify project (plan) related data in Dataverse. The scheduling engine is what must do this, to ensure the complex logic of project task schedules don’t get broken. In Power Automate, we talk with PSS via the Dataverse connector and several “perform an unbound action” steps:
Create an operation set (empty collection) with “msdyn_CreateOperationSetV1”.
Create one or more operations (like creating and updating tasks) into the set with “msdyn_PssCreateV1”.
Run the operation set with “msdyn_ExecuteOperationSetV1”.
Complete the set by calling “msdyn_AbandonOperationSetV1”.
Creating a Planner Premium plan task with Power Automate cloud flow
Have a look at this great blog post by Leoza Kabir Barker called Power Automate: Create Project Tasks directly into Project for the Web. It contains the details that apply also the Planner, now that Project for the Web has been rebranded.
Will Planner Premium plan users always need to jump through these PSS hoops? It’s hard to say. Microsoft Dataverse data is not available via Microsoft Graph and I’m not sure if it ever will be. Whether the basic scenarios for Planner usage can be made available via a simplified “New Planner” connector that abstracts away the ERP style complexities of Project Operations - it remains to be seen.
Closing thoughts
One might look at the endlessly changing product names (and licenses) at Microsoft and think that they can’t seem to commit to anything for more than a couple of years. That’s just one side of the story, though. Compared to Google that is infamous for killing most products it launches, I believe MS shows higher maturity in the way it addresses the dilemma of ever changing tech market needs and trends combined with an existing customer base that has signed up for its services.
Rather than pulling the plug on the previous products and versions, MS usually makes an effort to offer customers a way to bring their existing data and processes along as new products are launched. Backward compatibility is a feature of Microsoft’s offering, not a bug. The more critical the business operations are where the software is applied to, the more valuable this commitment to supporting existing data is. When it comes to multi-year, multi-million project resources management done by MS customers with the help of their software, it’s understandable that one doesn’t simply get rid of the underlying scheduling logic in favor or something new and fancy every few years.
For customers who are new to the products, though, connecting the dots can be a challenge. Sometimes, you need a degree in software archaeology to make the most of Microsoft’s stack.
Reply