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

# Workflows

> A workflow is the end-to-end automated process Felix builds and runs on your behalf.

You describe the process. Felix generates the steps, writes the code, and executes it — on demand, on a schedule, or across a large dataset. Every run is logged and produces the same output for the same input.

## What a workflow is made of

A workflow is a sequence of **steps**. Each step does one thing: fetching data, processing a document, calling a service, waiting for your input, or producing an output.

Steps run in order. The output of one step feeds automatically into the next — Felix handles the data flow based on your descriptions.

**Example: Contract review workflow**

| Step       | What it does                                                                     |
| ---------- | -------------------------------------------------------------------------------- |
| **Step 1** | Fetch new contracts uploaded to `@GoogleDrive` in the last 24 hours              |
| **Step 2** | Extract parties, start date, end date, and termination clause from each contract |
| **Step 3** | Write results to `@GoogleSheets` with one row per contract                       |
| **Step 4** | `[Human Checkpoint]` Review the sheet before sending                             |
| **Step 5** | Send a summary to `@Slack` in `#legal-ops`                                       |

## How Felix builds a workflow

You describe the process in plain language in the [Chat](/docs/building/chat). Felix asks follow-up questions to fill in any gaps, then generates each step as a code block. You don't write or edit code directly.

Once built, a workflow runs deterministically — the same input always produces the same output. Felix applies AI reasoning only at the steps that require it. The rest runs as structured code.

## Workflow anatomy

* **Steps** — The individual units of work. See [Steps](/docs/workflows/steps).
* **Descriptions** — The plain-language instructions that define what each step does. See [Descriptions](/docs/workflows/descriptions).
* **Code** — The underlying code Felix generates for each step. See [Code](/docs/workflows/code).
* **Outputs** — What the workflow produces at each step and at the end of a run. See [Outputs](/docs/workflows/outputs).
* **Human Checkpoints** — Pauses for human review or input. See [Human Checkpoints](/docs/workflows/human-checkpoints).

## Running a workflow

Workflows can be run in three ways:

* **Manually** — trigger a run from the workflow at any time
* **On a schedule** — run automatically at a set time or interval
* **As a batch** — process multiple items in one run

See [Running](/docs/running/overview) for a full guide.

## Tips

* **One step, one action.** Steps that try to do too much are harder to debug and harder to change. Keep each step focused.
* **Name outputs clearly.** When Felix asks what to call an output, use something descriptive — "contract end date" not just "date".
* **Add Human Checkpoints early.** It's easier to remove a checkpoint once you trust a workflow than to add one after something goes wrong.

<CardGroup cols={3}>
  <Card title="Steps" icon="list-ol" href="/docs/workflows/steps">
    How steps work
  </Card>

  <Card title="Human Checkpoints" icon="hand" href="/docs/workflows/human-checkpoints">
    Add review gates
  </Card>

  <Card title="Running" icon="circle-play" href="/docs/running/overview">
    Run manually, on a schedule, or as a batch
  </Card>
</CardGroup>
