cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
anabananei
Resolver I
Resolver I

All send email actions trigger when item is modified

Hello Guys,

 

I'm just new to Sharepoint and Flow and honestly, I have zero background in excel codings, logic, formulas, etc. (I'm not an IT guy). But I have been interested with automation which enhances processes and handoffs in the nature of my work.

 

So I created a list in sharepoint and I used the "When a new item is created or modified"

 

My list contains the following column:

Name: Single line of text, required field

Request Type: Single line of text, required field

Assinged to: Choice

Date Started: Date

Date Completed: Date

Status: Choice

 

So what I did with my workflow is, when a new item is created, it automatically sends an email to admin and fill up the status field to For Acceptance. Then the recepeint of the email edits the list and assigns to appropriate user and triggers the flow updates the item field status to Accepted and sends a new email informing that the request has been assigned. Once the task has been assigned, assigned user edits the date started then flow updates the status to In Progress. Once the user is done, he/she populates the Date completed and flow will trigger to update the status to Completed and send an email to the requestor that the request has been completed.

 

Problem:

Everytime the list item is modified, it triggers all the email actions, meaning if I enter data in Date completed, it sends email 1, 2, and 3. What more is that sometimes I receive 40+ emails. Im quessing because the action "Update an item", I have to populate the required fields which could have triggered "send an email" action multiple times (my original list has 6 required fields and 3 "update an item" action). 

 

I have attached my sample list I created and the its behaviour whenever I update an item. Sorry, I'm not in the office yet and I do not have access to the site in my personal computer. Kindly help me on this one.

 

Thank you,

anabananei

 

 

Screen Shot 2018-06-04 at 8.32.29 PM.png

 

 

 

 

 

  

1 ACCEPTED SOLUTION

Accepted Solutions
anabananei
Resolver I
Resolver I

Workaround that I did as I don't have a concrete solution as of now. The only way to do it is to triger the flow manually by using "For a selected item". I achieved this on a SharePoint list. I have a button that when I click it, it does lots of things including sending of email. ANd the good news is that, whoever ticked the button, he/she will be the sender of email. Just make sure to include the persons you want to be as a flow owner. There is also a way to include a button in SharePoint Library. I haven't tried it but I'm planning to.

 

Here is the reference link for the buttons in SharePoint: https://wonderlaura.com/2018/07/18/button-in-sharepoint-list-to-trigger-microsoft-flow/

 

I tweaked several codes there so I could replace buttons everytime I click a certain button to perform a certain task. My SharePoint list has three buttons, each with different assigned flows that are placed in the same column. After I ticked the first button, the first flow will trigger and once certain conditions are met, it will dissappear and is repalced by the 2nd button which have a different flow until it gets to my third button. (My buttons include Assign, Start, Submit).

 

Let me know if you need any help.

 

Thanks!

View solution in original post

10 REPLIES 10
ScottShearer
Super User III
Super User III

Can you post a screen shot of your Flow?  That will make it much easier to assist.

 

Scott

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

Scott

Hi Scott,

 

Thank you very much for your reply. Below is the flow I made. I know something is wrong but I just can't figure it out. And since I am using the "When an item is created or modified" the triggers for item created might also trigger when the item is modified. Is there a way to stop a certain action when condition is met. I tried using a switch case but I cannot figure out how to enter the value for the Case especially if the value I will be using is a choice or a date. 

 

Flow should be:

New item created in list > Auto update status to For Acceptance > Send email notification to admin > admin edit list and assigns it to a user > Auto update Status to accepted > assigned user edit list and enter Date started > Auto updates the status to In Progress > assigned user edit list and enter date completed > auto update status to completed and send completion email to requestor.

 

 

 

Flow OverviewFlow OverviewPart 2.jpgPart 3.jpgPart 4.jpg

To stop the Flow from from running when the item is modified, immediately after the trigger, have an if statement that compares the created and modified columns,  If they are not the same, exit the Flow with a control terminate action.

 

Can you be more specific about what isn't working properly?

 

Scott

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

Scott

Actually, every all email actions are triggered when I update a certain item. Maybe because I'm lacking the terminate control. The problem is that I don't know how to do it yet, and also how to formulate my If statement. If you could give me an example, I could figure it out.

 

Also, by looking at my flow, is it okay to have 3 consecutive decisions? I tried using switch case but I have trouble populating the "Case equals" value since my "Switch On" value is a Dynamic content choice. Is there a way to fill this field by using the Dynamic content "Assigned to Value"?

 

Ana

part 5.jpg

v-xida-msft
Community Support
Community Support

Hi @anabananei,

 

I think your issue is related to the trigger of your flow. The "When an item is created or modified" trigger would be fired when a new item is created or an existing item is modified. The "Update item" actions within your flow would fire the trigger again. So your flow would be trapped into a infinite loop.

 

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

  • Add a "When an item is created" trigger, specify Site Address and List Name.
  • Add a "Update item" action, Status Value field set to For Acceptance.
  • Add a "Send an email" action, To field set to Created By Email dynamic content of the trigger. 
  • Add a "Do Until" action, click "Edit in advanced mode", type the following formula:
@not(empty(body('Get_item')?['Assigned_x0020_to']))

The Count property set to empty and Timeout property set to P30D.

 

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

 

  • Under "Do Until" action, add a "Update item 2" action, Status Value field set to Accepted.
  • Add a "Send an email 2" action, To field set to email address of the Assigned user. 
  • Add a "Do Until 2" action, click "Edit in advanced mode", type the following formula:
@not(empty(body('Get_item_2')?['Date_x0020_Started']))

