We can avail only 1 hierarchy field (Manager or custom hierarchy field) for defining the approver in an approval step. If I have to setup 3-level approval process for opportunities or expense reports then I have to

  1. Define my approval matrix on a separate custom object with the Associated User, Approver_2 & Approver_3 fields

  2. Create 2 custom lookup fields to user on Opportunity: i) Approver_2__c & ii) Approver_3__c (Given Manager is the first approver)

  3. Create the 3-level approval process in the setup, define Manager as the Level 1 approver enter image description here

    and for Level 2 & Level 3 approvers use 'Related Field' on the object to be approved Approver 2 is the custom field on Opportunity

  4. Write trigger on before insert, before update events to set the Level 2 approver & Level 3 approver on the opportunity

I believe if Salesforce allows custom hierarchy fields to be availed in defining an approver in an approval process just like we can define manager as an approver it would have saved lots of maintenance and resources.

Any alternate thoughts ?

  • Each person in the hierarchy chain has a "reports to" or "manager". Is that what you're asking about? So long as the person who submits the opportunity has 3 people above them, that kind of process will work. If not, then you'd need to define an "approval committee" of sorts or your own chain. You don't need a custom object to do this with.
    – crmprogdev
    Dec 26, 2015 at 14:47
  • @crmprogdev Hi, it's not necessary that manager's manager would be level 2 or level 3 approver. If a custom hierarchy field could be used as an approver it would have been easier. Currently only standard manager field can be used as an approver. The "approval committee" you are talking about should reside somewhere, shouldn't it reside in a custom object?
    – Jarvis
    Dec 26, 2015 at 14:54
  • No. The "committee" would be in a queue or list of approvers. First approver needs to be a person's "manager" or "supervisor", then their manager/supervisor, etc. Terms can get confusing and are often used interchangeably by salesforce. If you want to start 2 levels up, that would be your choice, but a direct supervisor would presumably want to approve what their subordinate submits before it moves up the chain.
    – crmprogdev
    Dec 26, 2015 at 15:02
  • @crmprogdev I fully agree that a direct supervisor/manager would want to approverwhat their subordinate submits before it moves up the chain. Suppose level 2 & level 3 approvers are not super or super-super managers but vary depending on the user's role or any other user attribute. In that case I have to create 2 lookup fields (on Opportunity or Expense) to user object say Level Approver 2 & Level Approver 3 then populate these 2 approver fields every time they are created or updated. Click this for e.g.
    – Jarvis
    Dec 26, 2015 at 15:11
  • Yup! Historically, using triggers like that is the way it's been done for years in many orgs. I think process builder may provide some new flexibility that hasn't existed in the past. Have you gone thru the Trailhead Process Automation Module? If not, I highly recommend it.
    – crmprogdev
    Dec 26, 2015 at 15:28

1 Answer 1


If you create a Hierarchy field on the user object, when creating the approval process in step 3 choose that field instead of the manager and it will be available in the approval steps.

The issue as I see it is that you can only specify one approve this way. But your question make me feel like you think you cannot use another field for the approve which is false.

See this image for where you would select the other User Lookup field as the approver in lieu of the manager

enter image description here

  • You are right, we can use a custom hierarchy field as well but in that case we can't use the standard Manager field for approver. I'll rephrase my question
    – Jarvis
    Dec 26, 2015 at 16:56
  • 1
    @Bennie - That is correct. Just making sure you know that you CAN use another field as the questions made it sound like you could not. It is a limitation of the Approval process. There has not been much development around approval processes in years so you will have to roll your own workaround.
    – Eric
    Dec 26, 2015 at 16:58
  • If the approval process was flexible to accommodate different hierarchy fields at multiple approval levels it would have saved lots of efforts and would have saved lots of resources across the platform.
    – Jarvis
    Dec 26, 2015 at 17:12
  • Can you please advise what's the impact if I mark "User Approver Field of (Object) Owner" as true? It's disabled in my step of the process.
    – Jarvis
    Dec 26, 2015 at 17:42
  • @Bennie - It uses the field, defined above it, on the owner record instead of the user submitting the record for approval.
    – Eric
    Dec 26, 2015 at 17:45

You must log in to answer this question.

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