Custom Approval

Besides the advance approval, Zoho Expense provides the option to set up Custom Approvals for expense reports, trips, and advance payments. In advanced approval, any report, trip, or advance payment created by a user will be submitted to the approver that was assigned to the user while inviting or adding them. This might not be ideal for all cases.

For instance, when a user is working on a project, any expense created by them during the course of a project should be submitted to the project head, instead of the default approver. In this case, rather than changing the default approver, we can create a custom approval policy such that any expense created by the user, pertaining to the project, is automatically submitted to the project head.

To start with, you will have to enable custom approval and create a new approval policy. You can add multiple criteria and edit/delete approval policies if necessary.

If a report, trip, or advance payment satisfies the criteria of more than one approval flow, you can choose which approval flow should be executed by prioritizing it.

Not sure if you need it? Have a look at the scenarios where custom approval comes into play.

For easy navigation, you can make use of these quick links:

How to enable Custom Approval

  • As an admin, you can enable the custom approval feature from the Settings module, under Admin section.
  • Go to Reports and navigate to the Custom Approval tab and click Enable.

Enable custom approval

  • After you enable the feature, click the +New Custom Approval button. By doing so you will see the New Custom Approval form as shown below.

  • You can enable Custom Approval for Advance Payments by going to Settings > Advance Payments > Custom Approval > Enable.

  • You can enable Custom Approval for Trips by going to Settings > Trips > Custom Approval > Enable.

Creating a new approval policy

Choosing the criteria:

You can activate the approval policy based on certain triggers like Report Total, Reimbursable Total, Project, Policy Violation count or the Owner of the report. You can also set a limit for these parameters.

Choosing the criteria

Approval flow:

The custom approval is based on a level-based hierarchy i.e the position of the approver in the flow takes precedence over the approver himself/herself. The submitted report will first have to get approved by the Level one Approver, followed by the Level two Approver and so on. The approver for the policy can be selected based on pre-defined standards:

Add Approver

  • Submits To: This lets you select the approver who was assigned at the time of inviting the user. It follows the reporting hierarchy in your organization.

  • Choose an approver manually: You can select an Approver manually from the existing users.

  • Project Head: This option is selected in case a particular report is associated with a project and needs the approval of the Project Head.

  • Project Head(s) of Expenses: It refers to the Project Heads of all the expenses in a report or a trip request.

  • Department Head of the login user: It refers to the Head of the Department to which the owner of the report belongs.

  • Department Head: You can choose the department of which the approver is the department head.

You can remove an approver by clicking on the (-) icon on the far right.

Similarly, you can create an approval flow for Advance Payments.

How to prioritize an approval policy

It is possible that some expense reports would fulfill the criteria of more than one approval policy. In such cases, you can choose which approval policy should be triggered by prioritizing that approval policy. To do that:

  • Navigate to Admin > Users > Approvals tab.
  • Click on the gear icon and select Change Priority.
  • Drag and reorder the approval policy such that it comes at a higher level than the rest. The approval policy with priority number 1 will be prioritized over other approval policies.
  • Click Save Priority Changes for the changes to take effect.

Change priority

Multiple criteria

Multiple criteria can be added & these conditions can be set on an AND (or) OR basis. You can set up to 10 criteria based on several conditions and limits.

For example, let’s say the admin creates a custom approval policy where he sets the criteria based on AND (or) OR:


  • When - Report total > ‘2000’ (AND) Customer is ‘Zylkar Global’

Multiple criteria AND

So in this case, the approval policy would be triggered only if the report total is > 2000 AND if the customer is Zylkar Global.


  • When - Project is ‘Web Design’ (OR) Owner of the Report is ‘Mark’

Multiple criteria OR

In this case, the policy would be triggered if either the project is Web Design OR if the Owner of the report is Mark.

Criteria can be added by: Clicking the Add Criteria option.

Criteria can be manually edited by using patterns such as (1 AND 2) or ((1 AND 2 ) OR 3) and so on.

You can remove a certain criteria by clicking on the ( - ) icon on the far right.

Edit / Delete an existing approval policy

You can edit or delete an existing custom approval policy by clicking on the Edit and Delete icons at the far right to the policy you need to edit or delete correspondingly.

Edit or Delete


