ProofDevs

Hire an n8n Developer: Self-Hosted Workflow Automation, Costs and Vetting

Your n8n workflows run fine at 50 executions a day and silently drop orders at 5,000. Here is what separates a canvas-clicker from an engineer who has run n8n in production, and what each engagement costs.

Michael Melnyk
Michael Melnyk•Senior IT Technical Writer & Technology Analyst
•14 min read
Hire an n8n developer: workflow nodes connecting CRM, email and database with queue workers behind them

Updated October 2026. An n8n developer is an engineer who designs, builds and operates workflow automations on n8n, the fair-code workflow platform that connects APIs, databases and AI models through a node-based canvas. The visual editor is the easy part. The paid work is everything around it: self-hosting on a VPS, queue mode with Redis workers, credential and secret handling, retries and idempotency, custom nodes, upgrades between major versions, and recovery when a webhook storm fills the execution table.

An independent senior n8n developer costs $45 to $95 per hour. A typical first automation (CRM to email to Slack, with error handling) takes 8 to 20 hours, so $360 to $1,900. A production self-hosted setup with queue mode, backups and monitoring takes 20 to 40 hours. Agencies that sell "automation packages" usually charge $150 to $250 per hour for the same canvas work. If you want a vetted engineer on an hourly arrangement or a fixed one-time task, the sections below show what to scope and what to test.

n8n production architecture: triggers, main instance, Redis queue, workers, PostgreSQL and external systems

Figure 1: Production n8n layout. The main instance accepts triggers and queues execution IDs; workers pull jobs from Redis and write results to PostgreSQL.

What an n8n Developer Does That a No-Code Builder Does Not

A no-code builder assembles a workflow that works on the happy path. An n8n developer makes it survive the unhappy path: API rate limits, duplicate webhook deliveries, a CRM that returns HTTP 200 with an error body, and a Postgres disk that fills because every execution stores its full payload.

In practice the scope splits into five kinds of work:

  • Workflow design: splitting a 60-node canvas into sub-workflows, adding an error workflow, and making each step idempotent so a retry does not create a second invoice.
  • Integration code: HTTP Request nodes with pagination and backoff, Code node transformations in JavaScript or Python, and webhook signature verification.
  • Infrastructure: Docker Compose or Kubernetes, reverse proxy with TLS, PostgreSQL instead of SQLite, Redis, backups of the database and of N8N_ENCRYPTION_KEY.
  • Custom nodes: a TypeScript community node when an internal API or a missing vendor integration is used in more than three workflows.
  • Operations: version pinning, upgrade rehearsal on staging, execution pruning, alerting when an execution fails or never starts.

If the project is mostly backend scripting with no visual workflows, a Node.js developer or Python developer is the better hire. n8n earns its place when non-engineers need to read and adjust the flow, or when the integration surface is wide and shallow.

Cost: n8n Developer Rates and Platform Fees

Two budgets exist: the developer's time and the platform's running cost. The platform is cheap; the time is where projects overrun.

Engagement Typical scope Hours Cost at $45–$95/hr
Single workflow Form or webhook to CRM, email and Slack with error branch 8–20 $360–$1,900
Automation set 5–10 workflows sharing credentials, sub-workflows and a common error handler 30–60 $1,350–$5,700
Self-hosted production setup Docker, PostgreSQL, Redis queue mode, TLS, backups, monitoring 20–40 $900–$3,800
Custom node TypeScript node with credentials, pagination and tests 16–40 $720–$3,800
Audit and rescue Review of an existing instance, fix of failing flows, security pass 10–25 $450–$2,375
Zapier/Make migration Rebuild 10–30 zaps as n8n workflows with parallel run 25–70 $1,125–$6,650

Hour ranges are estimates from typical scopes; node count matters less than the number of external systems and how badly their APIs behave. For general rate context, see the guide on developer hourly rates.

Platform fees, per n8n's pricing page as of October 2026: Cloud Starter is €20 per month for 2,500 executions, Cloud Pro is €50 per month for 10,000 executions, and the self-hosted Business plan is €667 per month for 40,000 executions. The free Community Edition has no execution cap, so its cost is the server (a 2–4 GB VPS runs roughly $10–$40 per month) and your engineer's maintenance hours.

Self-Hosted n8n or n8n Cloud: Which to Pay For

Choose n8n Cloud when volume stays under about 10,000 executions per month and nobody on the team wants to patch a server. Choose self-hosting when you process data that must stay in your infrastructure, when execution volume makes per-execution pricing painful, or when workflows need access to a private network.

