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

# AutomationDefinition

> An automation's content as typed data: its trigger, steps and the edges between them. The same content as `script`.

**edges** `[\[AutomationGraphEdge!\]!](/docs/api-reference/v3/pagination)` *required*

How runs move between the trigger and the steps.

**fields**

**from** `String!` *required*

`"trigger"` or the id of the step the run leaves.

**port** `String!` *required*

The port it leaves by, such as `next` or `true`.

**to** `String!` *required*

The id of the next step.

**entryCondition** `[JSON](/docs/api-reference/v3/reference/common/json)`

An expression a run must meet to start; null admits every run. Read `guide/expressions` in `automationCatalog`.

**name** `String!` *required*

The automation's name.

**rulesVersion** `String!` *required*

The checker rules the automation is held to. A rule added in a later version only warns until you raise it.

**steps** `[\[AutomationStep!\]!](/docs/api-reference/v3/reference/automations/automation-step)` *required*

The steps, in the order the editor lists them.

**fields**

**code** `String`

A `core.function` step's TypeScript code; null for other kinds.

**config** `[JSON!](/docs/api-reference/v3/reference/common/json)` *required*

The kind's settings. Their shape is the `configJsonSchema` of this kind and version in `automationKinds`.

**description** `String`

A note on the step.

**disabled** `Boolean!` *required*

Skipped when the automation runs: the run continues on the step's default port.

**id** `String!` *required*

The step's id, unique in the automation. Edges and diagnostics refer to it.

**kind** `String!` *required*

The step kind, such as `core.wait`.

**kindVersion** `Int!` *required*

The version of the kind the config is written for.

**position** `[AutomationNodePosition](/docs/api-reference/v3/reference/automations/automation-node-position)`

Where it sits on the canvas; null if never placed.

**fields**

**x** `Float!` *required*

Horizontal position.

**y** `Float!` *required*

Vertical position.

**title** `String`

The step's name; null shows the kind's title.

**trigger** `[AutomationTrigger!](/docs/api-reference/v3/reference/automations/automation-trigger)` *required*

What starts a run.

**fields**

**config** `[JSON!](/docs/api-reference/v3/reference/common/json)` *required*

The kind's settings. Their shape is the `configJsonSchema` of this kind and version in `automationKinds`.

**description** `String`

A note on the trigger.

**kind** `String!` *required*

The trigger kind, such as `core.schedule`.

**kindVersion** `Int!` *required*

The version of the kind the config is written for.

**position** `[AutomationNodePosition](/docs/api-reference/v3/reference/automations/automation-node-position)`

Where it sits on the canvas; null if never placed.

**fields**

**x** `Float!` *required*

Horizontal position.

**y** `Float!` *required*

Vertical position.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.