KEEP LEARNING
Build the bigger picture.
The Workflow Engineer connects individual n8n concepts to testing, deployment and running a complete workflow.
Tips > Reliability & Performance
n8n stores the complete input and output data for every node in every execution.
n8n stores the complete input and output data for every node in every execution. When a workflow that has been running successfully suddenly fails, the fastest path to the root cause is comparing the failing execution's data against a recent successful one. The difference in the input data is almost always the cause.
Real-world example: Your Stripe-to-Slack workflow has run successfully 200 times but failed this morning. You compare executions to find the difference.
1. Go to the Executions tab (left sidebar).
2. Find the failed execution (red indicator) and click to open it.
3. Note the input data for the failing node.
4. Open a new browser tab (or use the back button).
5. Open a recent successful execution (green indicator).
6. Navigate to the same node and compare the input data.
```text
```json title="Successful Execution - Stripe webhook payload"
{
"type": "charge.succeeded",
"data": {
"object": {
"amount": 4999,
"currency": "usd",
"customer": "cus_ABC123",
"billing_details": {
"name": "Alice Johnson",
"email": "alice@example.com"
}
}
}
}
```text
```json title="Failed Execution - Stripe webhook payload"
{
"type": "charge.succeeded",
"data": {
"object": {
"amount": 4999,
"currency": "usd",
"customer": "cus_DEF456",
"billing_details": {
"name": null,
"email": null
}
}
}
}
```text
The comparison reveals that `billing_details.name` and `billing_details.email` are `null` in the failing execution. The downstream Slack message node uses `{{ $json.data.object.billing_details.name }}` in the message body, which produced an empty string that violated a required-field check.
The fix: add a fallback expression `{{ $json.data.object.billing_details.name ?? "Unknown Customer" }}` or add an IF node to handle the null case.
**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)
KEEP LEARNING
The Workflow Engineer connects individual n8n concepts to testing, deployment and running a complete workflow.
APPLY IT TO YOUR SYSTEM
Bring the process, the tools involved and an example of where the current workflow gets stuck.