For a long time my answer to “how do you wire two SaaS tools together?” was Zapier, and after that Make. They’re great until the day your workflow stops being a straight line. The moment you need a real loop, a conditional that branches three ways, a webhook that has to reshape a payload before forwarding, or — the killer for me — an LLM call in the middle of the chain that actually sees the rest of the data, you start fighting the tool.
That’s the day you go looking for n8n, and once you’ve used it for a couple of real workflows it’s hard to go back.
What n8n actually is
n8n is a workflow automation tool in the same shape as Zapier or Make — nodes on a canvas, triggers on the left, actions chained to the right — but with two important differences. First, it’s fair-code licensed and self-hostable, so you can run it on your own VPS, a Docker container, or n8n’s hosted cloud. Second, every node is essentially a function: it takes JSON in, runs some code or an HTTP call, emits JSON out. That sounds small, but it changes the whole feel of the editor. You’re not stitching together opaque integrations — you’re piping data through transformations you can actually inspect.
If you’ve ever opened a Zap and discovered that the only way to do something the platform didn’t anticipate is to drop in a paid-tier Code step, you already know why this matters.
The thing that won me over: AI as a first-class node
Most of my recent workflows have at least one LLM call in them. “Read this incoming support email, classify it, draft a reply, route it to the right person.” “Take this raw scraping output, normalize it into the schema my database expects.” “Summarize this Slack thread before it gets logged to Notion.” Those are not exotic use cases anymore — they’re the actual texture of running a small company in 2026.
n8n’s AI nodes — the chat-model nodes, the agent nodes with tool calling, the vector store nodes — are not a bolted-on afterthought. They’re shaped the same way as the rest of the canvas, which means an LLM call is just another step that you can branch on, retry, log, or feed into the next node. You can build something that looks suspiciously like a small AI agent, with memory and tools, in an afternoon, without writing a server.
I’m not going to claim n8n’s Agent node replaces a real codebase for anything ambitious — it doesn’t, and that’s not what it’s for. But for the long tail of internal automations where you want an LLM to make one judgement call inside a larger pipeline, the ergonomics are better than anything else I’ve tried.
Self-hosting is the underrated feature
Every founder eventually has the conversation about a workflow that touches sensitive data. Customer PII, billing records, internal financials, draft legal copy. With Zapier, that data is going through Zapier’s servers no matter what you do, which means you’re either fine with that or you’re not building the workflow.
With n8n, I can run the instance inside my own infrastructure, point it at my own database, and the data never leaves the boundary I control. For Tealfig that’s been the difference between “we’ll automate that someday when we figure out the compliance story” and “we’ll automate that this week.”
The hosted version exists if you want to skip ops, and it’s perfectly good. But the option to repatriate the whole thing onto your own box is a real one, not a marketing bullet.
Where it still bites
I don’t want to pretend it’s all wins. The honest list:
- Versioning and code review. Workflows are JSON, but the editing experience is a canvas, not a file. n8n has gotten better about Git-backed workflow exports, but if you’re used to PR-reviewing every change to your automation logic, you’ll miss the rigor.
- The integration catalog has gaps. Zapier still wins on sheer breadth of pre-built connectors. n8n has hundreds, but if your stack includes some niche SaaS, you may be writing an HTTP node by hand. (Which is fine, but it’s not a click.)
- The learning curve is real. The expression syntax, the difference between items and runs, when to use the Code node versus the Function Item node — it’s all simple in retrospect, and confusing on day one. Budget a few hours to read the docs properly instead of bouncing off the editor.
Who should bother
If your automation needs are genuinely linear — “new row in Google Sheets, send a Slack message” — Zapier is still the right tool, and I’m not going to pretend otherwise. The activation energy of standing up your own instance isn’t worth it for two-step Zaps.
But if you’ve ever found yourself reaching for a Code step, or wishing you could put an LLM in the middle of a flow without the LLM losing the rest of the context, or worried about a third party seeing data you’d rather they didn’t — that’s the n8n shape. Spin up the Docker image, build one workflow, and see how it feels. The first time you replace a Zap that needed three paid Code steps with a single n8n flow you can actually read, the math gets very obvious.
I’ll write up a concrete one of those flows in a future post — probably the support-triage agent, since that’s the one I’ve iterated on the most. For now: if you’ve been on the fence about n8n, take it as a recommendation.


