Developing Custom Workflow Nodes

🧩 Workflow Node javascript v1

A comprehensive guide on creating and publishing custom workflow nodes. Learn how to define inputs, outputs, UI fields, and the execute runtime logic.

Why Custom Nodes?

While Flowork comes with dozens of built-in nodes (HTTP, Google Sheets, IF/ELSE), advanced users often need to integrate with proprietary APIs, legacy systems, or specific computational algorithms.

Custom nodes allow developers to extend the Flow Designer palette.

Node Anatomy

A custom node consists of two parts: The UI Schema and The Execution Logic.

The UI Schema

This tells the Flow Designer how to render the node block on the canvas. It defines:
  • The title and icon.
  • Ports available on the left side (inputs).
  • Ports available on the right side (outputs).
  • Form fields shown when the node is clicked (e.g., text boxes, dropdowns).

The Execution Logic

The execute function runs when the DAG engine reaches this node. It receives three parameters: 1. inputs: An object mapping input port names to incoming data. 2. fields: An object mapping form field names to user-configured static data. 3. context: The global execution context (includes credentials, app ID, and engine variables).

Distributing Custom Nodes

Once developed, a custom node folder (containing schema.json and the logic file) can be compiled into an .nflow file via the Go Engine. This encrypted package can be shared and installed by other users via the App/Node Store.