> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ovalbee.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ovalbee.com/_mcp/server.

# Nodes

A **node** is a single step in a flow: import images, filter a dataset, open a labeling queue, train a model, compare two detectors. Every node on your canvas is a placed copy of a **node template** from the [Node Library](/node-library/nodes/overview). The template says what the node does and which inputs it takes, and your copy holds the values you chose.

## Anatomy of a node

![A selected Label diagnostics node with its sidebar open on the Input tab, showing a dataset input bound to another node, and the Run isolated button](/_fern-files/_img/ad7bf5850c78089378c149eb997e29a3840d139846c132c9a566228600c0ba85.webp)

On the canvas a node shows:

* **Its name and icon.** Rename a node, change or hide its icon with **Edit node** (press `E`). The template's name stays visible in the sidebar.
* **A widget** with the node's main result: a preview of the images in a dataset, an **Open report** button, an **Open annotation tool** button, a file drop zone for imports, a table of who is labeling what. You can change or remove the widget in the **Widget** tab.
* **Badges** for things worth noticing at a glance: a count from the last run such as *11 findings*, a clock when the node has a schedule, a red warning when a required input is missing.
* **A status** while it runs, and for a while after.

Select a node to open its **sidebar**:

| Tab         | What's in it                                                                                                |
| ----------- | ----------------------------------------------------------------------------------------------------------- |
| **Input**   | The node's inputs, grouped into sections. Each input holds a value or a reference to another node's output. |
| **Output**  | What the last successful run produced: datasets, models, reports, numbers.                                  |
| **History** | Every run of this node, with its inputs, outputs, logs and artifacts.                                       |
| **Widget**  | Which preview the node shows on the canvas.                                                                 |

The **Run node** button sits at the bottom of the sidebar. The cog next to it opens the node's automation settings, such as a schedule. The **Documentation** link in the sidebar header opens the node's page in the Node Library.

## Inputs

Inputs are what a node needs to do its job. They come in many types: a dataset, a model, an ontology with a selection of classes, a secret, a list of people, a number, a choice from a list, a text prompt, a tag filter.

Each input is either:

* **a value** you type or pick in the sidebar, or
* **a reference** to an output (or input) of another node in the same flow. The input then shows which node it's bound to and its current value.

Required inputs that are still empty mark the node with **Needs configuration**, and a node that requires configuration won't run until they're filled. Rarely used inputs are folded into collapsed sections of the Input tab.

References are the only way data moves between nodes — see [References](/concepts/references).

## Outputs

When a run succeeds, the node publishes its **outputs**: the dataset it wrote, the model version it trained, the report it built, a number such as an accuracy score. Other nodes reference these outputs as their inputs. A new successful run replaces the node's outputs with fresh ones, and the History tab keeps what earlier runs produced.

Some outputs are marked as **artifacts**, which means they're shown and downloadable with the run in its History record.

## Statuses

| Status                     | What it means                                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Waiting / Preparing launch | The run is queued or its container is starting. The first run of a node can take longer while its image is pulled. |
| Running                    | Work in progress, with a progress indicator when the node reports one.                                             |
| Completed                  | The run succeeded. The checkmark fades after a while — the History tab keeps the record.                           |
| Failed                     | The run stopped with an error. The error and the logs are in the History tab, and the chain downstream stops here. |
| Cancelled                  | Someone stopped the run.                                                                                           |

A node with no status icon simply hasn't run recently.

## Where nodes run

Most nodes run as containers on the compute your workspace uses. Its run button names the class of machine it runs on, with the price on OvalBee Cloud, and the arrow next to it lists the other classes it can run on. A new node follows the class marked **Default** for the kind of machine it needs, and keeps following it if your administrator changes the default; pick another class to keep the node on it, or the **Default** one to go back. A node only offers classes it can actually run on — a node that trains or runs models offers GPU classes only — and warns you when no class fits it. Flow control nodes such as **Run flow** and **Wait** are handled by the platform itself and don't start a container. Where the compute comes from is decided by your administrator, see [Compute](/administration/compute).

## Template updates

A placed node reads its configuration — its inputs, outputs and what it runs — from the version of its template it was added from. When the Node Library updates that version, every node placed from it follows at once, and your input values are kept. A new version of a template is placed as a new node: the nodes already in your flows stay on their version. A node whose template version is no longer installed is shown as unavailable and doesn't run.

## Custom nodes

In the private beta, the Node Library is maintained by OvalBee. If your process needs a step the library doesn't have — your own model, an internal service, a proprietary format — talk to your OvalBee contact. Building such nodes with you is part of onboarding.

## Related pages

* [Node Library](/node-library/nodes/overview) — every node, with its inputs, outputs and behavior.
* [Edges](/concepts/edges) and [References](/concepts/references) — ordering nodes and passing data between them.
* [Runs and automation](/concepts/runs) — how and when nodes run.