Published at: 2025-10-30
Lookup Relationship Field
1. Field Basics
- Lookup (Multi-Select) fields support selecting multiple records.
- You can model a one-to-many relationship between two objects by adding a Lookup field on the many side.
1.1 Selectable Data Scope
Used to filter candidate records when filling a Lookup field on create/edit pages.

- You can define the selectable scope of the Lookup target: All, or Based on conditions.

- Conditional filtering supports two modes: Field-based and APL function-based.

- Once you set a data scope, any linked record must meet the filter criteria.
- On the Lookup target’s detail page, when creating related records, the system validates them against the filter. If a record doesn’t meet the criteria, you cannot create it from that context.
1.1.1 Field-based Filtering
Filter rules cannot compare fields of different types. For example, you cannot compare a Text field to a Lookup field using “equals.”
Supported field types
- Text, Number, Picklist/Multiselect/Boolean, User/Multi-User, Dept./Multi-Dept., Lookup/Lookup (Multi-Select), Country/State/City/District, Geolocation, Rollup fields, Filterable Formula fields, Filterable Reference fields
Unsupported field types
- Formula fields: Non-filterable formulas cannot be used in related filtering. To check if a formula is filterable, see the hint on the formula configuration page. If the list view cannot filter by it, related filtering won’t support it either.
- Reference fields: Non-filterable references cannot be used in related filtering. Whether a reference is filterable depends on whether “Filterable” is enabled in field settings. Some referenced types do not allow “Filterable” due to type limitations (see the tooltip for details).
- Component fields: Payment (Collection) component, Check-in component, Regional Location, Date Range. These are composite components—filter using their internal fields. For example, for Country/State/City/District, if the internal field isn’t available, filtering isn’t supported.
- Business fields: Rating, Videos, Appointment Time Slot.
- Other unsupported: Rich Text, Collaborative Rich Text, Long Text, Images, Attachments, External User, Related Business Data, Related Business Object, etc.

1.1.2 Custom Function-based Filtering
- Each condition group can include only one custom function, and the function must return a collection (record set).
- The function may return up to 500 records. If more are returned, only the first 500 are used.

1.1.3 Use Cases for Filter Conditions
Use a Primary Object’s Lookup field as a filter for a Lookup field on a related object
- Scenario 1: After an Account places an order and the manufacturer ships, shipment line items should only select Products from the corresponding Order. In other words, when adding Order Products on a Shipping Order line item, the list is filtered by the selected Order.
- Scenario 2: When converting a Quotation to an Order, the Order’s Products must come from the Quotation line items.
1.2 Data Scope on the Related Object
Used when selecting records from a related list on the target object by clicking Link to filter the candidate list.
For example, if a Purchase Requisition includes a Lookup to Account, this filter applies when you link a Purchase Requisition from within the Account.

Supported field types
- Text, Number, Picklist/Multiselect/Boolean, User/Multi-User, Dept./Multi-Dept., Lookup/Lookup (Multi-Select), Country/State/City/District, Geolocation, Rollup fields, Filterable Formula fields, Filterable Reference fields
Unsupported field types
- Formula fields: Non-filterable formulas are not allowed in related filters.
- Reference fields: Non-filterable references are not allowed in related filters.
- Component fields: Payment (Collection), Check-in, Regional Location, Date Range. Use internal fields if available; otherwise unsupported.
- Business fields: Rating, Videos, Appointment Time Slot.
- Other unsupported: Rich Text, Collaborative Rich Text, Long Text, Images, Attachments, External User, Related Business Data, Related Business Object, etc.
1.3 Default Value
You can set default values. Example: Orders relate to Accounts, and Payment Collections relate to Orders and Accounts (a triangular relationship). When creating a Payment Collection, after selecting an Order, you may want the Account Name on the Payment Collection to auto-fill from the Order’s Account. Configure the Payment Collection’s Account Name field to default to the Order’s Account Name.

1.4 What Is Triangular Filtering and How to Use It
Scenario: On Object A, the Lookup to B is filtered by: B.C = A.C

1.4.1 Impact of Triangular Filters on UX and Data Entry
- Configuration: On Object A, set the Lookup to B with filter B.C = A.C
- Create/Edit behavior: Enter C first, then select B.

- Detail page validation when linking: On a B record’s detail page, when linking A records, the system verifies that B’s C and the selected A’s C reference the same record.

- Detail page backfill behavior when creating related records from B:
- The new A record auto-fills the Lookup to B as read-only.
- For the related C field:
- If B’s C has a value, A’s C is auto-filled and read-only.
- If B’s C is empty, A’s C remains empty and editable. If you later select a value for C, the Lookup to B is cleared but remains read-only (and you still cannot pick a valid B if constraints apply).


- Web: After clearing B, the field remains read-only.
- Mobile: After clearing B, the field becomes editable.
- Read-only logic may change over time; current behavior prevails.
1.4.2 Multi-level Triangular Filters May Bypass Layout Required Rules
- Configuration example:
- On the Stock Reservation object, field “Opportunity Forecast” looks up Opportunity with the following filter:

- On the same object, field “Opportunity 2.0” also looks up Opportunity with the following filter:

- When this occurs, the filter may not take effect:

-
Root cause: 1) When creating a record from an Opportunity Forecast detail page, the system carries over both field values (Opportunity Forecast, Opportunity 2.0) and sets them to read-only. Read-only fields do not respond to layout-level “Required” rules. 2) Because Account is required but wasn’t carried over, selecting an Account triggers Lookup cascade clearing of prefilled values (such as Opportunity Forecast).
-
Resolution: Add a filter “Account Name = Stock Reservation.Account Name” to the Stock Reservation’s Opportunity Forecast field so that creating from the Opportunity Forecast detail page auto-populates the Account.
1.5 What Is Quadrilateral Filtering and How to Use It

