---
name: n8n-builder
description: Generate complete n8n workflow JSON files
---
# n8n Workflow Builder

Generate production-ready n8n workflow JSON files.

## Usage

When the user requests an n8n workflow, analyze their requirements and create a complete, importable workflow JSON file.

## Workflow Templates

### 1. AI Email Responder

```json
{
  "name": "AI Email Auto-Responder",
  "nodes": [
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "simple": true,
        "filters": {
          "labelIds": ["INBOX"]
        }
      },
      "id": "1",
      "name": "Gmail Trigger",
      "type": "n8n-nodes-base.gmailTrigger",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "model": "gpt-4",
        "messages": {
          "values": [
            {
              "content": "=Draft a professional response to this email:\n\nFrom: {{ $json.from }}\nSubject: {{ $json.subject }}\nBody: {{ $json.body }}\n\nWrite a helpful, friendly response."
            }
          ]
        }
      },
      "id": "2",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [450, 300],
      "credentials": {
        "openAiApi": {
          "id": "1",
          "name": "OpenAI API"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $('Gmail Trigger').item.json.from }}",
        "subject": "=Re: {{ $('Gmail Trigger').item.json.subject }}",
        "message": "={{ $json.output }}",
        "options": {}
      },
      "id": "3",
      "name": "Gmail Send",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [650, 300],
      "credentials": {
        "gmailOAuth2": {
          "id": "1",
          "name": "Gmail OAuth2"
        }
      }
    }
  ],
  "connections": {
    "Gmail Trigger": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Gmail Send",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
```

### 2. Data Processing Pipeline

```json
{
  "name": "CSV to Database with AI Enhancement",
  "nodes": [
    {
      "parameters": {
        "fileFormat": "csv",
        "options": {}
      },
      "id": "1",
      "name": "Read CSV",
      "type": "n8n-nodes-base.spreadsheetFile",
      "typeVersion": 2,
      "position": [250, 300]
    },
    {
      "parameters": {
        "batchSize": 10,
        "options": {}
      },
      "id": "2",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [450, 300]
    },
    {
      "parameters": {
        "model": "gpt-4",
        "messages": {
          "values": [
            {
              "content": "=Enhance this data record with additional context:\n{{ JSON.stringify($json) }}"
            }
          ]
        }
      },
      "id": "3",
      "name": "AI Enhancement",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [650, 300]
    },
    {
      "parameters": {
        "operation": "insert",
        "schema": {
          "__rl": true,
          "value": "public",
          "mode": "list"
        },
        "table": {
          "__rl": true,
          "value": "records",
          "mode": "list"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {}
        },
        "options": {}
      },
      "id": "4",
      "name": "PostgreSQL Insert",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2.4,
      "position": [850, 300]
    }
  ],
  "connections": {
    "Read CSV": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "AI Enhancement",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Enhancement": {
      "main": [
        [
          {
            "node": "PostgreSQL Insert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
```

### 3. Content Pipeline

```json
{
  "name": "RSS to Social Media with AI",
  "nodes": [
    {
      "parameters": {
        "url": "https://example.com/feed.xml",
        "options": {}
      },
      "id": "1",
      "name": "RSS Feed",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "conditions": {
          "dateTime": [
            {
              "value1": "={{ $json.pubDate }}",
              "operation": "after",
              "value2": "={{ $now.minus({ hours: 24 }) }}"
            }
          ]
        }
      },
      "id": "2",
      "name": "Filter New Items",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2,
      "position": [450, 300]
    },
    {
      "parameters": {
        "model": "gpt-4",
        "messages": {
          "values": [
            {
              "content": "=Create a compelling social media post from this article:\n\nTitle: {{ $json.title }}\nSummary: {{ $json.contentSnippet }}\n\nMake it engaging and include relevant hashtags."
            }
          ]
        }
      },
      "id": "3",
      "name": "Generate Post",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [650, 300]
    },
    {
      "parameters": {
        "text": "={{ $json.output }}",
        "additionalFields": {}
      },
      "id": "4",
      "name": "Twitter Post",
      "type": "n8n-nodes-base.twitter",
      "typeVersion": 2,
      "position": [850, 300]
    }
  ],
  "connections": {
    "RSS Feed": {
      "main": [
        [
          {
            "node": "Filter New Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New Items": {
      "main": [
        [
          {
            "node": "Generate Post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Post": {
      "main": [
        [
          {
            "node": "Twitter Post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
```

