I have an approval process with multiple steps, in some of which, the record goes to next step if step criteria is not met.
How can I ensure that even for skipped steps, their approval actions (say, a field update to show how far the approval process has progressed) are triggered? If I put some approval actions on each step, the actions of the latest step may not fire and the status will retain the old value when it goes to the next approver.
Basically, I need something which performs like submission actions for approval steps.
If I set to approve if criteria is not met, the record skips all subsequent steps and gets final approved. This does not suit my needs.

1 Answer 1


Using a status field to reflect the latest approval will not work when steps are skipped. It will only reflect the last actual approval, not the current step in the process, as you are observing.

One option could be to use a text field instead of a picklist for status. Then, in the field update that sets status when prior step is approved, you can add logic in the field update itself that evaluates what the next step will be, and set the value appropriately. This can get complex and can be a bear to maintain, but is feasible if the field you are writing to is a text field.

Another thing to consider is that approval emails allow you to use approval step name as a merge field. That can be very helpful in conveying what the current status is.

  • In the field update too the same scenario applies. As it is skipping approvers, I cannot predetermine what the next status would be. Say in step 2, there is a set of criteria, and step 3 has a subset of the step 2 criteria and step 4 has a subset of step 3 criteria. So there is no way to implement a definite logic to identify which step is it going into among 3 and 4 and update status based on that. Commented May 13, 2017 at 7:12
  • I'm not sure I follow. The approval process follows some logic, and the field update has access to all of the same variables as the approval criteria, so shouldn't it be possible to set the value for status appropriately? Imagine instead that status is a long text area field, couldn't the field update write a log for what happens at each step, so if from step 1, step 2 and 3 are skipped, the field update from step 1 could write step 1 complete; step 2 skipped; step 3 skipped, etc?
    – gorav
    Commented May 13, 2017 at 22:17
  • So you are saying, after step 1, text would be updated to 'step 1 complete; step 2 skipped; step 3 skipped', then if it goes to step 2 and gets approved, update to 'step 1 complete; step 2 complete; step 3 skipped' and so on? Commented May 14, 2017 at 13:57
  • Yes, very much along those lines, but the step 1 field update should already know if step 2 will be skipped or not as it can follow the same logic as the approval process follows. I can update my answer later to illustrate this better if it would be helpful.
    – gorav
    Commented May 14, 2017 at 14:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .