n8n Self-Hosted vs Make.com Enterprise: The Real Cost Breakdown at 1M Tasks/Month
n8n Self-Hosted vs Make.com Enterprise: Real Cost at 1M Tasks/Month
Choosing an automation backbone at enterprise scale usually comes down to a fundamental architectural dilemma: pay for operational convenience or take control of your compute infrastructure.
When your organization hits 1,000,000 tasks per month, the pricing disparity between managed iPaaS solutions and self-hosted workflow engines stops being a minor line item and turns into a board-level budget discussion.
Executive Verdict: Make.com wins on zero-maintenance reliability, native app connectors, and immediate time-to-market. However, at 1,000,000 operations per month, n8n Self-Hosted reduces direct software/compute spend by over 88%, even when accounting for managed databases, Redis queuing, and standard DevOps maintenance hours.
The Math at Scale: 1,000,000 Operations Analyzed
Before comparing dollar amounts, we must address the fundamental architectural difference in how both platforms bill for execution.
- Make.com bills by Operation: Every single module execution within a scenario burns exactly 1 operation. A webhook triggering a router with 4 filter branches and 3 API calls can easily consume 8 to 12 operations per single inbound event.
- n8n bills by Workflow Execution: In self-hosted n8n, there are no artificial operation limits. A single execution processing an array of 5,000 records through 10 transformation nodes consumes compute resources (CPU/RAM), not licensing credits.
| Metric | Make.com (Enterprise/Scale Tier) | n8n Self-Hosted (Queue Mode) |
| Billing Unit | Operations / Module runs | Pure Cloud Compute (vCPU/RAM) |
| Direct Monthly Cost (1M units) | ~$800 – $1,250 / mo | ~$65 – $145 / mo |
| Payload Size Limits | Strict limits per plan (5 MB – 50 MB) | Limited only by host RAM |
| Execution Timeout | Max 40–60 minutes | Unlimited (configurable via Node.js) |
| Data Residency | Shared EU/US Cloud regions | 100% on-premise / Private VPC |
Make.com Pricing Reality: The Overage Trap
Make’s tiered model is predictable at low volumes (10,000 to 100,000 operations). But at enterprise throughput, three structural friction points emerge:
- The Multi-Module Multiplier: An event-driven architecture ingesting 100,000 webhooks per month rarely uses 100,000 operations. With transformations, routers, and external API error-handlers, that volume turns into 800,000 to 1,500,000 operations.
- Overage Spikes: If a rogue script or third-party retry storm floods your webhooks over a weekend, auto-purchased operation tiers kick in immediately, leading to unanticipated monthly invoice spikes.
- Data Security Overhead: If you handle HIPAA, PCI-DSS, or strict GDPR PII, Make’s standard shared-cloud infrastructure may force an upgrade to dedicated Enterprise contracts starting in five-figure annual commitments.
n8n Self-Hosted Infrastructure Blueprint (Production-Ready)
To process 1,000,000 executions per month without memory leaks or execution bottlenecks, you cannot run n8n in basic default single-process mode. You need n8n Queue Mode powered by Redis and an external PostgreSQL database.
Production Docker Compose Stack
version: '3.8'
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: n8n_admin
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: n8n_data
volumes:
- db_storage:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: always
command: ["redis-server", "--appendonly", "yes"]
volumes:
- redis_storage:/data
n8n-main:
image: docker.n8n.io/n8nio/n8n:latest
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_USER=n8n_admin
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
- DB_POSTGRESDB_DATABASE=n8n_data
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
ports:
- "5678:5678"
depends_on:
- postgres
- redis
n8n-worker:
image: docker.n8n.io/n8nio/n8n:latest
restart: always
command: /usr/local/bin/n8n worker
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_USER=n8n_admin
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
- DB_POSTGRESDB_DATABASE=n8n_data
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
depends_on:
- postgres
- redis
volumes:
db_storage:
redis_storage:
Direct Infrastructure Cost Breakdown
- Compute (Hetzner Cloud / AWS EC2):
- 1x CPX31 (4 vCPU, 8 GB RAM) for Main + Postgres + Redis: $16.50/mo
- 2x CPX21 (3 vCPU, 4 GB RAM) for Execution Workers: $18.00/mo
- Block Storage & Offsite Backups (S3 / R2): $5.00/mo
- Managed Network & Ingress (Cloudflare Pro / Traefik): $20.00/mo
- Total Direct Hardware Cost: ~$59.50 / month
The Hidden Overhead: Engineering Hours & TCO
Hosting your own infrastructure introduces operational friction that pure SaaS pricing avoids. To calculate true Total Cost of Ownership (TCO), consider human engineering time:
- Setup & Production Hardening: ~8 hours upfront (One-time cost: ~$800).
- Monthly Patching & Node Upgrades: ~1.5 hours/month (~$150/month).
- Database Pruning: Storing 1,000,000 workflow executions without automated cleanup scripts will crash PostgreSQL within 90 days. You must configure execution pruning (
EXECUTIONS_DATA_PRUNE=true).
The 1-Year TCO Comparison (1M Operations/Month)
| Cost Category | Make.com Enterprise | n8n Self-Hosted |
| Annual Software/Compute | $11,880 | $714 |
| Annual Maintenance (DevOps @ $100/hr) | $0 | $1,800 |
| Initial Deployment Setup | $200 | $800 |
| Total Year 1 Investment | $12,080 | $3,314 |
| Total Year 2+ Run-rate | $11,880 / year | $2,514 / year |
Architectural Comparison Matrix
| Technical Capability | Make.com | n8n Self-Hosted |
| Custom Code Execution | Basic JS (Strict Sandbox) | Full Node.js, Python, npm modules |
| Version Control & CI/CD | Enterprise only / manual JSON | Native Git Integration via CLI/API |
| Debugging Heavy Payloads | Truncates large arrays in UI | Full variable inspection in browser |
| Community Custom Nodes | Closed ecosystem | Open npm ecosystem / Custom Docker builds |
| Local LLM / Private AI | Cloud APIs only (OpenAI, Anthropic) | Direct connectivity to self-hosted Ollama / vLLM |
Final Decision Framework: Which One Should You Pick?
Choose Make.com if: Your automation team consists primarily of non-technical operators, your integrations rely heavily on standard SaaS tools (Slack, HubSpot, Airtable), and paying a premium is preferable to maintaining server uptime.
Choose n8n Self-Hosted if: You process repetitive bulk data, need custom npm/Python logic, require strict regulatory compliance, or want to deploy local AI pipelines without variable per-token automation penalties.
Aquí tienes la sección de Preguntas Frecuentes (FAQ) redactada en inglés técnico, lista para copiar y pegar justo antes de la conclusión o llamada a la acción de tu artículo.
Además de responder a las dudas de intención de búsqueda transaccional, coincide con las preguntas incluidas en el marcado Schema JSON-LD:
Frequently Asked Questions
Is self-hosting n8n really cheaper than Make.com at scale?
Yes. At 1,000,000 monthly operations, Make.com plans cost between $800 and $1,250/month depending on your operation tier and overage fees. A resilient, production-ready n8n setup deployed on cloud compute (such as Hetzner or AWS EC2) costs roughly $60 to $145/month in compute and storage. Even when budgeting 1.5 to 2 hours of DevOps maintenance per month, self-hosted n8n reduces total operational software spend by more than 80%.
What infrastructure do I need to run n8n at 1,000,000 executions per month?
Running n8n at this volume requires Queue Mode rather than the single-process default container. The recommended architecture includes:
- Orchestrator (Main Instance): 4 vCPU, 8 GB RAM.
- Database: Managed PostgreSQL 16 (configured with automated execution pruning).
- Broker: Redis 7 (handling task queuing and concurrency).
- Workers: At least 2 worker nodes (2–4 vCPU each) to process jobs asynchronously without blocking the UI.
Does n8n require coding knowledge compared to Make.com?
For standard API integrations and basic webhooks, n8n offers a visual drag-and-drop node experience similar to Make. However, managing a self-hosted production cluster requires foundational DevOps skills (Docker, reverse proxies, environment variables, and PostgreSQL maintenance). If your team lacks Linux server administration experience, Make’s managed platform eliminates that infrastructure overhead.
How does n8n handle execution data pruning?
By default, saving millions of execution logs will rapidly exhaust your database storage. In production, you must set EXECUTIONS_DATA_PRUNE=true and define EXECUTIONS_DATA_MAX_AGE (typically 168 hours / 7 days) in your environment variables. This automatically deletes old execution payloads and keeps PostgreSQL lean and fast.