{"slug": "make-com-vs-n8n-i-built-the-same-ai-agent-in-both", "title": "Make.com vs n8n: I Built the Same AI Agent in Both", "summary": "A developer compared Make.com and n8n by building the same nine-step AI lead-routing agent in both tools. They found that Make is better for simple workflows under 1,000 operations per month, but n8n wins for non-trivial automation due to its native custom code support, retry logic, and lower cost at scale. The developer saved $564 annually on a single client workflow by switching from Make Pro to self-hosted n8n.", "body_md": "A client needed a lead-routing agent. Gmail in, AI classifies by industry and urgency, hot leads to a sales rep on Telegram, cold ones to the CRM with a tagged follow-up. Nine steps. I built it three times — Make, n8n, then raw code — because I picked wrong the first two times. Here is the decision rule I wish someone had given me.\n\nBefore I argue about tooling, here is the spec, because vague comparisons are useless. Nine nodes total: Gmail trigger → extract sender + body → OpenAI classification (industry, urgency 1-5) → branch on urgency → Telegram message to sales rep (hot) → CRM upsert with tag (cold) → follow-up sequence enqueue → log to Postgres → error catch.\n\nThat is the surface. What killed me was the second-order work:\n\nEvery comparison post online benchmarks the happy path. Real client work is the unhappy path. That is where Make and n8n diverge hard.\n\nFor a workflow with under ten steps, no retry logic, no custom auth, and under 1,000 ops/month, Make is the better choice. The UX is genuinely cleaner and you will ship faster. I built the happy-path version of this agent in Make in eight minutes flat.\n\nSpecifically:\n\nIf your automation looks like *\"trigger → enrich → send\"* and runs a few hundred times a month, stop reading and use Make. Your time is worth more than the $9–29/month subscription. Most YouTubers who tell you \"always use n8n\" are selling a self-hosting course.\n\nMake's pricing model is per-operation, and every error handler, every router branch, every iteration consumes ops. The moment you add real production logic — retries, dead-letter queues, idempotency checks — the ops counter accelerates faster than your feature set.\n\nHere is what happened on this specific client:\n\nAt around 1,200 real-traffic ops/month plus the polling overhead, the workflow needed the Pro tier. Make's UX is great until you're paying for the privilege of working around its limitations.\n\nThen came the invoicing API. Non-standard auth header, HMAC-signed payload. In Make, the HTTP module on the lower tiers cannot generate the signature inline — you'd need a separate scenario, a webhook, and a data store hop. Ugly. In n8n:\n\n``` js\n// n8n Function node — 6 lines\nconst crypto = require('crypto');\nconst ts = Date.now().toString();\nconst payload = JSON.stringify($json.body);\nconst sig = crypto.createHmac('sha256', $env.API_SECRET)\n                  .update(ts + payload).digest('hex');\nreturn [{ json: { ...$json, headers: { 'X-Signature': sig, 'X-Timestamp': ts } } }];\n```\n\nDone. That single capability — drop into JavaScript or Python when the visual nodes can't express what you need — is the deciding factor for any non-trivial workflow.\n\nThis is where solopreneurs actually feel the choice. Real numbers from this client, audited from billing dashboards:\n\n| Metric | Make.com (Pro) | n8n self-hosted | n8n Cloud (Pro) |\n|---|---|---|---|\n| Executions/month (with retries + polling) | ~40,000 ops | ~40,000 | ~40,000 |\n| Monthly cost | $47 | $0 marginal* | $50 |\n| Annual cost | $564 | ~$0 | $600 |\n| Custom code support | Paid tier, limited | Native (JS + Python) | Native |\n| Native retry/error workflows | Limited | Yes | Yes |\n| Self-host option | No | Yes | No |\n\n*Marginal cost. My home server (mini PC, 32GB RAM, Ubuntu under WSL on one box, bare-metal Debian on another) runs eight other things. Amortized hardware is roughly $4/month of electricity.\n\nOver a year, that's $564 saved on **one** client workflow. Run five client workflows and you've paid for a developer-grade server. Run ten and you've funded a year of API credits.\n\nThe Make pricing trap is not the headline number. It's that every architectural improvement you make — better error handling, idempotency, observability — costs you ops. n8n charges you once for the engine, then your improvements are free.\n\nIf you're going the n8n route, here is the Docker Compose I use on the client server. Postgres for persistence, n8n behind a Caddy reverse proxy for TLS, encrypted credentials at rest.\n\n```\n# docker-compose.yml\nservices:\n  postgres:\n    image: postgres:16\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: n8n\n      POSTGRES_PASSWORD: ${DB_PASSWORD}\n      POSTGRES_DB: n8n\n    volumes:\n      - ./pgdata:/var/lib/postgresql/data\n\n  n8n:\n    image: n8nio/n8n:latest\n    restart: unless-stopped\n    environment:\n      DB_TYPE: postgresdb\n      DB_POSTGRESDB_HOST: postgres\n      DB_POSTGRESDB_USER: n8n\n      DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}\n      N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}\n      N8N_HOST: automation.yourdomain.com\n      WEBHOOK_URL: https://automation.yourdomain.com/\n      N8N_PROTOCOL: https\n      EXECUTIONS_DATA_PRUNE: \"true\"\n      EXECUTIONS_DATA_MAX_AGE: 168  # 7 days\n    ports:\n      - \"127.0.0.1:5678:5678\"\n    depends_on:\n      - postgres\n    volumes:\n      - ./n8n-data:/home/node/.n8n\n# .env\nDB_PASSWORD=$(openssl rand -hex 24)\nENCRYPTION_KEY=$(openssl rand -hex 32)\n\ndocker compose up -d\n```\n\nA few things I learned the hard way running this in production:\n\n`EXECUTIONS_DATA_PRUNE`\n\n.`EXECUTIONS_MODE=queue`\n\nwith Redis) once you're past 10k executions/day. Single-process mode will block on a slow webhook.`n8n-data`\n\nand the Postgres dump nightly.`N8N_ENCRYPTION_KEY`\n\n— lose that key, lose every saved credential.Twelve minutes from `docker compose up`\n\nto a working webhook in production, if your DNS and TLS are already set up.\n\nSkip the holy war. Here is the actual rule:\n\nThe trap is building in Make first and migrating later. I have done that rebuild three times. It is always two full days I don't get back, because Make's data shapes don't map cleanly to n8n's, and your error handlers are scenario-specific.\n\nThe Make-vs-n8n debate is the wrong question. The right question: *does my workflow need logic Make can't express cleanly?* If yes, n8n today. If no, Make today. Pick once, build once.\n\nFor client workflows we run through bizflowai.io, we default to n8n self-hosted on a managed server because the retry/custom-auth/volume math almost always wins for lead-routing, invoicing, and CRM-sync automations. We still build in Make when the workflow is genuinely simple and the client wants to own the canvas themselves. The honest part of the job is telling the client which tool fits before the build, not after — that one conversation saves the two-day rebuild every time.\n\nI publish practical AI automation, GenAI engineering, and faceless content workflows on YouTube every week.\n\n** Subscribe to bizflowai.io on YouTube** — never miss a new tutorial.\n\nPlanning an AI automation project or need a second opinion on your architecture?\n\n** Connect with me on LinkedIn** — Lazar Milicevic, GenAI Engineer & bizflowai.io Founder.\n\n[Visit bizflowai.io](https://bizflowai.io) for our services, case studies, and AI consulting.", "url": "https://wpnews.pro/news/make-com-vs-n8n-i-built-the-same-ai-agent-in-both", "canonical_source": "https://dev.to/lamingsrb/makecom-vs-n8n-i-built-the-same-ai-agent-in-both-2hc8", "published_at": "2026-06-29 06:11:40+00:00", "updated_at": "2026-06-29 06:27:21.183805+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "ai-agents"], "entities": ["Make.com", "n8n", "OpenAI", "Telegram", "Postgres", "Caddy"], "alternates": {"html": "https://wpnews.pro/news/make-com-vs-n8n-i-built-the-same-ai-agent-in-both", "markdown": "https://wpnews.pro/news/make-com-vs-n8n-i-built-the-same-ai-agent-in-both.md", "text": "https://wpnews.pro/news/make-com-vs-n8n-i-built-the-same-ai-agent-in-both.txt", "jsonld": "https://wpnews.pro/news/make-com-vs-n8n-i-built-the-same-ai-agent-in-both.jsonld"}}