Skip to main content

Action system overview

The action system runs on event hooks (onChanged, onCreated, onBeforeSave, onAfterSave) and provides template automation without writing scripts.

Action input formats

Actions can be specified as:
  • A single action string
  • A pipe-delimited chain: action1 | action2
  • A JSON array string
  • A programmatic string array

Conditional actions

Actions can be guarded with a when clause:
The condition language includes: See Templates and syntax for the full conditional expression reference.

Runtime variables

Common runtime variables available in action expressions: Nullish fallback is supported: ${selectedObject.DefaultStatus ?? "New"}

Built-in actions

Practical action patterns

Refresh dependent lists

Capture previous state

Conditional workflow update

Validation gate on save

Scripting

Integration paths

There are three ways to integrate scripts:
  1. autofillScript on EditableField — field-triggered autofill
  2. ScriptButton — explicit user-triggered execution
  3. callScript action — part of an action chain

Script types

Caseflow uses three script types:
Triggered by field changes. The request context includes:
  • Application name
  • Class name
  • Object ID
  • Trigger attribute and value
  • Target attribute list
The expected result is a values map ({"values": {...}}) which is applied to the target attributes.

ScriptButton vs callScript

  • Use ScriptButton for explicit user-triggered operations — “run this script now”
  • Use callScript action when the script should be part of an action chain, typically as a side effect after a change or save

Error handling

  • Script failures can trigger toast feedback
  • onError hooks can execute fallback actions
  • throwError can intentionally halt save/action chains with user-facing messages
See ScriptButton and SaveButton for component-specific details.