A shortlist of nodes this platform does not have yet, ordered by how much each would change day-to-day use rather than by how interesting it is to write.
Everything here is a JavaScript file in nodes/ unless marked needs C++.
The runner already exposes http, storage (including the file store),
credentials, crypto, fs, process.exec, imap, smtp, mysql,
postgresql and utils - see nodes.md for the full API.
40 node definitions across: triggers (click, get/post/put, imap, schedule with cron and overlap control, error), flow control (if-condition, loop, wait), data (rss-reader, the six storage nodes), email (four imap nodes plus smtp-send), AI (ollama-chat, comfyui-prompt), integration (telegram-send, nextcloud-talk), media (image, via ImageMagick), OCR (seven nodes), database (mysql, postgresql), security (crypto), http (http-request) and developer (code).
The gap felt on every workflow. Anything non-trivial currently becomes a Code
node, which is why 35photo2anime contains five of them.
| Node | What it does | Notes |
|---|---|---|
| Set / Edit Fields | Build an output object from expressions, keeping or dropping the rest | The single biggest win. Replaces most Code nodes |
| Switch | Branch several ways on one value | if-condition only does true/false. Multiple outputs are already supported by the engine |
| Filter | Drop items that do not match | Complements Loop; today this is an IF with a dead end |
| Merge | Join two branches: append, combine by key, or wait for both | The engine already merges inputs by targetInput |
| Split Out / Aggregate | Array field to items, and back again | Loop iterates but cannot reshape |
| Sort / Limit / Dedupe | Ordering, top-N, unique by key | Small, and constantly needed |
| Template | Render text from a template | Email bodies, chat messages. utils.interpolate does the work |
| JSON | Parse, stringify, extract by path | Failures are readable now that JSON.parse is wrapped per script context |
| Date & Time | Parse, format, add and subtract, timezones | Endless small Code nodes today |
| Stop and Error | Fail deliberately with a message | Pairs with the existing error-trigger |
| Node | Notes |
|---|---|
| Respond to Webhook | Needs C++. webhook_controller fires and forgets, so there is no way to return a computed body. Without it the GET/POST/PUT triggers cannot back a real API |
| Database Change | Poll a collection for new or changed documents. Pure JS over storage.query plus a stored cursor |
| File Watch | Poll a directory through fs.stat. Pure JS when paired with a schedule |
| Queue / Manual Approval | Large. Needs resumable executions; the engine currently runs a workflow to completion in one pass |
Cron and interval scheduling are already covered by schedule-trigger,
including its overlap policy.
All pure JavaScript over http and credentials, in the same shape as
telegram-send.
http.request silently turns any method outside its list into GET
(src/runner/engine/script_engine.cpp, performHttpRequest), so PROPFIND,
MKCOL and MOVE need a small engine fix first. Worth doing regardless.crypto.hmac can carry. Mediumollama-chatcomfyui-prompt, for people not running
ComfyUIcomfyui-prompt submits graphs but cannot push an
input image to /upload/image, so image-to-image is out of reachprocess.exec with arguments, a timeout and
captured outputSet / Edit Fields, Switch, and the OpenAI-compatible chat node. Those three would remove the most Code nodes from workflows that already exist.
Two entries are ranked below their worth, purely because they need engine work rather than a JavaScript file: Respond to Webhook and Execute Sub-workflow. For the platform to feel finished rather than merely well-stocked, those matter more than any ten integrations.