๐Ÿ‡ฌ๐Ÿ‡ง EN
๐Ÿ‡ฎ๐Ÿ‡น IT

๐Ÿ”„ Transform

Reshapes data from any previous step into a new structure. You define a set of named output fields, each with a value expression that can reference earlier steps. Use Transform to rename keys, combine fields, extract nested values, or prepare data in exactly the shape a later step expects.

Category: Data Retrieval & Processing  ยท  Type identifier: transform

Overview

Real-world data rarely arrives in the exact shape you need. An API might return a deeply nested object when you just need two fields at the top level. A trigger might carry first name and last name separately when you need them combined. One step might produce a key called user_identifier when the next step expects it as id.

The Transform node solves all of these problems. You declare a list of output fields, giving each a name and a value. The value can be a static string, a number, a direct variable reference to a previous step's field, or a combination of values built using variable syntax. The output of the Transform node is a clean object containing exactly the fields you defined.

Transform is purely a data-reshaping step โ€” it does not make any external calls, run any AI inference, or produce side effects. It always succeeds as long as the referenced variables exist.

Configuration

The Transform node is configured through its Fields list. Each entry in the list becomes one key in the output object.

Sub-field Description
Name The key name for this field in the output object. Use clear, descriptive names in snake_case (e.g. full_name, email_address, total_price).
Type The data type to cast the value to: string, number, boolean, array, or object. Flusso coerces the value to this type when possible.
Value The value expression for this field. Can be a static value (e.g. active), a direct variable reference (e.g. {{ api_call.output.body.user.email }}), or a template combining text and variables (e.g. Hello, {{ trigger.output.first_name }} {{ trigger.output.last_name }}).

Output Data

The Transform node produces a single object containing all the fields you defined. Each key in the output object corresponds to one entry in the Fields list.

// If you defined fields named: full_name, email, total_price {{ transform_step.output.full_name }} {{ transform_step.output.email }} {{ transform_step.output.total_price }}

Example Usage

Combining first and last name into a full name

The trigger payload delivers first_name and last_name separately. A later step (an email notification) needs a full_name field.

// Field definition: Name: full_name Type: string Value: {{ trigger.output.first_name }} {{ trigger.output.last_name }} // Result in the Transform node's output: {{ transform.output.full_name }} โ†’ "Jane Smith"

Extracting nested fields from an API response

An HTTP Request returns a deeply nested JSON response. You want a flat object with just the fields your Agent needs.

// API response structure (from api_call.output.body): { "data": { "user": { "profile": { "email": "jane@example.com", "display_name": "Jane Smith" }, "account": { "plan": "pro", "credits_remaining": 142 } } } } // Transform field definitions: Name: email Value: {{ api_call.output.body.data.user.profile.email }} Name: display_name Value: {{ api_call.output.body.data.user.profile.display_name }} Name: plan Value: {{ api_call.output.body.data.user.account.plan }} Name: credits Value: {{ api_call.output.body.data.user.account.credits_remaining }} Type: number // Clean output accessible in later steps: {{ transform.output.email }} โ†’ "jane@example.com" {{ transform.output.credits }} โ†’ 142

Renaming keys for a downstream API

Your data has a key called customer_identifier but the next API call expects userId.

Name: userId Type: string Value: {{ previous_step.output.customer_identifier }}

Tips & Notes

Related Nodes