Sobmit Docs

Core concepts

Sobmit is built around a small number of concepts. Once you understand these, the whole app makes sense.

Flow

A flow is a directed graph of nodes connected by edges. It is the thing you save, share, run, schedule and trigger. A flow has a name and, when saved, a public short-id URL.

Node

A node is one step in the flow. Every node has a kind (Agent, HTTP Request, Image Generation, …) and a configuration (the model, the URL, the prompt, …). The configuration is edited in the inspector when you select the node.

Nodes are grouped into three categories:

  • Input — sources of data (Start, Prompt, Upload File, Agent, Router).
  • Tools — things that do work (HTTP Request, MCP, Web Search, image/video/audio/3D generation, documents).
  • Output — the terminal Output node.

Edge

An edge connects one node’s output to another node’s input. Edges are directional: data flows from the source node to the target node.

An edge can target a specific handle (for example an Agent’s prompt handle versus its file handle), which tells the target node how to treat the incoming data.

Handles

Handles are named inputs and outputs on a node. A node may have several target handles, each accepting a different kind of data:

  • An Agent has In (main line), prompt (instruction override) and file (files/PDFs).
  • An Image Generation node has prompt and images.
  • A Video Generation node has prompt, first, last and references.

Wiring into the right handle is what makes multi-input nodes behave correctly.

Payload

The payload is the data that travels along an edge. It starts as the run input, then each node transforms it and hands its result to every connected successor. A payload can be a string, a JSON object, an image ({ dataUrl, mime }), a video, an array of files, and so on.

Run

A run is one execution of the flow. The engine:

  1. Validates the graph.
  2. Starts at the Start node.
  3. Walks the graph, executing each node in dependency order.
  4. Collects the result at the Output node (or the last terminal node).

Runs are durable: the workflow SDK checkpoints every step, so a long run survives a server restart. Fan-out means a node’s result can be delivered to several successors, and those successors run in parallel waves.

Handles vs. data edges vs. flow edges

There are two kinds of wiring:

  • Data edges — the default. The source’s full result becomes the target’s payload.
  • Flow edges — an edge into a prompt handle extends instructions instead of replacing the payload, so a search result can reach a model while a fixed Prompt node provides the instructions.

Input nodes (floating pre-evaluation)

A Prompt or Upload File node with no incoming edge is a floating input. Its value is evaluated once for the whole graph and can be referenced by any node. This is how a fixed prompt or an uploaded file feeds a node without being wired through the Start node.

Templates

Some fields support dot-path templates like {input.question} or {outputs.<node-id>}. They are resolved against the run context at execution time — useful for pulling a value from the run input or from an earlier node’s output.

Next