# Echo

**Action ID:** `echo`

## Description

Get back whatever your input is. This simple utility node returns the input data unchanged, useful for testing and data flow verification.

## Input Parameters

| Name | Type   | Required | Default | Description      |
| ---- | ------ | :------: | ------- | ---------------- |
| data | string |     ✓    | -       | The data to echo |

<details>

<summary>View JSON Schema</summary>

```json
{
  "description": "Echo node input.",
  "properties": {
    "data": {
      "title": "Data",
      "type": "string",
      "description": "The data to echo"
    }
  },
  "required": [
    "data"
  ],
  "title": "EchoNodeInput",
  "type": "object"
}
```

</details>

## Output Parameters

| Name | Type   | Description      |
| ---- | ------ | ---------------- |
| data | string | Data of the echo |

<details>

<summary>View JSON Schema</summary>

```json
{
  "description": "Echo node output.",
  "properties": {
    "data": {
      "title": "Data",
      "type": "string",
      "description": "Data of the echo"
    }
  },
  "required": [
    "data"
  ],
  "title": "EchoNodeOutput",
  "type": "object"
}
```

</details>

## How It Works

This node receives the input data and returns it unchanged. There is no processing, transformation, or modification of any kind. Whatever you send in is what you get back. This makes it a perfect testing and debugging tool for verifying data flow through your workflow.

## Usage Examples

### Example 1: Echo a Simple String

**Input:**

```
data: "Hello, World!"
```

**Output:**

```
data: "Hello, World!"
```

### Example 2: Echo JSON Data

**Input:**

```
data: "{\"user\": \"john\", \"age\": 30}"
```

**Output:**

```
data: "{\"user\": \"john\", \"age\": 30}"
```

### Example 3: Echo Error Messages for Debugging

**Input:**

```
data: "ERROR: Failed to process request"
```

**Output:**

```
data: "ERROR: Failed to process request"
```

## Common Use Cases

* **Data Flow Testing**: Verify that data is correctly passed between nodes in your workflow
* **Debugging Intermediate Values**: Echo intermediate data at different workflow stages to debug issues
* **Conditional Logging**: Use echo before conditional nodes to log values that affect branching logic
* **Data Validation**: Confirm the exact format and content of data before it's processed by other nodes
* **Error Tracking**: Echo error messages or status codes to track execution flow during troubleshooting
* **Workflow Documentation**: Echo key values to create a visible record of data passing through your workflow

## Error Handling

| Error Type         | Cause                                        | Solution                                                            |
| ------------------ | -------------------------------------------- | ------------------------------------------------------------------- |
| Missing Input      | No data provided to the echo node            | Ensure the input parameter is connected to a previous node's output |
| Data Serialization | Very large strings may be truncated in logs  | Use a specialized node for handling very large data payloads        |
| Null Input         | Input contains null or undefined value       | Check if the previous node is returning valid output                |
| Encoding Issue     | Special characters may not display correctly | Ensure your input data uses UTF-8 encoding                          |
| Type Mismatch      | Input expects string but receives other type | Convert input to string format before passing to echo node          |

## Notes

* **Testing**: Use this node to test workflow data flow and verify that data is being passed correctly between nodes.
* **Debugging**: Useful for debugging workflows by echoing intermediate data at different stages.
* **No Transformation**: This node performs no transformation on the input—it returns exactly what it receives.
* **Performance**: Echo nodes have minimal overhead and don't affect workflow performance.
* **Log Visibility**: Enable execution logs to see echoed values in the workflow execution history.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.agenticflow.ai/reference/nodes/echo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
