> ## 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.

# Outputs

> Every step in a workflow produces an output. Outputs flow between steps and form the final result of a run.

## What an output is

An output is the data a step produces after executing. It can be:

* A structured dataset — a table, JSON object, or list of records
* A file — a PDF, CSV, or document
* A confirmation — a record that an action was taken (email sent, row written, message posted)
* A variable — a value passed to the next step

## How outputs flow between steps

Felix automatically passes each step's output to the next step that needs it. You don't need to wire anything manually — describe what data a step should use and Felix handles the connection.

```
Step 1: Extract director names from the insolvency filings
Step 2: Search @LinkedIn for each director name
Step 3: Write the LinkedIn profiles to @GoogleSheets
```

## Final outputs

The last step in a workflow produces the final output of a run. This is typically:

* A file written to a connected service (`@GoogleSheets`, `@GoogleDrive`, `@Notion`)
* A notification sent via a connector (`@Slack`, `@Gmail`)
* A document generated and returned in the run view

## Run logs

Every run produces a full log. For each step you can see:

* What input the step received
* What the step did
* What output it produced
* How long it took
* Any errors or warnings

Run logs are stored in your workflow's run history. You can access them at any time from your dashboard.

## Downloading outputs

File outputs — CSVs, PDFs, documents — can be downloaded directly from the run view. Outputs written to connected services are available in those services immediately after the run completes.

## Tips

* **Check intermediate outputs when debugging.** If your final output is wrong, expand each step's log to find where the data diverged from what you expected.
* **Be specific about what data you're referencing.** "The flagged contracts from step 2" is clearer than "the previous output".
* **Write final outputs to a connected service.** Storing results in `@GoogleSheets` or `@Notion` makes them accessible to your team without needing access to Felix.

<CardGroup cols={3}>
  <Card title="Run" icon="play" href="/docs/building/run">
    Execute a workflow and read its outputs
  </Card>

  <Card title="Running" icon="circle-play" href="/docs/running/overview">
    Scheduled runs, batch runs, and run history
  </Card>

  <Card title="Human Checkpoints" icon="hand" href="/docs/workflows/human-checkpoints">
    Review outputs mid-run
  </Card>
</CardGroup>
