Child tables

How do I run a workflow step only when a child table column has values?

Concatenate the column into a hidden aggregation field, then use not(isBlank(...)) as the step condition.

How-to

Short answer: Step conditions can't read table columns directly. Concatenate the column into an aggregation field, then check that field isn't blank.

Why it happens

Fields outside a table, including step conditions, can reach table data only through an aggregation field.

How to fix it

  1. Outside the table, add an aggregation field.
  2. Turn on Aggregate table data in the context of a single item of the process, select the table and column, and choose CONCATENATE.
  3. Hide the field from users.
  4. On the step, under When does this step happen?, select Based on condition and enter not(isBlank(Aggregation_field)). See conditional steps.
  5. Run Simulate to check the step runs only when the column has values.

Step conditions must be logical expressions, so not(isBlank(...)) works where a plain field reference wouldn't. When the condition isn't met, the item's workflow shows the step as Skipped, and a small badge on the step in the editor marks it as conditional.

The same aggregation field can drive other rules too, such as a branch condition or a Submit validation that requires at least one row with a value.

Related answers