> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# Overview

## Introduction

A call flow consists of a series of nodes, which represent different actions that can be taken during a call.
Each node has a specific purpose, and you can connect nodes together to create a complete calling application.

### Starting node

Starting nodes are the first nodes in a call flow and are used to handle incoming calls.

| Node                                                         | Description                                               |
| :----------------------------------------------------------- | :-------------------------------------------------------- |
| [Handle Call](/docs/call-flow-builder/reference/handle-call) | Handles an incoming call. Starting point in the Call Flow |

---

### Action

Action nodes perform specific actions during a Call Flow, such as playing audio, answering/hanging up a call, or sending an SMS.

| Node                                                                     | Description                                                  |
| :----------------------------------------------------------------------- | :----------------------------------------------------------- |
| [Answer Call](/docs/call-flow-builder/reference/answer-call)             | Answers an incoming call.                                    |
| [Hang Up Call](/docs/call-flow-builder/reference/hangup-call)            | Hangs up the call.                                           |
| [Play Audio or TTS](/docs/call-flow-builder/reference/play-audio-or-tts) | Plays an audio file or text-to-speech message to the caller. |
| [Send SMS](/docs/call-flow-builder/reference/send-sms)                   | Sends an SMS message to the caller.                          |

---

### Forwarding

Forwarding nodes transfer the call to another number.

| Node                                                                   | Description                          |
| :--------------------------------------------------------------------- | :----------------------------------- |
| [Forward to Phone](/docs/call-flow-builder/reference/forward-to-phone) | Forwards the call to a phone number. |

---

### Record

Record nodes record the caller's/callee's voice/voicemail.

| Node                                                                           | Description                |
| :----------------------------------------------------------------------------- | :------------------------- |
| [Start Call Recording](/docs/call-flow-builder/reference/start-call-recording) | Starts recording the call. |
| [Stop Call Recording](/docs/call-flow-builder/reference/stop-call-recording)   | Stops recording the call.  |
| [Voicemail Recording](/docs/call-flow-builder/reference/voicemail-recording)   | Records a voicemail.       |

---

### Input

Input nodes collect input or `http` requests from the caller.

| Node                                                           | Description                       |
| :------------------------------------------------------------- | :-------------------------------- |
| [AI Agent](/docs/call-flow-builder/reference/ai-agent)         | Connects the call to an AI agent. |
| [Gather Input](/docs/call-flow-builder/reference/gather-input) | Collects input from the caller.   |
| [Request](/docs/call-flow-builder/reference/request)           | Sends an HTTP request.            |

---

### Decision

Decision nodes make decisions based on the conditions specified.

| Node                                                                 | Description                                                  |
| :------------------------------------------------------------------- | :----------------------------------------------------------- |
| [Conditions](/docs/call-flow-builder/reference/conditions)           | Evaluates conditions and branches the call flow accordingly. |
| [Execute SWML](/docs/call-flow-builder/reference/execute-swml)       | Executes SWML code.                                          |
| [Set Variables](/docs/call-flow-builder/reference/set-variables)     | Switches variables based on conditions.                      |
| [Unset Variables](/docs/call-flow-builder/reference/unset-variables) | Unsets a variable.                                           |