# Transform
URL: /reference/blocks/system-transform
Type: reference
Description: Transform and reshape data between steps
Keywords: transform, system/transform, system, block, workflow builder
`system/transform` — Transform and reshape data between steps.

Where it appears [#where-it-appears]

The **Transform** block lives in the **Logic & control** group of the Workflow Builder.

Fields [#fields]

| Field            | Type                                   | Required | Default   | Description                                                                                                                                                                                                                                                                               |
| ---------------- | -------------------------------------- | -------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `inputData`      | text (multi-line, supports references) | Yes      | —         | The data to reshape. Accepts a literal JSON value or a \<StepName.field> reference to an upstream output, which the selected transform is then applied to.                                                                                                                                |
| `transformType`  | select                                 | Yes      | `extract` | The kind of reshape to apply to the input. Extract pulls a single field by path, Filter keeps only listed fields, Map renames fields, and Template formats the data as text. The configuration field shown below depends on this choice. Options: `extract`, `filter`, `map`, `template`. |
| `extractPath`    | text                                   | No       | —         | Dot/bracket path to the single value to pull out of the input — e.g. ticket.subject or items\[0].name.                                                                                                                                                                                    |
| `includeFields`  | text (multi-line)                      | No       | —         | JSON array of top-level field names to keep from the input; all other fields are dropped from the output.                                                                                                                                                                                 |
| `fieldMappings`  | text (multi-line)                      | No       | —         | JSON object mapping new output field names to source field names from the input — e.g. \{"ticketSubject": "subject"} reads input.subject and writes it as ticketSubject.                                                                                                                  |
| `outputTemplate` | text (multi-line, supports references) | No       | —         | Text template rendered with values from the input, where \{\{fieldName}} placeholders are replaced by the matching field. The rendered string becomes the transform's output.                                                                                                             |

Inputs and outputs [#inputs-and-outputs]

Inputs are the configurable fields above. The block produces these outputs:

**Outputs**

Reference an output downstream with `<Transform.field>`.

| Name      | Type    | Description                 |
| --------- | ------- | --------------------------- |
| `success` | boolean | Whether transform succeeded |
| `data`    | any     | Transformed data            |
| `error`   | string  | Error message if failed     |

Example [#example]

A minimal configuration for this block:

```json
{
  "type": "system/transform",
  "config": {
    "inputData": "<PreviousStep.field>",
    "transformType": "extract"
  }
}
```

Limits and failure modes [#limits-and-failure-modes]

* Required fields (`inputData`, `transformType`) must be set, or the block fails validation before it runs.
* On failure the `error` output is populated; downstream blocks that reference other outputs may not receive values.

Related [#related]

* [All workflow blocks](/reference/blocks)
* [Workflow Builder overview](/workflow-builder-overview)