> For the complete documentation index, see [llms.txt](https://docs.uptiq.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.uptiq.ai/platform-resources/skill-library/logic-and-data-integration/pass-through.md).

# Pass Through

**Pass Through** does nothing to your data, on purpose. It receives input and returns it unchanged.

Its value is structural. Complex workflows fork, and those forks have to rejoin somewhere. A Pass Through gives divergent paths a single, named place to converge — which makes the workflow readable to whoever inherits it.

## How it works

* **Input resolution** — `$input` receives the aggregated output of every preceding step that transitions into it. `$secret` can be referenced, but the skill doesn't use secrets for its own work.
* **Processing** — none. The input is returned as-is, unmodified and unvalidated.
* **Execution** — blocking. It completes before the workflow proceeds.
* **Response** — success returns the input as the output. Failure is unlikely, since there's no logic to fail; an internal system error would produce a `500`.

## Worked example: merging divergent paths

**Configuration:**

```json
{
  "name": "Merge Property Details",
  "description": "Combines details from different property collection paths."
}
```

**Input, from the preceding steps:**

```json
{
  "propertyType": "Residential",
  "address": "123 Main St",
  "ownerDetails": {
    "name": "Jane Doe",
    "contact": "jane.doe@example.com"
  }
}
```

**Output** — identical:

```json
{
  "propertyType": "Residential",
  "address": "123 Main St",
  "ownerDetails": {
    "name": "Jane Doe",
    "contact": "jane.doe@example.com"
  }
}
```

Note the `name` and `description`. They're the entire point: this skill's only lasting contribution is that the workflow now says *Merge Property Details* at the junction where three paths meet, instead of nothing.

<figure><img src="/files/UJ6KrYoZgLlkMmaaveh2" alt="" width="563"><figcaption><p>The Pass Through skill as a workflow conjunction point</p></figcaption></figure>

## Configuration reference

| Field         | Type   | Required | Description                                 |
| ------------- | ------ | -------- | ------------------------------------------- |
| `name`        | string | —        | Name for this Pass Through instance.        |
| `description` | string | —        | Description for this Pass Through instance. |

Both are optional and neither affects behavior — but a Pass Through without a name is a junction with no explanation, which defeats the reason for adding one.

<figure><img src="/files/pcICgMMkZ24X2vNQrHsz" alt=""><figcaption><p>Configuring Pass Through with an optional name and description</p></figcaption></figure>

## Output

Dynamic: the output schema mirrors whatever came in. The skill doesn't modify the data, so the output is an exact copy.

## Errors

| Status | Cause                                                       |
| ------ | ----------------------------------------------------------- |
| `500`  | An unexpected runtime failure in the execution environment. |

Missing input and misconfiguration are **not** errors here — the skill is designed to pass through whatever it receives.

## Security

{% hint style="warning" %}
**Input and output are not redacted.** Whatever passes through appears as it arrived. Don't route sensitive data through this skill unless that's intended and handled elsewhere — for example by [PII Guard](/platform-resources/skill-library/ai-skills/pii-guard.md) upstream or downstream.
{% endhint %}

* The skill does not use `$secret` for its own functionality.
* Data is processed in memory and is not persisted by the skill.

## Testing in isolation

* **Path** — `/skill-runtime/workflows/nodes/PassThrough/execute`
* **Method** — `POST`
* **Body:**

```json
{
  "config": { "name": "Placeholder Node", "description": "For better workflow structure" },
  "input":  { "userId": 12345, "status": "active" }
}
```

***

To add this skill to an agent, see [Adding a Skill to the Agent](/agent-builder/build/adding-a-skill-to-the-agent.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.uptiq.ai/platform-resources/skill-library/logic-and-data-integration/pass-through.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
