Advanced

Custom Nodes

Extend riogentix with your own nodes written in TypeScript or JavaScript.

When to Build a Custom Node

Node Structure

import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'riogentix-sdk';

export class MyCustomNode implements INodeType {
  description: INodeTypeDescription = {
    displayName: 'My Custom Node',
    name: 'myCustomNode',
    group: ['transform'],
    version: 1,
    description: 'Does something custom',
    defaults: { name: 'My Custom Node' },
    inputs: ['main'],
    outputs: ['main'],
    properties: [
      {
        displayName: 'Input Field',
        name: 'inputField',
        type: 'string',
        required: true,
        default: '',
        description: 'The field to process',
      },
    ],
  };

  async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
    const items = this.getInputData();
    const results: INodeExecutionData[] = [];

    for (const item of items) {
      const inputField = this.getNodeParameter('inputField', item.index) as string;
      results.push({ json: { result: inputField.toUpperCase() } });
    }

    return [results];
  }
}

Installing a Custom Node

Via npm (recommended)

Publish your node as an npm package with the prefix riogentix-nodes-:

npm publish --access public
# package name: riogentix-nodes-my-custom-node

Then install in your tenant: Settings → Community Nodes → Install → riogentix-nodes-my-custom-node

Via File Upload

For internal/private nodes, upload the compiled .js file directly in Settings → Custom Nodes → Upload.

SDK Reference

Full TypeScript SDK docs: https://sdk.riogentix.com