> 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.

# Quickstart

You'll build a two-node flow by hand: one node imports a sample of a public dataset from [Dataset Ninja](https://datasetninja.com), the second profiles it and produces a report. Along the way you'll meet the three things every flow is made of — nodes, edges and references.

```mermaid
flowchart LR
  import["Import from Dataset Ninja"] --> quality["Annotation quality"]
```

You need an OvalBee account and a workspace where you can edit flows. No GPU, no data of your own and no labeling are needed.

#### Create a flow

On the **Home** page, click **Start from scratch**. A blank canvas opens with the **AI Chat** panel next to it. Close the panel for now — you'll build this one yourself.

#### Add the import node

Double-click the empty canvas to open the node picker, search for **Import from Dataset Ninja** and click it, then click the canvas to place it. The node's sidebar opens on the right.

#### Choose a dataset

In the sidebar, open the Dataset Ninja picker and choose a small dataset from the catalog — for example *PCB Component Detection*. Set **Import size** to **Sample**, so only the smaller published sample is downloaded.

In **Destination dataset**, type a new name such as `Quickstart sample` and press **Create**. You've just created an empty dataset that the import will fill.

#### Run the import

Click **Run node** at the bottom of the sidebar. The node shows its progress on the canvas. Open the **History** tab in the sidebar to watch the logs live.

When the run completes, the images and their annotations are in the `Quickstart sample` dataset. You can also find it under **Storage** in the main sidebar.

#### Add the report node and connect it

Add an **Annotation quality** node below the import node. Drag from the small handle at the bottom of the import node to the new node to draw an edge.

OvalBee notices that **Annotation quality** needs a dataset and that the import node produces one, and asks **Set variable binding?** Click **Set binding**.

#### Run it and open the report

Select **Annotation quality** and click **Run node**. When it completes, click **Open report** on the node. The report profiles the dataset: statistics about its images, classes and annotations, with charts you can drill into.

## What you just built

Look at the flow again with these in mind:

* **Two nodes.** Each one is a step that runs on the platform, keeps its own run history and shows its latest result on the canvas.
* **One edge.** It means "run Annotation quality after the import succeeds". From now on, whenever the import runs, the report is rebuilt right after it without you starting it.
* **One reference.** The edge doesn't carry the dataset. The dataset input of Annotation quality *references* the import node's output — that's the binding you accepted. Select the node and look at the input: it shows which node and output it's bound to, and its current value.

Every flow in OvalBee, from a two-node import to a forty-node labeling operation, is built from these same pieces. [Edges](/concepts/edges) and [References](/concepts/references) explain them properly.

## Next steps

#### [Do it with an agent](/build/agent)

Open AI Chat on a new flow and ask for the same thing in one sentence.

#### [Start from a template](/build/templates)

Labeling with review, detector training and evaluation, ready to adapt.

#### [Organize labeling](/use-cases/organize-labeling)

Turn the imported dataset into reviewed annotations.

#### [Train a detector](/use-cases/train-a-detector)

Split the dataset and fine-tune a model on it.