Factor n8n Cloud Self-hosted Community Self-hosted Business/Enterprise
Data location n8n-managed Your server Your server
Execution cap Plan limit None Plan limit
Patching and upgrades n8n You (or your engineer) You (or your engineer)
SSO, environments, RBAC Higher plans Not included Included
Best fit Small teams, low volume Cost-sensitive, data-sensitive Regulated or multi-team

A licensing note worth reading before you resell anything: n8n is distributed under the Sustainable Use License, not an OSI open-source license. Running it for your own business, including with a contractor, is allowed. Offering n8n itself as a hosted service to third parties is restricted and needs a commercial agreement. Check the license text if your product embeds it.

Queue Mode: The Point Where Hobby Setups Break

Queue mode splits n8n into a main instance that receives triggers and workers that execute jobs, with Redis as the broker and PostgreSQL as the shared database. Without it, a single process runs every execution, and one heavy workflow can starve the webhooks of everything else.

Per the n8n queue mode documentation, the main instance creates executions and queues their IDs; workers started with n8n worker pull IDs from Redis, load the workflow from the database and run it. The checks a senior engineer makes on every deployment:

  • EXECUTIONS_MODE=queue on the main instance and on every worker and webhook process.
  • The same N8N_ENCRYPTION_KEY everywhere, otherwise workers cannot decrypt credentials and executions fail with credential errors.
  • Worker --concurrency of at least 5; very low values across many workers can exhaust the PostgreSQL connection pool.
  • Separate webhook processors behind a load balancer when inbound webhook volume is high.
  • PostgreSQL, not SQLite, plus a retention policy that prunes old execution data.

Queue mode adds moving parts. For a workflow set under a few thousand executions a day, a single instance with PostgreSQL and aggressive pruning is simpler and cheaper to operate. A developer who proposes Kubernetes and Redis for 200 executions a day is selling infrastructure, not a solution.

Security: Why an Unpatched n8n Is an Open Door

An n8n instance holds the API keys to your CRM, mailbox, payment processor and database, so a remote code execution flaw there is equivalent to a breach of every connected system. In January 2026 n8n disclosed CVE-2026-21877, an authenticated RCE with CVSS 10.0 affecting self-hosted and Cloud versions from 0.123.0 up to 1.121.3, fixed in 1.121.3 (GitHub advisory GHSA-v364-rw7m-3263). Always check the current n8n security advisories before assuming a version is safe.

A hardening pass by an engineer covers:

  • Version pinning (n8nio/n8n:2.x.y, never latest) with a monthly upgrade routine tested on staging first.
  • The instance behind a reverse proxy with TLS; the editor not exposed to the public internet unless authenticated and rate limited.
  • Webhook endpoints that verify the sender's signature instead of trusting the URL secrecy.
  • Least-privilege credentials: a CRM token scoped to the objects the workflow touches, not an admin key.
  • Execute Command and file nodes disabled unless a workflow needs them, which is the default from n8n 2.0.

n8n 1.x to 2.0: What Breaks and What It Costs to Migrate

Migrating from n8n 1.x to 2.0 usually takes 6 to 20 hours depending on how many Code nodes, Python snippets and MySQL-backed instances exist. According to the 2.0 breaking changes list, the changes that hit real instances are:

Change in 2.0 What breaks Fix
Task runners on by default Code node scripts run isolated; $evaluateExpression() no longer works Rewrite as plain JavaScript or an Edit Fields node
Environment access blocked in Code node process.env reads return nothing Pass values through credentials or workflow parameters
Python Code node needs external task runners Pyodide-based Python no longer works Deploy the n8nio/runners image
MySQL/MariaDB dropped Instances on MySQL cannot start Migrate the database to PostgreSQL
Execute Command and Local File Trigger disabled Shell-based workflows stop Re-enable deliberately or replace with HTTP calls
Activate/Deactivate becomes Publish/Unpublish CLI scripts using update:workflow fail Switch to publish:workflow

Run the upgrade on a staging copy restored from a production backup, execute every critical workflow with test data, and only then cut over. This is the same rehearse-then-switch discipline used for any production system change.

Patterns That Separate Production Workflows From Demos

Four patterns decide whether an automation can be trusted with money or customer data.

Idempotency

Webhook senders retry. If a payment webhook arrives twice and the workflow creates two invoices, the workflow is broken even though both runs "succeeded". The fix is a deduplication key (event ID or order ID) checked against a PostgreSQL table or Redis set before any write.

Error workflows and alerting

Every production workflow should point at an error workflow that posts to Slack or email with the workflow name, execution ID and failing node. Without it, failures are found by customers.

Batching and rate limits

The Loop Over Items node with a Wait node and exponential backoff keeps a 10,000-row sync from hitting a vendor's 429 responses. Pagination in the HTTP Request node is configured explicitly, because most APIs cap pages at 100 records.

Execution data hygiene

Saving every successful execution with full payloads fills the database. Set EXECUTIONS_DATA_PRUNE=true with a max age, save only failed executions in high-volume flows, and keep large binaries in S3-compatible storage, not in the database.

When n8n Is the Wrong Tool

n8n is the wrong tool when the logic is mostly application code, when latency must be under a second at high volume, or when the workflow is business-critical and nobody on the team can read it. In those cases a small service in code, with tests and CI, is cheaper over 12 months than a canvas nobody dares to touch. Zapier or Make remain reasonable for teams with under 20 simple automations and no engineer, where the per-task fee is smaller than the cost of running a server.

Taking Over an Existing n8n Instance: Pre-Hire Audit

Before extending someone else's n8n setup, a developer should spend 4 to 8 hours on an audit. Ask for a read-only export of workflows and the following checklist:

  1. Which version is running, and is it within one minor release of a patched version?
  2. Is N8N_ENCRYPTION_KEY backed up somewhere other than the server itself?
  3. Is the database PostgreSQL, and when was the last restore tested?
  4. Do critical workflows have an error workflow attached?
  5. Are credentials shared across unrelated workflows with admin-level scopes?
  6. Which workflows have not executed successfully in 30 days?
  7. Are there hard-coded API keys inside Code or HTTP Request nodes?

Red flags: a single workflow with more than 80 nodes, no staging instance, production credentials pasted into node parameters, and an execution table with millions of rows and no pruning.

Vetting an n8n Developer: Senior and Junior Signals

Question Junior signal Senior signal
A webhook fires twice. What happens? "It will probably be fine." Describes a dedup key stored before the first write and a unique constraint as backstop.
How do you update production n8n? Pulls latest and restarts. Pins the version, reads release notes, restores a backup to staging, runs critical flows, then cuts over.
Workers cannot run credentialed nodes. Why? No idea. Checks that N8N_ENCRYPTION_KEY matches the main instance.
A 5,000-row sync fails at row 3,200. What next? Re-runs everything. Uses a checkpoint or idempotent upserts so a re-run is safe and resumes.
When would you write a custom node? "Never, use HTTP Request." When one integration is reused in several workflows and needs typed credentials and pagination.

The 3 to 5 Hour Paid Trial Task

Pay the candidate their hourly rate for a small, realistic build. Give them a free self-hosted n8n instance (Docker) and this brief:

  1. A webhook receives an order JSON with an order_id, customer email and line items.
  2. The workflow rejects duplicates by order_id using a database or key-value store.
  3. It creates a row in Google Sheets or Airtable and sends a Slack message.
  4. If the downstream call fails, an error workflow notifies a channel with the execution ID.
  5. A short README explains how to import the workflow, which credentials to create and how to test the duplicate case.
Criterion Pass Fail
Idempotency Sending the same payload twice creates one row Two rows or an unhandled error
Error handling Error workflow fires with useful context Silent failure
Secrets All keys in n8n credentials Keys pasted into node parameters
Structure Named nodes, sub-workflow or clear sections Unlabeled "HTTP Request 14" chain
Handover Import works on a clean instance in under 10 minutes Needs the author to explain

Common Mistakes When Hiring for n8n

  • Hiring for "automation" without naming the systems, volumes and failure tolerance.
  • Letting a contractor host the instance on their own server or account.
  • Accepting workflows without an exported JSON and a documented credential list.
  • Skipping staging, so the first test of a change is production.
  • Choosing queue mode and Kubernetes for a workload a single container handles.
  • Leaving the editor reachable from the internet without access control.

Frequently Asked Questions

How much does it cost to hire an n8n developer?

An independent senior n8n developer costs $45 to $95 per hour. A single workflow takes 8 to 20 hours ($360 to $1,900), a self-hosted production setup 20 to 40 hours ($900 to $3,800), and a full rescue of a broken instance 10 to 25 hours ($450 to $2,375). Agencies commonly bill $150 to $250 per hour for the same work.

