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

# Introduction

> Understand the three categories of pipeline nodes: triggers, actions, and outputs.

Nodes are the building blocks of pipelines. You connect them with edges to define how data flows from start to finish.

Nodes are divided into three categories that follow the natural flow of data:

* **Triggers** bring documents in
* **Actions** process them
* **Outputs** deliver the results

## Triggers

Trigger nodes define how documents enter the pipeline. Every pipeline must have at least one trigger.

<CardGroup cols={2}>
  <Card title="Upload trigger" icon="cloud-arrow-up" href="/nodes/upload-trigger">
    Accept documents uploaded through the UI
  </Card>

  <Card title="Email trigger" icon="envelope" href="/nodes/email-trigger">
    Receive documents via an auto-generated email address
  </Card>

  <Card title="Webhook trigger" icon="globe" href="/nodes/webhook-trigger">
    Accept documents submitted via the API
  </Card>

  <Card title="Forward trigger" icon="share-from-square" href="/nodes/forward-trigger">
    Accept documents forwarded from another pipeline
  </Card>
</CardGroup>

## Actions

Action nodes process documents and transform data. You can chain multiple actions together.

<CardGroup cols={3}>
  <Card title="Parse action" icon="file-lines" href="/nodes/parse">
    Extract raw text from documents using OCR
  </Card>

  <Card title="Extract action" icon="sparkles" href="/nodes/extract">
    Pull structured data from documents using AI
  </Card>

  <Card title="Classify action" icon="tags" href="/nodes/classify">
    Classify documents by content type using rules or AI
  </Card>

  <Card title="Review action" icon="user-check" href="/nodes/review">
    Pause for human review and approval
  </Card>

  <Card title="Transform action" icon="arrows-rotate" href="/nodes/transform">
    Reshape, convert, or script-process data
  </Card>

  <Card title="Route action" icon="split" href="/nodes/route">
    Send documents down different paths based on conditions
  </Card>

  <Card title="Merge action" icon="code-merge" href="/nodes/merge">
    Combine data from multiple branches
  </Card>

  <Card title="Validation action" icon="circle-check" href="/nodes/validation">
    Validate data with rules, schemas, endpoints, scripts, or AI
  </Card>

  <Card title="HTTP action" icon="globe" href="/nodes/http-action">
    Call an external HTTP endpoint and use the response
  </Card>

  <Card title="Store action" icon="database" href="/nodes/store">
    Persist keyed values across runs and pipelines
  </Card>
</CardGroup>

## Outputs

Output nodes deliver results outside Ingestly. They are always the last step in a pipeline path.

<CardGroup cols={2}>
  <Card title="Callback output" icon="webhook" href="/nodes/callback">
    Send results to an external webhook URL
  </Card>

  <Card title="Email output" icon="paper-plane" href="/nodes/email-output">
    Send results via email
  </Card>

  <Card title="Forward output" icon="share" href="/nodes/forward-output">
    Forward the document to another pipeline
  </Card>
</CardGroup>

## Beta nodes

Some nodes are marked with a **Beta** badge in the pipeline editor. Beta nodes are fully functional but may change in future releases. Currently, the [merge action](/nodes/merge) and [HTTP action](/nodes/http-action) are in beta.

## Summary

| Node                                      | Category | Description                                                    |
| ----------------------------------------- | -------- | -------------------------------------------------------------- |
| [Upload trigger](/nodes/upload-trigger)   | Trigger  | Accept documents uploaded through the UI                       |
| [Email trigger](/nodes/email-trigger)     | Trigger  | Receive documents via email                                    |
| [Webhook trigger](/nodes/webhook-trigger) | Trigger  | Accept documents via the API                                   |
| [Forward trigger](/nodes/forward-trigger) | Trigger  | Accept documents forwarded from another pipeline               |
| [Parse action](/nodes/parse)              | Action   | OCR text extraction                                            |
| [Extract action](/nodes/extract)          | Action   | AI-powered structured data extraction                          |
| [Classify action](/nodes/classify)        | Action   | Document classification by rules or AI similarity              |
| [Review action](/nodes/review)            | Action   | Human-in-the-loop review step                                  |
| [Transform action](/nodes/transform)      | Action   | Format conversion, field mapping, or custom script             |
| [Route action](/nodes/route)              | Action   | Conditional routing                                            |
| [Merge action](/nodes/merge)              | Action   | Multi-branch data merge                                        |
| [Validation action](/nodes/validation)    | Action   | Data validation with rules, schemas, endpoints, scripts, or AI |
| [HTTP action](/nodes/http-action)         | Action   | External HTTP endpoint integration                             |
| [Store action](/nodes/store)              | Action   | Cross-run key-value persistence                                |
| [Callback output](/nodes/callback)        | Output   | Webhook delivery                                               |
| [Email output](/nodes/email-output)       | Output   | Email delivery                                                 |
| [Forward output](/nodes/forward-output)   | Output   | Forward the document to another pipeline                       |

See [credits](/admin/credits) for detailed pricing per node type.
