> ## Documentation Index
> Fetch the complete documentation index at: https://xura.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Editing nodes

> Add, remove, and configure nodes in the Flow graph editor.

The graph editor lets you shape a Flow visually. All changes autosave — no explicit Save button.

## Adding a node

Toolbar pills at the top: `+ agent`, `+ data`, `+ action`, `+ condition`, `+ approval`. Click one to add a node of that type. It appears at the bottom of the current graph and is auto-selected.

## Selecting a node

Click any node on the canvas. The **Inspector panel** on the right shows its config.

## Node configs (Inspector)

| Node          | Config                                                                                 |
| ------------- | -------------------------------------------------------------------------------------- |
| **Trigger**   | Trigger type (Manual / Scheduled).                                                     |
| **Data**      | Query — a QuerySpec JSON string (entity, filters, groupBy, limit).                     |
| **Agent**     | Agent id — dropdown of your stored Agents.                                             |
| **Action**    | Tool name — dropdown of your connected tools. Args JSON.                               |
| **Condition** | Expression — a JavaScript-like expression. Two outgoing edges tagged `true` / `false`. |
| **Approval**  | Proposed action text. Findings list.                                                   |

## Connecting nodes

Drag from a node's bottom handle to another node's top handle. Xura executes edges in the order they were created.

## Deleting a node

Select the node → **Delete node** pill (bottom-right of the toolbar, red). Also removes any edges connected to it.

## Interpolation in action args

Action node args can reference the previous step's output using `{{prev.field}}` syntax:

```json theme={null}
{
  "to": "{{prev.rows[0].owner_email}}",
  "subject": "Deal review: {{prev.rows[0].deal_name}}",
  "body": "This deal has been in Negotiation for {{prev.rows[0].days_stuck}} days."
}
```

<Note>
  Iteration (`{{prev.rows[*]}}`) is a planned feature. For now, actions run once per node with scalar substitution — for true fan-out (N emails, N tickets), you need one action node per target, or a `forEach` wrapper (roadmap).
</Note>

## Autosave

Any change to name, description, node config, or edge triggers a debounced save (800 ms). You'll see "Saving…" briefly next to the Run now button.
