Decision Table Node
The Decision Table Node lets you map inputs to outputs using a visual table—no code required. Use it for routing claims, assigning adjusters, determining priority levels, or any scenario where clear rules map conditions to outcomes.Decision Tables are ideal when you have well-defined business rules that can be expressed as “if this, then that” logic. They’re easier to maintain than code and more readable than complex JSONata expressions.
Overview
Use a Decision Table Node when you need to:- Route claims to different adjusters based on type or amount
- Assign priority levels based on multiple factors
- Map codes to descriptions or categories
- Determine next steps based on customer inputs
- Apply business rules that non-developers need to update
When to Use Decision Table vs. Other Nodes
Configuration
Click on a Decision Table Node to open its configuration panel.Basic Settings
Table Structure
A Decision Table has two sections:Input Columns
Input columns define the conditions to evaluate. Each column references a field from the workflow context.Configuring Input Columns
Match Operators
Output Columns
Output columns define the values set when a rule matches. These values are added to the workflow context.Configuring Output Columns
Rule Evaluation
How Rules Are Processed
- Rules are evaluated top to bottom
- First matching rule wins (subsequent rules are skipped)
- If no rules match, outputs are set to null (or default values if configured)
Example Evaluation
Context:
Evaluation:
- Row 1: claimType equals fire? No, skip
- Row 2: claimType equals water AND amount over 50000? Yes, MATCH
- Output: priority is high, assignee is senior_adj
Insurance Examples
Route Claims by Type and Amount
Assign adjusters based on claim characteristics. Input Columns:
Output Columns:
Rules:
Result in context:
Determine State-Specific Requirements
Apply different rules based on state regulations. Input Columns:
Output Columns:
Rules:
Map Claim Codes to Categories
Translate internal codes to human-readable categories. Input Columns:
Output Columns:
Rules:
Determine Payment Routing
Route payments based on amount and type. Input Columns:
Output Columns:
Rules:
Route by Time of Day
Handle after-hours calls differently. Input Columns:
Output Columns:
Rules:
Multiple Matches and Hit Policies
By default, Decision Tables use First Match (first matching rule wins). Some implementations support other policies:Liberate uses First Match policy. Structure your rules from most specific to most general.
Best Practices
Order Rules from Specific to General
Correct Order:- fire + injuries = critical (most specific)
- fire = high
- water + over 50000 = high
- water = medium
- any = standard (catch-all last)
- any = standard (catches everything)
- fire = high (never reached)
Always Include a Catch-All Rule
Add a final rule with wildcards in all input columns to handle unexpected cases:Keep Tables Focused
One Decision Table should handle one decision:- Bad: One table for priority AND assignee AND SLA AND routing
- Good: Separate tables for each decision
Use Descriptive Names
Document Complex Rules
Add a Note Node before your Decision Table explaining the business logic:Testing Decision Tables
Test Each Rule
Create test cases that exercise each row:Test Edge Cases
- Values at boundaries (over 50000 means test with 50000 and 50001)
- Null or missing values
- Unexpected input types
- Empty strings
Test Rule Priority
Verify that more specific rules match before general rules when multiple could apply.Common Issues
Wrong Rule Matches
Symptom: A general rule matches when a specific rule should. Fix: Check rule order. Move specific rules above general rules.No Rule Matches
Symptom: Outputs are null or empty. Fix: Add a catch-all rule at the bottom with wildcards in all inputs.Unexpected Null Handling
Symptom: Rules do not match when input is null. Fix: Add explicit rules for null cases, or ensure inputs have default values before the Decision Table. Before Decision Table, use Mapping Node:Numeric Comparisons Fail
Symptom: Over 50000 does not match when amount is 75000. Fix: Verify the input is a number, not a string. Use a Mapping Node to convert if needed:Decision Table vs. Code Node
Use Decision Table when:
- Rules are straightforward if/then logic
- Business users need to maintain rules
- Auditability is important
- You have many conditions but simple outcomes
- Logic involves calculations
- You need loops or complex conditionals
- Rules cannot be expressed as simple conditions
Next Steps
Entity Table Node
Look up static reference data from CSV
Code Node
Use code for complex conditional logic
Mapping Node
Simple conditionals with JSONata
Workflow Examples
See Decision Tables in action

