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

# Chain entity transformers

> Executes a list of entity transformers.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Executes a list of entity transformers. Use this step to group several transformer steps together and run them one after another, in the order you list them. The output of each step becomes the input of the next, so you can build up a sequence of changes, for example first filter the items, then reshape them, then send them on.

This documentation describes: [Schema](/schemas/transformer-step/chain)

## Fields

<FormField property="transformers" label="Entity transformers" diType="list-transformer">
  The transformer steps to run, in order. The items pass through the first step, then its result passes through the second, and so on down the list. Add as many as you need; reordering the list changes the order they run in.
</FormField>

## Sample data

This step runs the transformer steps you list against the items passing through a route, so it runs as part of a route rather than on its own. A configuration that chains two steps, running the first before the second, looks like this:

| Field               | Value                                                                |
| ------------------- | -------------------------------------------------------------------- |
| Entity transformers | A "Data: Filter items or apply transformers" step, then a second one |

With this configuration, every item flows through the first step and its result then flows through the second step, before continuing through the rest of the route.

```json Configuration theme={null}
{
  "prototype": "chain",
  "parameters": {
    "transformers": [
      { "prototype": "data", "parameters": { "transformers": [] } },
      { "prototype": "data", "parameters": { "transformers": [] } }
    ]
  }
}
```