### 4. Lead Qualification

```json
{
  "name": "Lead Scoring and Routing",
  "nodes": [
    {
      "parameters": {
        "path": "lead-webhook",
        "options": {}
      },
      "id": "1",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [250, 300]
    },
    {
      "parameters": {
        "model": "gpt-4",
        "messages": {
          "values": [
            {
              "content": "=Score this lead from 0-100 based on fit:\n\nCompany: {{ $json.company }}\nRole: {{ $json.role }}\nIndustry: {{ $json.industry }}\nBudget: {{ $json.budget }}\n\nProvide score and reasoning."
            }
          ]
        }
      },
      "id": "2",
      "name": "AI Score",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [450, 300]
    },
    {
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.score }}",
              "operation": "larger",
              "value2": 70
            }
          ]
        }
      },
      "id": "3",
      "name": "IF High Score",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [650, 300]
    },
    {
      "parameters": {
        "resource": "deal",
        "operation": "create"
      },
      "id": "4",
      "name": "Create CRM Deal",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2,
      "position": [850, 250]
    },
    {
      "parameters": {
        "resource": "email",
        "operation": "send",
        "subject": "New Lead Follow Up",
        "message": "={{ $json.reasoning }}"
      },
      "id": "5",
      "name": "Nurture Email",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [850, 350]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "AI Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Score": {
      "main": [
        [
          {
            "node": "IF High Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF High Score": {
      "main": [
        [
          {
            "node": "Create CRM Deal",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Nurture Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
```

## Features

- Complex branching logic
- Loops and iterations
- Error handling and retries
- Custom code nodes
- 200+ integrations
- Self-hostable
- AI model integration
- Database operations
- API calls and webhooks

## Best Practices

1. **Always add error handling** - Use error workflows or try-catch nodes
2. **Test with small datasets first** - Validate before processing large volumes
3. **Use environment variables for secrets** - Never hardcode API keys
4. **Implement logging for debugging** - Add notes or database logging
5. **Version control your workflows** - Export and commit to git
6. **Monitor resource usage** - Watch execution times and API costs
7. **Use descriptive node names** - Make workflows self-documenting
8. **Implement rate limiting** - Respect API limits with Wait nodes
9. **Batch processing for scale** - Use Split in Batches for large datasets
10. **Regular backups** - Export workflows regularly

## Output Format

When generating a workflow, provide:

1. **Workflow Name** - Clear, descriptive name
2. **Architecture Diagram** - Visual flow of nodes
3. **Complete JSON** - Importable workflow file
4. **Setup Instructions** - Credentials, settings needed
5. **Testing Steps** - How to validate the workflow
6. **Deployment Notes** - Self-hosted vs cloud considerations
7. **Cost Estimation** - Expected API and resource costs

## Example Response

```markdown
# Workflow: AI Customer Support Automation

## Architecture
```

Ticket Created → Classify (AI) → Route by Priority → Draft Response (AI) → Human Review → Send

```

## Nodes
1. Webhook trigger for new tickets
2. OpenAI classification
3. IF node for routing
4. OpenAI response generation
5. Slack notification for review
6. Email send on approval

## Setup
1. Create webhook in your ticketing system
2. Add OpenAI API credentials
3. Configure Slack webhook
4. Set up email credentials
5. Test with sample ticket

## JSON
[Complete importable JSON here]

## Testing
- Send test ticket through webhook
- Verify classification accuracy
- Check routing logic
- Review AI-generated responses
- Test Slack notifications

## Cost Estimate
- ~$0.01 per ticket (GPT-4 usage)
- Self-hosted n8n: Free (Docker)
- Cloud n8n: $20/month (standard plan)
```

This workflow builder helps users create production-ready n8n automations with AI integration, error handling, and best practices built in.
