Tips > Reliability & Performance

Export Workflows as JSON for Community Debugging

When you are stuck, n8n's community forum and Discord are excellent resources.

TipIntermediate2 min read

When you are stuck, n8n's community forum and Discord are excellent resources. But describing a workflow in words is inefficient and error-prone. n8n workflows are stored as JSON and can be exported and imported with a single click. Sharing the JSON lets others import your exact workflow, see your exact configuration, and reproduce your exact problem.

Real-world example: You have a workflow with 8 nodes that fails intermittently. Instead of posting screenshots of each node, you export the workflow JSON and share it in a forum post.

1. Open the workflow in the editor.
2. Click the three-dot menu (top right) or use Ctrl+A
   to select all nodes.
3. Select "Download" or use Ctrl+Shift+E to export.
4. n8n downloads a .json file containing the complete
   workflow definition.
```text
```json title="Example: Exported workflow structure (abbreviated)"
{
  "name": "Stripe to Slack Notification",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "stripe-events",
        "responseMode": "responseNode"
      },
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [250, 300]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.type }}",
              "operation": "equals",
              "value2": "charge.succeeded"
            }
          ]
        }
      },
      "name": "IF - Charge Succeeded",
      "type": "n8n-nodes-base.if",
      "position": [450, 300]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [{ "node": "IF - Charge Succeeded", "type": "main", "index": 0 }]
      ]
    }
  }
}
```text
> **Danger: Remove Credentials Before Sharing**
>
> Exported workflows include credential **references** (IDs) but not the actual secrets. However, some nodes may contain hardcoded API keys, tokens, or URLs in their parameters. **Always review the JSON** before sharing and remove any sensitive values:
> ```bash
> # Quick check for potential secrets in the exported JSON

> grep -iE "(key|token|password|secret|bearer|api_key)" workflow.json
> ```

```text title="Forum Post Template"
**Title:** Stripe webhook workflow fails on invoices with no line items

**n8n version:** 1.94.1 (self-hosted, Docker)
**Database:** PostgreSQL 16
**Relevant log output:** [paste error from execution detail]

**Workflow JSON:** [attach or paste the exported JSON]

**Steps to reproduce:**
1. Import the attached workflow.
2. Send this curl command to the webhook: [paste curl]
3. The IF node fails with "Cannot read property 'amount' of undefined"

**Expected behavior:** The workflow should handle invoices with empty line items.
```text
Sharing workflow JSON turns a vague "my workflow is broken" post into a precise, reproducible bug report that community members can import and debug in under a minute.

**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)

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.