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

# Node Overview

> Understanding nodes - the building blocks of conversation flow agents

## What are Nodes?

Nodes are the fundamental building blocks of your conversation flow. Each node represents a specific step or action in your agent's conversation, with its own logic, behavior, and purpose.

### Key Concepts

* **Node Type**: Determines the node's functionality (conversation, subagent, function call, logic, etc.)
* **Edges**: Connections between nodes that define the conversation flow
* **Transition Conditions**: Rules that determine when and where to move next
* **Fine-tuning**: Each node can be optimized independently for better performance

### Why Use Nodes?

By breaking complex workflows into individual nodes:

* **Precise Control**: Define exact behavior for each conversation scenario
* **Better Performance**: Fine-tune specific parts without affecting others
* **Easier Debugging**: Isolate and fix issues in specific conversation paths
* **Reusability**: Connect nodes in different ways for various flows

## Node Types Available

### Conversation Nodes

* [**Conversation Node**](/build/conversation-flow/conversation-node): Handle dialogue and user interactions without tool calling
* [**Subagent Node**](/build/conversation-flow/subagent-node): Handle dialogue and user interactions with tool calling
* [**Extract DV Node**](/build/conversation-flow/extract-dv-node): Extract and store dynamic variables from conversations

### Action Nodes

* [**Function Node**](/build/conversation-flow/function-node): Execute custom functions and API calls
* [**Code Node**](/build/conversation-flow/code-node): Execute JavaScript code directly without an external server
* [**SMS Node**](/build/conversation-flow/sms-node): Send SMS messages during the call
* [**MCP Node**](/build/conversation-flow/mcp-node): Integrate with Model Context Protocol tools

### Call Control Nodes

* [**Call Transfer Node**](/build/conversation-flow/call-transfer-node): Transfer calls to other phone numbers
* [**Transfer Agent Node**](/build/conversation-flow/transfer-agent-node): Transfer to another Retell agent
* [**Press Digit Node**](/build/conversation-flow/press-digit-node): Send DTMF tones (press digits)
* [**End Node**](/build/conversation-flow/end-node): Terminate the call gracefully

### Logic Nodes

* [**Logic Split Node**](/build/conversation-flow/logic-split-node): Create conditional branches based on variables

## Add a Node

<Steps>
  <Step title="Select node type">
    Click from the left sidebar to select the node type you want to add. Click on it, and it will be added to the canvas.

    <Frame>
      <img src="https://mintcdn.com/retellai/zL2HeUqUnagEN9eK/images/cf/add-node.png?fit=max&auto=format&n=zL2HeUqUnagEN9eK&q=85&s=9f943a03432352f72166c04f780e19ba" alt="Left sidebar showing available node types to add to the conversation flow" width="298" height="722" data-path="images/cf/add-node.png" />
    </Frame>
  </Step>

  <Step title="Configure the node">
    Configure the node by clicking on the node, check the setting on the right, and fill in node instructions inside the node. Check out respective node guide for more details.

    <Frame>
      <img src="https://mintcdn.com/retellai/zL2HeUqUnagEN9eK/images/cf/configure-node.jpeg?fit=max&auto=format&n=zL2HeUqUnagEN9eK&q=85&s=217edcea975d2e0578e385ba4fb5df50" alt="Node configuration panel on the right showing settings and instructions" width="736" height="567" data-path="images/cf/configure-node.jpeg" />
    </Frame>
  </Step>

  <Step title="Add transition conditions as needed">
    Add edges by clicking on bottom part of the node, and add your transition conditions. Check out next step for more details on how to add transition conditions.
  </Step>

  <Step title="Connect node">
    Click and hold the circle to start a line that connects the node to other node, and other node to this node.

    <Frame>
      <img src="https://mintcdn.com/retellai/zL2HeUqUnagEN9eK/images/cf/connect-node.jpeg?fit=max&auto=format&n=zL2HeUqUnagEN9eK&q=85&s=25e5c0f3b617d167734bf18f28c0397a" alt="Connecting nodes by dragging from the circle connector to create edges" width="986" height="724" data-path="images/cf/connect-node.jpeg" />
    </Frame>
  </Step>
</Steps>

## Organize Nodes

Sometimes after adding a great amount of nodes, the canvas can get cluttered. You can use the `Organize` button to automatically organize the nodes.

<Frame>
  <img src="https://mintcdn.com/retellai/32uO5g9DswfoJ9j7/images/cf/organize-node.png?fit=max&auto=format&n=32uO5g9DswfoJ9j7&q=85&s=1c5a3a922cae124f11a5f374c1746f2d" alt="Organize button that automatically arranges nodes for better visibility" width="1112" height="438" data-path="images/cf/organize-node.png" />
</Frame>

## FAQ

<AccordionGroup>
  <Accordion title="When should I break down a node?">
    Consider breaking down a node when:

    * The node handles multiple complex logic paths
    * The LLM struggles with consistency (hallucinations or incorrect responses)
    * You need different settings (model, temperature) for different parts
    * The conversation flow becomes hard to follow or debug

    Breaking complex nodes into smaller, focused nodes often improves reliability.
  </Accordion>

  <Accordion title="How to zoom in and out the canvas?">
    Depending on whether you are using mouse or touchpad, you can use the scroll wheel or pinch to zoom.
  </Accordion>

  <Accordion title="Is there a limit on the number of nodes?">
    No, you can add as many nodes as you want.
  </Accordion>
</AccordionGroup>
