cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Dr_B
Level: Powered On

Wait for field change in Lists

I have a flow, which can be manually started to send an e-mail to a supervisor, who then has to check the list item, change a value from "open" to "yes or no" (which is a drop-down field in SP) which should then afterwards start the flow again to inform the requestor if it has been either approved or rejected. If the supervisor doesn't answer until a specific date (which can be set in the list item), then a reminder should be send.
I'm new to flow, so maybe I'm missing an easy solution here. But I can't get my head around on how to fix this so that my flow waits/delays until this one property in my list item has been changed.
I've played around with the "do-while" loop or the delay action, but couldn't solve this issue.  
Thanks
Dr. B

1 ACCEPTED SOLUTION

Accepted Solutions
Community Support Team
Community Support Team

Re: Wait for field change in Lists

Hi @Dr_B,

 

Could you please share a screenshot of your flow's configuration?

Do you want to send an approval email to the supervisor?

Further, could you please show more details about your SharePoint list?

 

I have created a SharePoint list on my side and the data structure of it as below:24.JPG

Note: The ApprovalStatus column is Choice type column, the available values of it are Open, Yes and No. If ApprovalStatus column are set to yes, it means that approver approve this item, otherwise, the approver reject this item.

 

I have made a test on my side and please take a try with the following workaround:

  • Add a "For a selected item" action, specify Site Address and List Name.
  • Add a "Get item" action, specify Site Address and List Name, Id field set to ID dynamic content of the trigger.
  • Add a Parallel branch action, within left branch, add a "Send an email" action. Then add a "Do Until" action, click "Edit in advanced mode", type the following formula:
@or(equals(body('Get_item_2')?['ApprovalStatus']?['Value'], 'Yes'),equals(body('Get_item_2')?['ApprovalStatus']?['Value'], 'No'))

Click "Change limits", Count property (Default value is 60) set to empty and TimeOut property set to following formula:

P30D

Within "Do Until" action, add a "Get items 2" action, specify Site Address and List Name. Id field set to ID dynamic content of the trigger.

 

Under "Do until" action, add a "Get items 3" action, specify Site Address and List Name.Id field set to ID dynamic content of the trigger. Add a Condition, click "Edit in advanced mode", type the following formula:

@equals(body('Get_item_3')?['ApprovalStatus']?['Value'], 'Yes')

Within "If/yes" branch of Condition, add a "Send an email 2" action (Send approve notification). Within "If/no" branch of Condition, add a "Send an email 3" action (Send reject notification). Under the Condition, add a "Terminate" action, Status set to success

 

 

Within Right branch of Parallel branch action, add a "Delay Until" action, Timestamp field set to following formula:

addDays(utcNow(),1)

Note: I assume that send the reminder notification email after 1 Day.

 

Then add a "Send an email" action to send the reminder notification.

 

Image reference:25.JPG

 

26.JPG

 

27.JPG

The flow works successfully as below:28.JPG

 

 

 

Best regards,

Kris

 

 

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
6 REPLIES 6
Super User
Super User

Re: Wait for field change in Lists

While there are a number of ways of approaching this, the following Flow should meet you needs.

 

A few notes:

  • I am getting the manager of the person who started the Flow and assigning the approval to them.  You might choose a different option.
  • I am using the send email with options action and defing the options as Yes or No
  • Rather than asking the approver to update the list, I have the Flow do that after they respond
  • To send the reminder email, I start a parallel branch and wait a specified period of time before sending a reminder
  • I have a terminate statement after the approval notification email is sent.  If the email is sent before the dealy is up, the Flow will terminate.  Therefore, the reminder email will not be sent if there is no need to send it.

Please post if this solves your issue or you need additional info.

 

ApproveOptionExample.jpgApproveOptionExample1.jpg

If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Scott
Community Support Team
Community Support Team

Re: Wait for field change in Lists

Hi @Dr_B,

 

Could you please share a screenshot of your flow's configuration?

Do you want to send an approval email to the supervisor?

Further, could you please show more details about your SharePoint list?

 

I have created a SharePoint list on my side and the data structure of it as below:24.JPG

Note: The ApprovalStatus column is Choice type column, the available values of it are Open, Yes and No. If ApprovalStatus column are set to yes, it means that approver approve this item, otherwise, the approver reject this item.

 

I have made a test on my side and please take a try with the following workaround:

  • Add a "For a selected item" action, specify Site Address and List Name.
  • Add a "Get item" action, specify Site Address and List Name, Id field set to ID dynamic content of the trigger.
  • Add a Parallel branch action, within left branch, add a "Send an email" action. Then add a "Do Until" action, click "Edit in advanced mode", type the following formula:
@or(equals(body('Get_item_2')?['ApprovalStatus']?['Value'], 'Yes'),equals(body('Get_item_2')?['ApprovalStatus']?['Value'], 'No'))

Click "Change limits", Count property (Default value is 60) set to empty and TimeOut property set to following formula:

P30D

Within "Do Until" action, add a "Get items 2" action, specify Site Address and List Name. Id field set to ID dynamic content of the trigger.

 

Under "Do until" action, add a "Get items 3" action, specify Site Address and List Name.Id field set to ID dynamic content of the trigger. Add a Condition, click "Edit in advanced mode", type the following formula:

@equals(body('Get_item_3')?['ApprovalStatus']?['Value'], 'Yes')

Within "If/yes" branch of Condition, add a "Send an email 2" action (Send approve notification). Within "If/no" branch of Condition, add a "Send an email 3" action (Send reject notification). Under the Condition, add a "Terminate" action, Status set to success

 

 

Within Right branch of Parallel branch action, add a "Delay Until" action, Timestamp field set to following formula:

addDays(utcNow(),1)

Note: I assume that send the reminder notification email after 1 Day.

 

Then add a "Send an email" action to send the reminder notification.

 

Image reference:25.JPG

 

26.JPG

 

27.JPG

The flow works successfully as below:28.JPG

 

 

 

Best regards,

Kris

 

 

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Dr_B
Level: Powered On

Re: Wait for field change in Lists

Hi Kris

 

Thank you very much for your help and detailled example.
I'm unfortunately not able to share the flow for now as I have to change it up a bit.

Yes, I want to send an approval mail to a supervisoer (not direct manager) as it could always be somebody else.


I'll test the flow again with your proposed settings and get back at you as soon as I'm done.

kind regards,
Dr. B

__________________

Edit: I've created the flow as you proposed, but unfortunately the flow does not continue after the change on the list item status - I guess the "do until" loop does not work as expected. See screenshot below, any idea? Thanks and best regards
Dr. B

 

Edit (again..): I changed the field names in the "do until" function so that these are the same es the one in my list (eg. Approval Status = "Custom FieldName SP List"). But it's still not picking up the changed filed.

waituntilnotworking.png

Dr_B
Level: Powered On

Re: Wait for field change in Lists

Hi Kris

 

Everything works now as expected, thank you very much!

Is there an option to set the delay action for the reminder e-mail in the parallel branch (right) to send the email at a specific date (from the list item - there is a column formatted as "Date & Time") instead of a set amount of days?

Thanks, and best regards
Dr. B

Highlighted
Lexnnn
Level: Powered On

Re: Wait for field change in Lists

I have an approval process for list items and I wanted to send an approval email only when the status of the item changed from "Ordered" to "Ready".
 
The change of the status "Ordered" to "Ready" is an automized process so I though I would just put a "Wait until" or "Wait" function but this was not possible as the wait time is not always the same. I wanted to send an approval email from the moment it's ready so I have searched for a solution where there would be a check on a specific field. 
 
I tried using switch case or condition but there was a problem when other fields were updated and the condition was already fulfilled, it would send again an approval email:
eg item changed - Status is not "Ready" = Terminate (that's OK)
item changed - Status is "Ready" = send approval email (that's correct) but now item is changed again, other field is updated and the status is still "Ready" = approval email resent (that's not correct as it does not check what was updated" 
 
I did not want to use nested conditions or switch cases.
The solution link provided by grahampasmurf with version checking did the trick!! http://johnliu.net/blog/2018/5/microsoft-flow-sharepoint-trigger-on-specific-fields-changed-via-sp-h...
 
Thank you for that!
 
It did require some adaptation but it works!
 

flowemail1.PNGflowemail2.PNG

 

- ID can be found in "See more" Dynamic content
- SPREST-Versions is just renamed "Send HTTP request to Sharepoint"
- In the Url, if you use space or other special chars, you need to pay attention to how it's written eg space = %20
- Value is the expression from the linked website Body('SPREST-Versions')?['value']
- Orderstatus = valuefield "ValoTeamwork" is not found via Dynamic content but via Output from "Select" When I used the Dynamic content value it did not work as "Valo Teamwork" contained the actual value and was passing it throung to "GroupSiteUrl" from Dynamic content which remaind always the same.
- HTML table is not needed but usefull to debug and make sure it works correctly
- Conditions can again be found on the linked website: first(body('Select'))?['Orderstatus'] - last(body('Select'))?['Orderstatus']

 

More about approval flow 

https://powerusers.microsoft.com/t5/Using-Flows/Flow-and-SharePoint-List-Status/m-p/132299#M3532

Ruenells
Level: Powered On

Re: Wait for field change in Lists

@Lexnnn 

I am trying to get this piece of your solution to work:

- Value is the expression from the linked website Body('SPREST-Versions')?['value']

However, I am not having any success any suggestions as to what I am doing wrong?  I cannot find "Value" anywhere to put and it keeps throwing errors.

Capture.PNG

Thank you in advance.

Dorinda

Helpful resources

Announcements
firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

Power Platform 2019 Release Wave 2 Plan

Power Platform 2019 Release Wave 2 Plan

Features releasing from October 2019 through March 2020

thirdimage

Flow Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

thirdImage

New Flow Community Board!

Check out the new Microsoft Flow Community Blog Topic Suggestion board!

fourthImage

Australia Summit

Travel to Melbourne and network with thousands of peers!

fifthimage

Microsoft Learn

Learn how to build the business apps that you need

sixthImage

Power Platform World Tour

Find out where you can attend!

seventhimage

Webinars & Video Gallery

Watch & learn from the Flow Community Video Gallery!

Users Online
Currently online: 35 members 4,293 guests
Please welcome our newest community members: