5 min read
n8n vs Airflow: Which One Actually Belongs on Your VPS
I run n8n in production, not Airflow, and the reason has nothing to do with features. Here's how to pick between them without guessing.
By Mario Lucas, founder of Utomat
The night I almost installed Airflow instead
A couple of years ago I was building the workflow that would eventually pull leads into CallCrewHQ, normalize them, and fire off the first response. I had a tab open comparing n8n and Airflow, and for about twenty minutes I was leaning toward Airflow. It's the tool half of data engineering Twitter swears by. Bigger name. It felt like the serious choice.
Then I actually read what Airflow is for, and I closed the tab.
This isn't a piece trying to convince you one tool wins. They're not really competitors, even though they keep showing up in the same search results. But if you're a small business owner or a solo builder trying to automate lead follow-up, data syncing, or a scheduled report, and you've landed on this comparison, you need the practical version, not the conceptual one. So here it is.
What each tool was actually built to do
n8n: event-driven automation with a face
n8n is a workflow automation tool with a visual, node-based editor. You drag in a trigger (a webhook, a new row in a database, an incoming email), connect it to actions (send a Slack message, update a CRM record, call an API), and it runs. It's built for the kind of automation a business runs constantly, all day, in response to real events. According to n8n's own documentation, it supports over 400 integrations out of the box plus custom HTTP requests, which covers almost anything with an API.
The stack I run in production is n8n, Supabase, Next.js, and Docker on a VPS, wired into the Anthropic API for the AI pieces. That's not a theoretical setup. It's what runs CallCrewHQ's call handling and Grease Trap Quotes' lead routing right now, today.
Airflow: scheduled batch jobs with a dependency graph
Apache Airflow is a platform for authoring, scheduling, and monitoring workflows as directed acyclic graphs (DAGs), written in Python. It was built at Airbnb and released as open source in 2015, and it's now a top-level Apache project. Its natural habitat is data engineering: nightly ETL jobs, training pipeline orchestration, moving data from a warehouse to a reporting layer on a fixed schedule.
Airflow doesn't really do "react to an event right now." It does "run this dependency graph of tasks on a schedule, retry the ones that fail, and show me a clear picture of what ran." That's a different job.
Where the real difference shows up: triggers vs schedules
Here's the distinction that matters day to day. n8n is built around triggers: a form submission, a webhook, a new email, a missed call. Airflow is built around schedules: run this DAG every night at 2am, run that one every Monday.
Most small business problems I see are trigger problems, not schedule problems. Leads come in at random times, not on a cron schedule. A missed call happens when it happens. If your automation waits for a nightly batch job to catch up, you've already lost that lead to whoever called back first.
Airflow can technically be triggered by external events too, but it's fighting its own design to do it. You're bolting a webhook listener onto a tool built for batch scheduling. n8n does that natively, because reacting to events is the whole point of the product.
When Airflow is genuinely the better call
I'll say this clearly, because too many comparisons pretend one tool wins every category. If you're moving terabytes through a nightly ETL pipeline, orchestrating a machine learning training run with a dozen dependent steps, or you need Python-native task definitions with heavy version control and testing, Airflow is the more mature tool for that job. It handles complex task dependencies, backfills, and retries at scale better than n8n does. That's genuinely its strength, and n8n isn't trying to compete there.
The setup and maintenance gap
This is the part people skip in feature comparisons, and it's the part that actually costs you time.
n8n has a visual editor. You can build, test, and change a workflow without writing much code, and a non-technical colleague can usually follow what a workflow does just by looking at it. Airflow workflows are Python code. That's powerful if you're comfortable in Python and you want version-controlled, testable pipelines. It's a wall if you're a business owner trying to automate your own lead intake on a Tuesday afternoon.
Self-hosting either tool on a VPS is cheap. A basic droplet running n8n in Docker costs maybe $10 to $20 a month in infrastructure. But cheap infrastructure isn't the same as low effort. Somebody has to own updates, backups, and secrets, and that's true whichever tool you pick. The difference is what breaks while you're not looking. n8n's failure mode tends to be a single workflow quietly stopping. Airflow's failure mode tends to be a scheduler problem that takes out everything downstream of it, which is a much worse afternoon.
Hosted vs self-hosted, either way
Both tools offer managed cloud options if you'd rather not run the server yourself: n8n Cloud, and for Airflow, Amazon MWAA or Google Cloud Composer. Managed Airflow gets expensive fast once you're running it at any real scale, because you're paying for the orchestration layer on top of the compute. For a small business running a handful of automations, that overhead rarely makes sense.
How I'd actually decide, if I were you
Ask one question first. Does this automation need to react to something happening right now, or does it need to chew through a batch of data on a fixed schedule?
If it's the first, and for most small businesses it is, n8n is the right tool. Lead follow-up, missed call handling, pushing a new signup into three different systems, sending a notification the second something changes. These are event problems.
If it's the second, and you're doing serious data pipeline work with dependencies between dozens of tasks, look at Airflow. Don't force n8n to do batch ETL at scale just because you already have it running. Don't force Airflow to handle real-time triggers just because your data team already knows Python.
The questions I get asked most often come down to the same three problems. Leads that don't get followed up fast enough. Data typed twice into two different systems. Calls that go unanswered. None of those are batch scheduling problems. They're all event problems, which is exactly why the answer for most small businesses is n8n, Zapier, or Make, not Airflow.
If you're still not sure
If you've read this far and you still can't tell which one fits your workflow, that's a normal place to land. Tool comparisons are far easier to read than they are to apply to your own specific mess of spreadsheets, forms, and half-connected systems.
Get in touch and tell me what you're trying to automate. I'll tell you straight whether it's an n8n job, an Airflow job, or something simpler than either.
---
*Written by Mario Lucas. Mario runs Utomat, an automation studio that builds AI voice agents and workflow automation for small businesses.*
Related reading: How I Actually Automate Work: A Practical Starting Guide.