I would like to contribute an idea regarding ‘Composite nodes’.
The functionalities would comprise of (not limited to):
Group multiple nodes into a single composite node
The input of the 1st node of the group will become the input of the composite
Similarly, the last output(s) of the group will become the output(s) of the composite
This would be done from the main editor ui
Shouldn’t require custom nodes or dev work
To edit a composite node, one could just double-click/click on settings and a mini editor-ui/separate editor section would open up with only the comprising nodes
This will help by:
significantly reducing the time/increasing the convenience required to create the same set of, often used, nodes e.g. Composite Node1 = HTTP Request to a particular API -> Response formatting -> Another operation -> Output
Also, these composites should be easily ‘save-able’ within a sort of ‘my library’ via the main editor-ui
For inspiration, i’ve used another no-code tool, Appgyver, a demo of which is shown below:
I believe this can greatly improve a user’s efficiency along with further expanding the extensibility of n8n.
Internally, we have discussed such a feature including the ability to “promote” specific parameters to the parent workflow level. This way, when you open this composite node, you have a shortlist of the parameters that need to be configured.
Community members - please do upvote if you’d like to see this in n8n.
Meanwhile, @shrey-42 and @georgejeffcock have you used the Execute Workflow node yet? While it’s not exactly like composite/ grouped nodes, it would allow you to have modular workflows for common actions and reuse them across other workflows.
“This way, when you open this composite node, you have a shortlist of the parameters that need to be configured.” exactly…this shift of thinking would be a departure from how n8n works but Interface-based programming - Wikipedia I think is a welcome pivot to get modular thinking and focus on scaling users development code base…less is more
To be honest, did I actually want to have that functionality in the first version of n8n already as I really believe in its power and what possibilities it would open. Especially also looking in what it enables in other tools like Nuke where they are called Gizmos.
Anyway, when I then however looked into what would be needed it implement, I realized that it would require quite some work (and so time) to do it properly, and so left it out for now. Think was the totally right decision back then, as you have to prioritzeif you ever want to launch. But now, that the team is growing and we have more resources available it is definitely something we will look into again.
Sadly however no ETA yet, as we are also working on so many other features already which right now have higher priority, like for example user management. The reason for that is that the lack of them currently blocks the broader adoption of n8n. And even though I agree that having these composite nodes would be super amazing, does the lack of them not mean that somebody would not start using n8n.
So please bear with us, we do our best to get this and other great features out as fast as possible.
Looking forward to the cool composite nodes the community will build once they are ready. In the meantime also happy about any suggestions of how we should name them as naming something is very often one of the hardest parts
u have got to a great position where u have enthusiastic community demanding more as they like the product, imagine if they did not.
Stick to your guns currently of more mvp, table stakes functionality BUT build them in a way that does not prevent these future requests ever being realised because of base product technical debt making it impossible
Noted that n8n is not even version 1.0, it is 0.x
Reuse will be top of the agenda for enterprise customers in the future and GOVERANCE
What would also be handy is if there is the possibility to display the flow itself directly in the current flow as a group and not as a single node.
As an example Davinci Fusion allows you to simply fold the groups together or unfold them again.
Maybe an easier solution to this problem would be to expand the functionality of the “Execute Workflow” node, like the following:
Basic additions:
Add Search functionality to it:
like the in the insert function of the “MySQL” node, where you can search for tables in the MySQL database.
Naming of the “Execute Workflow” node:
The Name or at least the description of the node which is shown in the Editor should change to the Name of the workflow it executes.
Advanced additions:
Add Icons to workflows:
With adding user definable icons to workflows, the icon of the “Execute Workflow” node then could automatically change to the icon of the workflow it executes.
Add UUID to workflows:
For easier sharing of workflows with this kind of functionality a UUID per workflow would be needed, as the current ID used for workflows changes depending on when it gets added to a n8n instance and how many workflows it has at that moment.
The most important changes for me would be 1 and 2, as those add the most value with the least effort.
3 would a really nice to have, as it adds quite some visual differentiation when multiple of those nodes get used.
The following feature request is mostly the same and could be merged with this topic:
This idea just wouldn’t leave me alone last night.
In the last 5 hours, I somewhat learned how to create a custom node and created a mashup of the ‘Execute Workflow’ node and the ‘N8N API’ node.
(The code for it is a total mess right now …)
I cannot get the description of the node to change to the name, only to the ID of the workflow /:
But I’ve already used it in the last hour (only on the local testing instance) for some splitting up workflows, and it is really nice when selecting a workflow, as long as it has a good name .
I am once again having need for that idea as i have a row nodes that I want to use multiple times in different places.
It feels like there is no good way to handle that situation as i only see the following options:
A: Copy the nodes → Just like copy pasting the same code it is messy and may lead to inconsistency
B: Use Execute Workflow → As I don’t have a node-like view of the in/out format it feels messy and attracting bugs
In my dreams I could use this functionality to build a library of sort of custom nodes that are just another workflow. This would make n8n faster and more easy to use as well as feel not as messy, more cleand-up, stable and production like.
Right now without this it makes my workflows often feel like the package in this xkcd.
I attempted to conceive the minimal instantiation of getting groups working. I originally wrote this in another topic but it seems more fitting here, so I will add below. If there are reasons why any of the below couldn’t work, maybe someone can specify them and it can lead us one step closer to fleshing it out.
Ctrl-G (group)
Silently create new workflow
Cut currently selected nodes and paste into new workflow ‘subworkflow’
Place Execute Workflow node on parent workflow that points to subworkflow
(In parent workflow) Rewrite outputs of nodes that used to point to the cut nodes to point to input of subworkflow
(In subworkflow) Rewrite inputs of nodes to point to ‘Execute Workflow Trigger’ inputs