It would be good if we could set a 'Flow' to only work when the value of a field changes.
We have a 'column' with 3 possible options 1) Planning, 2) Promote, 3) Finished.
When a new item is created by default the column is set to 'Planning'.
Although many other changes may occur in other columns, we would only want the 'Flow' to start when this particular column is changed. But when other columns are changed no 'Flow' is triggered.
Hope this is something that could be implemented, as the current 'Flows' will run each time any column is updated.
Solved! Go to Solution.
I want to hook onto this...
I created a flow like suggested with a switch statement on a column value. Works fine, thanks for sharing!
I have one issue.
Out of this line with the changed value i create a new list item in my calendar list. I try to set the start and end time of the new evnet to corresponding values of the list.
when I look into the results it looks like follows
This is what I have in my "trigger"
This is what i want to do as action
This is what happens
It always sets end date = null and thus the event will not show up in my calendar 😞
Looking at the screenshots you provided it looks like you're accidentally using the wrong variable to assign the end time. You're using a variable called "End Time" in the flow when in the output screenshot you're showing a variable named "END Date" which looks like the correct format and the variable you want to assign the field End Time to. 👍
Can you please elaborate on this. When I try the Modified it just pulls in a date...how do you use this to tell you which column you are looking to see if it was modified?
If you are clicking the field from the Dynamic content make sure you click ont he one that says "ColumnName Value" not just "ColumnName".
Choice fields are a pain in Flow sometimes!
Thank you for this thread, it helped to understand this issue a lot. I agree, this issue needs an simple solution ASAP. I just spent 30 minutes of my work time erasing duplicates from a log that updates everytime a change is made. Ideal would be to update the log only when one column changes. I'm not going to do any fancy coding solutions to achieve this, it would not serve our purposes, since we need a solution that regular non-IT-people can understand if it needs to be updated in the future. Until a solution is made, I'll just keep manually erasing the extra rows.
I followed these notes and got it to work good on my end.
This guy here has some of the best Flow solutions.
Hope this helps!
I use this to but this is not what we are requesting.
Flow should only be triggerd when a column is changed.
Using John Liu's way is a temporary workaround. It triggers on modified or new and not on column change. This means the flow runs each time anything is modified.
Dear @rebeccas ,
thank you for taking the time to reply. If you read my reply, I said that this solution is too complex for our users. The Flows we use need to be simple enough for non-IT-personell to update and modify when necessary.
There seems to be demand for this feature, I hope that Microsoft implements it at some point.
His solution is a "work around" ..they should add an option for just modified. But with his work around it will "run" for either a creation or a modification but you only have an action with it is modified and for a specific column. I use it for one that looks for only when the status of an item is modified. It works really good.
But I do agree for sure...it would be awesome if they came up with a more simple/straight forward solution that is just when an item is modified and then you can put in what you are looking for to be modified. Hopefully they will do that soon.
I agree, hopefully they will add in an easier solution soon.
Hi, @Anonymous ,
This can be done using a combination of a *bit* of the 'hard stuff' (no insult - I'm flying blind, too!), but you can use the inbuilt functions to (gradually) build the data and logic that you need. I'm going to provide a more 'in depth' version of this, that includes how I've done the logic part of this, it's simple, but initially involved.
The reason for this is that now this doesn't actually allow you to type in 'Value' to get to the request's value, instead, it just provides the 'Body' which contains that. So you need to use a "Parse JSON" to work with the data. This means that you'll need to do a hefty few run-throughs to work out some of the generic values, and/or actually get the right template.
So, my first suggestion, before you get in to configuring the HTTP request, is to pipe anything you're going to use frequently in to a variable, because, sometimes, it's just easier than playing "Please let me" tennis with Flow. Then get that HTTP Request's 'Body', and give your JSON a schema to work with.
So pre-flow work is:
Now you can do the thing (ju li):
So, you do kind of need to do the first bits of John Liu's fix on this (at his dot net domain), but you should be able to lean on the Flow basic functions to do all the hard work for ya.
*Nearly* no code ... and what code there is you're just copying and pasting ;-).
OK ... now for the more complicated version!
We need more variables set, so that we can differentiate between the new and old version. So. The bigger pre-flow work is:
Next comes a slightly more involved process to grab and compare the details. Once I've saved this post, I'll see if I can sum it all up with some imagery, somehow, more easily. So, in the pre-run, you've run a test run, and have an HTTP Request that's all correct, now you'll want to use a "Select" to pick out the data that you need, but Flow can't understand the information natively, so we need to do some of those pre-amble steps again in the flow building proper:
Very quickly, as an example of logic work on this, I've just done a quick IF/THEN brancher on the assumption that we can only change 2 values. Here's the whole thing:
Here it is broken down:
Eliot Cole @ projectfive UK
Would probably need a bit more information, mate, and I recommend you raise a new thread for it, but just guessing:
Use a condition and select the things that you wish to filter, then leave the other side blank, and say equals this.