> For the complete documentation index, see [llms.txt](https://help.tillit.cloud/tillit/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.tillit.cloud/tillit/knowledge-base/setting-up-tillit/integrations/wire-flow/task-types-and-integrations/data-transformation.md).

# Data Transformation

Wire Flow data transformation tasks — JSONata Transform, JS Executor, and XSLT Transform — for reshaping and converting data within a workflow.

Data transformation tasks reshape, query, and convert data as it flows through a workflow.

## JSONata Transform

Transforms JSON data using [JSONata](https://jsonata.org/), a powerful expression language for querying and reshaping JSON.

<figure><img src="https://352909507-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrNT40XJFAFlAhUX8CcQS%2Fuploads%2Fgit-blob-97a55088ef88a323a10bb674d0411dce63a0ea89%2FPasted%20image%2020260414120415.png?alt=media" alt=""><figcaption></figcaption></figure>

| Field          | Description                                                                      |
| -------------- | -------------------------------------------------------------------------------- |
| **Expression** | The transformation to apply to the incoming data                                 |
| **Edit**       | Opens a full editor with live preview                                            |
| **AI**         | Generate an expression from a plain-English description and example input/output |

The incoming data is available as `$states.input`. Example — combine two fields and sum an array:

```jsonata
{
  "fullName": $states.input.firstName & " " & $states.input.lastName,
  "total": $sum($states.input.items.price)
}
```

## JS Executor

Runs custom JavaScript logic in a sandboxed environment. Use this when JSONata is insufficient — for example, complex string manipulation, date calculations, or multi-step logic.

<figure><img src="https://352909507-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrNT40XJFAFlAhUX8CcQS%2Fuploads%2Fgit-blob-87ba92616ea4fea6d5f4b7e2d188b1dca5cf0557%2FPasted%20image%2020260414120438.png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
The sandbox is fully isolated: **no network access, no filesystem writes, no environment variables**. It can only transform the data you pass in.
{% endhint %}

## XSLT Transform

Accepts XML input, applies an XSLT stylesheet, and produces XML output. Use this for XML-to-XML transformations where the structure needs to change between systems.

<figure><img src="https://352909507-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrNT40XJFAFlAhUX8CcQS%2Fuploads%2Fgit-blob-93ac8434acb7f787e244c6f408b77b657e0b754a%2FPasted%20image%2020260414120628.png?alt=media" alt=""><figcaption></figcaption></figure>
