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

519 lines
11 KiB
Markdown

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