Crucial Workflow Mechanics
Why this page exists
Most production issues come from a few mechanics being misconfigured: entry readiness, slot wiring, release gating, loop bounds, and output path semantics. This page is the fast, practical reference for those mechanics.
1) How workflows start correctly
A workflow starts when at least one entry path is executable.
Checklist:
- Entry node has valid input context.
- Optional slots are populated (unless intentionally Optional).
- No accidental
Activated/Delaysetting blocks entry execution. - First route is correctly connected to downstream input slot.
Typical entry nodes:
- Buffer (manual input/start payload)
- Reader (file/API/cloud ingestion)
- Global(Get) for automation parameters
2) How to connect nodes via slots
Slots are explicit data contracts.
Rules:
- output slot N should map intentionally to input slot M
- use
$Nreferences consistently with your slot map - document slot meaning for high-impact branches
Quick example:
Reader slot 1 -> Code input 1 -> Decision input 1 -> Writer input 1
3) How Optional, Activated, Keep, and Delay actually work
These four flags control eligibility and state behavior. They should be set intentionally with explicit scope:
Optional: per input slotKeep: per input slot (except Buffer nodes, whereKeepapplies across all slots when selected)Activated: per nodeDelay: per node (step/cycle based)
UI indicator note:
Optionalappears asOand is blue when selected.Keepappears asKand is green when selected.
| Flag | What it does | When to use | Common failure mode |
|---|---|---|---|
Optional | Makes a slot non-blocking for execution eligibility | Inputs that are genuinely non-critical for the current branch | Marking critical slots optional, then getting partial-context execution |
Activated | Requires activation signal before the node is allowed to run | Writer/API branches, approval-gated branches, policy-sensitive side effects | Enabling Activated without providing activation edges |
Keep | Retains slot value across cycles/iterations (Buffer exception: applies across all slots when selected) | Controlled iterative refinement, convergence memory, stable context carry-forward | Over-retaining stale values and creating hidden branch coupling |
Delay | Defers eligibility by step/cycle count | Intentional debounce/stagger behavior, wait-before-retry patterns | Accidentally delaying the only eligible entry branch |
Practical guidance:
- Default to blocking slots; add
Optionalonly with a clear reason. - Use
Activatedfor release control, not as a generic troubleshooting switch. ConfigureActivatedwith a matching activation edge. - Use
Keeponly where state persistence is part of the design contract. Configure per slot except on Buffer nodes. - Use
Delayas an explicit step-based control with documented expected behavior.Delayis configured in graph steps/cycles, not wall-clock seconds.
4) How activation edges should be used
Use activation edges when data should arrive before execution permission is granted.
Classic pattern:
- data edge carries payload to Writer
- activation edge from Decision/approval releases Writer execution
Use this for:
- customer-impacting updates
- financial or legal side effects
- any branch requiring review before mutation
5) How to keep loops bounded
NodeFox supports loops, but loops must be bounded.
Minimum controls:
- explicit pass condition
- explicit retry condition
- Decision
Maxiteration bound - explicit fallback/default route when bound is reached
Avoid:
- loop branches with no Max
- loops that can re-enter high-cost side effects without gating
6) How file export/output works
For direct downloadable file output, use Writer path with ./ prefix.
Examples:
./summary.txt./report.csv./evidence-package.json
Without ./, output follows registered directory or internal path behavior.
7) How to make behavior auditable
Before production rollout:
- verify branch outcomes are deterministic and inspectable
- verify high-impact actions are activation-gated
- verify loop bounds and fallback routes are present
- verify output destinations and path semantics
- verify acceptance/policy checks where optional