Initial commit
This commit is contained in:
518
commands/n8n-builder.md
Normal file
518
commands/n8n-builder.md
Normal file
@@ -0,0 +1,518 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user