@intentsolutionsio/n8n-workflow-designer 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +19 -0
- package/LICENSE +21 -0
- package/README.md +754 -0
- package/agents/n8n-expert.md +349 -0
- package/commands/n8n-builder.md +518 -0
- package/package.json +41 -0
- package/skills/skill-adapter/assets/README.md +7 -0
- package/skills/skill-adapter/assets/config-template.json +32 -0
- package/skills/skill-adapter/assets/skill-schema.json +28 -0
- package/skills/skill-adapter/assets/test-data.json +27 -0
- package/skills/skill-adapter/references/README.md +4 -0
- package/skills/skill-adapter/references/best-practices.md +69 -0
- package/skills/skill-adapter/references/examples.md +73 -0
- package/skills/skill-adapter/scripts/README.md +7 -0
- package/skills/skill-adapter/scripts/helper-template.sh +42 -0
- package/skills/skill-adapter/scripts/validation.sh +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,754 @@
|
|
|
1
|
+
# n8n Workflow Designer
|
|
2
|
+
|
|
3
|
+
Design complex n8n workflows with AI assistance - the most powerful open-source automation platform.
|
|
4
|
+
|
|
5
|
+
## Why n8n?
|
|
6
|
+
|
|
7
|
+
n8n is the most powerful open-source automation platform available:
|
|
8
|
+
|
|
9
|
+
- **Open Source** - Self-host for complete control, no vendor lock-in
|
|
10
|
+
- **Cost Effective** - No per-execution fees, process millions for free
|
|
11
|
+
- **Advanced Logic** - Loops, branching, custom JavaScript code
|
|
12
|
+
- **More Powerful** - More capable than Zapier or Make.com
|
|
13
|
+
- **Extensible** - Create custom nodes, integrate anything
|
|
14
|
+
- **AI-Ready** - Native OpenAI, Anthropic, and LangChain integration
|
|
15
|
+
- **Data Control** - Keep sensitive data on your infrastructure
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
/plugin marketplace add jeremylongshore/claude-code-plugins
|
|
21
|
+
/plugin install n8n-workflow-designer
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## ⚠️ Rate Limits & Resource Constraints
|
|
25
|
+
|
|
26
|
+
**n8n is self-hosted** - constraints are hardware-based (CPU/RAM), not API rate limits like cloud automation platforms.
|
|
27
|
+
|
|
28
|
+
### Quick Comparison
|
|
29
|
+
|
|
30
|
+
| Platform | Paid (Zapier/Make) | FREE (n8n Self-Hosted) |
|
|
31
|
+
|----------|-------------------|----------------------|
|
|
32
|
+
| **Monthly Cost** | $29-1,899/mo | **$0/mo** (hardware only) |
|
|
33
|
+
| **Execution Limit** | 750-1M executions | **∞ Unlimited** |
|
|
34
|
+
| **Workflows** | 5-50 workflows | **∞ Unlimited** |
|
|
35
|
+
| **Registration** | Email + payment | **None** (self-hosted) |
|
|
36
|
+
| **Data Privacy** | Cloud (3rd party) | **Your infrastructure** |
|
|
37
|
+
|
|
38
|
+
**Annual Savings: $348-22,788** using self-hosted n8n instead of cloud automation platforms.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Self-Hosted: Hardware-Based "Rate Limits"
|
|
43
|
+
|
|
44
|
+
Unlike Zapier/Make cloud APIs, n8n's constraints are **resource-based** when self-hosted:
|
|
45
|
+
|
|
46
|
+
### 1. Hardware Requirements by Workload
|
|
47
|
+
|
|
48
|
+
| Workload | vCPU | RAM | Disk | Concurrent Workflows | Notes |
|
|
49
|
+
|----------|------|-----|------|---------------------|-------|
|
|
50
|
+
| **Light** (1-10 workflows) | 1 | 2GB | 10GB | 5-10 | Basic automation |
|
|
51
|
+
| **Medium** (10-50 workflows) | 2 | 4GB | 20GB | 20-30 | Small agency |
|
|
52
|
+
| **Heavy** (50-200 workflows) | 4 | 8GB | 50GB | 50-100 | Production use |
|
|
53
|
+
| **Enterprise** (200+ workflows) | 8+ | 16GB+ | 100GB+ | 100+ | High-volume ops |
|
|
54
|
+
|
|
55
|
+
**Multi-Agent Scenario: 5 Agents on One n8n Instance**
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
# Docker Compose - Shared n8n instance for 5 agents
|
|
59
|
+
version: '3.8'
|
|
60
|
+
services:
|
|
61
|
+
n8n:
|
|
62
|
+
image: n8nio/n8n:latest
|
|
63
|
+
container_name: shared-n8n-instance
|
|
64
|
+
ports:
|
|
65
|
+
- "5678:5678"
|
|
66
|
+
environment:
|
|
67
|
+
- N8N_BASIC_AUTH_ACTIVE=true
|
|
68
|
+
- N8N_BASIC_AUTH_USER=admin
|
|
69
|
+
- N8N_BASIC_AUTH_PASSWORD=secure_password
|
|
70
|
+
- N8N_WEBHOOK_URL=http://your-domain.com
|
|
71
|
+
- EXECUTIONS_MODE=queue # Critical for multi-agent
|
|
72
|
+
- QUEUE_BULL_REDIS_HOST=redis
|
|
73
|
+
- QUEUE_RECOVERY_INTERVAL=60
|
|
74
|
+
volumes:
|
|
75
|
+
- ~/.n8n:/home/node/.n8n
|
|
76
|
+
restart: unless-stopped
|
|
77
|
+
deploy:
|
|
78
|
+
resources:
|
|
79
|
+
limits:
|
|
80
|
+
cpus: '4'
|
|
81
|
+
memory: 8G
|
|
82
|
+
reservations:
|
|
83
|
+
cpus: '2'
|
|
84
|
+
memory: 4G
|
|
85
|
+
|
|
86
|
+
redis:
|
|
87
|
+
image: redis:alpine
|
|
88
|
+
container_name: n8n-redis-queue
|
|
89
|
+
volumes:
|
|
90
|
+
- redis_data:/data
|
|
91
|
+
restart: unless-stopped
|
|
92
|
+
|
|
93
|
+
volumes:
|
|
94
|
+
redis_data:
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Result:** 5 agents share one n8n instance with queue management (4 vCPU, 8GB RAM)
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### 2. Execution Throughput "Limits"
|
|
102
|
+
|
|
103
|
+
| Hardware | Executions/Second | Executions/Hour | Executions/Month | Notes |
|
|
104
|
+
|----------|------------------|----------------|------------------|-------|
|
|
105
|
+
| **1 vCPU, 2GB RAM** | 1-3 | 3,600-10,800 | 2.6M-7.8M | Light workflows |
|
|
106
|
+
| **2 vCPU, 4GB RAM** | 5-10 | 18K-36K | 13M-26M | Medium workflows |
|
|
107
|
+
| **4 vCPU, 8GB RAM** | 15-30 | 54K-108K | 38M-77M | Heavy workflows |
|
|
108
|
+
| **8 vCPU, 16GB RAM** | 50-100 | 180K-360K | 129M-259M | Enterprise scale |
|
|
109
|
+
|
|
110
|
+
**Workflow Complexity Impact:**
|
|
111
|
+
- **Simple** (2-5 nodes, no AI): 100-200 ms per execution
|
|
112
|
+
- **Medium** (10-20 nodes, basic AI): 1-2 sec per execution
|
|
113
|
+
- **Complex** (30+ nodes, multiple APIs): 5-10 sec per execution
|
|
114
|
+
- **AI-Heavy** (LLM calls, image gen): 20-60 sec per execution
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### 3. Storage Requirements
|
|
119
|
+
|
|
120
|
+
| Data Type | Size Per Item | 1K Executions | 100K Executions | Cleanup Strategy |
|
|
121
|
+
|-----------|--------------|--------------|----------------|------------------|
|
|
122
|
+
| **Execution logs** | 5-50 KB | 5-50 MB | 500MB-5GB | Auto-prune >30 days |
|
|
123
|
+
| **Workflow JSON** | 10-100 KB | 10-100 MB | 1-10 GB | Version control |
|
|
124
|
+
| **Binary data** | Variable | Variable | Variable | S3/object storage |
|
|
125
|
+
| **Database** | SQLite/Postgres | 50-100 MB | 5-10 GB | Regular vacuum |
|
|
126
|
+
|
|
127
|
+
**Disk Space Planning:**
|
|
128
|
+
```bash
|
|
129
|
+
# Minimal (10 workflows, 30-day retention)
|
|
130
|
+
Disk: 10 GB
|
|
131
|
+
|
|
132
|
+
# Medium (50 workflows, 90-day retention)
|
|
133
|
+
Disk: 50 GB
|
|
134
|
+
|
|
135
|
+
# Enterprise (200+ workflows, 1-year retention)
|
|
136
|
+
Disk: 200 GB + object storage for binary data
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## n8n Cloud vs Self-Hosted Constraints
|
|
142
|
+
|
|
143
|
+
### n8n Cloud (Paid SaaS)
|
|
144
|
+
|
|
145
|
+
**Rate Limits:**
|
|
146
|
+
| Plan | Monthly Executions | Workflows | Support | Cost |
|
|
147
|
+
|------|-------------------|-----------|---------|------|
|
|
148
|
+
| **Free** | 5,000 | 5 | Community | $0 |
|
|
149
|
+
| **Starter** | 20,000 | 20 | Email | $20/mo |
|
|
150
|
+
| **Pro** | 200,000 | Unlimited | Priority | $50/mo |
|
|
151
|
+
| **Enterprise** | Custom | Unlimited | Dedicated | $500+/mo |
|
|
152
|
+
|
|
153
|
+
**Registration Requirements:**
|
|
154
|
+
- ✅ Email required
|
|
155
|
+
- ✅ Payment method required (after free tier)
|
|
156
|
+
- ✅ No self-hosting (cloud only)
|
|
157
|
+
- ⚠️ Data stored on n8n servers (EU/US)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### n8n Self-Hosted (Open Source)
|
|
162
|
+
|
|
163
|
+
**"Rate Limits" (Hardware-Based):**
|
|
164
|
+
| Resource | Constraint | Solution |
|
|
165
|
+
|----------|-----------|----------|
|
|
166
|
+
| **Executions** | ∞ Unlimited | Limited only by CPU/RAM |
|
|
167
|
+
| **Workflows** | ∞ Unlimited | Limited only by disk space |
|
|
168
|
+
| **Concurrent Jobs** | CPU cores × 2 | Add more vCPUs |
|
|
169
|
+
| **Data Retention** | Disk space | Prune old executions |
|
|
170
|
+
| **API Calls** | No n8n limits | Limited by integrated services |
|
|
171
|
+
|
|
172
|
+
**Registration Requirements:**
|
|
173
|
+
- ❌ No email required
|
|
174
|
+
- ❌ No payment required
|
|
175
|
+
- ❌ No account signup
|
|
176
|
+
- ✅ 100% free forever
|
|
177
|
+
- ✅ Data stays on your infrastructure
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Multi-Agent Coordination Strategies
|
|
182
|
+
|
|
183
|
+
### Scenario: 5 Agents Triggering Workflows on Shared n8n Instance
|
|
184
|
+
|
|
185
|
+
**Challenge:** Multiple agents trigger workflows concurrently. Without coordination, could exhaust CPU/RAM.
|
|
186
|
+
|
|
187
|
+
#### Strategy 1: Queue-Based Execution
|
|
188
|
+
|
|
189
|
+
```javascript
|
|
190
|
+
// Docker Compose with Redis queue (shown above)
|
|
191
|
+
// n8n automatically queues executions when busy
|
|
192
|
+
|
|
193
|
+
// Each agent triggers workflow via webhook
|
|
194
|
+
const agent_configs = {
|
|
195
|
+
agent1: { workflow: 'email-automation', priority: 'high' },
|
|
196
|
+
agent2: { workflow: 'content-generation', priority: 'medium' },
|
|
197
|
+
agent3: { workflow: 'data-processing', priority: 'low' },
|
|
198
|
+
agent4: { workflow: 'slack-notifications', priority: 'high' },
|
|
199
|
+
agent5: { workflow: 'crm-updates', priority: 'medium' }
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
// Trigger workflow with priority
|
|
203
|
+
async function triggerWorkflow(agentId, data) {
|
|
204
|
+
const config = agent_configs[agentId];
|
|
205
|
+
|
|
206
|
+
const response = await fetch('http://n8n-instance:5678/webhook/workflow', {
|
|
207
|
+
method: 'POST',
|
|
208
|
+
headers: { 'Content-Type': 'application/json' },
|
|
209
|
+
body: JSON.stringify({
|
|
210
|
+
agent_id: agentId,
|
|
211
|
+
priority: config.priority,
|
|
212
|
+
data: data
|
|
213
|
+
})
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
return response.json();
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// n8n queue handles concurrent requests automatically
|
|
220
|
+
// High priority workflows execute first
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Result:** n8n with Redis queue handles concurrent agent requests without crashes
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
#### Strategy 2: Agent Coordinator (Rate Limiting)
|
|
228
|
+
|
|
229
|
+
```python
|
|
230
|
+
# Centralized n8n workflow coordinator for multiple agents
|
|
231
|
+
import time
|
|
232
|
+
import threading
|
|
233
|
+
from queue import PriorityQueue
|
|
234
|
+
|
|
235
|
+
class N8NWorkflowCoordinator:
|
|
236
|
+
def __init__(self, n8n_url, max_concurrent=10):
|
|
237
|
+
self.n8n_url = n8n_url
|
|
238
|
+
self.max_concurrent = max_concurrent
|
|
239
|
+
self.active_executions = 0
|
|
240
|
+
self.execution_queue = PriorityQueue()
|
|
241
|
+
self.lock = threading.Lock()
|
|
242
|
+
|
|
243
|
+
def trigger_workflow(self, agent_id, workflow_name, data, priority=5):
|
|
244
|
+
"""
|
|
245
|
+
Trigger n8n workflow with rate limiting
|
|
246
|
+
|
|
247
|
+
Args:
|
|
248
|
+
agent_id: Which agent is triggering
|
|
249
|
+
workflow_name: n8n workflow to execute
|
|
250
|
+
data: Workflow input data
|
|
251
|
+
priority: 1 (highest) to 10 (lowest)
|
|
252
|
+
"""
|
|
253
|
+
# Add to queue if at capacity
|
|
254
|
+
with self.lock:
|
|
255
|
+
if self.active_executions >= self.max_concurrent:
|
|
256
|
+
self.execution_queue.put((priority, {
|
|
257
|
+
'agent_id': agent_id,
|
|
258
|
+
'workflow': workflow_name,
|
|
259
|
+
'data': data
|
|
260
|
+
}))
|
|
261
|
+
return {'status': 'queued', 'position': self.execution_queue.qsize()}
|
|
262
|
+
|
|
263
|
+
# Execute immediately
|
|
264
|
+
self.active_executions += 1
|
|
265
|
+
|
|
266
|
+
try:
|
|
267
|
+
# Call n8n webhook
|
|
268
|
+
response = requests.post(
|
|
269
|
+
f'{self.n8n_url}/webhook/{workflow_name}',
|
|
270
|
+
json={'agent_id': agent_id, 'data': data}
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
return {'status': 'executed', 'result': response.json()}
|
|
274
|
+
|
|
275
|
+
finally:
|
|
276
|
+
with self.lock:
|
|
277
|
+
self.active_executions -= 1
|
|
278
|
+
|
|
279
|
+
# Process next queued workflow
|
|
280
|
+
self._process_queue()
|
|
281
|
+
|
|
282
|
+
def _process_queue(self):
|
|
283
|
+
"""Process next workflow from queue"""
|
|
284
|
+
if not self.execution_queue.empty():
|
|
285
|
+
priority, workflow_data = self.execution_queue.get()
|
|
286
|
+
self.trigger_workflow(
|
|
287
|
+
workflow_data['agent_id'],
|
|
288
|
+
workflow_data['workflow'],
|
|
289
|
+
workflow_data['data'],
|
|
290
|
+
priority
|
|
291
|
+
)
|
|
292
|
+
|
|
293
|
+
# All 5 agents share one coordinator
|
|
294
|
+
coordinator = N8NWorkflowCoordinator(
|
|
295
|
+
n8n_url='http://localhost:5678',
|
|
296
|
+
max_concurrent=10 # Limit to 10 concurrent workflows
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
# Agent usage
|
|
300
|
+
def agent_execute(agent_id, task):
|
|
301
|
+
result = coordinator.trigger_workflow(
|
|
302
|
+
agent_id=agent_id,
|
|
303
|
+
workflow_name='process-task',
|
|
304
|
+
data={'task': task},
|
|
305
|
+
priority=2 # High priority
|
|
306
|
+
)
|
|
307
|
+
return result
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Result:** Coordinator limits concurrent workflows to 10, preventing resource exhaustion
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
#### Strategy 3: Workflow Pooling (Reduce Duplicates)
|
|
315
|
+
|
|
316
|
+
```python
|
|
317
|
+
# Cache workflow results to avoid duplicate executions
|
|
318
|
+
class WorkflowResultCache:
|
|
319
|
+
def __init__(self, ttl_seconds=300):
|
|
320
|
+
self.cache = {}
|
|
321
|
+
self.ttl = ttl_seconds
|
|
322
|
+
|
|
323
|
+
def get_or_execute(self, workflow_name, input_hash, execute_func):
|
|
324
|
+
"""
|
|
325
|
+
Check cache before executing workflow
|
|
326
|
+
|
|
327
|
+
Args:
|
|
328
|
+
workflow_name: Name of n8n workflow
|
|
329
|
+
input_hash: Hash of input data
|
|
330
|
+
execute_func: Function to execute if cache miss
|
|
331
|
+
"""
|
|
332
|
+
cache_key = f"{workflow_name}:{input_hash}"
|
|
333
|
+
|
|
334
|
+
# Check cache
|
|
335
|
+
if cache_key in self.cache:
|
|
336
|
+
result, timestamp = self.cache[cache_key]
|
|
337
|
+
age = time.time() - timestamp
|
|
338
|
+
|
|
339
|
+
if age < self.ttl:
|
|
340
|
+
return {'status': 'cached', 'result': result}
|
|
341
|
+
|
|
342
|
+
# Cache miss - execute workflow
|
|
343
|
+
fresh_result = execute_func()
|
|
344
|
+
|
|
345
|
+
# Update cache
|
|
346
|
+
self.cache[cache_key] = (fresh_result, time.time())
|
|
347
|
+
|
|
348
|
+
return {'status': 'executed', 'result': fresh_result}
|
|
349
|
+
|
|
350
|
+
# Usage
|
|
351
|
+
cache = WorkflowResultCache(ttl_seconds=300) # 5-minute cache
|
|
352
|
+
|
|
353
|
+
# Agent 1: executes workflow
|
|
354
|
+
result1 = cache.get_or_execute(
|
|
355
|
+
'email-classification',
|
|
356
|
+
hash(str(email_data)),
|
|
357
|
+
lambda: n8n_client.execute_workflow('email-classification', email_data)
|
|
358
|
+
)
|
|
359
|
+
|
|
360
|
+
# Agent 2: same email 10 seconds later → cached result (no execution)
|
|
361
|
+
result2 = cache.get_or_execute(
|
|
362
|
+
'email-classification',
|
|
363
|
+
hash(str(email_data)),
|
|
364
|
+
lambda: n8n_client.execute_workflow('email-classification', email_data)
|
|
365
|
+
)
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
**Impact:** 80% reduction in duplicate workflow executions when agents process similar data
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## Registration & Setup Requirements
|
|
373
|
+
|
|
374
|
+
| Deployment | Email Signup | Payment | Infrastructure | Data Location | Support |
|
|
375
|
+
|-----------|--------------|---------|----------------|---------------|---------|
|
|
376
|
+
| **Self-Hosted** | ❌ No | ❌ No | ✅ Your servers | ✅ Your control | Community |
|
|
377
|
+
| **n8n Cloud Free** | ✅ Yes | ❌ No | n8n's cloud | EU/US | Community |
|
|
378
|
+
| **n8n Cloud Starter** | ✅ Yes | ✅ Required | n8n's cloud | EU/US | Email |
|
|
379
|
+
| **n8n Cloud Pro** | ✅ Yes | ✅ Required | n8n's cloud | EU/US | Priority |
|
|
380
|
+
|
|
381
|
+
**Best for Agencies:** Self-hosted (zero cost, data control, unlimited executions)
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## Cost Comparison: Cloud Automation vs Self-Hosted n8n
|
|
386
|
+
|
|
387
|
+
### Paid Approach (Cloud Automation)
|
|
388
|
+
|
|
389
|
+
**Zapier Professional:**
|
|
390
|
+
- **Cost:** $19-1,899/mo ($228-22,788/year)
|
|
391
|
+
- **Executions:** 750-1M per month
|
|
392
|
+
- **Workflows:** 5-50 (tier-based)
|
|
393
|
+
- **Limitations:** No loops, limited custom code, no self-hosting
|
|
394
|
+
|
|
395
|
+
**Make.com Professional:**
|
|
396
|
+
- **Cost:** $9-299/mo ($108-3,588/year)
|
|
397
|
+
- **Operations:** 10K-1M per month
|
|
398
|
+
- **Limitations:** Cloud only, complex pricing tiers
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
### Free Approach (n8n Self-Hosted)
|
|
403
|
+
|
|
404
|
+
**Hardware Costs:**
|
|
405
|
+
- **VPS (DigitalOcean/Hetzner):** $12-48/mo ($144-576/year one-time hardware)
|
|
406
|
+
- **Executions:** ∞ Unlimited
|
|
407
|
+
- **Workflows:** ∞ Unlimited
|
|
408
|
+
- **Advantages:** Full control, custom code, loops, data privacy
|
|
409
|
+
|
|
410
|
+
**Annual Savings:**
|
|
411
|
+
- vs Zapier: $228-22,788/year → Save 88-97%
|
|
412
|
+
- vs Make.com: $108-3,588/year → Save 84-96%
|
|
413
|
+
|
|
414
|
+
**Cost Per Execution:**
|
|
415
|
+
- **Zapier:** $0.0019-0.0253 per execution
|
|
416
|
+
- **Make.com:** $0.0003-0.0299 per execution
|
|
417
|
+
- **n8n Self-Hosted:** **$0.0000** per execution (after hardware)
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## When Self-Hosted n8n is NOT Enough
|
|
422
|
+
|
|
423
|
+
**Use n8n Cloud if:**
|
|
424
|
+
|
|
425
|
+
1. **No DevOps team** - Can't manage servers/Docker
|
|
426
|
+
2. **Enterprise SLA** - Need guaranteed 99.9% uptime
|
|
427
|
+
3. **Compliance** - SOC2/ISO27001 required
|
|
428
|
+
4. **Dedicated support** - Need 24/7 technical assistance
|
|
429
|
+
5. **Rapid scaling** - Don't want to manage infrastructure growth
|
|
430
|
+
|
|
431
|
+
**For 90% of users:** Self-hosted n8n is sufficient and drastically cheaper
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## Hybrid Approach (Best of Both Worlds)
|
|
436
|
+
|
|
437
|
+
**Use self-hosted for development, n8n Cloud for critical production workflows:**
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
# Development environment - Self-hosted (FREE)
|
|
441
|
+
docker-compose up -d n8n
|
|
442
|
+
|
|
443
|
+
# Production environment - n8n Cloud ($20-50/mo)
|
|
444
|
+
# Only for mission-critical workflows requiring SLA
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
**Cost Reduction:** $1,899/year → $240/year (87% savings) by self-hosting non-critical workflows
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## Quick Start: Self-Hosted n8n
|
|
452
|
+
|
|
453
|
+
### Docker (Fastest)
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
# Run n8n with persistent data
|
|
457
|
+
docker run -it --rm \
|
|
458
|
+
--name n8n \
|
|
459
|
+
-p 5678:5678 \
|
|
460
|
+
-v ~/.n8n:/home/node/.n8n \
|
|
461
|
+
n8nio/n8n
|
|
462
|
+
|
|
463
|
+
# Access at http://localhost:5678
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### Docker Compose (Production)
|
|
467
|
+
|
|
468
|
+
```yaml
|
|
469
|
+
version: '3.8'
|
|
470
|
+
|
|
471
|
+
services:
|
|
472
|
+
n8n:
|
|
473
|
+
image: n8nio/n8n:latest
|
|
474
|
+
container_name: n8n-production
|
|
475
|
+
restart: unless-stopped
|
|
476
|
+
ports:
|
|
477
|
+
- "5678:5678"
|
|
478
|
+
environment:
|
|
479
|
+
- N8N_BASIC_AUTH_ACTIVE=true
|
|
480
|
+
- N8N_BASIC_AUTH_USER=${N8N_USER}
|
|
481
|
+
- N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
|
|
482
|
+
- N8N_WEBHOOK_URL=${N8N_WEBHOOK_URL}
|
|
483
|
+
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
|
|
484
|
+
- DB_TYPE=postgresdb
|
|
485
|
+
- DB_POSTGRESDB_HOST=postgres
|
|
486
|
+
- DB_POSTGRESDB_DATABASE=n8n
|
|
487
|
+
- DB_POSTGRESDB_USER=${POSTGRES_USER}
|
|
488
|
+
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
|
|
489
|
+
- EXECUTIONS_MODE=queue
|
|
490
|
+
- QUEUE_BULL_REDIS_HOST=redis
|
|
491
|
+
volumes:
|
|
492
|
+
- ~/.n8n:/home/node/.n8n
|
|
493
|
+
depends_on:
|
|
494
|
+
- postgres
|
|
495
|
+
- redis
|
|
496
|
+
|
|
497
|
+
postgres:
|
|
498
|
+
image: postgres:15-alpine
|
|
499
|
+
container_name: n8n-postgres
|
|
500
|
+
restart: unless-stopped
|
|
501
|
+
environment:
|
|
502
|
+
- POSTGRES_USER=${POSTGRES_USER}
|
|
503
|
+
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
504
|
+
- POSTGRES_DB=n8n
|
|
505
|
+
volumes:
|
|
506
|
+
- postgres_data:/var/lib/postgresql/data
|
|
507
|
+
|
|
508
|
+
redis:
|
|
509
|
+
image: redis:alpine
|
|
510
|
+
container_name: n8n-redis
|
|
511
|
+
restart: unless-stopped
|
|
512
|
+
volumes:
|
|
513
|
+
- redis_data:/data
|
|
514
|
+
|
|
515
|
+
volumes:
|
|
516
|
+
postgres_data:
|
|
517
|
+
redis_data:
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
**Hardware Requirements:**
|
|
521
|
+
- **CPU:** 2 vCPU minimum
|
|
522
|
+
- **RAM:** 4 GB minimum
|
|
523
|
+
- **Disk:** 20 GB + growth
|
|
524
|
+
|
|
525
|
+
---
|
|
526
|
+
|
|
527
|
+
## Resources
|
|
528
|
+
|
|
529
|
+
- **n8n Documentation:** [docs.n8n.io](https://docs.n8n.io) (complete guide)
|
|
530
|
+
- **Self-Hosting Guide:** [docs.n8n.io/hosting](https://docs.n8n.io/hosting/)
|
|
531
|
+
- **Docker Deployment:** [docs.n8n.io/hosting/installation/docker](https://docs.n8n.io/hosting/installation/docker/)
|
|
532
|
+
- **Community Forum:** [community.n8n.io](https://community.n8n.io) (free support)
|
|
533
|
+
- **Pricing Comparison:** [n8n.io/pricing](https://n8n.io/pricing)
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
**Bottom Line:** Self-hosted n8n eliminates execution limits and saves $228-22,788/year vs Zapier/Make, with only minimal hardware costs.
|
|
538
|
+
|
|
539
|
+
## Features
|
|
540
|
+
|
|
541
|
+
### Workflow Design Capabilities
|
|
542
|
+
- **Complex Branching** - Route data based on conditions
|
|
543
|
+
- **Loops & Iterations** - Process batches efficiently
|
|
544
|
+
- **Error Handling** - Retry logic and fallback strategies
|
|
545
|
+
- **Custom Code** - JavaScript for complex transformations
|
|
546
|
+
- **200+ Integrations** - Connect to any service
|
|
547
|
+
- **Webhooks** - Trigger workflows from anywhere
|
|
548
|
+
|
|
549
|
+
### AI Integration
|
|
550
|
+
- **OpenAI/GPT-4** - Native node support
|
|
551
|
+
- **Anthropic Claude** - Full API integration
|
|
552
|
+
- **Custom Models** - Connect any AI service
|
|
553
|
+
- **Prompt Templates** - Reusable prompts
|
|
554
|
+
- **Response Parsing** - Extract structured data
|
|
555
|
+
|
|
556
|
+
### Performance Features
|
|
557
|
+
- **Batch Processing** - Handle large datasets efficiently
|
|
558
|
+
- **Parallel Execution** - Multiple branches run simultaneously
|
|
559
|
+
- **Rate Limiting** - Built-in API throttling
|
|
560
|
+
- **Caching** - Reduce API calls and costs
|
|
561
|
+
- **Resource Management** - Monitor and optimize
|
|
562
|
+
|
|
563
|
+
## Commands
|
|
564
|
+
|
|
565
|
+
| Command | Description |
|
|
566
|
+
|---------|-------------|
|
|
567
|
+
| `/n8n` | Generate complete workflow JSON |
|
|
568
|
+
| Talk about workflows | Activates n8n-expert agent automatically |
|
|
569
|
+
|
|
570
|
+
## Example Workflows
|
|
571
|
+
|
|
572
|
+
### 1. AI Email Auto-Responder
|
|
573
|
+
```
|
|
574
|
+
Gmail Trigger → OpenAI Response → Gmail Send → Database Log
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
**Use Case:** Automatically respond to customer inquiries with AI-generated responses
|
|
578
|
+
|
|
579
|
+
**Cost:** ~$0.02 per email (using GPT-4)
|
|
580
|
+
|
|
581
|
+
### 2. Content Pipeline
|
|
582
|
+
```
|
|
583
|
+
RSS Feed → Filter → AI Enhancement → Multi-Platform Publish
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
**Use Case:** Automatically create and distribute content from RSS feeds
|
|
587
|
+
|
|
588
|
+
**Cost:** ~$0.05 per post (content generation + social media)
|
|
589
|
+
|
|
590
|
+
### 3. Lead Qualification
|
|
591
|
+
```
|
|
592
|
+
Form Submit → Data Enrichment → AI Scoring → Route → CRM/Email
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
**Use Case:** Automatically score and route leads based on fit
|
|
596
|
+
|
|
597
|
+
**Cost:** ~$0.01 per lead (AI scoring only)
|
|
598
|
+
|
|
599
|
+
### 4. Document Processing
|
|
600
|
+
```
|
|
601
|
+
Email Trigger → Extract PDF → OCR → AI Analysis → Database → Notify
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
**Use Case:** Process documents with AI and extract structured data
|
|
605
|
+
|
|
606
|
+
**Cost:** ~$0.10 per document (OCR + AI analysis)
|
|
607
|
+
|
|
608
|
+
### 5. Customer Support Automation
|
|
609
|
+
```
|
|
610
|
+
Ticket Created → Classify → Route → AI Draft → Human Review → Send
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
**Use Case:** Triage and draft responses for support tickets
|
|
614
|
+
|
|
615
|
+
**Cost:** ~$0.03 per ticket (classification + draft)
|
|
616
|
+
|
|
617
|
+
## Getting Started
|
|
618
|
+
|
|
619
|
+
### 1. Install the Plugin
|
|
620
|
+
```bash
|
|
621
|
+
/plugin install n8n-workflow-designer
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
### 2. Describe Your Workflow
|
|
625
|
+
```
|
|
626
|
+
I need a workflow that monitors my Gmail for support requests,
|
|
627
|
+
uses AI to draft responses, and sends them to Slack for approval.
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
### 3. Get Complete Workflow
|
|
631
|
+
The plugin generates:
|
|
632
|
+
- Visual architecture diagram
|
|
633
|
+
- Node-by-node configuration
|
|
634
|
+
- Complete importable JSON
|
|
635
|
+
- Setup instructions
|
|
636
|
+
- Testing checklist
|
|
637
|
+
- Cost estimates
|
|
638
|
+
|
|
639
|
+
### 4. Import to n8n
|
|
640
|
+
1. Copy the JSON output
|
|
641
|
+
2. Open your n8n instance
|
|
642
|
+
3. Click "Import from JSON"
|
|
643
|
+
4. Paste and configure credentials
|
|
644
|
+
5. Test and activate
|
|
645
|
+
|
|
646
|
+
## n8n Setup Options
|
|
647
|
+
|
|
648
|
+
### Cloud (Easiest)
|
|
649
|
+
- Visit [n8n.cloud](https://n8n.cloud)
|
|
650
|
+
- 5-10 workflows free
|
|
651
|
+
- $20/month for standard plan
|
|
652
|
+
- Hosted and managed
|
|
653
|
+
|
|
654
|
+
### Self-Hosted (Most Powerful)
|
|
655
|
+
```bash
|
|
656
|
+
# Docker Compose
|
|
657
|
+
docker run -it --rm \
|
|
658
|
+
--name n8n \
|
|
659
|
+
-p 5678:5678 \
|
|
660
|
+
-v ~/.n8n:/home/node/.n8n \
|
|
661
|
+
n8nio/n8n
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
**Benefits:**
|
|
665
|
+
- Free for unlimited workflows
|
|
666
|
+
- Full control over data
|
|
667
|
+
- No execution limits
|
|
668
|
+
- Custom nodes
|
|
669
|
+
- Better for sensitive data
|
|
670
|
+
|
|
671
|
+
## Real-World Examples
|
|
672
|
+
|
|
673
|
+
### Agency Use Case: Client Onboarding
|
|
674
|
+
```
|
|
675
|
+
Form Submit → Create Folders → Send Contracts → Schedule Kickoff → CRM Update
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
**Time Saved:** 2 hours per client
|
|
679
|
+
**Setup Time:** 30 minutes
|
|
680
|
+
**ROI:** After 1 client
|
|
681
|
+
|
|
682
|
+
### SaaS Use Case: User Activation
|
|
683
|
+
```
|
|
684
|
+
New Signup → Send Welcome → Monitor Usage → Trigger Onboarding → Alert Sales
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
**Conversion Lift:** 15-25%
|
|
688
|
+
**Setup Time:** 1 hour
|
|
689
|
+
**Cost:** $0.001 per user
|
|
690
|
+
|
|
691
|
+
### E-commerce Use Case: Order Processing
|
|
692
|
+
```
|
|
693
|
+
Order Received → Inventory Check → Payment → Fulfillment → Tracking → Follow-up
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
**Error Reduction:** 80%
|
|
697
|
+
**Setup Time:** 2 hours
|
|
698
|
+
**Payback:** 1 week
|
|
699
|
+
|
|
700
|
+
## Best Practices
|
|
701
|
+
|
|
702
|
+
1. **Start Simple** - Build incrementally, test each node
|
|
703
|
+
2. **Error Handling** - Always plan for failures
|
|
704
|
+
3. **Logging** - Track workflow execution
|
|
705
|
+
4. **Version Control** - Export workflows to git
|
|
706
|
+
5. **Documentation** - Add notes to complex nodes
|
|
707
|
+
6. **Testing** - Use small datasets first
|
|
708
|
+
7. **Monitoring** - Watch costs and performance
|
|
709
|
+
8. **Security** - Use environment variables for secrets
|
|
710
|
+
|
|
711
|
+
## Comparison: n8n vs Alternatives
|
|
712
|
+
|
|
713
|
+
| Feature | n8n | Make.com | Zapier |
|
|
714
|
+
|---------|-----|----------|--------|
|
|
715
|
+
| **Self-Hosting** | Free | Cloud only | Cloud only |
|
|
716
|
+
| **Loops** | Native | ️ Limited | No |
|
|
717
|
+
| **Custom Code** | JavaScript | ️ Limited | ️ Limited |
|
|
718
|
+
| **Cost (1M ops)** | $0 | $299/mo | $1,899/mo |
|
|
719
|
+
| **Open Source** | Yes | No | No |
|
|
720
|
+
| **Complex Logic** | Advanced | ️ Good | ️ Basic |
|
|
721
|
+
| **AI Integration** | Native | ️ Manual | ️ Manual |
|
|
722
|
+
|
|
723
|
+
**Winner for Agencies:** n8n (cost, flexibility, power)
|
|
724
|
+
|
|
725
|
+
## Requirements
|
|
726
|
+
|
|
727
|
+
- **Claude Code** >= 1.0.0
|
|
728
|
+
- **n8n instance** (cloud or self-hosted)
|
|
729
|
+
- **API credentials** for integrated services
|
|
730
|
+
|
|
731
|
+
## Support & Resources
|
|
732
|
+
|
|
733
|
+
- **n8n Documentation:** [docs.n8n.io](https://docs.n8n.io)
|
|
734
|
+
- **Community Forum:** [community.n8n.io](https://community.n8n.io)
|
|
735
|
+
- **Discord:** Join the n8n Discord
|
|
736
|
+
- **Plugin Issues:** [GitHub Issues](https://github.com/jeremylongshore/claude-code-plugins/issues)
|
|
737
|
+
|
|
738
|
+
## License
|
|
739
|
+
|
|
740
|
+
MIT - See LICENSE file
|
|
741
|
+
|
|
742
|
+
## Contributing
|
|
743
|
+
|
|
744
|
+
Contributions welcome! Please submit PRs with:
|
|
745
|
+
- New workflow templates
|
|
746
|
+
- Integration examples
|
|
747
|
+
- Performance optimizations
|
|
748
|
+
- Documentation improvements
|
|
749
|
+
|
|
750
|
+
---
|
|
751
|
+
|
|
752
|
+
**Part of [Claude Code Plugin Hub](https://github.com/jeremylongshore/claude-code-plugins)**
|
|
753
|
+
|
|
754
|
+
Built for agencies, freelancers, and businesses who need powerful automation without the enterprise price tag.
|