Process Stepper

Process stepper displaying workflow steps and the item's current status.

Widget description: stepper

The process stepper shows the stages of a process (for example Draft, Pending approval, Approved, Completed) and highlights which step the item is currently in. The current step is determined by the value of a single column, most commonly a choice field. The widget is display-only: it does not change the status. Status changes are made by the user in the field or via a custom button. It is a virtual widget and is not saved to the item.

Process Indicator widget settings: status source field, orientation, title, and list of steps with label and value

Adding to the form

  1. On the Widgets tab, select Process Indicator and drag it into a section.
  2. In the inspector, select the Status source field.
  3. Click Load steps from choices to generate steps from the column's choices, or add them manually with the + Step button.

A new widget contains four sample steps (Draft, Pending approval, Approved, Completed) and spans the full width of the section.

Inspector settings

OptionPropertyDescriptionDefault
Status source fieldstepperConfig.sourceFieldInternal name of the field whose value determines the current step. Text, choice, lookup, number, and metadata fields are offered (no widgets).not selected
Load steps from choices (n)stepperConfig.stepsButton that replaces all steps with the choices of the selected field (both label and value = choice text). Shown when the field has choices.
Indicator orientationstepperConfig.orientationhorizontal (Horizontal) or vertical (Vertical).horizontal
Title above indicatorstepperConfig.titleOptional heading; supports placeholders such as Progress: [Title].empty
StepsstepperConfig.steps[]List of steps. Each has a Label (label, text next to the node) and a Value (value, column value matching the step). An empty value means the label is matched. Steps can be removed, or added with + Step.4 sample steps
Clickable stepsstepperConfig.interactiveIn Edit and New mode, clicking a step writes its value (value, otherwise label) into the source column and marks the form as changed. The change is not saved automatically; save it with the regular Save button. In display mode, when the source column is read-only (setReadOnly rule, permissions, unloaded field) or when the stepper itself is read-only, steps are not clickable. Steps are keyboard-operable buttons (Tab, Enter, Space); the current step has aria-current.off
Require confirmationstepperConfig.confirmStepChange, stepperConfig.confirmMessageA dialog with Confirm and Cancel is shown before the step changes. The text can be set ({step} is replaced by the target step label; the text is translatable), otherwise the default "Change the status to ..." is used.off
Width in section, VisiblecolSpan, defaultVisibleCommon options shared by all widgets.12, yes

Runtime behavior

Text translations

You can translate customLabel, stepperTitle, and step labels in stepperSteps (keyed by step id, with a string or an object containing label). Step values (value) are not translated because they are matched against data. See Translations and Multilingual Forms.

Rules and scripts

Two steppers side by side, horizontal and vertical, with the third step active. Completed steps are green, current is blue, others are gray

Configuration example (JSON)

{
  "internalName": "widget_stepper_stav",
  "customLabel": "Approval progress",
  "fieldType": "stepper",
  "colSpan": 12,
  "defaultVisible": true,
  "stepperConfig": {
    "sourceField": "Stav",
    "title": "Request: [Title]",
    "orientation": "horizontal",
    "steps": [
      { "id": "step_1", "label": "Draft", "value": "Draft" },
      { "id": "step_2", "label": "Pending approval", "value": "Pending approval" },
      { "id": "step_3", "label": "Approved", "value": "Approved" },
      { "id": "step_4", "label": "Completed", "value": "Completed" }
    ]
  }
}

Here, the Stav field is a standard choice field with the same values.

Limitations and tips