Portal Community
No configuration required. The Finally Block node has no configurable properties. It is a structural node that marks the start of an unconditional cleanup scope. Simply place it after the Catch Block node in your workflow and connect the nodes that should always run.

Minimal Configuration Object

{
  "nodeType": "FinallyBlock",
  "id": "finally_payment_cleanup",
  "label": "Finally — Payment Cleanup"
}

Placement and Scope Rules

Variable Availability in Finally Scope

The following data is accessible in all nodes connected to the Finally Block's success port:

Variable / Context Available? Notes
Workflow variables ($var.*) Yes All variables set before and during both try and catch scopes are accessible.
Exception variables ($mem.__exception_*) If error occurred Populated if an exception was caught. Null/absent if the try scope succeeded. Use $mem.__exception_type__ != null to distinguish outcomes.
Execution context ($ctx.*) Yes Workflow instance ID, run ID, definition ID, and timestamps always available.
Node outputs ($nodes.*) Partial Outputs from nodes that executed before the exception are available. Outputs from the exception-throwing node and nodes that were skipped are not.
Detecting outcome in Finally: To write different audit log entries for success vs. error, use an If Condition node as the first node inside the finally scope with the expression $mem.__exception_type__ != null. The true path handles error cleanup; the false path handles success cleanup. Both paths can then converge on a common log node.