Approval process expressions provide a method for qualifying whether an object record should be routed through specific approval steps.

To connect individual expressions together using OR, as well as AND, you must use Advanced Options. For details, see Creating Advanced Options.

There are three types of expressions: standard, advanced and bound.

StandardThis uses a field from the object record in the approval process, along with an operator, to compare to a single value to see if the process should enter a certain approval step. The value can be a constant value, whether entered manually or selected from a picklist, depending on the field type.
AdvancedThis builds upon the simple expression, by enabling the value to come from a custom value expression. The custom value is derived from building another equation using a custom field in a custom table.
BoundThe same as advanced, except that the filter expression can use a field from the business object record in the approval process.

Your criteria can contain a simple field, operator, and value, or the value can be composed of a "custom" expression evaluated at runtime which includes resolving a value from a custom table, a custom field in that table, and an optional filter expression to narrow the rows down in that table. Custom filter expressions can also use bind variables that substitute the value of a field from the context object at runtime.

Bound Expression 


The field comes from the business object associated with the approval process. Along with the operator, this forms the typical first two thirds of an equation.


Selecting Custom enables the Custom Value Expression section for creating advanced and bound expressions. It also sets Value to a read-only N/A.


The Object is a custom Salesforce object containing the available fields. The value selected for Field is what is compared to the field in part A. At its most basic form it is those two fields and the operator that form the expression. The expression will be evaluated for each row in the custom object.


The Filter Expression can be used to limit the number of rows in the custom object which are used as part of the overall expression. Any of the fields in the custom object can be used to create a filter expression, independent of the overall expression being evaluated.


Selecting Bind Value? creates a bound expression and makes the second field used in the Filter Expression come from the same business object as the field in part A.

The Bind Value check box identifies the following:

  • A specific field on the custom object and compares it to a field on the context object.
  • A unique record on the custom object that needs to be used in the step entry criteria.


When building your expressions — both the Custom Value and Filter Expression — you must ensure the data types for the values in the fields being compared match. If they do not match, an error will occur when you preview the process or submit a request.

To create standard expressions

Must be in Step 2: Specify Step Entry Criteria when creating or editing an Approval Process Step.

  1. From the Field list, select the required object record field you want to compare.
  2. Select the Operator and enter a valid Value.
  3. Click or  to add and remove additional field expressions. By default, each line is linked with AND, click Advanced Options to use ANDOR, and parenthesis. See Creating Advanced Options for details.
  4. Click Save once all the expressions have been added.

To create advanced and bound expressions

Must be in Step 2: Specify Step Entry Criteria when creating or editing an Approval Process Step.

  1. From the Field list, select the required object record field you want to compare and select the Operator.
  2. Select Custom to display the Custom Value Expression options.
  3. Select the required options:


    This is the custom Salesforce object that is a table containing fields that are used for the expression.


    These must have been added via Approvals System Properties. See Setting Up Custom Assignee Value Expression Objects for details.

    FieldThis is the field in the custom object which will be compared against the field and operator selected in step 1.
    Filter ExpressionThese two fields and operator act as an independent expression within the larger overall expression.
    Bind ValueThis enables the third Filter Expression picklist to be populated with values from the same object record that is being used in the main Field picklist.
  4. Click  to add another line.
    - Or - 
    Click Next or Save to leave the page. 

Creating Advanced Options

By default, when you create expressions each of them is associated by AND. This means the criteria for each expression must be met before the approval process will be routed according to the entry criteria, approval step criteria, or term exception approval conditions.

The AND column is read-only and cannot be changed. You must select Advanced Options

When you select Advanced Options the AND column is removed, a number is prepended to each expression, and the Advanced Filter Condition field is displayed. It displays each of the expressions – identified by their number – joined by the default AND

In the Advanced Filter Condition field you can use any combination of ANDOR, parenthesis, and numbers representing the expressions. These are the only values that can be used. Using other values may cause unexpected behavior.

As it is a free text field, there is no validation on the characters you can enter in the field. You can use up to 255 characters in the field.

To set advanced options

You must be in one of the following custom object sections:

  • Approval Process > Entry Criteria
  • Approval Process > Approval Steps > Step Entry Criteria
  1. After you have created the required expressions, select Advanced Options. The Advanced Filter Condition field is displayed with the expressions listed in sequence, linked by AND.
  2. In the Advanced Filter Condition field, create the equation using only the numbers representing the expressions, ANDOR, and parenthesis.

    Valid example((1 OR 2) AND 4) OR 3
    Invalid example((1 > 2) & (three or 4)) AND 5
  3. Click Next or Save depending on which custom object you are in.
The expressions are linked and evaluated according to the formula in the Advanced Filter Condition field. There is no auto-validation on the formula. You should test the resulting criteria before using it in a live environment.
To remove the advanced options and return to expressions that are all linked by AND, click Clear Advanced Options.

Initiating an Approval Request

If the object for which you have defined the approval process fulfils the search entry criteria and the step entry defined in the approval process, an approval request is initiated. All line items that require an approval, show up with an approval required label. To view the object and line items that require an approval you can use the Approval button on the object, to view a list of approvals required along with the approvers.