Sometimes it takes practice to discover if something works. When it comes to Salesforce Approval Process functionality, that’s certainly the case. Though there is quite some documentation on the out of the box features, there are currently several impossibilities that are worth mentioning and not very well documented.
- In the out-of-the-box solution you can use both serial approving (through various steps, which are executed in a certain order) and parallel approving (through naming several approvers in 1 step). It’s also possible to combine this, to an extent. You can have multiple steps and in each step you could name different approvers. However, if you want to determine approvers dynamically through a field on the User object (e.g. manager) and you have multiple approvers in the previous step, in the next step Salesforce won’t automatically generate multiple approvers. Instead, the latter approver’s manager will be used. Example:
- User A has Manager X and User B has Manager Y;
- In step 1 you say both User A and User B have to approve the record in order for it to move forward;
- In step 2 you say automatic routing should be applied, picking the option “Automatically assign using the user field selected earlier.”. In this scenario you might expect that since in step 1 you had two approvers, in step 2 both their managers will have to approve the record. However, this is not the case. Only the manager of the latter of the approving users will have to approve. So, if User B approves first and user A approvers later, in step 2 only Manager X will have to approve (naturally, it User A will approve before User B, this will result in Manager Y having to approve step 2).
- Out of the box possibilities for escalation are VERY limited (… non-existing, really; if you need this as well, upvote it here: https://success.salesforce.com/ideaView?id=08730000000l9l4AAA). You could combine reporting with delegated approvers, but this won’t automate much. You could use workflow rules in order to send reminder e-mails some time after the step is started, but unfortunately these do not take into account business hours (this idea is currently under review: https://success.salesforce.com/ideaview?id=08730000000Bpq3AAC).
- Users are allowed to reassign their approval to someone else. This can not be disabled or limited. The community request for a feature to restrict this feature is found here: https://success.salesforce.com/ideaView?id=08730000000kuV3AAI.