top of page

Challenge 024 | Approvals Kit

Last month a new kit from the Power CAT team was introduced, called Approvals kit. Many of their products are highly valued, so enough reason for me to check it's potential during the available time at the year end. It's more of a review this time where I share my findings, but I am curious what you think about the kit and what it can do to your scenarios.

Challenge Objectives

🎯 Learn about the Approvals kit

🎯 What is good and what can be improved

🎯 Think about ways how an approval process can be improved from a technical perspective

Introduction

What is the Approvals kit?

In every business, approvals are a key aspect of the organizational structure. If you book a business trip or want to buy a new laptop, it almost always involves some form of approval. The approvals connector and apps as we know it has been around for years now and is a core feature of Power Automate. This connector is great for rather simple and straightforward approval scenarios.

The more complex approval scenarios is what the Approvals kit focuses on, with delegating the approval due to part-time work or annual leave being the most striking one. A feature that some other software venders have solutions for, which I presume is why the Power CAT team wanted to show that the Power Platform can deliver on this feature too.

This Microsoft Learn page shows what the differences are between the two. We will dive into these features more in the rest of this challenge. In a nutshell, the advantage of the Approvals connector is that it requires no manual deployment, no app registration, and no additional licenses. The approvals kit has the advantage of multi stage approvals and delegation of approvals without some Power Automate trickery.

Let's install the Approvals kit to see what it has to offer to determine if and when we will opt for this new kit.

Approvals kit

Installation

There is a Microsoft Learn page that guides you through the installation of the Approvals kit, so no need for me to explain this. At the time of writing, a custom page in the model-driven app did not work as expected. This issue might be already resolved by the time you read this, but you can check this issue if that is the case. If not, how to resolve it is explained in this comment.

Approvals kit workshop

Microsoft has created a workshop to get familiar with the Approvals kit. Again no need for me to guide you through already available instructions.

This delegation at the very last step of the workshop is what this kit is all about in my opinion. From here on we will learn a bit more details of this kit.

Public Holidays & Holiday Calendar

If you open the Business Approval Management app you can see in the bottom left that there are three areas in the app. In the Setup area you can add Public Holidays and combine these into different Holiday Calendars. This is a nice feature for multinationals with different public holidays. Just to give an example, in the Netherlands we have 2 days of Christmas, in the UK this is called Boxing Day and in the US they stick to just one day.

You can then create multiple work profiles for your workforce. Not only public holidays differ across countries, but also work weeks. Many countries have a 5 day workweek from Monday to Friday, but some countries have a 6 day work week (India) or work from Saturday to Wednesday (Iran). Some companies have a 4 x 9 workweek from Monday to Thursday. All the different options can be set in Work Profiles, which an approver can select in the basic settings.

These settings can be taken into account in the approval workflows node. In the workshop you have set the Delegation Rule to Out of Office, which would route the approval to the delegated person in the initial approver is out of office. The Time-out option lets you route to the delegated person once a certain amount of days have past. Here you can select Actual Days of Business Days. The Business Days option takes the work profile and holidays into account. Technically this is done by a Time0out Counter field which the BACore | Daily | Calculate Approval Timeouts flow will decrement according to the settings and will be delegated when reached 0 by BACore | Approval Time-out.

My finding

Things that are great

The idea of delegating the approval in case a person is out of office or haven't replied in time is something that is quite important in any approval scenario. The core approval functionality is great for happy flows, but I cannot recall how many times a flow just timed out because the approver didn't reply. The kit absolutely makes me think how we can make this product a better experience, both for the approver, the maker, and the outcome of the business process itself.

Easy to improve

The current version of the solution requires you to administer your work hours and out of office. The majority of business employees in the Microsoft eco-system will do this in Outlook. After a quick search using the Graph explorer, I found out that we can retrieve both of these data points from Graph with an API call.

This has been communicated already, but I think this is essential to make this solution get traction. The delegation feature is in my opinion it's key selling point. I just don't think that people will remember that they will have to set their Out of Office in another system, or update their working days when someone working part-time switches days. This will result in expected added value from the kit that will not be delivered. As the kit already requites an app registration, I think it can be a quick fix to get the information from Graph.

As this Approvals kit aims for the more complex approval scenarios, I think it might be interesting to be able to set up workflow specific delegations. In the current solution you can set the delegated approver, but this will apply to every workflow. Because of this generic setting, I think this will almost always be your manager, which can be easily be recreated in a simple Power Automate flow.

Other findings

Over-engineering | Business days

The way the delegation kicks in based on the time-out with the holidays taken into account feel a bit over-engineered. In many cases it is just one extra day, which I think won't lead to extreme issues in most scenarios. Administering the Holiday Calendar and keeping it up-to-date, creates more dependencies than I think are necessary.

Over-engineering | Staging

As you've seen from the workshop, you can create multiple stages. This is quite self-explaining, as every stage will contain some type of approval that you can stack together. With an if/else or switch function you can determine who should be the approver, or skip some stages.

This is pretty cool functionality, although I think it is again a bit too much for actual use cases. The majority of approval flows will have one or two approvals, that's it. It might happen that more than two approvals are required for a business scenario. To me that sounds like it is a really important business process where probably something more than just a yes/no with a simple comment will be required.

Versioning issues

The versioning of the workflow is another point of attention. Kicking off the approval is done by a flow created by the business. The actual approval steps itself are managed in this Approvals kit. The idea of centrally managing these approvals and let line-of-business specialists implement them creates another dependency. This also feels a bit over-engineered. The majority of these type of makers will not think about these delegation issues upfront. Nurturing them can help overcome this. But what happens when you need to update the workflow? From the Approvals kit admin perspective, you don't know exactly which business process uses the workflow. Updating it could lead to unwanted results or even to breaking flows if you add some mandatory variables. very tricky I would say. A mechanism like updating components would be the better option here I would say, but hard to implement. I haven't figured out what a good working alternative for this would be.

Core functionality

Many kits created by the Power CAT team contain functionality that eventually tickles down to core product functionality. Creator Kit to modern controls, ALM Accelerator to managed environment pipelines, etc. I hope that will happen with this kit as well. As you might get from my findings, I wouldn't recommend it yet to adopt it big in your organization. But there is great functionality here that would make the approvals as we know much better. Getting the Out-of-Office delegation functionality to the product we know would be amazing. For a first version I think the manager known in Entra ID (Azure AD) would already be a great improvement for the current product.

Additional Information

The version that I've tested is only the second and third release of the kit. Many thing can improve in the coming releases.

There is a monthly Office Hours for the Approvals Kit where you can learn about new features, the roadmap for this kit and ask questions.

Key Takeaways

👉🏻 Approvals kit is great at delegating approvals

👉🏻 It has some real potential, but is not recommended yet

👉🏻 Everyone can give input to make the kit better, which will eventually lead to better core functionality

bottom of page