cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
thompsonp2
Level: Power Up

How do you change the initial trigger in a flow?

I created a flow based on a trigger if an item was added or modified from a sharepoint list.  I want to change this to just if one particular field is modified, but i don't know how to do that.  Is the only way to rebuild the flow from scratch?

3 REPLIES 3
Mike2500
Level 8

Re: How do you change the initial trigger in a flow?

1. You can change the trigger by deleting the original trigger and then simply adding a different one. Complicating this procedure is the fact that you can't delete the trigger if any other components are using fields from it. So, if you had an email action that used fields from the trigger, you'd have to remove those fields from the email before getting rid of the trigger.

 

2. There is no trigger to start a flow from modifying a particular field of a list. The old way of doing this is to have an extra field to store the older value, and then compare them. For example, if your field is "status", create a new field called "status_old". The flow would fire for every list change, and would compare those values. If the values were different, then it should proceed on, doing whatever it needed to do, and then update status_old with the current value in status.

thompsonp2
Level: Power Up

Re: How do you change the initial trigger in a flow?

So basically, you would have to remove everything in the flow in order to remove the first trigger - essentially rebuilding it.

I've accidentally created a loop by having the trigger be create or modify an item at the end of my flow I have it update to Yes, if an item is approved - hence triggering another round of emails.  I really need it to be if it is just changing one field.  Doesn't sound like the old way would work for me anymore since the trigger is modifying a list.  I guess I'll just turn off the flow to do a manual update for now.  Thanks for your input!

ch2017
Level: Powered On

Re: How do you change the initial trigger in a flow?

in my case i had a long & complex workflow i din't want to recreate from scratch - especially since MS Flow kept complaining about dependencies between the trigger & actions that i could not find when i tried to remove the original trigger

 

so i found this workaround

  • export the workflow as a zip package (option "create as new")
  • make sure to rename the original workflow to avoid conflicts when importing
  • unzip the package file, look for the definition.json file
  • replace the trigger by editing the file:
    in case of a different trigger on the same connection it is rather straightforward, in my case i replaced "When_an_item_is_created" with "When_an_item_is_created_or_modified" , "GetOnNewItems" with "GetOnUpdatedItems" and "onnewitems" with "onupdateditems"
  • recreate the zipfile (make sure the Microsoft.Flow folder is in the root of the zip file)
  • reimport the package, the flow is now triggered by the new action

 

in case you have a different datasource the edit may be more complex, just create 2 small workflows, one with each trigger, export them and look for the differences in their JSON files to help you in the right direction

>