knobs

Visual knob controls for data transformation in n8n workflows

Package Information

Downloads: 0 weekly / 6 monthly
Latest Version: 0.1.1
Author: Bayu Stiawan

Documentation

n8n-nodes-knobs

A custom n8n community node that provides visual knob controls for data transformation operations. This node allows users to interactively tune parameters using slider controls and visual knobs, making data transformation more intuitive and user-friendly.

Features

  • Visual Knob Controls: Interactive sliders and knobs for parameter adjustment
  • String Operations: Configure string length thresholds, case sensitivity, and whitespace handling
  • Number Operations: Set precision, min/max values, and scale factors with visual controls
  • Array Operations: Control array limits, chunk sizes, and empty array handling
  • Date Operations: Configure date formatting and timezone settings
  • Filter Operations: Fine-tune what data to include or exclude from output
  • No External Dependencies: Lightweight implementation for verified community node status

Installation

From n8n Community Nodes (when verified)

  1. In your n8n instance, go to Settings > Community Nodes
  2. Click Install a community node
  3. Search for n8n-nodes-knobs
  4. Click Install

Manual Installation

  1. Install the package in your n8n instance:

    npm install n8n-nodes-knobs
    
  2. Restart your n8n instance

Usage

Basic Setup

  1. Add the Knobs node to your workflow
  2. Connect it to your data source
  3. Configure the visual knobs for your desired transformations
  4. Connect the output to your next node

String Operations

Configure how strings are processed:

  • String Length Threshold: Set minimum string length to process (0-1000)
  • Case Sensitivity: Toggle case-sensitive string operations
  • Trim Whitespace: Automatically trim whitespace from strings

Number Operations

Fine-tune number processing:

  • Number Precision: Set decimal places (0-10)
  • Min/Max Values: Define value constraints
  • Scale Factor: Multiply numbers by a factor (0.01-100)

Array Operations

Control array processing:

  • Array Limit: Maximum items to process (1-1000)
  • Skip Empty Arrays: Toggle empty array handling
  • Array Chunk Size: Split large arrays into chunks (1-100)

Date Operations

Configure date formatting:

  • Date Format: Set the output date format (default: YYYY-MM-DD)
  • Timezone Offset: Adjust timezone (-12 to +12 hours)
  • Include Time: Toggle time inclusion in dates

Filter Operations

Control data filtering:

  • Include Null Values: Toggle null/undefined value inclusion
  • Include Empty Strings: Toggle empty string inclusion
  • Include Zero Values: Toggle zero value inclusion

Example Workflows

Example 1: Data Cleaning Pipeline

{
  "nodes": [
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook"
    },
    {
      "name": "Knobs",
      "type": "n8n-nodes-knobs.knobs",
      "parameters": {
        "stringOperations": {
          "stringLengthThreshold": 5,
          "trimWhitespace": true
        },
        "numberOperations": {
          "numberPrecision": 2,
          "minValue": 0,
          "maxValue": 1000
        },
        "filterOperations": {
          "includeNullValues": false,
          "includeEmptyStrings": false
        }
      }
    },
    {
      "name": "Set",
      "type": "n8n-nodes-base.set"
    }
  ]
}

Example 2: API Response Processing

{
  "nodes": [
    {
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest"
    },
    {
      "name": "Knobs",
      "type": "n8n-nodes-knobs.knobs",
      "parameters": {
        "arrayOperations": {
          "arrayLimit": 50,
          "arrayChunkSize": 10
        },
        "numberOperations": {
          "scaleFactor": 1.5,
          "numberPrecision": 1
        }
      }
    }
  ]
}

Development

Prerequisites

  • Node.js 18.17.0 or higher
  • npm
  • n8n installed globally

Setup

  1. Clone the repository:

    git clone https://github.com/bayustiawanmbp/n8n-nodes-knobs.git
    cd n8n-nodes-knobs
    
  2. Install dependencies:

    npm install
    
  3. Build the node:

    npm run build
    
  4. Test locally:

    npm run dev
    

Linting

Run the linter to check code quality:

npm run lint

Fix linting issues:

npm run lint:fix

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Code Style

  • Use TypeScript for all node implementations
  • Follow n8n's coding standards
  • Ensure all tests pass
  • Update documentation for new features

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Support

Changelog

0.1.0

  • Initial release
  • Visual knob controls for data transformation
  • String, number, array, date, and filter operations
  • No external dependencies for verified status

Roadmap

  • Additional data type support (objects, booleans)
  • Custom validation rules
  • Batch processing optimizations
  • Advanced filtering options
  • Performance metrics and monitoring

Made with ❤️ for the n8n community

Discussion