Create long-running approval requests in Power Automate (override 28-days timeout)

Sending approval requests is one of the most common use cases for which Power Automate is used for. After all, the out-of-the-box connector for approvals has a limitation: if the approval request is not approved or rejected within 28 days, the action will time out and this will cause your flow to fail.

In this post, we will show you a workaround to create long-running approval requests so wave good-bye to the 28 days limitation!

Use Case

This SharePoint list records new projects, requiring management approval. Some projects need over 28 days for approval due to larger investments. If approvers do not take action on the approval request, we will resend it every 15 days.

Projects sent for approval have a “New” status.

Power Automate

Power Automate Workflow

Step 1. Add a column to flag Request status

For our use case, we will have 3 different status: Started (default value), Complete (when approver completes request), Restarted (to indicate the request was resent)
Power

Step 2. Set up your trigger

Since we need to track both new projects and restarted requests, our trigger will be “when someone creates or modifies an item.” Just select the SharePoint site and the list this trigger will be linked to. 

automate

We will need this workflow to be triggered when:

– New Projects are added to our list (ie, when item is created, when our projects are created they are created with “New” status)

– Approval request is restarted (it, when item is modified to Request status = “Restarted”, but Status of the project remains as “New“)

Now, let’s add some settings to the trigger to ensure the workflow will only run when any of the above conditions are met. We will use “trigger conditions” for this.

When we write trigger conditions on choice columns, it’s always written like this: triggerOutputs()?[‘body/{column-name}/Value

Go to the ellipsis in the trigger card and hit on “settings”

Automate Power

We need Status = “New”.

				
					@equals(triggerOutputs()?['body/Status/Value'],"New")
				
			

Write this text under “trigger conditions” and hit on “Done”

Power

Note we are applying this condition on the “Status” column – which we use for project status, not the “Request status” column

Step 3. Add Approval Actions

First, let’s add “Create an approval” action, add all the approval details and then add the “Wait for an approval” action. In this second action, just select “approval ID” variable coming from the “create an approval action”.

What this will do is to create an approval request and send it to the approver(s). After it’s sent, it will wait for approval to happen. Accordingly, while we wait, here is where we have the so-called 28 days limit. Above all, this is where the workaround starts.

Long-Running Approval Power Automate

Step 4. Modify “wait for an approval” time out attribute.

Use the action’s ellipsis and then click on the “Settings action”

Settings Action

We will update the “timeout” field.

Process Automation Services

The value you write here will depend on your process needs, but let’s suppose we want to resend the approval request to our approvers every 15 days. Accordingly, we will write P15D (just make sure this value is less than 28 days). Afterward, just click on “Done.”

P15D Approval Request

Step 5. Create a branch

Right after the “wait for an approval” action, add two parallel actions, as shown below. Accordingly, on the left side, we will have a condition, and on the right side, we will have the “Update item” SharePoint action

 


Step 6. Define what your workflow will do if action is approved or rejected

For our use case, we will just update the project status in the SharePoint list, we will also update request status to “complete”. This will be in the left side brach.



Step 8. Define what your workflow will do if action is not taken on the approval request

The “Update item” action should look like below, make sure the column you added at the beginning to flag restarted request is set as “Restarted



On the right side of the branches, use the ellipsis to update the “configure run after” value.

Make sure you update the checkboxes to look as below:

Set Variable to Completed

After you click on Done, this is how branches should look:

What this will do is:

  • If the approval request is completed within 15 days, it will follow the left path (where we set the project as approved). 
  • If the approval request is not completed within 15 days, the “wait for approval” action will time out and go to the right side of the workflow. This will make the request to be restarted and resent to the approver

Step 9. Cancel approval request before the next one is sent.

This step is kind of optional because a new request will be sent regardless if you cancel the previous ones or not. After all, leaving open requests can cause issues or confusion for the approver if they find older emails regarding requests which have already timed out. Accordingly, it’s recommended to add this action in Power Automate to cancel any request that is older than 15 days.

All approvals data is stored in Dataverse, so we will need a Dataverse action for this – so note that if you add this step, your Power Automate flow will become premium (hence, a license will be required – you can read our guide on licensing here).

Look for the “Update a row” action and set it up as follows:

  • Select “Approvals” as table name
  • Row ID = Select “approval ID” from the “create an approval” action.
  • Stage = Complete
  • Status Reason = Canceled
  • Status = Inactive.

Dataverse action should look like this:

It should be added right after the “update item” action, on the right branch of our workflow.

Step 10. Test your Workflow and See Magic Happen!

This is how the final flow should look:

 

If you want to test faster, you can accordingly change the “wait for an approval” timeout setup to something like PT5M – for it to timeout after 5 minutes. This way, you will be able to test faster and make sure your requests are being completed, re-sent, and canceled properly.

PT5M Set Up

This is how canceled requests will look:

Power automate approval workflows

All set! Now you can have your approval workflows run for over 28 days!