# Editing Nodes (/docs/workflows/editing-nodes)

> For the complete documentation index, see [llms.txt](https://docs.tandemcx.ai/llms.txt). Any page on this site can be fetched as Markdown by appending `.md` to its URL.

Click a node to select it and open its configuration in the edit sidebar. Each
node type has its own set of **fields** to fill in and **exits** to wire, both
defined by the node's type and documented in the [node reference](/docs/workflows/reference).

## Configuring fields

Fields are the inputs that control what a node does. In the edit sidebar you'll
see each field with its label, and the reference page for the node lists the
type and whether it's required.

- **Required fields** are marked and must be filled before the workflow will
  validate. A node with an empty required field blocks publishing.
- **Optional fields** can be left blank; the node falls back to its default
  behavior.
- Most text fields accept **variables** with the `$(name)` syntax, so a field's
  value can come from data gathered earlier in the flow rather than being
  hard-coded. See [Variables & Data](/docs/workflows/variables-and-data).

<Callout>
    Field types (text, dropdown, toggle, JSON, list, …) determine how a value is entered. The [node
    reference](/docs/workflows/reference) shows every field's type and description for each node.
</Callout>

## Capturing speech input

Nodes that play a prompt, such as **Play Message**, can also collect the caller's answer.
Set **Input Type** to `SPEECH` (voice only) or `BOTH` (voice or keypad), name a **Response
Variable Name** to store the result in, then choose a **Speech Mode** for what the caller
is expected to say:

- **Anything the caller says** — the default. Captures an open-ended answer as spoken.
  Use it for a name or any value you cannot list in advance.
- **Specific words or phrases** — matches against a keyword list you supply. Use it for
  menu choices and yes/no questions.
- **A value of a known shape** — the remaining modes ("A number", "Digits only", "Letters
  only", "Letters and digits", "A phone number") constrain recognition to that shape. Use
  them for an account number or a confirmation code.

**Specific words or phrases** is the only mode that needs a second field, and choosing it
reveals that field: **Speech Grammars**, the list of keywords to listen for. Leave the
list empty and the prompt has nothing to recognize against, so validation blocks it with
`Speech mode "Specific words or phrases" needs at least one speech grammar.` Either add
the keywords or switch back to a mode that does not need them.

**Minimum Input Length** and **Maximum Input Length** apply to speech as well as keypad
input, and reject a capture outside the range. Leave both blank for an open-ended answer:
they cap at 20 characters, which is shorter than many full names.

## Wiring exits

A node's **exits** are its labeled outputs — each is one path the flow can take
after the node runs. Drag from an exit handle to the next node to wire it.

- An exit left unwired ends that path.
- Some nodes expose **system exits** (for example a timeout path) that are
  auto-injected and only appear when relevant — the reference page notes these
  per node.
- In the edit sidebar you can also point an exit at **"none"** to clear its
  connection.

## Removing nodes & edges

Select a node or edge and press `Delete` or `Backspace` to remove it. Removing a
node also removes the connections attached to it.

<Callout>Use `Cmd/Ctrl+Z` to undo if you remove something by mistake.</Callout>

## Duplicating nodes

Select a node and press `Cmd/Ctrl+D` to duplicate it, or use `Cmd/Ctrl+C` /
`Cmd/Ctrl+V` to copy and paste. Duplicated nodes keep the same field
configuration as the original — handy when you need several similar steps and
only want to tweak a value or two.

## Next steps

<Cards>
    <Card
        title="Variables & Data"
        href="/docs/workflows/variables-and-data"
        description="Reference field values across nodes with $(name)."
    />
    <Card
        title="Execution & Publishing"
        href="/docs/workflows/execution-and-publishing"
        description="Validate and publish your flow."
    />
</Cards>
