Workflows
Workflows define how tasks trigger based on the results of upstream tasks. By default, a downstream task runs only when its upstream dependency succeeds. With workflows, you can also trigger a task on failure or completion of its upstream dependency.
Dependency Conditions
Each dependency has a condition that determines when the downstream task runs:
| Condition | Description |
|---|---|
| Succeeded | Runs when the upstream task completes successfully (default) |
| Failed | Runs when the upstream task fails |
| Completed | Runs regardless of whether the upstream task succeeds or fails |
Creating Dependencies in the Graph
- Open your production line's Graph view
- Hover over a task node to reveal three colored handles on the right side:
- Green = Succeeded
- Red = Failed
- Blue = Completed
- Click on the appropriate handle, then click again on the downstream task
Connection lines are color-coded to show the dependency type.
Creating Dependencies via Properties
- Select a task to open its properties panel
- Scroll to the Workflow section
- Search for and select an upstream task
- Choose the condition from the dropdown (Succeeded, Failed, Completed)
- Click Add Dependency
AND/OR Logic
When a task has multiple upstream dependencies, you can control how they combine:
| Logic | Behaviour |
|---|---|
| ALL | Task runs when all dependencies meet their conditions |
| ANY | Task runs when any single dependency meets its condition |
Set this using the dropdown in the Workflow section: "This task will run if ALL/ANY of the dependency conditions are met".
Example: ANY logic
Use ANY logic when a task should run after any one of several possible predecessors completes. For example, a cleanup task that runs after either the success path or error path finishes.
External dependencies
Tasks can depend on tasks from other production lines. This avoids duplicating work when multiple pipelines share common upstream processing.
To view external dependencies in the graph, click Show External in the graph toolbar.
Common patterns
Error handling: Create a task with a "Failed" dependency to send notifications or run cleanup when something goes wrong.
Always run: Use "Completed" for tasks that must run regardless of upstream success—like logging, cleanup, or finalization steps.
Parallel paths: Use ANY logic to continue after the first of several parallel tasks completes.
What's Next?
- Scheduling Production Lines — Run workflows on a schedule
- Monitoring & Troubleshooting — Track workflow execution