Aside from that, I've been thinking about no/low-code solutions for educational purposes. I'm an incoming professor of a university and most my students have little background in CS or related fields. The university insists on using tools like Alteryx but I want to see if free open-source solutions exist (because that way, students can use the tools after graduation).
So far I've seen Dify, Flowise, Langflow, n8n, Make. The last two seem to be more general while the other ones are tailored to LLMs (which is the focus of my courses—applications of LLMs in management).
“ What does n8n mean?
Short answer: It means "nodemation" and is pronounced as n-eight-n.
Long answer: "I get that question quite often (more often than I expected) so I decided it is probably best to answer it here. While looking for a good name for the project with a free domain I realized very quickly that all the good ones I could think of were already taken. So, in the end, I chose nodemation. 'node-' in the sense that it uses a Node-View and that it uses Node.js and '-mation' for 'automation' which is what the project is supposed to help with. However, I did not like how long the name was and I could not imagine writing something that long every time in the CLI. That is when I then ended up on 'n8n'." - Jan Oberhauser, Founder and CEO, n8n.io”
Can't say I'm a fan of the €55M financing round they took though. I mean, congratulations to them, but the growth they'll need to satisfy those investors is so very likely to lead to chasing numbers and enshittifying the product down the line.
I'm thinking why not just use APIs?
But, if you do know how to code, this makes it easy to quickly integrate stuff without having to write all the connection boilerplate code.
That would require writing lots of code while here it is much easier with N8N. Anything complicated or needing lots of useage I would go for programming
I hadn't seen this term before but it looks interesting:
And whereas Windmill seems to be agpl + apache.
So that is what you are mentioning, right?
Windmill OTOH supports a bunch of programming languages for steps (Go, Rust, Python, TS, etc.) and seems to have a much more “code first” approach. Reusable blocks are more like code templates compared to n8n.
Hard to say which is better. I really like the ability in windmill to just write code for each step and it comes across more powerful, but it feels less polished and intuitive when compared to n8n.
I'm not ashamed to admit than n8n feels more polished. There are a few reasons:
- Our team was and is still much smaller. We were 5 for the first 2 years, we are now 10 (year 3), and are continuing to hire to follow our growth.
- They have been around for longer and mature for longer, more time to iterate. We have reached some level of maturity recently and are now spending more iterations on polishing rather than new features.
- Their surface area is smaller, windmill does A LOT and expose more for the better or worse.
n8n has done a lot of things really well and although we have a different audience, there is a lot to learn from what they did very well and we have the upmost respect for them. We have some overlap, but I think ultimately we strive in different kind of orgs and will cohabit rather than compete.
Are these two things being wrongly compared to each other when they're actually meant for different purposes? Or is Windmill indeed a good point of comparison?
Also, they require a CLA with copyright assignment so they can reuse your contributions in nonfree software. It’s always shady when companies do this.
The open source parts of Windmill are partially Apache and partially AGPL; there are some of us who additionally regard the AGPL as nonfree (because it’s really a EULA).
On a personal level, I use it to automate booking a tennis court. It logs in, selects the date and time (pre-defined), adds a partner/opponent, books the court, pings a service that generates a calendar entry. If I decide to cancel the booking, it again pings the service and removes the calendar entry. I needed to bend some "nodes" to do what I need within the same workflow (such as create event runs once a day but update event runs in every 10 minutes).
In the past, I also used it to detect service interruptions with my ISP. I don't use that ISP anymore, so this workflow is redundant, but it was checking an API and if there's an entry, sending it as a push notification (via ntfy) to my phone.
I was able to hack a MVP of a new product in just one or two days.
Now, the company uses n8n for a lot of stuff, out ops team and finance team is expected to automatize manual work using n8n. From billing to financial conciliation to customer support. Also in product/dev team we implement some parts as flows, for things we expect to change a lot of features that are more internal.
But n8n requires a lot of time and care. It's not intended for high loads, they make a lot of breaking changes (more like new bugs, but is not fun).
We do all this self hosting in a k8s cluster.
In general I like it, but I think is still intended for a personal o early adopter.
Funny, one of my biz co-founder, learned and created a new biz just teaching it.
The main reasons I switched to n8n are it's open source, meaning I can run it locally without limits, and it supports code nodes in javascript and python. Make.com used to drive me bonkers when it took 10+ minutes to create all the nodes in the UI to handle loops, errors, etc. when I could normally just write a few lines of code to handle it.
Only downside to n8n vs other platforms is it's polling based vs instant trigger unlike Zapier's and Make.com's connectors. So if you're processing email, Google Sheets data, etc. you'll have more latency with n8n unless you add some custom middleware to handle instant triggers. But polling is actually a benefit in my case since I mostly run n8n locally through docker. Whenever I spin it up, it auto catches up on new data it hasn't yet processed.
n8n's AI nodes are first rate and more intuitive IMO than others. You can easily extend it with custom LangChain nodes as well if you're self hosting.
If you want to play around with n8n locally, this tool makes it easy: https://github.com/LLemonStack/llemonstack/ I created it to make it easier for me to spin up and down project stacks on the same machine.
Or see n8n's official repo for instructions on running locally: https://github.com/n8n-io/n8n
So yeah, you can use n8n for free, but that doesn't make it open source. It is a source available license.
You have to pay after some revenue threshold?
> Content of branches other than the main branch (i.e. "master") are not licensed
How the fuck do pull requests work in that setup? Or presumably tags aren't licensed?! Holy shit
Anyway, seems to be some rando made up license https://github.com/n8n-io/n8n/blob/master/LICENSE.md#sustain...
It's really easy to automate tasks and schedule things.
For example, I connected it to my UXWizz MySQL database, asked the AI in UXWizz to give me a query with the funnel conversions for today (visits/pricing/checkout/sales) compared to last week, copied that into n8n and made it send me an emoji-formatted daily Telegram message.
I am now using it to implement an AI chat-bot/support ticket responder, and I'm planning to migrate a Node.js auto-poster to it, so I can easily change the schedule/model/content of the post without having to edit any code.
I like that it has good documentation for integrations. For example, I was testing Google Ads, and I want to do conversion tracking without adding the Google JS to my page. Again, I used an MySQL connection to my UXWizz analytics dashboard to select the gclid for all visits that lead to a conversion event, then with n8n I upload those daily to a Google Sheet, which is then used by Google Ads to properly track conversions. The Google Sheet integration is not trivial (you need Google Cloud account, create an app, create oauth login, etc.), but the n8n docs were clear enough to follow and up-to-date enough to work.
Telegram has a really good mobile app, and their BotFather makes it easy to create custom integrations. They display nicely a lot of notification formats (text/html/markdown) and it's free.
Slack is too bloated to simply use for notifications.
https://blog.golioth.io/a-2-geofence-wi-fi-location-here-com...
The one frustration we have with n8n is trying to create custom "apps" (triggers or destinations for workflows). It's clear that the custom apps are an afterthought and have gone through multiple iterations of "here's the best way to do it", and you end up having to just keep trying until you get it to do what you want. Annoyingly, there's no way to manage custom apps in the interface itself - you have to create a Javascript module and then inject it into a .npm directory somewhere inside of the applications Docker container, which just doesn't feel very "professional".
If n8n would add some kind of admin interface for managing custom apps - especially just supporting basic use cases like specifying a REST API as a reusable custom app - it would be great, but still has a ways to go in terms of features (like better user permissions management as part of the lackluster SSO) before it's truly going to be an enterprise grade solution.
That said, we tried Windmill first and while it was cool for the devs who were able to see the vision, the non-technical users hated it and have heavily praised n8n once we created a custom app to let them integrate with our system.
Overall I would say n8n is worth trying if you need something like this, but expect to do some tinkering if you go beyond what it does out of the box.
I've just poked at them, but my impression was that Node Red much more capable.
IIRC one of my issues with n8n was the lack of streaming ability, which kills it for large datasets.
n8n is made so that you can set it up and give your staff access and they can manage their own workflows (like "when a customer opens a support ticket, update their Salesforce record to increment the number of tickets they have opened").
It's clearly aimed at non technical users being able to develop their own solutions to problems (for better or for worse), more so than Windmill which is made for developers to solve their own problems or develop solutions that non-technical people can use. Node Red if I remember correctly is more heavily weighted toward real time events for dev (especially hardware/IoT dev) use than "let the support team manage their own workflows for routing customer complaints"
The library just uses the streaming API[3] of NodeJS - effectively converting lines of CSV (for example) into individual messages that flow through NodeRED.
NodeRED isn't great for handling large messages but perfect for directing many small messages.
[1] https://flows.nodered.org/node/@gregoriusrippenstein/node-re...
[2] https://flowhub.org/f/c520d9da20ad7f1d
[3] https://nodejs.org/dist/latest-v18.x/docs/api/stream.html
n8n is far more high level with google sheet nodes communicating with postgres database nodes. There is far less ability to do manipulate the data being passed around - as many said Zapier-like.
NodeRED is used for home automation and talking to devices that are connected to the network and providing nice dashboards of things happening. Another big use case is IIoT. So it less focussed on integration of SaaS services and more on devices integration and inter-communication between devices.
Plus NodeRED has a great collection[1] of third party nodes that can help in connecting to new devices. Installing nodes is based on npm but is completely automated.
You can go a _long_ way with the split/join nodes and a little ingenuity to work around any issues with streaming.
And their Launch HN: https://news.ycombinator.com/item?id=34723989
Custom apps aside, how do Zapier and n8n compare in your experience?
Founder of Windmill here. This is not too surprising although we are working on it by leveraging AI and just better DX/design. Pleasing devs in the most demanding orgs and the ever-changing expectations is challenging by itself. Pleasing both devs AND non-technical user is a monumental task that we are now giving more attention to by focusing on 2 aspects:
- A better DX/UX that does not sacrifice power-user capabilities but has a less step learning-curve and more intuitiveness to it. That is mostly about good design and hard work. We are taking inspiration from the best and on the intuitiveness, we've learned a lot from n8n and other leaders in the space.
- leveraging AI capabilities in a state-of-the-art way to have the best models generate the code for non-technical users. That is basically just adopting the best practices inspired by cursor such as great auto-completion, great inline code-gen, excellent semantic search.
Examples of those failure systems, is SimStudio, just a joke compared to n8n.
TL;DR: The author originally tried to call n8n "open source" but while using a non-open-source license. After much discussion, he kept the license but stopped using the label "open source", to the relief of many people.
That half-decade-old thread is still what I point to when I want to explain to someone why preserving the specificity of the term "open source" matters.
I submitted it, seeing that it was not discussed recently, maybe it's useful to anyone else.
I using the self-hosted version.
It allows you to write custom nodes with arbitrary code, but also connect them to existing integrations. Also, for each connection you can transform/select the data using JavaScript.
Pros:
- Good observability. It’s handy that they track all executions and let you see when workflows run.
- Usable for non-technical people.
- They’ve had all the integrations we needed.
Cons:
- Implementing parallel execution for async parts of the workflow is complicated and flaky.
- Pricing is expensive for the hosted version.
- Version control is bad.
- If you have engineering capacity, it’s faster and simpler to write some more backend code if you already have a backend.
[1] - https://browsable.app
We also made a custom node for popular document/image/video ETL jobs like document-to-markdown, audio/video transcriptions with VLMs (Vision Language Models).
https://github.com/vlm-run/n8n-nodes-vlmrun
https://www.npmjs.com/package/@vlm-run/n8n-nodes-vlmrun/v/0....
It's not that the tool itself is inherently insecure - it's more about how users are encouraged to use it.
Nearly all workflows built using N8n that I've seen face some kind of prompt injection vulnerability. This is primarily because, in most cases, you configure the LLM by directly inserting external data into the system prompt. As many of you know, the system prompt has the highest execution priority, meaning instructions placed there can heavily influence how the LLM interacts with its tools.
While this isn't exploitable in every situation, it can often be exploited rather generically: by embedding prompts in your social media bio, website, or other locations from where these workflows pull data. Recently, I've managed to use this technique to prompt a random LinkedIn bot to email me back a list of their functions. That's not overly exciting in itself, but it clearly demonstrates the potential for malicious use.
This issue is not specific to N8n. Other tools do it too. But it seems to me there is little to no awareness that this is in fact a problem.
There is a better, safer way to incorporate external data into LLM prompts without jumping through hoops, but unfortunately, that's not how things are currently done with N8n, at least as of today.
That means: - Limit the potential for a malicious prompt to do anything bad - Scope permissions to the lowest level you can
There are some other mitigations (moderation APIs using a 2nd LLM), but in general they're not 100% solutions. You really need to design your systems around accepting this limitation today.
More info on this wiki here: https://github.com/tldrsec/prompt-injection-defenses
A- Limit the capabilities of users. B- Help users limit the capabilities that they to their sub-users, whether they be per-program capabilities or per dependency capabilities.
I think B is the path forward, if you give a user access to emails and files and ChatGPT, then he can give ChatGPT access to emails and files and do damage that way.
With B you can give the user access to ChatGPT and email and a file system, but help him configure fine grained permissions for their experiments.
This makes it unusable for my purpose.
But in my (limited) research into options like Airflow or Dagster or Windmill, they weren't quite at the same level and it doesn't feel like a significant value-add over writing a simple webhook server.
victorbjorklund•15h ago
k8sToGo•15h ago
op00to•14h ago
victorbjorklund•14h ago
The perfect usecase for n8n is when you got integrations and you dont need to run the workflow so often