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

# Input step

> Define named input fields for manual workflow runs.

* The **Input** step allows you to define custom input fields for your workflow.
* Each input field can have a name and a specific data type (e.g., string, number, boolean).
* When running a workflow manually or via the HTTP API, the step prompts for required values and validates them against your definitions.
* Input steps are useful for workflows that need user-supplied or external parameters at the start of execution.
* All validated input values are automatically added to the workflow’s `ctx` object, making them accessible as variables in downstream steps.

## Inspector

The Input step inspector shows an **+ Add Input** button. Click it to define each input field.

<Frame>
  <img src="https://mintcdn.com/anyreach/xq3fxwSzf45emlPQ/images/workflows/input.png?fit=max&auto=format&n=xq3fxwSzf45emlPQ&q=85&s=a75d4daf60817b6408d9d19ca858fc73" width="3102" height="1926" data-path="images/workflows/input.png" />
</Frame>

<Note>
  The Input step is **not** the entry point for trigger-based workflows. Workflows that fire from events (Post Call, Pre Call, Timer, External Apps) start with a **Trigger** step, not an Input step. Use the Input step when you want to run a workflow manually with specific field values or via an HTTP API.
</Note>

## How Input differs from Trigger

|                      | Input step                                         | Trigger step                                                                           |
| -------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------- |
| **Entry point**      | For manual runs via Run Workflow modal or HTTP API | For event-driven automation                                                            |
| **When it fires**    | When you explicitly run the workflow               | When a call ends, a timer fires, an external event occurs                              |
| **How data arrives** | Fields you fill in manually                        | Conversation data, timer metadata, or external app payload from the respective systems |

## Accessing input data in ctx

Input fields are available in `ctx` under the step's name:

```
{{ n1.name }}
```

Or use the full path in a `Code` step:

```
{{ ctx["n1"]["name"] }}
```

## Use cases

* **Ad hoc testing** — run a workflow against a specific contact or conversation ID without waiting for a trigger event
* **Manual workflows** — workflows that a team member triggers on demand with specific parameters
* **Development** — test individual workflow paths with controlled input values
* **API** - run a workflow via a HTTP API request by providing the input data in the request body.
