Portal Community

subscribeToWorkflowStream()

const { subscribeToWorkflowStream } = useExecutionSignalR(executionId);

subscribeToWorkflowStream((event) => {
  if (event.type === 'WorkflowExecutionCompleted') {
    designerModeStore.setExecutionComplete(event.status);
    observerStore.setStatus(event.status);
    // Trigger: disconnect SignalR, show Run Again button
  }
});

Workflow-Level Event Types

EventWhen FiredKey Payload Fields
WorkflowExecutionStartedExecution begins processing first nodeexecutionId, startedAt, totalNodes
WorkflowExecutionCompletedAll nodes finish (success path)status, totalDurationMs, completedAt
WorkflowExecutionFailedUnhandled error terminates executionstatus, failedNodeId, errorMessage
WorkflowExecutionCancelledUser clicked Cancelstatus, cancelledAt, cancelledBy
WorkflowExecutionPausedUser clicked Pausestatus, pausedAt, pausedNodeId
WorkflowExecutionResumedUser clicked Resumestatus, resumedAt
WorkflowExecutionProgressEmitted every N nodes (batch progress)completedNodeCount, totalNodeCount, percentage

Client Reaction to WorkflowExecutionCompleted

1

Observer Panel Status Updates

Execution Status tab badge changes to Completed (green) or Failed (red). Duration is finalised.

2

Top Toolbar Updates

Pause and Cancel buttons hide. "Run Again" button appears.

3

SignalR Disconnects

The client leaves the execution group and stops the connection. No more events are expected.