# nodes

node_type: n8n-nodes-webhook-engine.WebhookEngine
package_name: n8n-nodes-webhook-engine
display_name: WebhookEngine
description: Botomat Webhook Engine Integration
category: Community
development_style: declarative
version: 2.0.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: neriyabudraham
npm_package_name: n8n-nodes-webhook-engine
npm_version: 2.0.2
community_fetched_at: 2026-01-07T20:08:17.612Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-starter

  This starter repository helps you build custom integrations for [n8n](https://n8n.io). It includes example nodes, credentials, the node linter, and all the tooling you need to get started.

  ## Quick Start

  > [!TIP]
  > **New to building n8n nodes?** The fastest way to get started is with `npm create @n8n/node`. This command scaffolds a complete node package for you using the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli).

  **To create a new node package from scratch:**

  ```bash
  npm create @n8n/node
  ```

  **Already using this starter? Start developing with:**

  ```bash
  npm run dev
  ```

  This starts n8n with your nodes loaded and hot reload enabled.

  ## What's Included

  This starter repository includes two example nodes to learn from:

  - **[Example Node](nodes/Example/)** - A simple starter node that shows the basic structure with a custom `execute` method
  - **[GitHub Issues Node](nodes/GithubIssues/)** - A complete, production-ready example built using the **declarative style**:
    - **Low-code approach** - Define operations declaratively without writing request logic
    - Multiple resources (Issues, Comments)
    - Multiple operations (Get, Get All, Create)
    - Two authentication methods (OAuth2 and Personal Access Token)
    - List search functionality for dynamic dropdowns
    - Proper error handling and typing
    - Ideal for HTTP API-based integrations

  > [!TIP]
  > The declarative/low-code style (used in GitHub Issues) is the recommended approach for building nodes that interact with HTTP APIs. It significantly reduces boilerplate code and handles requests automatically.

  Browse these examples to understand both approaches, then modify them or create your own.

  ## Finding Inspiration

  Looking for more examples? Check out these resources:

  - **[npm Community Nodes](https://www.npmjs.com/search?q=keywords:n8n-community-node-package)** - Browse thousands of community-built nodes on npm using the `n8n-community-node-package` tag
  - **[n8n Built-in Nodes](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/nodes)** - Study the source code of n8n's official nodes for production-ready patterns and best practices
  - **[n8n Credentials](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/credentials)** - See how authentication is implemented for various services

  These are excellent resources to understand how to structure your nodes, handle different API patterns, and implement advanced features.

  ## Prerequisites

  Before you begin, install the following on your development machine:

  ### Required

  - **[Node.js](https://nodejs.org/)** (v22 or higher) and npm
    - Linux/Mac/WSL: Install via [nvm](https://github.com/nvm-sh/nvm)
    - Windows: Follow [Microsoft's NodeJS guide](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows)
  - **[git](https://git-scm.com/downloads)**

  ### Recommended

  - Follow n8n's [development environment setup guide](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/)

  > [!NOTE]
  > The `@n8n/node-cli` is included as a dev dependency and will be installed automatically when you run `npm install`. The CLI includes n8n for local development, so you don't need to install n8n globally.

  ## Getting Started with this Starter

  Follow these steps to create your own n8n community node package:

  ### 1. Create Your Repository

  [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template, then clone it:

  ```bash
  git clone https://github.com/<your-organization>/<your-repo-name>.git
  cd <your-repo-name>
  ```

  ### 2. Install Dependencies

  ```bash
  npm install
  ```

  This installs all required dependencies including the `@n8n/node-cli`.

  ### 3. Explore the Examples

  Browse the example nodes in [nodes/](nodes/) and [credentials/](credentials/) to understand the structure:

  - Start with [nodes/Example/](nodes/Example/) for a basic node
  - Study [nodes/GithubIssues/](nodes/GithubIssues/) for a real-world implementation

  ### 4. Build Your Node

  Edit the example nodes to fit your use case, or create new node files by copying the structure from [nodes/Example/](nodes/Example/).

  > [!TIP]
  > If you want to scaffold a completely new node package, use `npm create @n8n/node` to start fresh with the CLI's interactive generator.

  ### 5. Configure Your Package

  Update `package.json` with your details:

  - `name` - Your package name (must start with `n8n-nodes-`)
  - `author` - Your name and email
  - `repository` - Your repository URL
  - `description` - What your node does

  Make sure your node is registered in the `n8n.nodes` array.

  ### 6. Develop and Test Locally

  Start n8n with your node loaded:

  ```bash
  npm run dev
  ```

  This command runs `n8n-node dev` which:

  - Builds your node with watch mode
  - Starts n8n with your node available
  - Automatically rebuilds when you make changes
  - Opens n8n in your browser (usually http://localhost:5678)

  You can now test your node in n8n workflows!

  > [!NOTE]
  > Learn more about CLI commands in the [@n8n/node-cli documentation](https://www.npmjs.com/package/@n8n/node-cli).

  ### 7. Lint Your Code

  Check for errors:

  ```bash
  npm run lint
  ```

  Auto-fix issues when possible:

  ```bash
  npm run lint:fix
  ```

  ### 8. Build for Production

  When ready to publish:

  ```bash
  npm run build
  ```

  This compiles your TypeScript code to the `dist/` folder.

  ### 9. Prepare for Publishing

  Before publishing:

  1. **Update documentation**: Replace this README with your node's documentation. Use [README_TEMPLATE.md](README_TEMPLATE.md) as a starting point.
  2. **Update the LICENSE**: Add your details to the [LICENSE](LICENSE.md) file.
  3. **Test thoroughly**: Ensure your node works in different scenarios.

  ### 10. Publish to npm

  Publish your package to make it available to the n8n community:

  ```bash
  npm publish
  ```

  Learn more about [publishing to npm](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  ### 11. Submit for Verification (Optional)

  Get your node verified for n8n Cloud:

  1. Ensure your node meets the [requirements](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/):
     - Uses MIT license ✅ (included in this starter)
     - No external package dependencies
     - Follows n8n's design guidelines
     - Passes quality and security review

  2. Submit through the [n8n Creator Portal](https://creators.n8n.io/nodes)

  **Benefits of verification:**

  - Available directly in n8n Cloud
  - Discoverable in the n8n nodes panel
  - Verified badge for quality assurance
  - Increased visibility in the n8n community

  ## Available Scripts

  This starter includes several npm scripts to streamline development:

  | Script                | Description                                                      |
  | --------------------- | ---------------------------------------------------------------- |
  | `npm run dev`         | Start n8n with your node and watch for changes (runs `n8n-node dev`) |
  | `npm run build`       | Compile TypeScript to JavaScript for production (runs `n8n-node build`) |
  | `npm run build:watch` | Build in watch mode (auto-rebuild on changes)                    |
  | `npm run lint`        | Check your code for errors and style issues (runs `n8n-node lint`) |
  | `npm run lint:fix`    | Automatically fix linting issues when possible (runs `n8n-node lint --fix`) |
  | `npm run release`     | Create a new release (runs `n8n-node release`)                   |

  > [!TIP]
  > These scripts use the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli) under the hood. You can also run CLI commands directly, e.g., `npx n8n-node dev`.

  ## Troubleshooting

  ### My node doesn't appear in n8n

  1. Make sure you ran `npm install` to install dependencies
  2. Check that your node is listed in `package.json` under `n8n.nodes`
  3. Restart the dev server with `npm run dev`
  4. Check the console for any error messages

  ### Linting errors

  Run `npm run lint:fix` to automatically fix most common issues. For remaining errors, check the [n8n node development guidelines](https://docs.n8n.io/integrations/creating-nodes/).

  ### TypeScript errors

  Make sure you're using Node.js v22 or higher and have run `npm install` to get all type definitions.

  ## Resources

  - **[n8n Node Documentation](https://docs.n8n.io/integrations/creating-nodes/)** - Complete guide to building nodes
  - **[n8n Community Forum](https://community.n8n.io/)** - Get help and share your nodes
  - **[@n8n/node-cli Documentation](https://www.npmjs.com/package/@n8n/node-cli)** - CLI tool reference
  - **[n8n Creator Portal](https://creators.n8n.io/nodes)** - Submit your node for verification
  - **[Submit Community Nodes Guide](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/)** - Verification requirements and process

  ## Contributing

  Have suggestions for improving this starter? [Open an issue](https://github.com/n8n-io/n8n-nodes-starter/issues) or submit a pull request!

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"The WebhookEngine node serves as a template or starter package for building custom n8n integrations, providing examples and tools to develop nodes that interact with HTTP APIs using a declarative, low-code approach. It is not a functional node itself but a development scaffold.","capabilities":["Scaffolds a new n8n node with basic structure","Provides examples of declarative node development","Includes support for multiple operations and authentication methods","Supports low-code development with automatic request handling","Enables hot reloading during local development"],"authentication":"Supports multiple authentication methods (e.g., OAuth2, Personal Access Token) as demonstrated in the GitHub Issues example node","commonUseCases":["Developing custom integrations for HTTP-based APIs","Creating declarative nodes with minimal boilerplate code","Learning n8n node development patterns","Building production-ready nodes with proper error handling and typing"],"limitations":["The node itself is not a functional integration; it is a development template","No specific API or service is implemented in this package","Requires developer setup and configuration to become a usable node"],"relatedNodes":["n8n-nodes-base","GitHub Issues Node (example)","n8n-community-node-package"]}


node_type: n8n-nodes-yaml.Yaml
package_name: n8n-nodes-yaml
display_name: Yaml
description: Node to parse and stringify YAML
category: Community
development_style: declarative
version: 0.1.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: pemontto
author_github_url: git+https://github.com/pemontto/n8n-nodes-yaml.git
npm_package_name: n8n-nodes-yaml
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:17.613Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-yaml

  <img src="https://raw.githubusercontent.com/pemontto/n8n-nodes-yaml/main/nodes/Yaml/yaml.svg?token=GHSAT0AAAAAAC7IB4NCPYDAN3XY5IZICCK4Z7A6G4A" width=120 />

  This is an n8n community node for node for parsing and stringifying YAML.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  - [Installation](#installation)
    - [Community Nodes (Recommended)](#community-nodes-recommended)
    - [Manual installation](#manual-installation)
  - [Operations](#operations)
  - [Compatibility](#compatibility)
  - [Example Workflow](#example-workflow)
  - [Resources](#resources)
  - [License](#license)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Community Nodes (Recommended)

  For users on n8n v0.187+, your instance owner can install this node from [Community Nodes](https://docs.n8n.io/integrations/community-nodes/installation/).

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-yaml` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  After installing the node, you can use it like any other node. n8n displays the node in search results in the **Nodes** panel.

  ### Manual installation

  To get started install the package in your n8n root directory:

  `npm install n8n-nodes-yaml`

  For Docker-based deployments add the following line before the font installation command in your [n8n Dockerfile](https://github.com/n8n-io/n8n/blob/master/docker/images/n8n/Dockerfile):

  `RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-yaml`

  ## Operations

  - **Operations**
    - **Parse**: Parse YAML text
      - `YAML`: The YAML string to parse
      - `Property Name`: The field to store the parsed output (default: `data`)
    - **Stringify**: Convert an item of field to a YAML string
      - `Value`: The object to convert to a YAML string
      - `Property Name`: The field to store the parsed output (default: `data`)

  ## Compatibility

  n8n v0.187+

  ## Example Workflow

  ![Example workflow](images/workflow.png)

  <details>
  <summary>Expand to show workflow JSON</summary>

  *Copy and paste this JSON into a blank n8n workflow!*

  ```json
  {
    "nodes": [
      {
        "parameters": {},
        "name": "Start",
        "type": "n8n-nodes-base.start",
        "typeVersion": 1,
        "position": [
          240,
          300
        ]
      },
      {
        "parameters": {
          "values": {
            "string": [
              {
                "name": "yaml",
                "value": "=---\n# <- yaml supports comments, json does not\n# did you know you can embed json in yaml?\n# try uncommenting the next line\n# { foo: 'bar' }\n\njson:\n  - rigid\n  - better for data interchange\nyaml: \n  - slim and flexible\n  - better for configuration\nobject:\n  key: value\n  array:\n    - null_value:\n    - boolean: true\n    - integer: 1\n    - alias: &example aliases are like variables\n    - alias: *example\nparagraph: >\n   Blank lines denote\n\n   paragraph breaks\ncontent: |-\n   Or we\n   can auto\n   convert line breaks\n   to save space\nalias: &foo\n  bar: baz\nalias_reuse: *foo"
              },
              {
                "name": "json",
                "value": "={\n  \"json\": [\n    \"rigid\",\n    \"better for data interchange\"\n  ],\n  \"yaml\": [\n    \"slim and flexible\",\n    \"better for configuration\"\n  ],\n  \"object\": {\n    \"key\": \"value\",\n    \"array\": [\n      {\n        \"null_value\": null\n      },\n      {\n        \"boolean\": true\n      },\n      {\n        \"integer\": 1\n      },\n      {\n        \"alias\": \"aliases are like variables\"\n      },\n      {\n        \"alias\": \"aliases are like variables\"\n      }\n    ]\n  },\n  \"paragraph\": \"Blank lines denote\\nparagraph breaks\\n\",\n  \"content\": \"Or we\\ncan auto\\nconvert line breaks\\nto save space\",\n  \"alias\": {\n    \"bar\": \"baz\"\n  },\n  \"alias_reuse\": {\n    \"bar\": \"baz\"\n  }\n}"
              }
            ]
          },
          "options": {}
        },
        "name": "Set",
        "type": "n8n-nodes-base.set",
        "typeVersion": 1,
        "position": [
          460,
          300
        ]
      },
      {
        "parameters": {
          "values": {
            "string": [
              {
                "name": "JSON_DATA",
                "value": "={{ JSON.parse($json[\"json\"]) }}"
              }
            ]
          },
          "options": {}
        },
        "name": "Parse JSON String",
        "type": "n8n-nodes-base.set",
        "typeVersion": 1,
        "position": [
          720,
          380
        ]
      },
      {
        "parameters": {
          "mode": "mergeByIndex"
        },
        "name": "Merge",
        "type": "n8n-nodes-base.merge",
        "typeVersion": 1,
        "position": [
          960,
          300
        ]
      },
      {
        "parameters": {
          "value": "={{ $json[\"yaml\"] }}",
          "propertyName": "YAML_DATA"
        },
        "name": "Parse YAML",
        "type": "n8n-nodes-yaml.yaml",
        "typeVersion": 1,
        "position": [
          720,
          220
        ]
      },
      {
        "parameters": {
          "operation": "stringify",
          "value": "={{ $json }}",
          "propertyName": "STRINGIFIED"
        },
        "name": "Convert to YAML",
        "type": "n8n-nodes-yaml.yaml",
        "typeVersion": 1,
        "position": [
          1160,
          300
        ]
      }
    ],
    "connections": {
      "Start": {
        "main": [
          [
            {
              "node": "Set",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Set": {
        "main": [
          [
            {
              "node": "Parse YAML",
              "type": "main",
              "index": 0
            },
            {
              "node": "Parse JSON String",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Parse JSON String": {
        "main": [
          [
            {
              "node": "Merge",
              "type": "main",
              "index": 1
            }
          ]
        ]
      },
      "Merge": {
        "main": [
          [
            {
              "node": "Convert to YAML",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Parse YAML": {
        "main": [
          [
            {
              "node": "Merge",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    }
  }
  ```

  </details>

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](https://github.com/pemontto/n8n-nodes-yaml/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"A node that enables parsing and stringifying YAML content within n8n workflows, allowing users to convert between YAML strings and JSON-like objects.","capabilities":["Parse YAML text into a structured object","Convert a structured object back into a YAML string","Support for YAML comments and features like aliases and multi-line strings"],"authentication":"None","commonUseCases":["Converting configuration files from YAML to JSON or vice versa","Processing configuration data in workflows where YAML is the preferred format","Handling nested structures, arrays, and comments in YAML documents"],"limitations":[],"relatedNodes":["n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.parseJsonString"]}


node_type: n8n-nodes-neura-ianustec.NeuraIanustec
package_name: n8n-nodes-neura-ianustec
display_name: NeuraIanustec
description: n8n Community Node for NEURA | IANUSTEC AI - LangChain compatible Chat Model and Knowledge RAG Tool
category: Community
development_style: declarative
version: 0.7.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: ianustec
author_github_url: git+https://github.com/ianustec/n8n-nodes-neura-ianustec.git
npm_package_name: n8n-nodes-neura-ianustec
npm_version: 0.7.1
community_fetched_at: 2026-01-07T20:08:17.613Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-neura-ianustec

  ![NEURA | IANUSTEC AI](https://img.shields.io/badge/NEURA-IANUSTEC%20AI-blue)
  ![n8n Community Node](https://img.shields.io/badge/n8n-Community%20Node-orange)
  ![Version](https://img.shields.io/badge/version-0.1.0-green)

  A powerful n8n Community Node for integrating with **NEURA | IANUSTEC AI** services using OpenAI-compatible APIs. This node supports Chat Completions and Embeddings with advanced features like tool/function calling, retry logic, and binary output.

  ## 🚀 Features

  - **OpenAI-Compatible API**: Works with OpenAI API, LiteLLM, vLLM, and other compatible endpoints
  - **Chat Completions**: Generate AI responses with system/user messages, temperature control, and tool calling
  - **Embeddings**: Create vector embeddings for text inputs (strings or arrays)
  - **Tool Integration**: Usable as a Tool in n8n AI Agents with `usableAsTool: true`
  - **Advanced Error Handling**: Retry logic with exponential backoff for rate limits and timeouts
  - **Binary Output**: Save raw API responses as JSON files
  - **Batch Processing**: Process multiple items efficiently with proper error isolation
  - **Configurable Endpoints**: Support for custom base URLs and authentication

  ## 📦 Installation

  ### Option 1: Via n8n Community Nodes UI

  1. Go to **Settings** → **Community Nodes** in your n8n instance
  2. Click **Install a community node**
  3. Enter: `n8n-nodes-neura-ianustec`
  4. Click **Install**

  ### Option 2: Kubernetes Deployment (Recommended for Production)

  For automatic installation in Kubernetes environments with **pre-configured NEURA credentials**:

  ```bash
  # Quick deployment in 'lair' namespace (with NEURA internal service config)
  cd k8s/
  ./deploy.sh

  # Deploy with secure Secret-based credentials
  USE_SECRET=true ./deploy.sh

  # Monitor installation
  kubectl logs -f job/n8n-neura-ianustec-node-installer -n lair
  ```

  **Pre-configured NEURA Settings:**
  - **Base URL**: `http://llm-neura.neura-llm.svc.cluster.local/v1`
  - **API Key**: Automatically configured for internal NEURA services
  - **Credentials**: Created as "NEURA Internal API" in n8n

  See [k8s/README.md](k8s/README.md) for detailed Kubernetes deployment instructions.

  ### Option 3: Manual Installation

  ```bash
  # Navigate to your n8n installation
  cd ~/.n8n/nodes

  # Install the package
  npm install n8n-nodes-neura-ianustec

  # Restart n8n
  ```

  ### Option 4: Development Installation

  ```bash
  # Clone the repository
  git clone https://github.com/ianustec/n8n-nodes-neura-ianustec.git
  cd n8n-nodes-neura-ianustec

  # Install dependencies
  pnpm install

  # Build the project
  pnpm build

  # Link for development
  npm link
  ```

  ## 🔧 Configuration

  ### 1. Create Credentials

  Before using the node, create **NEURA | IANUSTEC AI API** credentials:

  1. Go to **Credentials** in n8n
  2. Click **Create New**
  3. Search for "NEURA | IANUSTEC AI API"
  4. Fill in the required fields:

  | Field | Description | Default | Required |
  |-------|-------------|---------|----------|
  | **Base URL** | API endpoint URL | `https://api.openai.com/v1` | ✅ |
  | **API Key** | Your authentication key | - | ✅ |
  | **Organization ID** | OpenAI organization (optional) | - | ❌ |
  | **Request Timeout** | Timeout in milliseconds | `60000` | ❌ |
  | **Reject Unauthorized** | Verify SSL certificates | `true` | ❌ |

  ### 2. Supported Endpoints

  The node works with any OpenAI-compatible API:

  - **OpenAI**: `https://api.openai.com/v1`
  - **LiteLLM**: `http://your-litellm-server:4000`
  - **vLLM**: `http://your-vllm-server:8000/v1`
  - **Custom Endpoints**: Any API following OpenAI schema

  ## 📚 Usage Examples

  ### Chat Completions

  #### Basic Chat
  ```json
  {
    "resource": "chat",
    "operation": "create",
    "model": "gpt-4o-mini",
    "systemMessage": "You are a helpful assistant specialized in data analysis.",
    "userMessage": "Explain the benefits of using n8n for automation.",
    "temperature": 0.7
  }
  ```

  #### With Tool Calling
  ```json
  {
    "resource": "chat",
    "operation": "create",
    "model": "gpt-4o-mini",
    "userMessage": "What's the weather like in Paris?",
    "toolsJson": {
      "tools": [
        {
          "type": "function",
          "function": {
            "name": "get_weather",
            "description": "Get current weather for a city",
            "parameters": {
              "type": "object",
              "properties": {
                "city": {"type": "string", "description": "City name"}
              },
              "required": ["city"]
            }
          }
        }
      ],
      "tool_choice": "auto"
    }
  }
  ```

  ### Embeddings

  #### Single Text
  ```json
  {
    "resource": "embeddings",
    "operation": "create",
    "embModel": "text-embedding-ada-002",
    "embInput": "This is a sample text for embedding generation."
  }
  ```

  #### Multiple Texts
  ```json
  {
    "resource": "embeddings",
    "operation": "create",
    "embModel": "text-embedding-ada-002",
    "embInput": "[\"First text\", \"Second text\", \"Third text\"]"
  }
  ```

  ### Advanced Options

  #### Store Raw Response + Binary Output
  ```json
  {
    "advancedOptions": {
      "storeRaw": true,
      "binaryFile": "api_response.json"
    }
  }
  ```

  ## 🔄 Response Format

  ### Chat Completions Response
  ```json
  {
    "content": "Generated response text",
    "finish_reason": "stop",
    "model": "gpt-4o-mini",
    "created": 1699123456,
    "usage": {
      "prompt_tokens": 25,
      "completion_tokens": 50,
      "total_tokens": 75
    },
    "message": {
      "role": "assistant",
      "content": "Generated response text"
    }
  }
  ```

  ### Embeddings Response
  ```json
  {
    "model": "text-embedding-ada-002",
    "embeddings": [
      {
        "object": "embedding",
        "embedding": [0.1, 0.2, -0.3, ...],
        "index": 0
      }
    ],
    "usage": {
      "prompt_tokens": 10,
      "total_tokens": 10
    }
  }
  ```

  ## 🛠️ Error Handling

  The node includes comprehensive error handling:

  ### Automatic Retry
  - **Rate Limits (429)**: Exponential backoff (2s → 4s → 6s)
  - **Timeouts (408)**: Automatic retry with backoff
  - **Server Errors (5xx)**: Retry on temporary failures
  - **Max Retries**: 2 attempts with intelligent backoff

  ### Continue on Fail
  When **Continue on Fail** is enabled:
  ```json
  {
    "error": "Rate limit exceeded. Please try again later.",
    "itemIndex": 0
  }
  ```

  ### Common Error Types
  - **Authentication**: Invalid API key or missing credentials
  - **Rate Limiting**: Too many requests, automatic retry engaged
  - **Network**: Connection issues, DNS resolution failures
  - **Validation**: Invalid parameters or malformed requests

  ## 🤖 AI Agent Integration

  This node is marked as `usableAsTool: true`, making it available in n8n AI Agents:

  1. Create an **AI Agent** workflow
  2. In the Agent configuration, the **NEURA | IANUSTEC AI** node will appear in available tools
  3. The Agent can automatically call this node for AI completions

  ## 🔧 Development

  ### Building
  ```bash
  pnpm install
  pnpm build
  ```

  ### Linting
  ```bash
  pnpm lint
  pnpm lintfix
  ```

  ### Testing
  ```bash
  # Build and test locally
  pnpm build
  # Import the built node into your n8n instance for testing
  ```

  ## 📋 Requirements

  - **Node.js**: >= 18.0.0
  - **n8n**: >= 1.0.0
  - **Package Manager**: pnpm (recommended)

  ## 🔍 Troubleshooting

  ### Connection Issues
  1. **Verify Base URL**: Ensure the endpoint is accessible
  2. **Check API Key**: Validate authentication credentials
  3. **Network Access**: Confirm n8n can reach the API endpoint
  4. **SSL Issues**: Disable `rejectUnauthorized` for self-signed certificates

  ### Performance Optimization
  1. **Batch Size**: Process items in reasonable batches
  2. **Timeout Settings**: Adjust timeout for your network conditions
  3. **Rate Limiting**: Monitor API usage and implement delays if needed

  ### Debug Mode
  Enable debug logging in n8n to see detailed request/response information:
  ```bash
  N8N_LOG_LEVEL=debug n8n start
  ```

  ## 📄 License

  MIT License - see [LICENSE](LICENSE) file for details.

  ## 🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

  ## 📞 Support

  - **Issues**: [GitHub Issues](https://github.com/ianustec/n8n-nodes-neura-ianustec/issues)
  - **Documentation**: [IANUSTEC Docs](https://ianustec.com/docs)
  - **Community**: [n8n Community](https://community.n8n.io)

  ## 🏷️ Version History

  - **v0.1.0**: Initial release with Chat Completions and Embeddings support

  ---

  **Made with ❤️ by [IANUSTEC](https://ianustec.com)**

ai_documentation_summary:
  {"purpose":"A community node that integrates n8n with NEURA | IANUSTEC AI services via OpenAI-compatible APIs, enabling chat completions, embeddings, tool calling, and binary output processing in AI workflows.","capabilities":["Chat completions with system and user messages, temperature control, and tool calling","Embeddings generation for single or multiple text inputs","Function/tool integration usable in n8n AI Agents","Support for OpenAI-compatible endpoints (OpenAI, LiteLLM, vLLM, custom)","Advanced error handling with exponential backoff and retry logic","Binary output saving as JSON files","Batch processing with error isolation","Configurable base URLs and authentication"],"authentication":"API key required via credentials configuration; supports custom base URLs and optional organization ID","commonUseCases":["Generating AI responses in automated workflows","Implementing AI agents with tool calling capabilities","Creating vector embeddings for knowledge retrieval systems (RAG)","Processing multiple text inputs in bulk for semantic search or classification","Storing raw API responses for debugging or auditing"],"limitations":[],"relatedNodes":["n8n-nodes-base.aiAgent","n8n-nodes-base.embedding","n8n-nodes-base.chat","n8n-nodes-base.function"]}


node_type: @matheusprm-nodes/n8n-nodes-rdstation-crm.RdstationCrm
package_name: @matheusprm-nodes/n8n-nodes-rdstation-crm
display_name: RdstationCrm
description: n8n community node for RD Station CRM API v2
category: Community
development_style: declarative
version: 0.5.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: matheusprm
author_github_url: git+https://github.com/n8n-io/n8n-nodes-starter.git
npm_package_name: @matheusprm-nodes/n8n-nodes-rdstation-crm
npm_version: 0.5.4
community_fetched_at: 2026-01-07T20:08:17.614Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-rdstation-crm

  This is an n8n community node that integrates with the **RD Station CRM API v2**. It allows you to interact with RD Station CRM resources (Deals, Contacts, Organizations, Products, Tasks, Webhooks, etc.) directly from your n8n workflows.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ```bash
  npm install @matheusprm-nodes/n8n-nodes-rdstation-crm
  ```

  After installation, restart n8n and look for the **"RD Station CRM"** node.

  ## Features

  - ✅ **OAuth2 Authentication** - Secure authentication using RD Station's OAuth2 flow
  - ✅ **18 CRM Resources** - Full support for Campaigns, Contacts, Deals, Organizations, Products, Tasks, Webhooks, and more
  - ✅ **CRUD Operations** - Create, Read, Update, Delete operations for all resources
  - ✅ **Advanced Filtering** - RDQL (RD Station Query Language) support for complex queries
  - ✅ **Pagination** - Built-in support for paginated results
  - ✅ **Raw Request Mode** - Advanced mode for custom API calls
  - ✅ **Error Handling** - Comprehensive error handling with detailed messages

  ## Resources Supported

  - Campaigns
  - Contacts
  - Custom Fields
  - Deal Products
  - Deals
  - Attachments
  - Lost Reasons
  - Notes
  - Organizations
  - Pipelines
  - Products
  - Segments
  - Sources
  - Stages
  - Tasks
  - Teams
  - Users
  - Webhooks

  ## Operations

  For each resource, the following operations are available:

  - **List** - Retrieve a list of resources with pagination, filtering, and sorting
  - **Get** - Retrieve a single resource by ID
  - **Create** - Create a new resource
  - **Update** - Update an existing resource
  - **Delete** - Delete a resource (where applicable)

  ## Credentials

  ### RD Station CRM OAuth2 API

  To use this node, you need to:

  1. **Create an App** in the [RD Station App Publisher](https://app.rdstation.com.br/apps)
  2. **Get your credentials**:
     - Client ID
     - Client Secret
  3. **Configure the credential** in n8n:
     - Go to Credentials → Add Credential → RD Station CRM OAuth2 API
     - Enter your Client ID and Client Secret
     - Complete the OAuth2 flow

  ### OAuth2 Flow

  The node uses the **Authorization Code** flow with refresh tokens:

  - Access tokens are valid for **2 hours**
  - Refresh tokens expire if unused for **14 days** (rolling tokens)
  - The node automatically handles token refresh

  ## Usage Examples

  ### List Deals

  1. Add the **RD Station CRM** node to your workflow
  2. Select **Resource**: Deal
  3. Select **Operation**: List
  4. Configure pagination:
     - Page: 1
     - Limit: 25
  5. (Optional) Add filters using RDQL:
     - Filter: `status:(won,lost)`

  ### Create a Deal

  1. Add the **RD Station CRM** node
  2. Select **Resource**: Deal
  3. Select **Operation**: Create
  4. In **Body (JSON)**, enter:
     ```json
     {
       "name": "Nova negociação",
       "value": 1000
     }
     ```

  ### Advanced: Raw Request

  For custom endpoints or advanced use cases:

  1. Select **Resource**: Raw Request (Advanced)
  2. Select **Method**: GET, POST, PUT, PATCH, or DELETE
  3. Enter the **Endpoint**: `/deals?page=1&limit=25`
  4. (Optional) Add **Query Parameters (JSON)**: `{"page":1,"limit":25,"filter":"name:Teste"}`
  5. (For POST/PUT/PATCH) Add **Body (JSON)**

  ## Filtering with RDQL

  The node supports RD Station's query language (RDQL) for advanced filtering:

  ### Basic Syntax
  ```
  status:won
  name:Teste
  value:>1000
  ```

  ### Operators
  - `=` (equals)
  - `!=` (not equals, prefix `-`)
  - `>`, `<`, `>=`, `<=` (comparison)
  - `IN`, `NIN` (in/not in)
  - `MATCH` (`~`) (pattern matching)

  ### Examples
  ```
  status:(won,lost)
  name:~Teste
  value:>1000 and value:<5000
  @setor:tecnologia
  ```

  ## Rate Limits

  The RD Station CRM API has a rate limit of **120 requests per minute** per token. The node will automatically handle rate limit errors.

  ## Error Handling

  The node provides detailed error messages for:
  - Authentication failures (401)
  - Rate limit exceeded (429)
  - Invalid requests (400, 422)
  - Resource not found (404)
  - Server errors (500)

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **RD Station API**: v2

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [RD Station CRM API v2 Documentation](https://developers.rdstation.com/reference/crm-v2-introduction)
  - [RD Station App Publisher](https://app.rdstation.com.br/apps)

  ## License

  MIT

  ## Support

  For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/n8n-io/n8n-nodes-starter).

ai_documentation_summary:
  {"purpose":"The RdstationCrm node enables n8n users to interact with RD Station CRM API v2, allowing full CRUD operations on CRM resources such as Deals, Contacts, Organizations, and more, with support for advanced filtering via RDQL and pagination.","capabilities":["OAuth2 authentication via Authorization Code flow with automatic token refresh","Support for 18 CRM resources including Deals, Contacts, Organizations, Products, Tasks, Webhooks, and more","CRUD operations (Create, Read, Update, Delete) for all supported resources","Advanced filtering using RDQL (RD Station Query Language) with operators like equality, comparison, pattern matching, and logical conditions","Built-in pagination for handling large result sets","Raw request mode for custom API endpoints and methods (GET, POST, PUT, PATCH, DELETE)","Comprehensive error handling with detailed messages for common HTTP errors (400, 401, 404, 429, 500)","Automatic rate limit handling (120 requests per minute per token)"],"authentication":"OAuth2 (Authorization Code flow with refresh tokens) using Client ID and Client Secret from RD Station App Publisher","commonUseCases":["Fetching and filtering a list of deals by status or value","Creating new contacts or deals with custom fields","Updating existing records such as task statuses or deal values","Deleting records where applicable","Querying data with complex RDQL filters (e.g., status in a range, name pattern matching)"],"limitations":["Rate limit of 120 requests per minute per token; may require throttling in high-volume workflows","No support for RD Station's legacy or v1 API","RDQL syntax is specific to RD Station and may require familiarity with its query language","OAuth2 refresh tokens expire after 14 days of inactivity (rolling tokens), which may impact long-term stability in some setups"],"relatedNodes":["n8n core nodes for data transformation","n8n nodes for data filtering or pagination","n8n nodes with OAuth2 authentication"]}


node_type: n8n-nodes-browser-smart-automation.BrowserSmartAutomation
package_name: n8n-nodes-browser-smart-automation
display_name: BrowserSmartAutomation
description: n8n nodes for Smart Browser Automation via MCP
category: Community
development_style: declarative
version: 0.1.30
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: ejazdoinger
npm_package_name: n8n-nodes-browser-smart-automation
npm_version: 0.1.30
community_fetched_at: 2026-01-07T20:08:17.615Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n Nodes — Browser Smart Automation ⚡

  **n8n-nodes-browser-smart-automation** — n8n nodes for Smart Browser Automation via MCP.

  ---

  ## 🚀 Quick Start

  Prerequisites:

  - Node.js (>= 18)
  - npm

  Install dependencies:

  ```bash
  npm install
  ```

  Build the nodes:

  ```bash
  npm run build
  ```

  Run tests:

  ```bash
  npm test
  ```

  Lint the code:

  ```bash
  npm run lint
  ```

  For development (watch TypeScript):

  ```bash
  npm run dev
  ```

  ---

  ## 📁 Project Structure

  Top-level:

  - `nodes/` — TypeScript source for each n8n node group
    - `McpClientEX/` — client node
    - `McpClientToolEX/` — tool node
    - `McpTriggerEX/` — trigger node
    - `shared/` — shared utilities, types and helpers
  - `dist/` — built artifacts (included in `files` for publishing)
  - `package.json` — scripts and metadata
  - `tsconfig.json`, `tsup.config.ts`, `jest.config.js`, `gulpfile.js`

  ---

  ## 🧩 Included Nodes

  - `McpClientEX` — core MCP client integration
  - `McpClientToolEX` — helper tool utilities for MCP
  - `McpTriggerEX` — trigger node for MCP events

  After building, the compiled nodes are available under `dist/` and referenced in `package.json` for n8n consumption.

  ---

  ## ⚙️ Usage

  Install and build the project, then copy the `dist` folder into your n8n custom nodes directory, or publish the package to npm and install it into your n8n instance. Restart n8n after adding new nodes.

  If you want to run a single node's tests:

  ```bash
  npx jest nodes/McpClientEX --runInBand
  ```

  ---

  ## 🛠 Development Notes

  - Building: `npm run build` (uses `tsup`).
  - Tests: `npm test` (uses `jest`).
  - Linting: `npm run lint` (eslint over `nodes/`).

  Tips:
  - Keep shared code in `nodes/shared/` and add tests in `__test__` folders next to the code.
  - Use `tsc --watch` (via `npm run dev`) for fast iteration on types.

  ---

  ## 🤝 Contributing

  Contributions are welcome. Please:

  1. Create an issue describing the change or feature.
  2. Open a branch with a descriptive name.
  3. Add tests for new behavior and ensure all tests pass.
  4. Create a pull request and reference the issue.

  ---

  ## 📜 License

  This project is licensed under the **MIT License** — see `package.json` for details.

  ---

  > If you want, I can add CI instructions, badges, or a contributing checklist next. 💡

ai_documentation_summary:
  {"purpose":"The BrowserSmartAutomation node package provides n8n integration for Smart Browser Automation via MCP, offering core client, tool, and trigger nodes to interact with MCP services in workflows.","capabilities":["McpClientEX: Core MCP client integration for browser automation","McpClientToolEX: Utility tools for MCP operations","McpTriggerEX: Trigger node to respond to MCP events"],"authentication":"Not explicitly mentioned in the README; authentication method depends on MCP service requirements and is not handled by this node package.","commonUseCases":["Automating browser interactions using MCP services","Triggering workflows based on MCP events","Performing browser-based tasks via MCP tools in n8n workflows"],"limitations":[],"relatedNodes":["McpClientEX","McpClientToolEX","McpTriggerEX"]}


node_type: n8n-nodes-imap-dynamic.ImapDynamic
package_name: n8n-nodes-imap-dynamic
display_name: ImapDynamic
description: IMAP node with dynamic credentials for multi-user workflows
category: Community
development_style: declarative
version: 1.1.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: ronatory
npm_package_name: n8n-nodes-imap-dynamic
npm_version: 1.1.5
community_fetched_at: 2026-01-07T20:08:17.615Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  > ⚠️ **Security Notice / Fork Disclaimer**
  >
  > This IMAP node is a **modified fork** of  
  > <https://github.com/umanamente/n8n-nodes-imap>.
  >
  > Unlike the original node, this fork allows you to pass **email address and password as plain-text fields (variables)** inside the workflow, e.g. from an n8n Data Table.  
  > This makes it possible to support **multiple user accounts dynamically** without creating a separate n8n credential and node per user – the data table acts as a **single point of truth**.
  >
  > **Important:** This introduces additional **security risks**, because credentials are handled in clear text at workflow level.  
  > This fork is intended **only for self-hosted, private setups** where this trade-off is understood and accepted.  
  > Do **not** use it in untrusted, shared, or externally managed environments.

  # <img src="nodes/Imap/node-imap-icon.svg"  height="40"> <img src="https://gist.githubusercontent.com/umanamente/3aec0274e0d5f029ab76a16627825c67/raw/n8n-nodes-imap-coverage-badge.svg" align="right"> n8n-nodes-imap

  This is an n8n community node that adds support for [IMAP](https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol) email servers.

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Troubleshooting & Debug](#troubleshooting--debug)
  - [Version history](CHANGELOG.md)
  - **For Developers**: [Contributing Guide](CONTRIBUTING.md) | [Developer Quick Start](DEVELOPER.md)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  Use `n8n-nodes-imap` in N8N settings to install the stable version.

  To install beta version, use `n8n-nodes-imap@beta`.

  NPMJS: [n8n-nodes-imap](https://www.npmjs.com/package/n8n-nodes-imap)

  ## Operations

  - Mailbox
    - Get list of mailboxes (including status information like number of messages)
    - Get status of a mailbox (number of messages, etc.)
    - Create a mailbox
    - Rename a mailbox
    - ~Delete a mailbox~ (disabled due to danger of accidental data loss and no apparent use case)
  - Email
    - Get list of emails in a mailbox
    - Download attachments from an email
    - Permanently delete an email from a mailbox
    - Move an email to another mailbox
    - Copy an email into another mailbox
    - Set/remove flags on an email ("seen", "answered", "flagged", "deleted", "draft")
    - Create email draft in a mailbox
      - Use `n8n-nodes-eml` node to create complex emails. It supports attachments and other features.

  ## Credentials

  Currently, this node supports only basic authentication (username and password).  
  OAuth2 authentication is not supported yet.

  > NOTE: You can reuse core [N8N IMAP Trigger node](https://docs.n8n.io/integrations/builtin/credentials/imap/) credentials for this node.

  ## Troubleshooting & Debug

  If you encounter issues with the IMAP node, you can enable debug mode to get detailed logs and diagnostic information:

  ### Enable Debug Mode

  Set the following environment variable before starting n8n:

  ```bash
  N8N_NODES_DEBUG_ENABLED=true
  ```

  When debug mode is enabled:

  - The IMAP node will create an additional **"debug"** output containing detailed logs
  - Enhanced error messages and diagnostic information will be available
  - Connection and operation details will be logged for troubleshooting

  ### Getting Debug Information

  1. **Set environment variables**:

     ```bash
     N8N_LOG_LEVEL=debug
     N8N_NODES_DEBUG_ENABLED=true
     ```

  2. **Restart your n8n instance**

  3. **Execute your workflow** - the IMAP node will now provide debug output

  4. **Check the debug output** - connect the debug output to a Set node or similar to view the diagnostic information

  ### Reporting Issues

  When reporting bugs or issues:

  - Always enable debug mode first
  - Include the debug output in your issue report
  - Remove any sensitive information (passwords, email addresses, etc.) from logs
  - Use our [issue templates](.github/ISSUE_TEMPLATE/) for structured bug reports

ai_documentation_summary:
  {"purpose":"An IMAP node that enables dynamic email operations across multiple user accounts by allowing email credentials (username and password) to be passed as plain-text variables in workflows, such as from a data table, enabling multi-user support without requiring separate credentials or nodes for each user.","capabilities":["Get list of mailboxes with status (e.g., message count)","Get mailbox status","Create a mailbox","Rename a mailbox","Get list of emails in a mailbox","Download email attachments","Permanently delete an email","Move an email to another mailbox","Copy an email to another mailbox","Set or remove email flags (seen, answered, flagged, deleted, draft)"],"authentication":"Basic authentication (username and password) only. Credentials are passed as plain text in workflow variables, not stored in n8n credentials. OAuth2 is not supported.","commonUseCases":["Managing multiple email accounts dynamically using a data table","Automated email processing workflows with different user accounts","Email archiving, filtering, or forwarding across multiple users","Integration with data tables to dynamically assign emails to users"],"limitations":["Credentials are stored in plain text in workflows, introducing significant security risks","Not suitable for shared, public, or untrusted environments","Only supports basic authentication; no OAuth2 support","Deleting mailboxes is disabled due to data loss risks","No support for encrypted or secure credential storage"],"relatedNodes":["n8n-nodes-eml (for creating complex emails with attachments)","n8n-nodes-imap (core IMAP trigger node for credential reuse)"]}


node_type: n8n-nodes-grok.Grok
package_name: n8n-nodes-grok
display_name: Grok
description: n8n node for Grok API integration
category: Community
development_style: declarative
version: 0.0.20
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: jvkassi
author_github_url: git+https://github.com/jvkassi/n8n-nodes-grok.git
npm_package_name: n8n-nodes-grok
npm_version: 0.0.20
community_fetched_at: 2026-01-07T20:08:17.616Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-grok

  This is an n8n community node for Grok API integration. It allows you to interact with various AI models through the Grok platform directly from your n8n workflows.

  [![Follow on X](https://img.shields.io/twitter/follow/matthewsabia?style=social&logo=twitter)](https://x.com/matthewsabia)

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Grok](https://grok.ai/) is a platform that provides access to various AI models through a unified API.

  ## Features

  - Interact with multiple AI models through a single node
  - Send chat messages to AI models
  - Customize model parameters such as temperature, max tokens, frequency penalty, and presence penalty
  - View truncated model descriptions and pricing information in the model selector
  - Easy integration with n8n workflows

  ## Installation

  ### Community Node (Recommended)

  To install this node as a community node in n8n, follow these steps:

  1. Open your n8n instance
  2. Go to "Settings" > "Community Nodes"
  3. Select "Install"
  4. Enter `n8n-nodes-grok` in the "Enter npm package name" field
  5. Agree to the risks of using community nodes (if prompted)
  6. Click "Install"

  After installation, the node will be available in the "Grok" category in the node palette.

  ### Manual Installation (Advanced)

  If you prefer manual installation or are using a custom n8n setup:

  1. Open your n8n installation directory
  2. Navigate to the `nodes` subdirectory
  3. Run the following command:
     ```
     npm install n8n-nodes-grok
     ```
  4. Restart your n8n instance

  **Note:** If you're using Docker or a server deployment, you may need to rebuild your container or restart your server for the changes to take effect.

  ### Troubleshooting

  If you encounter issues with the node not updating to new versions correctly or not displaying changes inside n8n, try the following:

  1. Clear your browser cache
  2. Restart your n8n instance
  3. If using Docker, rebuild and restart your container:
     ```
     docker-compose down
     docker-compose build
     docker-compose up -d
     ```
  4. For server deployments, restart the n8n service:
     ```
     sudo systemctl restart n8n
     ```

  ## Usage

  1. Add the Grok node to your workflow
  2. Configure the Grok API credentials (see Configuration section)
  3. Select the desired operation (currently only 'Chat' is available)
  4. Choose an AI model from the dropdown list
  5. (Optional) Provide a system prompt to set the behavior of the AI
  6. Enter your message
  7. Adjust additional parameters as needed (temperature, max tokens, etc.)
  8. Execute the node to receive the AI's response

  ## Model Selection

  The model selector provides truncated descriptions of each available model along with pricing information. The pricing is displayed as cost per 1 million tokens for both prompt and completion. This allows you to make informed decisions about which model to use based on capabilities and cost.

  ## Configuration

  ### Grok API Credentials

  To use this node, you need to set up Grok API credentials:

  1. Sign up for an account at [Grok](https://grok.ai/)
  2. Generate an API key in your Grok dashboard
  3. In n8n, create a new credential of type 'Grok API'
  4. Enter your API key

  ### Node Parameters

  - **Operation**: Currently, only 'Chat' is available
  - **Model**: Select the AI model you want to use
  - **System Prompt**: (Optional) Set the behavior or role of the AI assistant
  - **Message**: The user's input message to the AI
  - **Temperature**: Controls the randomness of the AI's output (0.0 to 1.0)
  - **Additional Fields**: 
    - **Frequency Penalty**: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far.
    - **Max Tokens**: The maximum number of tokens to generate in the chat completion.
    - **Presence Penalty**: Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far.
    - **Top P**: An alternative to sampling with temperature, called nucleus sampling. Top_p of 0.1 means only the tokens comprising the top 10% probability mass are considered.

  ## Examples

  ### Basic Chat Workflow

  1. Add a "Manual" trigger node
  2. Connect an Grok node
  3. Configure the Grok node:
     - Operation: Chat
     - Model: Choose a model (e.g., "gpt-3.5-turbo")
     - Message: "Hello, can you explain what n8n is?"
  4. Execute the workflow
  5. The Grok node will return the AI's response explaining n8n

  ### Dynamic System Prompt

  1. Start with a "Manual" trigger node
  2. Add a "Set" node to define a variable for the system prompt
  3. Connect an Grok node
  4. Configure the Grok node:
     - Operation: Chat
     - Model: Choose a model
     - System Prompt: {{$node["Set"].json["systemPrompt"]}}
     - Message: "What's your primary function?"
  5. Execute the workflow
  6. The AI will respond based on the system prompt set in the "Set" node

  ## Support

  If you encounter any issues or have questions about this node, please [open an issue](https://github.com/jvkassi/n8n-nodes-grok/issues) on the GitHub repository.

  ## Contributing

  Contributions to improve this node are welcome. Please follow these steps:

  1. Fork the repository
  2. Create a new branch for your feature
  3. Commit your changes
  4. Push to the branch
  5. Create a new Pull Request

  ## License

  This project is licensed under the [MIT License](LICENSE.md).

  ## About n8n
  n8n is a free and open [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation tool. It can be self-hosted, easily extended, and used to automate workflows across various services and applications. n8n enables you to connect anything to everything.

  ## About Grok
  Grok is a platform that provides a unified API to access various AI models. It allows developers to integrate multiple AI services into their applications without managing separate API integrations for each model provider. Grok supports a wide range of models from different providers, making it easier to experiment with and deploy various AI capabilities in your workflows.

  ## Changelog

  ### 0.3.36
  - Added truncated model descriptions in the model selector
  - Included pricing information (cost per 1M tokens) for each model
  - Updated default temperature to 0.9
  - Various bug fixes and performance improvements

  For a full list of changes, please refer to the [CHANGELOG.md](CHANGELOG.md) file.

ai_documentation_summary:
  {"purpose":"The Grok node enables integration with the Grok AI platform, allowing users to send chat messages to various AI models and receive responses directly within n8n workflows.","capabilities":["Send chat messages to AI models","Select from multiple AI models with model-specific descriptions and pricing","Customize AI behavior using system prompts","Adjust generation parameters such as temperature, max tokens, frequency penalty, presence penalty, and top-p","View model pricing (cost per million tokens for prompt and completion)"],"authentication":"API key required","commonUseCases":["Generating AI-powered responses to user queries","Dynamic AI assistant behavior via system prompts","Cost-aware model selection based on token pricing","Automating customer support or content generation workflows"],"limitations":["Only the 'Chat' operation is currently available","Model descriptions are truncated in the selector","No support for other operations or model types beyond those listed"],"relatedNodes":["Manual Trigger","Set Node","Function Node"]}


node_type: n8n-nodes-mauzapi.Mauzapi
package_name: n8n-nodes-mauzapi
display_name: Mauzapi
description: Nó customizado para integração com UazAPI no n8n
category: Community
development_style: declarative
version: 0.1.23
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: mayron-azevedo
npm_package_name: n8n-nodes-mauzapi
npm_version: 0.1.23
community_fetched_at: 2026-01-07T20:08:17.617Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-starter

  This starter repository helps you build custom integrations for [n8n](https://n8n.io). It includes example nodes, credentials, the node linter, and all the tooling you need to get started.

  ## Quick Start

  > [!TIP]
  > **New to building n8n nodes?** The fastest way to get started is with `npm create @n8n/node`. This command scaffolds a complete node package for you using the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli).

  **To create a new node package from scratch:**

  ```bash
  npm create @n8n/node
  ```

  **Already using this starter? Start developing with:**

  ```bash
  npm run dev
  ```

  This starts n8n with your nodes loaded and hot reload enabled.

  ## What's Included

  This starter repository includes two example nodes to learn from:

  - **[Example Node](nodes/Example/)** - A simple starter node that shows the basic structure with a custom `execute` method
  - **[GitHub Issues Node](nodes/GithubIssues/)** - A complete, production-ready example built using the **declarative style**:
    - **Low-code approach** - Define operations declaratively without writing request logic
    - Multiple resources (Issues, Comments)
    - Multiple operations (Get, Get All, Create)
    - Two authentication methods (OAuth2 and Personal Access Token)
    - List search functionality for dynamic dropdowns
    - Proper error handling and typing
    - Ideal for HTTP API-based integrations

  > [!TIP]
  > The declarative/low-code style (used in GitHub Issues) is the recommended approach for building nodes that interact with HTTP APIs. It significantly reduces boilerplate code and handles requests automatically.

  Browse these examples to understand both approaches, then modify them or create your own.

  ## Finding Inspiration

  Looking for more examples? Check out these resources:

  - **[npm Community Nodes](https://www.npmjs.com/search?q=keywords:n8n-community-node-package)** - Browse thousands of community-built nodes on npm using the `n8n-community-node-package` tag
  - **[n8n Built-in Nodes](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/nodes)** - Study the source code of n8n's official nodes for production-ready patterns and best practices
  - **[n8n Credentials](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/credentials)** - See how authentication is implemented for various services

  These are excellent resources to understand how to structure your nodes, handle different API patterns, and implement advanced features.

  ## Prerequisites

  Before you begin, install the following on your development machine:

  ### Required

  - **[Node.js](https://nodejs.org/)** (v22 or higher) and npm
    - Linux/Mac/WSL: Install via [nvm](https://github.com/nvm-sh/nvm)
    - Windows: Follow [Microsoft's NodeJS guide](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows)
  - **[git](https://git-scm.com/downloads)**

  ### Recommended

  - Follow n8n's [development environment setup guide](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/)

  > [!NOTE]
  > The `@n8n/node-cli` is included as a dev dependency and will be installed automatically when you run `npm install`. The CLI includes n8n for local development, so you don't need to install n8n globally.

  ## Getting Started with this Starter

  Follow these steps to create your own n8n community node package:

  ### 1. Create Your Repository

  [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template, then clone it:

  ```bash
  git clone https://github.com/<your-organization>/<your-repo-name>.git
  cd <your-repo-name>
  ```

  ### 2. Install Dependencies

  ```bash
  npm install
  ```

  This installs all required dependencies including the `@n8n/node-cli`.

  ### 3. Explore the Examples

  Browse the example nodes in [nodes/](nodes/) and [credentials/](credentials/) to understand the structure:

  - Start with [nodes/Example/](nodes/Example/) for a basic node
  - Study [nodes/GithubIssues/](nodes/GithubIssues/) for a real-world implementation

  ### 4. Build Your Node

  Edit the example nodes to fit your use case, or create new node files by copying the structure from [nodes/Example/](nodes/Example/).

  > [!TIP]
  > If you want to scaffold a completely new node package, use `npm create @n8n/node` to start fresh with the CLI's interactive generator.

  ### 5. Configure Your Package

  Update `package.json` with your details:

  - `name` - Your package name (must start with `n8n-nodes-`)
  - `author` - Your name and email
  - `repository` - Your repository URL
  - `description` - What your node does

  Make sure your node is registered in the `n8n.nodes` array.

  ### 6. Develop and Test Locally

  Start n8n with your node loaded:

  ```bash
  npm run dev
  ```

  This command runs `n8n-node dev` which:

  - Builds your node with watch mode
  - Starts n8n with your node available
  - Automatically rebuilds when you make changes
  - Opens n8n in your browser (usually http://localhost:5678)

  You can now test your node in n8n workflows!

  > [!NOTE]
  > Learn more about CLI commands in the [@n8n/node-cli documentation](https://www.npmjs.com/package/@n8n/node-cli).

  ### 7. Lint Your Code

  Check for errors:

  ```bash
  npm run lint
  ```

  Auto-fix issues when possible:

  ```bash
  npm run lint:fix
  ```

  ### 8. Build for Production

  When ready to publish:

  ```bash
  npm run build
  ```

  This compiles your TypeScript code to the `dist/` folder.

  ### 9. Prepare for Publishing

  Before publishing:

  1. **Update documentation**: Replace this README with your node's documentation. Use [README_TEMPLATE.md](README_TEMPLATE.md) as a starting point.
  2. **Update the LICENSE**: Add your details to the [LICENSE](LICENSE.md) file.
  3. **Test thoroughly**: Ensure your node works in different scenarios.

  ### 10. Publish to npm

  Publish your package to make it available to the n8n community:

  ```bash
  npm publish
  ```

  Learn more about [publishing to npm](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  ### 11. Submit for Verification (Optional)

  Get your node verified for n8n Cloud:

  1. Ensure your node meets the [requirements](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/):
     - Uses MIT license ✅ (included in this starter)
     - No external package dependencies
     - Follows n8n's design guidelines
     - Passes quality and security review

  2. Submit through the [n8n Creator Portal](https://creators.n8n.io/nodes)

  **Benefits of verification:**

  - Available directly in n8n Cloud
  - Discoverable in the n8n nodes panel
  - Verified badge for quality assurance
  - Increased visibility in the n8n community

  ## Available Scripts

  This starter includes several npm scripts to streamline development:

  | Script                | Description                                                      |
  | --------------------- | ---------------------------------------------------------------- |
  | `npm run dev`         | Start n8n with your node and watch for changes (runs `n8n-node dev`) |
  | `npm run build`       | Compile TypeScript to JavaScript for production (runs `n8n-node build`) |
  | `npm run build:watch` | Build in watch mode (auto-rebuild on changes)                    |
  | `npm run lint`        | Check your code for errors and style issues (runs `n8n-node lint`) |
  | `npm run lint:fix`    | Automatically fix linting issues when possible (runs `n8n-node lint --fix`) |
  | `npm run release`     | Create a new release (runs `n8n-node release`)                   |

  > [!TIP]
  > These scripts use the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli) under the hood. You can also run CLI commands directly, e.g., `npx n8n-node dev`.

  ## Troubleshooting

  ### My node doesn't appear in n8n

  1. Make sure you ran `npm install` to install dependencies
  2. Check that your node is listed in `package.json` under `n8n.nodes`
  3. Restart the dev server with `npm run dev`
  4. Check the console for any error messages

  ### Linting errors

  Run `npm run lint:fix` to automatically fix most common issues. For remaining errors, check the [n8n node development guidelines](https://docs.n8n.io/integrations/creating-nodes/).

  ### TypeScript errors

  Make sure you're using Node.js v22 or higher and have run `npm install` to get all type definitions.

  ## Resources

  - **[n8n Node Documentation](https://docs.n8n.io/integrations/creating-nodes/)** - Complete guide to building nodes
  - **[n8n Community Forum](https://community.n8n.io/)** - Get help and share your nodes
  - **[@n8n/node-cli Documentation](https://www.npmjs.com/package/@n8n/node-cli)** - CLI tool reference
  - **[n8n Creator Portal](https://creators.n8n.io/nodes)** - Submit your node for verification
  - **[Submit Community Nodes Guide](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/)** - Verification requirements and process

  ## Contributing

  Have suggestions for improving this starter? [Open an issue](https://github.com/n8n-io/n8n-nodes-starter/issues) or submit a pull request!

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"A custom node for integrating with the UazAPI service within n8n workflows.","capabilities":["Connects to UazAPI for data integration","Supports API-based operations (specific functionality not detailed in README)","Configurable through n8n's node interface"],"authentication":"Not specified in README; likely requires API key or OAuth as per common patterns, but not explicitly stated","commonUseCases":["Fetching or sending data to/from UazAPI","Automating business processes involving UazAPI services","Syncing data between n8n and UazAPI endpoints"],"limitations":["No detailed functionality or operation list provided in README","No information on supported endpoints, operations, or error handling","Authentication method not clearly defined"],"relatedNodes":["n8n-nodes-base","GitHub Issues Node (as a reference for declarative structure)","HTTP Request Node"]}


node_type: n8n-nodes-discord-trigger.DiscordTrigger
package_name: n8n-nodes-discord-trigger
display_name: DiscordTrigger
description: A node that triggers a workflow whenever a message from discord is sent.
category: Community
development_style: declarative
version: 0.8.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: katerlol
author_github_url: git+https://github.com/katerlol/n8n-discord-trigger.git
npm_package_name: n8n-nodes-discord-trigger
npm_version: 0.8.0
community_fetched_at: 2026-01-07T20:08:17.617Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-discord-trigger

  ![n8n.io - Workflow Automation](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png)

  [n8n](https://www.n8n.io) nodes to trigger workflows from Discord messages.


  This node utilizes a Discord bot to transmit or receive data from child processes when a node is executed.


  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Bot Setup](#bot-setup)  
  [Operations](#operations)  
  [Credentials](#credentials)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Version history](#version-history)  <!-- delete if not using this section -->  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.


  ## Bot Setup

  To send, listen to messages, or fetch the list of channels or roles, you need to set up a bot using the [Discord Developer Portal](https://discord.com/developers/applications).

  1. Create a new application and set it up as a bot.
  2. Enable the **Privileged Gateway Intents** for Message Intent.
  3. Add the bot to your server with at least **read channel permissions**.



  ## Operations

  With this node, you can:
  - Listen to Discord chat messages (both server messages and direct messages).
  - React to messages with specific patterns or triggers.
  - Fetch lists of channels and roles.



  ## Credentials

  You need to authenticate the node with the following credentials:
  - **Client ID**: The OAuth2 client ID of the Discord App.
  - **Bot Token**: The bot token of the Discord App.
  - **n8n API Key**: The API key of your n8n server.
  - **Base URL**: The API URL of your n8n instance (e.g., `https://n8n.example.com/api/v1`).

  Refer to the [official n8n documentation](https://docs.n8n.io/) for more details.


  ## Compatibility

  - Tested on n8n version 1.75.2
  (coming soon)


  ## Usage

  To use this node:
  1. Install it as a community node in your n8n instance.
  2. Configure the required credentials.
  3. Set up triggers for Discord messages based on your use case.

  For more help on setting up n8n workflows, check the [Try it out documentation](https://docs.n8n.io/try-it-out/).


  ## Version history

  - **v0.8.0**: Add GuildMemberUpdate trigger, add option to rename confirm button choices.
  - **v0.7.0**: Add multiclient support. Multiple credentials across multiple workflows are now possible.
  - **v0.6.0**: Add direct message support (Thank you [Fank](https://github.com/Fank)) 
  - **v0.5.1**: Add additional timeout field for confirmation message
  - **v0.5.0**: Add a reaction trigger on messages, add attachments to message
  - **v0.4.0**: Introduce additional trigger options, such as User joins guild, User leaves guild, Role created, Role deleted or Role updated. 
  - **v0.3.2**: Update for multiple simultaneous trigger nodes with one bot.
  - **v0.3.1**: Added additional option to trigger node to trigger on other bot messages
  - **v0.3.0**: Added option to require a reference message in order to trigger the node. Enhance interaction node with a confirmation node
  - **v0.2.9**: Bug fix, where a message won't trigger when multiple trigger nodes are included.
  - **v0.2.8**: Multiple trigger nodes are now supported.
  - **v0.2.7**: A second node Discord Interaction is added to send a message with the same credentials. Additionally roles of users can be added or removed based on interaction.
  - **v0.1.5**: Initial release with message triggers and channel/role fetching capabilities.

ai_documentation_summary:
  {"purpose":"The DiscordTrigger node listens for Discord messages (including server and direct messages) and triggers n8n workflows when specific conditions are met, such as message content, reactions, or channel/role changes.","capabilities":["Listen to chat messages in servers and direct messages","React to messages with specific patterns or triggers","Fetch lists of channels and roles","Trigger on user joining/leaving a guild or role changes","Trigger on message reactions","Support for direct messages","Support for multiple trigger nodes with one bot","Require a reference message to trigger a node","Send messages via interaction (e.g., confirm actions, manage roles)","Handle message attachments"],"authentication":"API key required: Client ID, Bot Token, n8n API Key, and Base URL are needed for authentication.","commonUseCases":["Automate responses to specific messages in a Discord server","Trigger workflows when users join or leave a server","React to messages with specific emojis or keywords","Manage user roles via interaction-based triggers","Monitor direct messages for alerts or requests"],"limitations":["Requires privileged gateway intents (Message Intent) to be enabled","Bot must be added to the server with at least read channel permissions","Limited to n8n version 1.75.2 (as tested)","No support for message editing or deletion triggers"],"relatedNodes":["DiscordAction","Interaction Node","Confirmation Node"]}


node_type: @fresent/n8n-nodes-tiktok.Tiktok
package_name: @fresent/n8n-nodes-tiktok
display_name: Tiktok
description: n8n nodes for implementation for TikTok API
category: Community
development_style: declarative
version: 0.1.18
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: fresentllc
author_github_url: git+https://github.com/fresent/n8n-nodes-tiktok.git
npm_package_name: @fresent/n8n-nodes-tiktok
npm_version: 0.1.18
community_fetched_at: 2026-01-07T20:08:17.618Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-tiktok

  This is an n8n community node that lets you use TikTok in your n8n workflows.

  TikTok is a popular social media platform for creating, sharing, and discovering short videos. The TikTok Content Posting API allows developers to automate the process of posting content to TikTok directly from their applications.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  
  [Version history](#version-history)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  The TikTok node supports the following operations:
  - **Video Post**: Upload or delete a video to/from TikTok.
  - **Photo Post**: Upload a photo to TikTok.

  ## Credentials

  To use this node, you need to authenticate with TikTok via OAuth2.  
  1. Create a TikTok Developer account and register an app.
  2. Add the **Content Posting API** product to your app.
  3. Obtain the required OAuth2 credentials for the app and configure them in n8n.
  4. Ensure your app has been approved for the `video.upload` and `video.publish` scopes.

  For detailed instructions on obtaining the credentials, refer to the [TikTok API Documentation](https://developers.tiktok.com/doc/oauth-user-access-token-management).

  ## Compatibility

  - Minimum n8n version: 0.154.0
  - Tested against TikTok API versions from 2023.

  No known incompatibility issues at this time.

  ## Usage

  This node allows you to automate content posting to TikTok by uploading videos or photos directly to TikTok via the Content Posting API. You can configure your workflows to handle uploads, drafts, or deletion of content programmatically.

  For new users, check out the [Try it out](https://docs.n8n.io/try-it-out/) guide for general n8n workflow usage.

  ## Dev Usage
  To link to a local n8n instance: (if dev workspace is ~/work/ )
  pnpm link ~/work/n8n-nodes-tiktok/

  To publish a new release:
  pnpm publish  --access public

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [TikTok API Documentation](https://developers.tiktok.com/doc/content-posting-api-get-started)

  ## Version history

  - **1.0.0**: Initial release with support for uploading and deleting TikTok videos and uploading photos.

ai_documentation_summary:
  {"purpose":"The TikTok node enables automation of content posting to TikTok by allowing users to upload videos or photos via the TikTok Content Posting API, and also supports deleting videos.","capabilities":["Upload a video to TikTok","Delete a video from TikTok","Upload a photo to TikTok"],"authentication":"OAuth2 authentication required. Users must create a TikTok Developer app, add the Content Posting API product, obtain OAuth2 credentials, and grant scopes for video.upload and video.publish.","commonUseCases":["Automating social media content posting schedules","Batch uploading of videos or photos to TikTok","Managing content drafts and deletions in workflows"],"limitations":[],"relatedNodes":["Social Media Nodes","Content Automation Nodes"]}


node_type: n8n-nodes-ai-image-gen.AiImageGen
package_name: n8n-nodes-ai-image-gen
display_name: AiImageGen
description: n8n node to generate images from Bing. Special thanks to https://github.com/nociza/Bimg
category: Community
development_style: declarative
version: 0.1.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: unixson
author_github_url: git+https://github.com/steveunixson/n8n-nodes-ai-image-gen.git
npm_package_name: n8n-nodes-ai-image-gen
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:17.619Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-starter

  This repo contains example nodes to help you get started building your own custom integrations for [n8n](n8n.io). It includes the node linter and other dependencies.

  To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  A npm package of reverse-engineered Bing Image Creator API. Courtesy of [Bing Image Search API](https://www.microsoft.com/cognitive-services/en-us/bing-image-search-api) and [EdgeGPT](https://github.com/acheong08/EdgeGPT) by [acheong08](https://github.com/acheong08).

  ## Prerequisites

  ### Set environment variables
  You need access to [Bing Image Creator](https://www.bing.com/create) or a valid cookie from someone who has access.

  The cookie you need from Bing is the _U cookie, this could be aquired using a [chrome-extension](https://chrome.google.com/webstore/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc) or by using the [Network tab](https://developers.google.com/web/tools/chrome-devtools/network/) in Chrome DevTools.

  You need the following installed on your development machine:

  * [git](https://git-scm.com/downloads)
  * Node.js and npm. Minimum version Node 16. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
  * Install n8n with:
  	```
  	npm install n8n -g
  	```
  * Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).


  ## Using this starter

  These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

  1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
  2. Clone your new repo:
      ```
      git clone https://github.com/<your organization>/<your-repo-name>.git
      ```
  3. Run `npm i` to install dependencies.
  4. Open the project in your editor.
  5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
  6. Update the `package.json` to match your details.
  7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
  8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
  9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
  10. Update the LICENSE file to use your details.
  11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

  ## More information

  Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"The AiImageGen node generates images using Bing's Image Creator API by leveraging a user's cookie (specifically the _U cookie) to authenticate and create images from text prompts.","capabilities":["Generate images from text prompts using Bing Image Creator","Supports image generation via reverse-engineered Bing API","Requires user-provided cookie authentication for access"],"authentication":"API key or cookie authentication required; specifically the '_U' cookie from a user with access to Bing Image Creator (acquired via Chrome DevTools or extensions)","commonUseCases":["Creating visual content from text descriptions","Automating image generation for content marketing or design workflows","Integrating with n8n workflows that require AI-generated visuals"],"limitations":["Depends on user having access to Bing Image Creator and valid cookie","No official API support; relies on reverse-engineered functionality","Limited to prompts that are supported by Bing's Image Creator service","No built-in image quality or size controls mentioned in documentation"],"relatedNodes":["Image Generation Nodes","AI-Powered Nodes","Bing API Integration Nodes"]}


node_type: @maxzhang666/n8n-nodes-sau.Sau
package_name: @maxzhang666/n8n-nodes-sau
display_name: Sau
description: n8n community node for Xiaohongshu (小红书) API integration
category: Community
development_style: declarative
version: 0.1.16
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: maxzhang666
author_github_url: git+https://github.com/maxzhang666/n8n-nodes-sau.git
npm_package_name: @maxzhang666/n8n-nodes-sau
npm_version: 0.1.16
community_fetched_at: 2026-01-07T20:08:17.619Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # @maxzhang666/n8n-nodes-sau

  这是一个n8n社区节点，让你可以在n8n工作流中使用小红书(Xiaohongshu) API。


  ## 功能

  ### 笔记操作
  - **发布笔记** - 发布一篇小红书笔记（支持图片和视频）
  - **搜索笔记** - 根据关键词搜索小红书笔记
  - **笔记互动** - 对指定笔记进行点赞、收藏、评论等操作
  - **获取互动统计数据** - 获取笔记的点赞、收藏、评论数据
  - **获取图片资源** - 获取笔记中的图片资源链接
  - **获取视频资源** - 获取笔记中的视频资源链接
  - **获取笔记基础信息** - 获取笔记的基础内容信息

  ### 用户操作
  - **搜索用户** - 搜索小红书平台的用户
  - **获取用户笔记** - 获取指定用户发布的笔记列表

  ### 登录操作
  - **获取登录二维码** - 获取登录用的二维码
  - **二维码登录** - 执行二维码登录

  ## 凭证

  使用此节点需要依赖一个SAU服务：

  ### API 配置

  1. **API Key**: 用于认证的 API 密钥
  2. **Domain**: API 服务地址
     - 格式：`http://ip:端口`
     - 如果 n8n 和 API 服务在同一个 Docker 容器内，通常使用：`http://host.docker.internal:端口`
     - 本地测试可以使用：`http://localhost:3000`

  ### 配置步骤

  1. 在 n8n 中，转到"凭证" > "新增"
  2. 搜索"Xiaohongshu API"
  3. 输入你的 API Key
  4. 输入你的 API 服务地址
  5. 点击"测试连接"验证配置
  6. 保存凭证

  ## 兼容性

  兼容 n8n@1.60.0 或更高版本

  ## 使用

  ### 示例：发布笔记

  1. 添加"Xiaohongshu"节点到你的工作流
  2. 选择凭证
  3. 选择资源："笔记"
  4. 选择操作："发布笔记"
  5. 填写笔记标题和内容
  6. 选择媒体类型（图片或视频）
  7. 提供图片或视频的路径/URL
  8. 可选：添加标签、设置隐私选项

  ### 示例：搜索笔记

  1. 添加"Xiaohongshu"节点
  2. 选择资源："笔记"
  3. 选择操作："搜索笔记"
  4. 输入搜索关键词
  5. 设置结果数量限制
  6. 可选：配置筛选条件（排序方式、内容类型、时间范围等）

  ### 示例：获取用户笔记

  1. 添加"Xiaohongshu"节点
  2. 选择资源："用户"
  3. 选择操作："获取用户笔记"
  4. 输入用户主页 URL
  5. 设置结果数量限制


  ## 资源

  * [n8n 社区节点文档](https://docs.n8n.io/integrations/#community-nodes)
  * [项目 GitHub 仓库](https://github.com/maxzhang666/n8n-nodes-sau)

  ## 许可证

  MIT

  ## 作者

  maxzhang (373884384@qq.com)

ai_documentation_summary:
  {"purpose":"A community n8n node that enables integration with Xiaohongshu (Little Red Book) API, allowing users to perform operations such as posting notes, searching content, interacting with posts, and managing user data.","capabilities":["Publish notes with images or videos","Search notes by keywords with filters like sorting, content type, and time range","Interact with notes (like, collect, comment)","Retrieve interaction statistics (likes, collections, comments)","Extract image and video resource links from notes","Get basic note information","Search users on Xiaohongshu","Retrieve a list of notes posted by a specific user","Generate and perform QR code login for authentication"],"authentication":"API key required; configuration includes API Key and Domain (e.g., http://host.docker.internal:port or http://localhost:3000)","commonUseCases":["Automated posting of product reviews or lifestyle content","Monitoring trending topics or hashtags on Xiaohongshu","Engaging with user-generated content through likes and comments","Collecting competitor or influencer content for analysis","Automated user content harvesting for marketing research"],"limitations":["Requires a local SAU service running on a specified port; no direct public API support","QR code login is manual and not fully automated in workflows","No built-in support for handling rate limits or error recovery in the node itself"],"relatedNodes":["HTTP Request","Webhook","Database","Filter"]}


node_type: n8n-nodes-data-validation.DataValidation
package_name: n8n-nodes-data-validation
display_name: DataValidation
description: This n8n community node validates input data using JSON Schemas.
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: bartolomeumr
author_github_url: git+https://github.com/Bartmr/n8n-nodes-data-validation.git
npm_package_name: n8n-nodes-data-validation
npm_version: 1.0.1
community_fetched_at: 2026-01-07T20:08:17.620Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ## How to

  This n8n community node validates input data using JSON Schemas.

  Visit <https://ajv.js.org/> or <https://json-schema.org/> to learn how to describe your validation rules in JSON Schemas.

  ## Library development

  ### Changing the supported Node version

  - Files to be changed
    - .nvmrc
    - Dockerfile.dev
    - package.json
      - `engine` field
      - `@types/node` version
    - tsconfig.base.json
    - .github/workflows/main.yml and other CI config files
  - delete all `node_modules` directories and `package-lock.json` files
  - run `npm run install`

ai_documentation_summary:
  {"purpose":"The DataValidation node validates input data against predefined JSON Schema rules to ensure data integrity and structure.","capabilities":["Validates input data using JSON Schemas","Supports schema-based data validation in n8n workflows","Enables consistent data formatting and structure enforcement"],"authentication":"None","commonUseCases":["Ensuring data conforms to expected formats before processing","Validating API responses or user inputs in workflows","Enforcing data structure in data pipelines"],"limitations":[],"relatedNodes":["Function","Set","Function (for preprocessing)","Database nodes (for data ingestion)"]}


node_type: n8n-nodes-google-speech.GoogleSpeech
package_name: n8n-nodes-google-speech
display_name: GoogleSpeech
description: n8n node for Google Speech API integration
category: Community
development_style: declarative
version: 0.3.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: ziobudda
author_github_url: git+https://github.com/ziobuddalabs/n8n-google-speech.git
npm_package_name: n8n-nodes-google-speech
npm_version: 0.3.0
community_fetched_at: 2026-01-07T20:08:17.621Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-google-speech

  This is an n8n community node for Google Speech API integration. It provides functionality to convert audio to text using Google's Speech-to-Text API.

  ## Installation

  Follow these instructions to install this node:

  ### In official n8n version

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-google-speech` in **Enter npm package name**
  4. Click **Install**

  ### In Docker or own setup

  1. Install npm package:
  ```bash
  npm install n8n-nodes-google-speech
  ```
  2. Add node to N8N_CUSTOM_EXTENSIONS:
  ```bash
  export N8N_CUSTOM_EXTENSIONS="/path/to/n8n-nodes-google-speech"
  ```

  ## Prerequisites

  To use this node, you need:

  1. A Google Cloud account with the Speech-to-Text API enabled
  2. A service account with access to the Speech API
  3. A JSON key file for the service account

  ### Setting up Google Cloud credentials:

  1. Go to the [Google Cloud Console](https://console.cloud.google.com/)
  2. Create a new project or select an existing one
  3. Enable the Speech-to-Text API in the API Library
  4. Go to "IAM & Admin" > "Service Accounts"
  5. Create a new service account or use an existing one
  6. Give it the "Cloud Speech Client" role
  7. Create a new JSON key (Actions > Manage keys > Add key > Create new key)
  8. Download the JSON key file
  9. Paste the entire contents of the JSON file into the n8n credentials field

  ## Usage

  1. Add a "Google Speech" node to your workflow
  2. Select the "Speech to Text" resource and "Recognize" operation
  3. Configure the credentials using your Service Account Key JSON
  4. Provide audio as a base64-encoded string (without any prefix like "data:audio/...")
  5. Set the language code (e.g. 'en-US', 'it-IT', 'fr-FR', etc.)
  6. Run the workflow to convert speech to text

  ### Important Notes About Audio Format:
  1. The audio must be properly encoded in base64 format
  2. The audio should be in a supported format (e.g., WAV, MP3, FLAC)
  3. Google Speech API will attempt to auto-detect the audio format
  4. For best results, use audio with clear speech and minimal background noise
  5. Ensure your service account has the proper permissions for the Speech API

  ## Resources

  * [Google Cloud Speech-to-Text Documentation](https://cloud.google.com/speech-to-text/docs)
  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](https://github.com/ziobuddalabs/n8n-google-speech/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"The GoogleSpeech node enables conversion of audio files to text using Google's Speech-to-Text API, allowing users to transcribe spoken audio into written text within n8n workflows.","capabilities":["Convert audio to text using Google Speech-to-Text API","Support for multiple language codes (e.g., en-US, it-IT, fr-FR)","Base64-encoded audio input with support for WAV, MP3, FLAC formats"],"authentication":"API key required via a service account JSON key file with the 'Cloud Speech Client' role","commonUseCases":["Transcribing meetings or interviews recorded as audio files","Automating voice note processing in customer service workflows","Converting voice messages from customer support into text for logging"],"limitations":["Audio must be properly base64-encoded without prefixes (e.g., 'data:audio/...')","Audio format must be supported (WAV, MP3, FLAC); auto-detection may not work reliably","Requires a Google Cloud project with the Speech-to-Text API enabled and proper service account permissions","No support for real-time streaming or custom models beyond default settings"],"relatedNodes":["Google Cloud API nodes","Audio processing nodes","Text processing nodes"]}


node_type: n8n-nodes-phoai-public-tools.PhoaiPublicTools
package_name: n8n-nodes-phoai-public-tools
display_name: PhoaiPublicTools
description: A community node tool from PhoAi
category: Community
development_style: declarative
version: 1.1.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: phoai-n8n
author_github_url: https://phoai.vn
npm_package_name: n8n-nodes-phoai-public-tools
npm_version: 1.1.4
community_fetched_at: 2026-01-07T20:08:17.621Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # 🛠️ Phở Ai Ultimate Tools

  **Phở Ai Ultimate Tools** là tập hợp các node tiện ích tùy biến cao dành cho nền tảng n8n, giúp người dùng xử lý các tác vụ tự động một cách nhanh chóng, hiệu quả và dễ tích hợp.  

  ---
  ## 📦 Danh sách tính năng hiện có

  | Module                 | Tên chức năng                   | Mô tả                                                                 |
  |------------------------|----------------------------------|----------------------------------------------------------------------|
  | TikTok Download | Node TikTok Download video      | Node cho phép tải video tiktok không đóng dấu. |
  | Zalo Bot Platform | Node zalo bot platform      | Node xử lý chính thống Zalo bot trên nền tảng platform của zalo. |
  | PhoAi Ultimate Debounce | Gom tin nhắn theo thời gian      | Gom các tin nhắn đến trong một khoảng thời gian nhất định để xử lý. |
  | Facebook Message Tools | Gửi tin nhắn văn bản             | Gửi tin nhắn dạng text tới người dùng qua Facebook.                 |
  | Facebook Message Tools | Gửi tin nhắn hình ảnh            | Gửi ảnh từ URL hoặc file đính kèm qua Facebook Messenger.           |
  | Facebook Page Post | Đăng bài/ video lên page            | Đăng bài/ video lên page, không bị hết hạn token.           |

  ---

  Hiện tại, bộ công cụ bao gồm hai nhóm chính:
  - 15/10/2025 **N8N GPT Agent Builder**: Node cho phép bạn tích hợp Agent Builder từ GPT platform
  - 10/10/2025 **Facebook cá nhân**: ode xử lý tất cả các chức năng của facebook cá nhân
  - 29/09/2025 **Zalo Bot Platform**: Kết nối zalo bot để làm aigent cá nhân (https://youtu.be/NbG2UUyDAR8)
  - 22/09/2025 **Facebook Lead Ads**: Kết nối facebook ads lấy dữ liệu thống kê quảng cáo
  - 10/09/2025 **Facebook Post Content**: Kết nối page facebook để đăng bài tự động (https://youtu.be/9LmZQGEAJJU)
  - 15/07/2025 **Kết nối Casso**: Hỗ trợ tạo QR, tự động xác nhận đơn hàng qua casso (https://youtu.be/G4JrLiB8pcA)
  - **Gom tin nhắn (PhoAi Ultimate Debounce)**: Hỗ trợ gom nhiều tin nhắn lại thành một để xử lý sau. (https://youtu.be/pmrf5a5GSfc)
  - **Facebook Message Tools**: Gửi tin nhắn văn bản và hình ảnh qua Facebook Messenger với cấu hình đơn giản. (https://youtu.be/WpV1K5wcP7g)

  ---



  ## 📌 Lưu ý
  - Tất cả các node được thiết kế dễ sử dụng, phù hợp với cả người dùng không chuyên.
  - Các chức năng mới sẽ liên tục được cập nhật, bạn có thể theo dõi tại repo này.

  ---
  ## 📬 Ủng hộ team
  - Nếu bạn chưa có VPS để chạy n8n thì có thể truy cập https://phoai.vn để mua n8n hosting nhé


  ## 📲 Tham gia nhóm Zalo hỗ trợ

  Quét mã QR bên dưới để tham gia nhóm Zalo hỗ trợ kỹ thuật và cập nhật tính năng mới nhất:

  ![QR Code Zalo Group](https://group-qr.zdn.vn/1/760e18476e22877cde33)

  Hoặc nhấn vào liên kết trực tiếp: [https://zalo.me/g/ebsiof941](https://zalo.me/g/ebsiof941)

ai_documentation_summary:
  {"purpose":"The PhoAi Public Tools node provides a collection of community-developed automation tools for n8n, enabling users to perform tasks such as downloading TikTok videos, sending messages via Facebook and Zalo, posting on Facebook pages, managing messages with debouncing, and integrating with Facebook Ads and Casso for automated workflows.","capabilities":["Download TikTok videos (without watermark)","Send text messages via Facebook Messenger","Send image messages via Facebook Messenger (from URL or file attachment)","Post articles or videos to Facebook pages (without token expiration)","Gather Facebook ad campaign statistics via Lead Ads","Create and manage QR codes and auto-verify orders via Casso","Group incoming messages by time interval (debounce functionality)","Integrate with Zalo Bot Platform to build personal AI agents"],"authentication":"API keys or platform-specific authentication (e.g., Facebook, Zalo) required depending on the module; no explicit mention of OAuth2 or public access","commonUseCases":["Automated customer messaging on Facebook and Zalo","Scheduled Facebook page posting with content management","Collecting and analyzing Facebook ad performance data","Automated order verification and QR code generation via Casso","Aggregating chat messages to reduce processing load"],"limitations":["No details on rate limits, error handling, or data privacy compliance","Depends on external platform APIs (Facebook, Zalo, Casso) which may change policies or require updates","Limited documentation for advanced configurations or debugging"],"relatedNodes":["Facebook Message Tools","Zalo Bot Platform","GPT Agent Builder","Facebook Lead Ads","Casso Integration"]}


node_type: @taxmanagementnz/n8n-nodes-azure-servicebus.AzureServicebus
package_name: @taxmanagementnz/n8n-nodes-azure-servicebus
display_name: AzureServicebus
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: tmnztechnical
author_github_url: git+https://github.com/TaxManagementNewZealand/n8n-nodes-azure-servicebus.git
npm_package_name: @taxmanagementnz/n8n-nodes-azure-servicebus
npm_version: 1.0.1
community_fetched_at: 2026-01-07T20:08:17.622Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  Azure Service Bus nodes for n8n with full session support using official @azure/service-bus based on pokash community node

npm_readme:
  # Azure Service Bus Node for n8n

  Custom n8n node for working with Azure Service Bus using the official `@azure/service-bus` library.

  ## Features

  - ✅ Send messages to queues
  - ✅ Send messages to topics
  - ✅ Receive messages from queues
  - ✅ Support for custom properties
  - ✅ Multiple receive modes (Peek Lock, Receive and Delete)
  - ✅ Support for Azure Service Bus Connection String

  ## Configuration

  ### Add credentials in n8n:

  Connection String:
  ```
  Endpoint=sb://xxx.servicebus.windows.net/;SharedAccessKeyName=xxx;SharedAccessKey=xxx;EntityPath=xxx
  ```

  ### Using the node:

  1. Select Resource: Queue
  2. Queue Name: `xxx`
  3. Operation: Send Message or Receive Messages

  ## Example usage:

  ```json
  {
    "messageBody": "{\"productId\": 123, \"name\": \"Test Product\"}",
    "contentType": "application/json"
  }
  ```

  ---
  *Original author: [@pokash/n8n-nodes-azure-servicebus](https://github.com/pokash/n8n-nodes-azure-servicebus)*

ai_documentation_summary:
  {"purpose":"The AzureServicebus node enables n8n users to send and receive messages from Azure Service Bus queues and topics, supporting full session functionality and custom properties using the official @azure/service-bus library.","capabilities":["Send messages to queues","Send messages to topics","Receive messages from queues","Support for custom properties","Multiple receive modes (Peek Lock, Receive and Delete)","Support for Azure Service Bus Connection String"],"authentication":"API key required via Connection String (includes SharedAccessKeyName and SharedAccessKey)","commonUseCases":["Publishing event messages to Azure Service Bus queues or topics","Consuming messages from queues in a reliable, session-aware manner","Integrating with microservices or event-driven architectures using Azure Service Bus"],"limitations":[],"relatedNodes":["Queue","Topic","Message Receiver"]}


node_type: n8n-nodes-wuzapi.Wuzapi
package_name: n8n-nodes-wuzapi
display_name: Wuzapi
description: n8n community nodes for Wuzapi - WhatsApp Multi-Device REST API
category: Community
development_style: declarative
version: 1.6.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: guilhermejansenoficial
author_github_url: git+https://github.com/guilhermejansen/n8n-nodes-wuzapi.git
npm_package_name: n8n-nodes-wuzapi
npm_version: 1.6.0
community_fetched_at: 2026-01-07T20:08:17.622Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-wuzapi

  This is an n8n community node that provides a complete integration with [Wuzapi](https://github.com/asternic/wuzapi) - a multi-user and multi-device REST API for WhatsApp.

  Wuzapi implements a robust WhatsApp Web API that allows you to send and receive messages, manage groups, handle media files, and much more through a simple REST interface.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Table of Contents

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Nodes Overview](#nodes-overview)
  - [Usage Examples](#usage-examples)
  - [Features](#features)
  - [Error Handling](#error-handling)
  - [Compatibility](#compatibility)
  - [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Quick Installation

  1. In n8n, go to **Settings** > **Community Nodes**
  2. Click **Install a community node**
  3. Enter `n8n-nodes-wuzapi`
  4. Click **Install**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-wuzapi
  ```

  ## Operations

  This package includes 11 specialized nodes, each focused on specific WhatsApp operations:

  ### 🔐 Wuzapi Credentials
  Handles authentication with your Wuzapi instance.

  ### 📱 Wuzapi Session
  - **Connect** - Connect to WhatsApp servers
  - **Disconnect** - Disconnect from WhatsApp
  - **Get Status** - Check connection status
  - **Get QR Code** - Get QR code for scanning
  - **Logout** - Logout and terminate session
  - **Pair Phone** - Get pairing code for phone
  - **Set Proxy** - Configure proxy settings
  - **Configure S3** - Set up S3 storage for media
  - **Test S3** - Test S3 connection

  ### 💬 Wuzapi Message
  Send various types of messages:
  - **Text** - Send text messages
  - **Image** - Send images with optional captions
  - **Audio** - Send audio messages
  - **Video** - Send videos with optional captions
  - **Document** - Send documents of any type
  - **Sticker** - Send stickers
  - **Location** - Send location coordinates
  - **Contact** - Send contact cards (vCard)
  - **Template** - Send template messages with buttons
  - **Buttons** - Send interactive button messages
  - **List** - Send list messages
  - **Poll** - Send polls to groups

  ### 🗨️ Wuzapi Chat
  Manage chat interactions:
  - **Delete Message** - Delete sent messages
  - **Edit Message** - Edit previously sent messages
  - **Download Media** - Download media from messages
  - **Mark as Read** - Mark messages as read
  - **React to Message** - Send reactions to messages
  - **Set Presence** - Show typing/recording indicators

  ### 👤 Wuzapi User
  User information and presence:
  - **Check Users** - Check if users have WhatsApp
  - **Get User Info** - Get detailed user information
  - **Get Avatar** - Get user profile pictures
  - **Get Contacts** - Get all contacts
  - **Set Presence** - Set global online/offline status

  ### 👥 Wuzapi Group
  Complete group management:
  - **Create** - Create new groups
  - **List** - List all groups
  - **Get Info** - Get group information
  - **Get Invite Link** - Get group invite link
  - **Join** - Join group via invite
  - **Leave** - Leave a group
  - **Set Name** - Change group name
  - **Set Description** - Set group description
  - **Set Photo** - Set group photo
  - **Remove Photo** - Remove group photo
  - **Set Announce** - Enable/disable admin-only messages
  - **Set Locked** - Lock/unlock group info editing
  - **Set Ephemeral** - Configure disappearing messages
  - **Update Participants** - Add/remove/promote/demote members

  ### 🔗 Wuzapi Webhook
  Configure webhook settings:
  - **Get** - Get current webhook configuration
  - **Set** - Configure webhook URL and events
  - **Update** - Update webhook settings
  - **Delete** - Remove webhook configuration

  ### 👨‍💼 Wuzapi Admin
  Administrative operations (requires admin token):
  - **List Users** - List all Wuzapi users
  - **Create User** - Create new user with token
  - **Delete User** - Delete user from database
  - **Delete User Full** - Complete user removal (DB, S3, logout)

  ### 🔔 Wuzapi Trigger
  Receive real-time WhatsApp events with complete event mapping:
  - **Events** - Message, Read Receipt, Presence, History Sync, Chat Presence, All Events
  - **Advanced Filters** - Filter by sender phone, chat ID, message type, content, groups/direct, from me/others, token
  - **Message Type Detection** - Automatic detection of text, media, PTT, documents, stickers, URLs, locations, contacts, buttons, lists, templates, polls, orders, and unknown types
  - **Media Support** - Complete base64 and S3 media data extraction
  - **Content Parsing** - Intelligent message content extraction with type-specific fields
  - **Simplified Output** - Clean, structured output with all relevant fields mapped
  - **Raw Data Access** - Optional complete raw webhook data for debugging

  ### ⏳ Wuzapi Send and Wait
  Send messages and wait for responses:
  - **Approval Messages** - Send messages with approval buttons
  - **Free Text Response** - Wait for user text input via web form
  - **Custom Forms** - Create custom forms for user responses
  - **Wait Time Limits** - Set maximum wait times
  - **Attribution** - Optional n8n branding

  ### 🤖 Wuzapi AI
  Optimized for AI workflows and tools with complete message type support:
  - **Send Text** - Send text messages with AI-friendly interface
  - **Send Image** - Send images with captions (Binary/Base64/URL)
  - **Send Audio** - Send audio messages with PTT support (Binary/Base64/URL)
  - **Send Video** - Send videos with captions (Binary/Base64/URL)
  - **Send Document** - Send documents with filenames (Binary/Base64/URL)
  - **Send Location** - Send geographical coordinates with location names
  - **Send Contact** - Send contact information with VCard data
  - **Send Sticker** - Send stickers in WebP format (Binary/Base64/URL)
  - **Send Buttons** - Send interactive button messages for AI decision trees
  - **Send List** - Send structured lists with multiple options for AI menus
  - **Send Poll** - Send group polls for AI-driven surveys and decisions
  - **Universal Media Support** - All media types support Binary Data, Base64, and URL sources
  - **Mention System** - Complete mention support for specific users and all group members
  - **Batch Processing** - Process multiple recipients and message types efficiently
  - **Error Tolerance** - Continue workflow execution on individual failures
  - **AI Tools Compatible** - Perfect for use with n8n AI Tools and automation

  ## Credentials

  To use these nodes, you need to configure the Wuzapi credentials:

  1. **API Token** - Your Wuzapi user token for authentication
  2. **API URL** - The base URL of your Wuzapi instance

  ### Credential Validation

  The credentials are automatically validated when configured. The validation provides real-time information about your Wuzapi session:

  - **Authentication Status** - Confirms API token validity
  - **Session Information** - Shows session name, connection status, and login state
  - **Dynamic Messages** - Example: "Connected to setupautomatizado (Connected, Logged In)"

  3. **Advanced Options** (Optional):
     - **Proxy URL** - HTTP/SOCKS5 proxy for requests
     - **Request Timeout** - Timeout in milliseconds
     - **Retry on Failure** - Enable automatic retries
     - **Max Retries** - Maximum retry attempts

  ### Setting up Wuzapi

  1. Install and run Wuzapi following the [official documentation](https://github.com/asternic/wuzapi)
  2. Create a user with an authentication token
  3. Use the token and API URL in n8n credentials

  ## Nodes Overview

  ### Modular Design

  This package follows a modular design where each node focuses on specific functionality:

  - **Session Management** - Connection, authentication, and configuration
  - **Messaging** - All message sending operations
  - **Chat Operations** - Message management and interactions
  - **User Operations** - User information and presence
  - **Group Management** - Complete group functionality
  - **Webhook Configuration** - Event subscription management
  - **Administration** - User management (admin only)
  - **Event Trigger** - Real-time event reception
  - **Send and Wait** - Interactive approval workflows
  - **AI Integration** - Optimized node for AI Tools and workflows

  ### Key Features

  - ✅ **Complete API Coverage** - All Wuzapi endpoints implemented across 11 specialized nodes
  - 🔄 **Automatic Retry Logic** - Built-in retry mechanism with exponential backoff
  - 🛡️ **Robust Error Handling** - Graceful error handling with detailed messages
  - 🎯 **Type Safety** - Full TypeScript implementation with comprehensive type checking
  - 📦 **Universal Media Support** - Handle all media types with Binary Data, Base64, and URL sources
  - 🔐 **Multi-tenant Support** - Each user has independent WhatsApp sessions
  - ☁️ **S3 Integration** - Optional cloud storage for media files with automatic delivery
  - 🌐 **Proxy Support** - HTTP/SOCKS5 proxy configuration for all operations
  - ⚡ **High Performance** - Optimized for production use with efficient media handling
  - 🎨 **User-Friendly** - Intuitive interface with helpful descriptions and examples
  - 🤖 **Complete AI Integration** - Dedicated AI node with full message type support (11 types)
  - 💬 **Interactive Messages** - Full support for buttons, lists, polls, and stickers
  - 🎯 **Mention System** - Complete mention support for individuals and group-wide mentions
  - 📱 **Media Optimization** - Smart media source detection and URL support for reduced payloads
  - ✅ **Enhanced Validation** - Real-time credential validation with session status
  - 🔧 **Batch Processing** - Efficient processing of multiple operations with error tolerance
  - 🌍 **Multi-format Support** - WebP stickers, VCard contacts, geographic locations
  - 📊 **Group Intelligence** - Advanced group management with polls and administrative controls

  ## Usage Examples

  ### Send a Text Message

  ```javascript
  // Using Wuzapi Message node
  {
    "messageType": "text",
    "phone": "5491155553934",
    "body": "Hello from n8n!"
  }
  ```

  ### Send an Image with Caption

  ```javascript
  // Using Wuzapi Message node
  {
    "messageType": "image",
    "phone": "5491155553934",
    "imageSource": "binary",
    "binaryProperty": "data",
    "caption": "Check out this image!"
  }
  ```

  ### Create a Group

  ```javascript
  // Using Wuzapi Group node
  {
    "operation": "create",
    "groupName": "My n8n Group",
    "participants": "5491155553934,5491155553935"
  }
  ```

  ### Set Up Webhook Trigger

  ```javascript
  // Using Wuzapi Trigger node - Basic setup
  {
    "events": ["Message", "ReadReceipt"],
    "filters": {
      "messageType": "text",
      "isGroup": "false"
    }
  }
  ```

  ### Advanced Trigger Configuration

  ```javascript
  // Complete trigger setup with all features
  {
    "events": ["Message"],
    "filters": {
      "fromPhone": "5521971532700@s.whatsapp.net",
      "chatId": "120363312246943103@g.us",
      "messageType": "media",
      "containsText": "urgent",
      "isGroup": "true",
      "isFromMe": "false",
      "tokenFilter": "setupautomatizado"
    },
    "options": {
      "simplifyOutput": true,
      "includeMediaData": true,
      "parseMessageContent": true,
      "includeRawData": false
    }
  }
  ```

  ### Trigger Output Example

  ```javascript
  // Simplified output for a text message
  {
    "eventType": "Message",
    "token": "setupautomatizado",
    "messageId": "A6BA5FB09055C47722F936C3FC74D98F",
    "chat": "5521971532700@s.whatsapp.net", 
    "sender": "5521971532700@s.whatsapp.net",
    "timestamp": "2025-05-28T06:47:26-03:00",
    "messageType": "text",
    "isFromMe": false,
    "isGroup": false,
    "pushName": "Guilherme Jansen",
    "verifiedName": "Guilherme Jansen - Setup Automatizado",
    "text": "Oi"
  }
  ```

  ### Media Message Output

  ```javascript
  // Output for audio message with S3 and base64 data
  {
    "eventType": "Message",
    "messageType": "ptt",
    "audioUrl": "https://mmg.whatsapp.net/v/...",
    "duration": 3,
    "mimeType": "audio/ogg; codecs=opus",
    "mediaBase64": "T2dnUwACAAAAAAAA...",
    "mediaMimeType": "application/ogg",
    "mediaFileName": "DB56752B6A203E5A96A2E533C4D0A7CF.oga",
    "s3Data": {
      "bucket": "evolution",
      "key": "users/2fb8378b312c1d2dd127e094d9a99115/inbox/...",
      "url": "https://s3.setupautomatizado.com.br/evolution/...",
      "size": 8084
    }
  }
  ```

  ### Interactive Message Output

  ```javascript
  // Output for buttons message
  {
    "eventType": "Message",
    "messageType": "buttons",
    "text": "ESCOLHA O MENU!",
    "buttons": [
      {
        "id": "81ad952f-1085-4d2c-a4b9-de228cfc4117",
        "text": "SUPORTE",
        "type": 1
      },
      {
        "id": "a4767ccb-ded6-4edd-be6a-363972fdaa0f",
        "text": "COMERCIAL",
        "type": 1
      },
      {
        "id": "8f72fd66-1e6f-48bd-a5b5-c509fcc5a9f1",
        "text": "ATENDIMENTO",
        "type": 1
      }
    ]
  }

  // Output for list message
  {
    "eventType": "Message",
    "messageType": "list",
    "title": "<HEADER_TEXT>",
    "text": "<BODY_TEXT>",
    "buttonText": "<BUTTON_TEXT>",
    "sections": [
      {
        "title": "<LIST_SECTION_1_TITLE>",
        "rows": [
          {
            "id": "<LIST_SECTION_1_ROW_1_ID>",
            "title": "<SECTION_1_ROW_1_TITLE>",
            "description": "<SECTION_1_ROW_1_DESC>"
          }
        ]
      }
    ]
  }
  ```

  ### Send AI-Generated Message

  ```javascript
  // Using Wuzapi AI node - Perfect for AI workflows
  {
    "operation": "sendText",
    "phoneNumber": "5491155553934",
    "message": "Hello! This is an AI-generated response from n8n."
  }
  ```

  ### Send Multiple Media Files (AI Batch)

  ```javascript
  // Using Wuzapi AI node with multiple items
  [
    {
      "operation": "sendImage",
      "phoneNumber": "5491155553934",
      "imageSource": "url",
      "imageUrl": "https://example.com/image1.jpg",
      "caption": "AI Analysis Result 1"
    },
    {
      "operation": "sendDocument",
      "phoneNumber": "5491155553935",
      "documentSource": "url", 
      "documentUrl": "https://example.com/report.pdf",
      "fileName": "AI_Report.pdf",
      "caption": "Generated Report"
    }
  ]
  ```

  ### Send Interactive Messages with AI

  ```javascript
  // Send sticker for reactions
  {
    "operation": "sendSticker",
    "phoneNumber": "5491155553934",
    "stickerSource": "url",
    "stickerUrl": "https://example.com/thumbs-up.webp"
  }

  // Send buttons for AI decision tree
  {
    "operation": "sendButtons",
    "phoneNumber": "5491155553934",
    "message": "How can I help you today?",
    "additionalOptions": {
      "mentions": {
        "mentionConfig": [{
          "type": "specific",
          "jids": "5491155553934@s.whatsapp.net"
        }]
      }
    }
  }

  // Send list for AI-generated menu
  {
    "operation": "sendList",
    "phoneNumber": "120363312246943103@g.us",
    "buttonText": "Choose Service",
    "description": "Select the service you need",
    "topText": "AI Assistant Services",
    "footerText": "Powered by AI",
    "listItems": {
      "item": [
        {
          "title": "Technical Support",
          "desc": "Get help with technical issues",
          "rowId": "tech_support"
        },
        {
          "title": "Sales Information", 
          "desc": "Learn about our products",
          "rowId": "sales_info"
        },
        {
          "title": "General Questions",
          "desc": "Ask any general questions",
          "rowId": "general_qa"
        }
      ]
    }
  }

  // Send poll for group decisions
  {
    "operation": "sendPoll",
    "phoneNumber": "120363312246943103@g.us",
    "pollHeader": "Which feature should we prioritize?",
    "pollOptions": "AI Chat Enhancement,Voice Messages,File Sharing,Video Calls"
  }
  ```

  ### AI Tools Integration Examples

  ```javascript
  // Complete AI workflow with mentions and media
  {
    "operation": "sendVideo",
    "phoneNumber": "5491155553934",
    "videoSource": "base64",
    "videoBase64": "data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc...",
    "caption": "Here's your AI-generated tutorial video",
    "additionalOptions": {
      "id": "ai_tutorial_001",
      "mentions": {
        "mentionConfig": [{
          "type": "all"
        }]
      }
    }
  }

  // AI processing with binary data from previous nodes
  {
    "operation": "sendDocument",
    "phoneNumber": "5491155553934",
    "documentSource": "binary",
    "documentBinaryProperty": "processed_report",
    "fileName": "AI_Analysis_Report.pdf",
    "caption": "Your personalized AI analysis is ready!"
  }
  ```

  ## Error Handling

  All nodes include comprehensive error handling:

  - **Automatic Retries** - Failed requests are retried with exponential backoff
  - **Continue on Fail** - Option to continue workflow execution on errors
  - **Detailed Error Messages** - Clear error descriptions for debugging
  - **HTTP Status Codes** - Proper status code handling
  - **Authentication Errors** - No retry on authentication failures

  ## Compatibility

  - **n8n Version**: 0.210.0 or higher
  - **Node.js**: 20.15 or higher  
  - **Wuzapi**: Compatible with all Wuzapi versions
  - **WhatsApp**: Supports all current WhatsApp message types including interactive content
  - **Media Formats**: 
    - Images: JPEG, PNG, WebP
    - Videos: MP4, AVI, MOV (H.264 codec recommended)
    - Audio: OGG (Opus), MP3, WAV, AAC
    - Documents: PDF, DOCX, XLSX, TXT, and all file types
    - Stickers: WebP format (recommended), PNG with transparency

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Wuzapi Documentation](https://github.com/asternic/wuzapi)
  - [Wuzapi API Documentation](https://github.com/asternic/wuzapi/blob/main/API.md)
  - [WhatsApp Business API](https://developers.facebook.com/docs/whatsapp)

  ## Support

  For issues and feature requests, please use the [GitHub issues page](https://github.com/guilhermejansen/n8n-nodes-wuzapi/issues).

  ## License

  [MIT](https://github.com/guilhermejansen/n8n-nodes-wuzapi/blob/master/LICENSE.md)

  ## Author

  Guilherme Jansen - [guilherme@setupautomatizado.com.br](mailto:guilherme@setupautomatizado.com.br)

  ---

  Made with ❤️ for the n8n community

ai_documentation_summary:
  {"purpose":"The Wuzapi node enables full integration with the Wuzapi WhatsApp REST API, allowing users to send and receive messages, manage chats, groups, users, and handle media, all through a RESTful interface within n8n workflows.","capabilities":["Send text, image, audio, video, document, sticker, location, contact, template, buttons, list, and poll messages","Manage WhatsApp groups (create, join, leave, edit name, description, photo, settings)","Delete, edit, react to, and mark messages as read","Retrieve user information, contacts, and avatars","Configure webhooks for real-time event triggers (messages, presence, reads, etc.)","Support for media handling via base64 and S3 storage","Interactive message types with buttons, lists, polls, and forms","Send approval messages and wait for user responses with time limits","Admin operations like user creation, deletion, and listing (requires admin token)","Get QR code for phone pairing and manage session status"],"authentication":"API key or token-based authentication via the Wuzapi Credentials node","commonUseCases":["Automated WhatsApp messaging for customer support","Real-time chat monitoring and response workflows","Group management automation (e.g., welcome messages, announcements)","Interactive forms and user input collection via buttons and polls","Media sharing and file delivery in WhatsApp"],"limitations":["Requires a Wuzapi instance with active WhatsApp Web access","Admin operations require an admin token and may not be accessible to all users","Real-time events depend on webhook configuration and may have latency","No built-in support for end-to-end encryption or message delivery receipts","Media handling is limited to base64 or S3; direct file uploads may require external storage"],"relatedNodes":["n8n-nodes-base.Whois","n8n-nodes-base.Webhook","n8n-nodes-base.Message","n8n-nodes-base.S3","n8n-nodes-base.Trigger"]}


node_type: n8n-nodes-celum-mediabank.CelumMediabank
package_name: n8n-nodes-celum-mediabank
display_name: CelumMediabank
description: n8n node for Celum Mediabank API
category: Community
development_style: declarative
version: 1.0.17
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: mikaelx
npm_package_name: n8n-nodes-celum-mediabank
npm_version: 1.0.17
community_fetched_at: 2026-01-07T20:08:17.625Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-celum-mediabank

  A comprehensive n8n community node for integrating with the Celum Mediabank API. This node provides full CRUD operations for digital asset management, including asset search, collection management, file uploads, and asset type definitions.

  ## Features

  - **10 Operations** covering all major Celum Mediabank API endpoints
  - **Custom Credential Type** for secure API key authentication
  - **TypeScript** implementation with full type safety
  - **Modular Architecture** for easy maintenance and extension
  - **Community Package** - works with any n8n installation

  ## Installation

  ### Install from npm (Recommended)

  ```bash
  npm install n8n-nodes-celum-mediabank
  # or
  pnpm add n8n-nodes-celum-mediabank
  ```

  After installation, restart your n8n instance. The node will be automatically available.

  ### Install from Local Path

  ```bash
  # Build the node first
  cd /path/to/n8n-nodes-celum-mediabank
  pnpm build

  # Install from local path
  npm install /path/to/n8n-nodes-celum-mediabank
  # or
  pnpm add /path/to/n8n-nodes-celum-mediabank

  # Restart n8n
  ```

  ### Development Mode

  For local development and testing:

  ```bash
  # Clone the repository
  git clone https://github.com/MikaelX/n8n-nodes-celum-mediabank.git
  cd n8n-nodes-celum-mediabank

  # Install dependencies
  pnpm install

  # Start development server (includes n8n)
  pnpm dev
  ```

  This will:
  - Build the node automatically
  - Start n8n on `http://localhost:5678`
  - Watch for changes and rebuild automatically
  - Hot reload without restarting n8n

  ## Quick Start

  1. **Install the package** (see Installation above)
  2. **Create Credentials:**
     - Go to **Credentials** in n8n
     - Click **Add Credential**
     - Search for **"Celum Mediabank API"**
     - Enter your API Key and Base URL (e.g., `https://your-instance.celum.cloud/content-api/v1`)
     - Save the credential
  3. **Use the Node:**
     - Create a new workflow in n8n
     - Add the **Celum Mediabank** node
     - Select your credential
     - Choose an operation and configure it

  ## Operations

  The node supports 9 operations covering all major Celum Mediabank functionality:

  ### Asset Operations

  #### 1. Search Assets
  Search for assets using full-text search or field-based filters.

  **Features:**
  - Full-text search by UUID, name, or metadata
  - 50+ filter types (ASSET_FULLTEXT, field-based filters, etc.)
  - Pagination support (page and size)
  - Multiple sort fields (creation date, modification date, name, ID, filename, file size, etc.)
  - Ascending/descending sort order

  **Use Cases:**
  - Find assets by UUID
  - Search assets by metadata fields
  - List assets with pagination
  - Sort assets by various criteria

  #### 2. Get Asset
  Retrieve detailed information about a specific asset by ID.

  **Features:**
  - Get asset by ID
  - Customizable inclusions (information fields, permissions, file properties, external references, download formats)
  - Locale support for localized values
  - Filter specific information fields and download formats
  - Permission evaluation

  **Use Cases:**
  - Get complete asset details
  - Retrieve asset metadata
  - Check asset permissions
  - Get available download formats

  #### 3. Create Asset
  Create a new asset in the mediabank.

  **Features:**
  - Create asset with name and metadata
  - Specify parent collection
  - Assign asset type
  - Set initial information field values
  - Optional upload handle for immediate file association

  **Use Cases:**
  - Create placeholder assets
  - Create assets with initial metadata
  - Prepare assets for file upload

  #### 4. Update Asset
  Update asset metadata, name, or lock status.

  **Features:**
  - Update asset name
  - Modify lock status (set, clear, or leave unchanged)
  - Update information field values (TEXT, LOCALIZED_TEXT, COLLECTION_REFERENCE, TAG_REFERENCE, etc.)
  - Support for field operations (SET, CLEAR, MODIFY)

  **Use Cases:**
  - Update asset metadata
  - Change asset name
  - Lock/unlock assets
  - Modify information fields

  #### 5. Delete Asset
  Delete an asset from the mediabank.

  **Features:**
  - Delete asset by ID
  - Returns success confirmation

  **Use Cases:**
  - Remove assets from mediabank
  - Clean up unused assets

  #### 6. Create Asset Version
  Add a new version to an existing asset.

  **Features:**
  - Add new version with filename
  - Associate uploaded file via upload handle
  - Part of the file upload workflow

  **Use Cases:**
  - Upload new file versions
  - Replace asset files
  - Add additional versions to assets

  ### Upload Operations

  #### 7. Request Upload Location
  Request an upload URL and handle for file uploads.

  **Features:**
  - Get upload URL for file upload
  - Receive upload handle for version creation
  - Specify filename and file size

  **Use Cases:**
  - Prepare for file upload
  - Get upload credentials
  - Part of the upload workflow

  **Returns:**
  - `url`: The upload URL where the file should be uploaded
  - `handle`: The upload handle needed for version creation

  #### 8. Upload Binary
  Upload a binary file to a provided upload URL and optionally create a new asset version.

  **Features:**
  - Upload binary files directly from input items
  - Uploads to a provided upload URL (from Request Upload Location)
  - Optional checkbox to create a new asset version after upload
  - Requires upload URL and handle from Request Upload Location operation

  **Use Cases:**
  - Upload files from previous nodes (e.g., HTTP Request, File System)
  - Upload and create version in a single operation
  - Complete the upload workflow after requesting upload location

  **Upload Workflow:**
  1. **Request Upload Location** - Get upload URL and handle
  2. **Upload Binary** - Upload file to the URL and optionally create version
     - Select binary property from input item
     - Provide upload URL and handle from step 1
     - Optionally enable "Create Version After Upload" checkbox
     - If enabled, provide Asset ID and filename for version creation

  ### Collection Operations

  #### 9. Search Collections
  Search for collections by name or parent collection.

  **Features:**
  - Search by collection name
  - Filter by parent collection ID
  - Recursive search (include sub-collections)
  - Pagination support
  - Locale support

  **Use Cases:**
  - Find collections by name
  - List collections in a parent
  - Navigate collection hierarchy
  - Search recursively through sub-collections

  ### Asset Type Operations

  #### 10. Get Asset Type
  Retrieve asset type definition with information fields.

  **Features:**
  - Get asset type by ID
  - Retrieve information field definitions
  - Locale support for localized field names

  **Use Cases:**
  - Understand asset type structure
  - Get field definitions for metadata mapping
  - Discover available information fields

  ## Credentials

  The node uses a custom credential type **"Celum Mediabank API"** with the following fields:

  - **API Key** (required): Your Celum Mediabank API key for authentication
  - **Base URL** (required): Your Celum Mediabank instance URL (e.g., `https://your-instance.celum.cloud/content-api/v1`)

  The credential uses HTTP header authentication with the `X-API-KEY` header.

  ## Project Structure

  ```
  n8n-nodes-celum-mediabank/
  ├── src/
  │   ├── credentials/
  │   │   └── CelumMediabank.credentials.ts    # Credential definition
  │   └── nodes/
  │       └── CelumMediabank/
  │           ├── CelumMediabank.node.ts       # Main node implementation
  │           ├── CelumMediabank.node.json    # Node metadata
  │           ├── GenericFunctions.ts          # Shared API functions
  │           ├── celummediabank.svg          # Node icon
  │           └── actions/                     # Operation implementations
  │               ├── index.ts                 # Operation registry
  │               ├── searchAssets.operation.ts
  │               ├── getAsset.operation.ts
  │               ├── createAsset.operation.ts
  │               ├── updateAsset.operation.ts
  │               ├── deleteAsset.operation.ts
  │               ├── createAssetVersion.operation.ts
  │               ├── requestUploadLocation.operation.ts
  │               ├── searchCollections.operation.ts
  │               ├── getAssetType.operation.ts
  │               └── filterTypes.ts           # Filter type definitions
  ├── dist/                                    # Compiled output
  ├── scripts/
  │   └── fix-node-exports.js                 # Build script
  ├── package.json
  ├── tsconfig.json
  └── README.md
  ```

  ## Development

  ### Prerequisites

  - Node.js (v22 or higher)
  - pnpm (recommended) or npm/yarn

  ### Setup

  ```bash
  # Clone the repository
  git clone https://github.com/MikaelX/n8n-nodes-celum-mediabank.git
  cd n8n-nodes-celum-mediabank

  # Install dependencies
  pnpm install
  ```

  ### Development Commands

  ```bash
  # Start development server (includes n8n)
  pnpm dev

  # Build for production
  pnpm build

  # Build in watch mode
  pnpm build:watch

  # Run linter
  pnpm lint
  pnpm lint:fix

  # Type check
  pnpm typecheck

  # Create release
  pnpm release
  ```

  ### Development Mode with External n8n

  If you have n8n running separately:

  ```bash
  # Build and link to your running n8n instance
  pnpm build
  pnpm dev --external-n8n
  ```

  This links the node to `~/.n8n/custom/` and watches for changes.

  ## Examples

  ### Example 1: Search for Asset by UUID

  ```json
  {
    "operation": "searchAssets",
    "searchText": "your-uuid-here",
    "filterType": "ASSET_FULLTEXT",
    "page": 1,
    "size": 20,
    "sortField": "creation.date",
    "sortOrder": "DESC"
  }
  ```

  ### Example 2: Create Asset with Metadata

  ```json
  {
    "operation": "createAsset",
    "name": "My Asset",
    "parentId": 12345,
    "typeId": 2200,
    "informationFieldValues": "[{\"id\": 643, \"value\": \"example\", \"type\": \"TEXT\"}]"
  }
  ```

  ### Example 3: Upload File Workflow

  **Step 1: Request Upload Location**
  ```json
  {
    "operation": "requestUploadLocation",
    "filename": "image.jpg",
    "filesize": 1024000
  }
  ```

  **Step 2: Upload Binary**
  ```json
  {
    "operation": "uploadBinary",
    "uploadUrl": "{{ $json.url }}",
    "uploadHandle": "{{ $json.handle }}",
    "binaryPropertyName": "data",
    "createVersion": true,
    "assetId": 12345,
    "filename": "image.jpg"
  }
  ```

  **Complete Workflow:**
  1. Request upload location to get URL and handle
  2. Upload binary file to the returned URL
  3. Optionally create version using the handle

  ## API Documentation

  For detailed API documentation, refer to the [Celum Mediabank API documentation](https://docs.celum.com).

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  ## License

  MIT License - see [LICENSE.md](LICENSE.md) for details.

  ## Support

  For issues, feature requests, or questions:
  - Open an issue on [GitHub](https://github.com/MikaelX/n8n-nodes-celum-mediabank/issues)
  - Check the [n8n Community Forum](https://community.n8n.io/)

ai_documentation_summary:
  {"purpose":"The Celum Mediabank node enables full CRUD operations for managing digital assets in Celum Mediabank, including searching, creating, updating, deleting assets, and uploading files via API integration.","capabilities":["Search assets with full-text and field-based filters, pagination, and sorting","Retrieve detailed asset information with customizable fields and locale support","Create, update, and delete assets with metadata and lock status management","Create asset versions with file uploads","Request upload locations to obtain upload URLs and handles","Upload binary files to specified upload URLs and optionally create asset versions","Support for multiple sort orders and filter types","Permission evaluation during asset retrieval","Type-safe TypeScript implementation with modular design"],"authentication":"API key required via a custom credential type with Base URL and API Key configuration","commonUseCases":["Search and retrieve digital assets by name, UUID, or metadata","Create and manage asset metadata and versions","Upload files to Mediabank with version control","Update asset information or lock status","Delete unused or obsolete assets"],"limitations":[],"relatedNodes":["HTTP Request","File System","n8n core nodes for data transformation and workflow control"]}


node_type: @formbricks/n8n-nodes-formbricks.Formbricks
package_name: @formbricks/n8n-nodes-formbricks
display_name: Formbricks
description: A n8n node to connect Formbricks and send survey data to hundreds of other apps.
category: Community
development_style: declarative
version: 1.0.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: matthiasnannt
author_github_url: git+https://github.com/formbricks/formbricks.git
npm_package_name: @formbricks/n8n-nodes-formbricks
npm_version: 1.0.2
community_fetched_at: 2026-01-07T20:08:17.625Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-formbricks

  This is an n8n community node. It lets you use Formbricks in your n8n workflows.

  Formbricks is an open-source experience management solution that lets you understand what customers think & feel about your product by running highly targeted surveys inside your product.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials) <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage) <!-- delete if not using this section -->  
  [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  Run workflows on new responses you receive for your surveys.

  ## Credentials

  You can use this integration in Formbricks Cloud as well as self-hosted instances of Formbricks. You only need a Formbricks API Key for this. Please check out the [Formbricks Docs]() for more information.

  ## Compatibility

  This package was developed & tested with n8n > 1.4.0.

  ## Usage

  Please check out the [Formbricks Docs](https://formbricks.com/docs/api/api-key-setup) for more information on how to use the integration.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Formbricks Docs](https://formbricks.com/docs/integrations/n8n)

ai_documentation_summary:
  {"purpose":"The Formbricks n8n node enables integration with Formbricks to send survey response data to other apps within n8n workflows, allowing for real-time processing of customer feedback from targeted surveys.","capabilities":["Trigger workflows on new survey responses","Send survey data to external applications","Support for both Formbricks Cloud and self-hosted instances"],"authentication":"API key required","commonUseCases":["Automatically triggering actions when a user completes a survey","Pushing survey responses to CRM, analytics, or marketing tools","Building feedback loops for product improvement based on user input"],"limitations":[],"relatedNodes":["n8n nodes for data processing","n8n nodes for CRM or analytics integration"]}


node_type: n8n-nodes-whazing.Whazing
package_name: n8n-nodes-whazing
display_name: Whazing
description: n8n node for Whazing API integration
category: Community
development_style: declarative
version: 2.1.7
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: nortweb
author_github_url: git+https://github.com/whazing/n8n-nodes-whazing.git
npm_package_name: n8n-nodes-whazing
npm_version: 2.1.7
community_fetched_at: 2026-01-07T20:08:17.626Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-whazing

  [![npm version](https://badge.fury.io/js/n8n-nodes-whazing.svg)](https://badge.fury.io/js/n8n-nodes-whazing)
  [![Downloads](https://img.shields.io/npm/dm/n8n-nodes-whazing.svg)](https://www.npmjs.com/package/n8n-nodes-whazing)

  This package contains a [n8n](https://n8n.io/) node to integrate with the Whazing API for WhatsApp messaging and customer service automation.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Credentials

  The node uses the following credentials:

  - **Base URL**: The base URL of the Whazing API (e.g., `https://api.whazing.com.br`)
  - **Token**: Bearer token for authentication
  - **External Key**: External key for message identification

  ## Operations

  ### Message Operations

  - **Send Text**: Send a simple text message
  - **Send File**: Send files via upload, base64, or URL
  - **Send Location**: Send location information
  - **Send Button**: Send interactive button messages

  ### Ticket Operations

  - **Create**: Create a new support ticket
  - **Get**: Retrieve ticket information
  - **List Messages**: Get all messages from a ticket
  - **Set Queue**: Assign ticket to a specific queue

  ### Contact Operations

  - **Create**: Create a new contact
  - **Set CRM**: Set CRM information for a contact
  - **Set Follow-up**: Set follow-up information
  - **Set Tag**: Add tags to a contact

  ## Usage

  1. Add the Whazing node to your n8n workflow
  2. Configure the credentials with your API details
  3. Select the resource and operation you want to perform
  4. Fill in the required parameters
  5. Execute the workflow

  ## Development

  To build the node:

  ```bash
  npm run build
  ```

  To run in development mode:

  ```bash
  npm run dev
  ```

  ## License

  MIT

  ## Support

  For support, please contact [Whazing](https://www.whazing.com.br) or create an issue in this repository.

ai_documentation_summary:
  {"purpose":"The Whazing n8n node enables integration with the Whazing API to automate WhatsApp messaging and customer service operations, including sending messages, managing support tickets, and handling contact information.","capabilities":["Send text messages","Send files via upload, base64, or URL","Send location messages","Send interactive button messages","Create support tickets","Retrieve ticket details","List messages from a ticket","Assign tickets to queues","Create contacts","Set CRM information for contacts"],"authentication":"Bearer token required via 'Token' credential; Base URL and External Key are also required for authentication and message identification","commonUseCases":["Automated customer support via WhatsApp","Sending transactional or promotional messages","Creating and tracking support tickets","Managing customer contacts with tags and follow-ups"],"limitations":[],"relatedNodes":["n8n-nodes-base.whatsapp","n8n-nodes-base.support-ticket","n8n-nodes-base.contact-management"]}


node_type: n8n-nodes-flowengine.Flowengine
package_name: n8n-nodes-flowengine
display_name: Flowengine
category: Community
development_style: declarative
version: 1.10.22
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: flowengine.cloud
author_github_url: git+https://github.com/Ami3466/n8n-nodes-flowengine.git
npm_package_name: n8n-nodes-flowengine
npm_version: 1.10.22
community_fetched_at: 2026-01-07T20:08:17.628Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  n8n nodes for FlowEngine AI + Zero-Setup Email Testing + AI Session Manager + Data Cleaner - AI automation made easy

npm_readme:
  # n8n-nodes-flowengine

  **FlowEngine — Simplifying n8n** - Making workflow automation easier with AI-powered tools.

  This package provides:
  - **FlowEngine AI workflow builder** - Build complete, validated workflows from plain text
  - **FlowEngine LLM Chat Model** - Use all AI models with one API key from FlowEngine (pre-configured for FlowEngine-hosted n8n)
  - **FlowEngine Session ID** - The missing link for AI Agent setup - generate and manage session IDs effortlessly
  - **FlowEngine Data Standardize & Clean** - Clean and transform data without code - deduplicate, format phones, normalize emails, and more
  - **Send Email Test** - Free zero-setup email testing, no API key needed

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-flowengine` in **Enter npm package name**
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes
  5. Select **Install**

  ### Manual Installation

  To get started install the package in your n8n root directory:

  ```bash
  npm install n8n-nodes-flowengine
  ```

  For Docker-based deployments add the following line before the font installation command in your [n8n Dockerfile](https://github.com/n8n-io/n8n/blob/master/docker/images/n8n/Dockerfile):

  ```
  RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-flowengine
  ```

  ## Nodes

  This package includes **5 powerful nodes**:

  ### 1. Send Email Test

  **Free zero-setup email testing** - No API key or SMTP configuration required!

  Send test emails and instantly get the full email content embedded in the n8n output. Perfect for testing email workflows, templates, and automation without any setup.

  **Features:**
  - ✅ **No Setup Required** - Auto-generates test email accounts via Ethereal.email
  - ✅ **Embedded Email Content** - Full email (HTML, text, headers, attachments) in n8n output
  - ✅ **Instant Preview** - Click URL to view email in browser
  - ✅ **Text & HTML Support** - Send plain text or HTML emails
  - ✅ **Auto-Cached Credentials** - Reuses account for 48 hours per workflow
  - ✅ **IMAP Fetching** - Retrieves sent email via IMAP automatically

  **Parameters:**
  - **To Email**: Recipient address (any email - won't actually deliver)
  - **Subject**: Email subject line
  - **Email Body**: Text or HTML content
  - **Body Type**: Choose "Text" or "HTML"

  **Returns:**
  ```json
  {
    "success": true,
    "sentEmail": { "from": "...", "to": "...", "subject": "..." },
    "receivedEmail": {
      "subject": "...",
      "from": "...",
      "to": "...",
      "textContent": "Plain text version",
      "htmlContent": "<h1>HTML version</h1>",
      "headers": {...},
      "attachments": [...]
    },
    "previewUrl": "https://ethereal.email/message/...",
    "credentials": {
      "email": "test@ethereal.email",
      "password": "...",
      "webUrl": "https://ethereal.email"
    }
  }
  ```

  **Use Cases:**
  - Test email templates before sending to real users
  - Verify HTML rendering and formatting
  - Debug email workflows without spamming inboxes
  - Validate email content in automated tests
  - Preview transactional emails

  ---

  ### 2. FlowEngine AI Workflow Builder

  **Build complete, validated workflows from plain text** - Describe what you want and get ready-to-use n8n workflows.

  Turn natural language descriptions into fully functional n8n workflows with intelligent validation and optimization.

  **Parameters:**
  - **Message**: Describe the workflow you want to create in plain text
  - **Model**: Choose between Regular (faster, standard) or Boost (more powerful)
  - **Conversation ID** (optional): Continue an existing conversation for iterative refinement

  **Returns:**
  - `success`: Whether the request was successful
  - `response`: Complete workflow JSON or guidance
  - `conversation_id`: ID to continue the conversation
  - `credits_remaining`: Your remaining FlowEngine credits

  **Use Cases:**
  - Generate workflows from descriptions: "Create a workflow that sends daily email reports"
  - Validate and optimize existing workflows
  - Get AI assistance for complex automation logic
  - Iterate on workflows with conversational refinement

  ---

  ### 3. FlowEngine LLM Chat Model

  **Use all AI models with one API key from FlowEngine** - Access 50+ LLMs from OpenAI, Anthropic, Google, Mistral, and more.

  Pre-configured for FlowEngine-hosted n8n instances with zero setup. Self-hosted users can connect with a single FlowEngine API key.

  **Features:**
  - **One API Key, All Models**: Single FlowEngine API key unlocks 50+ LLMs, including 10 free open-source LLMs for FlowEngine hosted users
  - **Multiple Providers**: OpenAI, Anthropic (Claude), Google (Gemini), Mistral, Groq, Cohere, and more
  - **Provider Filtering**: Filter models by provider or view all available models
  - **Dynamic Model Loading**: Automatically fetches and updates available models
  - **LangChain Compatible**: Works seamlessly with AI Agent, chains, and other LangChain nodes

  **Configuration:**
  - **Provider**: Select a specific AI provider or "All Providers" to see all available models
  - **Model**: Choose from dynamically loaded models (updated in real-time)
  - **Options**:
    - Temperature (0-2): Controls randomness in responses
    - Max Tokens: Maximum length of generated responses

  **Availability:**
  - **FlowEngine-Hosted n8n**: Automatically pre-configured, no credentials needed
  - **Self-Hosted n8n**: Add your FlowEngine API key from Settings > API Access

  **Use Cases:**
  - Build AI agents with tools and memory
  - Create conversational workflows with context
  - Summarize documents and extract information
  - Generate structured outputs with multiple AI models
  - Compare responses across different providers

  ---

  ### 4. FlowEngine Session ID

  **The Missing Link for AI Agent Setup** - No more Code nodes or complex expressions just to get a session ID!

  When you add an AI Agent with Memory, it requires a `sessionId`. This node eliminates the friction by generating and managing session IDs automatically.

  **Features:**
  - ✅ **Zero External Dependencies** - Uses Node.js native `crypto.randomUUID()`
  - ✅ **Two Modes** - Simple generation or loop-persistent sessions
  - ✅ **Loop Amnesia Fix** - Maintains the same session ID across loop iterations
  - ✅ **No Configuration** - Works out of the box

  **Mode 1: Generate New ID**
  Creates a fresh UUID v4 for each execution. Perfect for:
  - Starting new AI conversations
  - Stateless AI interactions
  - Each workflow run = new session

  **Mode 2: Manage Loop Session**
  Persists one session ID across multiple loop iterations using `getWorkflowStaticData`. Perfect for:
  - Processing multiple items in a loop with the same AI Agent
  - Building multi-turn conversations within a single workflow run
  - Any scenario where the AI needs to "remember" across iterations

  **Parameters:**
  | Parameter | Mode | Description |
  |-----------|------|-------------|
  | Mode | All | Choose between "Generate New ID" or "Manage Loop Session" |
  | Session Key | Loop | Unique key to store/retrieve session from static data |
  | Reset Session | Loop | Force generate a new ID, replacing any existing one |

  **Returns:**
  ```json
  {
    "sessionId": "550e8400-e29b-41d4-a716-446655440000"
  }
  ```

  **Example Workflows:**

  Basic AI Agent Setup:
  ```
  [Trigger] → [FlowEngine Session ID] → [AI Agent with Memory]
  ```

  Loop with Persistent Memory:
  ```
  [Trigger] → [Split In Batches] → [FlowEngine Session ID (Manage Loop)] → [AI Agent] → [Loop]
  ```

  ---

  ### 5. FlowEngine Data Standardize & Clean

  **Stop writing Code Nodes to clean your data. Use this.**

  A production-ready node that cleans and transforms messy data without writing a single line of code. Built with zero runtime dependencies.

  **Operations:**

  #### Deduplicate (Fuzzy)
  Remove duplicate records using intelligent fuzzy matching (Jaro-Winkler/Levenshtein algorithms).

  | Parameter | Description | Default |
  |-----------|-------------|---------|
  | Fields to Check | Comma-separated field names to compare | Required |
  | Fuzzy Threshold | Similarity threshold (0.0-1.0) | 0.8 |
  | Output Duplicate Info | Include metadata about removed duplicates | false |

  #### Clean Phone Numbers
  Format phone numbers to E.164 international standard (`+15550001111`).

  | Parameter | Description | Default |
  |-----------|-------------|---------|
  | Phone Field | Field containing phone number | `phone` |
  | Default Country Code | Country code when not detected | `1` (US/Canada) |
  | Output Field | Save to different field (optional) | Same as input |

  #### Smart Capitalization
  Convert text to proper Title Case with intelligent handling of common patterns.
  - `jOhN dOE` → `John Doe`
  - Preserves acronyms: `IBM`, `NASA`, `CEO`
  - Handles articles: `The Lord of the Rings`

  #### Normalize Email
  Clean and standardize email addresses.
  - Trims whitespace
  - Converts to lowercase
  - Corrects common domain typos (`gmial.com` → `gmail.com`)

  #### Clean Object Keys
  Transform all JSON keys to consistent naming convention.
  - `snake_case`: `firstName` → `first_name`
  - `camelCase`: `first_name` → `firstName`

  **Features:**
  - ✅ **Zero Runtime Dependencies** - All algorithms implemented natively
  - ✅ **Nested Field Support** - Use dot notation (`contact.phone.mobile`)
  - ✅ **Production Ready** - Handles edge cases and validation

  ## Credentials

  You need a FlowEngine API key to use the FlowEngine Chat and FlowEngine LLM nodes.

  ### Getting Your API Key

  1. Sign up at [flowengine.cloud](https://flowengine.cloud)
  2. Go to **Settings > API Access**
  3. Click **Generate API Key**
  4. Copy and save your API key securely

  ### Setting Up Credentials in n8n

  1. Go to **Credentials** in n8n
  2. Click **Create New**
  3. Search for **FlowEngine API**
  4. Paste your API key
  5. Click **Save**

  **Note:** The same FlowEngine API credentials work for both the FlowEngine Chat node and the FlowEngine LLM Chat Model node. If you're hosting on FlowEngine, credentials are auto-configured.

  ## Compatibility

  Tested with n8n version 0.228.0+

  ## Usage

  ### Send Email Test Node Examples

  #### Example: Test HTML Email Template

  1. Add a **Send Email Test** node
  2. **To Email**: `customer@example.com` (any address - won't deliver)
  3. **Subject**: `Welcome to Our Service!`
  4. **Body Type**: HTML
  5. **Email Body**:
  ```html
  <h1>Welcome!</h1>
  <p>Thanks for signing up, <strong>{{name}}</strong>!</p>
  <a href="https://example.com">Get Started</a>
  ```
  6. Execute and check `receivedEmail.htmlContent` in output

  #### Example: Verify Email Workflow

  1. **HTTP Request** node - Fetch user data
  2. **Code** node - Generate personalized email HTML
  3. **Send Email Test** node - Test the generated email
  4. **IF** node - Check if `receivedEmail.htmlContent` contains expected content
  5. **Send Email** node (real SMTP) - Send only if test passes

  #### Example: Email A/B Testing

  1. Create two **Send Email Test** nodes with different templates
  2. Compare `receivedEmail.textContent` and `htmlContent` from both
  3. Use **Code** node to analyze which performs better
  4. Route to winning template for production

  ---

  ### FlowEngine Node Examples

  #### Example: Simple AI Chat

  1. Add a **FlowEngine** node
  2. Set **Operation** to **Send Message**
  3. Enter your message: `Create a workflow that sends daily email reports`
  4. Choose **Model**: Regular or Boost
  5. Execute the workflow

  #### Example: Conversational Workflow

  1. **First Message** - FlowEngine node with initial question
  2. **Follow-up** - Another FlowEngine node using the `conversation_id` from the first response
  3. This maintains context across multiple AI interactions

  #### Example: Dynamic Messages

  Use expressions to create dynamic messages:

  ```
  {{ $json.userInput }}
  ```

  This allows you to pass data from previous nodes into FlowEngine.

  ### FlowEngine LLM Chat Model Examples

  #### Example: AI Agent with Tools

  1. Add an **AI Agent** node
  2. Connect a **FlowEngine LLM Chat Model** node to the Language Model input
  3. Select provider (e.g., "Anthropic") and model (e.g., "claude-3-5-sonnet-20241022")
  4. Add tool nodes (HTTP Request, Code, etc.) to the Tools input
  5. Configure the agent with your prompt and memory
  6. The agent can now use multiple AI models with custom tools

  #### Example: Document Summarization

  1. Add a **Summarization Chain** node
  2. Connect a **FlowEngine LLM Chat Model** node
  3. Choose a fast model like "gpt-4o-mini" or "claude-3-5-haiku"
  4. Pass your document text to the chain
  5. Get concise summaries using different AI providers

  #### Example: Multi-Model Comparison

  1. Create multiple **FlowEngine LLM Chat Model** nodes
  2. Set each to a different provider (OpenAI, Anthropic, Google, etc.)
  3. Connect them to a **Basic LLM Chain**
  4. Run the same prompt through different models
  5. Compare responses and quality across providers

  ---

  ### FlowEngine Session ID Node Examples

  #### Example: Quick AI Agent Setup

  1. Add a **Trigger** node (Manual, Webhook, etc.)
  2. Add a **FlowEngine Session ID** node
  3. Set **Mode**: Generate New ID
  4. Add an **AI Agent** node
  5. In the AI Agent, set **Session ID** to: `{{ $json.sessionId }}`
  6. Done! Each execution gets a fresh session.

  #### Example: Loop with Persistent Memory

  When processing multiple items where the AI needs to remember previous iterations:

  1. **Trigger** node with multiple items
  2. **Split In Batches** node (batch size 1)
  3. **FlowEngine Session ID** node
     - Mode: `Manage Loop Session`
     - Session Key: `customerSupportSession`
  4. **AI Agent** node using `{{ $json.sessionId }}`
  5. **Loop** back to Split In Batches

  The AI will maintain conversation context across all items in the loop.

  #### Example: Multiple Parallel Conversations

  For workflows handling multiple independent conversations:

  1. Add multiple **FlowEngine Session ID** nodes
  2. Set different **Session Keys** for each (e.g., `agent1Session`, `agent2Session`)
  3. Each AI Agent gets its own persistent session

  ---

  ### FlowEngine Data Standardize & Clean Node Examples

  #### Example: Clean Contact List

  1. Add a **FlowEngine Data Standardize & Clean** node
  2. Set **Operation**: Deduplicate (Fuzzy)
  3. **Fields to Check**: `name, email`
  4. **Fuzzy Threshold**: `0.8`
  5. Duplicate contacts like "John Smith" and "Jon Smith" are merged

  #### Example: Format Phone Numbers

  1. Add a **FlowEngine Data Standardize & Clean** node
  2. Set **Operation**: Clean Phone Numbers
  3. **Phone Field**: `phone`
  4. **Default Country Code**: `1`
  5. Input: `(555) 000-1111` → Output: `+15550001111`

  #### Example: Normalize API Response

  1. Add a **FlowEngine Data Standardize & Clean** node
  2. Set **Operation**: Clean Object Keys
  3. **Key Format**: `snake_case`
  4. Input: `{ "firstName": "John", "lastName": "Doe" }`
  5. Output: `{ "first_name": "John", "last_name": "Doe" }`

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [FlowEngine API Documentation](https://app.flowengine.cloud/api-docs)
  * [FlowEngine Website](https://flowengine.cloud)

  ## Version history

  ### 1.9.2 (Latest)

  - Renamed nodes for better clarity:
    - "FlowEngine Session ID" - Generate and manage session IDs for AI Agents
    - "FlowEngine Data Standardize & Clean" - Clean and transform data without code

  ### 1.9.1

  - Build and packaging fixes for FlowEngine Session ID and FlowEngine Data Standardize & Clean nodes
  - Verified all node exports and configurations

  ### 1.9.0

  - **NEW: FlowEngine Data Standardize & Clean Node** - Clean and transform data without code
    - Deduplicate (Fuzzy): Remove duplicates using Jaro-Winkler/Levenshtein algorithms
    - Clean Phone Numbers: Format to E.164 standard (+15550001111)
    - Smart Capitalization: Intelligent Title Case conversion
    - Normalize Email: Trim, lowercase, fix common typos
    - Clean Object Keys: Transform to snake_case or camelCase
    - Zero runtime dependencies - all algorithms implemented natively
    - Supports nested fields with dot notation

  ### 1.8.0

  - **NEW: FlowEngine Session ID Node** - The missing link for AI Agent setup
    - Generate UUID v4 session IDs with zero configuration
    - Manage Loop Session mode for persistent sessions across loop iterations
    - Solves the "Loop Amnesia" problem with `getWorkflowStaticData`
    - Zero external dependencies - uses native Node.js `crypto.randomUUID()`
    - No API key required

  ### 1.6.0

  - **FlowEngine LLM Node Update**: Now uses shared FlowEngine API credentials
    - Same credentials work across all FlowEngine nodes (Chat, LLM)
    - Auto-configured for FlowEngine-hosted instances
    - Self-hosted users can add FlowEngine API key from Settings
    - Improved messaging and user experience
    - Removed internal implementation references

  ### 1.5.2

  - Rebranded Send Email Test node to "FlowEngine Send Email Test"
  - Updated node icon to FlowEngine logo for consistent branding

  ### 1.5.0

  - **NEW: Send Email Test Node** - Zero-setup email testing
    - Auto-generated Ethereal.email test accounts
    - Embedded email content via IMAP (HTML, text, headers, attachments)
    - Instant preview URLs
    - 48-hour credential caching per workflow
    - No SMTP configuration required
  - Added dependencies: `nodemailer`, `imapflow`, `mailparser`
  - Updated README with comprehensive examples

  ### 1.3.0

  - Added FlowEngine LLM Chat Model node (LangChain-compatible)
  - Dynamic model and provider loading
  - Support for 100+ AI models across multiple providers
  - Manual API key option for testing (hidden in Options)
  - Upgraded to TypeScript 5.7

  ### 1.2.0

  - Initial FlowEngine LLM node implementation
  - Added @langchain/openai dependency

  ### 1.1.0

  - Added FlowEngine LLM operation to main node
  - Support for environment-based LLM access

  ### 1.0.0

  Initial release with:
  - Send Message operation
  - Regular and Boost model selection
  - Conversation management
  - Full API integration

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The FlowEngine package simplifies AI-powered workflow automation in n8n by providing nodes for building AI workflows from text, using multiple LLMs with a single API key, managing AI sessions, cleaning data, and testing emails without setup.","capabilities":["Build complete, validated n8n workflows from plain text descriptions","Access 50+ AI models (OpenAI, Anthropic, Google, Mistral, etc.) via a single API key","Generate and manage AI session IDs for persistent AI agent conversations","Clean and standardize data (deduplicate, format phone numbers, normalize emails)","Send test emails with full content preview and IMAP fetching via Ethereal.email"],"authentication":"FlowEngine LLM Chat Model requires a FlowEngine API key (required for self-hosted n8n; pre-configured for FlowEngine-hosted n8n). Send Email Test requires no authentication. FlowEngine AI Workflow Builder and Session ID do not explicitly require authentication in the README.","commonUseCases":["Generate automated workflows from natural language descriptions","Test email templates and content before sending to real users","Clean and standardize data without writing code","Build AI agents with memory and context using session IDs","Compare AI model outputs across providers for better decision-making"],"limitations":["FlowEngine Session ID node description is truncated in the README","No details on rate limits, model performance, or error handling for AI models","Email testing is limited to Ethereal.email and does not send actual emails"],"relatedNodes":["AI Agent","LangChain","Data Cleaning","Email","Workflow Builder"]}


node_type: @pixelinfinito/n8n-nodes-chatwoot.Chatwoot
package_name: @pixelinfinito/n8n-nodes-chatwoot
display_name: Chatwoot
description: n8n community node for Chatwoot API integration
category: Community
development_style: declarative
version: 0.3.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: mctlisboa
author_github_url: git+https://github.com/pixelinfinito/n8n-nodes-chatwoot.git
npm_package_name: @pixelinfinito/n8n-nodes-chatwoot
npm_version: 0.3.1
community_fetched_at: 2026-01-07T20:08:17.628Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # @pixelinfinito/n8n-nodes-chatwoot

  [![npm version](https://badge.fury.io/js/@pixelinfinito/n8n-nodes-chatwoot.svg)](https://badge.fury.io/js/@pixelinfinito/n8n-nodes-chatwoot)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  A comprehensive n8n community node for integrating with Chatwoot API. This node provides full access to Chatwoot's Application APIs for managing contacts, conversations, messages, and more.

  ## 🚀 Features

  - **🔄 Custom JSON Mode**: Choose between structured UI fields or raw JSON for maximum flexibility
  - **💬 Interactive Messages**: Support for forms, cards, options, and articles
  - **📊 Complete API Coverage**: All major Chatwoot Application API endpoints
  - **🔧 Debug Logging**: Built-in console logging for troubleshooting
  - **✨ Multiple Resources**: Account, Contact, Conversation, Message, Inbox, Canned Response, Webhook, Team, and Label operations
  - **🔐 Simplified Authentication**: Streamlined Application API authentication
  - **📄 Pagination Support**: Built-in pagination for list operations
  - **⚡ Error Handling**: Comprehensive error handling with continue on fail option
  - **📝 TypeScript**: Fully typed with TypeScript for better development experience

  ## 🎯 Send Modes

  Each operation that sends data (create/update) offers two modes:

  ### 🎨 Structured Fields Mode *(Default)*
  User-friendly form fields with validation and guidance. Perfect for beginners and simple use cases.

  ### ⚡ Custom JSON Mode  
  Raw JSON input for advanced users who need:
  - Full control over API payloads
  - Access to any Chatwoot API feature
  - Complex nested objects
  - Custom attributes not in the UI
  - Dynamic workflows with computed JSON

  ## 📋 Resources & Operations

  ### 👤 Account
  - **Get**: Retrieve account details

  ### 👥 Contact
  - **Get**: Get a contact by ID
  - **Get All**: List all contacts with pagination and filtering
  - **Create**: Create a new contact (🔄 *Custom JSON supported*)
  - **Update**: Update contact information (🔄 *Custom JSON supported*)
  - **Delete**: Delete a contact
  - **Search**: Search contacts by name, email, or phone

  ### 💬 Conversation
  - **Get**: Get a conversation by ID
  - **Get All**: List all conversations with filtering
  - **Update Status**: Change conversation status (open, resolved, pending)
  - **Add Labels**: Add labels to conversations
  - **Update Custom Attributes**: Set custom attributes

  ### 📨 Message
  - **Get**: Get a message by ID
  - **Get All**: List all messages in a conversation
  - **Create**: Send messages with full interactive support (🔄 *Custom JSON supported*)
    - 💬 **Text Messages**: Simple text content
    - 🎛️ **Interactive Options**: Dropdown/selection menus
    - 📝 **Interactive Forms**: Multi-field forms with validation
    - 🎴 **Interactive Cards**: Rich media cards with actions
    - 📄 **Interactive Articles**: Article links and descriptions

  ### 📮 Inbox
  - **Get**: Get an inbox by ID
  - **Get All**: List all inboxes

  ### 💾 Canned Response
  - **Get**: Get a canned response by ID
  - **Get All**: List all canned responses

  ### 🔗 Webhook
  - **Get**: Get a webhook by ID
  - **Get All**: List all webhooks

  ### 👨‍💼 Team
  - **Get**: Get a team by ID
  - **Get All**: List all teams

  ### 🏷️ Label
  - **Get**: Get a label by ID
  - **Get All**: List all labels

  ## 📦 Installation

  ### Using npm

  ```bash
  npm install @pixelinfinito/n8n-nodes-chatwoot
  ```

  ### Using n8n Community Nodes

  1. In n8n, go to **Settings** → **Community Nodes**
  2. Click **Install a Community Node**
  3. Enter: `@pixelinfinito/n8n-nodes-chatwoot`
  4. Click **Install**

  ## ⚙️ Setup

  ### 1. Get Your Chatwoot API Token

  1. Log in to your Chatwoot account
  2. Go to **Profile Settings** → **API Access Token**
  3. Generate an **API Access Token**
  4. Copy the token for use in n8n

  ### 2. Configure Credentials in n8n

  1. In n8n, go to **Settings** → **Credentials**
  2. Click **Add Credential**
  3. Search for **Chatwoot API**
  4. Fill in the following details:
     - **Base URL**: Your Chatwoot instance URL (e.g., `https://app.chatwoot.com`)
     - **Access Token**: Your API access token from step 1
     - **Account ID**: Your numeric account ID (usually `1` for the first account)

  ### 3. Add the Chatwoot Node

  1. In your workflow, click the **+** button
  2. Search for **Chatwoot**
  3. Select the Chatwoot node
  4. Choose your credentials
  5. Select the resource and operation you want to perform

  ## 🛠️ Usage Examples

  ### 👥 Contact Management

  #### Create Contact (Structured Fields)
  ```
  Resource: Contact
  Operation: Create
  Send: Structured Fields
  ├─ Name: John Doe
  ├─ Email: john.doe@example.com
  ├─ Phone: +1234567890
  └─ Identifier: user-001
  ```

  #### Create Contact (Custom JSON)
  ```
  Resource: Contact
  Operation: Create
  Send: Custom JSON
  └─ Custom JSON:
  {
    "name": "John Doe",
    "email": "john.doe@example.com",
    "phone_number": "+1234567890",
    "custom_attributes": {
      "company": "Acme Corp",
      "role": "Manager",
      "vip": true
    }
  }
  ```

  ### 💬 Interactive Messages

  #### Text Message (Structured Fields)
  ```
  Resource: Message
  Operation: Create
  Send: Structured Fields
  ├─ Conversation ID: 123
  ├─ Message Type: Text Message
  └─ Content: Hello! How can I help you today?
  ```

  #### Interactive Options (Structured Fields)
  ```
  Resource: Message
  Operation: Create
  Send: Structured Fields
  ├─ Conversation ID: 123
  ├─ Message Type: Interactive Options
  ├─ Message Content: Please select your department:
  └─ Select Options:
      ├─ Title: Sales | Value: sales
      ├─ Title: Support | Value: support
      └─ Title: Billing | Value: billing
  ```

  #### Interactive Cards (Custom JSON)
  ```
  Resource: Message
  Operation: Create
  Send: Custom JSON
  └─ Custom JSON:
  {
    "content": "Check out our latest products",
    "content_type": "cards",
    "content_attributes": {
      "items": [
        {
          "title": "Premium Plan",
          "description": "Advanced features for power users",
          "media_url": "https://example.com/premium.jpg",
          "actions": [
            {
              "type": "link",
              "text": "Learn More",
              "uri": "https://example.com/premium"
            },
            {
              "type": "postback", 
              "text": "Subscribe",
              "payload": "SUBSCRIBE_PREMIUM"
            }
          ]
        }
      ]
    },
    "message_type": "outgoing",
    "private": false
  }
  ```

  #### Interactive Form (Structured Fields)
  ```
  Resource: Message
  Operation: Create
  Send: Structured Fields
  ├─ Conversation ID: 123
  ├─ Message Type: Interactive Form
  ├─ Form Content: Please fill out your information:
  └─ Form Fields:
      ├─ Field: Name | Type: text | Required: true
      ├─ Field: Email | Type: email | Required: true
      └─ Field: Message | Type: text_area | Required: false
  ```

  ### 🔍 Search and Filter

  #### Search Contacts
  ```
  Resource: Contact
  Operation: Search
  ├─ Search Query: john@example.com
  └─ Sort: name
  ```

  #### Get All Conversations with Filtering
  ```
  Resource: Conversation
  Operation: Get All
  ├─ Return All: false
  ├─ Limit: 50
  ├─ Status: open
  ├─ Inbox ID: 1
  └─ Labels: urgent,vip
  ```

  ## 🧪 Advanced Usage

  ### Custom JSON Examples

  #### Contact with Custom Attributes
  ```json
  {
    "name": "Jane Smith",
    "email": "jane.smith@company.com",
    "phone_number": "+1987654321",
    "custom_attributes": {
      "company": "Tech Corp",
      "department": "Engineering",
      "team_lead": true,
      "onboarding_completed": true,
      "subscription_tier": "enterprise"
    }
  }
  ```

  #### Interactive Form with All Field Types
  ```json
  {
    "content": "Complete your profile",
    "content_type": "form",
    "content_attributes": {
      "items": [
        {
          "name": "full_name",
          "label": "Full Name",
          "type": "text",
          "placeholder": "Enter your full name",
          "default": ""
        },
        {
          "name": "email",
          "label": "Email Address", 
          "type": "email",
          "placeholder": "you@example.com"
        },
        {
          "name": "company_size",
          "label": "Company Size",
          "type": "select",
          "options": [
            {"label": "1-10 employees", "value": "small"},
            {"label": "11-50 employees", "value": "medium"},
            {"label": "50+ employees", "value": "large"}
          ]
        },
        {
          "name": "requirements",
          "label": "Special Requirements",
          "type": "text_area",
          "placeholder": "Tell us about your needs..."
        }
      ]
    },
    "message_type": "outgoing",
    "private": false
  }
  ```

  ## 🐛 Debug Mode

  Enable debug logging to see detailed request information:

  1. Add **Debug Logging** field to any operation
  2. Set to **Yes**
  3. Check your n8n logs for detailed output including:
     - Constructed URLs
     - Request headers
     - Request bodies  
     - Response data

  Example debug output:
  ```
  [Chatwoot Debug] Resource: contact, Operation: create
  [Chatwoot Debug] Final URL: https://app.chatwoot.com/api/v1/accounts/1/contacts
  [Chatwoot Debug] Request body: {"name":"John Doe","email":"john@example.com"}
  [Chatwoot Debug] Making request to: https://app.chatwoot.com/api/v1/accounts/1/contacts
  ```

  ## 🔧 Workflow Examples

  ### Customer Support Automation

  ```
  1. Webhook Trigger (New Conversation)
     ↓
  2. Chatwoot Node (Get Contact Details)
     ↓  
  3. Condition Node (Check if VIP Customer)
     ↓
  4. Chatwoot Node (Send Automated Response)
     └─ Message Type: Interactive Options
     └─ Options: Urgent Support | Regular Support
     ↓
  5. Chatwoot Node (Add VIP Label)
  ```

  ### Contact Enrichment

  ```
  1. Schedule Trigger (Daily 9 AM)
     ↓
  2. Chatwoot Node (Get All Contacts)
     ↓
  3. Function Node (Enrich with External Data)
     ↓
  4. Chatwoot Node (Update Contact - Custom JSON)
     └─ Custom JSON: {enriched data}
  ```

  ### Interactive Onboarding

  ```
  1. Webhook Trigger (New Contact)
     ↓
  2. Chatwoot Node (Create Conversation)
     ↓
  3. Chatwoot Node (Send Welcome Form)
     └─ Message Type: Interactive Form
     └─ Fields: Name, Company, Role, Goals
     ↓
  4. Chatwoot Node (Send Resource Cards)
     └─ Message Type: Interactive Cards
     └─ Cards: Documentation, Video Tutorials, Support
  ```

  ## 📚 API Reference

  This node supports the Chatwoot Application API. For detailed API documentation:
  - [Chatwoot API Documentation](https://developers.chatwoot.com/api-reference/introduction)
  - [Application API Reference](https://developers.chatwoot.com/api-reference/application-api)
  - [Interactive Messages Guide](https://www.chatwoot.com/docs/product/others/interactive-messages/)

  ## 🔐 Authentication

  ### Application API (Supported)
  - **Use Case**: Account-level automation and agent-facing integrations
  - **Authentication**: User access token from Profile Settings
  - **Availability**: Cloud and Self-hosted installations
  - **Required**: Base URL, Access Token, Account ID

  ## ⚠️ Error Handling

  The node includes comprehensive error handling:

  - **Continue On Fail**: Option to continue workflow execution even if the node fails
  - **HTTP Error Handling**: Proper handling of API errors with meaningful messages
  - **JSON Validation**: Custom JSON is validated before sending
  - **Input Validation**: Required fields and data types are validated
  - **Debug Information**: Detailed logging for troubleshooting

  ## 🛠️ Development

  ### Prerequisites

  - Node.js >= 20.15
  - npm or yarn
  - n8n development environment

  ### Setup

  ```bash
  # Clone the repository
  git clone https://github.com/pixelinfinito/n8n-nodes-chatwoot.git
  cd n8n-nodes-chatwoot

  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Run tests
  npm test

  # Run linting
  npm run lint
  ```

  ### Testing

  ```bash
  # Run all tests
  npm test

  # Run tests in watch mode
  npm run test:watch
  ```

  ### Building

  ```bash
  # Build TypeScript
  npm run build

  # Build with watch mode
  npm run dev
  ```

  ## 🤝 Contributing

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

  ### Guidelines

  - Follow TypeScript best practices
  - Add tests for new features
  - Update documentation
  - Follow existing code style
  - Test thoroughly before submitting

  ## 📄 License

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

  ## 🆘 Support

  - **Documentation**: [Chatwoot API Docs](https://developers.chatwoot.com/api-reference/introduction)
  - **Issues**: [GitHub Issues](https://github.com/pixelinfinito/n8n-nodes-chatwoot/issues)
  - **Discussions**: [GitHub Discussions](https://github.com/pixelinfinito/n8n-nodes-chatwoot/discussions)
  - **n8n Community**: [n8n Community Forum](https://community.n8n.io/)

  ## 📋 Changelog

  ### v0.1.16 (Latest)
  - ✨ **NEW**: Custom JSON mode for create/update operations
  - ✨ **NEW**: Interactive messages support (forms, cards, options, articles)
  - ✨ **NEW**: Debug logging toggle
  - 🔧 **IMPROVED**: Simplified credentials (Application API only)
  - 🐛 **FIXED**: URL construction and authentication issues
  - 🐛 **FIXED**: Dynamic options loading for labels
  - 📝 **DOCS**: Comprehensive documentation update

  ### v0.1.15
  - 🐛 **FIXED**: Message operations with proper headers
  - 🐛 **FIXED**: Contact operations stability
  - 🔧 **IMPROVED**: Error handling and logging

  ### v0.1.0 - v0.1.14
  - 🎯 **INITIAL**: Core Chatwoot API integration
  - 📋 **FEATURES**: All major resources and operations
  - 🔐 **AUTH**: Multiple authentication types
  - 🧪 **TESTING**: Comprehensive test suite

  ## 👥 Team

  **Pixel Infinito** - Infinite value. Limitless possibilities.

  - **Website**: [https://pixel.ao](https://pixel.ao)
  - **GitHub**: [https://github.com/pixelinfinito](https://github.com/pixelinfinito)
  - **Email**: dev@pixel.ao
  - **Location**: Angola 🇦🇴

  We are a team dedicated to creating innovative solutions and contributing to the open-source community. This Chatwoot n8n node is part of our commitment to providing valuable integrations for the n8n ecosystem.

  ## 🙏 Acknowledgments

  - [Chatwoot](https://chatwoot.com/) for providing the excellent customer engagement platform
  - [n8n](https://n8n.io/) for the amazing workflow automation platform
  - The n8n community for inspiration, feedback, and support
  - All contributors and users who help improve this integration

  ---

  **Made with ❤️ by Pixel Infinito**

ai_documentation_summary:
  {"purpose":"The Chatwoot node enables seamless integration with the Chatwoot API, allowing users to manage contacts, conversations, messages, inboxes, teams, labels, and canned responses within n8n workflows.","capabilities":["Create, update, delete, and search contacts","Send interactive messages with forms, options, cards, and articles","Manage conversations including status updates and label additions","Handle messages with full interactive support in both structured and custom JSON modes","Access and manage inboxes, canned responses, webhooks, teams, and labels","Support for pagination in list operations","Error handling with continue on fail option","Custom JSON input for advanced payload control and dynamic workflows"],"authentication":"API Access Token required; configured via Base URL, Access Token, and Account ID in n8n credentials","commonUseCases":["Automated customer outreach via interactive messages","Contact management and data enrichment","Conversation status tracking and automation","Integration of chat data with CRM or marketing tools","Triggering workflows based on new messages or contact actions"],"limitations":[],"relatedNodes":["n8n nodes for CRM integration","n8n nodes for message automation","n8n nodes for workflow triggers and actions"]}


node_type: n8n-nodes-tiktok.Tiktok
package_name: n8n-nodes-tiktok
display_name: Tiktok
description: n8n node to upload videos to TikTok directly from your workflows
category: Community
development_style: declarative
version: 0.1.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: sormagec
author_github_url: git+https://github.com/bsormagec/n8n-nodes-tiktok.git
npm_package_name: n8n-nodes-tiktok
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:17.629Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-tiktok

  This is an n8n community node. It lets you upload videos to TikTok directly from your n8n workflows.

  [TikTok](https://www.tiktok.com/) is one of the world's most popular social media platforms focused on short-form video content creation and sharing.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Security](#security)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Rate Limiting](#rate-limiting)  
  [Error Handling](#error-handling)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ```bash
  npm install n8n-nodes-tiktok
  ```

  ## Operations

  - **Upload Video**: Upload a video file to TikTok
  - **Get Upload Status**: Check the status of a video upload
  - **Get Video Info**: Retrieve information about an uploaded video
  - **Delete Video**: Remove a video from your TikTok account

  ## Credentials

  To use this node, you need to have a TikTok Developer account and create an app to obtain the necessary API credentials.

  ### Prerequisites:

  1. Create a [TikTok Developer Account](https://developers.tiktok.com/)
  2. Create a new app in the TikTok Developer Portal
  3. Enable the Video Upload API for your app
  4. Obtain the following credentials:
     - Client Key (API Key)
     - Client Secret
     - Access Token (via OAuth 2.0)

  ### Setting up OAuth 2.0:

  1. In your TikTok Developer Portal, set up the OAuth 2.0 redirect URL to match your n8n instance
  2. In n8n, add new TikTok API credentials
  3. Enter your Client Key and Client Secret
  4. Complete the OAuth 2.0 flow to authorize n8n to access your TikTok account

  ## Security

  This node implements several security features to protect your data and access:

  - **Token Encryption**: Access tokens are encrypted at rest using industry-standard encryption
  - **Token Rotation**: Automatic token rotation to prevent unauthorized access
  - **Secure Token Storage**: Credentials are securely stored using n8n's credential management system
  - **Token Validation**: All API requests include token validation to ensure authenticity

  For detailed security information and best practices, see [SECURITY.md](SECURITY.md).

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Compatible with TikTok API v2.0
  - Tested on n8n versions 1.0.0 - 1.5.0

  ## Usage

  ### Uploading a Video to TikTok

  1. Add a "TikTok" node to your workflow
  2. Select the "Upload Video" operation
  3. Configure the following parameters:
     - Video File: Select a file from a previous node or specify a file path
     - Caption: Enter text for your video caption
     - Description: Add a description for your video
     - Privacy Setting: Choose between "Public", "Friends", or "Private"
     - Allow Comments: Enable or disable comments
     - Hashtags: Add relevant hashtags for your video (optional)

  ### Example Workflow

  This example workflow demonstrates how to upload a video to TikTok when a new file is added to a specific folder:

  1. Use the "Watch Folder" trigger to monitor a directory for new video files
  2. Use the "TikTok" node with the "Upload Video" operation
  3. Configure the video parameters and connect to your TikTok account
  4. Optional: Add a "Slack" node to notify you when the upload is complete

  ## Rate Limiting

  The node includes built-in rate limiting features to prevent API quota exhaustion:

  - Default limit: 100 requests per hour
  - Automatic retry mechanism with exponential backoff
  - Maximum of 5 retries per request
  - Retry delays: 1-32 seconds (exponential)
  - Real-time rate limit monitoring using TikTok API headers

  For troubleshooting rate limiting issues, see [TROUBLESHOOTING.md](TROUBLESHOOTING.md).

  ## Error Handling

  The node implements comprehensive error handling:

  - Detailed error messages with specific error codes
  - Automatic retry for recoverable errors
  - Rate limit handling with backoff strategy
  - Network error recovery
  - Validation of API responses

  Common errors and their solutions are documented in [TROUBLESHOOTING.md](TROUBLESHOOTING.md).

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [TikTok Developer Documentation](https://developers.tiktok.com/doc/overview)
  * [TikTok API Reference](https://developers.tiktok.com/doc/login-kit-web)
  * [Security Documentation](SECURITY.md)
  * [Troubleshooting Guide](TROUBLESHOOTING.md)

  ## Version history

  ### 1.0.0 (2025-05-09)

  - Added comprehensive security features:
    - Token encryption and rotation
    - Secure credential storage
    - Token validation
  - Implemented real API integration:
    - Type-safe requests
    - Response validation
    - Error handling
  - Added reliability features:
    - Rate limiting with automatic retries
    - Network error recovery
    - Comprehensive error handling

  ### 0.1.0 (2025-05-09)

  - Initial release with video upload functionality
  - Support for basic video metadata
  - OAuth 2.0 authentication implementation

ai_documentation_summary:
  {"purpose":"This n8n community node enables users to upload videos to TikTok directly from n8n workflows, supporting operations like uploading, checking upload status, retrieving video information, and deleting videos.","capabilities":["Upload a video file to TikTok","Check the status of a video upload","Retrieve information about an uploaded video","Delete a video from TikTok"],"authentication":"OAuth 2.0 required. Users must create a TikTok Developer account, set up an app, enable the Video Upload API, and obtain client key, client secret, and access token via OAuth 2.0 authorization.","commonUseCases":["Automatically upload new video files from a monitored folder to TikTok","Schedule or trigger video posts based on file arrivals or events","Add captions, descriptions, hashtags, and privacy settings during upload"],"limitations":["Requires a TikTok Developer account and app setup","Limited to TikTok API v2.0","Rate limits apply (100 requests per hour); retries with exponential backoff are limited to 5 attempts","No support for video editing or content moderation features"],"relatedNodes":["Watch Folder","Slack"]}


node_type: @mazix/n8n-nodes-converter-documents.ConverterDocuments
package_name: @mazix/n8n-nodes-converter-documents
display_name: ConverterDocuments
category: Community
development_style: declarative
version: 1.1.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: mzxs
author_github_url: git+https://github.com/mazixs/n8n-node-converter-documents.git
npm_package_name: @mazix/n8n-nodes-converter-documents
npm_version: 1.1.2
community_fetched_at: 2026-01-07T20:08:17.629Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  n8n node to convert various document formats (DOCX, XML, YML, XLS, XLSX, CSV, PDF, TXT, PPT, PPTX, HTML, JSON, ODT, ODP, ODS) to JSON or text format

npm_readme:
  # 📄 n8n Document Converter Node

  [![npm version](https://img.shields.io/npm/v/@mazix/n8n-nodes-converter-documents.svg)](https://www.npmjs.com/package/@mazix/n8n-nodes-converter-documents)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![Tests](https://img.shields.io/badge/tests-80%20passing-brightgreen.svg)](https://github.com/mazixs/n8n-node-converter-documents)
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.8-blue.svg)](https://www.typescriptlang.org/)

  > 🚀 **n8n community node** for converting various document formats to JSON/text with AI-friendly output

  ---

  ## 📑 Table of Contents

  - [Features](#-features)
  - [Supported Formats](#-supported-formats)
  - [DOCX to HTML Conversion](#-docx-to-html-conversion-v1021)
  - [XLSX Multi-Sheet Processing](#-xlsx-multi-sheet-processing)
  - [Installation](#-installation)
  - [Usage Examples](#-usage-examples)
  - [Architecture](#-architecture)
  - [Development](#-development)
  - [Latest Updates](#-latest-updates)
  - [Documentation](#-documentation)

  ---

  ## ✨ Features

  <table>
  <tr>
  <td width="50%">

  ### 🎯 Core Features
  - ✅ **12+ file formats** supported
  - ✅ Automatic file type detection
  - ✅ Hybrid processing (primary + fallback)
  - ✅ Stream processing for large files
  - ✅ Promise pooling for concurrency control
  - ✅ Comprehensive error handling

  </td>
  <td width="50%">

  ### 🔒 Security & Performance
  - ✅ Input validation & sanitization
  - ✅ XSS protection (sanitize-html)
  - ✅ Path traversal protection
  - ✅ Memory-efficient streaming
  - ✅ Configurable file size limits (up to 100MB)
  - ✅ JSON structure normalization

  </td>
  </tr>
  </table>

  ---

  ## 📚 Supported Formats

  | Category | Formats | Status |
  |----------|---------|--------|
  | **Text Documents** | DOCX, ODT, TXT, PDF | ✅ Full Support |
  | **Spreadsheets** | XLSX, ODS, CSV | ✅ Multi-sheet support |
  | **Presentations** | PPTX, ODP | ✅ Full Support |
  | **Web & Data** | HTML, HTM, XML, JSON | ✅ Full Support |
  | **E-commerce** | YML (Yandex Market) | ✅ Specialized parsing |
  | **Legacy** | DOC, PPT, XLS | ❌ Not supported* |

  > *Legacy formats require conversion to modern formats (DOCX, PPTX, XLSX)

  ---

  ## 📊 DOCX to HTML Conversion (v1.0.21+)

  > **Latest:** Node renamed to "Document Converter" in v1.0.22

  ### 🎨 Choose Your Output Format

  <table>
  <tr>
  <th width="50%">📝 Plain Text (Default)</th>
  <th width="50%">🌐 HTML Format</th>
  </tr>
  <tr>
  <td>

  **Best for:**
  - Simple text extraction
  - Minimal output size
  - Maximum speed
  - Backward compatibility

  **Output size:** ~3,600 chars

  </td>
  <td>

  **Best for:**
  - Documents with **tables**
  - AI/LLM processing
  - Preserving formatting
  - Structured content

  **Output size:** ~58,000 chars (+1,591%)

  </td>
  </tr>
  </table>

  ### 📋 Usage in n8n

  ```
  1. Add "Document Converter" node
  2. Select "Output Format (DOCX)" parameter:
     • Plain Text → Simple extraction
     • HTML → Tables + formatting preserved
  ```

  ### 💡 Example Output

  <details>
  <summary><b>Plain Text Output</b></summary>

  ```json
  {
    "text": "Situation: Often search by one field\nAction: Create index on that field"
  }
  ```
  </details>

  <details>
  <summary><b>HTML Output (with tables)</b></summary>

  ```json
  {
    "text": "<table><tr><td><strong>Situation</strong></td><td><strong>Action</strong></td></tr><tr><td>Often search by one field</td><td>Create index on that field</td></tr></table>"
  }
  ```
  </details>

  ### 🎯 HTML Format Features

  | Feature | Description |
  |---------|-------------|
  | **Tables** | `<table>`, `<tr>`, `<td>` - full structure preserved |
  | **Formatting** | `<strong>`, `<em>`, `<h1>`-`<h6>` |
  | **Lists** | `<ul>`, `<ol>`, `<li>` |
  | **Paragraphs** | `<p>` tags for structure |
  | **AI-Friendly** | ✅ Understood by ChatGPT, Claude, Gemini |

  ---

  ## � New in v1.1.0: Enhanced Controls

  ### 🧠 HTML Table Preservation
  When converting **HTML** or **DOCX** (in HTML mode), tables are now preserved in the output. This is critical for **RAG/LLM contexts**, allowing AI models to understand structured data instead of flattened text.

  ### ⚙️ Advanced CSV & Excel Control
  - **CSV Delimiter**: Manually select `,` `;` `\t` `|` or keep Auto.
  - **Max Excel Rows**: Limit rows per sheet (e.g., 1000) to prevent memory crashes on huge files.

  ---

  ## � XLSX Multi-Sheet Processing

  ### 🗂️ How It Works

  ```json
  {
    "sheets": {
      "Products": [
        { "A": "ID", "B": "Name", "C": "Price" },
        { "A": 1, "B": "Apple", "C": 100 },
        { "A": 2, "B": "Banana", "C": 50 }
      ],
      "Orders": [
        { "A": "Order", "B": "Quantity" },
        { "A": 101, "B": 5 }
      ]
    }
  }
  ```

  ### 📌 Key Features

  | Feature | Details |
  |---------|---------|
  | **Multiple Sheets** | Each sheet = separate array in `sheets` object |
  | **Column Names** | A, B, C... Z (Excel-style) |
  | **Row Format** | Array of objects (rows) |
  | **Empty Cells** | Skipped (only filled cells included) |
  | **Size Limit** | Configurable (default: 0 / unlimited) |
  | **Memory Safe** | Large files auto-limited to prevent OOM |

  ---

  ## 🚀 Installation

  ### Option 1: npm Package (Recommended)

  Via **n8n web interface**:
  ```
  Settings → Community nodes → Install
  Package name: @mazix/n8n-nodes-converter-documents
  ```

  Or via **command line**:
  ```bash
  npm install @mazix/n8n-nodes-converter-documents
  ```

  ### Option 2: Standalone Version

  ```bash
  # 1. Clone and build
  git clone https://github.com/mazixs/n8n-node-converter-documents.git
  cd n8n-node-converter-documents
  npm install
  npm run standalone

  # 2. Copy to n8n
  cp -r ./standalone ~/.n8n/custom-nodes/n8n-node-converter-documents
  cd ~/.n8n/custom-nodes/n8n-node-converter-documents
  npm install

  # 3. Restart n8n
  ```

  ### Option 3: Manual Installation

  ```bash
  mkdir -p ~/.n8n/custom-nodes/n8n-node-converter-documents
  cp dist/*.js dist/*.svg ~/.n8n/custom-nodes/n8n-node-converter-documents/
  cp package.json ~/.n8n/custom-nodes/n8n-node-converter-documents/
  cd ~/.n8n/custom-nodes/n8n-node-converter-documents
  npm install --production
  ```

  ---

  ## 📖 Usage Examples

  ### Text Document Output

  ```json
  {
    "text": "Extracted text content...",
    "metadata": {
      "fileName": "document.docx",
      "fileSize": 12345,
      "fileType": "docx",
      "processedAt": "2024-06-01T12:00:00.000Z"
    }
  }
  ```

  ### Excel Spreadsheet Output

  ```json
  {
    "sheets": {
      "Sheet1": [
        { "A": "Name", "B": "Age", "C": "City" },
        { "A": "Alice", "B": 30, "C": "Moscow" },
        { "A": "Bob", "B": 25, "C": "SPB" }
      ]
    },
    "metadata": {
      "fileName": "data.xlsx",
      "fileSize": 23456,
      "fileType": "xlsx"
    }
  }
  ```

  ### JSON Normalization

  **Input:**
  ```json
  {
    "user": {
      "name": "John",
      "address": { "city": "Moscow" }
    }
  }
  ```

  **Output (flattened):**
  ```json
  {
    "text": "{\n  \"user.name\": \"John\",\n  \"user.address.city\": \"Moscow\"\n}",
    "warning": "Multi-level JSON structure was converted to flat object"
  }
  ```

  ---

  ## 🏗️ Architecture

  ### Strategy Pattern Implementation

  ```typescript
  DOCX Processing Flow:
  ┌─────────────────────────────────────┐
  │ 1. If outputFormat === 'html':     │
  │    → mammoth.convertToHtml()       │
  │    → [Success] Return HTML          │
  │    → [Fail] Fallback to text       │
  │                                     │
  │ 2. Text mode (default):            │
  │    → officeparser (primary)        │
  │    → mammoth.extractRawText (fb)   │
  │    → XML direct parsing (last)     │
  └─────────────────────────────────────┘
  ```

  ### Technology Stack

  <table>
  <tr>
  <td width="50%">

  **Core Libraries**
  - `officeparser` (v5.1.1) - Primary parser
  - `mammoth` (v1.9.1) - DOCX processor
  - `exceljs` (v4.4.0) - Excel handler
  - `pdf-parse` (v1.1.1) - PDF fallback
  - `papaparse` (v5.5.3) - CSV parser

  </td>
  <td width="50%">

  **Build & Quality**
  - TypeScript 5.8 (strict mode)
  - Jest (80 tests passing)
  - ESLint (TypeScript rules)
  - Webpack bundling
  - CommonJS modules

  </td>
  </tr>
  </table>

  ### Security Features

  | Feature | Implementation |
  |---------|----------------|
  | **Input Validation** | Strict type & structure checks |
  | **XSS Protection** | `sanitize-html` library |
  | **Path Traversal** | File name sanitization |
  | **Memory Limits** | 10K rows/sheet, 50MB default |
  | **Dependency Audit** | Regular `npm audit` checks |

  ---

  ## 💻 Development

  ### Quick Start

  ```bash
  npm install        # Install dependencies
  npm run dev        # Watch mode
  npm run build      # Compile
  npm test           # Run 80 tests
  npm run lint       # Check code quality
  ```

  ### Build Commands

  | Command | Description |
  |---------|-------------|
  | `npm run build` | TypeScript → JavaScript |
  | `npm run bundle` | Webpack bundling |
  | `npm run standalone` | Standalone with deps |
  | `npm run test:coverage` | Coverage report |
  | `npm run lint:fix` | Auto-fix issues |

  ### Project Structure

  ```
  ├── src/
  │   ├── FileToJsonNode.node.ts  # Main node (Strategy Pattern)
  │   ├── helpers.ts               # Utilities
  │   └── errors.ts                # Custom errors
  ├── test/
  │   ├── unit/                    # Unit tests
  │   ├── integration/             # Integration tests
  │   └── samples/                 # Test files
  ├── docs/                        # Documentation
  │   ├── SOLUTION.md
  │   ├── HTML_CONVERSION_PLAN.md
  │   └── MAMMOTH_ANALYSIS.md
  └── dist/                        # Compiled output
  ```

  ---

  ## 📈 Latest Updates

  ### 🎉 v1.0.22 (Current - 2025-10-10)

  <table>
  <tr>
  <td width="50%">

  **🎨 UI & Quality**
  - ✅ **Node renamed**: "Document Converter"
  - ✅ **Icon fixed**: 60×60 (proper size)
  - ✅ **Code refactored**: -78 lines
  - ✅ **Zero duplication**: 100% eliminated
  - ✅ **Full error handling**: PPTX fixed

  </td>
  <td width="50%">

  **📚 Docs & Tests**
  - ✅ **README redesign**: Badges, TOC, tables
  - ✅ **80 tests passing** (+7 XLSX)
  - ✅ **Full JSDoc**: All functions documented
  - ✅ **Better IntelliSense**: IDE support improved
  - ✅ **Professional look**: Visual tables & icons

  </td>
  </tr>
  </table>

  **What's New:**
  ```diff
  + Node renamed to "Document Converter" (better UX)
  + Icon size fixed: 2048×1853 → 60×60
  + Code quality: eliminated all duplication
  + BaseConverterError class (DRY principle)
  + checkCFBFormat() helper (unified CFB check)
  + processViaOfficeParser() helper (unified error handling)
  + Full JSDoc documentation added
  + README complete visual redesign
  + 7 new XLSX multi-sheet tests
  ```

  ### Previous Versions

  <details>
  <summary><b>v1.0.21</b> - DOCX to HTML Conversion</summary>

  - DOCX to HTML conversion with table support
  - outputFormat parameter (text | html)
  - Table preservation in HTML
  - AI/LLM friendly output
  - 73 tests passing
  </details>

  <details>
  <summary><b>v1.0.20</b> - TextBox & Shapes Support</summary>

  - Extract text from TextBoxes and shapes
  - ONLYOFFICE document fix
  - 62 tests passing
  </details>

  <details>
  <summary><b>v1.0.19</b> - ONLYOFFICE Parser Fix</summary>

  - Fixed XML namespace extraction
  - No more schema URLs in output
  - 61 tests passing
  </details>

  ---

  ## 📚 Documentation

  | Document | Description |
  |----------|-------------|
  | [CHANGELOG.md](CHANGELOG.md) | Complete version history |
  | [SOLUTION.md](docs/SOLUTION.md) | Architecture overview |
  | [HTML_CONVERSION_PLAN.md](docs/HTML_CONVERSION_PLAN.md) | DOCX to HTML implementation |
  | [MAMMOTH_ANALYSIS.md](docs/MAMMOTH_ANALYSIS.md) | Library research findings |
  | [optimization_plan.md](docs/optimization_plan.md) | Performance strategies |
  | [security.md](docs/security.md) | Security features |

  ---

  ## 🔧 Troubleshooting

  ### Common Issues

  **Error: `Cannot find module 'exceljs'`**
  ```bash
  # Solution 1: Use standalone version (recommended)
  npm run standalone

  # Solution 2: Check dependencies
  cd ~/.n8n/custom-nodes/n8n-node-converter-documents
  npm list
  npm install
  ```

  **Large files causing OOM**
  - Split files into smaller parts
  - Reduce `maxFileSize` parameter
  - Use streaming for CSV/TXT formats

  ---

  ## ⚠️ Limitations

  | Limitation | Details | Workaround |
  |------------|---------|------------|
  | **Legacy formats** | DOC, PPT, XLS not supported | Convert to DOCX, PPTX, XLSX |
  | **Memory** | Large PDF/XLSX load into RAM | Split files or increase memory |
  | **File size** | Default 50MB limit | Configurable up to 100MB |

  ---

  ## 📊 Statistics

  - **12+** file formats supported
  - **80** tests passing
  - **5** specialized parsers
  - **10K** rows per sheet limit
  - **100MB** max file size
  - **0** critical vulnerabilities

  ---

  ## 🤝 Contributing

  Issues and pull requests are welcome!

  ---

  ## 📝 License

  MIT © mazix

  ---

  ## 🔗 Links

  - [npm Package](https://www.npmjs.com/package/@mazix/n8n-nodes-converter-documents)
  - [GitHub Repository](https://github.com/mazixs/n8n-node-converter-documents)
  - [n8n Community](https://community.n8n.io/)

  ---

  <div align="center">

  **Made with ❤️ for the n8n community**

  If you find this helpful, please ⭐ star the repository!

  </div>

ai_documentation_summary:
  {"purpose":"A community node that converts various document formats (e.g., DOCX, XLSX, PDF, HTML) into JSON or text format, with support for AI-friendly structured outputs like HTML with preserved tables and formatting.","capabilities":["Converts 12+ file formats including DOCX, XLSX, CSV, PDF, PPTX, HTML, XML, JSON, YML, TXT, ODT, ODP, ODS","Automatic file type detection","Hybrid processing with primary and fallback methods","Stream processing for large files to prevent memory issues","Configurable output format: plain text or HTML (with table and formatting preservation)","Support for multi-sheet XLSX processing with structured JSON output","Customizable CSV delimiter and row limits for large spreadsheets","Input validation, XSS protection, and path traversal prevention","Memory-efficient streaming with configurable file size limits (up to 100MB)","JSON structure normalization for consistent output"],"authentication":"None required","commonUseCases":["Extracting structured data from DOCX or PDF files for AI/LLM processing","Converting spreadsheets (XLSX, CSV) into JSON for database ingestion or API use","Preserving table structures in HTML output for RAG or semantic search workflows","Preparing legacy document formats (e.g., DOC, XLS) by converting them to modern formats","Automating document ingestion pipelines where structured, machine-readable data is needed"],"limitations":["Legacy formats (DOC, PPT, XLS) are not directly supported; require conversion to modern formats (DOCX, PPTX, XLSX)","HTML output is significantly larger than plain text (up to 1,591% increase) and may impact performance in large-scale workflows","No support for image or binary content extraction (only text and structured data)","Output for non-structured formats (e.g., plain TXT) may lack formatting or metadata"],"relatedNodes":["Text Parser","JSON Parser","Database Node","AI/LLM Nodes (e.g., OpenAI, Google Gemini)","Spreadsheet Nodes"]}


node_type: n8n-nodes-playwright.Playwright
package_name: n8n-nodes-playwright
display_name: Playwright
description: n8n-community-node-package for browser automation using Playwright
category: Community
development_style: declarative
version: 0.2.21
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: toema
author_github_url: git+https://github.com/toema/n8n-playwright.git
npm_package_name: n8n-nodes-playwright
npm_version: 0.2.21
community_fetched_at: 2026-01-07T20:08:17.630Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-playwright

  This is an n8n community node. It lets you automate browser actions using Playwright in your n8n workflows.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Custom Scripts](#custom-scripts)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ```bash
  pnpm install n8n-nodes-playwright
  ```

  **Note:** The package will automatically download and set up the required browser binaries during installation. This requires approximately 1GB of disk space.

  If you need to manually trigger the browser setup:

  ```bash
  pnpm rebuild n8n-nodes-playwright
  ```

  ## Operations

  This node supports the following operations:

  ### Standard Operations

  - **Navigate**: Go to a specified URL and retrieve page content
  - **Take Screenshot**: Capture a screenshot of a webpage (full page or viewport)
  - **Get Text**: Extract text from an element using CSS selector or XPath
  - **Click Element**: Click on an element using CSS selector or XPath
  - **Fill Form**: Fill a form field using CSS selector or XPath
  - **Run Custom Script**: Execute custom JavaScript code with full Playwright API access

  ### Browser Options

  - Choose between **Chromium**, **Firefox**, or **WebKit**
  - Configure **headless mode**
  - Adjust operation speed with **slow motion** option

  ### Selector Options

  For `Get Text`, `Click Element`, and `Fill Form` operations, you can choose between:

  - **CSS Selector**: Standard CSS selectors (e.g., `#submit-button`, `.my-class`, `button[type="submit"]`)
  - **XPath**: XPath expressions (e.g., `//button[@id="submit"]`, `//div[contains(@class, "content")]`)

  ### Screenshot Options

  - Full page capture
  - Custom save path
  - Base64 output

  ## Custom Scripts

  The **Run Custom Script** operation gives you complete control over Playwright to automate complex browser interactions, scrape data, generate PDFs/screenshots, and more. Scripts run in a sandboxed environment with access to the full Playwright API and n8n's Code node features.

  ### Available Variables

  Access Playwright-specific objects using:

  - `$page` - Current page instance
  - `$browser` - Browser instance
  - `$playwright` - Playwright library
  - `$helpers` - n8n helper methods (including `prepareBinaryData`)

  Plus all special variables and methods from the Code node are available:
  - `$json` - Current item's JSON data
  - `$input` - Access to input data
  - `$getNodeParameter()` - Get node parameters
  - And more from [n8n documentation](https://docs.n8n.io/code-examples/methods-variables-reference/)

  ### Script Examples

  #### Basic Navigation and Data Extraction

  ```javascript
  // Navigate to a URL
  await $page.goto('https://example.com');

  // Get page title and content
  const title = await $page.title();
  const content = await $page.textContent('body');

  console.log('Page title:', title);

  // Return results
  return [{
      json: { 
          title,
          content,
          url: $page.url()
      }
  }];
  ```

  #### Web Scraping with Selectors

  ```javascript
  await $page.goto('https://news.ycombinator.com');

  // Scrape all story titles
  const stories = await $page.$$eval('.titleline > a', elements => 
      elements.map(el => ({
          title: el.textContent,
          url: el.href
      }))
  );

  console.log(`Found ${stories.length} stories`);

  return stories.map(story => ({ json: story }));
  ```

  #### Form Automation

  ```javascript
  await $page.goto('https://example.com/login');

  // Fill form fields
  await $page.fill('#username', 'myuser');
  await $page.fill('#password', 'mypass');

  // Click submit button
  await $page.click('button[type="submit"]');

  // Wait for navigation
  await $page.waitForNavigation();

  console.log('Logged in successfully');

  return [{
      json: {
          success: true,
          finalUrl: $page.url()
      }
  }];
  ```

  #### Taking Screenshots as Binary Data

  ```javascript
  await $page.goto('https://www.google.com');

  // Take screenshot
  const screenshot = await $page.screenshot({ 
      type: 'png',
      fullPage: true 
  });

  // Prepare binary data
  const binaryData = await $helpers.prepareBinaryData(
      Buffer.from(screenshot),
      'screenshot.png',
      'image/png'
  );

  return [{
      json: {
          url: $page.url(),
          timestamp: new Date().toISOString()
      },
      binary: {
          screenshot: binaryData
      }
  }];
  ```

  #### Storing and Reusing Cookies

  **Script 1 - Login and Save Cookies**

  ```javascript
  await $page.goto('https://www.example.com/login');

  // Perform login
  await $page.fill('#login-username', 'user');
  await $page.fill('#login-password', 'pass');
  await $page.click('#login-button');

  // Wait for login to complete
  await $page.waitForNavigation();

  // Get browser context and save cookies
  const context = $page.context();
  const cookies = await context.cookies();

  console.log('Login successful, cookies saved');

  return [{
      json: { 
          cookies,
          loginSuccess: true
      }
  }];
  ```

  **Script 2 - Restore Cookies and Access Protected Page**

  ```javascript
  const { cookies } = $input.first().json;

  // Create new context with saved cookies
  const context = $page.context();
  await context.addCookies(cookies);

  // Navigate to authenticated page
  await $page.goto('https://example.com/protected-page');

  // Perform authenticated operations
  const data = await $page.textContent('.protected-content');

  console.log('Accessed protected page successfully');

  return [{
      json: { 
          data,
          authenticated: true
      }
  }];
  ```

  #### Advanced: Multiple Operations

  ```javascript
  await $page.goto('https://example.com/products');

  // Wait for products to load
  await $page.waitForSelector('.product-item');

  // Get all product data
  const products = await $page.$$eval('.product-item', items =>
      items.map(item => ({
          name: item.querySelector('.product-name')?.textContent,
          price: item.querySelector('.product-price')?.textContent,
          image: item.querySelector('img')?.src
      }))
  );

  // Take a screenshot
  const screenshot = await $page.screenshot({ type: 'png' });
  const screenshotBinary = await $helpers.prepareBinaryData(
      Buffer.from(screenshot),
      'products.png',
      'image/png'
  );

  console.log(`Scraped ${products.length} products`);

  return [{
      json: { 
          products,
          scrapedAt: new Date().toISOString(),
          totalProducts: products.length
      },
      binary: {
          screenshot: screenshotBinary
      }
  }];
  ```

  #### Using XPath Selectors

  ```javascript
  await $page.goto('https://example.com');

  // Use XPath to find elements
  const button = await $page.locator('xpath=//button[contains(text(), "Submit")]');
  await button.click();

  // XPath for complex selections
  const items = await $page.locator('xpath=//div[@class="item" and @data-active="true"]').all();
  const itemTexts = await Promise.all(items.map(item => item.textContent()));

  console.log(`Found ${itemTexts.length} active items`);

  return [{
      json: {
          activeItems: itemTexts
      }
  }];
  ```

  #### Error Handling

  ```javascript
  try {
      await $page.goto('https://example.com');
      
      // Try to find element with timeout
      const element = await $page.waitForSelector('.my-element', { 
          timeout: 5000 
      });
      
      const text = await element.textContent();
      
      return [{
          json: { 
              success: true,
              text 
          }
      }];
  } catch (error) {
      console.error('Error occurred:', error.message);
      
      return [{
          json: {
              success: false,
              error: error.message
          }
      }];
  }
  ```

  #### Working with Multiple Pages

  ```javascript
  // Open a new page
  const newPage = await $browser.newPage();
  await newPage.goto('https://example.com/page2');

  // Work with both pages
  const page1Title = await $page.title();
  const page2Title = await newPage.title();

  console.log('Page 1:', page1Title);
  console.log('Page 2:', page2Title);

  // Close the new page
  await newPage.close();

  return [{
      json: {
          page1Title,
          page2Title
      }
  }];
  ```

  #### Generating PDFs

  ```javascript
  await $page.goto('https://example.com');

  // Generate PDF
  const pdf = await $page.pdf({
      format: 'A4',
      printBackground: true,
      margin: {
          top: '20px',
          right: '20px',
          bottom: '20px',
          left: '20px'
      }
  });

  // Prepare binary data
  const binaryData = await $helpers.prepareBinaryData(
      Buffer.from(pdf),
      'document.pdf',
      'application/pdf'
  );

  return [{
      json: {
          url: $page.url(),
          timestamp: new Date().toISOString()
      },
      binary: {
          pdf: binaryData
      }
  }];
  ```

  #### Waiting for Dynamic Content

  ```javascript
  await $page.goto('https://example.com');

  // Wait for network to be idle
  await $page.waitForLoadState('networkidle');

  // Wait for specific element to appear
  await $page.waitForSelector('.dynamic-content', { timeout: 10000 });

  // Wait for element to be visible
  await $page.locator('.modal').waitFor({ state: 'visible' });

  // Extract data after everything has loaded
  const content = await $page.textContent('.dynamic-content');

  return [{
      json: { content }
  }];
  ```

  #### Handling File Downloads

  ```javascript
  await $page.goto('https://example.com/downloads');

  // Start waiting for download before clicking
  const downloadPromise = $page.waitForEvent('download');
  await $page.click('#download-button');

  const download = await downloadPromise;

  // Get download details
  const fileName = download.suggestedFilename();
  const downloadPath = await download.path();

  console.log(`Downloaded: ${fileName}`);

  return [{
      json: {
          fileName,
          downloadPath,
          success: true
      }
  }];
  ```

  ### Custom Script Tips

  1. **Always return an array**: Your script must return an array of objects like `return [{ json: {...} }];`
  2. **Use console.log()**: Debug by logging to the console - output appears in n8n UI during manual execution
  3. **Handle errors**: Use try-catch for robust scripts
  4. **Binary data**: Use `$helpers.prepareBinaryData()` for images, PDFs, or other files
  5. **Async/await**: All Playwright operations are async, always use `await`
  6. **Access input data**: Use `$json` or `$input` to access data from previous nodes
  7. **Browser cleanup**: The browser is automatically closed after script execution

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Tested with Playwright version 1.49.0
  - Supports Windows, macOS, and Linux

  ### System Requirements

  - Node.js 18.10 or later
  - Approximately 1GB disk space for browser binaries
  - Additional system dependencies may be required for browser automation

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Playwright documentation](https://playwright.dev/docs/intro)
  - [Playwright API Reference](https://playwright.dev/docs/api/class-playwright)

  ## Version history

  ### 0.3.0

  - Added **Run Custom Script** operation with full Playwright API access
  - Added **XPath selector** support for Get Text, Click Element, and Fill Form operations
  - Added sandboxed JavaScript execution environment
  - Improved error handling and user feedback
  - Fixed navigate operation to return page content properly

  ### 0.2.*

  - Added selector-based operations (getText, clickElement, fillForm)
  - Improved browser binary installation process
  - Bug fixes and performance improvements

  ### 0.1.*

  - Initial release
  - Basic browser automation operations
  - Support for Chromium, Firefox, and WebKit
  - Screenshot and navigation capabilities

  ## Troubleshooting

  ### Browsers Not Installed

  If browsers are not installed correctly:

  1. Clean the installation:

  ```bash
  rm -rf ~/.cache/ms-playwright
  # or for Windows:
  rmdir /s /q %USERPROFILE%\AppData\Local\ms-playwright
  ```

  2. Rebuild the package:

  ```bash
  pnpm rebuild n8n-nodes-playwright
  ```

  ### Custom Script Errors

  If your custom script fails:

  1. Check that you're returning an array: `return [{ json: {...} }];`
  2. Use `console.log()` to debug and see output in n8n UI
  3. Wrap code in try-catch blocks for better error handling
  4. Verify all Playwright operations use `await`

  ### Selector Not Found

  If elements can't be found:

  1. Try using XPath instead of CSS selector (or vice versa)
  2. Use `await $page.waitForSelector('selector')` to wait for elements
  3. Check if content is in an iframe: `await $page.frameLocator('iframe').locator('selector')`
  4. Verify the page has fully loaded: `await $page.waitForLoadState('networkidle')`

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

  ---

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  ## Support

  If you encounter any issues or have questions:

  1. Check the [Troubleshooting](#troubleshooting) section
  2. Review the [Playwright documentation](https://playwright.dev/docs/intro)
  3. Open an issue on [GitHub](https://github.com/toema/n8n-playwright/issues)

  ## Author

  **Mohamed Toema**  
  Email: m.toema20@gmail.com  
  GitHub: [@toema](https://github.com/toema)

ai_documentation_summary:
  {"purpose":"The Playwright node enables browser automation in n8n workflows using the Playwright library, allowing actions like navigating, clicking, filling forms, extracting text, and taking screenshots with support for custom JavaScript scripts.","capabilities":["Navigate to a URL and retrieve page content","Take screenshots (full page or viewport) with custom save paths and Base64 output","Extract text using CSS selectors or XPath","Click on elements using CSS selectors or XPath","Fill form fields using CSS selectors or XPath","Run custom JavaScript scripts with full Playwright API access","Choose between Chromium, Firefox, or WebKit browsers","Enable headless mode and slow motion for debugging","Store and restore browser cookies for authenticated sessions"],"authentication":"None (browser automation via Playwright; authentication handled via scripts or cookies)","commonUseCases":["Web scraping with dynamic content loading","Automating form submissions","Capturing screenshots for reports or monitoring","Accessing protected pages via stored cookies","Performing complex browser interactions with custom scripts"],"limitations":["Requires approximately 1GB of disk space for browser binaries","Browser setup must be manually triggered with `pnpm rebuild` if needed","No built-in support for authentication tokens or API keys","Custom scripts are sandboxed and may have limited access to external resources"],"relatedNodes":["Code node (for script execution)","HTTP Request node (for API interactions)","Database node (for storing scraped or generated data)"]}


node_type: n8n-nodes-backup-credentials.BackupCredentials
package_name: n8n-nodes-backup-credentials
display_name: BackupCredentials
description: backup credentials
category: Community
development_style: declarative
version: 1.0.10
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: nguyenpl117
npm_package_name: n8n-nodes-backup-credentials
npm_version: 1.0.10
community_fetched_at: 2026-01-07T20:08:17.630Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-backup-credentials

  Đây là một node cộng đồng trong n8n, giúp xử lý backup và restore credentials

  ## A product developed by Datadex

  Nếu node này giúp bạn tiết kiệm thời gian hoặc giải quyết được vấn đề khó nhằn, hãy cân nhắc ủng hộ chúng tôi bằng việc
  mua hosting tại [Datadex.vn](https://datadex.vn) hoặc đơn giản là nhấn ★ Star cho dự án.
  Sự động viên nhỏ ấy sẽ tiếp thêm năng lượng để đội ngũ của [Datadex](https://datadex.vn) tiếp tục duy trì, cập nhật và
  phát triển thêm nhiều tính năng hữu ích hơn nữa.
  Cám ơn các bạn rất nhiều! 💛

  ![Alt text](https://phantrungnguyen.com/qrcode.jpg)

  ## Hướng dẫn cài đặt node này:

  👉Video hướng dẫn: https://youtu.be/ZXQc0QBl-v8

  👉Workflow example: https://datadex.vn/storage/2025/10/backup.json

  **Community Nodes (Khuyến nghị)**

  Đối với người dùng n8n v0.187+, bạn có thể cài đặt node này trực tiếp từ bảng Community Nodes trong trình soạn thảo n8n.

  1. Mở trình soạn thảo n8n của bạn.
  2. Vào Settings > Community Nodes.
  3. Nhấn vào Install or Install a community node
  4. Nhập vào input "n8n-nodes-backup-credentials".
  5. Nhấn vào Install.
  6. Sau khi cài đặt thành công vui lòng tải lại trang

  **Cài đặt thủ công**

  Bạn cũng có thể cài đặt node này theo cách thủ công:

  ```
  cd YOUR_N8N_INSTALLATION_DIRECTORY
  npm install n8n-nodes-backup-credentials
  ```

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"The BackupCredentials node allows users to backup and restore credentials in n8n, providing a way to securely manage and preserve sensitive authentication details across workflows.","capabilities":["Backup credentials to a specified location (e.g., file or cloud storage)","Restore credentials from a backup file","Integrate with common storage solutions for secure credential management"],"authentication":"None required for the node itself; authentication for external storage (e.g., local file, cloud) is handled by the underlying service or configuration","commonUseCases":["Saving credentials before making changes to workflows","Restoring credentials after accidental deletion or system reset","Ensuring continuity of workflow execution by preserving API keys or secrets"],"limitations":[],"relatedNodes":["n8n-nodes-base","Storage nodes (e.g., for file or cloud storage integration)"]}


node_type: @bitovi/n8n-nodes-google-search.GoogleSearch
package_name: @bitovi/n8n-nodes-google-search
display_name: GoogleSearch
description: N8N node to connect to Google Search
category: Community
development_style: declarative
version: 0.2.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: bitovi-os
author_github_url: git+https://github.com/bitovi/n8n-nodes-google-search.git
npm_package_name: @bitovi/n8n-nodes-google-search
npm_version: 0.2.1
community_fetched_at: 2026-01-07T20:08:17.630Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # @bitovi/n8n-nodes-google-search

  This is an n8n community node. It lets you use Google Search in your n8n workflows.

  Google Search is a web search engine that allows you to find information on the internet. This node integrates with Google's Custom Search API to perform programmatic searches.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  Alternatively:

  - Make sure to allow community nodes with `N8N_COMMUNITY_PACKAGES_ENABLED=true`
  - Once logged in to your N8N web UI, go to `/settings/community-nodes` and type `@bitovi/n8n-nodes-google-search`

  ## Operations

  The Google Search node supports the following operations:

  ### Custom Search

  - **Search Query**: Perform searches using Google's Custom Search API
  - **Return All**: Option to return all results or limit to a specific number
  - **Limit**: Set maximum number of results to return (when Return All is disabled)

  ### Additional Search Parameters

  - **Date Restrict**: Restrict results to a specific time period (past 24 hours, week, month, or year)
  - **Exact Terms**: Search for exact phrases
  - **Exclude Terms**: Exclude specific terms from search results
  - **File Type**: Filter results by file type (e.g., pdf, doc, etc.)
  - **Filter**: Enable/disable duplicate content filter
  - **HQ**: Search for pages that link to a specific URL
  - **Image Color Type**: Filter images by color type (color, gray, black and white, transparent)
  - **Image Dominant Color**: Filter images by dominant color
  - **Image Size**: Filter images by size
  - **Image Type**: Filter by image type (clipart, face, lineart, stock, photo)
  - **Link Site**: Restrict results to pages linking to a specific site
  - **Or Terms**: Search for pages containing any of the specified terms
  - **Related Site**: Find pages related to a specific URL
  - **Rights**: Filter by usage rights
  - **Safe Search Level**: Enable safe search filtering
  - **Search Type**: Specify search type (image search, etc.)
  - **Site Search**: Restrict search to a specific site
  - **Site Search Filter**: Include or exclude results from site search
  - **Sort By**: Sort results by relevance (default) or date

  ## Credentials

  To use this node, you need to authenticate with Google's Custom Search API. You'll need:

  ### Prerequisites

  1. A Google Cloud Platform account
  2. A Google Custom Search Engine set up

  ### Setting up credentials

  1. **Create a Custom Search Engine**:
     - Go to [Google Programmable Search Engine](https://programmablesearchengine.google.com)
     - Create a new search engine
     - Note the Search Engine ID (cx parameter)

  2. **Get API Key**:
     - Go to [Google Cloud Console](https://console.cloud.google.com) or [Programmable Search Engine Guide](https://developers.google.com/custom-search/v1/introduction)
     - Enable the Custom Search API
     - Create an API key
     - Copy the API key

  3. **Configure in n8n**:
     - Search Engine ID: Enter your Custom Search Engine ID
     - API Key: Enter your Google Cloud API key

  ## Compatibility

  - **Minimum n8n version**: Compatible with n8n v0.198.0 and above
  - **Node.js version**: Requires Node.js 18.10 or higher
  - **n8n API version**: Uses n8n nodes API version 1

  This node has been tested with the latest versions of n8n and should work with all current installations.

  ## Usage

  ### Basic Search

  1. Add the Google Search node to your workflow
  2. Configure your credentials (Search Engine ID and API Key)
  3. Enter your search query
  4. Set whether to return all results or limit the number
  5. Execute the workflow

  ### Advanced Search Options

  Use the "Additional Fields" section to:

  - Restrict results to a specific time period (past 24 hours, week, month, etc.)
  - Sort results by date or relevance
  - Filter results by file type, language, or site
  - Search for exact phrases or exclude specific terms
  - Filter images by size, color, or type

  ### Pagination

  The node supports automatic pagination when "Return All" is enabled, allowing you to retrieve large result sets efficiently.

  ### Example Use Cases

  - **Content Research**: Search for articles, papers, or resources on specific topics
  - **Competitor Analysis**: Monitor mentions of your brand or competitors
  - **Lead Generation**: Find contact information or company details
  - **SEO Analysis**: Research keywords and analyze search results
  - **Data Collection**: Gather information from web sources programmatically

  ## Using as an AI Agent Tool

  This node can be used as a tool in n8n's AI Agent workflows, allowing AI assistants to automatically search the web when needed.

  ### Prerequisites

  - n8n version 1.40 or higher (with AI Agent support)
  - Environment variable: `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true`

  ### Setting the Environment Variable

  **For Docker:**

  ```bash
  docker run -e N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true n8nio/n8n
  ```

  Or in your `docker-compose.yml`:

  ```yaml
  environment:
    - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  **For npm installation:**

  ```bash
  export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  npx n8n start
  ```

  **For Windows (PowerShell):**

  ```powershell
  $env:N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE="true"
  npx n8n start
  ```

  ### Setup Steps

  1. Set the environment variable as shown above
  2. Install this community node through n8n's Community Nodes settings
  3. Restart n8n if it was already running
  4. In your workflow, add an **AI Agent** node
  5. Click **Add Tool** in the AI Agent configuration
  6. Select **Google Search** from the available tools

  ### How It Works

  - The AI agent will automatically call the Google Search tool when it determines a web search is needed
  - The tool returns search results including titles, links, and snippets
  - Results are limited to 50 by default (configurable with the "Limit" parameter)
  - All "Additional Fields" are available for advanced filtering

  ### Tips for AI Tool Usage

  - Use descriptive prompts that might require web searches (e.g., "What are the latest trends in...")
  - The AI will decide when to use the search tool based on the conversation context
  - You can combine this with other tools for comprehensive AI workflows
  - Monitor your Google API quota as the AI may make multiple search requests

  ## Need help or have questions?

  Need guidance on leveraging AI agents or N8N for your business? Our [AI Agents workshop](https://hubs.ly/Q02X-9Qq0) will equip you with the knowledge and tools necessary to implement successful and valuable agentic workflows.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Google Custom Search API documentation](https://developers.google.com/custom-search/v1/overview)
  - [Google Programmable Search Engine](https://programmablesearchengine.google.com)
  - [Google Cloud Console](https://console.cloud.google.com)

  ## License

  [MIT](./LICENSE.md)

ai_documentation_summary:
  {"purpose":"The GoogleSearch node enables n8n workflows to perform programmatic web searches using Google's Custom Search API, allowing users to retrieve search results with customizable filters and parameters.","capabilities":["Perform searches with custom queries","Filter results by date, file type, site, or language","Search for exact phrases or exclude specific terms","Filter images by color, size, type, or dominant color","Sort results by relevance or date","Restrict searches to specific sites or URLs","Enable safe search or duplicate content filtering","Support automatic pagination for large result sets","Integrate as a tool in AI Agent workflows for web-based research"],"authentication":"API key required via Google Cloud Console and Custom Search Engine ID from Google Programmable Search Engine","commonUseCases":["Content research and topic exploration","Competitor analysis and brand monitoring","Lead generation and contact information gathering","SEO keyword research and analysis","Automated data collection from web sources"],"limitations":["Requires a Google Cloud account and active Custom Search Engine setup","Search results are limited by Google's API rate limits and policies","No support for real-time or live search updates","Results may not reflect current or updated content due to indexing delays"],"relatedNodes":["AI Agent","Webhook","HTTP Request"]}


node_type: n8n-nodes-crewai.Crewai
package_name: n8n-nodes-crewai
display_name: Crewai
description: Community nodes for CrewAI integration
category: Community
development_style: declarative
version: 0.2.27
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: mcaorg21
author_github_url: git+https://github.com/diascostaadv/n8n-nodes-crewai.git
npm_package_name: n8n-nodes-crewai
npm_version: 0.2.27
community_fetched_at: 2026-01-07T20:08:17.631Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-starter

  This starter repository helps you build custom integrations for [n8n](https://n8n.io). It includes example nodes, credentials, the node linter, and all the tooling you need to get started.

  ## Quick Start

  > [!TIP]
  > **New to building n8n nodes?** The fastest way to get started is with `npm create @n8n/node`. This command scaffolds a complete node package for you using the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli).

  **To create a new node package from scratch:**

  ```bash
  npm create @n8n/node
  ```

  **Already using this starter? Start developing with:**

  ```bash
  npm run dev
  ```

  This starts n8n with your nodes loaded and hot reload enabled.

  ## What's Included

  This starter repository includes two example nodes to learn from:

  - **[Example Node](nodes/Example/)** - A simple starter node that shows the basic structure with a custom `execute` method
  - **[GitHub Issues Node](nodes/GithubIssues/)** - A complete, production-ready example built using the **declarative style**:
    - **Low-code approach** - Define operations declaratively without writing request logic
    - Multiple resources (Issues, Comments)
    - Multiple operations (Get, Get All, Create)
    - Two authentication methods (OAuth2 and Personal Access Token)
    - List search functionality for dynamic dropdowns
    - Proper error handling and typing
    - Ideal for HTTP API-based integrations

  > [!TIP]
  > The declarative/low-code style (used in GitHub Issues) is the recommended approach for building nodes that interact with HTTP APIs. It significantly reduces boilerplate code and handles requests automatically.

  Browse these examples to understand both approaches, then modify them or create your own.

  ## Finding Inspiration

  Looking for more examples? Check out these resources:

  - **[npm Community Nodes](https://www.npmjs.com/search?q=keywords:n8n-community-node-package)** - Browse thousands of community-built nodes on npm using the `n8n-community-node-package` tag
  - **[n8n Built-in Nodes](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/nodes)** - Study the source code of n8n's official nodes for production-ready patterns and best practices
  - **[n8n Credentials](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/credentials)** - See how authentication is implemented for various services

  These are excellent resources to understand how to structure your nodes, handle different API patterns, and implement advanced features.

  ## Prerequisites

  Before you begin, install the following on your development machine:

  ### Required

  - **[Node.js](https://nodejs.org/)** (v22 or higher) and npm
    - Linux/Mac/WSL: Install via [nvm](https://github.com/nvm-sh/nvm)
    - Windows: Follow [Microsoft's NodeJS guide](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows)
  - **[git](https://git-scm.com/downloads)**

  ### Recommended

  - Follow n8n's [development environment setup guide](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/)

  > [!NOTE]
  > The `@n8n/node-cli` is included as a dev dependency and will be installed automatically when you run `npm install`. The CLI includes n8n for local development, so you don't need to install n8n globally.

  ## Getting Started with this Starter

  Follow these steps to create your own n8n community node package:

  ### 1. Create Your Repository

  [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template, then clone it:

  ```bash
  git clone https://github.com/<your-organization>/<your-repo-name>.git
  cd <your-repo-name>
  ```

  ### 2. Install Dependencies

  ```bash
  npm install
  ```

  This installs all required dependencies including the `@n8n/node-cli`.

  ### 3. Explore the Examples

  Browse the example nodes in [nodes/](nodes/) and [credentials/](credentials/) to understand the structure:

  - Start with [nodes/Example/](nodes/Example/) for a basic node
  - Study [nodes/GithubIssues/](nodes/GithubIssues/) for a real-world implementation

  ### 4. Build Your Node

  Edit the example nodes to fit your use case, or create new node files by copying the structure from [nodes/Example/](nodes/Example/).

  > [!TIP]
  > If you want to scaffold a completely new node package, use `npm create @n8n/node` to start fresh with the CLI's interactive generator.

  ### 5. Configure Your Package

  Update `package.json` with your details:

  - `name` - Your package name (must start with `n8n-nodes-`)
  - `author` - Your name and email
  - `repository` - Your repository URL
  - `description` - What your node does

  Make sure your node is registered in the `n8n.nodes` array.

  ### 6. Develop and Test Locally

  Start n8n with your node loaded:

  ```bash
  npm run dev
  ```

  This command runs `n8n-node dev` which:

  - Builds your node with watch mode
  - Starts n8n with your node available
  - Automatically rebuilds when you make changes
  - Opens n8n in your browser (usually http://localhost:5678)

  You can now test your node in n8n workflows!

  > [!NOTE]
  > Learn more about CLI commands in the [@n8n/node-cli documentation](https://www.npmjs.com/package/@n8n/node-cli).

  ### 7. Lint Your Code

  Check for errors:

  ```bash
  npm run lint
  ```

  Auto-fix issues when possible:

  ```bash
  npm run lint:fix
  ```

  ### 8. Build for Production

  When ready to publish:

  ```bash
  npm run build
  ```

  This compiles your TypeScript code to the `dist/` folder.

  ### 9. Prepare for Publishing

  Before publishing:

  1. **Update documentation**: Replace this README with your node's documentation. Use [README_TEMPLATE.md](README_TEMPLATE.md) as a starting point.
  2. **Update the LICENSE**: Add your details to the [LICENSE](LICENSE.md) file.
  3. **Test thoroughly**: Ensure your node works in different scenarios.

  ### 10. Publish to npm

  Publish your package to make it available to the n8n community:

  ```bash
  npm publish
  ```

  Learn more about [publishing to npm](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  ### 11. Submit for Verification (Optional)

  Get your node verified for n8n Cloud:

  1. Ensure your node meets the [requirements](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/):
     - Uses MIT license ✅ (included in this starter)
     - No external package dependencies
     - Follows n8n's design guidelines
     - Passes quality and security review

  2. Submit through the [n8n Creator Portal](https://creators.n8n.io/nodes)

  **Benefits of verification:**

  - Available directly in n8n Cloud
  - Discoverable in the n8n nodes panel
  - Verified badge for quality assurance
  - Increased visibility in the n8n community

  ## Available Scripts

  This starter includes several npm scripts to streamline development:

  | Script                | Description                                                      |
  | --------------------- | ---------------------------------------------------------------- |
  | `npm run dev`         | Start n8n with your node and watch for changes (runs `n8n-node dev`) |
  | `npm run build`       | Compile TypeScript to JavaScript for production (runs `n8n-node build`) |
  | `npm run build:watch` | Build in watch mode (auto-rebuild on changes)                    |
  | `npm run lint`        | Check your code for errors and style issues (runs `n8n-node lint`) |
  | `npm run lint:fix`    | Automatically fix linting issues when possible (runs `n8n-node lint --fix`) |
  | `npm run release`     | Create a new release (runs `n8n-node release`)                   |

  > [!TIP]
  > These scripts use the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli) under the hood. You can also run CLI commands directly, e.g., `npx n8n-node dev`.

  ## Troubleshooting

  ### My node doesn't appear in n8n

  1. Make sure you ran `npm install` to install dependencies
  2. Check that your node is listed in `package.json` under `n8n.nodes`
  3. Restart the dev server with `npm run dev`
  4. Check the console for any error messages

  ### Linting errors

  Run `npm run lint:fix` to automatically fix most common issues. For remaining errors, check the [n8n node development guidelines](https://docs.n8n.io/integrations/creating-nodes/).

  ### TypeScript errors

  Make sure you're using Node.js v22 or higher and have run `npm install` to get all type definitions.

  ## Resources

  - **[n8n Node Documentation](https://docs.n8n.io/integrations/creating-nodes/)** - Complete guide to building nodes
  - **[n8n Community Forum](https://community.n8n.io/)** - Get help and share your nodes
  - **[@n8n/node-cli Documentation](https://www.npmjs.com/package/@n8n/node-cli)** - CLI tool reference
  - **[n8n Creator Portal](https://creators.n8n.io/nodes)** - Submit your node for verification
  - **[Submit Community Nodes Guide](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/)** - Verification requirements and process

  ## Contributing

  Have suggestions for improving this starter? [Open an issue](https://github.com/n8n-io/n8n-nodes-starter/issues) or submit a pull request!

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"A community-developed node package that provides a template and examples for building custom n8n nodes, primarily focused on demonstrating how to create integrations using a declarative, low-code approach with HTTP API interactions.","capabilities":["Scaffolds basic and production-ready node structures","Provides examples of declarative node development","Includes support for multiple operations and resources (e.g., Issues, Comments)","Supports multiple authentication methods (e.g., OAuth2, Personal Access Token)","Offers dynamic dropdowns via list search functionality","Includes error handling and proper typing"],"authentication":"Supports multiple authentication methods including OAuth2 and Personal Access Token (as demonstrated in the GitHub Issues example)","commonUseCases":["Building integrations for HTTP-based APIs","Creating low-code, reusable workflow nodes","Developing production-ready nodes with proper error handling and authentication","Learning and adopting the declarative style for node development"],"limitations":[],"relatedNodes":["n8n-nodes-base","GitHub Issues node (example)","n8n-built-in nodes","n8n credentials system"]}


node_type: n8n-nodes-md-to-docs.MdToDocs
package_name: n8n-nodes-md-to-docs
display_name: MdToDocs
category: Community
development_style: declarative
version: 0.5.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: gik986
author_github_url: git+https://github.com/GiK986/n8n-nodes-md-to-docs.git
npm_package_name: n8n-nodes-md-to-docs
npm_version: 0.5.2
community_fetched_at: 2026-01-07T20:08:17.631Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  This is an n8n community node. It lets you use **Markdown to Google Docs** conversion in your n8n workflows.

npm_readme:
  # n8n-nodes-md-to-docs

  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  ![n8n-nodes-md-to-docs](https://img.shields.io/badge/n8n-community--node-ff6d5a)

  This is an n8n community node. It lets you use **Markdown to Google Docs** conversion in your n8n workflows.

  **Google Docs** is a popular online document editor that allows you to create, edit, and collaborate on documents in real time. With this node, you can automate the process of turning Markdown into beautifully formatted Google Docs—no more manual copy-paste!

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ---

  [📦 Installation](#installation)
  [🛠️ Operations](#operations)
  [🔑 Credentials](#credentials)
  [✅ Compatibility](#compatibility)
  [📖 Usage](#usage)
  [🔗 Resources](#resources)
  [📅 Version history](#version-history)

  ## Installation

  Install in your n8n instance:

  ```bash
  npm install n8n-nodes-md-to-docs
  ```

  **⚠️ Important: Restart n8n server after installation** - The node requires a complete server restart to load properly.

  For self-hosted installations, make sure your n8n instance can install npm dependencies (cheerio, marked).

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Version Compatibility

  - **Latest (0.3.5+)**: Full compatibility with self-hosted n8n installations
  - **0.3.1-0.3.4**: Deprecated due to class loading issues - use 0.3.5+

  ---

  ## Operations

  - **Create Document**: Instantly create a Google Docs document from Markdown content.
  - **Export Google Doc**: Export existing Google Docs to Markdown, PDF, or Plain Text formats.
  - **Convert to API Requests**: Transform Markdown into Google Docs API request JSON (for advanced HTTP Request node usage).
  - **Test Credentials**: Verify your Google API credentials and permissions.

  ---

  ## Credentials

  This node requires Google API credentials to authenticate with Google Docs and Google Drive services.

  ### 🚀 Prerequisites

  - **Google Cloud Account** - Free tier available
  - **Google Cloud Project** - Create one in [Google Cloud Console](https://console.cloud.google.com/)
  - **n8n Instance** - Running version 1.0.0 or higher

  ### 🔧 Authentication Methods

  - OAuth2 (Recommended)
    - Best for personal and small team use
    - User-friendly consent flow
    - Automatic token refresh

  ### ⚙️ Quick Setup

  ⚠️ **Important**: This node requires Google API credentials to function.

  📖 **Detailed Setup Guide**: See [Google Cloud Console Documentation](https://cloud.google.com/docs/authentication/getting-started) for complete OAuth2 setup instructions.

  **Essential Steps**:

  1. **🌐 Enable APIs** in Google Cloud Console:
     - **Google Docs API**
     - **Google Drive API**

  2. **🔐 Create OAuth2 Credentials** with required scopes:
     - `https://www.googleapis.com/auth/documents`
     - `https://www.googleapis.com/auth/drive`

  3. **⚡ Configure Credential** in n8n:
     - Add new **Google OAuth2 API** credential
     - Enter your Client ID and Client Secret
     - Complete OAuth flow

  4. **✅ Verify Setup**:
     - Use **Test Credentials** operation
     - Check for successful connection

  ---

  ## Compatibility

  **Minimum Requirements:**

  - **n8n version**: 1.0.0 or higher
  - **Node.js**: 20.15.0 or higher
  - **API Version**: n8n Nodes API v1

  **Tested Versions:**

  - ✅ n8n v1.82.0+ (latest stable)
  - ✅ n8n v1.70.0+ (recent versions)
  - ✅ Node.js v20.15.0+ (LTS)

  **Known Compatibility:**

  - ✅ **Google APIs**: Docs API v1, Drive API v3
  - ✅ **Google Drive Types**: My Drive, Shared Drives, and Shared with Me
  - ✅ **Modern Browsers**: Chrome 90+, Firefox 88+, Safari 14+
  - ✅ **AI Agents**: Compatible with `usableAsTool: true`
  - ✅ **Community Nodes**: Full n8n community node standards

  **Potential Issues:**

  - ⚠️ **Older n8n versions** (< 1.0.0): May not support latest node API features
  - ⚠️ **Node.js < 20**: Not tested and may have compatibility issues
  - ⚠️ **Google API changes**: Will be updated as needed

  ---

  ## Usage

  This node provides powerful Markdown to Google Docs conversion with advanced formatting capabilities. Here's how to use it effectively:

  ### 🚀 Quick Start

  1. **Add the "Markdown to Google Docs" node** to your workflow.
  2. **Select the "Create Document" operation** (this is the default).
  3. **Choose your Google Drive and destination Folder** where the document will be created.
  4. **Set a Title** for your new document.
  5. **Input your Markdown content** in the text area.
  6. **(Optional) Use "Additional Options"** to create a document from a template or use placeholders.
  7. **Execute the node!** Your document will be created in the specified location.

  **Pro tip:** Supports advanced formatting, images (via public URLs), tables, checkboxes, and even deep list nesting.

  *For more help, see the [n8n Try it out documentation](https://docs.n8n.io/getting-started/try-it-out/).*

  ---

  ### 🎯 Key Features

  **✨ Core Capabilities**:

  - Full Markdown to Google Docs conversion
  - Headers, bold/italic, links, lists, code blocks
  - Multiple output formats (single/multiple requests)
  - AI Agent Tool compatibility (`usableAsTool: true`)

  **🚀 Advanced Features**:

  - **Nested Formatting**: Complex combinations like **bold and *italic* together**
  - **Smart Tables**: Header styling (bold + centered) with full cell formatting and vertical alignment
  - **Page Break Control**: Multiple strategies for automatic page breaks (H1, H2, or custom text markers)
  - **Deep Nesting**: Unlimited list levels with proper indentation
  - **Image Embedding**: Direct URL-based image insertion with optional sizing
  - **Checkbox Lists**: Native Google Docs checkboxes for task lists
  - **Precise Positioning**: Accurate text range calculations for Google Docs API

  **✨ Template and Text Placeholder System**:

  - **Use Any Doc as a Template**: Select any Google Doc from your Drive to use as a template. The node preserves headers and footers, only replacing the body content.
  - **Dynamic Text Placeholder Replacement**:
    - Use text placeholders like `{{key}}` anywhere in your template (headers, footers, body).
    - Provide a JSON object with corresponding key-value pairs (e.g., `{ "key": "Your Value" }`) to replace them dynamically.
    - Supports n8n expressions for generating values on the fly.
  - **Smart Markdown Injection**:
    - By default, your Markdown input replaces the entire body of the template.
    - Optionally, specify a "Main Content Placeholder" (e.g., `{{MainContent}}`) in your template body. The node will replace only this specific placeholder with your rendered Markdown.
    - The Markdown input can be disabled entirely if you only need to replace simple placeholders.

  **📋 Image Support Notes**:

  - ✅ **URL-based images**: Direct embedding from public URLs (`![alt](https://example.com/image.png)`)
  - ✅ **Optional sizing**: Width/height attributes supported
  - ⚠️ **URL requirements**: Must be publicly accessible, under 2KB URL length
  - ❌ **Local files**: File uploads not supported (URL-only)

  ### 🤖 AI Agent Integration

  Perfect for AI-powered workflows:

  ```javascript
  // Import the processor
  import { MarkdownProcessor } from 'n8n-nodes-md-to-docs';

  // AI Agent can automatically use this node
  const markdownContent = await aiAgent.generateMarkdown(userInput);
  const googleDocsRequests = MarkdownProcessor.convertMarkdownToApiRequests(
    markdownContent,
    'AI Generated Document Title',
    'single'
  );
  ```

  **Available in n8n workflows:**

  - Node name: `markdownToGoogleDocs`
  - AI Tool compatibility: `usableAsTool: true`
  - Automatic parameter detection for AI agents

  ### ✅ Supported Elements

  | Element                 | Google Docs Output                                            | Status |
  | ----------------------- | ------------------------------------------------------------- | ------ |
  | `# Headers`             | Styled headings (H1-H6)                                       | ✅      |
  | `**bold**` / `*italic*` | Text formatting + nested combinations                         | ✅      |
  | `[links](url)`          | Hyperlinks in any context                                     | ✅      |
  | `- lists` / `1. lists`  | Bulleted/numbered with unlimited nesting and multi-line items | ✅      |
  | `- [x]` / `- [ ]`       | Native Google Docs checkboxes                                 | ✅      |
  | `` `code` ``            | Monospace formatting + syntax highlighting                    | ✅      |
  | `\| tables \|`          | Structured tables with header styling and vertical alignment  | ✅      |
  | `> quotes`              | Indented blockquote with internal formatting                  | ✅      |
  | `---`                   | Horizontal rules                                              | ✅      |
  | `![images](url)`        | Embedded images (URL only)                                    | ✅      |

  ---

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Google Docs API Reference](https://developers.google.com/docs/api)
  - [Markdown Specification](https://spec.commonmark.org/)

  ---

  ## Version History

  [📅 Full changelog](./CHANGELOG.md)

  ---

  ## 🚀 Advanced Examples

  ### Example Markdown Input

  ```markdown
  # My Document Title

  This is a **bold statement** with *italic emphasis*.

  ## Features List

  1. First feature
  2. Second feature
     - Sub-feature A
     - Sub-feature B

  ### Code Example

  \`\`\`javascript
  const greeting = "Hello World!";
  console.log(greeting);
  \`\`\`

  > Important note: This will be formatted as a blockquote.

  ![Example Image](https://via.placeholder.com/300x200.png?text=Sample+Image)

  | Feature  | Status |
  | -------- | ------ |
  | **Bold** | ✅     |
  | *Italic* | ✅     |
  ```

  ### JSON Output Structure

  ```json
  {
    "documentTitle": "My Document Title",
    "createDocumentRequest": {
      "title": "My Document Title"
    },
    "batchUpdateRequest": {
      "requests": [
        {
          "insertText": {
            "location": { "index": 1 },
            "text": "My Document Title\\n\\n"
          }
        },
        {
          "updateTextStyle": {
            "range": { "startIndex": 1, "endIndex": 18 },
            "textStyle": { "bold": true, "fontSize": { "magnitude": 24, "unit": "PT" } },
            "fields": "bold,fontSize"
          }
        }
      ]
    }
  }
  ```

  ---

  ## ⚙️ Configuration Options

  ### Main Parameters

  | Parameter | Type | Description |
  |---|---|---|
  | `operation` | options | "createDocument", "exportGoogleDoc", "convertToApiRequests", or "testCredentials" |
  | `driveId` | resourceLocator | The Google Drive to create the document in (create operation) |
  | `folderId` | resourceLocator | The folder within the selected drive (create operation) |
  | `documentId` | resourceLocator | The Google Docs document to export (export operation) |
  | `exportFormat` | options | Export format: "text/markdown", "application/pdf", or "text/plain" (export operation) |
  | `documentTitle` | string | Title for the Google Docs document (create operation) |
  | `markdownInput` | string | The Markdown content to convert (create operation) |
  | `outputFormat`  | options | "single" or "multiple" request format (convert operation) |

  ### Advanced Options (`additionalOptions`)

  The `additionalOptions` parameter provides access to advanced features like templates and placeholders. When you add options, you can configure the following nested structure:

  - **`templateSettings`** (`fixedCollection`): Enables creation from a template.
    - **`templateFolderId`** (`resourceLocator`): The folder containing the Google Docs templates.
    - **`templateDocumentId`** (`resourceLocator`): The specific template document to use.
    - **`placeholders`** (`collection`): Enables placeholder replacement within the selected template.
      - **`placeholderSettings`** (`fixedCollection`): Contains settings for placeholder data and Markdown injection.
        - **`placeholderData`** (`json`): A JSON object of key-value pairs for placeholders (e.g., `{ "key": "value" }`).
        - **`useMarkdownInput`** (`boolean`): Whether to use the Markdown content. If disabled, the node only replaces placeholders.
        - **`mainContentPlaceholder`** (`string`): The specific placeholder (e.g., `{{MainContent}}`) to be replaced by the Markdown content. If not specified, the entire document body is replaced.

  - **`pageBreakSettings`** (`fixedCollection`): Controls automatic page break insertion.
    - **`pageBreakStrategy`** (`options`): Choose when to insert page breaks:
      - `"h1"`: Before each H1 heading (except the first)
      - `"h2"`: Before each H2 heading (default)
      - `"custom"`: Replace custom text markers with page breaks
    - **`customPageBreakText`** (`string`): Custom text marker to replace with page breaks (e.g., `"<!-- pagebreak -->"`, `"---pagebreak---"`). Only used when strategy is "custom".

  ---

  ## 🛠️ Development

  ### Setup

  ```bash
  git clone <your-repo>
  cd n8n-nodes-md-to-docs
  npm install
  ```

  ### Build

  ```bash
  npm run build
  ```

  ### Lint

  ```bash
  npm run lint
  npm run lintfix
  ```

  ### Test Locally

  ```bash
  # Link for local development
  npm link
  cd ~/.n8n/nodes
  npm link n8n-nodes-md-to-docs
  ```

  ---

  ## 🤝 Contributing

  1. Fork the repository
  2. Create your 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

  ---

  ## 🗺️ Roadmap

  ✅ **Completed Features**

  - [x] **Advanced Table Support**: Complete table conversion with header formatting (bold + centered) and cell-level formatting
  - [x] **Table Vertical Alignment**: Global vertical centering for all table cells with preserved header styling
  - [x] **Page Break Control**: Multiple strategies for automatic page breaks (H1, H2, or custom text markers)
  - [x] **Nested Formatting**: Complex combinations like **bold and *italic* together** with perfect range calculations
  - [x] **Deep List Nesting**: Unlimited levels of nested lists with proper Google Docs bullet handling
  - [x] **Smart Range Calculations**: Precise text positioning accounting for Google Docs API behavior
  - [x] **Mixed Content Formatting**: Bold, italic, code, and links working in all contexts (lists, tables, quotes)
  - [x] **Comprehensive Markdown Support**: Headers, paragraphs, blockquotes, code blocks, horizontal rules
  - [x] **Direct Integration**: One-click document creation with `createDocument` operation - no HTTP Request node needed
  - [x] **Checkbox Lists**: Native Google Docs checkboxes for `- [x]` and `- [ ]` syntax with proper checked/unchecked states
  - [x] **Image Support**: Convert Markdown images to Google Docs embedded images (URL-based only)
  - [x] **Template and Text Placeholder System**: Create documents from a template, preserving headers/footers and replacing dynamic text `{{placeholders}}`.
  - [x] **Enhanced List Support**: Flawless rendering of multi-line and deeply nested list items with accurate inline formatting.
  - [x] **Google Docs Export**: Export existing Google Docs to Markdown, PDF, or Plain Text with automatic output handling and optional Drive save.

  🚀 **Future Enhancements**

  - [ ] **Local Image Upload**: Support for local image file uploads and conversion
  - [ ] **Advanced Table Features**: Column alignment, table styling options, merged cells
  - [ ] **Custom Styling**: User-defined fonts, colors, and spacing
  - [ ] **Batch Processing**: Handle multiple Markdown files in a single operation
  - [ ] **Batch Export**: Export multiple documents or entire folders at once
  - [ ] **Collaborative Features**: Document sharing and permission management

  ---

  ## 📄 License

  MIT © [Georgi Kyosev](mailto:g.kyosev86@gmail.com)

  ---

  Made with ❤️ for the n8n community

  ---

  **Tags:** n8n, markdown, google-docs, automation, community-node, n8n-workflow, document-generation

ai_documentation_summary:
  {"purpose":"The MdToDocs node enables automation of converting Markdown content into formatted Google Docs documents within n8n workflows, supporting advanced formatting, image embedding, and integration with Google Drive.","capabilities":["Create a new Google Docs document from Markdown content","Export existing Google Docs to Markdown, PDF, or Plain Text","Convert Markdown to Google Docs API request JSON for use with HTTP Request nodes","Test Google API credentials for connectivity and permissions","Support for headers, bold/italic, links, lists, code blocks, tables, checkboxes, and images","Page break control via H1/H2 or custom markers","Deep list nesting with proper indentation","Smart table formatting with headers, alignment, and cell styling","Image embedding via public URLs with optional sizing","Template and text placeholder system for dynamic content"],"authentication":"OAuth2 (recommended) - requires a Google Cloud Project with enabled Google Docs and Drive APIs, and OAuth2 credentials (Client ID and Client Secret) configured in n8n","commonUseCases":["Automatically generate reports from Markdown notes or templates","Convert meeting notes or task lists into formatted Google Docs","Integrate with AI agents to generate and format documents using Markdown outputs","Streamline content creation workflows by eliminating manual copy-paste","Export documents to PDF or plain text from existing Google Docs"],"limitations":["Requires n8n version 1.0.0 or higher and Node.js 20.15.0 or higher","Older n8n versions or Node.js versions below 20 may have compatibility issues","Dependent on Google API availability and permissions; changes in Google's API may require updates","No support for private or restricted Google Drive folders without proper access","Limited to public image URLs for embedding; private or authenticated images may not work"],"relatedNodes":["HTTP Request","AI Agent Tools","Google Drive","Markdown Parser","PDF Generator"]}


node_type: n8n-nodes-aparavi.Aparavi
package_name: n8n-nodes-aparavi
display_name: Aparavi
category: Community
development_style: declarative
version: 1.0.39
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: arminfg
author_github_url: git+https://github.com/AparaviSoftware/aparavi-n8n-node.git
npm_package_name: n8n-nodes-aparavi
npm_version: 1.0.39
community_fetched_at: 2026-01-07T20:08:17.631Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  n8n community nodes for Aparavi DTC API. Run any workflow including PII/HIPAA anonymization, OCR, document parsing, audio transcription, and custom pipelines.

npm_readme:
  # Aparavi DTC & PII Censor Nodes for n8n

  A comprehensive n8n community node package that provides powerful data processing capabilities using the Aparavi DTC (Data Transformation Cloud) service. This package includes two specialized nodes for OCR, document parsing, audio transcription, and PII/HIPAA data anonymization.

  > **🚀 Get Started**: First, sign up for your free Aparavi API key at [https://dtc.aparavi.com/usage](https://dtc.aparavi.com/usage)

  ## 📦 Package Information

  - **npm Package**: [n8n-nodes-aparavi](https://www.npmjs.com/package/n8n-nodes-aparavi)
  - **Version**: 1.0.0
  - **GitHub Repository**: [AparaviSoftware/aparavi-n8n-node](https://github.com/AparaviSoftware/aparavi-n8n-node)

  ## 🎯 Available Nodes

  ### 1. **Aparavi DTC Node** (Transform Category)
  Comprehensive data processing with multiple operations:
  - **Simple OCR** - Extract text from images (PNG, JPG, TIFF, BMP)
  - **Simple Parse** - Parse documents (PDF, DOCX, TXT, HTML)
  - **Audio Transcribe** - Convert audio to text (MP3, WAV, M4A, FLAC)
  - **Audio to Summary** - Transcribe and summarize audio with Gemini AI
  - **Anonymize PII** - Detect and anonymize PII/HIPAA data
  - **Advanced Parser** - Advanced document parsing with classification
  - **Custom Pipeline** - Run any custom Aparavi workflow

  ### 2. **Aparavi PII Censor Node** (Transform Category)
  Specialized PII and HIPAA data anonymization:
  - **USA PII** - SSN, driver license, phone, email, addresses
  - **International PII** - Passport, international phone, national IDs
  - **Healthcare Data (HIPAA)** - Patient names, medical records, insurance numbers

  ## ✨ Key Features

  - **🔧 Console Logging** - Debug output for all operations
  - **🛡️ Project ID Fix** - Automatically handles Aparavi project configuration
  - **📁 Flexible Input** - Handles files, text, JSON, arrays, objects
  - **🔄 Batch Processing** - Efficiently processes multiple items
  - **⚡ Real-time Processing** - Fast and reliable data transformation
  - **🛠️ Error Handling** - Robust error handling with continue-on-fail support
  - **📊 Structure Preservation** - Maintains original data structure while processing

  ## 🚀 Quick Start

  ### Step 1: Get Your API Key
  **Sign up for your free Aparavi API key**: [https://dtc.aparavi.com/usage](https://dtc.aparavi.com/usage)

  ### Step 2: Install the Package

  #### Option A: Through n8n Community Nodes (Recommended)
  1. **Open n8n** in your browser (usually `http://localhost:5678`)
  2. **Go to Settings** → **Community Nodes**
  3. **Click "Install a community node"**
  4. **Enter package name**: `n8n-nodes-aparavi`
  5. **Click "Install"**
  6. **Restart n8n** (if prompted)

  #### Option B: Manual Installation
  ```bash
  # Install globally
  npm install -g n8n-nodes-aparavi

  # Or install locally in your n8n directory
  cd ~/.n8n
  npm install n8n-nodes-aparavi

  # Restart n8n
  n8n start
  ```

  #### Option C: Copy to Custom Nodes Directory
  ```bash
  # 1. Install the package
  npm install n8n-nodes-aparavi

  # 2. Copy to n8n custom nodes directory
  cp -r node_modules/n8n-nodes-aparavi/dist ~/.n8n/custom/nodes/n8n-nodes-aparavi

  # 3. Install dependencies
  cd ~/.n8n/custom/nodes/n8n-nodes-aparavi
  npm install --production

  # 4. Restart n8n
  n8n start
  ```

  ### Step 3: Configure Credentials
  1. **Go to Settings** → **Credentials**
  2. **Click "Add Credential"**
  3. **Select "Aparavi API"**
  4. **Enter your API key** from Step 1
  5. **Click "Save"**

  ### Step 4: Configure Base URL (Optional)

  Both nodes support custom base URL configuration:

  #### Default Environment (Development)
  - **Base URL**: `https://eaas-dev.aparavi.com` (default)
  - **No configuration needed** - works out of the box

  #### Production Environment
  1. **Add Aparavi DTC Node** or **Aparavi PII Censor Node**
  2. **Click "Options"** to expand advanced settings
  3. **Set "Custom Base URL"**: `https://eaas.aparavi.com`
  4. **Save the workflow**

  #### Custom Environment
  1. **Set "Custom Base URL"** to your Aparavi API URL
  2. **Example**: `https://your-custom.aparavi.com`

  ### Step 5: Test the Installation

  #### Verify Nodes Are Available
  - ✅ **Aparavi DTC** appears in Transform category
  - ✅ **Aparavi PII Censor** appears in Transform category
  - ✅ **Aparavi API** appears in credentials list

  #### Test with Simple Workflow
  1. **Create new workflow**
  2. **Add Manual Trigger**
  3. **Add Aparavi DTC node**
  4. **Select "Simple OCR" operation**
  5. **Enter file path**: `/path/to/image.png`
  6. **Execute workflow**

  #### Expected Console Output
  ```
  🌐 Using default base URL: https://eaas-dev.aparavi.com
  🔍 Simple OCR - Processing file: /path/to/image.png
  ✅ Simple OCR - Result: { "status": "OK", "data": {...} }
  ```

  ## 📋 Usage Examples

  ### Document Processing with Aparavi DTC Node

  #### Simple Parse (PDF Documents)
  ```
  Operation: Simple Parse
  Input: /path/to/document.pdf
  Output: Extracted text, tables, and metadata
  ```

  #### Simple OCR (Images)
  ```
  Operation: Simple OCR
  Input: /path/to/image.png
  Output: Extracted text from image
  ```

  #### Audio Transcription
  ```
  Operation: Audio Transcribe
  Input: /path/to/audio.mp3
  Output: Transcribed text
  ```

  ### PII Anonymization with Aparavi PII Censor Node

  #### Basic Text Censoring
  **Input:**
  ```
  "John Smith, SSN: 123-45-6789, Phone: (555) 123-4567, Email: john@example.com"
  ```

  **Output:**
  ```
  "████ ████, SSN: ███-██-████, Phone: (███) ███-████, Email: ███@███.███"
  ```

  #### Object Processing
  **Input:**
  ```json
  {
    "name": "Jane Doe",
    "email": "jane.doe@example.com",
    "ssn": "987-65-4321",
    "phone": "(555) 987-6543"
  }
  ```

  **Output:**
  ```json
  {
    "name": "████ ████",
    "email": "████@███.███",
    "ssn": "███-██-████",
    "phone": "(███) ███-████"
  }
  ```

  #### HIPAA Healthcare Data
  **Input:**
  ```json
  {
    "patientName": "Alice Williams",
    "ssn": "111-22-3333",
    "medicalRecord": "Patient Alice Williams has hypertension, prescribed Lisinopril 10mg"
  }
  ```

  **Output:**
  ```json
  {
    "patientName": "████ ███████",
    "ssn": "███-██-████",
    "medicalRecord": "Patient ████ ███████ has hypertension, prescribed ████████ 10mg"
  }
  ```

  ## 🔧 Console Logging

  Both nodes include comprehensive console logging for debugging:

  ```
  🔍 Simple OCR - Processing file: /path/to/image.png
  ✅ Simple OCR - Result: { "status": "OK", "data": {...} }

  📄 Simple Parse - Processing file: /path/to/document.pdf
  ✅ Simple Parse - Result: { "status": "OK", "data": {...} }
  ```

  ## 📁 Supported File Types

  ### Aparavi DTC Node
  - **Parser**: PDF, DOCX, TXT, HTML, and more
  - **OCR**: PNG, JPG, JPEG, TIFF, BMP
  - **Audio**: MP3, WAV, M4A, FLAC

  ### Aparavi PII Censor Node
  - **Text**: Any text input
  - **JSON**: Objects and arrays
  - **Files**: Any file type (processed as text)

  ## 🛠️ Advanced Configuration

  ### Custom Pipelines
  Use the **Custom Pipeline** operation to run any Aparavi workflow:

  ```json
  {
    "pipeline": {
      "source": "webhook_1",
      "components": [
        {
          "id": "webhook_1",
          "provider": "webhook",
          "config": {
            "hideForm": true,
            "mode": "Source",
            "type": "webhook"
          }
        },
        {
          "id": "processor_1",
          "provider": "your-provider",
          "config": {
            "your-config": "value"
          },
          "input": [
            {
              "from": "webhook_1",
              "lane": "data"
            }
          ]
        }
      ]
    }
  }
  ```

  ### Field-Specific Processing
  Process only specific fields in your data:

  ```json
  {
    "piiType": "usa",
    "inputDataMode": "specific",
    "fieldsToProcess": "name,ssn,email"
  }
  ```

  ## 🔄 Error Handling

  Both nodes include comprehensive error handling:

  - **Connection Errors**: Handles API connection issues gracefully
  - **Validation Errors**: Validates input data and parameters
  - **Processing Errors**: Handles individual item processing failures
  - **Continue on Fail**: Option to continue processing other items if one fails
  - **Automatic Cleanup**: Properly disconnects and cleans up resources

  ## 📊 Output Structure

  ### Aparavi DTC Node Output
  ```json
  {
    "status": "OK",
    "data": {
      "objectsRequested": 1,
      "objectsCompleted": 1,
      "types": { "text": "text" },
      "objects": {
        "object-id": {
          "name": "filename.pdf",
          "path": "filename.pdf",
          "text": ["Extracted text content..."],
          "table": [/* Extracted tables */],
          "image": [/* Extracted images */],
          "metadata": {
            "Content-Type": "application/pdf",
            "dc:created": "2025-09-19T21:56:14Z"
          }
        }
      }
    },
    "metrics": {
      "cpu": 2085.871,
      "output": 10274,
      "total_time": 2085.877,
      "requests": 1
    }
  }
  ```

  ### Aparavi PII Censor Node Output
  ```json
  {
    "operation": "anonymizePII",
    "result": {
      "status": "OK",
      "data": {
        "objectsRequested": 1,
        "objectsCompleted": 1,
        "objects": {
          "object-id": {
            "name": "input.json",
            "path": "input.json",
            "text": ["Anonymized text content..."]
          }
        }
      }
    }
  }
  ```

  ## 🚀 Development Setup

  For developers who want to contribute or modify the nodes:

  ### Prerequisites
  - Node.js 16+
  - npm or yarn
  - n8n instance

  ### Local Development
  ```bash
  # Clone the repository
  git clone https://github.com/AparaviSoftware/aparavi-n8n-node.git
  cd aparavi-n8n-node

  # Install dependencies
  npm install

  # Build the package
  npm run build

  # Start n8n with custom nodes
  ./start-n8n-dev.sh
  ```

  ### Testing
  ```bash
  # Test the SDK directly
  node test-local-sdk.js

  # Test specific operations
  node test-pipeline-debug.js
  ```

  ## 📚 Documentation

  - **INSTALLATION.md** - Detailed installation guide
  - **QUICK_START.md** - Quick start guide
  - **LOCAL_SDK_SETUP.md** - Local development setup
  - **TROUBLESHOOTING_PROJECT_ID.md** - Troubleshooting guide

  ## 🔧 Troubleshooting

  ### Common Installation Issues

  #### Nodes Don't Appear in n8n
  ```bash
  # Check if package is installed
  npm list -g n8n-nodes-aparavi

  # Check n8n logs for errors
  n8n start --log-level debug

  # Restart n8n completely
  # Stop n8n (Ctrl+C)
  n8n start
  ```

  #### Installation Errors
  ```bash
  # Clear npm cache
  npm cache clean --force

  # Reinstall latest version
  npm install -g n8n-nodes-aparavi@latest

  # Check n8n version compatibility
  n8n --version
  ```

  #### Permission Issues
  ```bash
  # Fix npm permissions
  sudo chown -R $(whoami) ~/.npm

  # Or use npx instead
  npx n8n-nodes-aparavi-dtc
  ```

  #### Custom Base URL Not Working
  - **Check URL format**: Must include `https://` or `http://`
  - **Verify URL accessibility**: Test with `curl -I https://your-url.com`
  - **Check console logs**: Look for base URL confirmation messages
  - **Default fallback**: Leave empty to use `https://eaas-dev.aparavi.com`

  ### Verification Checklist

  After installation, verify:
  - [ ] **Nodes appear** in Transform category
  - [ ] **Credentials available** (Aparavi API)
  - [ ] **No errors** in n8n console
  - [ ] **Can create workflows** with the nodes
  - [ ] **API key works** (test with Simple OCR)
  - [ ] **Console logging** shows base URL

  ### Environment-Specific Issues

  #### Development Environment (`eaas-dev.aparavi.com`)
  - **Default environment** - no configuration needed
  - **May have pipeline conflicts** - wait for existing pipelines to finish
  - **Console shows**: `🌐 Using default base URL: https://eaas-dev.aparavi.com`

  #### Production Environment (`eaas.aparavi.com`)
  - **Requires custom base URL** configuration
  - **More stable** than dev environment
  - **Console shows**: `🌐 Using custom base URL: https://eaas.aparavi.com`

  ## 🤝 Support

  Need help? We're here to assist:

  1. **Aparavi Discord**: [Join our Discord community](https://discord.gg/ur9sRvJt) and visit the #technical-support channel
  2. **GitHub Issues**: [Report problems or request features](https://github.com/AparaviSoftware/aparavi-n8n-node/issues)
  3. **n8n Community**: [n8n Community Forum](https://community.n8n.io/) for n8n-specific questions
  4. **API Key Help**: [Get your free API key](https://dtc.aparavi.com/usage)

  ## 📝 Changelog

  ### v1.1.23
  - ✅ **Custom Base URL Configuration** - Users can now configure custom Aparavi API URLs
  - ✅ **Environment Flexibility** - Support for production, development, and custom environments
  - ✅ **Enhanced Documentation** - Comprehensive n8n connection and troubleshooting guide
  - ✅ **Console Logging** - Clear indication of which base URL is being used
  - ✅ **Both Nodes Updated** - Aparavi DTC and Aparavi PII Censor nodes support custom URLs

  ### v1.1.22
  - ✅ **Dev Environment Default** - Package now defaults to `eaas-dev.aparavi.com`
  - ✅ **Updated API Configuration** - All API calls point to development environment
  - ✅ **Console Logging** - Debug output shows environment URL

  ### v1.1.21
  - ✅ **Updated README** - Comprehensive documentation with both nodes
  - ✅ **Console Logging** - Debug output for all operations
  - ✅ **Project ID Fix** - Automatic handling of Aparavi project configuration
  - ✅ **Local SDK Integration** - Uses working local SDK with project_id fix
  - ✅ **Enhanced Error Handling** - Improved error handling and cleanup
  - ✅ **Updated Documentation** - Comprehensive usage examples and guides

  ### v1.1.20
  - ✅ **Published to npm** - Package now available as `n8n-nodes-aparavi-dtc`
  - ✅ **Added Aparavi DTC Node** - Comprehensive data processing capabilities
  - ✅ **Console Logging** - Debug output for all operations
  - ✅ **Project ID Fix** - Automatic handling of Aparavi project configuration
  - ✅ **Local SDK Integration** - Uses working local SDK with project_id fix
  - ✅ **Enhanced Error Handling** - Improved error handling and cleanup
  - ✅ **Updated Documentation** - Comprehensive usage examples and guides

  ### v1.1.1
  - Enhanced PII and HIPAA data detection
  - Improved error handling and validation
  - Streamlined configuration options
  - Updated documentation and examples

  ### v1.0.0
  - Initial release
  - Support for USA PII, International PII, and HIPAA data
  - Flexible input handling for any data type
  - Comprehensive error handling

  ## 📄 License

  MIT License - see LICENSE file for details.

  ---

  **Ready to get started?** Install the package and begin processing your data with powerful Aparavi DTC capabilities! 🚀

ai_documentation_summary:
  {"purpose":"The Aparavi node package enables n8n users to perform advanced data processing tasks such as OCR, document parsing, audio transcription, and PII/HIPAA data anonymization using Aparavi's DTC service.","capabilities":["Simple OCR for images (PNG, JPG, TIFF, BMP)","Simple Parse for documents (PDF, DOCX, TXT, HTML)","Audio Transcription (MP3, WAV, M4A, FLAC)","Audio to Summary with Gemini AI","Anonymize PII and HIPAA data","Advanced document parsing with classification","Run custom Aparavi workflows via Custom Pipeline"],"authentication":"API key required; obtained by signing up at https://dtc.aparavi.com/usage","commonUseCases":["Extract text from scanned documents using OCR","Parse structured and unstructured documents","Transcribe audio files into text","Automatically anonymize sensitive data (PII, healthcare records)","Process batches of files or records with consistent output structure"],"limitations":[],"relatedNodes":["Transform","Data Processing","Anonymization","OCR","Audio Processing"]}


node_type: n8n-nodes-metricool-or.MetricoolOr
package_name: n8n-nodes-metricool-or
display_name: MetricoolOr
description: n8n node to integrate with Metricool social media management platform
category: Community
development_style: declarative
version: 1.3.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: kukis2107
author_github_url: git+https://github.com/kukis2107/n8n-nodes-metricool-or.git
npm_package_name: n8n-nodes-metricool-or
npm_version: 1.3.1
community_fetched_at: 2026-01-07T20:08:17.632Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-metricool

  This is an n8n community node. It lets you use Metricool in your n8n workflows.

  [Metricool](https://metricool.com/) is a social media management platform that allows you to analyze, manage, and schedule content across multiple social networks.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  ### Brand Operations
  - Get Brands - Get a list of brands from your Metricool account
  - Get Brands (Complete) - Get a detailed list of brands with all available information

  ### Social Media Content Operations
  - Get Instagram Posts, Reels, and Stories
  - Get Facebook Posts, Reels, and Stories
  - Get TikTok Videos
  - Get LinkedIn Posts
  - Get Pinterest Pins
  - Get YouTube Videos
  - Get Twitch Videos
  - Get X (Twitter) Posts
  - Get Bluesky Posts
  - Get Threads Posts

  ### Analytics Operations
  - Get Metrics - Get available metrics for a specific network
  - Get Analytics - Get analytics data for a specific network and metrics

  ### Post Management Operations
  - Schedule Post - Schedule a post to multiple social networks
  - Get Scheduled Posts - Get a list of scheduled posts
  - Update Scheduled Post - Update an existing scheduled post

  ### Competitor Analysis Operations
  - Get Network Competitors - Get a list of competitors for supported networks
  - Get Network Competitors Posts - Get and analyze posts from competitors

  ### Optimal Timing Operations
  - Get Best Time to Post - Get the best time to post for a specific network

  ### Advertising Operations
  - Get Facebook Ads Campaigns
  - Get Google Ads Campaigns
  - Get TikTok Ads Campaigns

  ## Credentials

  To use this node, you need to have a Metricool account with API access (Advanced Tier) and obtain your API credentials:

  1. Sign up for a Metricool account at [metricool.com](https://metricool.com/)
  2. Upgrade to the Advanced Tier to get API access
  3. Get your User Token and User ID from the API section in your account settings

  ## Compatibility

  This node has been tested with n8n version 1.0.0 and later.

  ## Advanced Features

  ### Multi-Platform Scheduling with Vertical Slicing

  This node supports **advanced multi-platform, multi-format scheduling** using a "Vertical Slicing" algorithm. This allows you to schedule different content types across multiple platforms in a single workflow execution.

  **How it works:**
  - Select multiple post types for Instagram (Feed, Reel, Story)
  - Select multiple post types for Facebook (Feed, Reel, Story)
  - Select multiple post types for YouTube (Video, Short)
  - The node automatically groups the 1st selection of each platform together, 2nd selections together, etc.

  **Example:**
  If you select:
  - Instagram: Feed, Reel, Story
  - Facebook: Feed, Reel
  - YouTube: Video

  The node will create **3 separate scheduled posts**:
  1. Instagram Feed + Facebook Feed + YouTube Video
  2. Instagram Reel + Facebook Reel
  3. Instagram Story

  This optimizes API calls while ensuring each content type is scheduled correctly.

  ### Instagram Reel Options

  When scheduling Instagram Reels, you have the option to **Show Reel on Feed**, which makes the Reel visible in your main Instagram grid in addition to the Reels tab.

  ## Usage Examples

  ### Example 1: Simple Cross-Platform Post

  Schedule a single post to Instagram, Facebook, and YouTube:

  ```
  Blog ID: 1234567
  Post Text: "Check out our new product! 🚀"
  Platforms: Instagram, Facebook, YouTube
  Instagram Post Type: Feed
  Facebook Post Type: Feed
  YouTube Post Type: Video
  Scheduled Date: 2025-01-15T10:00:00
  Media URLs: ["https://example.com/image.jpg"]
  ```

  ### Example 2: Multi-Format Instagram Campaign

  Schedule the same content as Feed, Reel, and Story on Instagram:

  ```
  Blog ID: 1234567
  Post Text: "New year, new goals! 💪"
  Platforms: Instagram
  Instagram Post Type: Feed, Reel, Story
  Scheduled Date: 2025-01-01T09:00:00
  Media URLs: ["https://example.com/video.mp4"]
  Show Reel on Feed: true
  ```

  This creates 3 separate Instagram posts with the same content but different formats.

  ### Example 3: Advanced Multi-Platform Strategy

  Schedule different formats across Instagram, Facebook, and YouTube:

  ```
  Blog ID: 1234567
  Post Text: "Behind the scenes content 🎬"
  Platforms: Instagram, Facebook, YouTube
  Instagram Post Type: Reel, Story
  Facebook Post Type: Reel, Story
  YouTube Post Type: Short
  Scheduled Date: 2025-01-20T14:00:00
  Media URLs: ["https://example.com/bts-video.mp4"]
  ```

  This creates 2 posts:
  - Post 1: Instagram Reel + Facebook Reel + YouTube Short
  - Post 2: Instagram Story + Facebook Story

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Metricool API documentation](https://help.metricool.com/es/article/acceso-a-la-api-exporta-datos-de-metricool-a-otras-herramientas-y-automatiza-tareas-29gqn7/)

ai_documentation_summary:
  {"purpose":"The MetricoolOr node enables integration with the Metricool social media management platform, allowing users to retrieve content, analytics, schedule posts across multiple platforms, and perform competitor analysis within n8n workflows.","capabilities":["Retrieve brand lists (basic and detailed)","Fetch posts and content from Instagram, Facebook, TikTok, LinkedIn, Pinterest, YouTube, Twitch, X (Twitter), Bluesky, and Threads","Access analytics and metrics for various social networks","Schedule posts to multiple platforms with support for different content formats","Get competitor posts and analyze them","Determine optimal posting times by network","Retrieve advertising campaign data from Facebook, Google Ads, and TikTok","Support for multi-platform scheduling using vertical slicing (grouping content by type across platforms)"],"authentication":"API key required via User Token and User ID obtained from Metricool's Advanced Tier account settings","commonUseCases":["Scheduling a single post across Instagram, Facebook, and YouTube","Creating multiple content formats (e.g., Feed, Reel, Story) for Instagram from the same content","Running cross-platform campaigns with optimized content grouping","Analyzing competitor activity on social media","Automating content publishing with timing insights"],"limitations":["Requires Metricool Advanced Tier subscription for API access","Only supports platforms where Metricool provides API access (e.g., not all social networks may be available)","Vertical slicing scheduling creates multiple scheduled posts based on content type groupings, which may require manual review","No support for direct content creation or editing in the node"],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-database","n8n-nodes-httpRequest"]}


node_type: n8n-nodes-rssmedia.Rssmedia
package_name: n8n-nodes-rssmedia
display_name: Rssmedia
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: abdessamadsouilem
author_github_url: git+https://github.com/abdessamadsouilem/n8n-nodes-rssmedia.git
npm_package_name: n8n-nodes-rssmedia
npm_version: 1.0.1
community_fetched_at: 2026-01-07T20:08:17.632Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  An n8n community node for reading RSS feeds and extracting media content with advanced filtering options

npm_readme:
  # n8n-nodes-rssmedia

  This is an n8n community node that allows you to fetch RSS feeds and extract media content with advanced filtering options.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ### Community node installation

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-rssmedia` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  After installing the node, you can use it like any other node in your workflows.

  ## Operations

  The RSS Media Reader node supports the following operations:

  ### Fetch RSS Feed
  - Fetches an RSS feed from a given URL
  - Extracts media content from RSS items
  - Supports filtering by media type
  - Provides advanced configuration options

  ## Credentials

  This node doesn't require credentials as it works with public RSS feeds. However, you can add custom headers for authentication if needed.

  ## Compatibility

  This node is compatible with:
  - n8n version 0.87.0 and above
  - RSS 2.0 feeds
  - Atom feeds
  - RSS 1.0 (RDF) feeds
  - Media RSS extensions
  - iTunes podcast extensions

  ## Usage

  ### Basic Setup

  1. Add the RSS Media Reader node to your workflow
  2. Enter the RSS feed URL in the **RSS Feed URL** field
  3. Configure any additional options as needed
  4. Execute the node

  ### Available Options

  #### Timeout
  Set the request timeout in seconds (1-300 seconds, default: 15)

  #### Max Items
  Limit the number of items returned (0 = all items, default: 0)

  #### Media Types
  Filter results by media type:
  - **All Media**: Include all types of media content
  - **Images**: Only include image content
  - **Videos**: Only include video content  
  - **Audio**: Only include audio content

  #### Include Items Without Media
  Choose whether to include RSS items that don't contain media content (default: false)

  #### Custom Headers
  Add custom HTTP headers to the request, useful for:
  - Custom User-Agent strings
  - Authentication headers
  - API keys
  - Any other required headers

  ### Output Format

  The node returns an array of items with the following structure:

  ```json
  {
    "title": "RSS Item Title",
    "link": "https://example.com/article",
    "pubDate": "Wed, 01 Jan 2024 12:00:00 GMT",
    "description": "Article description",
    "author": "Author Name",
    "category": "Category",
    "guid": "unique-identifier",
    "media": {
      "urls": [
        {
          "url": "https://example.com/media.jpg",
          "type": "image/jpeg",
          "medium": "image",
          "width": 800,
          "height": 600,
          "fileSize": 102400
        }
      ],
      "type": "image",
      "thumbnail": "https://example.com/thumbnail.jpg"
    },
    "source": {
      "url": "https://example.com/rss.xml",
      "title": "RSS Feed Title",
      "description": "RSS Feed Description"
    }
  }
  ```

  ### Supported Media Sources

  The node can extract media from various RSS elements:

  1. **Media RSS namespace** (`media:content`, `media:thumbnail`)
  2. **Enclosures** (common in podcasts)
  3. **iTunes namespace** (`itunes:image`)
  4. **Simple image tags**
  5. **Custom media elements**

  ### Error Handling

  The node includes robust error handling:

  - **URL validation**: Ensures the provided URL is valid
  - **Timeout handling**: Prevents hanging requests
  - **Parse errors**: Gracefully handles malformed XML
  - **Network errors**: Provides meaningful error messages
  - **Continue on fail**: Option to continue processing even if individual items fail

  ### Example Workflows

  #### 1. Extract Images from News RSS
  ```
  RSS Media Reader → Filter (images only) → Download Images → Process Images
  ```

  #### 2. Podcast Episode Processor  
  ```
  RSS Media Reader → Filter (audio only) → Extract Metadata → Store in Database
  ```

  #### 3. Media Aggregator
  ```
  Multiple RSS Media Readers → Merge → Filter by Date → Send Notification
  ```

  ## Development

  ### Building the Node

  ```bash
  # Install dependencies
  pnpm install

  # Build the node
  pnpm build

  # Watch for changes during development
  pnpm dev

  # Lint the code
  pnpm lint

  # Format the code
  pnpm format
  ```

  ### Project Structure

  ```
  n8n-nodes-rssmedia/
  ├── nodes/
  │   └── RssMedia/
  │       ├── RssMedia.node.ts
  │       └── rss.svg
  ├── dist/                 # Built files
  ├── package.json
  ├── tsconfig.json
  ├── gulpfile.js
  ├── .eslintrc.js
  ├── .prettierrc
  ├── .gitignore
  └── README.md
  ```

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [n8n node development documentation](https://docs.n8n.io/integrations/creating-nodes/)
  * [RSS 2.0 Specification](https://www.rssboard.org/rss-specification)
  * [Media RSS Specification](http://www.rssboard.org/media-rss)

  ## License

  MIT

  ## Version History

  ### 1.0.0
  - Initial release
  - Support for RSS 2.0, Atom, and RSS 1.0 feeds
  - Media extraction with filtering
  - Advanced configuration options
  - Error handling and validation 

ai_documentation_summary:
  {"purpose":"The Rssmedia node fetches RSS feeds and extracts media content such as images, videos, and audio, with advanced filtering options to target specific media types and configurations.","capabilities":["Fetches RSS and Atom feeds including RSS 2.0, RSS 1.0 (RDF), and iTunes podcast extensions","Extracts media content from media:content, enclosures, iTunes image, and simple image tags","Filters results by media type (images, videos, audio, or all media)","Includes optional filtering for items without media content","Supports custom HTTP headers for authentication or user-agent customization","Provides timeout and item limit configuration","Returns structured JSON output with media metadata and item details","Includes robust error handling for invalid URLs, malformed XML, and network issues"],"authentication":"No credentials required for public RSS feeds; custom headers can be added for authentication or API key usage","commonUseCases":["Extracting images from news or blog RSS feeds","Processing podcast episodes by filtering for audio content","Aggregating media from multiple RSS sources and filtering by date or type","Automating media downloads and processing pipelines"],"limitations":[],"relatedNodes":["Filter","Download","Database","Notification"]}


node_type: n8n-nodes-workflow-generator.WorkflowGenerator
package_name: n8n-nodes-workflow-generator
display_name: WorkflowGenerator
description: Generate n8n workflows from natural language using Claude AI
category: Community
development_style: declarative
version: 0.6.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: dpm007
author_github_url: git+https://github.com/dwayne/n8n-nodes-workflow-generator.git
npm_package_name: n8n-nodes-workflow-generator
npm_version: 0.6.1
community_fetched_at: 2026-01-07T20:08:17.633Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n Workflow Generator

  Generate n8n workflows from natural language using Claude AI.

  This custom n8n node leverages Claude Sonnet 4.5's structured outputs to transform plain English descriptions into fully functional n8n workflows. Simply describe what you want your workflow to do, and the AI will generate the complete workflow JSON with proper nodes, connections, and parameters.

  ## Features

  - **Natural Language to Workflow**: Describe workflows in plain English
  - **Claude Sonnet 4.5 Integration**: Uses structured outputs for reliable JSON generation
  - **Automatic Validation**: Validates generated workflows before creation
  - **Smart Node Selection**: Uses a curated library of common n8n nodes
  - **Error Handling**: Clear error messages and automatic retry logic
  - **Flexible Configuration**: Control temperature, tokens, and other AI parameters

  ## Supported Nodes

  The node currently supports these common n8n node types:

  - **Webhook**: HTTP webhook triggers
  - **HTTP Request**: API calls and HTTP requests
  - **IF**: Conditional logic and branching
  - **Code**: Custom JavaScript execution
  - **Set**: Data transformation and field mapping
  - **Slack**: Slack message integration
  - **Merge**: Combine data from multiple branches
  - **Split In Batches**: Process items in batches
  - **Wait**: Pause workflow execution
  - **Respond to Webhook**: Return responses to webhook callers

  ## Prerequisites

  - n8n instance (self-hosted or cloud) with API access enabled
  - Anthropic API key (Claude access)
  - Node.js 18+ (for development)

  ## Installation

  ### Option 1: Install from npm (when published)

  ```bash
  npm install n8n-nodes-workflow-generator
  ```

  ### Option 2: Install from source

  1. Clone this repository:
  ```bash
  git clone https://github.com/yourusername/n8n-nodes-workflow-generator.git
  cd n8n-nodes-workflow-generator
  ```

  2. Install dependencies:
  ```bash
  npm install
  ```

  3. Build the node:
  ```bash
  npm run build
  ```

  4. Link to your n8n installation:
  ```bash
  npm link
  cd ~/.n8n/custom
  npm link n8n-nodes-workflow-generator
  ```

  5. Restart n8n:
  ```bash
  n8n start
  ```

  ## Setup

  ### 1. Enable n8n API

  For self-hosted n8n:

  ```bash
  # Add to your environment variables
  export N8N_API_KEY=your-api-key-here
  ```

  Or in your n8n settings (Settings > n8n API), generate an API key.

  For n8n Cloud:
  - Go to Settings > n8n API
  - Generate a new API key

  ### 2. Get Claude API Key

  1. Sign up at [console.anthropic.com](https://console.anthropic.com/)
  2. Generate an API key from the API Keys section
  3. Copy the key (starts with `sk-ant-api03-`)

  ### 3. Configure Credentials in n8n

  1. In n8n, go to **Settings > Credentials**
  2. Add **Claude API** credentials:
     - Click "Add Credential"
     - Search for "Claude API"
     - Enter your Anthropic API key
     - Test and save

  3. Add **n8n API** credentials:
     - Click "Add Credential"
     - Search for "n8n API"
     - Enter your n8n API key
     - Test and save

  ## Usage

  ### Basic Example

  1. Create a new workflow in n8n
  2. Add the **Workflow Generator** node
  3. Connect it to a trigger (e.g., Manual Trigger)
  4. Select your Claude and n8n API credentials
  5. Enter a workflow description:

  ```
  Create a workflow that:
  1. Triggers on webhook POST to /order-notification
  2. Fetches customer data from https://api.example.com/customers
  3. Checks if order total is greater than 100
  4. If yes, sends notification to #premium-orders Slack channel
  5. If no, sends to #standard-orders channel
  6. Returns success response to webhook
  ```

  6. Set your n8n instance URL (e.g., `https://your-n8n.com` or `http://localhost:5678`)
  7. Execute the workflow
  8. The generated workflow will be created in your n8n instance

  ### Advanced Options

  - **Include Comments**: Add explanatory comments in Code nodes (default: true)
  - **Auto Activate**: Automatically activate the workflow after creation (default: false)
  - **Max Tokens**: Control Claude response length (default: 4096)
  - **Temperature**: Adjust creativity vs determinism (default: 0.3, range: 0-1)

  ## Examples

  ### Example 1: Simple Webhook to Slack

  **Input:**
  ```
  Webhook that receives POST requests and sends the data to #notifications Slack channel
  ```

  **Generated Workflow:**
  - Webhook node (POST endpoint)
  - Slack node (sends to #notifications)
  - Proper connection between nodes

  ### Example 2: API Integration with Conditional Logic

  **Input:**
  ```
  1. Webhook trigger
  2. Fetch user data from https://api.myapp.com/users/{{$json.userId}}
  3. If user.status is "premium", send to #premium-support
  4. Otherwise send to #standard-support
  5. Respond to webhook with success message
  ```

  **Generated Workflow:**
  - Webhook trigger node
  - HTTP Request node to fetch user data
  - IF node checking status field
  - Two Slack nodes for different channels
  - Respond to Webhook node

  ### Example 3: Data Processing Pipeline

  **Input:**
  ```
  Process incoming orders:
  1. Webhook receives order data
  2. Transform data to add timestamp and order_id
  3. Split into batches of 10
  4. For each batch, send to https://api.warehouse.com/orders
  5. Wait 2 seconds between batches
  ```

  **Generated Workflow:**
  - Webhook node
  - Set node for data transformation
  - Split In Batches node
  - HTTP Request node
  - Wait node
  - Proper loop connections

  ## Validation

  The node performs multi-level validation:

  1. **Schema Validation**: Ensures JSON matches n8n workflow structure (Zod)
  2. **Node Validation**: Checks node types, names, and IDs are valid
  3. **Connection Validation**: Verifies all connections reference existing nodes
  4. **Parameter Validation**: Confirms required parameters are present
  5. **Structure Validation**: Warns about missing triggers or disconnected nodes

  ## Error Handling

  The node provides clear error messages for common issues:

  - **Invalid API Key**: Check your Claude or n8n credentials
  - **Rate Limit Exceeded**: Wait and retry (429 error)
  - **Invalid Request**: Simplify or clarify your workflow description
  - **Validation Errors**: Lists specific issues with generated workflow
  - **Connection Failed**: Verify n8n instance URL and API access

  ## Development

  ### Project Structure

  ```
  n8n-nodes-workflow-generator/
  ├── credentials/
  │   ├── ClaudeApi.credentials.ts
  │   └── N8nApi.credentials.ts
  ├── nodes/
  │   └── WorkflowGenerator/
  │       ├── WorkflowGenerator.node.ts
  │       ├── schemas/
  │       │   ├── workflow-schema.ts
  │       │   └── validation.ts
  │       ├── services/
  │       │   ├── claude-service.ts
  │       │   ├── n8n-service.ts
  │       │   └── schema-library.ts
  │       └── utils/
  │           └── error-handler.ts
  ├── test/
  │   └── unit/
  │       └── schema-library.test.ts
  ├── package.json
  ├── tsconfig.json
  └── README.md
  ```

  ### Running Tests

  ```bash
  npm test
  ```

  ### Running Tests with Coverage

  ```bash
  npm run test:coverage
  ```

  ### Linting

  ```bash
  npm run lint
  npm run lint:fix
  ```

  ### Building

  ```bash
  npm run build
  ```

  ### Development Mode (watch)

  ```bash
  npm run dev
  ```

  ## Limitations

  - Currently supports 10 common node types (extensible)
  - No RAG-based schema retrieval (MVP uses curated library)
  - No real-time canvas visualization (workflows created via API)
  - Credentials must be manually configured in n8n
  - Complex workflows may require multiple iterations

  ## Roadmap

  - [ ] Add support for 50+ additional node types
  - [ ] Implement RAG-based schema retrieval for all n8n nodes
  - [ ] Add workflow template library
  - [ ] Support for workflow updates (not just creation)
  - [ ] Real-time streaming generation with progress updates
  - [ ] Automatic credential detection and setup guidance
  - [ ] Workflow optimization suggestions
  - [ ] Support for sub-workflows
  - [ ] Integration with n8n's AI Workflow Builder

  ## Contributing

  Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (`git checkout -b feature/amazing-feature`)
  3. Make your changes
  4. Run tests (`npm test`)
  5. Run linter (`npm run lint:fix`)
  6. Commit your changes (`git commit -m 'Add amazing feature'`)
  7. Push to the branch (`git push origin feature/amazing-feature`)
  8. Open a Pull Request

  ## Troubleshooting

  ### Node doesn't appear in n8n

  - Ensure the node is properly built (`npm run build`)
  - Check that n8n can find the node package
  - Restart n8n after installation
  - Check n8n logs for errors

  ### Claude API errors

  - Verify your API key is correct
  - Check you have sufficient credits
  - Ensure you're using the correct model name
  - Try reducing max_tokens if hitting limits

  ### n8n API errors

  - Confirm API is enabled in n8n settings
  - Verify your n8n API key is valid
  - Check the instance URL is correct (include protocol)
  - Ensure your n8n user has permission to create workflows

  ### Generated workflows are invalid

  - Try simplifying your description
  - Be more specific about node parameters
  - Check the validation errors in the output
  - Report issues with example descriptions

  ## License

  MIT

  ## Credits

  Built with:
  - [n8n](https://n8n.io/) - Workflow automation platform
  - [Claude (Anthropic)](https://www.anthropic.com/) - AI language model
  - [Zod](https://github.com/colinhacks/zod) - TypeScript schema validation

  ## Support

  - GitHub Issues: [Report bugs or request features](https://github.com/yourusername/n8n-nodes-workflow-generator/issues)
  - n8n Community: [n8n Community Forum](https://community.n8n.io/)
  - Documentation: [n8n Documentation](https://docs.n8n.io/)

  ## Author

  Your Name - [@yourtwitter](https://twitter.com/yourtwitter)

  Project Link: [https://github.com/yourusername/n8n-nodes-workflow-generator](https://github.com/yourusername/n8n-nodes-workflow-generator)

ai_documentation_summary:
  {"purpose":"Generates fully functional n8n workflows from natural language descriptions using Claude Sonnet 4.5 AI, enabling users to create complex automation workflows with simple English prompts.","capabilities":["Converts plain English descriptions into valid n8n workflow JSON","Supports common n8n node types including Webhook, HTTP Request, IF, Code, Slack, Merge, Split In Batches, Wait, and Respond to Webhook","Automatically validates generated workflows for schema, node, connection, and parameter correctness","Includes error handling with clear messages and retry logic","Allows customization of AI parameters like temperature, max tokens, and comment inclusion","Supports conditional logic, data transformation, batching, and API integrations"],"authentication":"Anthropic API key (Claude) and n8n API key required for authentication","commonUseCases":["Creating automated data pipelines from natural language descriptions","Building API integrations with conditional branching","Setting up webhook-triggered notifications to Slack or other services","Processing data in batches with transformations and delays","Generating reusable workflow templates without manual configuration"],"limitations":["Only supports a curated set of common n8n nodes; custom or advanced node types may not be supported","Generated workflows are validated but may still require manual review for edge cases","Performance depends on Claude API response time and token limits","No support for dynamic or user-defined node types beyond the predefined library"],"relatedNodes":["Webhook","HTTP Request","IF","Code","Slack"]}


node_type: n8n-nodes-wps-data-delete.WpsDataDelete
package_name: n8n-nodes-wps-data-delete
display_name: WpsDataDelete
description: WPS data delete node for n8n - Fixed webhook 30s timeout with auto-loop support
category: Community
development_style: declarative
version: 2.0.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: tanmi0609
author_github_url: git+https://github.com/n8n-io/n8n.git
npm_package_name: n8n-nodes-wps-data-delete
npm_version: 2.0.0
community_fetched_at: 2026-01-07T20:08:17.637Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-wps-data-delete

  WPS数据删除节点 - N8N工作流自动化插件，支持多个Webhook URL配置。

  ## 功能特点

  - ✅ 支持配置多个WPS Webhook URL
  - ✅ 支持两种执行模式:
    - **执行所有**: 依次执行所有配置的Webhook
    - **首次成功**: 执行到第一个成功的Webhook即停止
  - ✅ 自动解析删除记录数
  - ✅ 详细的执行结果报告
  - ✅ 请求超时配置
  - ✅ 调试模式支持

  ## 安装

  ```bash
  npm install n8n-nodes-wps-data-delete
  ```

  ## 配置说明

  ### Webhook配置

  每个Webhook配置包含以下字段:

  - **Configuration Name**: 配置名称(可选),用于标识此Webhook
  - **Webhook URL**: WPS Webhook地址
    - 格式: `https://www.kdocs.cn/api/v3/ide/file/{fileId}/script/{scriptId}/sync_task`
  - **WPS API Token**: AirScript-Token认证令牌

  ### 执行选项

  - **Request Timeout**: 请求超时时间(毫秒),默认60000ms(60秒)
    - 范围: 10000-300000ms
  - **Execute Mode**: 执行模式
    - **Execute All**: 执行所有Webhook,即使某个失败也继续
    - **Execute First Success**: 执行到第一个成功即停止
  - **Enable Debug**: 启用调试输出
  - **Parse Deleted Count**: 从响应日志中解析删除记录数(默认启用)

  ## 使用示例

  ### 1. 单个Webhook删除

  配置单个Webhook URL执行删除操作。

  **输入配置:**
  ```json
  {
    "webhookConfigurations": {
      "webhookConfig": [
        {
          "configName": "主Webhook",
          "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/xxx/script/xxx/sync_task",
          "wpsToken": "your-token-here"
        }
      ]
    }
  }
  ```

  **输出结果:**
  ```json
  {
    "success": true,
    "totalWebhooks": 1,
    "successfulWebhooks": 1,
    "failedWebhooks": 0,
    "message": "All 1 webhook(s) executed successfully in 2340ms, total deleted: 1490 records",
    "deletedCount": 1490,
    "details": [
      {
        "webhookName": "主Webhook",
        "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/xxx/script/xxx/sync_task",
        "success": true,
        "message": "Delete operation completed successfully",
        "deletedCount": 1490,
        "responseTime": 2340
      }
    ]
  }
  ```

  ### 2. 多个Webhook - 执行所有模式

  配置多个Webhook,全部执行。

  **输入配置:**
  ```json
  {
    "webhookConfigurations": {
      "webhookConfig": [
        {
          "configName": "淘宝月报删除",
          "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/aaa/script/bbb/sync_task",
          "wpsToken": "token1"
        },
        {
          "configName": "快手月报删除",
          "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/ccc/script/ddd/sync_task",
          "wpsToken": "token2"
        }
      ]
    },
    "options": {
      "executeMode": "all"
    }
  }
  ```

  ### 3. 多个Webhook - 首次成功模式

  配置多个Webhook作为备份,执行到第一个成功即停止。

  **输入配置:**
  ```json
  {
    "webhookConfigurations": {
      "webhookConfig": [
        {
          "configName": "主Webhook",
          "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/xxx1/script/yyy1/sync_task",
          "wpsToken": "token1"
        },
        {
          "configName": "备用Webhook",
          "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/xxx2/script/yyy2/sync_task",
          "wpsToken": "token2"
        }
      ]
    },
    "options": {
      "executeMode": "firstSuccess"
    }
  }
  ```

  **输出结果(第一个成功):**
  ```json
  {
    "success": true,
    "totalWebhooks": 2,
    "successfulWebhooks": 1,
    "failedWebhooks": 0,
    "message": "All 1 webhook(s) executed successfully in 1850ms, total deleted: 320 records",
    "deletedCount": 320,
    "details": [
      {
        "webhookName": "主Webhook",
        "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/xxx1/script/yyy1/sync_task",
        "success": true,
        "message": "Delete operation completed successfully",
        "deletedCount": 320,
        "responseTime": 1850
      }
    ]
  }
  ```

  ## 删除记录数解析

  插件会自动从WPS返回的日志中解析删除记录数,支持以下格式:

  1. **JS脚本返回的JSON结果** (最可靠):
     ```json
     {"success": true, "deletedCount": 1490}
     ```

  2. **删除完成消息**:
     ```
     🎉 删除完成！成功删除 1490 条记录
     ```

  3. **批次删除累加**:
     ```
     ✅ 第 1 批删除成功，已删除 1000 条记录
     ✅ 第 2 批删除成功，已删除 490 条记录
     ```

  ## 错误处理

  当Webhook执行失败时,节点会返回详细的错误信息:

  ```json
  {
    "success": false,
    "totalWebhooks": 1,
    "successfulWebhooks": 0,
    "failedWebhooks": 1,
    "message": "All 1 webhook(s) failed",
    "details": [
      {
        "webhookName": "主Webhook",
        "webhookUrl": "https://www.kdocs.cn/api/v3/ide/file/xxx/script/xxx/sync_task",
        "success": false,
        "message": "Delete operation failed",
        "responseTime": 356,
        "error": "Request failed with status code 401 - Authentication failed, check WPS Token"
      }
    ]
  }
  ```

  常见错误:
  - **401/403**: 认证失败,检查WPS Token是否正确
  - **Timeout**: 请求超时,可以增加timeout配置
  - **Connection error**: 网络连接失败,检查URL是否可访问

  ## 与Python版本的对应关系

  此N8N插件实现了Python脚本 `删除_多维表_淘宝月报.py` 的核心功能:

  | Python功能 | N8N插件功能 |
  |-----------|-----------|
  | `WPSDeleteExecutor` 类 | `WpsDataDelete` 节点 |
  | `execute_delete()` 方法 | `performDelete()` 函数 |
  | `_parse_deleted_count()` | `parseDeletedCountFromLogs()` 函数 |
  | 错误重试机制 | 多Webhook配置 + 执行模式 |
  | 请求ID追踪 | 自动生成Request ID |
  | 详细日志记录 | N8N Logger集成 |

  ## 开发

  ### 构建插件

  ```bash
  npm run build
  ```

  ### 发布到NPM

  ```bash
  npm publish
  ```

  ## 许可证

  MIT

  ## 作者

  hebing

ai_documentation_summary:
  {"purpose":"The WpsDataDelete node in n8n enables automated deletion of records via multiple WPS Webhook URLs, supporting both execution modes (all or first success) and automatic parsing of deleted record counts from WPS responses.","capabilities":["Configure multiple WPS Webhook URLs","Supports two execution modes: execute all or first success","Automatically parses deleted record count from response logs","Provides detailed execution results including success/failure status, response time, and deleted count","Configurable request timeout (10s to 500s)","Debug mode for detailed logging","Error handling with specific status codes and messages"],"authentication":"WPS API Token (AirScript-Token) required for each webhook configuration","commonUseCases":["Deleting files or records from WPS via multiple backup Webhooks","Automated cleanup of monthly reports (e.g., Taobao, Kuaishou)","Failover execution using primary and secondary Webhooks","Batch deletion with automatic record count tracking"],"limitations":["Does not support custom headers or advanced request parameters","Relies on WPS response format for parsing deleted count; may fail if format changes","No retry mechanism beyond the execution mode (first success or all)","Limited error recovery; no automatic re-attempts on transient failures"],"relatedNodes":["Webhook nodes","HTTP Request nodes","Error handling nodes","Data transformation nodes"]}


node_type: n8n-nodes-zl-vietts.ZlVietts
package_name: n8n-nodes-zl-vietts
display_name: ZlVietts
category: Community
development_style: declarative
version: 1.0.40
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: diendh
author_github_url: git+https://github.com/vietts/n8n-nodes-vietts.git
npm_package_name: n8n-nodes-zl-vietts
npm_version: 1.0.40
community_fetched_at: 2026-01-07T20:08:17.638Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  n8n nodes for automation. Send messages, manage groups, friends, and listen to events without third-party services.

npm_readme:
  ## 📱 Liên hệ & Hỗ trợ

  * **Website:** [vietts.io](https://vietts.io)
  * **Github:** [VietTS](https://github.com/diendh)
  * **Email:** diendh@vietts.io

ai_documentation_summary:
  {"purpose":"The ZlVietts node enables automation for messaging, group and friend management, and event listening within the VietTS platform, without relying on third-party services.","capabilities":["Send messages","Manage groups","Manage friends","Listen to events"],"authentication":"None specified in README","commonUseCases":["Automated messaging in social or community groups","Managing user relationships (friends/groups) in VietTS","Monitoring real-time events or notifications"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-sip-trunk.SipTrunk
package_name: n8n-nodes-sip-trunk
display_name: SipTrunk
category: Community
development_style: declarative
version: 0.3.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: adh_npm
npm_package_name: n8n-nodes-sip-trunk
npm_version: 0.3.4
community_fetched_at: 2026-01-07T20:08:17.638Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  n8n node for SIP trunk integration (Twilio, Sipgate, Deutsche Telekom, Gamma, Ecotel) with audio streaming

npm_readme:
  # n8n-nodes-sip-trunk

  This is an n8n community node that enables SIP trunk integration for voice calling with support for multiple providers including Twilio, Sipgate, Deutsche Telekom, Gamma, and Ecotel. It provides audio streaming capabilities for integration with services like ElevenLabs.

  ## Features

  - **Server-Side Implementation**: Fully Node.js compatible - works in any n8n installation (Docker, VPS, Cloud, Desktop)
  - **SIP Digest Authentication**: RFC 3261 compliant authentication with automatic challenge-response for all major providers
  - **NAT Traversal**: Built-in STUN support for automatic public IP discovery and NAT traversal
  - **Multiple SIP Providers**: Pre-configured support for Twilio, Sipgate, Deutsche Telekom, Gamma, Ecotel, and custom SIP servers
  - **Trigger & Action Modes**:
    - Trigger mode to receive incoming calls
    - Action mode to make calls and control existing calls
  - **Call Operations**: Make calls, hangup, get audio recordings
  - **Real Audio Capture**: Direct RTP audio capture and processing on the server
  - **Audio Streaming**: Output audio in base64 format (for ElevenLabs STT) or WebSocket stream for real-time processing
  - **Built-in Transcription**: Direct integration with ElevenLabs, OpenAI Whisper, AssemblyAI, and Deepgram
  - **Flexible Transport**: Support for UDP, TCP, TLS
  - **WAV Audio Export**: Automatic conversion to WAV format (8kHz, 16-bit, mono)

  ## Installation

  ### Community Node Installation

  1. Go to **Settings** > **Community Nodes** in your n8n instance
  2. Select **Install a community node**
  3. Enter `n8n-nodes-sip-trunk` and install

  ### Manual Installation

  ```bash
  npm install n8n-nodes-sip-trunk
  ```

  ## Architecture

  ### Server-Side SIP & RTP Handling

  This node is built with **pure Node.js** components, making it compatible with any n8n installation:

  - **SIP Protocol**: Custom UDP-based SIP client for signaling (REGISTER, INVITE, BYE)
  - **RTP Audio**: Direct UDP socket handling for real-time audio packet capture
  - **Audio Processing**: Server-side WAV encoding using the `wav` library
  - **WebSocket Server**: Built-in WebSocket server for real-time audio streaming
  - **Session Management**: In-memory session tracking across multiple concurrent calls

  ### Why Server-Side?

  Unlike browser-based WebRTC implementations, this node:
  - ✅ Works in Docker containers
  - ✅ Works on VPS/Cloud servers
  - ✅ Works in n8n Desktop
  - ✅ No browser environment required
  - ✅ Direct RTP packet processing
  - ✅ Lower latency and overhead

  ### Authentication & NAT Support

  **SIP Digest Authentication (RFC 3261)**:
  - Automatic challenge-response authentication
  - Supports MD5 and SHA-256 algorithms
  - Handles 401/407 authentication challenges
  - Works with all major SIP providers

  **STUN for NAT Traversal (RFC 5389)**:
  - Automatic public IP/port discovery
  - Works behind home/office NAT
  - Works in Docker containers
  - Multiple public STUN servers configured
  - Optional custom STUN server support

  **How NAT Traversal Works**:
  ```
  1. Node starts behind NAT (private IP: 192.168.1.100)
  2. STUN request to stun.l.google.com
  3. STUN response: public IP 203.0.113.45:52891
  4. SIP messages use public IP in headers
  5. RTP audio flows directly using discovered address
  6. ✅ Calls work from anywhere!
  ```

  ### Network Requirements

  For the node to work properly, ensure:
  - **UDP ports**: Open for SIP signaling (default 5060) and RTP audio (dynamic range 10000-20000)
  - **Firewall rules**: Allow incoming/outgoing UDP traffic
  - **NAT traversal**: STUN enabled by default (configurable)
  - **Provider compatibility**: All major providers supported with proper authentication

  ## Credentials Setup

  ### Authentication Methods

  All providers use **SIP Digest Authentication** (RFC 3261). The node automatically handles authentication challenges.

  ### Twilio

  1. Log in to your [Twilio Console](https://www.twilio.com/console)
  2. Navigate to **Elastic SIP Trunking** → Select or create your SIP Trunk
  3. Note your **Termination SIP URI** (e.g., `yourtrunk.pstn.twilio.com`)
  4. Go to **Authentication** tab and note your credentials
  5. In n8n, configure:
     - **Provider**: Twilio
     - **SIP Server**: Your Termination SIP URI (e.g., `mytrunk.pstn.twilio.com` or `mytrunk.pstn.ashburn.twilio.com`)
     - **Username**: Your SIP trunk username
     - **Password**: Your SIP trunk password
     - **Port**: 5060
     - **Transport**: UDP

  **Important**: Each Twilio account has a unique SIP trunk domain. You must enter YOUR specific trunk URI from the Twilio console.

  ### Sipgate

  1. Log in to [Sipgate](https://www.sipgate.de)
  2. Go to **Settings** > **SIP Credentials**
  3. Create or view existing SIP credentials
  4. In n8n, configure:
     - **Provider**: Sipgate
     - **Username**: Your Sipgate SIP ID (e.g., `1234567e0`)
     - **Password**: Your SIP password
     - **SIP Server**: `sipgate.de` (auto-configured)
     - **Transport**: WebSocket Secure (wss)

  ### Deutsche Telekom

  1. Log in to your Telekom account
  2. Navigate to **IP-based telephony** settings
  3. Get your SIP credentials
  4. In n8n, configure:
     - **Provider**: Deutsche Telekom
     - **Username**: Your registration ID
     - **Password**: Your SIP password
     - **SIP Server**: `tel.t-online.de` (auto-configured)
     - **Transport**: TLS or WebSocket Secure

  ### Gamma

  1. Access your Gamma portal
  2. Navigate to **SIP Trunk** settings
  3. Get your authentication credentials
  4. In n8n, configure:
     - **Provider**: Gamma
     - **Username**: Your SIP username
     - **Password**: Your SIP password
     - **SIP Server**: `sip.gamma.co.uk` (auto-configured)
     - **Transport**: WebSocket Secure (wss)

  ### Ecotel

  1. Access your Ecotel nBSS portal
  2. Get your contract number and SIP credentials
  3. Note your assigned realm (format: `nbss-xxxxxx.sip-ecotel.de`)
  4. In n8n, configure:
     - **Provider**: Ecotel
     - **Username**: BSS + your contract number (e.g., `BSS123456`)
     - **Password**: Your SIP password
     - **SIP Server**: `trunkf.sip-ecotel.de` or `trunkd.sip-ecotel.de` (auto-configured)
     - **Port**: 5083
     - **Transport**: UDP
     - **NAT Traversal Options**:
       - **Enable STUN**: false (⚠️ Important: Ecotel does not use STUN servers)

  **Important Notes**:
  - Ecotel uses specific media ports: UDP 10000-59999 (ensure these are open in your firewall)
  - STUN must be disabled for Ecotel connections
  - Authentication realm is contract-specific (nbss-xxxxxx.sip-ecotel.de)
  - Uses standard SIP Digest Authentication (MD5)

  ### Custom SIP Provider

  For any other SIP provider:
  1. Get your SIP credentials from your provider
  2. In n8n, configure:
     - **Provider**: Custom
     - **SIP Server**: Your provider's SIP server hostname
     - **Username**: Your SIP username/URI
     - **Password**: Your SIP password
     - **Port**: Default 5060 (UDP/TCP) or 5061 (TLS)
     - **Transport**: Choose appropriate protocol

  ## Usage

  ### Trigger Mode: Receiving Calls

  1. Add the **SIP Trunk** node to your workflow
  2. Set **Mode** to "Trigger (Receive Calls)"
  3. Configure:
     - **Audio Output Format**: Choose between Base64, WebSocket, or Both
     - **Auto Answer**: Enable to automatically answer incoming calls
     - **Recording Duration**: Set maximum recording time (0 for unlimited)
  4. The node will output call data including:
     - `from`: Caller's number
     - `to`: Destination number
     - `callId`: Unique call identifier
     - `sessionId`: Session ID for call control
     - `audioBase64`: Audio data in base64 (if selected)
     - `webSocketUrl`: WebSocket URL for audio stream (if selected)

  ### Action Mode: Making Calls

  1. Add the **SIP Trunk** node to your workflow
  2. Set **Mode** to "Action"
  3. Set **Operation** to "Make Call"
  4. Configure:
     - **Phone Number**: Destination number in E.164 format (e.g., `+1234567890`)
     - **Audio Output Format**: Choose output format
     - **Recording Duration**: Set recording time
  5. The node will initiate the call and return session information

  ### Action Mode: Hangup Call

  To end an active call:
  1. Set **Mode** to "Action"
  2. Set **Operation** to "Hangup"
  3. Provide the **Session ID** from the call you want to end
  4. The node will terminate the call and return duration information

  ### Action Mode: Get Audio

  To retrieve recorded audio from an active or completed call:
  1. Set **Mode** to "Action"
  2. Set **Operation** to "Get Audio"
  3. Provide the **Session ID** of the call
  4. Choose **Audio Output Format** (base64 or WebSocket)
  5. The node will return:
     - `audioBase64`: WAV audio encoded as base64 (if base64 format selected)
     - `audioFormat`: "audio/wav"
     - `sampleRate`: 8000 Hz
     - `channels`: 1 (mono)
     - `audioSize`: Size in bytes
     - `duration`: Call duration in seconds

  ## Integration with ElevenLabs

  To use the audio output with ElevenLabs STT:

  ```json
  {
    "workflow": {
      "nodes": [
        {
          "name": "SIP Trunk Trigger",
          "type": "n8n-nodes-sip-trunk.sipTrunk",
          "parameters": {
            "mode": "trigger",
            "audioFormat": "base64",
            "autoAnswer": true
          }
        },
        {
          "name": "ElevenLabs STT",
          "type": "n8n-nodes-elevenlabs",
          "parameters": {
            "operation": "speechToText",
            "audioData": "={{$node['SIP Trunk Trigger'].json.audioBase64}}"
          }
        }
      ]
    }
  }
  ```

  ## Example Workflows

  ### 1. Auto-Answer and Transcribe

  ```
  [SIP Trunk Trigger] → [ElevenLabs STT] → [Process Text]
  ```

  ### 2. Outbound Call with Recording

  ```
  [Schedule/Webhook] → [SIP Trunk Make Call] → [Save Audio] → [ElevenLabs TTS Response]
  ```

  ### 3. Call Routing

  ```
  [SIP Trunk Trigger] → [Switch Node] → [Route Based on Caller] → [Custom Action]
  ```

  ### 4. Get Audio After Call

  ```
  [SIP Trunk Make Call] → [Wait/Delay] → [Get Audio Operation] → [ElevenLabs STT]
  ```

  ## Audio Formats

  ### Base64 Encoded Audio
  - **Best for**: ElevenLabs STT, storing recordings, sending to APIs
  - **Format**: WAV audio (PCM, 8kHz, 16-bit, mono) encoded as base64 string
  - **Sample Rate**: 8000 Hz (telephone quality)
  - **Codec Support**: PCMU (G.711 μ-law) and PCMA (G.711 A-law)
  - **Usage**: Direct input to ElevenLabs or other STT services

  Example output:
  ```json
  {
    "audioBase64": "UklGRiQAAABXQVZFZm10...",
    "audioFormat": "audio/wav",
    "sampleRate": 8000,
    "channels": 1,
    "audioSize": 128000
  }
  ```

  ### WebSocket Stream
  - **Best for**: Real-time processing, live transcription
  - **Format**: JSON messages with base64-encoded audio chunks
  - **Connection**: Standard WebSocket (ws://)
  - **Usage**: Connect to real-time processing services

  Example WebSocket message:
  ```json
  {
    "sessionId": "abc123",
    "audio": "base64_chunk_here",
    "timestamp": 1234567890
  }
  ```

  ## Limitations

  - **UDP-based**: Requires open UDP ports for SIP signaling and RTP audio
  - **NAT traversal**: May need STUN/TURN configuration for complex network setups
  - **Memory usage**: Audio is stored in memory during recording
  - **Concurrent calls**: Limited by available memory and network bandwidth
  - **Authentication**: Currently supports basic username/password authentication (SIP authentication challenges not yet implemented)
  - **Codecs**: Supports PCMU (G.711 μ-law) and PCMA (G.711 A-law) - most common telephony codecs

  ## Development

  ### Building from Source

  ```bash
  npm install
  npm run build
  ```

  ### Testing

  ```bash
  npm run lint
  npm test
  ```

  ## Troubleshooting

  ### Connection Issues

  1. **WebSocket connection fails**: Ensure your SIP provider supports WebSocket transport
  2. **Authentication errors**: Verify credentials and username format (some providers require full SIP URI)
  3. **No audio**: Check that WebRTC is supported in your environment

  ### Provider-Specific Issues

  #### Twilio
  - Use WebSocket Secure (wss) transport
  - Ensure you're using the correct regional WebSocket URL
  - Account SID as username, Auth Token as password

  #### Sipgate
  - SIP ID format is usually numeric followed by 'e' (e.g., `1234567e0`)
  - Use WebSocket transport for best compatibility

  #### Deutsche Telekom
  - May require TLS transport
  - Check that IP-based telephony is enabled on your account

  ## Support

  For issues, questions, or contributions:
  - GitHub Issues: [Create an issue]
  - Documentation: [n8n Community Nodes Docs](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  MIT

  ## Credits

  Built with:
  - [SIP.js](https://sipjs.com/) - JavaScript SIP library
  - [n8n](https://n8n.io/) - Workflow automation platform

ai_documentation_summary:
  {"purpose":"The SipTrunk node enables voice calling and audio streaming integration with SIP providers like Twilio, Sipgate, Deutsche Telekom, Gamma, and Ecotel, supporting both incoming calls and outgoing call operations with real-time audio capture and processing.","capabilities":["Make calls and hang up","Receive incoming calls (trigger mode)","Get audio recordings","Real-time audio capture via RTP","Output audio in base64 format or via WebSocket stream","Built-in transcription with ElevenLabs, OpenAI Whisper, AssemblyAI, and Deepgram","WAV audio export (8kHz, 16-bit, mono)","Support for UDP, TCP, and TLS transports","Automatic SIP Digest authentication (MD5/SHA-256)","NAT traversal via STUN for public IP discovery"],"authentication":"SIP Digest Authentication (RFC 3261) with automatic challenge-response; requires username, password, and SIP server details per provider. Transport type (UDP, TLS, WebSocket Secure) is configurable.","commonUseCases":["Integrating voice calling with AI-powered transcription services (e.g., ElevenLabs, Whisper)","Automated call handling workflows (e.g., IVR, call routing)","Real-time audio processing for customer service or monitoring","Connecting n8n to cloud-based SIP trunks for telephony automation"],"limitations":["Provider-specific configuration required (e.g., Twilio trunk URI must be manually entered)","Requires open UDP ports (5060 for SIP, dynamic range 10000–20000 for RTP) and firewall access","No browser-based WebRTC support; requires server-side execution (Docker, VPS, Desktop)","Limited documentation for Ecotel (README truncated)","No support for custom SIP server configuration beyond pre-defined providers"],"relatedNodes":["n8n-nodes-base.Transcription","n8n-nodes-base.WebSocket","n8n-nodes-base.Call","n8n-nodes-base.Audio"]}


node_type: n8n-nodes-twenty.Twenty
package_name: n8n-nodes-twenty
display_name: Twenty
description: n8n node to call Twenty CRM's API
category: Community
development_style: declarative
version: 0.0.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: hodgolabs
author_github_url: git+https://github.com/shodgson/n8n-nodes-twenty.git
npm_package_name: n8n-nodes-twenty
npm_version: 0.0.5
community_fetched_at: 2026-01-07T20:08:17.639Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-twenty

  This is an n8n community node. It lets you use **Twenty CRM** in your n8n workflows.

  [Twenty CRM](https://twenty.com/) is an open-source CRM (customer relationship management) tool that is under rapid development. Please consider this as a **Beta** release that is likely to break with future changes in the Twenty API.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [Credit](#credit)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations
  	- General
  	- Api Keys
  	- Attachments
  	- Blocklists
  	- Calendar Channel Event Associations
  	- Calendar Channels
  	- Calendar Event Participants
  	- Calendar Events
  	- Companies
  	- Connected Accounts
  	- Favorite Folders
  	- Favorites
  	- Message Channel Message Associations
  	- Message Channels
  	- Message Folders
  	- Message Participants
  	- Messages
  	- Message Threads
  	- Notes
  	- Note Targets
  	- Opportunities
  	- People
  	- Tasks
  	- Task Targets
  	- Timeline Activities
  	- View Fields
  	- View Filter Groups
  	- View Filters
  	- View Groups
  	- Views
  	- View Sorts
  	- Webhooks
  	- Workflow Automated Triggers
  	- Workflow Runs
  	- Workflows
  	- Workflow Versions
  	- Workspace Members

  ## Credentials

  Generate an API key in Twenty by following the [Twenty docs](https://twenty.com/user-guide/section/functions/api-webhooks). In summary, create an API key in the Settings -> Developers section.

  Copy the API key. Click 'Add Credential' in n8n and search for 'Twenty API'. Provide the API key and your Twenty domain (e.g. http://localhost:5020, https://n8n.example.org). Do _not_ use the 'API Base URL', e.g. https://n8n.example.org/rest/.

  ## Compatibility

  Compatible and tested with Twenty v1.0.3 and n8n v1.91.3.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Twenty developer documentation](https://twenty.com/developers/)

  ## Version history

  #### v0.0.5
  Simplified to build on n8n-openapi-node

  #### v0.0.4
  Compatible with Twenty's updated API in v0.40.7

  #### v0.0.3
  Compatible with Twenty's updated API in v0.33.4

  #### v0.0.1
  Initial release

  ## Credit

  Almost all credit goes to [devlikeapro](https://github.com/devlikeapro/n8n-openapi-node) for the work on generic n8n nodebuilders for OpenAPI specs. Previous versions relied on similar tools from [ivov](https://github.com/ivov) and [feelgood-interface](https://github.com/feelgood-interface).

ai_documentation_summary:
  {"purpose":"The Twenty n8n node allows users to integrate with Twenty CRM's API to perform various CRM-related operations such as managing companies, people, tasks, messages, events, and more within n8n workflows.","capabilities":["General operations","API Keys management","Attachments handling","Blocklists management","Calendar Events and Channel associations","Companies and People management","Connected Accounts","Favorites and Favorite Folders","Message Channels, Messages, Threads, and Participants","Notes and Note Targets"],"authentication":"API key required. Generate an API key in Twenty's Settings > Developers section, then provide it along with the Twenty domain (e.g., http://localhost:5020) in the n8n credential settings. Do not use the API Base URL.","commonUseCases":["Syncing customer data between n8n and Twenty CRM","Automating task creation or updates in Twenty CRM","Triggering workflows based on new messages, events, or opportunities","Managing calendar events and participants","Updating company or person records via API"],"limitations":["Beta release — may break with future changes to the Twenty API","Limited testing or support for newer versions of Twenty CRM beyond v1.0.3","No OAuth2 support; relies solely on API keys"],"relatedNodes":["n8n-openapi-node"]}


node_type: n8n-nodes-docker.Docker
package_name: n8n-nodes-docker
display_name: Docker
description: n8n nodes for docker throungh portainer api
category: Community
development_style: declarative
version: 0.1.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: venssy
author_github_url: git+https://github.com/venssy/n8n-nodes-docker.git
npm_package_name: n8n-nodes-docker
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:17.639Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-docker

  n8n nodes for docker throungh portainer api, require portainer.

  ## More information

  Refer to our [documentation on creating nodes](https://github.com/venssy/n8n-nodes-docker) for detailed information on building your own nodes.

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"The Docker node allows users to interact with Docker containers via the Portainer API, enabling operations such as starting, stopping, restarting, and managing containers within a Portainer-enabled environment.","capabilities":["Start containers","Stop containers","Restart containers","Manage container states through Portainer API"],"authentication":"API key required (via Portainer authentication)","commonUseCases":["Automating container lifecycle management in CI/CD pipelines","Monitoring and controlling container services in production environments","Integrating Docker-based microservices with n8n workflows"],"limitations":["Requires Portainer to be running and accessible","Limited to actions supported by the Portainer API","No direct access to Docker daemon without Portainer"],"relatedNodes":["Portainer","HTTP Request","Webhook"]}


node_type: n8n-nodes-pdf-generation.PdfGeneration
package_name: n8n-nodes-pdf-generation
display_name: PdfGeneration
description: n8n node to generate PDF from text or table data.
category: Community
development_style: declarative
version: 0.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: tuananhit1612
author_github_url: git+https://github.com/pot030321/Custom_Node_List.git
npm_package_name: n8n-nodes-pdf-generation
npm_version: 0.1.0
community_fetched_at: 2026-01-07T20:08:17.640Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # PDF Generation Node

  The **PDF Generation Node** in n8n allows you to generate PDF files from text or table data. This node supports flexible content types, including plain text and tables, and can generate a downloadable PDF document. You can easily integrate this node into your workflow to automate document creation tasks.

  ## Features:
  - **Content Type Options**: Choose between text or table data for your PDF content.
  - **Customizable Filename**: Define a custom filename for the generated PDF.
  - **Auto Download Option**: Enable automatic download of the generated PDF once it's created.

  ## Installation

  To use the PDF Generation Node, you first need to have **n8n** installed. If you don't have it yet, please refer to the [n8n installation guide](https://docs.n8n.io/getting-started/installation/).

  ## Node Settings

  ### 1. **Content Type** (options)
     - **Description**: Select the type of content to include in the generated PDF.
     - **Options**:
       - `Text`: Plain text content.
       - `Table`: Table data (custom logic required for handling table data).
     - **Default**: `Text`

  ### 2. **Content** (string)
     - **Description**: Provide the text or table data to be included in the PDF. The content will be inserted into the generated PDF.
     - **Default**: Empty
     - **Placeholder**: `Enter the content to include in the PDF...`

  ### 3. **Filename** (string)
     - **Description**: Specify the name of the PDF file generated.
     - **Default**: `output.pdf`

  ### 4. **Auto Download** (boolean)
     - **Description**: Choose whether to automatically download the PDF once it's generated. 
     - **Default**: `false`

  ## Example Workflow

  Here’s an example of how to use the PDF Generation node:

  ### Input Data:
  ```json
  {
    "contentType": "text",
    "content": "This is a sample PDF document generated by n8n.",
    "filename": "sample-output.pdf",
    "autoDownload": true
  }
  ```
  ### Output:
  The output will be a base64 encoded PDF file and the filename specified:
  ```json
  {
    "json": {
      "filename": "sample-output.pdf",
      "pdf": "base64-encoded-pdf-content"
    },
    "binary": {
      "data": {
        "mimeType": "application/pdf",
        "data": "base64-encoded-pdf-content",
        "fileName": "sample-output.pdf"
      }
    }
  }
  ```

  ### Example Usage
  1. **Text PDF:** If the content type is set to "text," the provided content is inserted into the PDF as plain text.
  2. **Table PDF:** If the content type is set to "table," you would need to customize the logic to insert table data into the PDF. (You can use libraries or custom formatting to handle tables.)

ai_documentation_summary:
  {"purpose":"The PdfGeneration node creates PDF documents from either plain text or table data, enabling automation of document generation in n8n workflows.","capabilities":["Generate PDFs from plain text content","Generate PDFs from table data (with custom logic required)","Customize the output filename","Enable automatic download of the generated PDF"],"authentication":"None","commonUseCases":["Automatically generating invoices or reports from dynamic data","Creating personalized documents from text inputs","Converting tabular data (e.g., database results) into printable PDFs"],"limitations":["Table data support requires custom logic and is not fully automated","No built-in styling, formatting, or layout options for PDFs"],"relatedNodes":["Text Processing","Database","HTTP Request","Function"]}


node_type: n8n-nodes-docx-to-md.DocxToMd
package_name: n8n-nodes-docx-to-md
display_name: DocxToMd
description: n8n node to convert Docx files to Markdown
category: Community
development_style: declarative
version: 0.2.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: sfrangulov
author_github_url: git+https://github.com/sfrangulov/n8n-nodes-docx-to-md.git
npm_package_name: n8n-nodes-docx-to-md
npm_version: 0.2.1
community_fetched_at: 2026-01-07T20:08:17.640Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-docx-to-md

  This is an n8n community node. It lets you convert Microsoft Word documents (.docx) to Markdown format in your n8n workflows.

  This node provides seamless conversion of Word documents to clean, GitHub-flavored Markdown with automatic formatting correction and linting.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  The Docx to Markdown node supports the following operation:

  - **Convert**: Converts a Microsoft Word document (.docx) from binary data to clean Markdown format

  ### Features

  - Converts Word documents to GitHub-flavored Markdown
  - Automatically converts tables with proper headers
  - Applies markdown linting and formatting corrections
  - Preserves document structure and formatting
  - Supports headings, lists, tables, and basic text formatting
  - **Option to remove images** from the converted Markdown output

  ## Compatibility

  - Minimum n8n version: 1.0.0
  - Tested with n8n versions: 1.0.0+
  - Compatible with all n8n deployment methods (self-hosted, cloud, desktop)

  ## Usage

  ### Basic Setup

  1. Add the "Docx to Markdown" node to your workflow
  2. Configure the **Input Binary Field** parameter with the name of the field containing your Word document binary data (default: "data")
  3. Configure the **Destination Output Field** parameter with the name where you want the converted Markdown text to be stored (default: "text")
  4. Optionally, enable **Remove Images** if you want to exclude all images from the converted Markdown (default: false)

  ### Configuration Options

  | Parameter | Type | Default | Description |
  |-----------|------|---------|-------------|
  | Input Binary Field | String | "data" | Name of the field containing the Word document binary data |
  | Destination Output Field | String | "text" | Name of the field where converted Markdown will be stored |
  | Remove Images | Boolean | false | Whether to remove all images from the converted Markdown |

  ### Example Workflow

  1. Use an HTTP Request node or file input to get a .docx file
  2. Connect it to the Docx to Markdown node
  3. The converted Markdown will be available in the specified output field
  4. Use the Markdown output in subsequent nodes (e.g., save to file, send via email, etc.)

  ### Tips

  - The node automatically handles table formatting by converting the first row to headers
  - All markdown output is linted and formatted for consistency
  - Binary data should be in proper .docx format for best results
  - Use the "Remove Images" option when you need clean text-only output without image references
  - Images in Word documents are typically converted to markdown image syntax (`![alt](src)`) unless the Remove Images option is enabled

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Mammoth.js documentation](https://github.com/mwilliamson/mammoth.js/) (underlying conversion library)
  - [Turndown documentation](https://github.com/mixmark-io/turndown) (HTML to Markdown converter)
  - [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)

  ## License

  [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)

ai_documentation_summary:
  {"purpose":"The DocxToMd node converts Microsoft Word (.docx) files into clean, GitHub-flavored Markdown format, preserving document structure and applying automatic formatting, table handling, and linting.","capabilities":["Converts .docx files to GitHub-flavored Markdown","Automatically formats tables with proper headers","Applies markdown linting and formatting corrections","Preserves headings, lists, tables, and basic text formatting","Option to remove images from the output"],"authentication":"None","commonUseCases":["Converting Word documents to Markdown for version control or documentation","Automating document processing in workflows involving text-based outputs","Preparing Word files for sharing in platforms that support Markdown (e.g., GitHub, Notion)","Cleaning up documents by removing images when only text is needed"],"limitations":[],"relatedNodes":["HTTP Request","File Input","Save to File","Email"]}


node_type: n8n-nodes-withings.Withings
package_name: n8n-nodes-withings
display_name: Withings
description: n8n node for Withings API integration with integrated OAuth2
category: Community
development_style: declarative
version: 1.2.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: schimmi
author_github_url: git+https://github.com/schimmmi/n8n-nodes-withings.git
npm_package_name: n8n-nodes-withings
npm_version: 1.2.0
community_fetched_at: 2026-01-07T20:08:17.641Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-withings

  This is an n8n community node for integrating with the [Withings](https://www.withings.com/) API. It provides nodes to access health and fitness data from your Withings account.

  ## Features

  - Complete integration with Withings API resources:
    - Activity data (getactivity, getsummary, getworkouts)
    - Measurements (getmeas, getactivity, getintradayactivity)
    - Sleep data (get, getsummary)
    - User information (getdevice, getgoals, get)
  - Customizable parameters for all API operations
  - Proper error handling and response formatting
  - Automatic token refresh

  ## Prerequisites

  - [n8n](https://n8n.io/) (version 1.0.0 or later)
  - Withings developer account and API credentials
  - **[n8n-nodes-withings-oauth2-credential](https://github.com/schimmmi/n8n-nodes-withings-oauth2-credential)** package (required for OAuth2 authentication)

  ## Installation

  **IMPORTANT:** This package requires the separate credential package to handle Withings' non-standard OAuth2 implementation.

  Install both packages:

  ```bash
  # 1. Install the OAuth2 credential package first
  npm install n8n-nodes-withings-oauth2-credential

  # 2. Then install this node package
  npm install n8n-nodes-withings
  ```

  For Docker-based n8n installations:

  ```bash
  # Add both packages to your docker-compose.yml or Dockerfile
  npm install n8n-nodes-withings-oauth2-credential n8n-nodes-withings
  ```

  Or use the [n8n-docker-custom](https://github.com/n8n-io/n8n-docker-custom) approach.

  ## Configuration

  1. Create a developer account at [Withings Developer](https://developer.withings.com/)
  2. Register a new application to get your Client ID and Client Secret
  3. Set the callback URL to: `https://your-n8n-domain.com/rest/oauth2-credential/callback`
  4. In n8n, create a new credential of type "Withings OAuth2 API" (provided by the credential package)
  5. Enter your Client ID and Client Secret
  6. Configure the scopes as needed (default: user.info,user.metrics,user.activity,user.sleepevents)
  7. Click "Connect my account" and complete the OAuth2 flow

  ### Why Two Packages?

  Withings uses a non-standard OAuth2 implementation that requires an additional `action=requesttoken` parameter in the token request body. N8n's standard OAuth2 doesn't support modifying the token request body, so we need a separate credential package that uses `genericOAuth2Api` with a custom `authenticate()` method to inject this parameter.

  ## Usage

  Once installed and configured, you can use the Withings API node in your workflows:

  1. Add a "Withings API" node to your workflow
  2. Select your Withings OAuth2 credential
  3. Choose the resource (Activity, Measure, Sleep, or User)
  4. Choose the operation (e.g., "Get" for sleep data)
  5. Configure any additional parameters (date ranges, data fields, etc.)

  ## Example Workflows

  ### Get Sleep Data

  ```
  Manual Trigger → Withings API (Sleep / Get) → Process Data
  ```

  Configure the node:
  - Resource: Sleep
  - Operation: Get
  - Additional Fields:
    - Start Date: 2025-01-01
    - End Date: 2025-01-31
    - Data Fields: hr, rr, snoring

  ### Get Daily Activity Summary

  ```
  Schedule Trigger → Withings API (Activity / Get Summary) → Store in Database
  ```

  ## API Resources

  ### Activity
  - **Get Activity**: Retrieve user activity data
  - **Get Summary**: Get activity summary
  - **Get Workouts**: Fetch workout data

  ### Measure
  - **Get Measurements**: Get measurement data (weight, height, blood pressure, etc.)
  - **Get Activity**: Get user intraday activity
  - **Get Intradayactivity**: Get detailed intraday activity

  ### Sleep
  - **Get**: Get sleep data (with optional HR, RR, snoring data)
  - **Get Summary**: Get sleep summary

  ### User
  - **Get Device**: Get user devices
  - **Get Goals**: Get user goals
  - **Get**: Get user information

  ## Troubleshooting

  ### "Unable to sign without access token" Error

  This usually means the OAuth2 flow didn't complete successfully. Try:
  1. Make sure you installed **both** packages (credential + node)
  2. Delete and recreate your Withings OAuth2 credential
  3. Click "Connect my account" again
  4. Check the n8n logs for detailed error messages

  ### Token Expired

  Tokens automatically refresh. If you see token errors:
  1. Reconnect your account in the credentials settings
  2. Check that your Withings app credentials are still valid

  ## Development

  ```bash
  # Clone the repository
  git clone https://github.com/schimmmi/n8n-nodes-withings.git

  # Install dependencies
  npm install

  # Build
  npm run build

  # Watch mode for development
  npm run dev
  ```

  ## Version History

  See [CHANGELOG.md](CHANGELOG.md) for detailed version history.

  ### Latest: v1.0.0
  - **BREAKING CHANGE**: Removed built-in OAuth2 credentials
  - Now requires separate `n8n-nodes-withings-oauth2-credential` package
  - Cleaner separation of concerns between node logic and OAuth2 authentication
  - Simplified maintenance and updates

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  ## License

  [MIT](LICENSE)

  ## Links

  - [Withings Developer Documentation](https://developer.withings.com/)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [OAuth2 Credential Package](https://github.com/schimmmi/n8n-nodes-withings-oauth2-credential)

  ## Support

  For issues, questions, or feature requests, please open an issue on GitHub.

ai_documentation_summary:
  {"purpose":"The Withings n8n node enables integration with the Withings API to retrieve health and fitness data such as activity, measurements, sleep, and user information, using OAuth2 authentication.","capabilities":["Retrieve activity data (including workouts and summaries)","Fetch measurements (weight, height, blood pressure, etc.)","Get sleep data and summaries with optional fields like heart rate and snoring","Access user information, devices, and goals","Customizable parameters for date ranges and data fields","Automatic token refresh","Proper error handling and response formatting"],"authentication":"OAuth2 with a separate credential package (n8n-nodes-withings-oauth2-credential) required due to Withings' non-standard OAuth2 implementation that requires a custom request token parameter","commonUseCases":["Fetch daily sleep data for health monitoring","Track activity levels and workout history","Monitor weight and body measurements over time","Retrieve user goals and device information","Automate data collection for health dashboards or databases"],"limitations":["Requires installation of a separate OAuth2 credential package","Manual OAuth2 flow needed for initial setup and token refresh","No built-in support for Withings' non-standard OAuth2 parameters without the custom credential package"],"relatedNodes":["OAuth2 Credential (n8n-nodes-withings-oauth2-credential)","Manual Trigger","Schedule Trigger","Database Node"]}


node_type: @bitovi/n8n-nodes-confluence.Confluence
package_name: @bitovi/n8n-nodes-confluence
display_name: Confluence
description: N8N node to connect to Confluence
category: Community
development_style: declarative
version: 0.1.6
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: bitovi-os
author_github_url: git+https://github.com/bitovi/n8n-nodes-confluence.git
npm_package_name: @bitovi/n8n-nodes-confluence
npm_version: 0.1.6
community_fetched_at: 2026-01-07T20:08:17.641Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ~# @bitovi/n8n-nodes-confluence

  This is an n8n community node. It lets you use Atlassian Confluence in your n8n workflows.

  Confluence is a collaborative workspace and documentation platform by Atlassian, used for creating, organizing, and sharing content with your team.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  - Make sure to allow community nodes with `N8N_COMMUNITY_PACKAGES_ENABLED=true`
  - Once logged in to your N8N web UI, go to `/settings/community-nodes` and type `@bitovi/n8n-nodes-confluence`

  ## Operations

  - **Get Spaces**: List Confluence spaces.
  - **Get Pages in Space**: List pages within a space.
  - **Custom API call**: Use Confluence's REST API.

  ## Credentials

  This node requires authentication with Atlassian Confluence.

  - **Domain**: Your Atlassian site URL (e.g., `https://your-domain.atlassian.net`).
  - **User Name**: Your Atlassian account email.
  - **API Key**: Generate an API token from your Atlassian account ([API tokens](https://id.atlassian.com/manage-profile/security/api-tokens)).

  ## Compatibility

  - Node version: 1
  - Tested with latest n8n version (please update as needed)

  ## Usage

  This node provides extensive filtering and customization options for retrieving Confluence data:

  ### Basic Operations
  - **Get Spaces**: Retrieve all spaces or filter by specific space names using comma-separated values
  - **Get Pages in Space**: List pages within a specific space using the Space ID

  ### Filtering Options
  - **Title**: Filter pages by exact title match
  - **Status**: Choose page status:
    - `current` (default) - Active pages
    - `archived` - Archived pages
    - `deleted` - Deleted pages
    - `trashed` - Trashed pages

  ### Content Format Options
  - **Body Format**: Control how page content is returned:
    - `storage` (default) - Confluence's internal storage format
    - `atlas_doc_format` - Atlas document format for modern editing

  ### Organization Options
  - **Depth**: Control the hierarchy level of pages returned:
    - `all` (default) - All pages regardless of hierarchy level
    - `root` - Only top-level pages

  - **Sort**: Order results by various criteria:
    - `modified-date` (descending, default) - Most recently modified first
    - `created-date` - Creation date (ascending/descending)
    - `title` - Alphabetical by title (ascending/descending)
    - `id` - By page ID (ascending/descending)

  ### Pagination
  - **Return All**: Toggle to get all results or limit the number
  - **Limit**: Set maximum number of results when not returning all (default: 50)
  - Pagination is automatically handled for large result sets

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Atlassian Confluence REST API documentation](https://developer.atlassian.com/cloud/confluence/rest/)

  ## Version history

  - v1.0.0: Initial release

  ## Need help or have questions?

  Need guidance on leveraging AI agents or N8N for your business? Our [AI Agents workshop](https://hubs.ly/Q02X-9Qq0) will equip you with the knowledge and tools necessary to implement successful and valuable agentic workflows.

  ## License

  [MIT](./LICENSE.md)
  ~

ai_documentation_summary:
  {"purpose":"The Confluence node enables integration with Atlassian Confluence to retrieve and manage content such as spaces, pages, and their metadata within n8n workflows.","capabilities":["List Confluence spaces","List pages within a specific space","Filter pages by title, status (current, archived, deleted, trashed), and sort by modified/created date, title, or ID","Control content format (storage or atlas_doc_format)","Set page depth (all or root level)","Limit results or return all pages with pagination support","Make custom API calls to Confluence's REST API"],"authentication":"API key required: Users must provide a domain URL, email username, and an API token generated from their Atlassian account.","commonUseCases":["Retrieve and organize Confluence space listings for team documentation","Extract page content by title or status for automated reporting","Sync Confluence page updates with other systems using workflow triggers","Automate content audits by filtering archived or deleted pages"],"limitations":[],"relatedNodes":["REST API nodes","Data filtering and transformation nodes"]}


node_type: n8n-nodes-file-search.FileSearch
package_name: n8n-nodes-file-search
display_name: FileSearch
description: n8n node for Google File Search (Gemini API RAG)
category: Community
development_style: declarative
version: 0.1.21
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: bartomolina
author_github_url: git+https://github.com/bartomolina/n8n-nodes-file-search.git
npm_package_name: n8n-nodes-file-search
npm_version: 0.1.21
community_fetched_at: 2026-01-07T20:08:17.641Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-file-search

  This is an n8n community node for **Google File Search** (Gemini API RAG).

  Google File Search is a fully managed RAG (Retrieval Augmented Generation) system that allows you to store, index, and semantically search documents using the Gemini API.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  ## Operations

  ### Store

  Manage File Search stores:

  - **Create** - Create a new File Search store
  - **List** - List all File Search stores
  - **Get** - Get details of a specific store
  - **Delete** - Delete a store (with force option for non-empty stores)

  ### Document

  Manage documents within stores:

  - **Upload** - Upload a file directly to a store (supports binary data from previous nodes)
  - **Import** - Import an existing file from the Files API into a store
  - **List** - List all documents in a store
  - **Get** - Get document details and status
  - **Delete** - Delete a document from a store

  Features:
  - **Wait for Completion**: Polls until the document is fully indexed
  - **Metadata**: Attach custom key-value pairs for filtering during queries
  - **Chunking Options**: Configure max tokens per chunk and overlap

  ### Query

  Query stores with semantic search:

  - **Generate Content** - Query one or more stores and generate a response using a Gemini model

  Features:
  - **Multiple Stores**: Query across multiple stores at once
  - **Metadata Filter**: Filter results using AIP-160-like syntax (e.g., `year = 2025 AND type = "rollup"`)
  - **System Prompt**: Provide custom system instructions
  - **Model Selection**: Choose between Gemini 2.5 Flash, 2.5 Pro, or 2.0 Flash
  - **Grounding Metadata**: Include source citations in the response

  ## Credentials

  This node requires a **Google Gemini API** credential with an API key from [Google AI Studio](https://aistudio.google.com/).

  ## Usage Examples

  ### Upload and Query Workflow

  1. **Convert to File** node - Convert JSON/data to a binary file
  2. **Google File Search** (Document → Upload) - Upload to your store
  3. **Google File Search** (Query → Generate Content) - Query the store

  ### Batch Processing

  The node supports processing multiple items. Use with:
  - Loop nodes for batch uploads
  - Conditional nodes to handle different document types
  - Set node to prepare metadata before upload

  ## Metadata Filtering

  When querying, you can filter results using metadata:

  ```
  year = 2025
  episode_type = "rollup"
  year >= 2024 AND sentiment = "bullish"
  ```

  Note: Metadata must be attached during document upload/import to be filterable.

  ## Resources

  - [Google File Search Documentation](https://ai.google.dev/gemini-api/docs/file-search)
  - [Gemini API Overview](https://ai.google.dev/gemini-api/docs)
  - [AIP-160 Filtering](https://google.aip.dev/160)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The FileSearch node enables semantic search and retrieval of documents using Google's Gemini API for Retrieval Augmented Generation (RAG), allowing users to store, index, and query files with advanced filtering and generation capabilities.","capabilities":["Create, list, get, and delete File Search stores","Upload and import documents with custom metadata","List and retrieve document details","Delete documents from stores","Perform semantic search across one or more stores using AIP-160-style metadata filtering","Generate content using Gemini models (2.5 Flash, 2.5 Pro, 2.0 Flash)","Include source citations (grounding) in generated responses","Configure chunking options (max tokens per chunk and overlap)","Support for waiting until document indexing is complete","Set custom system prompts and metadata for filtering"],"authentication":"Google Gemini API credential with an API key from Google AI Studio","commonUseCases":["Storing and querying internal documents for AI-generated insights","Batch uploading and indexing files for semantic search","Filtering documents by metadata (e.g., year, type, sentiment)","Generating responses with source citations for compliance or transparency","Integrating document retrieval into workflows with data conversion nodes"],"limitations":["Metadata must be attached during upload or import to be filterable","Only supports Gemini models via the Google AI Studio API","No support for file format conversion or validation within the node","Document indexing may take time; polling is required for completion"],"relatedNodes":["Convert to File","Loop","Conditional","Google AI Studio"]}


node_type: n8n-nodes-jimeng.Jimeng
package_name: n8n-nodes-jimeng
display_name: Jimeng
description: 将即梦图像 & 视频生成能力接入 n8n 工作流
category: Community
development_style: declarative
version: 1.0.7
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: aichats
author_github_url: git+https://github.com/webcpy/n8n-pluguns.git
npm_package_name: n8n-nodes-jimeng
npm_version: 1.0.7
community_fetched_at: 2026-01-07T20:08:17.642Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  > 将即梦图像/视频生成能力无缝接入 n8n，实现可视化 AI 内容创作工作流。

  ---

  ### 🧩 插件简介

  `n8n-nodes-jimeng` 是一个基于即梦 的 n8n 插件，支持 **图片生成** 与 **视频生成** 两个核心操作节点，允许用户通过流程化自动化方式，完成高质量的 AIGC 图像/视频创作任务。

  ---

  ### ✨ 核心功能

  * 🖼️ **图片生成（Image Generation）**
    输入 prompt、风格参数等，生成高质量图像。

  * 🎬 **视频生成（Video Generation）**
    支持通过文本生成视频，或结合图像素材生成创意视频，适配多种 AIGC 视频场景。

  ---

  ### 🧠 适用场景

  * 自动生成图文日报或资讯内容
  * 营销图/短视频的自动创作工作流
  * AIGC 创意剧本 + 分镜 + 视频一体化解决方案
  * 产品图自动生成（结合商品描述）

  ---

  ### 🚀 快速开始

  1. 在 n8n 中安装插件：

     ```bash
     npm install n8n-nodes-jimeng
     ```

  2. 在编辑器中拖入 “即梦 图片生成” 或 “即梦 视频生成” 节点。

  3. 填入 API Key，配置参数，开始生成。

  4. 可配合其他节点（如：OpenAI、Notion、Telegram、Drive 等）构建完整自动化流程。
  ---

  ### 🔐 鉴权方式：使用即梦 Cookie 中的 `sessionid`

  本插件通过 [即梦官网](https://jimeng.jianying.com/) 登录后浏览器 Cookie 中的 `sessionid` 实现鉴权。
  #### ✅ 获取 `sessionid` 方法：

  1. 打开浏览器访问 [https://jimeng.jianying.com/](https://jimeng.jianying.com//) 并登录账号；
  2. 按 `F12` 打开开发者工具，切换到 **应用 (Application)** 或 **存储 (Storage)**；
  3. 找到 `jimengai.com` 域下的 Cookie，复制其中的 `sessionid` 值；
  4. 在 n8n 节点配置中粘贴该 `sessionid`，即可完成授权。

ai_documentation_summary:
  {"purpose":"将即梦的图像和视频生成能力接入 n8n 工作流，支持通过可视化流程自动化生成高质量 AI 图像和视频内容。","capabilities":["图片生成：根据文本提示和风格参数生成图像","视频生成：支持文本生成视频或结合图像素材生成创意视频","与 n8n 其他节点（如 OpenAI、Notion、Telegram、Drive 等）集成，构建完整自动化工作流"],"authentication":"API Key 鉴权方式为通过即梦官网登录后获取浏览器 Cookie 中的 sessionid","commonUseCases":["自动生成图文日报或资讯内容","营销图或短视频的自动化创作","AIGC 创意剧本、分镜到视频的一体化流程","基于商品描述自动生成产品图"],"limitations":[],"relatedNodes":["OpenAI","Notion","Telegram","Drive"]}


node_type: @warnyin/n8n-nodes-code-playwright.CodePlaywright
package_name: @warnyin/n8n-nodes-code-playwright
display_name: CodePlaywright
description: n8n community node for browser automation using Playwright
category: Community
development_style: declarative
version: 0.7.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: lazys0ng
author_github_url: git+https://github.com/warnyin/n8n-nodes-code-playwright.git
npm_package_name: @warnyin/n8n-nodes-code-playwright
npm_version: 0.7.0
community_fetched_at: 2026-01-07T20:08:17.642Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # @warnyin/n8n-nodes-code-playwright

  [![npm version](https://img.shields.io/npm/v/@warnyin/n8n-nodes-code-playwright.svg)](https://www.npmjs.com/package/@warnyin/n8n-nodes-code-playwright)
  [![npm downloads](https://img.shields.io/npm/dm/@warnyin/n8n-nodes-code-playwright.svg)](https://www.npmjs.com/package/@warnyin/n8n-nodes-code-playwright)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  > n8n community node for browser automation using Playwright.

  **Package:** `@warnyin/n8n-nodes-code-playwright`

  ## Table of Contents

  - [About](#about)
  - [Key Features](#key-features)
  - [Installation](#installation)
  - [Usage](#usage)
  - [Operations](#operations)
  - [Examples](#examples)
  - [Notes & Limitations](#notes--limitations)
  - [Development](#development)
  - [License](#license)

  ## About

  This n8n community node provides browser automation capabilities using [Playwright](https://playwright.dev/). It allows you to automate web browsers (Chromium, Firefox, WebKit) directly within your n8n workflows.

  ## Key Features

  - **Multi-browser support**: Chromium, Firefox, and WebKit
  - **Headless or headful mode**: Run browsers visibly or in the background
  - **Screenshot capture**: Take full-page or element screenshots
  - **Form automation**: Fill forms and click elements
  - **Text extraction**: Get text content from web pages
  - **JavaScript evaluation**: Execute custom JS code in page context
  - **Wait for elements**: Wait for selectors before proceeding

  ## Installation

  ### Option 1: Community Nodes (Recommended)

  1. Open n8n and go to `Settings → Community Nodes`
  2. Click `Install`
  3. Enter: `@warnyin/n8n-nodes-code-playwright`
  4. Accept the risks and install

  ### Option 2: Manual Installation

  ```bash
  cd ~/.n8n/nodes
  npm install @warnyin/n8n-nodes-code-playwright
  # Restart n8n
  ```

  ### Option 3: Docker Installation

  For Docker environments, ensure your n8n container has Chrome installed:

  ```dockerfile
  # Add this to your n8n Dockerfile
  FROM node:18-alpine
  RUN apk add --no-cache chromium
  ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
      PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
  ```

  Or use the official n8n image with Chrome:

  ```dockerfile
  FROM n8nio/n8n
  USER root
  RUN apt-get update && apt-get install -y \
      google-chrome-stable \
      && rm -rf /var/lib/apt/lists/*
  USER node
  ```

  Then install the node:
  ```bash
  docker exec -it <n8n-container> npm install @warnyin/n8n-nodes-code-playwright
  ```

  ### Option 4: Local Development & Linking

  ```bash
  # Clone, install, and build
  git clone https://github.com/warnyin/n8n-nodes-code-playwright.git
  cd n8n-nodes-code-playwright
  pnpm install
  pnpm build

  # Link to n8n
  npm link
  cd ~/.n8n
  npm link @warnyin/n8n-nodes-code-playwright
  # Restart n8n
  ```

  ## Usage

  ### Basic Parameters

  | Parameter | Description |
  |-----------|-------------|
  | **Operation** | The browser action to perform |
  | **URL** | The webpage URL to navigate to |
  | **Browser** | Browser engine: Chromium, Firefox, or WebKit |
  | **Browser Options** | Headless mode, slow motion settings |

  ### Operations

  #### Navigate
  Navigate to a URL and return the page content.

  #### Take Screenshot
  Capture a screenshot of the webpage.
  - **Full Page**: Capture entire scrollable page
  - **Property Name**: Binary property name for the screenshot

  #### Get Text
  Extract text content from an element using CSS selector.

  #### Click Element
  Click on an element specified by CSS selector.

  #### Fill Form
  Fill a form field with a specified value.

  #### Wait for Selector
  Wait for an element to appear on the page.

  ## Examples

  ### Example 1: Take a Screenshot

  ```json
  {
    "operation": "takeScreenshot",
    "url": "https://example.com",
    "browser": "chromium",
    "screenshotOptions": {
      "fullPage": true
    },
    "dataPropertyName": "screenshot"
  }
  ```

  ### Example 2: Fill and Submit a Form

  ```json
  {
    "operation": "fillForm",
    "url": "https://example.com/login",
    "selector": "#username",
    "value": "myuser",
    "browser": "chromium"
  }
  ```

  ### Example 3: Extract Text

  ```json
  {
    "operation": "getText",
    "url": "https://example.com",
    "selector": "h1",
    "browser": "chromium"
  }
  ```

  ## Notes & Limitations

  - **Browser Installation**: Browsers are automatically installed during package installation
  - **Docker Support**: For Linux/Docker environments, the node will automatically fallback to system Chrome if Playwright Chromium fails
  - **Resource Usage**: Running browsers consumes significant memory
  - **Headless Recommended**: Use headless mode in production environments
  - **Timeout**: Default timeout for operations is 30 seconds
  - **Network**: Requires network access for navigation

  ## Troubleshooting

  ### Browser not found error

  If you encounter "Browser not found" errors, try running the setup script manually:

  ```bash
  cd ~/.n8n/nodes/node_modules/@warnyin/n8n-nodes-code-playwright
  npm run setup
  ```

  ### Linux/Docker GTK/GLib errors

  If you see errors like `Error relocating chrome: g_object_notify: symbol not found`, this means Playwright Chromium requires system dependencies. The node will automatically:

  1. Try to detect and use system Chrome/Chromium
  2. Fall back to Playwright Chromium with alternative arguments
  3. If all fails, you need to install Chrome in your Docker container:

  ```bash
  # For Debian/Ubuntu based images
  apt-get update && apt-get install -y google-chrome-stable

  # For Alpine images  
  apk add --no-cache chromium
  ```

  ### Permission issues on Linux

  On Linux systems, you may need to install additional dependencies:

  ```bash
  npx playwright install-deps
  ```

  ### Memory issues

  If n8n crashes due to memory issues when using Playwright:

  1. Ensure `headless: true` is enabled
  2. Close browser contexts properly
  3. Consider increasing n8n's memory allocation

  ## Development

  ```bash
  # Install dependencies
  pnpm install

  # Build
  pnpm build

  # Watch mode
  pnpm dev

  # Setup browsers manually
  pnpm setup

  # Lint code
  pnpm lint

  # Fix lint issues
  pnpm lintfix

  # Format code
  pnpm format
  ```

  ## Changelog

  See [CHANGELOG.md](CHANGELOG.md) for release notes.

  ## License

  MIT License — see [LICENSE.md](LICENSE.md).

  ## Author

  **warnyin** - [GitHub](https://github.com/warnyin)

  ## References

  - [Playwright Documentation](https://playwright.dev/docs/intro)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
  - [@warnyin/n8n-nodes-code-plus](https://www.npmjs.com/package/@warnyin/n8n-nodes-code-plus)
  - [@warnyin/n8n-nodes-swagger-api](https://www.npmjs.com/package/@warnyin/n8n-nodes-swagger-api)

  ---

  Made with ❤️ for the n8n community

ai_documentation_summary:
  {"purpose":"The CodePlaywright node enables browser automation within n8n workflows using Playwright, allowing actions like navigating, clicking, filling forms, extracting text, and taking screenshots across Chromium, Firefox, and WebKit browsers.","capabilities":["Navigate to a URL","Take full-page or element screenshots","Extract text from web elements using CSS selectors","Click on elements by CSS selector","Fill form fields with specified values","Wait for elements to appear before proceeding","Execute JavaScript in page context"],"authentication":"None required; browser automation is performed without authentication tokens or credentials.","commonUseCases":["Automating login forms and data entry","Extracting dynamic content from web pages","Capturing screenshots for monitoring or reporting","Validating UI elements during testing workflows","Performing end-to-end browser-based testing"],"limitations":["High memory consumption; may cause crashes in resource-constrained environments","Requires network access to navigate to URLs","Default timeout is 30 seconds; may need adjustment for complex pages","On Linux/Docker, system dependencies (like GTK/GLib) may cause errors without proper installation","Browser installation is automatic, but may fail without system-level browser support (e.g., Chrome/Chromium)"],"relatedNodes":["Webhook","HTTP Request","Function","Set","Delay"]}


node_type: n8n-nodes-yuptools-mcptools-yupchat.YuptoolsMcptoolsYupchat
package_name: n8n-nodes-yuptools-mcptools-yupchat
display_name: YuptoolsMcptoolsYupchat
category: Community
development_style: declarative
version: 2.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: yup.ai
author_github_url: git+https://github.com/yuptools/n8n-nodes-yuptools-mcptools-yupchat.git
npm_package_name: n8n-nodes-yuptools-mcptools-yupchat
npm_version: 2.1.0
community_fetched_at: 2026-01-07T20:08:17.643Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  YupTools MCP Tools - YupChat multi-channel messaging tools (WhatsApp, SMS, RCS) for AI agents in n8n

npm_readme:
  # n8n-nodes-yuptools-mcptools-yupchat

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-yuptools-mcptools-yupchat)](https://www.npmjs.com/package/n8n-nodes-yuptools-mcptools-yupchat)
  [![npm downloads](https://img.shields.io/npm/dt/n8n-nodes-yuptools-mcptools-yupchat)](https://www.npmjs.com/package/n8n-nodes-yuptools-mcptools-yupchat)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  > 🚀 **YupTools MCP Tools - YupChat** - Ferramentas de mensagens multi-canal (WhatsApp, SMS, RCS) para agentes de IA no n8n

  Transforme as capacidades da API YupChat em ferramentas consumíveis por IA. Este node comunitário do N8N fornece **13 ferramentas independentes** que permitem que agentes de IA enviem mensagens, gerenciem templates e monitorem sua conta YupChat de forma autônoma através de conversas naturais.

  ## ✨ Recursos

  - **🤖 Alimentado por IA**: Funciona com nodes AI Agent do N8N - a IA decide qual ferramenta usar autonomamente
  - **📱 Multi-Canal**: Mensagens WhatsApp, SMS e RCS em um único node
  - **🛠️ 13 Ferramentas**: Conjunto completo de operações de mensagens expostas como ferramentas individuais
  - **🎯 Seleção Inteligente**: IA escolhe o melhor canal e ferramenta baseado no contexto
  - **⚡ Configuração Fácil**: Configure em 2 minutos com credenciais de API
  - **🔄 Dinâmico**: Sem workflows fixos - a IA se adapta a cada conversa

  ## 🎯 O Que Torna Isso Diferente?

  ### Node Tradicional (Quadrado □)
  ```
  Você programa cada passo:
  [Trigger] → [Enviar SMS] → [Verificar Status] → [Se Erro] → [Enviar WhatsApp]
  (5+ nodes, lógica fixa)
  ```

  ### Node MCP Tools (Redondo ⬡)
  ```
  Você: "Envie uma notificação para +5511999999999 sobre a promoção"

  IA: [Analisa] → [Escolhe canal] → [Envia mensagem] → "✅ Enviado via WhatsApp!"
  (1 conversa, IA decide autonomamente)
  ```

  ## 🚀 Início Rápido

  ### Instalação

  #### Via N8N Community Nodes (Recomendado)
  1. Vá em **Configurações > Community Nodes** na interface do N8N
  2. Clique em **Instalar um community node**
  3. Digite `n8n-nodes-yuptools-mcptools-yupchat`
  4. Clique em **Instalar**

  #### Via npm
  ```bash
  npm install n8n-nodes-yuptools-mcptools-yupchat
  ```

  ### Configuração de Credenciais

  1. **Obtenha Credenciais da API YupChat**
     - Cadastre-se em [app.yup.chat](https://app.yup.chat)
     - Vá em **Dashboard > Informações da Conta**
     - Copie seu **Account ID** e **Auth Token**

  2. **Configure no N8N**
     - Adicione o node **YupChat MCP Tools** (ícone redondo ⬡)
     - Crie novas credenciais **YupChat API**
     - Digite seu Account ID e Auth Token
     - Base URL: `https://api.yup.chat` (padrão)

  3. **Conecte ao AI Agent**
     - Conecte o node a um node **AI Agent**
     - Selecione quais ferramentas expor (padrão: WhatsApp, SMS, RCS, Account Info)
     - Configure seu modelo de IA (OpenAI, Anthropic, etc.)

  ## 🛠️ Ferramentas Disponíveis

  ### 📱 WhatsApp (2 ferramentas)
  - **Enviar WhatsApp** - Enviar mensagens WhatsApp com suporte opcional a templates
  - **Listar Templates WhatsApp** - Listar todos os templates de mensagens WhatsApp disponíveis

  ### 💬 SMS (4 ferramentas)
  - **Enviar SMS** - Enviar mensagens SMS para qualquer número de telefone
  - **Obter Mensagem SMS** - Recuperar detalhes de uma mensagem SMS específica por ID
  - **Listar Mensagens SMS** - Listar mensagens SMS com paginação
  - **Obter Mensagens Recebidas** - Obter mensagens recebidas dos clientes (polling - todos os canais)
  - **Envio em Massa** - Enviar mensagens para múltiplos destinatários de uma só vez [NOVO]

  ### 📲 RCS (2 ferramentas)
  - **Enviar RCS** - Enviar mensagens Rich Communication Services com suporte a mídia
  - **Verificar Capacidades RCS** - Verificar se um número de telefone suporta mensagens RCS

  ### 🔐 Conta e Gerenciamento (4 ferramentas)
  - **Obter Informações da Conta** - Obter informações da conta incluindo saldo e estatísticas
  - **Adicionar à Blacklist** - Adicionar números de telefone à blacklist para prevenir mensagens futuras
  - **Obter Analytics** - Obter analytics de uso e relatórios
  - **Busca em Massa** - Envio de mensagens em massa
  - **Seleção Inteligente de Canal** - Recomendação de IA para o melhor canal

  **Total: 13 ferramentas** - Todas disponíveis em um único node!

  ## 📖 Exemplos de Uso

  ### Exemplo 1: Mensagem Simples
  ```
  Usuário: "Envie SMS para +5511999999999 dizendo que o pedido foi aprovado"

  IA: ✅ SMS enviado com sucesso! ID da mensagem: msg_abc123
  ```

  ### Exemplo 2: Fallback Multi-Canal
  ```
  Usuário: "Envie notificação para +5511999999999. Tente WhatsApp primeiro, se não disponível use SMS"

  IA: [Verifica capacidades RCS] → [Tenta WhatsApp] → ✅ Enviado via WhatsApp!
  ```

  ### Exemplo 3: Gerenciamento de Conta
  ```
  Usuário: "Quanto gastei em mensagens este mês?"

  IA: 💰 Total: R$ 247,50
      - WhatsApp: R$ 0,00
      - SMS: R$ 215,00
      - RCS: R$ 32,50
  ```

  ### Exemplo 4: Uso de Template
  ```
  Usuário: "Envie WhatsApp para +5511999999999 usando o template 'order_confirmation' com número do pedido INV-123"

  IA: ✅ Mensagem WhatsApp enviada usando template!
  ```

  ## ⚙️ Configuração do Node

  ### Ferramentas para Expor
  Selecione quais ferramentas disponibilizar para o AI Agent. A IA usará apenas as ferramentas que você habilitar.

  **Seleção Padrão:**
  - Enviar WhatsApp
  - Enviar SMS
  - Enviar RCS
  - Obter Informações da Conta

  **Todas as Ferramentas Disponíveis:**
  - Enviar WhatsApp
  - Listar Templates WhatsApp
  - Enviar SMS
  - Obter Mensagem SMS
  - Listar Mensagens SMS
  - Enviar RCS
  - Verificar Capacidades RCS
  - Obter Informações da Conta
  - Adicionar à Blacklist
  - Obter Mensagens Recebidas
  - Obter Analytics
  - Seleção Inteligente de Canal

  ### Exemplo de Workflow

  ```
  [Chat Trigger] → [AI Agent] → [Modelo OpenAI/Anthropic]
                        ↓
              ⬡ YupChat MCP Tools
                        ↓
              [Processar Resposta]
  ```

  ## 🔧 Detalhes Técnicos

  ### Tipo de Node
  - **Tipo**: Tool Node (ícone redondo ⬡)
  - **Saída**: `ai_tool` (para nodes AI Agent)
  - **Entrada**: Nenhuma (fornece ferramentas, não dados)

  ### Credenciais
  - **Tipo**: YupChat API
  - **Campos Obrigatórios**:
    - Account ID (string)
    - Auth Token (senha)
    - Base URL (string, padrão: `https://api.yup.chat`)

  ### Dependências
  - **Peer Dependencies**:
    - `n8n-workflow` (fornecido pelo N8N)
    - `@langchain/core` (para DynamicStructuredTool)
    - `zod` (para validação de schema)

  ## 📋 Requisitos

  - **Versão N8N**: 1.0.0 ou superior (com suporte a AI Agent)
  - **Conta YupChat**: Conta ativa com acesso à API
  - **Node AI Agent**: Necessário para usar as ferramentas (OpenAI, Anthropic, etc.)

  ## 🆘 Solução de Problemas

  ### Node Não Aparece
  - Certifique-se de que instalou o pacote corretamente
  - Reinicie o N8N após a instalação
  - Verifique a compatibilidade da versão do N8N

  ### Ferramentas Não Funcionam
  - Verifique se as credenciais da API YupChat estão corretas
  - Verifique se as ferramentas estão selecionadas em "Ferramentas para Expor"
  - Certifique-se de que o node AI Agent está conectado corretamente

  ### Erros de Autenticação
  - Verifique Account ID e Auth Token
  - Verifique se a Base URL está correta (`https://api.yup.chat`)
  - Certifique-se de que as credenciais da API têm as permissões adequadas

  ## 📖 Documentação

  - **Documentação da API YupChat**: [doc.yup.chat](https://doc.yup.chat/)
  - **Site YupTools**: [yuptools.com.br](https://yuptools.com.br)
  - **Repositório GitHub**: [github.com/yuptools/n8n-nodes-yuptools-mcptools-yupchat](https://github.com/yuptools/n8n-nodes-yuptools-mcptools-yupchat)

  ## 🤝 Suporte

  - 📧 **Email**: support@yuptools.com.br
  - 🐛 **Issues**: [GitHub Issues](https://github.com/yuptools/n8n-nodes-yuptools-mcptools-yupchat/issues)
  - 🌐 **Website**: [yuptools.com.br](https://yuptools.com.br)

  ## 📄 Licença

  Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.

  ---

  **Feito com ❤️ pela equipe YupTools** 🇧🇷

  *Primeiro produto da linha YupTools - Ferramentas que conectam IA com suas aplicações favoritas!*

ai_documentation_summary:
  {"purpose":"The YupChat MCP Tools node enables AI agents in n8n to send and manage multi-channel messages (WhatsApp, SMS, RCS) autonomously through natural language interactions, offering 13 independent tools for message sending, template management, and account monitoring.","capabilities":["Send WhatsApp messages with optional templates","List WhatsApp message templates","Send SMS messages to individual or bulk numbers","Retrieve SMS message details by ID","List SMS messages with pagination","Retrieve received SMS messages (polling across channels)","Send bulk SMS messages","Send RCS messages with media support","Check if a phone number supports RCS","Get account information (balance, stats)"],"authentication":"API key authentication required: Account ID and Auth Token from app.yup.chat dashboard","commonUseCases":["Sending notifications via WhatsApp, SMS, or RCS based on user request","Automated customer communication with template-based messaging","Multi-channel fallback logic (e.g., try WhatsApp first, then SMS)","Account monitoring and cost reporting (e.g., monthly spending breakdown)","Bulk message dispatch for marketing or service updates"],"limitations":[],"relatedNodes":["AI Agent","Chat Trigger"]}


node_type: n8n-nodes-suna-kortix.SunaKortix
package_name: n8n-nodes-suna-kortix
display_name: SunaKortix
category: Community
development_style: declarative
version: 0.2.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: syhc
author_github_url: git+https://github.com/Logrui/n8n-nodes-suna-kortix.git
npm_package_name: n8n-nodes-suna-kortix
npm_version: 0.2.0
community_fetched_at: 2026-01-07T20:08:17.643Z
description:
  n8n node for Suna Kortix integration - Interact with Suna KortixWorkers, Threads, Runs, and Sandbox Files


node_type: @bitovi/n8n-nodes-freshbooks.Freshbooks
package_name: @bitovi/n8n-nodes-freshbooks
display_name: Freshbooks
description: N8N node to connect to FreshBooks
category: Community
development_style: declarative
version: 0.1.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: bitovi-os
author_github_url: git+https://github.com/bitovi/n8n-nodes-freshbooks.git
npm_package_name: @bitovi/n8n-nodes-freshbooks
npm_version: 0.1.1
community_fetched_at: 2026-01-07T20:08:17.643Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # @bitovi/n8n-nodes-freshbooks

  This is an n8n community node. It lets you use FreshBooks in your n8n workflows.

  FreshBooks is a cloud-based accounting software designed for small businesses and freelancers, providing tools for invoicing, time tracking, expense management, and financial reporting.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

  - Make sure to allow community nodes with `N8N_COMMUNITY_PACKAGES_ENABLED=true`
  - Once logged in to your N8N web UI, go to `/settings/community-nodes` and type `@bitovi/n8n-nodes-freshbooks`

  ## Operations

  ### Clients

  - **List Clients**: Retrieve all clients from your FreshBooks account

  ### Projects

  - **List Projects**: Get all projects for specified clients

  ### Services

  - **List Services**: Get available services for a specific project

  ### Time Tracking

  - **List Time Entries**: Retrieve time entries from your FreshBooks account
  - **Get Time Entry**: Retrieve a specific time entry by ID
  - **Create Time Entry**: Add a new time entry with client, project, service, note, date, and duration
  - **Update Time Entry**: Modify an existing time entry
  - **Delete Time Entry**: Remove a time entry

  ### User

  - **Get User Info**: Retrieve current user information

  ## Credentials

  This node requires OAuth2 authentication with FreshBooks.

  - **Client ID**: Your FreshBooks OAuth2 client ID from your app registration
  - **Client Secret**: Your FreshBooks OAuth2 client secret from your app registration  
  - **Authorization URL**: `https://my.freshbooks.com/service/auth/oauth/authorize`

  To set up OAuth2 credentials:

  1. Register your application in the FreshBooks Developer Portal
  2. Configure the redirect URI in your FreshBooks app settings
  3. Use the provided Client ID and Client Secret in your n8n credentials

  ## Compatibility

  - Node version: 1
  - Tested with latest n8n version

  ## Usage

  This node provides comprehensive access to FreshBooks functionality for accounting and time tracking:

  ### Time Tracking Operations

  #### Creating Time Entries

  - **Client ID**: Select the client for billing
  - **Project ID**: Associate with specific project
  - **Service ID**: Categorize the type of work performed
  - **Note**: Detailed description of work performed
  - **Date**: When the work was performed
  - **Duration**: Time spent in seconds (default: 28800 = 8 hours)
  - **Is Logged**: Whether the entry is marked as logged (default: true)

  #### Managing Time Entries

  - List all time entries with pagination support
  - Get specific time entries by ID
  - Update existing entries with new information
  - Delete time entries when needed

  ### Filtering and Options

  #### Client Operations

  - Filter by visibility state (active/archived)
  - Sort by various criteria (updated date, created date, etc.)

  #### Project Operations

  - Filter projects by specific client IDs
  - Show only active projects
  - Exclude completed projects from results

  ### Pagination Support

  - **Return All**: Get all results or limit the number returned
  - **Limit**: Set maximum number of results (default: 50)
  - Automatic pagination handling for large datasets

  ### User Information

  - Retrieve current authenticated user details
  - Access business and account information

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [FreshBooks API documentation](https://www.freshbooks.com/api)
  - [FreshBooks Developer Portal](https://www.freshbooks.com/developers)

  ## Version history

  - v0.1.0: Initial release
    - Client, Project, Service, Time Tracking, and User operations
    - Full CRUD support for time entries
    - OAuth2 authentication
    - Pagination support

  ## Need help or have questions?

  Need guidance on leveraging AI agents or N8N for your business? Our [AI Agents workshop](https://hubs.ly/Q02X-9Qq0) will equip you with the knowledge and tools necessary to implement successful and valuable agentic workflows.

  ## License

  [MIT](./LICENSE.md)

ai_documentation_summary:
  {"purpose":"The FreshBooks n8n node enables integration with FreshBooks accounting software, allowing users to manage clients, projects, services, time entries, and user information within n8n workflows.","capabilities":["List clients","List projects by client","List services for a project","List time entries with pagination","Get a specific time entry by ID","Create a new time entry with client, project, service, note, date, and duration","Update an existing time entry","Delete a time entry","Retrieve current user information","Filter clients by visibility (active/archived)"],"authentication":"OAuth2 authentication required. Users must register an app in the FreshBooks Developer Portal to obtain a Client ID and Client Secret, which are then used in the n8n credentials.","commonUseCases":["Automate invoice and time tracking workflows","Sync time entries from n8n to FreshBooks for billing","Retrieve client or project data for reporting","Update time entries based on external triggers","Monitor user access or business details in FreshBooks"],"limitations":[],"relatedNodes":["n8n core nodes for data transformation","n8n nodes for database or email integration","n8n nodes for workflow triggers and actions"]}


node_type: @luka-cat-mimi/n8n-nodes-feishu.Feishu
package_name: @luka-cat-mimi/n8n-nodes-feishu
display_name: Feishu
description: 飞书 N8N 集成插件
category: Community
development_style: declarative
version: 0.5.11
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: GitHub Actions
author_github_url: git+https://github.com/luka-n8n-nodes/n8n-nodes-feishu.git
npm_package_name: @luka-cat-mimi/n8n-nodes-feishu
npm_version: 0.5.11
community_fetched_at: 2026-01-07T20:08:17.644Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # @luka-cat-mimi/n8n-nodes-feishu

  飞书 n8n 社区节点，提供飞书开放平台 API 的集成支持。

  > 本项目是基于 [n8n-nodes-feishu-lite](https://github.com/other-blowsnow/n8n-nodes-feishu-lite) 之上进行的二次开发，感谢原作者的开源贡献！

  ## 安装

  参考：https://docs.n8n.io/integrations/community-nodes/installation/

  节点名称：`@luka-cat-mimi/n8n-nodes-feishu`


  ## 功能列表

  ### 知识库 (13)
  - 获取知识空间列表
  - 获取知识空间信息
  - 更新知识空间设置
  - 添加知识空间成员
  - 删除知识空间成员
  - 获取知识空间成员列表
  - 创建知识空间节点
  - **创建动态层级的知识库空间节点 (自定义封装)** ✨ 新增
  - 创建知识空间节点副本
  - 获取知识空间节点信息
  - 获取知识空间子节点列表 ✨支持递归获取子节点
  - 移动知识空间节点
  - 更新知识空间节点标题

  ### 群组管理 (9)
  - 获取群信息
  - 获取用户或机器人所在的群列表
  - 搜索对用户或机器人可见的群列表
  - 获取群成员列表
  - 将用户或机器人拉入群聊
  - 移出群成员
  - 判断用户或机器人是否在群里
  - 指定群管理员
  - 删除群管理员

  ### 通讯录 (3)
  - 获取用户信息
  - 批量获取用户信息
  - 通过手机号或邮箱获取用户 ID

  ### 任务 (6)
  - 创建任务
  - 获取任务详情
  - 更新任务
  - 删除任务
  - 添加任务成员
  - 移除任务成员

  ### 云文档 (11)
  - 创建文档
  - 获取文档基本信息
  - 获取文档纯文本内容
  - 获取云文档内容
  - 获取文档所有块
  - 获取块的内容
  - 创建块
  - 创建嵌套块
  - 更新块的内容
  - 删除块
  - Markdown/HTML 内容转换为文档块


  ### 多维表格 (28)
  - 解析多维表格地址
  - 创建多维表格
  - 复制多维表格
  - 获取多维表格元数据
  - 更新多维表格元数据
  - 导出多维表格
  - 列出数据表
  - 新增数据表
  - 更新数据表
  - 删除数据表
  - 列出视图
  - 获取视图
  - 新增视图
  - 更新视图
  - 删除视图
  - 查询记录
  - 查询记录-通过记录ID
  - 新增记录
  - 更新记录
  - 删除记录
  - 批量新增记录
  - 批量更新记录
  - 批量删除记录
  - 列出字段
  - 新增字段
  - 更新字段
  - 删除字段
  - 批量保存字段

  ### 消息 (19)
  - 发送消息
  - 回复消息
  - 编辑消息
  - 转发消息
  - 撤回消息
  - 批量发送消息
  - 批量撤回消息
  - 查询批量消息整体进度
  - 查询批量消息推送和阅读人数
  - 更新已发送的消息卡片
  - 延时更新消息卡片
  - 发送仅特定人可见的消息卡片
  - 删除仅特定人可见的消息卡片
  - 发送应用内加急
  - 上传图片
  - 下载图片
  - 上传文件
  - 下载文件
  - 解密事件消息

  ### 日历 (16)
  - 搜索日历
  - 查询日历信息
  - 查询主日历信息
  - 创建共享日历
  - 删除共享日历
  - 获取日程列表
  - 获取日程
  - 搜索日程
  - 创建日程
  - 更新日程
  - 删除日程
  - 获取日程参与人列表
  - 添加日程参与人
  - 删除日程参与人
  - 创建会议群
  - 解绑会议群

  ### Aily (5)
  - 读取文件基础信息
  - 文件上传
  - 调用技能
  - 查询技能列表
  - 获取技能信息

  ### 云空间 (7)
  - 上传素材
  - 上传素材通过Url
  - 订阅云文档事件
  - 取消云文档事件订阅
  - 导出云文档（自动轮询任务状态并下载文件）
  - 上传文件（支持二进制文件上传到云空间文件夹）
  - 分片上传文件（三合一接口，支持大文件分片上传，5 并发加速）✨ 新增

  ## ✨ 特别之处

  ### 🔄 Return All 自动分页

  以下接口支持 **Return All** 功能，自动处理分页获取全部数据：

  | 模块 | 接口名称 |
  |------|----------|
  | 知识库 | 获取知识空间列表 |
  | 知识库 | 获取知识空间成员列表 |
  | 知识库 | 获取知识空间子节点列表（支持递归获取所有子节点） |
  | Aily | 查询技能列表 |
  | 群组管理 | 获取用户或机器人所在的群列表 |
  | 群组管理 | 搜索对用户或机器人可见的群列表 |
  | 群组管理 | 获取群成员列表 |
  | 多维表格 | 查询记录 ✨ 新增 |

  ### ⏱️ 超时与批次管理

  大部分接口支持以下高级选项：

  - **Timeout（超时时间）**：设置请求超时时间（毫秒），避免请求长时间挂起
  - **Batching（批次管理）**：
    - **Items per Batch**：每批处理的数量，用于控制请求频率
    - **Batch Interval (ms)**：每批请求之间的等待时间，避免触发 API 限流

  这些功能可在接口的 `Options` 选项中配置，有效应对飞书 API 的频率限制。

  ## 凭证类型

  - **应用级别凭证** - 使用 App ID 和 App Secret 进行认证
  - **用户级别凭证** - 使用 OAuth 2.0 进行用户授权认证

  ## 注意事项

  1. 使用应用凭证访问文档时，需要在文档中将应用添加为协作者
  2. 错误码查询：https://open.feishu.cn/search


  ## 📝 许可证

  MIT License

  ## 🆘 支持

  - 📧 邮箱：luka.cat.mimi@gmail.com
  - 🐛 [问题反馈](https://github.com/luka-n8n-nodes/n8n-nodes-volcengine/issues)

ai_documentation_summary:
  {"purpose":"Feishu 节点为 n8n 提供飞书开放平台的 API 集成支持，支持知识库、群组管理、通讯录、任务、云文档、多维表格、消息、日历、Aily 和云空间等模块的全面操作，实现与飞书生态的高效连接。","capabilities":["获取/创建/更新/删除知识空间及节点（支持动态层级和递归获取子节点）","管理群组成员、权限和群列表（包括拉入、移出、指定管理员）","获取用户信息、通过手机号/邮箱查询用户ID","创建和管理任务（包括成员添加/移除）","创建、读取、编辑和删除云文档及文档块（支持 Markdown/HTML 转换）","操作多维表格（包括字段、视图、记录的增删改查、批量操作）","发送、回复、转发、撤回消息，支持批量操作和图片/文件上传下载","管理日历（创建、查询、更新日程、参与人、会议群）","调用 Aily 技能进行文件处理和技能查询","上传/下载文件及素材，支持分片上传大文件（5并发）和事件订阅"],"authentication":"应用级别凭证（App ID 和 App Secret）或用户级别凭证（OAuth 2.0）","commonUseCases":["自动化创建和管理飞书知识库结构","批量发送消息或通知到指定群组","同步多维表格数据到飞书任务或日历","自动处理文档内容变更与块更新","通过 API 自动化管理日程和会议安排"],"limitations":["使用应用凭证访问文档时，需手动将应用添加为协作者","部分接口未明确说明是否支持所有权限场景，需根据实际权限配置验证","Aily 模块功能依赖于具体技能配置，可能受限于技能可用性"],"relatedNodes":["多维表格节点","消息节点","云文档节点","日历节点"]}


node_type: n8n-nodes-bitrix.Bitrix
package_name: n8n-nodes-bitrix
display_name: Bitrix
description: n8n node for bitrix rest api
category: Community
development_style: declarative
version: 1.3.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: dewocom
author_github_url: git+https://github.com/dewocom/n8n-nodes-bitrix.git
npm_package_name: n8n-nodes-bitrix
npm_version: 1.3.0
community_fetched_at: 2026-01-07T20:08:17.644Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-bitrix

  This is an n8n community node. It lets you use **Bitrix24** in your n8n workflows.

  **Bitrix24** is a powerful collaboration platform that includes CRM, tasks, projects, communications, and more — all in a unified workspace. This node allows you to interact with core Bitrix24 entities such as contacts, leads, companies, and deals.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [Installation](#installation)
  [Operations](#operations)
  [Credentials](#credentials)
  [Compatibility](#compatibility)
  [Usage](#usage)
  [Resources](#resources)
  [Version history](#version-history)

  ---

  ## Installation

  Follow the installation guide in the n8n community nodes documentation.

  1. Go to **Settings** > **Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-bitrix` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**. 

  After installing the node, you can use it like any other node. n8n displays the node in search results in the **Nodes** panel.


  ---

  ## Operations

  This node supports the following Bitrix24 modules and operations:

  ### Modules

  * `crm.company`
  * `crm.contact`
  * `crm.deal`
  * `crm.lead`
  * (more coming soon)

  ### Supported operations per entity:

  * **Create** (Add a new entity)
  * **Get** (Get an entity by ID)
  * **Update** (Update an entity by ID)
  * **Delete** (Delete an entity by ID)
  * **List** (Query/filter entities)
  * **Get Fields Description** (Fetch metadata for custom fields)

  Each operation supports:

  * **Field-by-field input** or **raw JSON** input
  * Filtering, sorting, and field selection for list queries

  ---

  ## Credentials

  This node supports two authentication methods:

  ### 1. Bitrix Webhook

  Use a webhook URL from Bitrix24 (e.g. `https://yourdomain.bitrix24.ru/rest/1/abc123xyz/`).

  To set this up:

  * In Bitrix24, go to **Developer tools → Webhooks**
  * Create an inbound webhook and select required access
  * Copy the webhook URL and use it in credentials

  ### 2. OAuth2 (Bitrix24 REST API)

  If you want to use OAuth2:

  * Create an application in Bitrix24
  * Use the client ID, secret, and domain in the OAuth2 credential
  * Supports automatic token refresh and secure API access

  ---

  ## Compatibility

  * **Tested on:** `1.92.2`

  Known limitations:

  * Some custom fields in Bitrix may require extra formatting depending on field type.

  ---

  ## Usage

  When creating or updating records, you can choose to:

  * Fill fields one-by-one (dynamic list of available fields is loaded)
  * Or provide the full data in raw JSON

  When listing entities, you can:

  * Use simple filters (field, operator, value)
  * Or provide complex JSON filters (e.g., combined filters, nested conditions)

  Field names are loaded dynamically based on selected entity (e.g., `crm.contact`), making it easier to work with custom fields.

  ---

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Bitrix24 REST API documentation](https://training.bitrix24.com/rest_help/)
  * [Bitrix24 Webhooks Guide](https://apidocs.bitrix24.com/local-integrations/local-webhooks.html)

  ---

  ## Version history

  | Version  | Changes                                                                                                                    |
  |----------|----------------------------------------------------------------------------------------------------------------------------|
  | 1.0.0    | Initial release with support for CRM module (contact, company, deal, lead), including create/get/update/delete/list/fields |
  | 1.1.0    | Added support for both OAuth2 and Webhook auth, improved filter and JSON input modes                                       |
  | 1.2.x    | Bug-fixes. Added Custom Method                                                                                             |
  | 1.3.x    | Added Universal Methods for Core Elements ( crm.item.* )                                                                   |
  | Upcoming | Support for tasks, users, and activity logging                                                                             |

ai_documentation_summary:
  {"purpose":"The Bitrix n8n node enables integration with Bitrix24's CRM and collaboration platform by allowing users to perform CRUD operations and queries on entities like contacts, companies, leads, and deals via the Bitrix24 REST API.","capabilities":["Create, get, update, delete, and list entities (contacts, companies, deals, leads)","Fetch metadata for custom fields (get fields description)","Support for field-by-field input or raw JSON input","Filtering, sorting, and field selection in list queries","Dynamic field name loading based on entity type","Support for both Webhook and OAuth2 authentication","Automatic token refresh with OAuth2","Universal methods for core elements (crm.item.*)"],"authentication":"Two methods: Bitrix Webhook (using a webhook URL from Bitrix24) or OAuth2 (using client ID, secret, and domain).","commonUseCases":["Syncing customer data between n8n and Bitrix24 CRM","Automating lead and contact management workflows","Triggering actions based on deal or contact changes","Fetching and filtering records using custom or standard fields","Integrating Bitrix24 tasks or users in broader automation workflows"],"limitations":["Some custom fields may require extra formatting based on field type","Limited support for advanced field types or nested structures in filters","No support for tasks, users, or activity logging yet (upcoming)"],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-oauth2"]}


