web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Approval Workflow for ...
Power Automate
Suggested Answer

Approval Workflow for SharePoint Item

(1) ShareShare
ReportReport
Posted on by 44
Hello.  I have a Power Automate flow that is used to send an Item in a SharePoint List to a group of approvers for approval or rejection.  Below are some screenshots of the flow, which works fairly flawlessly.  I've made adjustments to the flow to append each response so that, if someone initially rejects an Item and then later approves it, it will show both the rejection and the approval.
 
The issue I'm running into is the 28-day run timeline.  I'd had one individual that didn't respond within 28 days, which failed the entire flow.  Luckily I caught it and manually copied and pasted the responses already received on the appropriate field in the Item.  I then sent the approval to this one individual again and his individual response was appended to the table.
 
Is there a step or so that I could add to the flow (or perhaps reorganize the existing steps in the flow) so that each individual response would be recorded on the field on the List as they're received, rather than populating them all at the end?  This is an "all must approve" flow so I still need to have a determination at the end whether the Item is approved or rejected.
 
Happy to provide expanded screenshots of any of the steps below that would be helpful.
 
Categories:
I have the same question (0)
  • Suggested answer
    Michael E. Gernaey Profile Picture
    53,452 Super User 2025 Season 2 on at
     
    It depends as there are more questions I would ask versus that.
     
    1. For the people (as it could be more than 1) that do not respond, do you plan to manually send to them again later? Thats a much bigger issue to fix and should be done later
     
    2. if the flow failed out, it seems like you missed many more steps than simply capturing who approved.
     
    But let me give you a solution that will capture the people, it will STILL need to be checked if it fails or not
     
    You need to add a Try catch block around your wait for approval.
    The point to this would be that your flow would look like
     
    Scope (renamed Try)
    inside will be your wait
    Next, in parallel are 2 scopes
    Catch and Success
    Set the RunAfter for Catch to Skipped/Error/TimedOut which will now catch when your Wait for Approval times out
    Set the RunAfter for Success to Success
     
    In the Success Side, put all the rest of your code
    In the Catch side, grab the data that has the list of responses already
    Send yourself an Email (or whomever) that the flow failed and you could even include a Table of all the people who approved/responded already
    Use that to populate the Field you want to populate
    Then do a Terminate with a Failed Action
     
    I would suggest, maybe even creating an Approval Status List, that you could write a row for every approval, that also tracks whom didn't respond yet and who did, just for you to be able to grab the data from there versus the flow itself.
     
    If this helps resolve your issue please mark the answer as such and maybe a like.
     
    Cheers
     
  • WillPage Profile Picture
    2,307 Super User 2025 Season 2 on at
    You can set the timeout of the approval action in the action settings then have a run after branch to handle that. Set it to P3D or P5D for 3 days or 5 days, rather than wait 4 weeks for a response.

    I find people tend to ignore approvals, especially executive "big picture" types who never read their emails and may feel like such operational minutiae are beneath them, so I make the approval an opportunity to veto something and if they ignore it or refuse to engage, make the timeout an implicit approval.
  • KB-20091245-0 Profile Picture
    44 on at
    Thanks for the responses, @WillPage and @Michael E. Gernaey.
     
    @WillPage normally, my mind set is exactly the same as yours.  I will take silence as agreement.  In this case, I am not the one who needs to seek approval, nor do I babysit these requests to make sure we get a response.  It is up to the requester to seek the approval and babysit.  If the request has been on hold for 6 months and we still haven't gotten approval, it will be closed.  So, in this case, I require a response.
     
    @Michael E. Gernaey Admittedly, I am a Power Automate amateur.  And not at all familiar with coding, programming, etc.  That said, I tried what you mention below and I'm clearly doing something wrong.  If you're able to provide screenshots of what it should look like, I would appreciate it.  Though I understand if you don't have the time (or perhaps patience) to do so.
  • Tomac Profile Picture
    3,953 Moderator on at
    Power Automate has a hard limit of 28 days runtime for a flow, so even with the other solution provided you'll still timeout and fail at that point. It's best to set a policy of less than 28 days for approvals to be submitted, otherwise you have to do some MUCH more advanced programming within Power Automate and SharePoint to get long term approvals working.
     
    Essentially you'd be building your own approvals system and polling for outstanding approvals at a regular interval, sending reminder messages at X instances of the polling window. This method also gets around the issue of running an approvals process in a non-default environment without giving the approvers access to said environment.
     
    I've had to build this solution at my job, it's neither fun nor easy. I strongly recommend setting your internal approvals policy to 25 days and setting the expiry for the approval period to P25D.
  • KB-20091245-0 Profile Picture
    44 on at
    Just another thought I had (embarrassed to admit this didn't occur to me until just now), could I add a step in the flow to default any responses not received by, say, P27D to "No response"?  In my mind, this would allow the flow to be successful within the 28-day window, provide a record that a response wasn't received by a certain person(s) and, by appending any future responses to the existing table (which is in my flow today), would allow me to send individual approvals again to those that didn't respond.
     
    Theoretically it would look like this on day 27, with me sending the approval back to John Doe on 7/15--which he then approved. 
    Joe Schmoe     Approved     07/05/2025
    Jane Doe         Approved     07/07/2025
    John Doe        No response 07/10/2025
    John Doe        Approved     07/15/2025
     
    I've tested the appending in my existing flow and it does work like this, so it's really a matter of defaulting the status to no responses to "No response" on P27D.
  • Suggested answer
    Tomac Profile Picture
    3,953 Moderator on at
    You would use Configure Run After to handle timeout actions:
     
    Click the menu button on the action you want to configure as the error condition and choose Configure Run After:
     
    Then uncheck "is successful" and check "has timed out"
     
    Note that you need to set this as a parallel path so if the approval succeeds, the flow processes as normal. This second path will only execute if the approval times out. If you want common action to run regardless of outcome, collapse the parallel paths afterward.
  • David_MA Profile Picture
    12,982 Super User 2025 Season 2 on at
    I see several options in the posts, but if none of those will work for you, I have a method that allows an unlimited time for the approvals to be returned. However, it is difficult to explain how to set this up, especially in this forum. And there are a couple of issue, which is that you cannot send reminders as you are currently doing in your flow. There is probably a way to set up reminders with my method, but I have not yet figured out how.
     
    A brief summary of the method:
    • When the flow runs, it needs to run and end without waiting. You would use the Create an approval action like you have, but that would be the last action based on what I see in your flow.
    • You create another flow that triggers when a Dataverse row is added, modified or deleted.
    • This is where it gets complicated in how to set this up.
    • I've only implemented this in one solution so far, which was created last November. However, it has been working fine without issues except for one.
      • If the related item is deleted before the final outcome of the approval is done, then the flow that triggers when the approval is completed will fail if you don't account for this.
      • This can cause some confusion among the participants.
  • Tomac Profile Picture
    3,953 Moderator on at
     
    I like the logic you've presented, and have a suggestion for adding reminders:
     
    You could have a dedicated Reminders flow that runs on a recurrence trigger at a set interval (say, Mondays at 10am) and queries the Dataverse table for missing approvals and sends the reminders as necessary. This would probably be the least complicated flow in the structure you've described, but could be a single babysitter flow for all long-approval processes.
     
    You're already running a two flow solution for long approvals, why not add a third into the mix? 

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Automate

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 525 Super User 2025 Season 2

#2
Tomac Profile Picture

Tomac 324 Moderator

#3
abm abm Profile Picture

abm abm 232 Most Valuable Professional

Last 30 days Overall leaderboard