Use CaseWhen Sales Rep submits Opportunity it requires different approver for different approval stage for different region.
SolutionCreate object to store approver details such for stage and region.Create Opportunity field to store approver for that particular Opportunity, these fields can be referred in Approval process. Using trigger query the approvers record and populate it in Opportunity based on specific criteria.
Meanwhile you can take a look in Appexchange, there an apps named Dynamic Approval Routing.
It is unmanaged package so we can view and modify the code to suit our need.The apps actually is a sample on how we can define approver for specific object.Its rule defined in the code and you might have different approver criteria and different object.The concept is
- to have one object to store approver details and
- create fields on object that going to be approved.
- create trigger on object that going to be approved to populate approver fields.
ConclusionBased on my experience especially for Opportunity object, I am still looking for alternative solution beside just create custom fields on Opportunity object because our Opportunity always hit custom fields limit.We do some clean up and at the end we have no more fields to create.
I am thinking maybe this can be solved using Queue to store Approver but it has limitation where it's not available for email response.There an idea for this here which still under threshold.
Do you face any issue related to this before? How you solve it?
Refer : Dynamic Approval Routing