How to implement an Absence tracking and approval system with SharePoint and PowerApps – Part 1

Let me walk you through a complete process for implementing an absence tracking and approval system. It’s a common request and every company needs a solution like this.

I’ll split this tutorial in three parts:

  • Part 1 – Solution Architecture, setting up the Team, setting up the Shared Mailbox and making the Shared Mailbox available within Power Automate
  • Part 2 – Preparing the SharePoint site, Lists with calculated fields, setting up the permissions, adding the list to Teams
  • Part 3 – Preparing the automation for handling new requests, preparing the automation for handling cancellations

The goal of this solution is to make the holiday request process paperless, and automated. Because we live in 2023, it’s only fair to stop sending around Word documents (or even paper letters) and have a system to run the process for us.

Let’s take a look at what we are building:

Employees will submit their requests in a common location inside Microsoft Teams. Automation will take care of notifying the managers and collecting their approvals. The system will automatically prepare shared calendar events to keep track of upcoming absences.

The solution should also allow the HR department to see all requests in a single place and keep track of remaining allocations effortlessly.

The data will be stored in a SharePoint list. We’ll customise the form with a Canvas app. The automation will be implemented in Microsoft PowerAutomate using the OOTB Approvals functionality. The emails and calendar requests will be sent through a shared mailbox.

Security is an important aspect here as well. We need to make sure that each user only sees their own requests. Only HR department and the administrator may see all requests and the Absence Days Ledger. To prevent abuse, we’ll restrict editing the requests and implement logic to cancel the requests.

Bill of materials

The solution contains the following parts:

  • The HR Team in Teams – where the SharePoint list will reside
  • The shared mailbox – responsible for sending emails and the calendar requests
  • The SharePoint site – contains two lists:
    • Absence days ledger will store the total allocated days for each employee
    • Absence requests will store the actual requests.
  • The PowerAutomate Flow – for executing the process

To implement these steps, you’ll either need to be a system administrator or ask your administrator to perform some steps for you. You’ll also need to decide which user will run the automation. This use will need access to the shared mailbox and will be used to manage the whole solution.

We’ll implement the components in the same order. Let’s get started.

Then new Team

Let’s create a new blank public team with two channels – the General channel and the HR Private channel

The General Channel will contain the Absence request submit form and should be accessible to everyone. The HR Private channel should only be accessible by the HR department since it will contain the Absence days ledger list.

The Shared mailbox

Let’s create a new shared mailbox in Exchange.

  • Visit or directly
  • Open the Exchange admin center
  • On the left side, select “Mailboxes” then click “Add a shared mailbox”
  • Enter the basics:

You can enter whatever you’d like here. HR Events seemed like a short and sweet name to me 🙂

  • Hit “Create” and wait a bit.
  • Then select “Add users to this mailbox”
  • Select “Add Member” and select the admin user, who will run the automation, as it will need access to the mailbox. I’ll add myself here:
  • Confirm the “Delegate” permissions as well

Adding the Shared Mailbox to Outlook

We’ll use the Shared Mailbox to send emails from the Flow. If you just add the delegate permissions to the user, the mailbox won’t be available within PowerAutomate – you need to manually add it to Outlook Online.

Make sure you’re logged in with the Administrator you just added to the Shared mailbox.

Adding the Shared Mailbox to Outlook Online to make it appear in PowerAutomate
  • Enter the address of the Shared Mailbox (mine was

The Shared Mailbox should now appear on the list:

Wrapping up

That’s it for the Part 1. The other two will be up soon, be sure to check them out.

Share this article
Shareable URL
Prev Post

Debunking Dynamics CRM Myths: The Truth About ‘Quick Things.

Next Post

How to implement an Absence tracking and approval system with SharePoint and PowerApps – Part 2

Read next