Is n8n free?

The self-hosted Community Edition has no execution limit and no license fee, but you pay for the server and maintenance. n8n Cloud starts at €20 per month for 2,500 executions (October 2026 pricing). Self-hosted Business starts at €667 per month for 40,000 executions.

Should I self-host n8n or use n8n Cloud?

Use Cloud for low volume and no in-house ops. Self-host when data must stay in your infrastructure, when volume makes per-execution plans expensive, or when workflows reach a private network. Self-hosting adds patching, backups and monitoring to your responsibilities.

What is n8n queue mode?

Queue mode runs a main instance that queues executions in Redis and separate worker processes that execute them against a shared PostgreSQL database. It prevents one heavy workflow from blocking triggers and lets you add capacity by adding workers.

How long does it take to build an n8n workflow?

A workflow with one trigger, two or three integrations and proper error handling takes 8 to 20 hours. Time grows with the number of external APIs and their quirks, not with node count.

Can n8n replace Zapier or Make?

Yes for most business automations, and it is usually cheaper at higher volumes because self-hosted n8n has no per-task fee. Migrating 10 to 30 zaps takes about 25 to 70 hours including parallel runs. For under 20 simple zaps and no technical staff, staying on Zapier can cost less.

Is n8n secure for business data?

It is as secure as its configuration and patch level. CVE-2026-21877 (CVSS 10.0) showed that old versions are exploitable, so pin versions, upgrade monthly, keep the editor behind authentication and use scoped credentials.

Can n8n run custom code?

Yes. The Code node runs JavaScript or Python, and a TypeScript community node can wrap any API. Since n8n 2.0, Code node scripts run on task runners and cannot read environment variables by default.

What does the n8n 2.0 upgrade involve?

Expect 6 to 20 hours: task runners become default, Python Code nodes need external runners, MySQL/MariaDB is dropped, and Execute Command is disabled by default. Test on a staging restore of the production database first.

Do I own the workflows an n8n developer builds?

You own them if the contract says so and the instance is on your infrastructure. Require exported workflow JSON in your repository, credentials created under your accounts and written assignment of all work product.

Can n8n handle AI agents and LLM calls?

Yes, n8n has AI agent and model nodes and works with any HTTP-accessible LLM API. Production use still needs cost caps, timeouts, output validation and a human approval step before actions that move money or send external messages.

When is n8n the wrong choice?

When the logic is mostly application code, when sub-second latency is required at volume, or when nobody on the team can read the workflow. A small tested service is cheaper to own in those cases.

Planning an automation or inheriting a shaky n8n instance? Get matched with a verified senior developer for a scoped audit or a fixed first workflow, with your instance, your credentials and your repository from day one.

Share this post

Michael Melnyk

Written by Michael Melnyk

Senior IT Technical Writer & Technology Analyst

View Author Profile →

Senior Technical Writer and IT Industry Analyst with over 7 years of experience analyzing software engineering ecosystems, tech leadership models, and developer procurement frameworks.

More from the blog

All articles
Legacy software modernization decision map comparing rehost, replatform, refactor and rewrite paths with cost multipliers and risk levels

Legacy Software Modernization: Cost, Timelines, and When It Is Worth Doing

A rewrite quote that omits the legacy stack's remaining support runway is the most expensive document a buyer can sign. Four migration paths, honest hour ranges, and the questions that expose a padded estimate before you commit budget.

Michael MelnykMichael Melnyk·
Hire an HTML/CSS Developer — Mobile-First Layouts, Cross-Browser Compatibility & Speed

Hire an HTML/CSS Developer: Mobile-First Layouts, Cross-Browser Compatibility & Speed

Hiring an independent HTML/CSS developer delivers mobile-first responsiveness, cross-browser rendering parity, and sub-second Core Web Vitals without bloated JavaScript frameworks.

Michael MelnykMichael Melnyk·
Hire a Chrome Extension Developer — From Browser Action to Verified Chrome Web Store Release

Hire a Chrome Extension Developer: From Browser Action to Verified Chrome Web Store Release

Building a browser extension that passes Google Web Store review requires Manifest V3 service worker management, Shadow DOM isolation, and strict permission scoping. Here is how to hire a specialist.

Michael MelnykMichael Melnyk·

Need this done rather than explained?

Describe the task, the stack or the problem. We connect you directly with developers who have shipped it before.

Free analysisNo commitment2 min