Skip to content

Execution order

Execution order answers one question: when is a node allowed to run?

Agentic WorkFlow follows the connections in the workflow. A node can run after its required upstream nodes have finished and produced the data it needs. In simple workflows this feels linear. In branching workflows, it becomes important to understand waiting, joining, and page state.

flowchart LR
  T["When Started"] --> A["Get All Text"]
  A --> B["Basic LLM Chain"]
  B --> C["Display Markdown"]

This workflow runs from left to right. Each node receives the output of the previous node.

When one node connects to multiple downstream nodes, each branch can do its own work.

flowchart TB
  T["When Started"] --> A["Get All Text"]
  T --> B["Get Page Metadata"]
  A --> C["Summarize text"]
  B --> D["Format metadata"]
  C --> E["Merge"]
  D --> E

The text branch and metadata branch do not depend on each other. The merge step is the point where they must be brought back together.

A node with multiple incoming connections is a join point. It should not be treated like a normal single-input step. The node needs enough upstream context to decide what input it should use.

flowchart LR
  A["Branch A done"] --> J["Join node"]
  B["Branch B still running"] --> J
  J --> N["Next step"]

  style J fill:#fff3e0,stroke:#ef6c00

If the downstream step needs data from both branches, use Merge explicitly. If the downstream step only needs one branch, keep the connections separate to avoid accidental cross-input behavior.

In-page actions do not just pass data. They can change the active page.

sequenceDiagram
  participant W as Workflow
  participant P as Browser page
  W->>P: Click button
  P-->>P: DOM updates asynchronously
  W->>P: Read result too early
  P-->>W: Old or incomplete data

When a node clicks, submits, scrolls, or changes the page, add a Wait or Wait For Element before reading the next page state.

  • Put data-producing nodes before data-consuming nodes.
  • Use Filter before expensive steps like AI or external API calls.
  • Use Merge when two branches must be joined intentionally.
  • Use Loop when a branch should repeat until a condition is reached.
  • Use Stop and Error when continuing would create bad data.
  • Add waits around browser actions that trigger page changes.