> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fetchhive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Transform

> Reorganiza los datos del flujo de trabajo construyendo filas, concatenando arreglos o aplanando un arreglo sin llamar a un servicio externo

# Data Transform

Usa **Data Transform** cuando necesites reorganizar la salida existente del flujo de trabajo antes de que otro paso la lea.

Data Transform no llama a un servicio externo. Es útil antes de los pasos **Google Sheets**, **Airtable**, **Custom API** y de los pasos posteriores de **Iteration**.

## Configuración

| Opción          | Requerido          | Descripción                                                                                |
| --------------- | ------------------ | ------------------------------------------------------------------------------------------ |
| Name            | No                 | Etiqueta del paso en el lienzo del flujo de trabajo.                                       |
| Mode            | Sí                 | La transformación a ejecutar. Elige **Build Rows**, **Concat Arrays** o **Flatten Array**. |
| Fields          | Solo Build Rows    | Claves del objeto de salida y sus valores fuente.                                          |
| Sources         | Solo Concat Arrays | Valores de arreglo que se anexarán en un único arreglo.                                    |
| Source Value    | Solo Flatten Array | Un valor de arreglo a aplanar en un nivel.                                                 |
| Mismatch Policy | Solo Build Rows    | Cómo manejar arreglos con longitudes diferentes.                                           |

Agrega este paso desde el grupo **Utilities** en **Search steps...**.

## Modos

### Build Rows

Usa **Build Rows** para unir arreglos por índice (zip) en un arreglo de objetos.

Cada campo tiene una **Key** y un **Source Value**. La clave se convierte en una propiedad del objeto. La fuente puede ser una referencia de variable completa como `{{tool_names}}` o `{{step_3.output}}`, o un valor estático.

Los valores fuente de tipo arreglo se leen por índice. Los valores escalares estáticos se repiten para cada fila.

Ejemplo:

```json theme={null}
{
  "tool_names": ["Exa", "Airtable"],
  "search_contexts": ["Search context for Exa", "Search context for Airtable"]
}
```

Campos de Build Rows:

```json theme={null}
[
  { "key": "tool_name", "value": "{{tool_names}}" },
  { "key": "search_context", "value": "{{search_contexts}}" },
  { "key": "workspace", "value": "Fetch Hive" }
]
```

Salida:

```json theme={null}
[
  {
    "tool_name": "Exa",
    "search_context": "Search context for Exa",
    "workspace": "Fetch Hive"
  },
  {
    "tool_name": "Airtable",
    "search_context": "Search context for Airtable",
    "workspace": "Fetch Hive"
  }
]
```

Usa **Mismatch Policy** cuando las longitudes de los arreglos difieran:

| Política    | Comportamiento                                                                                    |
| ----------- | ------------------------------------------------------------------------------------------------- |
| Pad null    | Usa el arreglo más largo y rellena los valores faltantes con `null`. Es la opción predeterminada. |
| Strict fail | Hace fallar el paso si las longitudes de los arreglos no coinciden.                               |
| Truncate    | Usa la longitud del arreglo más corto.                                                            |

### Concat Arrays

Usa **Concat Arrays** para anexar múltiples arreglos en un arreglo más largo.

Cada fuente debe resolverse a un arreglo. Si una fuente se resuelve a una cadena, objeto, número o booleano, el paso falla.

Fuentes de ejemplo:

```json theme={null}
[
  { "value": "{{step_2.output}}" },
  { "value": "{{step_3.output}}" }
]
```

Si esos valores son `["a", "b"]` y `["c"]`, la salida es:

```json theme={null}
["a", "b", "c"]
```

### Flatten Array

Usa **Flatten Array** para aplanar un arreglo en un nivel.

Los elementos de arreglo anidados se expanden. Los elementos no-arreglo permanecen en su lugar.

Fuente de ejemplo:

```json theme={null}
[[1, 2], 3, [4]]
```

Salida:

```json theme={null}
[1, 2, 3, 4]
```

## Salida

Data Transform almacena su resultado en:

```text theme={null}
{{STEP_IDENTIFIER.output}}
```

Para **Build Rows**, la salida es un arreglo de objetos. Esta forma funciona bien con pasos de integración que esperan registros o filas.

Para **Concat Arrays** y **Flatten Array**, la salida es un arreglo sobre el que pueden iterar los pasos posteriores.

## Notas

* Los valores fuente deben ser marcadores de posición completos como `{{step_2.output}}`, o valores escalares estáticos.
* Las cadenas de plantilla mixtas como `Research for {{tool_names}}` no son compatibles en Data Transform V1.
* Data Transform preserva arreglos y objetos como JSON estructurado para los pasos posteriores.
* Data Transform es un paso de utilidad gratuito.

Consulta también: [Google Sheets](../integrations/google-sheets), [Airtable](../integrations/airtable), [Custom API](custom-api) y [Pruebas e iteración](../../testing-and-iteration)
