Skip to content
Custom vs platform

n8n or Custom Development? When Each Wins for AI Agents

Orange ITS — AI engineering team 7 min read

Most teams make this decision backwards. They pick n8n because it’s fast to prototype, ship something that works for a few months, and then spend six months trying to bolt on capabilities the platform was never designed for. Or they jump straight to custom code for a workflow that n8n would have handled perfectly — and pay three times as much for no measurable benefit.

The question isn’t which option is better in the abstract. It’s which one fits your actual workload profile. This article gives you a concrete fork-in-the-road test: five questions that predict whether an n8n agent will still be serving you in 18 months, or whether you’re building toward a migration.


What n8n Actually Is (and Isn’t)

n8n is a workflow automation platform with a visual node editor, a large library of pre-built integrations, and reasonable support for LLM-based routing, simple tool use, and RAG-style retrieval. It’s self-hostable, which matters to European businesses with data residency requirements.

For the right problems, it delivers: connecting SaaS applications, routing webhook payloads, running scheduled enrichment jobs, building internal notification flows. Layering an AI step on top of those flows is often exactly as simple as it looks in the demo.

The ceiling appears when you need the agent to reason across multiple steps, maintain complex state, recover gracefully from tool failures, or enforce audit trails that a compliance team will inspect. At that point you’re writing custom JavaScript inside n8n nodes — which is essentially custom development with worse tooling and no built-in version control in the free tier (Git source control requires a Business or Enterprise plan at €667/month+).

For a broader look at n8n’s trade-offs in production, see n8n AI Agents: The Honest Pros and Cons for Business Use.


Five Questions That Predict the Right Fit

1. How many branches does your agent need to handle simultaneously?

n8n’s visual graph is powerful for linear or lightly branched flows. If your agent needs to handle a customer inquiry by simultaneously querying your CRM, checking inventory, pulling recent order history, and deciding whether to escalate — and do all of this conditionally based on account type — the graph starts growing in ways that are hard to reason about and harder to maintain.

Custom agent development lets you express that conditional logic in code where it belongs: testable, reviewable, and not dependent on a canvas that nobody outside the automation team can read.

n8n fits: up to three or four branching paths, mostly linear logic.
Custom fits: complex decision trees, parallel tool invocations, or logic that changes frequently.

2. Does the agent touch sensitive data — patient records, financial data, HR information?

Self-hosted n8n keeps data on your infrastructure, which is a real advantage over cloud-hosted alternatives. But you’re still operating within n8n’s execution model, its credential storage patterns, and its logging defaults. Implementing field-level encryption, custom audit logging, or role-based access to agent capabilities requires working around the platform rather than with it.

Custom development gives you a clean architecture where every data handling decision is explicit and auditable. For Swiss businesses operating under the nFADP or serving EU clients under the GDPR, that explicitness has real compliance value. See AI Agents and GDPR: Deploying Automation You Can Defend for more on this.

n8n fits: internal process automation with non-sensitive data, or teams that have already validated n8n’s security model with their DPO.
Custom fits: regulated data, strict audit requirements, or multi-tenant deployments where data isolation is non-negotiable.

3. What happens when the agent makes a mistake at scale?

Every agent fails eventually. The question is whether the failure is a minor annoyance or a serious incident.

In n8n, error handling is built around node-level retries and error branches. That works for simple integrations. For agents that interact with customers, modify records in your ERP, send communications, or trigger financial transactions, you need more: structured fallback behavior, human-in-the-loop checkpoints, rollback logic, and operational observability that lets you see not just that something failed, but why, and which inputs caused it.

Custom development lets you build exactly the error handling your risk profile demands — and nothing less.

n8n fits: internal automation where a failed execution just means someone re-runs the task manually.
Custom fits: customer-facing agents, agents that write to systems of record, or any workflow where a silent failure has real-world consequences.

4. Will this agent need to differentiate your product or service?

If you’re automating a back-office process that every company in your industry runs roughly the same way, n8n’s pre-built integrations and relatively low build cost make it sensible. You’re not competing on how you process expense reports.