The Count property set to empty and Timeout property set to P30D.

 

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

 

  • Under "Do Until 2" action, add a "Update item 3" action, Status Value field set to In Progress.
  • Add a "Do Until 3" action, click "Edit in advanced mode", type the following formula:
@not(empty(body('Get_item_3')?['Date_x0020_Completed']))

The Count property set to empty and Timeout property set to P30D.

 

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

 

  • Under "Do Until 3" action, add a "Update item 4" action, Status Value field set to Completed.
  • Add a "Send an email 3" action (Completed notification email), To field set to Created By Email dynamic content of the trigger.

Image reference:15.JPG

 

16.JPG

 

17.JPG

 

18.JPG

 

19.JPG

 

20.JPG

The flow works successfully as below:21.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.

Hi Kris,

 

Thank you for your suggestion. I tried to recreate your flow and I received an error when I left the value for Count as blank. The error are as follow:

WorkflowRunActionUntilLimitInvalid. The provided 'until' limit count value '0' is not valid. The count must be a positive integer no larger than '5000'.

 6-6-2018 12-42-10 PM.jpg

 

 

When I changed the Count value to "1", the flow ran successfuly. However, it went straight to the last action even though I just created an item (not yet updating the Assigned to, Date Started, Date Completed). Is it possible to add an if function and add a control terminate action just as @ScottShearer mentioned above? The Email 2 and Email 3 should only be triggered once I have updated the "Assigned to" and Date "Completed" respectively.

 

If it isn't a bother, can you also explain what is the meaning of Count and Timeout property means? And what values should I consider when populating values on it? And I was thinking if the column name that I should input in the Do until action is the internal column name from the address bar. Please confirm. I very much appreciate your help.

 

6-6-2018 1-01-16 PM.jpg

 

Thank you,

Ana

Posting another response. My first response suddenly dissappeared.

 

Hi Kris,

 

Thank you for providing your insights. It was helpful. I tried to recreate the flow you created but I got an error message when I left the Count Property blank.  6-6-2018 12-42-10 PM.jpg

 

When I changed the value of Count  to "1", the flow ran successfully. However, When I tried creating an actual new item in the list, but all actions were triggered and were performed from start to finish--Sending Email 2 and Email 3; Updating item 1-4. The problem is Send an Email 2 and Update item 2 should only be triggered when "Assigned to" has been modified. And Send an Email 3 and Update Item 4 will be triggered when "Date Completed" has been modified. Is it possible to add a condition or switch case for it so that the Send an Email actions won't be triggered at the same time?

 

Also, is it true that the value for column name in the Do until action should be the internal column name? If so, is the column name found in the address bar in the list settings the correct one to use? See below:

6-6-2018 1-01-16 PM.jpg

 

And if its not a bother, is there a guide on how to populate the Count and Time Out in the Do until action?

 

Thank you,

Ana

 

Hi @v-xida-msft,

 

I tried your flow again and it worked! The only problem is that, actions will  not be triggered when a new item is created and the existing ones are not yet done completed. Example: When I input value to "Date Completed" it should trigger the "Send an email" action. However, if I have yet to input the value to "Date Completed", and I added a new item in the list, the flow of the previous item will stop and a new flow will be initated for the new item that I just entered. 

 

I saw a response form @v-yamao-msft to add a condition to send an email whenever a certain tem is modified. But I don't know exactly how to do it. The link is at: https://powerusers.microsoft.com/t5/Building-Flows/Flow-update-to-SharePoint-list-item-fields-trigge...

 

Also, I read a post of a workaround for  "When an item is created or modified". It prevents the flow to be on a loop but instead the actions will only trigger twice. But I don't really want that to happen on my flow. My flow involves of sending multiple email messages and I don't want to spam the affected users by trigerring the actions twice. Are there any other ways to address the issue?

 

I saw one of your posts here: https://powerusers.microsoft.com/t5/General-Flow-Discussion/Flow-running-thousands-of-times-on-SP-qu...

 

I hope you could help me on this one.

 

Many thanks!

Ana

anabananei
Resolver I
Resolver I

Workaround that I did as I don't have a concrete solution as of now. The only way to do it is to triger the flow manually by using "For a selected item". I achieved this on a SharePoint list. I have a button that when I click it, it does lots of things including sending of email. ANd the good news is that, whoever ticked the button, he/she will be the sender of email. Just make sure to include the persons you want to be as a flow owner. There is also a way to include a button in SharePoint Library. I haven't tried it but I'm planning to.

 

Here is the reference link for the buttons in SharePoint: https://wonderlaura.com/2018/07/18/button-in-sharepoint-list-to-trigger-microsoft-flow/

 

I tweaked several codes there so I could replace buttons everytime I click a certain button to perform a certain task. My SharePoint list has three buttons, each with different assigned flows that are placed in the same column. After I ticked the first button, the first flow will trigger and once certain conditions are met, it will dissappear and is repalced by the 2nd button which have a different flow until it gets to my third button. (My buttons include Assign, Start, Submit).

 

Let me know if you need any help.

 

Thanks!

View solution in original post

Hi!

 

I tried replicating this. The first flow successfully ran, but when i tried inserting a condition and replicated the same flow under "If No" condition, it's giving me the error below:

 

Learenann_0-1611680927641.png

 

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

R2 (Green) 768 x 460px.png

Microsoft Dynamics 365 & Power Platform User Professionals

DynamicsCon is a FREE, 4 half-day virtual learning experience for 11,000+ Microsoft Business Application users and professionals.

Users online (2,055)