Workflows

Workflows are Pipe Bomb's automation system. A workflow is a sequence of steps that runs when a trigger fires.

Concepts

  • Trigger - watches for a condition and activates the workflow when it fires (e.g., a cron schedule, server startup)
  • Step - an action that runs as part of the workflow (e.g., scan all libraries, run a task, run another workflow)
  • Workflow - a named trigger + ordered list of steps

Each workflow has at most one trigger and any number of steps. Steps run in order; if a step fails, the workflow stops.

Built-in triggers

Trigger ID Description
server-start Fires once, ~5 seconds after the server finishes starting
cron Fires on a cron schedule (standard 5-field cron expression). Optional "allow rerun" setting controls whether the workflow can run again if it's still running from the previous fire.

Plugins can register additional triggers via the workflow client (see development/Workflow-Steps).

Built-in steps

Step ID Description
run-workflow Activates another workflow. Options: which workflow, allow rerun, wait for finish.
run-task Runs a task and waits for finish. Options: which task and subtask.

Plugins can register additional steps via the workflow client (see development/Workflow-Steps).

Creating a workflow

  1. Go to Settings → Workflows
  2. Click the plus button - give it a name
  3. Add a trigger - choose the trigger type and configure its options
  4. Add steps - pick step types in order and configure each one
  5. The workflow is live immediately after saving the trigger

Workflow state

A workflow is either idle or running. If a trigger fires while the workflow is already running:

  • If "allow rerun" is enabled on the trigger, a second instance starts
  • Otherwise the fire is ignored

Options system

Both triggers and steps can declare typed options that are configured in the UI:

Option type Values
string Free text
boolean Checkbox
integer Whole number
decimal Decimal number
enum Dropdown from a fixed list

The enum option list is dynamic - for example the "run-workflow" step's workflow picker is populated from the live list of workflows.