If the agent is a customer-facing capability — a branded support experience, an AI-powered sales assistant that knows your product catalogue intimately, a recommendation engine tied to your proprietary data — then the agent itself is part of your value proposition. Proprietary logic, personality, and fine-tuned behaviour don’t live comfortably inside a visual workflow editor.

n8n fits: commodity automation where differentiation doesn’t matter.
Custom fits: any agent that is part of how you compete — or that you plan to sell as a feature to your own customers.

5. How fast do your requirements change?

n8n is fast to build and fast to modify for simple changes. But as flows grow, visual graphs become genuinely hard to refactor. Adding a new integration to a 40-node canvas is not the same operation as adding it to a 5-node one. And if your requirements are evolving rapidly — new LLM models, new integrations, changing business logic — you want a codebase with unit tests and a proper deployment pipeline, not a canvas you’re afraid to touch.

n8n fits: stable, well-understood processes where requirements rarely change.
Custom fits: environments where you iterate quickly, want to adopt new models as they improve, or need your agent architecture to absorb product changes without a full rebuild.


The Cost Picture (Honestly)

n8n’s lower initial build cost is real. A workflow that might take two weeks in n8n can take several weeks or more in custom development — the gap is real, though exact timelines vary by team and complexity. For straightforward use cases, that cost difference is the right call.

Where the maths shifts is total cost over 18 to 24 months. When n8n flows accumulate custom code nodes, undocumented workarounds, and integrations held together by credential hacks, the maintenance burden climbs steeply. Teams also tend to underestimate how much time operations staff spend monitoring and re-running failed executions in complex n8n deployments.

Consider an illustrative scenario: a 30-person logistics company builds a customer notification agent in n8n. Initial cost: low, four weeks of a contractor’s time. Eighteen months later the agent handles three times the volume, has six custom JavaScript nodes nobody fully understands, and breaks every time an upstream API changes. The migration to custom code ends up costing more than the original build would have. This pattern repeats — not because n8n is bad software, but because the platform was right for week one and wrong for month eighteen.

For a more rigorous look at how these costs compound, see The Real Cost of AI Agents: Custom vs Platform TCO.


A Quick Decision Table

SignalPoints to n8nPoints to Custom
Team has no dedicated developersYes
Agent interacts with regulated dataYes
Requirements are stable and well-definedYes
Agent is customer-facing or differentiatingYes
Budget is constrained and use case is simpleYes
Volume will grow significantly within 12 monthsYes
Error handling needs are sophisticatedYes
Process is a commodity back-office flowYes

No single signal is decisive. If you score three or more in the custom column for a business-critical workflow, the initial build cost is almost certainly worth paying.


The Hybrid Path That Actually Works

For many companies, the right answer is sequenced rather than binary. Build a working prototype in n8n — it proves the concept, surfaces the real integration requirements, and lets business stakeholders see value quickly. Then migrate the production version to custom code once the requirements are stable and the business case is validated.

This avoids over-engineering before requirements are clear, while not locking you into a platform architecture that can’t grow. It’s also easier to justify the custom development investment once there’s a live n8n agent demonstrating the business value.

See Outgrowing Your Agent Platform: The Migration Path to Custom for how that migration typically unfolds and what it costs.

And if you’re still deciding whether to build or commission the agent at all, Build vs Buy: A Decision Framework for AI Agents covers the broader make-vs-buy question.


Where Orange ITS Fits In

We build custom AI agents for Swiss and European businesses — and we also help clients figure out when they don’t need one. If your workflow genuinely fits n8n, we’ll tell you. If you’ve already built something in n8n and you’re starting to feel its limits, we can assess what a migration would involve and whether it’s worth it given your current setup.

The five questions above are the same ones we run through in a first conversation. If you want to apply them to your specific situation with someone who has done this assessment dozens of times, book a 30-minute call with our team. No pitch, no slide deck — just a direct answer to whether your use case calls for n8n, custom development, or something in between.

Talk to us about your agent project

Insights

Put these ideas to work

A 30-minute call is enough to find out whether an AI agent fits your workflow — and what it would return.