Files
2025-11-29 18:50:44 +08:00

11 KiB

description
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

{
  "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

{
  "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

{
  "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

{
  "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

# 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.