I have a list workflow that needs to run when the Item Status field changes from any other status to "Completed." It is running every time the Item Status is "Completed" and the item is modified.
Here is what I've tried so far:
Despite all of this, the workflow is still running every time the item is modified if the Item Status field is "Complete.
If the Item Status field is NOT "Complete", the workflow does not run.
I looks like your logic is correct, but as a potential work around, what about adding another status after 'Completed', such as 'Closed'. Your workflow would trigger as normal, but when it finishes, it changes the status to 'Closed', thus preventing it from triggering again.
Also, the time field is never really empty, but is set to 1-1-1901 by default (just not visible).
I was able to validate that your first attempt should have worked. I created an item (started as 'pending'), submitted it to the list (no workflow triggered), went back and changed the status to completed, and it triggered. I went in again and changed the title, and workflow was not triggered. Here is my startup options:
Not sure what else you have going on in your workflow but try isolating as much as possible.
As an alternative, and I would look into this as it is easier to scale, set up a state machine and monitor the item's life-cycle and move from state to state. This allows you to start it up and then let your state machine pass it around to where you need it to go. It is easier to scale because you can quickly add/remove/move around actions as needed.
Hope this helps!
Thank you - I will definitely look into state machines for future workflows. While going back in to try to figure out what was different in my workflow, I realized I'd missed a crucial step in the "Run If" action. I hadn't moved the subsequent actions into the Run If box! After doing that, the workflow runs appropriately.