So I know that the last step in an approval process cannot have a 'else' knowledge action. What I mean is, if the step is not the final step of an approval process, and you choose to only enter that step if the object meets certain criteria, you get a choice for if the object doesn't meet that criteria like below

enter image description here

This option is not available if the step is the final step in the approval process. There is an idea to allow for this here https://success.salesforce.com/ideaView?id=08730000000IaXgAAK.

So I have a very simple approval process, which is as follows

Record comes into approval process and

  • Step 1, all records go into step 1
  • Step 2, only records that are owned by a certain profile go into step. Records that aren't owned by that profile, have no need for this step so should be considered approved with step 1 approval.

Due to the limitation mentioned above, it makes this a bit difficult. I do have two workarounds, but wanted to run them by everyone to see if I am missing any other workaround, or if anyone has done something interesting to solve this in the past

Workaround 1

Have 2 approval processes for this object, with entry criteria on the owner profile. Then 1 approval process can have only 1 step and the other approval process can have the additional 2nd step. there is no need for logic in the steps in this case.

Con to this approach: I now have two approval processes for what I really believe should be easily accomplished in one. I also now have to maintain two approval processes instead of one.

Workaround 2

I keep my current approval process with the second step having to meet criteria based on the owner profile. I add a 3rd step to the approval process which is just an empty dummy step. I set the criteria on this step to False (it never enters this step). Now step 2 isn't the final step in the process so I now have the option to choose 'Else approve article' for step 2.

Con to this approach: It's a bit hackish. It should work fine, but its always a bit disheartening to know you have to do things like this to trick the system.

What I need from you

Just hoping some of you can confirm or dis-confirm my workaround approaches and let me know what you have done in the past to get around this. I fully admit both workarounds are viable, so it's not like I'm stuck. I'm just looking for some help from the community on what you all think the best approach here is, or if you have an even better solution (that would just be awesome). Also, at the very least, even if you have no opinion or workaround, please promote the idea. I really can't believe this isn't standard yet.


  • Didn't try myself, but into you step 1, why don't you add a field update. Then it will call your trigger where you can easily calculate what's the profile of the current user or of the next approver. If it meets you criteria, you can autoapprove ( with 'ProcessInstance'), if not just leave the process as it is, it will require the approval of your step 2. Of course it requires some code but might work I think.
    – brovasi
    Feb 13, 2014 at 4:40

1 Answer 1


Do #2. I've done this, and part of the fun of salesforce is making if do things it wasn't meant to do.

Much better than having two processes to keep in sync.

You must log in to answer this question.

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