519 lines
11 KiB
Markdown
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.
|