Workflows as first class nodes

The idea is:

Many “flow” based programming systems allow for the creation of “meta” nodes, that are first-class objects in the library of nodes, that themselves are a containers for a sub-flow.

For example, the first case I know of is Quartz Composer, which allowed the user to select a set of nodes, and encompass them in a node, which could be named and re-used.

Similarly, allows for a workflow to be embeded inside of a node that is part of a user’s personal library, or alternatively, published to the global library as part of a custom App. For example, before I found n8n, I created several new complete integrations for simply by creating several workflows that interacted with a third party API, defining their inputs and outputs, packaging them together as an “app” and then publishing them to the public library, where, after approval by the team, they were available for everyone to use.

Beyond that, it enabled substantially more cohesive, comprehensible and extensible composition of workflows. I could easily separate out concerns, create “utility” flows that were tremendously re-usable, upgradable in a single place, versionable, etc.

It meant that ultimately, my workflows looked more like compositions of these utility workflows, reducing the ultimate complexity of any one workflow.

My use case:

I am building a whole LLM CRM/Second brain, and my individual workflows are getting quite large, and thus slow. Additionally, I find myself either repeating a bunch of functionality, or with many “execute other workflow” nodes, which are not tremendously transparent, nor do they help make it clear what the outputs might be.

I think it would be beneficial to add this because:

It will enable the creation of ever more complex workflows that are easier to understand, modify, and maintain.

Beyond that, it could enable people who may not be proficient in javascript, but are excellent at creating n8n workflows to contribute to the community and the ongoing utility of n8n.

Any resources to support this?

Functions as a first class object in programming languages, closures, dynamic programming, etc. is a well known, well defined field of work. I feel like the sub-components are all there in n8n, it’s just a question of packaging.

Are you willing to work on this?

I count myself as one of those people who is pretty good at creating n8n workflows, passable at ruby, but absolutely useless at javascript. I would love to build reusable, composable workflows that other folks find useful.

Great idea! I’d been thinking of something smaller scale which would be to allow templating the HTTP node, but this is much more generic and functional.

Also, don’t forgot to vote on your own issue!

1 Like

Yes, that’s basically the idea: now that we have the incredibly awesome auth capabilities in the http node, I have essentially created a constellation of workflows that are effectively an app integration.

I would love to be able to formally name them, group them, use them as drag and drop nodes, have special icons, etc.

1 Like