FlowDrop Workflow Specification 1.0-draft

Naming a firing trigger drops the other triggers

The rule

Normative: this is the rule
  1. Where a run's initial data names a trigger node, direct synchronous execution runs that trigger node and drops the workflow's other trigger nodes.
  2. Where it does not, the compiled order runs verbatim.
  3. Nodes that are not triggers are never filtered.

What it means

The filter is opt-in, keyed only on whether a run's initial data names a trigger node. Naming one selects exactly that trigger to run and drops every other trigger node the workflow declares — but only trigger nodes are ever dropped this way; anything downstream of the firing trigger still runs exactly as compiled.

Leaving the name out — a manual or externally launched run, rather than one started by a specific trigger firing — runs the compiled order verbatim, trigger nodes included.

Example

A workflow with two trigger nodes feeding a shared step, launched two ways:

A run naming the trigger that firedfiltered
{ "trigger_node_id": "cron_trigger" }
The compiled order, filtered to that triggerfiltered
["cron_trigger", "worker"]
A run naming no trigger at allunfiltered
{}
The compiled order, run verbatimunfiltered
["cron_trigger", "webhook_trigger"]
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · ORC-8 · changed in spec 1.0