Tips > Data, APIs & Webhooks

Pin Test Data to Avoid Re-executing Upstream Nodes

After a successful test run, **pin the output data** on any node by clicking its output and selecting "Pin Data." Pinned nodes return their saved output inst...

TipIntermediate2 min read

After a successful test run, pin the output data on any node by clicking its output and selecting "Pin Data." Pinned nodes return their saved output instantly without executing, meaning no API calls, no database queries, no webhook requests. This is the single most effective way to reduce costs during development.

Real-world example: Your workflow calls an LLM to generate a product description, then formats it and sends it to Shopify. While refining the formatting logic, you do not need to regenerate the description every time.

Workflow: [Trigger] --> [Fetch Product] --> [OpenAI: Generate Desc] --> [Format] --> [Shopify]

Without pinning:
  Every test run executes ALL nodes
  10 iterations on formatting = 10 OpenAI calls = ~$0.50

With pinning:
  Pin the output of "OpenAI: Generate Desc" after one good run
  10 iterations on formatting = 0 OpenAI calls = $0.00
```text
How to pin data:

```yaml
1. Execute the workflow once successfully
2. Click the "OpenAI: Generate Desc" node to open its output panel
3. Click the "Pin Data" icon (thumbtack icon) in the output header
4. The node now shows a pin indicator and will not re-execute
5. Edit downstream nodes freely -- the pinned node returns cached output

To unpin:
  Click the pin icon again, or right-click the node and select "Unpin Data"

To edit pinned data manually:
  Click "Edit pinned data" to modify the JSON directly
  Useful for testing edge cases without making real API calls
```text
> **Warning: Unpin before activating**
>
> Pinned data is a development feature. It does not persist in production executions. This is by design -- you want real data in production. But always verify your workflow works end-to-end with unpinned nodes before activating.

Pin liberally during development. Unpin before your final integration test.

**Related:** [Use Structured Output (JSON Mode) for Parseable Responses](../ai-and-llm-integration/01-use-structured-output-json-mode-for-parseable-responses.md) | [Configure Payload Size and Binary Data Mode for Large Files](../performance-and-large-files/01-configure-payload-size-and-binary-data-mode-for-large-files.md)

Want this running in your stack?

I build production n8n and Cloudflare automation for teams — the same engineering behind HarperFlow. Fixed-price, escrow-protected, US-based.