Recently, I was working on a leave request application for a client. They required that if the approver didn’t approve the request in time, it should be automatically approved after five days. This was to ensure that leave requests didn’t get delayed because the approver was too busy or missed the notification.
However, another requirement came: If the approver doesn’t respond in a limited time, the leave request should be automatically approved one day before the leave starts, but only if the leave is for less than four days.
In this Power Automate tutorial, I will show you how to auto approve request using Power Automate. Additionally, we will discuss how to approve requests automatically one day in advance using Power Automate delay action.
Auto Approve Request Using Power Automate
For this example, I created a SharePoint list of Employee Leave Requests using the below column and data types:
| Column Name | Data Types |
|---|---|
| Employee Name | Person or Group |
| Leave Type | Choice |
| Start Date | Date and time |
| End Date | Date and time |
| Reason for Leave | Multiple lines of text |
| Manager | Person or Group |
| Status | Choice |

Now follow the below steps:
1. Create an automated cloud flow. Give the flow name and select the trigger When an item is created. Also, provide the Site Address and List Name.

2. Now, I will add an action, ‘Start and wait for an approval‘, which will send an email when an item is created in the SharePoint list.
Next, set the below-provided parameters:
- Approval type: Select an approval type as “Approve/Reject – First to respond” from the drop-down.
- Title: Enter the title field value from the Dynamic content.
- Assigned to: Please assign the email of the person who will approve/reject the request to my case manager.
- Details: Enter the details for the requested from the Dynamic content.

3. Now, we will add the Condition action to check whether the leave request is approved or Rejected.
In this Condition action, select the Outcome (from Start and wait for an approval action) value equal to Approve.

4. Then, Add the send email action inside the true section and update item properties, as shown in the screenshot below.
Do not forget to update the Status Value as Approved.

5. Similarly, add a send email action and update item action inside the false section.

6. Return to the ‘Send and wait for an approval’ action, and click ‘Settings.’ Under ‘Action timeout,’ set it to ‘P5D’ to automatically approve the request if the approver doesn’t respond within five days.

The timeout duration is specified using the ISO 8601 format. If your requirement is:
- 1 week -> use P1W
- 10 days -> use P10D
- 5 hours -> use PT5H
- 45 minutes -> use PT45M
To learn more about the ISO 8601 format, Click here to visit Wikipedia.
7. Then, after the ‘Send and wait for an approval action‘ click the + icon and click Add a parallel branch.

8. Next, add an email action, which sends mail to the requester stating that your request is automatically approved.

9. Next, select the ‘Send an email’ action, click ‘Settings,’ then under ‘Run after,’ expand the ‘Start and wait for an approval’ section and check ‘Has timed out.’
This runs if the Start and Wait for an approval action has timed out.

10. Now add an updated item action and provide the below parameter:
- Site Address: Select your SharePoint site address where the list is present
- List Name: Select the list name from the dropdown
- ID: Pass the ID from the dynamic content value.
- Status Value: Select Auto Approved from the drop-down

11. Then add a ‘Terminate’ action and set the status to ‘Succeeded.’ If you don’t use this action, the flow status will show as ‘Failed’ after the timeout section runs.

Now, our flow is complete. For testing purposes, I changed the ‘Send and wait for an approval’ action timeout to ‘PT5M’.

If the approver is not approved within 5 minutes, that request must be auto-approved.
Run the Flow to Auto Approve the Approval Request
Now click on Save and run the Flow manually. Once the flow runs, add an item to the SharePoint list.

Now, do not approve the request. After five minutes, the flow runs successfully.

After that, the requester receives an email like the screenshot below.

Auto Approve Request in Power Automate Using Delay Action
In this example, I will show you how to automatically approve an approval request in Power Automate using the delay action.
We will use the same SharePoint list (Employee Leave Requests) and the same flow, but I highly recommend making a copy before proceeding. After that, delete steps 8 to 10 in the above flow.
Now, follow the steps below:
1. In that flow, we did not calculate the leave days, but now we need to calculate so before the ‘Send and wait for an approval action‘ add a compose action and provide the below expression:
div(sub(ticks(triggerBody()?['EndDate']),ticks(triggerBody()?['StartDate'])),864000000000)Where:
- ticks(triggerBody()?[‘EndDate’]): This converts the EndDate to ticks.
- ticks(triggerBody()?[‘StartDate’]): This does the same for the StartDate.
- sub(…): This subtracts the ticks of StartDate from the ticks of EndDate to get the difference in ticks.
- div(…, 864000000000): This divides the difference in ticks by 864,000,000,000, which is the number of ticks in a day, converting the result to days.

2. Next, add another compose action to the below expression, which gives us a day, like how many days are left to leave.
div(sub(ticks(triggerBody()?['StartDate']),ticks(utcNow())),864000000000)I named ‘Compose | Days until leave Start‘ to differentiate the two composed actions.

3. Then, after the ‘Compose action,’ click the + icon and click Add a parallel branch. Inside the parallel branch, add a condition action check to see if the output composes (which gives us a number of leave days) action is less than or equal to 4.

4. Inside the true section, add a delay action and provide the count parameters as below expression:
sub(outputs('Compose_|_Days_until_leave_Start'),1)Next, select the unit parameters as day from the drop-down menu.

5. Next, add an email action that sends an email to the requester stating that your request is automatically approved.

6. After that, add an updated item action and provide the below parameter:
- Site Address: Select your SharePoint site address where the list is present
- List Name: Select the list name from the dropdown
- ID: Pass the ID from the dynamic content value.
- Status Value: Select Auto Approved from the drop-down

7. Then add a ‘Terminate’ action and set the status to ‘Succeeded.’

Our flow is complete now. For testing purposes, I changed the delay action count parameter to 5 and the unit to Minute.

This means that 5 minutes after submitting the request, it should be automatically approved.
Run the Flow to Auto Approve the Approval Request using Delay Action
Now click on Save and run the Flow manually. Once the flow runs, add an item to the SharePoint list.

Do not approve the request now. After five minutes, the flow will run successfully.

After that, the requester receives an email like the screenshot below.

I hope you follow all the steps to set up an auto-approve approval process for leave requests using Power Automate. Implementing this lets you ensure that requests are handled quickly, even if the approver is busy.
Related Power Automate tutorials:
- Send Approval Requests to Multiple Approvers Using Power Automate
- Restore Deleted Flow in Power Automate
- Create Custom Response Options for Approval Flows in Power Automate
- Send an Approval Request With an Attachment Using Power Automate

Preeti Sahu is an expert in Power Apps and has over six years of experience working with SharePoint Online and the Power Platform. She is the co-author of Microsoft Power Platform: A Deep Dive book. As a Power Platform developer, she has worked on developing various tools using Power Apps and Power Automate. She also makes Microsoft 365 videos and shares them on YouTube.