Advanced
Custom Nodes
Extend riogentix with your own nodes written in TypeScript or JavaScript.
When to Build a Custom Node
- A required third-party service isn't available as a built-in integration
- You have complex proprietary logic that runs across many workflows
- You want to encapsulate a multi-step operation into a single reusable 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