The Pin Data feature saves a node's output so that every subsequent execution uses that exact data instead of re-running the node.
The Pin Data feature saves a node's output so that every subsequent execution uses that exact data instead of re-running the node. This is critical when your workflow starts with an expensive operation -- an API call with rate limits, a database query that takes 30 seconds, or a webhook that only fires when a real event occurs. Pinning the output lets you iterate on downstream nodes instantly.
Real-world example: Your workflow starts with a Salesforce node that fetches 500 contacts (takes 8 seconds, counts against API limits). You need to test the data transformation logic in the nodes that follow it.
1. Execute the workflow once to get real data from Salesforce.
2. Click on the Salesforce node to open its output panel.
3. Click the pin icon (thumbtack) in the output panel header.
4. The node output is now frozen -- it shows a "Pinned" badge.
5. All downstream executions use this pinned data without calling Salesforce.
```text
```json title="Example: Pinned output from a Salesforce node"
[
{
"json": {
"Id": "003Dn00000F1ABCDE",
"FirstName": "Jane",
"LastName": "Martinez",
"Email": "jane.martinez@example.com",
"Account": {
"Name": "Acme Corp",
"Industry": "Technology"
}
}
},
{
"json": {
"Id": "003Dn00000F2FGHIJ",
"FirstName": "Bob",
"LastName": "Chen",
"Email": "bob.chen@example.com",
"Account": {
"Name": "Globex Inc",
"Industry": "Manufacturing"
}
}
}
]
```text
> **Warning: Unpin Before Activating**
>
> Pinned data persists across manual executions but is **ignored** when the workflow runs in production (activated mode). However, leaving pins in place can cause confusion when you return to the workflow later. Unpin all nodes before activating a workflow for production use.
Pinning saves you from hitting API rate limits during development, eliminates 80% of the wait time between test runs, and ensures consistent test data across iterations.
**Related:** [Always Set an Error Workflow on Every Production Workflow](../error-handling-and-reliability/01-always-set-an-error-workflow-on-every-production-workflow.md) | [Break Large Workflows into Sub-Workflows](../workflow-architecture/01-break-large-workflows-into-sub-workflows.md)
I build production n8n and Cloudflare automation for teams — the same engineering behind HarperFlow. Fixed-price, escrow-protected, US-based.