Let us now consider a few scenarios in an organization which has an admin John, submitter Mark and approvers Susan and Cathy. Here, Susan is assigned as the default approver to Mark while adding/inviting him to the organization.

Scenario 1: When reimbursable total exceeds 2000

John wants to set up an approval policy such that any reimbursable expenses which exceed 2000 USD should be directly submitted to him for approval.

In this case, you can set up a custom approval such that any report which has a reimbursable total exceeding 2000 USD, automatically goes to the admin John. So when Mark makes a reimbursable expense for 2500 USD, the approval policy gets triggered and the report goes to John for approval instead of Susan who is the default approver.


You can define the criteria as:

  • " When the Reimbursable Total [ > ] 2000 “,

Approval Flow:

  • " Level 1 Approver as John (the Admin) "

So here John can select the option: Choose an approver manually to set himself as the Level 1 approver.

Reimbursable Total

Once you create a approval policy for a specific condition, you also need to create another policy which lets you specify what happens if that condition doesn’t exist. In the above example, we’ve made the policy to be triggered if the reimbursable total exceeds 2000 USD. So we also need to create another policy based on the condition of the reimbursable total [ <= ] 2000 USD.

Scenario 2: Expenses incurred for a particular project

Let’s consider a scenario where Mark is working on a web designing project which is led by Cathy.

During the course of the project, Mark made some expenses out of his pocket for which he has created an expense report. By default any report submitted by Mark goes to Susan for approval, but in this case we need the report to be submitted to the project head Cathy. So by selecting the criteria as " When the project [ is ] Web Design “, the report must go to Cathy for approval and then to John for final approval. This is one such case where custom approval is really useful.


You can define the criteria as:

  • " When the Project [ is ] Web Design “,

Approval Flow:

  • " Level 1 Approver as Cathy (the Project Head) " &
  • " Level 2 Approver as John "

So here, you can either select Choose an approver manually or Project Head.

Project Head

Similarly Department Head can also be selected as the approver, based on the approval policy requirement.

Department Head

Scenario 3: Choosing expenses based on category

Let’s consider a scenario where the admin John requires all the travel expenses to be approved by Susan who’s in charge of all travel related expenses, before doing the final approval himself. In this case, we can select the criteria as Expense Category and choose the required category as Air Travel Expense.


You can define the criteria as:

  • " When the Expense category [ is ] Air Travel Expense "

Approval Flow:

  • " Level 1 Approver as Susan (Travel Head)” &
  • " Level 2 Approver as John "

Expense Category

So in this case, all the expenses under the category ‘Air Travel Expense’ would first go to Susan for approval and then to the admin John.

Scenario 4: Submitting expense reports with policy violation to the Admin

Let’s consider a scenario where any report containing more than 3 policy violated expenses should be directly submitted to the admin John.


You can define the criteria as:

  • " When the Total Policy Violation Count [ > ] 3 "

Approval Flow:

  • " Level 1 Approver as John "

Policy Violation

Similarly, you can set the criteria for policy violation based on:

  • Receipt Policy Violation Count
  • Amount Policy Violation Count
  • Description Policy Violation Count
  • Uncategorized Policy Violation Count

Scenario 5: When the expense report does not trigger any Approval Policy

Now we have created custom approval policy based on particular conditions. So what happens when an expense report does not satisfy any of the conditions? This is where you can use the Default approval.

For example, in the scenario 1 we have created a policy for the reimbursable total exceeding 2000 USD. On creating a default approval, if an expense report total is less than 2000, any reports [ <= ] 2000 USD would be submitted to the default approver.

Default Approval


You can define the criteria as:

  • None. Click on ( - ) to remove the existing ‘When’ condition.

Approval Flow:

  • Level 1 Approver as ‘Reporting to’.

Scenario 6: When the expense report satisfies the criteria of more than one approval policy

Suppose, Mark submits a report which exceeds 2000 and contains 4 expenses which exceed the ‘policy violation’ limit. The report in this case, satisfies the criteria set in Scenario 1 and Scenario 4. For cases like this, prioritizing the approval policy will help. In this case, the approval policy in scenario 1 has a higher priority, hence that will be executed.

prioritizing approval policy

Get a personalized demo from our experts


By clicking Submit, you agree to our Privacy Policy.