Double-click a node (or select it and press Enter / F2) to open Node details: a three-column dialog.
| Column | Shows |
|---|---|
| Input | Items of earlier nodes. Pick which earlier node from Earlier node (the nearest one first). |
| Parameters / Settings | The node's name, fields (Parameters tab), its common settings and its description (Settings tab: what it does in this flow and why, shown under the node; the agent reads it), with who made it and who changed it last ("Created by Muhammad (via agent) · 2 h ago"). |
| Output | This node's items from the last run (with how many were cut past 1 MB), or its expected shape before any run. |
Below the lg breakpoint the three columns become tabs: Input, Parameters, Settings, Output.
Parameters
Each field follows its kind. Dataset pickers (account, AI key, credential, table) list only what you may use; a credential picker lists only the types its field accepts; when there is none, they link you to Dataset.
Fixed value or expression
Every field can hold a fixed value or an expression:
- Text fields take expressions inline: type
{{and the value picker opens with every earlier node's fields,vars,nowand the helpers. - Number, yes/no and option fields switch with Use an expression (or press
=in the field), then take text like{{ nodes.collect.output.items | length }}. - Insert value opens the same picker. Helpers apply a helper to the last
{{ … }}in the field. - Below the field, a live preview shows what the expression gives with the data from the last run.
- On wide screens, drag the edge between Input and Parameters, or between Parameters and Output, to resize the columns (arrow keys work on a focused edge; double-click it for the default split). The widths are remembered in this browser (
localStoragekeymooflair.studio.detail.width). - Long fields (text, prompts, JSON, code) and the preview under them can be resized by dragging their bottom corner. The height you drag is remembered in this browser for that field on every node of the same type (
localStoragekeymooflair.studio.field.size); it isn't saved in the flow, so others keep their own.
Drag fields from the data panels
In Input and Output, switch the view between Schema, Table and JSON. Schema and JSON show one item at a time (Item 2 of 5, with ‹ › and the dot it left through); Table shows every item as a row. Drag a field from Schema or Table onto a parameter: from the node right before it drops in as {{ item.<path> }}, from any other as {{ nodes.<id>.output.<path> }} (that node's item linked to this one).
Files
An item with shows them as chips above the data: key, name and size. Drag one from the node right before as {{ file.<key> }}. Click it to preview (PNG, JPEG, GIF, WebP, PDF) and Download. Both load from the engine's file host through a 10-minute link, never from mooflair.
Before the first run, Schema shows the node definitions' output shapes ("From the node's schema, no run yet"), so you can map values right away.
Settings
| Setting | What it does |
|---|---|
| Retries, Wait between retries (ms) and Wait between retries (the same each time, or doubling) | Try again after a failure. |
| On error | Stop the run · Ask a human · Use the error dot · Continue with an output (Output instead (JSON)) · Drop the item · End the run as succeeded · End the run and undo · Save to resume later (Resume attempts, Minutes between attempts). Each says what it does under the select. See . Nodes whose writes a rollback can undo say so here. |
| Timeout (ms) | The step fails after this long. |
| Browser | The named browser the node acts in (x, shopee, threads…). Empty: its type's default, else the one the run used last. The field suggests the names this flow already uses. |
| Items per batch and Wait between batches (ms) | After every that many items, wait (rate limits). 0: no batches. |
| Items at once | Works on that many input items at the same time, each in its own tab (plans with lanes). The node shows ∥N while several run. |
| Branches | One after another, or At the same time (lanes): each outgoing edge goes on in its own lane, with Lanes at most (0: no limit). Joins wait for every lane that can still reach them. The node shows a split icon. |
| Only the first item | Runs once, for its first input item. |
| Always output | With no input items, still sends one empty item so the branch goes on. |
| Disabled | The run passes its items straight through. |
Pin an output
On the Output column press Pin these items (or p on the canvas). The node then isn't run: its pinned items are used instead, shown as Pinned · 3 items. Use it to test later nodes against fixed data without repeating slow or costly steps (an AI call, a login). Unpin to run it again.
A pinned node stores:
{ "pin": { "item": [{ "dot": "next", "json": { "items": [{ "id": "1", "text": "hello" }] } }] } }
Trigger URLs
Webhook and Form triggers have a token field: Create URL, Copy URL, New URL (rotates the token; the old URL stops working). Only the published version runs, and what arrives (the request, or the form's answers) is the trigger's output. See .
FAQ
Why does the Input column say "This is the first node"?
Nothing is connected before it. Connect a node in front to map its values.
The expression preview is empty. Is it wrong?
The preview uses the last run's data. Run the flow (or the earlier step) once, or check the Schema view for the path.