Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Full Decision Table entry
How-to guide

How to create a Decision Table in OmniStudio

Decision Tables are built in the OmniStudio Business Rules Engine Designer. The fastest path is to start with a CSV of your rules and import; the Designer then lets you refine inputs, outputs, and version the table for deployment.

By Dipojjal Chakrabarti · Founder & Editor, Salesforce DictionaryLast updated May 20, 2026

Decision Tables are built in the OmniStudio Business Rules Engine Designer. The fastest path is to start with a CSV of your rules and import; the Designer then lets you refine inputs, outputs, and version the table for deployment.

  1. Open the BRE Designer

    OmniStudio app, then Business Rules Engine tab, then Decision Tables, then New. Give the table a name (PriceTier_ByQuantity, EligibilityCheck_ByState) and a brief description.

  2. Define input and output columns

    On the Columns tab, add input columns one per condition (Quantity, State, CustomerType) and output columns one per result (PricePerUnit, DiscountPct, Notes). Choose the right data type for each: numbers, picklists, and dates have distinct comparison semantics.

  3. Add rule rows

    On the Rules tab, add a row per rule. Fill in the input cells with values, ranges (10..50), or comparison operators (>= 100). Fill in the output cells with constants or formulas. Order matters in first-match mode: put the most specific rules at the top.

  4. Import from CSV if you have one

    From the Designer, use Import to upload a CSV. Map the CSV columns to input and output column definitions. The Designer warns about type mismatches and unmapped columns before committing.

  5. Save and activate the version

    Save the draft. When the rules look right, click Activate. The previous active version is automatically deactivated, and incoming requests start hitting the new rules.

  6. Invoke from an Expression Set

    In an Expression Set, add a Decision Table Lookup step. Pick your table, map the request's fields to the input columns, and route the output columns to subsequent steps or to the response.

Key options
First Matchremember

The engine returns the first row whose inputs match. Order-sensitive rules belong here. Default for most policy and eligibility tables.

All Matchremember

The engine returns every matching row. Used for cumulative logic like layered fees or stacked discounts.

Input column typesremember

Numeric, picklist, text, date. Typed inputs are indexed for fast lookup; free-text inputs are not.

Output column typesremember

Constants, formulas, or references to other tables. Formula outputs let you compute derived values without a separate calculation step.

Gotchas
  • First-match order matters. A general rule above a specific one shadows the specific one. Always test edge cases after reordering.
  • Activation deactivates the prior version. There is no automatic A/B test; if you need staged rollout, route different request types to different table names.
  • CSV imports overwrite existing rows. The Designer warns you, but a careless import can wipe your tuned table. Export first, then import the edited version.
  • Decision Tables are part of OmniStudio. Orgs without OmniStudio licensing do not have access; check the licensing constraint before designing around them.

See the full Decision Table entry

Decision Table includes the definition, worked example, deep dive, related terms, and a quiz.