So I have created a ninetix workflow that goes to different stages of approval, my issue is when it is rejected I would like to restart the whole workflow and ask the first person to edit document and reapprove it. Like so in the image, the red arrow showing what I would like. Any help?
Solved! Go to Solution.
This seems like a case for the state machine action...it will move between branches based on the outcome of the tasks. Your scenario seems quite familiar, so let's imagine a state machine that has the following possible activities:
The state machine allows you to bounce between these states based on the outcome of the task.
So, we can set the first state of the State Machine to be Team Leader Approval (in the settings for the state machine action). If the Team Leader approves we use a Change State action to send the state machine on to the Manager Approval step. If either of them rejects the document the state machine moves back to Document Owner Rework (using the Change State action).
At Document Owner rework the document owner can either withdraw their submission or resubmit it (at least that's how I've configured their available task outcomes)...in the latter case the state machine switches back to Team Leader approval.
The cycle can continue until either Manager Approval is given or the document owner uses the withdraw option...in those cases we set the next state of the state machine to be 'End State Machine' meaning that the state machine will end and the workflow will continue on.
Hopefully the example below demonstrates this quite clearly:
This is definitely the way I'd do it. I also find State Machines are a nice way of structuring the workflow to make easy to understand in the workflow history view or when you return to edit the workflow years later.
Also, I tend to add two further states at the end, one for rejections and one for approvals where you send notifications, tidy up etc.
Depending on how many actions and how large your overall workflow is, another option that I have found helpful is to create a separate workflow for each approval segment. If the workflow is greater than 0.5MB, the results/behaviors are very unpredictable. This will also allow you to manually trigger the process at any approval level if you encounter an error rather than killing the workflow and restarting from the beginning. State machine is great for workflows that are < 1/2 MB but many of mine are pretty massive and require a split.
I'm doing something very similar so this is very helpful. However, I think there is a missing step in the Resubmit action because it would go straight back to the manager without the document owner having a chance to change anything. What is the cleanest way to handle this scenario so that the initiator has the opportunity to change the data before resubmitting?