Showing results for 
Search instead for 
Did you mean: 
Regular Visitor

Approval Rejection Cycle

Hi Everyone!

Is there a way to implement a "rejection cycle" in Microsoft Flow? I've searched the forms but can't find anything like it.

Specifically, I am trying to create an approval flow where a document is passed through multiple-approvals before being delivered to the designer. I am fine with the multi-approvals if the flow is run in a perfect case (all approve).

However, if, for example, approver #1 rejects the document (with comments), I would like approver #1 and the creator to be able to share comments back and fourth until the creator edits and resubmitts an updated document for approver #1 to approver and continue along the flow. Essentially, both the creator and approver would have to go back and fourth with comments/edited documents until they both hit 'Approve/Agree' in a way and the document can then travel onto the next approver (proofreader).

I've tried looping a lot of conditions, and do-untils, but can't seem to get anything to work and has me wondering if Flow is the right solution to automate this? I'm open to suggestions.



Accepted Solutions

ok that is a normal business case; we need state machines which is not implemented it the flow designer yet; my workaround is described in my post:


I've tested it with several customers that works well. Enjoy 😉

View solution in original post




I'm not sure I fully understand :


is it something like this ?


creator 1 create doc 1 approver 1 rejects with comments

creator 1 update doc 1 approver 1 rejects with comments

creator 1 update doc 1 approver 1 rejects with comments

creator 1 update doc 1 approver 1 approves and approval is requested to approver 2 who rejects doc1

creator 1 update doc 1 approver 2 rejects with comments

creator 1 update doc 1 approver 2 approves


kind regards


Serge Luca

Hi Serge,


Yes, kind of like what you wrote out! Essentially if an approver rejects a document, I don't want the Flow to end, but I want the creator to be able to edit the document and keep the Flow going.


Imagine there are 2 people that need to approve my document (e.g. a proofreader, and designer).


When I create a item in my SharePoint list and link to my document in SP, it emails the first approver (proofreader) to check over it and approve it. If the proofreader approves, it goes onto the designer; if the designer decides it's all good they approve it then the document is marked with final approval to go public in my SP table.


My issue is, what if the proofreader or designer finds errors so they reject and provide me with comments. I want to be able to then modify my document, then keep the Flow going onto the next step.



ok that is a normal business case; we need state machines which is not implemented it the flow designer yet; my workaround is described in my post:


I've tested it with several customers that works well. Enjoy 😉

Memorable Member
Memorable Member

Hi @viewfairli,


I was working on this similar process of approval. We had 5 levels of aprroval, where each level can aprrove/reject, so when rejected it goes back one level to fill what detail is missing in order.


So I splitted this approval workflow to separated parts. Approving starts when item is created in SharePoint list, there is updated state in column and via rest call there is invoked approving flow for level 1, then there is split by condition based on status approved/rejected to next flow or back to previous state again called with rest and again till all 5 levels are approved. In rest i post id of item in sharepoint list, where I store all neede information and current state.


Hope you catched ideas. If needed I will try to share printscreen of Flow with you.


@sergelucaOh thank you! This looks interesting. I've never used the expressions feature on Flow before but this seems like it may do the trick. Thank you for the comprehensive guide.


@vecerpaThis also sounds like what I'm working on. My question to this method is for each condition, do you have to re-do the entire flow under that condition? If it's not too much trouble sharing a prnit screen, it would be helpful!


Thank you both for your advice. I will look at both these methods and give them a try today.

I've tried implementing this and it works quite well! My only issue is the last part of the blog post, where BOSS can redirect the approval to anyone by typing their name in the comment box followed by their comment.


I can't seem to get 'VAL       This is a comment' to goTo VAL in the switch. I set it so that if BOSS does not Approve, Set goTo as Comments. Could you share how you handled that last state?

First you need to parse the comments approval;

if I store a variable containing a comment staring with 'val' like here, see how I can grab the value

now if the value is 'val', you just need to store 'VAL' in the goto variable and you will be redirected in the VAL state.


Hi sergeluca


I have been asked to investigate MS Flows for automating some of our internal processes that involve the review and approval from members in various departments. As a full process there are a number of different steps but on a simple level, and one I would like to test for presentation to our senior mangers, your blog example meets the creiteria. 


Unfortunatety, IT is not my area of experitse so please forgive my questions (i had to ggoogle state machines to get past your blog title! Smiley Happy)


In image 1:

What is the step above 'Initialize Variable Approved'? Is this the 'when an item is created' in SharePoint trigger?


When adding a new step on my flow, i only get the option to chose 'Initialize Variable'. On your image 1 you have three different steps: 'Initialize Variable Approved', 'Initialize Variable ComesFrom' and 'Initialize Variable GoTo'. How do I get these?


Assuming I start with the 'initialize variable' step, should the type remain as Boolean?




@sergelucaThank you. Your suggestion was the solution for a foundation to the scaled-up flow I am building. Thanks for sharing your knowledge!


@TBuddlePerhaps Serge can shed some light if I'm wrong as I'm not an expert in Flow, but from my understanding the three initialize variable steps are simply declaring the variables (akin to declaring global variables if you were say, programming). Their purpose is to create the varabile and simply have them exist so you can later choose from these variables when you go to set them.


As for the 'Initialize Variable Approved' and such, this is just renaming the action for organization. You can do this by selecting the options 3 dots on the actions and selecting 'Rename'.


As for the type of variable, I used strings.

Helpful resources

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

May UG Leader Call Carousel 768x460.png

June User Group Leader Call

Join us on June 28 for our monthly User Group leader call!

MPA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

Learn to digitize and optimize business processes and connect all your applications to share data in real time.

Power Automate Designer Feedback_carousel.jpg

Help make Flow Design easier

Are you new to designing flows? What is your biggest struggle with Power Automate Designer? Help us make it more user friendly!

Top Solution Authors
Top Kudoed Authors
Users online (4,063)