1.6 What Is Pentagonal Filtering and How to Use It
- Configuration constraint: Object E’s primary Attribute must be a Text type; auto-increment Codes are not supported.

1.7 Front-end Constraints for Related Filters
1.7.1 Function-based Filter Constraints
Function-based filtering refers to using a function when configuring a Lookup’s filter.

When a function-based filter is configured, validation does not run when creating records from a related list (see below).

Function-based filters only apply on create/edit pages at the time of selecting data (picker dialog).

1.7.2 Filtering Differences When Adding Child Rows via a Lookup on a Sub-object
- Common issue: On the create/edit page, a Sub-object’s Lookup may show no candidates in the “Add from Lookup” dialog, but you can still select values if you “Add a Row” and fill the field directly.
- In a Sub-object grid, a Lookup can be filled per-row, or populated in bulk via a batch add button:

If the Sub-object’s Lookup filter references another Lookup on the same Sub-object, filtering results differ between per-row entry and batch add: - Filter condition example:

- When filling per row, the prerequisite is that the Sub-object’s other Lookup has a value. The filter then enforces: Target.ObjectC equals Sub.ObjectC.

- During batch add, newly added Sub rows do not yet exist, so the filter can only match target records where ObjectC is empty.

1.8 Validation Limitations When Saving Lookup Values
- If you have multiple OR groups and any conditions include triangular/quadrilateral/pentagonal/function-based filters or reference the Primary Object or current object, those conditions are skipped at save time.
- If there is only one condition group, the system removes triangular/quadrilateral/pentagonal/function-based/Primary Object/current object conditions and validates against the remaining conditions only.
- On master-detail create pages, Lookup filters on Sub-object fields are not validated at save.
- Due to these constraints, in certain cases a selected Lookup value may not meet all configured filters.
1.9 Why do mixed multi-level filters (triangular/quadrilateral/pentagonal) and standard filters in “Selectable Data Scope” sometimes not work?
- Example behavior:
1) Single condition group contains both multi-level filters and standard filters.

In related list create, the system drops the multi-level filters and validates only the standard filters. Save-time validation behaves the same way.
2) Two condition groups, e.g., [multi-level & standard] OR [standard]
In related list create and on save, the system drops the multi-level filters. This is equivalent to not validating those parts at all.

1.8 External Data Association Permission — Configuration
- “External Data Association Permission” applies only when the associated object is Account or Partner.
- Only one Lookup field per object can enable this option.
- Sub-objects cannot enable “External Data Association Permission.” If you see an error when editing a Sub-object’s definition, edit the related field and disable this option.
- This permission only applies when creating records. If you fill/modify the Lookup after creation, it does not apply.
2. FAQs
2.1 In filter configuration, what do “Fields on this object,” “Fields on related object,” and “Fields on Primary Object” mean?

Assume “Object B” is a Sub-object of “Object A,” and “Object B” looks up “Object E.” - Fields on this object: fields on B itself.

- Fields on related object: fields on the object referenced by this Lookup—in this example, on E.

- Fields on Primary Object: fields on the Primary Object of the current object. This is available only if the current object is a Sub-object. In this example, that’s A.

2.2 Why does a field become unselectable after being added to certain conditions?
When combining multiple condition types, the UI enforces these limits: 1) A single condition group can contain only one quadrilateral or one pentagonal filter branch. 2) Triangular, quadrilateral, and pentagonal filters cannot coexist within the same condition group. 3) Triangular filters cannot coexist with quadrilateral or pentagonal filters across different groups. 4) Multiple triangular filters are allowed with both AND and OR relationships (across same or different groups).

2.3 Why can’t I add an OR condition and only one group is allowed?
To add OR conditions, purchase License -> “Object list filters and scenario settings support OR” (USD 0).
After purchase, it’s enabled for custom objects by default. If a predefined object still does not support OR after purchase, contact the module owner.
2.4 When quickly selecting Lookup values, how can I show more than the primary Attribute?
The quick-pick list shows: - If “Display Field” is not enabled on the object: the primary Attribute. - If “Display Field” is enabled: the configured Display Field’s value.
If the related object’s primary Attribute is a Code, and you want richer context in quick-pick, enable the object’s Display Field.
How to enable: Object -> Basic Info -> Enable Display Field. The Display Field can use a formula to show custom content. After configuration, wait for the calculation to complete; before completion, the quick-pick list shows “–”.

2.4 When quickly selecting Lookup values, how can I show more than the primary Attribute?
The quick-pick list shows: - If “Display Field” is not enabled on the object: the primary Attribute. - If “Display Field” is enabled: the configured Display Field’s value.
If the related object’s primary Attribute is a Code, and you want richer context in quick-pick, enable the object’s Display Field.
How to enable: Object -> Basic Info -> Enable Display Field. The Display Field can use a formula to show custom content. After configuration, wait for the calculation to complete; before completion, the quick-pick list shows “–”.

2.4 Lookup shows “–”, and editing says the relationship doesn’t exist
If the related record was deleted, the Lookup field cannot resolve the display name and shows “–”. Note this “–” is different from an empty value’s “–”.
- The “–” after deletion is blue and clickable. The field still stores the related record ID. You can use a function to query using that ID.
- To process historical data, use a function; list views cannot filter these cases.
- Processing approach: Use a function to get the current record’s related ID, then query by that ID to confirm whether the related record still exists.