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

# Dry runs

> Run a pipeline without sending real callbacks or emails using a per-run dry run.

A **dry run** runs your pipeline end to end without triggering real side effects. Output nodes (callback and email) produce a preview instead of sending an actual request or email, while every other node executes normally. Use a dry run to inspect the exact payload an output node would produce before you send it for real.

The run mode is chosen **per run**, not stored on the pipeline. Each run is either a **Dry run** or a **Live run**.

## Choosing the run mode

You pick the run mode from the **Run** control in the pipeline editor toolbar. The dropdown next to the run button offers:

* **Dry run:** output nodes preview instead of sending.
* **Live run:** output nodes send real requests and emails.

The default follows the pipeline's [environment](/pipelines/stages): a **Development** pipeline defaults to a **Dry run**, and a **Production** pipeline defaults to a **Live run**. You can override the mode for your current session; the choice is never written back to the pipeline, so it resets when you reload.

<Warning>When you choose **Live run** and start the run, a confirmation dialog titled "Run with live outputs" asks "Output nodes will send real requests and emails. Continue?" This safeguard prevents accidental production deliveries. A dry run starts immediately with no confirmation.</Warning>

## What a dry run does

* **All trigger, action, and processing nodes** run normally. Extraction, parsing, transformation, validation, routing, merging, and review steps execute exactly as they would live.
* **Callback nodes** resolve the URL, method, headers, and body but **do not send the HTTP request**. They return a preview of what would have been sent.
* **Email output nodes** render the email but **do not send it**. They return a preview showing the recipients, subject, rendered body, and attachment names.

<Note>The [HTTP action node](/nodes/http-action) is **not affected** by the run mode. It always sends real requests. Use caution with pipelines that include HTTP action nodes pointed at production endpoints.</Note>

## Dry run preview

When a dry run completes, output steps show a preview instead of raw output. The preview includes a blue **"Dry run preview, not sent"** banner and a structured breakdown of what would have been sent.

### Callback preview

* **HTTP method** and **resolved URL**
* **Request headers** (if configured)
* **Request body** (formatted as JSON or HTML)

The rendered request body appears in a read-only JSON editor, pretty-printed for easy inspection. Because no delivery is recorded for a dry-run step, this prepared-request preview also appears in the run-detail Callback Delivery History panel in place of an actual delivery record.

### Email preview

* **Recipients** (displayed as badges)
* **Subject line**
* **Rendered email body** (with HTML preview)
* **Attachment file names** (if configured)

You can switch between a **Preview** tab (structured view) and a **Raw** tab (full JSON output) to inspect the dry-run payload.

## Credit usage

Dry runs **consume credits** for AI-powered nodes (extract, parse, AI validation, AI-based routing) because those steps execute fully. Output nodes (callback, email) do not consume credits regardless of run mode.

## Spotting dry runs later

Runs started as a dry run carry a **Dry run** badge on the [runs list](/runs/monitoring) and the run detail header, so you can tell a preview run apart from a live one at a glance.

<CardGroup cols={2}>
  <Card title="Build your first pipeline" icon="hammer" href="/guides/build-first-pipeline">
    Step-by-step guide to building and testing a pipeline
  </Card>

  <Card title="Callback node" icon="webhook" href="/nodes/callback">
    Configure webhook delivery for pipeline results
  </Card>

  <Card title="Email output node" icon="paper-plane" href="/nodes/email-output">
    Configure email delivery for pipeline results
  </Card>

  <Card title="Monitoring runs" icon="chart-line" href="/runs/monitoring">
    Find the Dry run badge and inspect step previews
  </Card>
</CardGroup>
