Showing results for 
Search instead for 
Did you mean: 
Not applicable

Flow triggered multiple times

I have a new flow, using CDS triggered by an update of Opportunities in Dynamics.


It runs great for me in the dev environment.  It runs twice, because an update of Opportunities in the flow triggers it to run again.  The field that was updated in the first run is examined and the flow is aborted on that second run.


The problem is, something is triggering the flow multiple times in the test instance.  I can see, in the last update, it was triggered not twice, but six times:


Annotation 2020-06-25 142553.jpg

...these six runs complete in about 13 seconds, total.


The flow is to send e-mail each time it runs, but I have it avoid the e-mail step on the second (the 'abort') run.

Flow history for the above shows that the field was updated the first time and then it ran five more times taking the 'abort' path and not sending e-mail.  I'm not understanding what kept triggering it. 


.Is there some sort of latency in the update of the Opportunity record, that it may be triggered and run again before the field update is completed?    Do I need to insert some sort of delay step in the flow?

Community Support
Community Support

Hi @Anonymous ,

Do you add "When a record is updated" trigger of CDS Connector as Trigger of your flow, and add a "Update a record" action of CDS connector in your flow?


Based on the issue that you mentioned, I guess that you add a "Update a record" action of CDS connector in your flow, is it right?


According to the issue that you mentioned, I think this issue is related to the "Update a record" action in your flow. The "When a record is updated" trigger would be fired when any record is updated in your CDS Entity, the "Update a record" action would update a record in your CDS Entity, it would fire the "When a record is updated" trigger again.

Once you fire your flow first time, the "When a record is updated" trigger and the "Update a record" action would be sink in a loop. As an fixed solution, you need to add a Condition action in your flow to prevent from this issue.


I assume that the Column value you want to update using the "Update a record" action is empty before you firing the flow, then you could add a Condition action below the "When a record is updated" trigger to check if the Column value is empty, if it is empty, execute the following actions, otherwise, do nothing.


I have made a test on my side, you may need to modify your flow as below:



Of course, you could consider also add a custom column (e.g. Two Options type column, rename it as "FireForFirstTime", with two available options -- "Yes" & "No") in your CDS Entity, each time, you fire your flow first time, please set the "FireForFirstTime" column value to "Yes".

Then within your flow, configure it as above screenshot, you need to check if the "FireForFirstTime" column value is "Yes", if true, execute the "Update a record" action. Within the "Update a record" action, you need to set the "FireForFirstTime" column value is "No".

Note: Each time you want to fire the flow first time, please set the "FireForFirstTime" column to "Yes" manually.


Please consider take a try with above solution, check if the issue could be fixed.


Best regards,

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.
Not applicable

Thank you kindly for looking into this challenge!


I understand what you are referring to.... I do have an update in the flow that does trigger the flow to run again.  So... I do have a condition included that will cause it to abort on the second run before triggering it yet again:

Annotation 2020-06-26 160028.jpg

Annotation 2020-06-26 160049.jpg





This last time I ran it, the flow was triggered 10 times.  Three times, it took the 'yes' path from the condition and 7 times, it took the 'no' path.  This makes no sense to me...  and if the problem were the flow triggering itself, why 3 times 'yes' and 7 times 'no'?


The flow is in a solution (because it uses cds (current environment) connectors.  And it is on the dev system (where the solution would be unmanaged) - as well as on the test system - that I have the problem.




Hi @Anonymous ,

Is the "New Product" a Option Set type column in your CDS Entity?


According to the screenshot that you mentioned, I think there is something wrong with your flow's configuration. When you reference the Option Set field dynamic content value (e.g. "New Product Value" dynamic content) in your flow, it would return a number value, e.g. 886360000, rather than a Label value, e.g. 'Pending'.


Actually, the Option Set type in CDS Entity is a entity reference objects, which including the following attributes:


The 'New Product Value' dynamic content you referenced in your flow is actually the Value attribute, but you actually need the Label attribute value in your flow. 

So in your flow, you should modify your formula as below:


Within the "Initialize variable" action, set the Value field to following expression:


Note: The crba2_approvalstatus represents the logic name of my "Approval Status" Option Set field, on your side, please consider replace it with actual column name from your own CDS Entity. e.g. prefix_newproduct.


Please consider modify your flow as above solution, then try your flow again, check if the issue is solved. If the issue still exists, please consider add a normal Text type column in your CDS Entity to store the status value, then try your flow again.


Best regards,

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.
Not applicable

What I found this problem to be is in the trigger.  "Filtering Attributes" is not a required field in the CDS trigger, but without it, the trigger fires multiple times.  After I entered a field in there, all goes well:


Annotation 2020-07-01 095617.jpg


It makes sense that the problem was on the trigger.  But I'm not sure why the flow did what it did.  Whether the field is included or not, why does it fire randomly and so many times?


I believe it fires many times - once for each field updated in the entity.


Ie Modify last name, email and address 1 line 1 - would fire three times (I suspect it is to do with the back end auditing).


Anyway, I had a similar issue and did the following;


In my flow _ I need for everything to 'settle' so I have a 1 minute delay (It is a sync process between two Dynamics instances).


Using the guid from the trigger, retrieve the actual entity record (StepName CurrentContact). (Using CDS - Current connection).

Compose with formula 

int(outputs('CurrentRecord')?['body/versionnumber']) (compose named CurrentRecordRowVersion)
Do a second compose from the Trigger (Named TriggerRowVersion)
Then compare the two values in the compose - if they are equal you know that the trigger has fired on the last update of the record - Otherwise Terminate flow.
This allows you to have the flow to only process when all the updates have been sent thru to the flow (Trigger).
It appears that DYnamics updates each modified field separately in the entity row in the database - and increments the RowVersion (Column) on each update.

THANK YOU!  This was really helpful!   As soon as I added a column filter, my flow only triggered once.   I don't understand why.   

Helpful resources

UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Top Kudoed Authors
Users online (2,708)