You are here:
Lookup Tables: When to Use Which
Business Rules Engine has two types of lookup tables—decision matrices and decision tables. To help you decide which type to use for your business requirements, let’s look at the similarities and differences in them.
Required Editions
| Available in: Lightning Experience |
| Available in: Enterprise, Unlimited, and Developer Editions for clouds that have Business Rules Engine enabled |
Decision matrices are exact-match based lookup tables that match your inputs to values in a row, and return the row’s output. Decision tables are complex lookup tables that match your inputs to values in multiple rows, if applicable, and return multiple matching outputs.
| Functionality | Decision Matrix | Decision Table |
|---|---|---|
| Use sObjects and custom objects to create a lookup table | Not supported | Supported |
| Read rules from sObjects | Not supported | Supported |
| Use in flows | Supported | Supported |
| Have multiple rows with same input values, but different output values | Not supported | Supported |
| Update table data using a CSV file | Supported | Supported |
| Generate CSV file from table | Supported | Supported only for CSV-based Decision Tables |
| Edit table data directly | Supported | Supported only for CSV-based Decision Tables |
| Create, manage, and activate versions | Supported | Not supported |
| Look up a column using a single operator (equals to) | Supported | Supported |
| Look up a column using multiple operators (less than, more than, contains) | Not supported | Supported |
| Use row-level conditions. Example: If a table has three inputs columns, include a row-level condition that returns an output if row 1 and either row 2 or row 3 have matching values. | Not supported | Supported |
Let’s look at some use cases where you’d have to look up a table for values. Let’s also look at which lookup table type you can use for the specific use case.
| Use Case | Decision Matrix | Decision Table |
|---|---|---|
| Look up a table for an exact match of values or a range of values | Supported | Supported |
Look up a table that has versions grouped by a key. For example, a table with insurance premium rates, where each version has rates for a different state. |
Supported | Not supported |
| Look for an exact match of your input values in a table that has over 300 columns and over a million rows. | Supported | Supported |
| Call a lookup table in an Omniscript. | Supported | Not supported |
| Look up exact values or ranges in table with less than 10 input columns and less than five output columns | Supported | Supported |
| Look up a table using different operators for each input column. For example: less than, greater than, equals, not equals, or matches. | Not supported | Supported |
| Use the data in sObjects or custom objects to perform a lookup and get the output. | Not supported | Supported |
| Look up a column that supports picklist values. | Not supported | Supported |
| Call a lookup table in a flow. | Supported | Supported |

