[SalesForce] Single Object Approval Processes run separately

I want to have a number of different approval processes run off Opportunities for things like discount approval, credit check and a compliance check. Is there a way I can set these up as separate processes in the Approval Process area but run them separately using a custom button or something similar without them being dependent on each other?

From my understanding, you can only run the process and it will take the first one that passes the entry criteria.

Best Answer

Nope.

Even from Apex code you (I'm simplifying a bit, full example here) you just call "Approval process engine, grab this record and have a look which approval flow it matches". It's a "first come, first served" thing - the order in which you've listed Approvals for given object and their entry criteria DOES matter.

You could submit it to multiple approvers at the same time and require them all to give it a go (search the help for "unanimous approval"). But that's still a limitation if you want multi-step approvals (everybody on level 1 would have to agree...).

Is this really what you want though - even if it would be possible opportunity would be locked until all requests have been approved/rejected...

You could try making your own approval process, it's not exactly rocket science. Make a small custom object in master-detail relationship to opportunity, call it "Approval Process" with field "Type" and submit these? Some cross-object workflow rule, rollup-summary field, trigger that would set a flag or simply a "Submit them all" button could take care of setting some hidden flag on Opportunity that says it's in middle of approval process... Furthermore (with more triggers) you could analyze who's current approver and whether you let him make changes to the Opportunity or not).