# nodes

node_type: n8n-nodes-globals.globals
package_name: n8n-nodes-globals
display_name: globals
description: N8N community node that allows users to create global constants and use them in all their workflows
category: Community
development_style: declarative
version: 1.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: umanamente
author_github_url: git+https://github.com/umanamente/n8n-nodes-globals.git
npm_package_name: n8n-nodes-globals
npm_version: 1.1.0
community_fetched_at: 2026-03-25T21:19:41.737Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # <img src="nodes/GlobalConstants/globals-icon-60px.png"  height="60" style="margin-bottom: -20px;"> n8n-nodes-globals

  This is an n8n community node. It lets you create global constants that can be used in any workflow.

  * [Installation](#installation)  
  * [Usage](#usage)
  * [Version history](CHANGELOG.md)  

  ## Installation

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

  ## Usage

  This node uses N8N Credential to store the global variables.

  1. Add "`Global Constants`" node to your workflow.
     ![Global Constants node](./docs/images/usage/1_select_node.png)
  2. In the node configuration, either select an existing credential or create a new one.
  3. Select the format for your global constants:
     - Key-value pairs format: Use "name=value" pairs, one per line
     - JSON format: Provide constants as a JSON object
  4. Add your constants according to the chosen format:
     
     KeyKey-value pairs
     ![Define constants String](./docs/images/usage/2_define_constants_string.png)

     JSON
     ![Define constants](./docs/images/usage/2_define_constants_json.png)
  5. Use the global constants in your workflow
     ![Use constants](./docs/images/usage/3_use_node.png)

ai_documentation_summary:
  {"purpose":"A community node that creates and manages global constants accessible across all workflows in n8n.","capabilities":["Create global constants via key-value pairs","Create global constants via JSON objects","Store constants using n8n Credentials","Retrieve and use constants in any workflow"],"authentication":"n8n Credentials required","commonUseCases":["Storing configuration values across multiple workflows","Managing shared API keys or tokens","Defining reusable environment variables"],"limitations":["Requires manual credential setup for each workflow instance","No built-in versioning or rollback for constants"],"relatedNodes":["n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.expression"]}


node_type: n8n-nodes-palatine-speech.palatinespeech
package_name: n8n-nodes-palatine-speech
display_name: palatinespeech
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: palatine_zealot
author_github_url: git+https://github.com/PalatineVision/n8n-nodes-palatine-speech.git
npm_package_name: n8n-nodes-palatine-speech
npm_version: 1.0.1
community_fetched_at: 2026-03-25T21:19:41.738Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Official n8n node for Palatine Speech API: transcription, diarization, sentiment analysis, summarization and more

npm_readme:
  ![README banner](https://github.com/palatine-vision/n8n-nodes-palatine-speech/blob/main/docs/assets/Header.png)

  # n8n-nodes-palatine-speech

  > Designed for seamless integration of **Palatine Speech API** into n8n workflows.

  This is an n8n community node that integrates [Palatine Speech](https://speech.palatine.ru/) into your workflows and enables audio processing tasks such as transcription, diarization, sentiment analysis, and summarization.

  ## Navigation

  [Supported Operations](#supported-operations)\
  [Installation](#installation)\
  [Credentials](#credentials)\
  [Workflow Example](#workflow-example)\
  [Use Cases](#use-cases) \
  [Compatibility](#compatibility)\
  [Useful Resources](#useful-resources)\
  [Keywords](#keywords) \
  [License](#license) \
  [Support](#support)

  > Looking for a Russian version? [Here](https://gist.github.com/Valeronich/b5d116fd4ca251ff672eda7d2a530a61)

  ## Supported Operations

  For details on each operation, see the Palatine Speech [documentation](https://docs.speech.palatine.ru/documentation/quick_start/transcription). You can also open the documentation by clicking the operation title below.

  * [Full list of supported file types](https://docs.speech.palatine.ru/documentation/technical_information/supported_files)
  * [Full list of supported languages](https://docs.speech.palatine.ru/documentation/technical_information/supported_languages)

  ### [Transcribe — speech transcription](https://docs.speech.palatine.ru/api-reference/transcribe/transcribe-polling-api/transcribe)

  Speech-to-Text (STT) converts audio/video into a written transcript.
  It supports multiple languages and can automatically detect the language spoken in the recording.
  It is well-suited for calls, interviews, lectures, and any other recordings where you need an accurate text version of what was said.

  ### [Diarize — speaker diarization](https://docs.speech.palatine.ru/api-reference/diarization/diarization-polling-api/diarize)

  Speaker diarization separates a recording into speaker segments and identifies who is speaking in each segment. This is useful for meetings and interviews, where keeping the conversation structure by speaker matters.

  ### [Sentiment Analysis — sentiment analysis](https://docs.speech.palatine.ru/api-reference/sentiment-analysis/sentiment-analysis-polling-api/sentiment-analysis)

  Determines the emotional tone of speech in audio/video (and can also analyze text). The result is a ranked list of sentiment classes with probabilities, where the first item is the most likely: `Very Negative`, `Negative`, `Neutral`, `Positive`, `Very Positive`.

  ### [Summarize — audio summarization](https://docs.speech.palatine.ru/api-reference/ai-service/ai-service/summarize-file)

  Generates a structured summary from audio/video (or from already available text). In addition to built-in scenarios such as `meeting_summary`, it supports `user_prompt` — you can provide a custom prompt for the LLM to produce output in the structure you need (bullet points, decisions and action items, risks, Q&A, etc.).

  ## Installation

  1. In your n8n instance, go to **Settings > Community Nodes → Install**
  2. Enter: `n8n-nodes-palatine-speech`
  3. Click **Install**
  > ⚠️ Make sure the environment variable `N8N_COMMUNITY_PACKAGES_ENABLED=true` is set.

  ## Credentials

  1. Go to **Credentials → + Create**
  2. Find **Palatine Speech API**
  3. Fill in the fields:
    * **API Key** — available in your Palatine Speech dashboard
    * **Base URL** — default is `https://api.palatine.ru`

  ## Workflow Example

  1. `Webhook` → Receive an audio file
  2. `Config` → Configure parameters
  3. `Palatine Speech` → Transcribe the file
  4. `Create record` → Create a table record
  5. `Telegram` → Send the result to a chat

  ![workflow example](https://github.com/palatine-vision/n8n-nodes-palatine-speech/blob/main/docs/assets/WorkflowExample.png)

  ## Use Cases

  * **Meeting summaries** \
  For meeting and interview recordings, it is recommended to use `Summarize` (`meeting_summary`): it produces a brief summary, a list of decisions, and group action items by owner and due date; the result can be sent to the team chat if needed. \
  For non-standard requests, specify `Prompt` in `Summarize` and provide the required instruction, for example: "Additionally, structure the agreements by deadlines and owners."

  * **Lecture/webinar notes** \
  Session recording → `Transcribe` → generate a full transcript. \
  Save the resulting text alongside the session materials.

  * **Automatic subtitles for video** \
  Extract the audio track → `Transcribe` + `Diarize` → convert the result to SRT/VTT and attach it to the video. \
  `Transcribe` produces the transcript, while `Diarize` provides speaker segmentation for multi-speaker recordings.

  * **Customer support assistant** \
  Processing voice messages with `Sentiment Analysis` helps determine the emotional tone of the request. \
  Based on the result, tickets can be created in the CRM and a priority can be assigned.

  ## Compatibility

  This node was tested with n8n v1.39.1 and later.

  ## Useful Resources

  * [Palatine Speech documentation](https://docs.speech.palatine.ru/documentation/quick_start/transcription)
  * [n8n Community Nodes guide](https://docs.n8n.io/integrations/community-nodes/)
  * [Official n8n GitHub](https://github.com/n8n-io/n8n)

  ## Keywords

  `n8n-community-node-package`, `n8n`, `palatine`, `speech-to-text`, `transcribe`, `transcription`, `stt`, `audio`, `ai`, `automation`, `voice-to-text`, `speech-recognition`, `audio-transcription`, `audio2text`, `audio-processing`, `diarization`, `speaker-diarization`, `speaker-segmentation`, `summarization`, `audio-summarization`, `sentiment-analysis`, `emotion-detection`, `tone-analysis`

  ## License
  MIT

  ## Support
  Need help? Contact our Telegram support bot: [@Speech_Palatine_Support_Bot](https://t.me/Speech_Palatine_Support_Bot)

ai_documentation_summary:
  {"purpose":"An official n8n community node that integrates the Palatine Speech API to perform audio processing tasks including transcription, diarization, sentiment analysis, and summarization.","capabilities":["Speech-to-text transcription with automatic language detection","Speaker diarization to separate and identify speakers in recordings","Sentiment analysis with ranked emotional tone classification","Audio/video summarization with customizable prompts","Support for multiple file types and languages","Custom prompt engineering for LLM-based summarization"],"authentication":"API Key required (configured via Credentials node)","commonUseCases":["Meeting summaries and action item extraction","Lecture and webinar note generation","Automatic subtitle creation for videos","Customer support ticket prioritization via sentiment analysis"],"limitations":["Requires n8n v1.39.1 or later","Requires enabling community packages in n8n environment (N8N_COMMUNITY_PACKAGES_ENABLED=true)","Base URL must be manually configured (default provided)"],"relatedNodes":["Webhook","Config","Create record","Telegram"]}


node_type: @devlikeapro/n8n-nodes-chatwoot.chatwoot
package_name: @devlikeapro/n8n-nodes-chatwoot
display_name: chatwoot
description: n8n node to connect with ChatWoot
category: Community
development_style: declarative
version: 1.0.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: devlikeapro
author_github_url: git+https://github.com/devlikeapro/n8n-nodes-chatwoot.git
npm_package_name: @devlikeapro/n8n-nodes-chatwoot
npm_version: 1.0.2
community_fetched_at: 2026-03-25T21:19:41.739Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # @devlikeapro/n8n-nodes-chatwoot

  <p align="center">
    <img src="./chatwoot.png" width='150px'/>
    <img src="./n8n.png" width='150px'/>
  </p>

  Automate your
  [**ChatWoot**](https://www.chatwoot.com/)
  workflows with
  [**n8n**](https://n8n.io/)
  !

  ![screenshot](node.png)

  [![npm version](https://img.shields.io/npm/v/@devlikeapro/n8n-nodes-chatwoot.svg)](https://www.npmjs.com/package/@devlikeapro/n8n-nodes-chatwoot)

  - GitHub: [devlikeapro/n8n-nodes-chatwoot](http://github.com/devlikeapro/n8n-nodes-chatwoot)
  - npm: [@devlikeapro/n8n-nodes-chatwoot](https://www.npmjs.com/package/@devlikeapro/n8n-nodes-chatwoot)
  - ChatWoot API reference: [https://www.chatwoot.com/developers/api/](https://www.chatwoot.com/developers/api/)
  - 👉 Generated from
    [ChatWoot OpenAPI](https://www.chatwoot.com/developers/api/)
    using
    [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node)

  # Tables of Contents

  <!-- toc -->

  - [Installation](#installation)
  - [Usage](#usage)
    * [Credentials](#credentials)
      + [Platform](#platform)
      + [User](#user)
      + [Inbox](#inbox)
  - [Development](#development)
  - [Support the project](#support-the-project)

  <!-- tocstop -->

  # Installation
  Install [the community node package in your n8n instance](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/):
  ```
  @devlikeapro/n8n-nodes-chatwoot
  ```

  # Usage
  1. Install the community package to your n8n instance.
  2. Add **ChatWoot API** **credentials** in **n8n**.
  3. Create a new workflow with the **ChatWoot** node.

  ## Credentials
  There are few types of credentials (accounts) that you can use to authenticate with ChatWoot API.

  For different ChatWoot API Endpoints you'll need different credentials - please
  refer to the [ChatWoot API documentation](https://www.chatwoot.com/developers/api/) for more information.

  We suggest you create **ChatWoot API** credentials in **n8n** for each type of account and name it `ChatWoot - {TYPE}` 
  for better clarity.

  ![](./screenshots/n8n-credentials.png)

  ### Platform
  This token can be obtained by the system admin after creating a platformApp. This token should be used to provision agent bots, accounts, users and their roles.

  ![](./screenshots/chatwoot-platform-token.png)

  ### User
  This token can be obtained by visiting the profile page or via rails console.
  ![](./screenshots/chatwoot-profile-token.png)

  or **Super Admin** token in some cases

  ![](./screenshots/chatwoot-admin-token.png)

  ### Inbox
  This token can be obtained by visiting the inbox settings page.

  ![](./screenshots/chatwoot-inbox-token.png)

  # Development
  The node is generated from the
  [ChatWoot OpenAPI](https://www.chatwoot.com/developers/api/)
  using
  [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node).

  Likely the fix should be done in the OpenAPI specification file or in the generator itself.

  # Support the project

  You can support the project by donating a small amount to help us improve the project even more.
  - [https://patreon.com/devlikeapro](https://patreon.com/devlikeapro)

ai_documentation_summary:
  {"purpose":"An n8n community node that enables automation of ChatWoot workflows by connecting n8n instances to the ChatWoot API for managing conversations, bots, and accounts.","capabilities":["Manage platform-level operations (provisioning agents, accounts, users, roles)","Manage user-level operations via profile tokens","Manage inbox-level operations via inbox settings tokens","Support Super Admin token authentication","Automate ChatWoot API endpoints based on OpenAPI specification"],"authentication":"API Token (Platform, User, Inbox, or Super Admin tokens obtained from ChatWoot dashboard)","commonUseCases":["Automating customer support responses","Managing ChatWoot bot configurations","Syncing user data between n8n and ChatWoot","Automating inbox management tasks"],"limitations":["Requires specific API tokens for different scopes (Platform, User, Inbox)","Some fixes may require changes to the OpenAPI specification or generator"],"relatedNodes":["devlikeapro/n8n-openapi-node","ChatWoot API node"]}


node_type: n8n-nodes-mcp.mcp
package_name: n8n-nodes-mcp
display_name: mcp
description: MCP nodes for n8n
category: Community
development_style: declarative
version: 0.1.37
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: GitHub Actions
author_github_url: git+https://github.com/nerding-io/n8n-nodes-mcp.git
npm_package_name: n8n-nodes-mcp
npm_version: 0.1.37
community_fetched_at: 2026-03-25T21:19:41.740Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  [![Verified on MseeP](https://mseep.ai/badge.svg)](https://mseep.ai/app/bd76f121-1c8f-4f5d-9c65-1eac5d81b6af)

  # n8n-nodes-mcp-client

  > **Important Note:**
  > The Server-Sent Events (SSE) transport is deprecated and replaced by the new HTTP Streamable transport. SSE remains available for legacy compatibility, but HTTP Streamable is now the recommended method for all new implementations.

  This is an n8n community node that lets you interact with Model Context Protocol (MCP) servers in your n8n workflows.

  MCP is a protocol that enables AI models to interact with external tools and data sources in a standardized way. This node allows you to connect to MCP servers, access resources, execute tools, and use prompts.

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

  [Installation](#installation)
  [Credentials](#credentials)
  [Environment Variables](#environment-variables)
  [Operations](#operations)
  [Using as a Tool](#using-as-a-tool)
  [Compatibility](#compatibility)
  [Resources](#resources)

  ## Getting Started

  Official Quickstart Video:

  [![MCP Client Node Quickstart](/assets/mcp-n8n.png)](https://youtu.be/1t8DQL-jUJk)



  ### Community Videos

  Shoutout to all the creators of the following n8n community videos that are great resources for learning how to use this node:

  - [Is MCP the Future of N8N AI Agents? (Fully Tested!)](https://youtu.be/sb5hCcFYPIE)
  - [Connect N8N AI Agents to EVERYTHING using MCP?](https://youtu.be/tTDRgkD-120)
  - [Build an AI Agent That Can Use Any Tool (MCP in n8n Tutorial)](https://www.youtube.com/watch?v=SVZe2rdhYmA)
  - [The NEW N8N MCP is an Absolute Game-Changer (Brave Search MCP)](https://youtu.be/RxXS_FpJyGM)
  - [MCP & n8n Automation: The Ultimate Guide for MCP AI Agents (2025)](https://www.youtube.com/watch?v=mbQsnrxHPwE)
  - [REVOLUÇÃO na criação de AGENTES no N8N com o MCP Server!!!](https://www.youtube.com/watch?v=zgH85dJcs5c) (Portuguese)

  If you have a great video that you'd like to share, please let me know and I'll add it to the list!

  #### Interested a deeper dive into MCP?

  Check out my YouTube Series [MCP Explained](https://www.youtube.com/playlist?list=PLjOCx_PNfJ4S_oOSqrMi6t9_x1GllvQZO) for more information about the Model Context Protocol.

  ### Security Assessment
  [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/nerding-io-n8n-nodes-mcp-badge.png)](https://mseep.ai/app/nerding-io-n8n-nodes-mcp)


  ## Installation

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

  Also pay attention to Environment Variables for [using tools in AI Agents](#using-as-a-tool). It's mandatory to set the `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE` environment variable to `true` if you want to use the MCP Client node as a tool in AI Agents.

  ## Credentials

  The MCP Client node supports three types of credentials to connect to an MCP server:

  ### Command-line Based Transport (STDIO)

  ![MCP Client STDIO Credentials](./assets/credentials.png)

  - **Command**: The command to start the MCP server
  - **Arguments**: Optional arguments to pass to the server command
  - **Environment Variables**: Variables to pass to the server in NAME=VALUE format

  ### HTTP Streamable Transport (Recommended)

  - **HTTP Streamable URL**: The HTTP endpoint that supports streaming responses (e.g., http://localhost:3001/stream)
  - **Additional Headers**: Optional headers to send with requests (format: name:value, one per line)

  HTTP Streamable is the recommended and modern method for all new integrations, providing better efficiency and flexibility compared to SSE.

  #### Example: Using a Local MCP Server with HTTP Streamable

  This example shows how to connect to a locally running MCP server using HTTP Streamable:

  1. Start a local MCP server that supports HTTP Streamable:
     ```bash
     npx @modelcontextprotocol/server-example-streamable
     ```

  2. Configure MCP Client credentials:
     - In the node settings, select **Connection Type**: `HTTP Streamable`
     - Create new credentials of type **MCP Client (HTTP Streamable) API**
     - Set **HTTP Streamable URL**: `http://localhost:3001/stream`
     - Add any required headers for authentication

  3. Create a workflow using the MCP Client node:
     - Add an MCP Client node
     - Set the Connection Type to `HTTP Streamable`
     - Select your HTTP Streamable credentials
     - Execute the workflow to see the results

  ### Server-Sent Events (SSE) Transport (Deprecated, still available for legacy use)

  - **SSE URL**: The URL of the SSE endpoint (default: http://localhost:3001/sse)
  - **Messages Post Endpoint**: Optional custom endpoint for posting messages if different from the SSE URL
  - **Additional Headers**: Optional headers to send with requests (format: name:value, one per line)

  > **Deprecated:** SSE is deprecated and will not receive further updates, but remains available for legacy compatibility. For new projects, use HTTP Streamable.

  #### Example: Using a Local MCP Server with SSE (legacy)

  This example shows how to connect to a locally running MCP server using Server-Sent Events (SSE):

  1. Start a local MCP server that supports SSE:
     ```bash
     npx @modelcontextprotocol/server-example-sse
     ```

  2. Configure MCP Client credentials:
     - In the node settings, select **Connection Type**: `Server-Sent Events (SSE)`
     - Create new credentials of type **MCP Client (SSE) API**
     - Set **SSE URL**: `http://localhost:3001/sse`
     - Add any required headers for authentication

  3. Create a workflow using the MCP Client node:
     - Add an MCP Client node
     - Set the Connection Type to `Server-Sent Events (SSE)`
     - Select your SSE credentials
     - Execute the workflow to see the results

  > **Note:** For new projects, HTTP Streamable is strongly recommended.

  ## Environment Variables

  The MCP Client node supports passing environment variables to MCP servers using the command-line based transport in two ways:

  ### 1. Using the Credentials UI

  You can add environment variables directly in the credentials configuration:

  ![Environment Variables in Credentials](./assets/credentials-envs.png)

  This method is useful for individual setups and testing. The values are stored securely as credentials in n8n.

  ### 2. Using Docker Environment Variables

  For Docker deployments, you can pass environment variables directly to your MCP servers by prefixing them with `MCP_`:

  ```yaml
  version: '3'

  services:
    n8n:
      image: n8nio/n8n
      environment:
        - MCP_BRAVE_API_KEY=your-api-key-here
        - MCP_OPENAI_API_KEY=your-openai-key-here
        - MCP_CUSTOM_SETTING=some-value
      # other configuration...
  ```

  These environment variables will be automatically passed to your MCP servers when they are executed.

  ### Example: Using Brave Search MCP Server

  This example shows how to set up and use the Brave Search MCP server:

  1. Install the Brave Search MCP server:
     ```bash
     npm install -g @modelcontextprotocol/server-brave-search
     ```

  2. Configure MCP Client credentials:
     - **Command**: `npx`
     - **Arguments**: `-y @modelcontextprotocol/server-brave-search`
     - **Environment Variables**: `BRAVE_API_KEY=your-api-key` Add a variables (space comma or newline separated)

  3. Create a workflow that uses the MCP Client node:
     - Add an MCP Client node
     - Select the "List Tools" operation to see available search tools
     - Add another MCP Client node
     - Select the "Execute Tool" operation
     - Choose the "brave_search" tool
     - Set Parameters to: `{"query": "latest AI news"}`

  ![Brave Search Example](./assets/brave-search-example.png)

  The node will execute the search and return the results in the output.

  ### Example: Multi-Server Setup with AI Agent

  This example demonstrates how to set up multiple MCP servers in a production environment and use them with an AI agent:

  1. Configure your docker-compose.yml file:

  ```yaml
  version: '3'

  services:
    n8n:
      image: n8nio/n8n
      environment:
        # MCP server environment variables
        - MCP_BRAVE_API_KEY=your-brave-api-key
        - MCP_OPENAI_API_KEY=your-openai-key
        - MCP_SERPER_API_KEY=your-serper-key
        - MCP_WEATHER_API_KEY=your-weather-api-key

        # Enable community nodes as tools
        - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
      ports:
        - "5678:5678"
      volumes:
        - ~/.n8n:/home/node/.n8n
  ```

  2. Create multiple MCP Client credentials in n8n:

     **Brave Search Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-brave-search`

     **OpenAI Tools Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-openai`

     **Web Search Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-serper`

     **Weather API Credentials**:
     - Command: `npx`
     - Arguments: `-y @modelcontextprotocol/server-weather`

  3. Create an AI Agent workflow:
     - Add an AI Agent node
     - Enable MCP Client as a tool
     - Configure different MCP Client nodes with different credentials
     - Create a prompt that uses multiple data sources

  ![Multi-Server Setup](./assets/multi-server-example.png)

  Example AI Agent prompt:
  ```
  I need you to help me plan a trip. First, search for popular destinations in {destination_country}.
  Then, check the current weather in the top 3 cities.
  Finally, find some recent news about travel restrictions for these places.
  ```

  With this setup, the AI agent can use multiple MCP tools across different servers, all using environment variables configured in your Docker deployment.

  ## Operations

  The MCP Client node supports the following operations:

  ![MCP Client Operations](./assets/operations.png)

  - **Execute Tool** - Execute a specific tool with parameters
  - **Get Prompt** - Get a specific prompt template
  - **List Prompts** - Get a list of available prompts
  - **List Resources** - Get a list of available resources from the MCP server
  - **List Tools** - Get a list of available tools
  - **Read Resource** - Read a specific resource by URI

  ### Example: List Tools Operation

  ![List Tools Example](./assets/list-tools.png)

  The List Tools operation returns all available tools from the MCP server, including their names, descriptions, and parameter schemas.

  ### Example: Execute Tool Operation

  ![Execute Tool Example](./assets/execute-tool.png)

  The Execute Tool operation allows you to execute a specific tool with parameters. Make sure to select the tool you want to execute from the dropdown menu.

  ## Using as a Tool

  This node can be used as a tool in n8n AI Agents. To enable community nodes as tools, you need to set the `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE` environment variable to `true`.

  ### Setting the Environment Variable

  **If you're using a bash/zsh shell:**
  ```bash
  export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  n8n start
  ```

  **If you're using Docker:**
  Add to your docker-compose.yml file:
  ```yaml
  environment:
    - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  **If you're using the desktop app:**
  Create a `.env` file in the n8n directory:
  ```
  N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  **If you want to set it permanently on Mac/Linux:**
  Add to your `~/.zshrc` or `~/.bash_profile`:
  ```bash
  export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  Example of an AI Agent workflow results:

  ![AI Agent Example](./assets/execute-tool-result.png)

  After setting this environment variable and restarting n8n, your MCP Client node will be available as a tool in AI Agent nodes.

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Compatible with MCP Protocol version 1.0.0 or later
  - Supports both STDIO and SSE transports for connecting to MCP servers
  - SSE transport requires a server that implements the MCP Server-Sent Events specification

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Model Context Protocol Documentation](https://modelcontextprotocol.io/docs/)
  * [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
  * [MCP Transports Overview](https://modelcontextprotocol.io/docs/concepts/transports)
  * [Using SSE in MCP](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/client/sse.ts)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Model Context Protocol (MCP) servers within workflows, allowing connection to external tools and data sources.","capabilities":["Connect to MCP servers via HTTP Streamable transport (recommended)","Connect to MCP servers via Server-Sent Events (SSE) transport (legacy)","Connect to MCP servers via Command-line/STDIO transport","Execute tools defined in MCP servers","Access resources from MCP servers","Use prompts with MCP servers","Pass environment variables to MCP servers (STDIO only)","Configure custom headers for API requests"],"authentication":"None - Uses credentials for connection configuration (URL, command, headers) rather than secret authentication","commonUseCases":["Integrating AI agents with external tools via MCP","Connecting n8n workflows to local MCP servers","Building AI agents that can use any tool through MCP","Accessing data sources through standardized MCP protocol"],"limitations":["Server-Sent Events (SSE) transport is deprecated and not recommended for new implementations","HTTP Streamable transport is the only recommended method for new projects","Environment variable passing is only supported with Command-line/STDIO transport"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


node_type: n8n-nodes-kommo.kommo
package_name: n8n-nodes-kommo
display_name: kommo
description: n8n node for Kommo Api
category: Community
development_style: declarative
version: 0.0.16
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: yatolstoy
author_github_url: git+https://github.com/yatolstoy/n8n-node-kommo.git
npm_package_name: n8n-nodes-kommo
npm_version: 0.0.16
community_fetched_at: 2026-03-25T21:19:41.741Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-kommo

  This is an n8n community node. It lets you use [Kommo](https://www.kommo.com/) your n8n workflows.

  Kommo allows you to save the history of interaction with customers, as well as automate sales department processes.

  [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)
  [Donation](#donation)

  ## Installation

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

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-kommo` 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

  It supports these operations:

  - Get account information
  - Add modify and retrieve companies
  - Add modify and retrieve contacts
  - Add change and get deals
  - Add modify and retrieve tasks
  - Add modify and retrieve notes
  - Add modify and retrieve lists
  - Add modify and retrieve list elements

  ## Credentials

  Create an Kommo account [here](https://www.kommo.com/). For 14 days free of charge.

  - Go to n8n and create a new credential Kommo. Copy OAuth Redirect URL.
  - Go to your Kommo account and create a new widget https://your-domain.kommo.com/settings/widgets/
  - Paste the previously copied OAuth Redirect URL into the "Redirect Link" field.
  - Provide the accesses required for integration (these may vary depending on your scenario for using this node)
  - Enter an arbitrary name and description of the integration. The integration name may appear in the Kommo event log if the created_by and updated_by parameters are not filled in. Description cannot be shorter than 5 characters
  - Press to Save button
  - Update your page and find your integration in installed section. Press on it.
  - In the settings of the created integration, go to the Keys and Accesses section. Copy Integration ID and Secret key
  - Go to n8n and paste the Integration ID and Secret key you received.
  - Fill Account Subdomain and click on connect my account. Window will open.
  - Select the account to connect to and click the Allow button
  - If everything was successful, you will see a green message indicating successful connection in n8n

  ## Compatibility

  Tested against n8n version 1.20.0+

  ## Usage

  In your Workflow, find the Kommo node and use as you need.
  I accept comments and suggestions in Issues repository on github or in telegram [@yatolstoy](https://t.me/yatolstoy)

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Kommo API Documentation](https://www.kommo.com/developers)

  ## Donation

  This code is developed by an enthusiastic developer on his own initiative. By donations you will force me to develop and improve this node. Thank you!

  - [Link for donation from Russia](https://yoomoney.ru/to/410012112222938)
  - [Link for donation from another countries](https://appstart.easystaff.io/easylancer/yatolstoy)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of sales and customer interaction processes by integrating with the Kommo API to manage companies, contacts, deals, tasks, notes, and lists.","capabilities":["Get account information","Add, modify, and retrieve companies","Add, modify, and retrieve contacts","Add, modify, and retrieve deals","Add, modify, and retrieve tasks","Add, modify, and retrieve notes","Add, modify, and retrieve lists","Add, modify, and retrieve list elements"],"authentication":"OAuth2","commonUseCases":["Automating sales pipeline management","Tracking customer interaction history","Managing CRM data (companies, contacts, deals, tasks)"],"limitations":["Community node (unverified code from public source)","Requires manual OAuth setup with Kommo widgets","Integration name may appear in event logs if created_by/updated_by parameters are not filled"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest"]}


node_type: n8n-nodes-puppeteer.puppeteer
package_name: n8n-nodes-puppeteer
display_name: puppeteer
description: n8n node for browser automation using Puppeteer
category: Community
development_style: declarative
version: 1.5.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: drudge
author_github_url: git+https://github.com/drudge/n8n-nodes-puppeteer.git
npm_package_name: n8n-nodes-puppeteer
npm_version: 1.5.0
community_fetched_at: 2026-03-25T21:19:41.741Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-puppeteer

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

  [n8n](https://www.n8n.io) node for browser automation using [Puppeteer](https://pptr.dev/). Execute custom scripts, capture screenshots and PDFs, scrape content, and automate web interactions using Chrome/Chromium's DevTools Protocol. Full access to Puppeteer's API plus n8n's Code node capabilities makes this node powerful for any browser automation task.

  ## How to install

  ### Community Nodes (Recommended)

  For n8n version 0.187 and later, you can install this node through the Community Nodes panel:

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-puppeteer` 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**

  ### Docker Installation (Recommended for Production)

  We provide a ready-to-use Docker setup in the `docker/` directory that includes all necessary dependencies and configurations:

  1. Clone this repository

  2. Build your Docker image:
  ```bash
  npm run docker:build
  ```

  3. Run the container:
  ```bash
  npm run docker:run
  ```

  Or for testing without persistent data:
  ```bash
  npm run docker:run:fresh
  ```

  #### Available Docker Scripts

  - `npm run docker:build` - Build the Docker image with Puppeteer node
  - `npm run docker:run` - Run n8n with persistent data volume
  - `npm run docker:run:fresh` - Run n8n without persistent data (clean start)
  - `npm run docker:run:external-browser` - Run with external browser connection example
  - `npm run docker:test` - Quick test to verify the image works
  - `npm run docker:shell` - Open a shell inside the container for debugging
  - `npm run docker:clean` - Remove the data volume
  - `npm run docker:clean:all` - Remove data volume and images

  #### Container Optimizations

  When running in Docker or Kubernetes, the node automatically detects the container environment and applies necessary Chrome launch arguments (`--no-sandbox`, `--disable-setuid-sandbox`, `--disable-dev-shm-usage`, `--disable-gpu`). This happens automatically - no configuration needed!

  A blue info banner will appear in the node when a container is detected. This can be toggled off in Options > Add Container Arguments if needed.

  ### Manual Installation

  For a standard installation without Docker:

  ```bash
  # Navigate to your n8n root directory
  cd /path/to/n8n

  # Install the package
  npm install n8n-nodes-puppeteer
  ```

  Note: By default, when Puppeteer is installed, it downloads a compatible version of Chromium. While this works, it increases installation size and may not include necessary system dependencies. For production use, we recommend either using the Docker setup above or installing system Chrome/Chromium and setting the `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true` environment variable.

  ## Browser Setup Options

  ### 1. Local Browser (Docker Setup - Recommended)

  The included Docker setup provides the most reliable way to run Chrome/Chromium with all necessary dependencies. It uses Alpine Linux's Chromium package and includes all required fonts and libraries.

  ### 2. Remote Browser (Alternative for Cloud)

  You can also connect to an external Chrome or Firefox instance using the "Browser WebSocket Endpoint" option. This approach:
  - Eliminates the need for Chrome dependencies in your n8n environment
  - Simplifies deployment and maintenance
  - Provides better resource isolation
  - Works great for cloud and containerized deployments
  - Supports Firefox via WebDriver BiDi protocol

  Options include:
  - **Managed Services**: Use [browserless](https://browserless.io) or [browsercloud](https://browsercloud.io)
  - **Self-Hosted Chrome**: Run your own [browser container](https://docs.browserless.io/docker/config):
    ```bash
    docker run -p 3000:3000 -e "TOKEN=6R0W53R135510" ghcr.io/browserless/chromium
    ```
  - **Self-Hosted Firefox**: Run Firefox with WebDriver BiDi support

  #### Configuring Remote Browser Connection

  **Per-Node Configuration:**
  In any Puppeteer node, go to Options > Add Option:
  - Add "Browser WebSocket Endpoint" and enter your WebSocket URL (e.g., `ws://browserless:3000?token=6R0W53R135510`)
  - Add "Protocol" and select:
    - **CDP (Chrome DevTools Protocol)** - for Chrome/Chromium (default)
    - **WebDriver BiDi** - for Firefox

  **Global Configuration via Environment Variables (Recommended):**

  Instead of configuring each node individually, you can set environment variables:

  ```bash
  # For Chrome/Chromium
  docker run -it -p 5678:5678 \
    -e PUPPETEER_BROWSER_WS_ENDPOINT=ws://browserless:3000 \
    -e PUPPETEER_PROTOCOL=cdp \
    n8n-puppeteer

  # For Firefox
  docker run -it -p 5678:5678 \
    -e PUPPETEER_BROWSER_WS_ENDPOINT=ws://firefox:4444 \
    -e PUPPETEER_PROTOCOL=webDriverBiDi \
    n8n-puppeteer
  ```

  Or with Docker Compose:

  ```yaml
  version: '3.8'
  services:
    n8n:
      image: n8n-puppeteer
      environment:
        - PUPPETEER_BROWSER_WS_ENDPOINT=ws://browserless:3000
        - PUPPETEER_PROTOCOL=cdp
      ports:
        - "5678:5678"
    
    browserless:
      image: browserless/chrome
      ports:
        - "3000:3000"
  ```

  When environment variables are set, a blue info banner will appear showing the configured endpoint. Individual nodes can still override these settings if needed.

  ## Troubleshooting

  If you see errors about missing shared libraries (like `libgobject-2.0.so.0` or `libnss3.so`), either:

  1. Install the missing Chrome dependencies
  2. Switch to using a remote browser with the WebSocket endpoint option

  For additional help, see [Puppeteer's troubleshooting guide](https://pptr.dev/troubleshooting).

  ## Node Reference

  - **Operations**

    - Get the full HTML contents of the page
    - Capture the contents of a page as a PDF document
    - Capture screenshot of all or part of the page
    - Execute custom script to interact with the page

  - **Options**

    - All Operations

      - **Batch Size**: Maximum number of pages to open simultaneously. More pages will consume more memory and CPU.
      - **Browser WebSocket Endpoint**: The WebSocket URL of the browser to connect to. When configured, puppeteer will skip the browser launch and connect to the browser instance. Can also be set globally via environment variables: `PUPPETEER_BROWSER_WS_ENDPOINT` or `PUPPETEER_WS_ENDPOINT`.
      - **Protocol**: The protocol to use when connecting to the browser. Options:
        - **CDP (Chrome DevTools Protocol)** - Default for Chrome/Chromium
        - **WebDriver BiDi** - For Firefox and cross-browser automation
        Can also be set globally via environment variable: `PUPPETEER_PROTOCOL`.
      - **Emulate Device**: Allows you to specify a [device](https://github.com/puppeteer/puppeteer/blob/main/src/common/DeviceDescriptors.ts) to emulate when requesting the page.
      - **Executable Path**: A path where Puppeteer expects to find the bundled browser. Has no effect when 'Browser WebSocket Endpoint' is set.
      - **Extra Headers**: Allows you add additional headers when requesting the page.
      - **Timeout**: Allows you to specify the maximum navigation time in milliseconds. You can pass 0 to disable the timeout entirely.
      - **Protocol Timeout**: Maximum time in milliseconds to wait for a protocol response. Pass 0 to disable timeout.
      - **Wait Until**: Allows you to change how Puppeteer considers navigation completed.
        - `load`: The load event is fired.
        - `domcontentloaded`: The DOMContentLoaded event is fired.
        - `networkidle0`: No more than 0 connections for at least 500 ms.
        - `networkidle2`: No more than 2 connections for at least 500 ms.
      - **Page Caching**: Allows you to toggle whether pages should be cached when requesting.
      - **Headless mode**: Allows you to change whether to run browser runs in headless mode or not.
      - **Use Chrome Headless Shell**: Whether to run browser in headless shell mode. Defaults to false. Headless mode must be enabled. chrome-headless-shell must be in $PATH.
      - **Stealth mode**: When enabled, applies various techniques to make detection of headless Puppeteer harder. Powered by [puppeteer-extra-plugin-stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth).
      - **Human typing mode**: Gives page the function `.typeHuman()` which "humanizes" the writing of input elements. Includes configurable options for typing speed, typos, and backspace delays.
      - **Launch Arguments**: Allows you to specify additional command line arguments passed to the browser instance.
      - **Capture Downloads**: When enabled, any files downloaded during script execution (via clicks, direct downloads, etc.) will be automatically captured and returned as binary data in the node output. Perfect for downloading PDFs, images, or other files triggered by user interactions. Files are automatically cleaned up after capture.
      - **Add Container Arguments**: Automatically adds recommended arguments for container environments (`--no-sandbox`, `--disable-setuid-sandbox`, `--disable-dev-shm-usage`, `--disable-gpu`). Container environments are auto-detected by default. Disable only if you experience launch issues.
      - **Proxy Server**: Allows Puppeteer to use a custom proxy configuration. You can specify a custom proxy configuration in three ways:
        By providing a semi-colon-separated mapping of list scheme to url/port pairs.
        For example, you can specify:

              http=foopy:80;ftp=foopy2

        to use HTTP proxy "foopy:80" for http URLs and HTTP proxy "foopy2:80" for ftp URLs.

        By providing a single uri with optional port to use for all URLs.
        For example:

              foopy:8080

        will use the proxy at foopy:8080 for all traffic.

        By using the special "direct://" value.

              direct://" will cause all connections to not use a proxy.

    - Get PDF
      - **File Name**: Allows you to specify the filename of the output file.
      - **Page Ranges** field: Allows you to specify paper ranges to print, e.g. 1-5, 8, 11-13.
      - **Scale**: Allows you to scale the rendering of the web page. Amount must be between 0.1 and 2
      - **Prefer CSS Page Size**: Give any CSS @page size declared in the page priority over what is declared in the width or height or format option.
      - **Format**: Allows you to specify the paper format types when printing a PDF. eg: Letter, A4.
      - **Height**: Allows you to set the height of paper. You can pass in a number or a string with a unit.
      - **Width**: Allows you to set the width of paper. You can pass in a number or a string with a unit.
      - **Landscape**: Allows you to control whether to show the header and footer
      - **Margin**: Allows you to specify top, left, right, and bottom margin.
      - **Display Header/Footer**: Allows you to specify whether to show the header and footer.
      - **Header Template**: Allows you to specify the HTML template for the print header. Should be valid HTML with the following classes used to inject values into them:
        - `date`: Formatted print date
        - `title`: Document title
        - `url`: Document location
        - `pageNumber` Current page number
        - `totalPages` Total pages in the document
      - **Footer Template**: Allows you to specify the HTML template for the print footer. Should be valid HTML with the following classes used to inject values into them:
        - `date`: Formatted print date
        - `title`: Document title
        - `url`: Document location
        - `pageNumber` Current page number
        - `totalPages` Total pages in the document
      - **Transparent Background**: Allows you to hide the default white background and allows generate PDFs with transparency.
      - **Background Graphic**: Allows you to include background graphics.
    - Get Screenshot
      - **File Name**: Allows you to specify the filename of the output file.
      - **Type** field: Allows you to specify the image format of the output file:
        - JPEG
        - PNG
        - WebP
      - **Quality**: Allows you to specify the quality of the image.
        - Accepts a value between 0-100.
        - Not applicable to PNG images.
      - **Full Page**: Allows you to capture a screen of the full scrollable content.

  ## Custom Scripts

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

  Before script execution, you can configure browser behavior using the operation's options like:

  - Emulate specific devices
  - Set custom headers
  - Enable stealth mode to avoid detection
  - Configure proxy settings
  - Set page load timeouts
  - And more

  Access Puppeteer-specific objects using:

  - `$page` - Current page instance
  - `$browser` - Browser instance
  - `$puppeteer` - Puppeteer library
  - `$input.query` - Input query from AI agents (when used as a tool)

  Plus all special variables and methods from the Code node are available. For a complete reference, see the [n8n documentation](https://docs.n8n.io/code-examples/methods-variables-reference/). Just like n8n's Code node, anything you `console.log` will be shown in the browser's console during test mode or in stdout when configured.

  ### AI Agent Integration

  When used as a tool by n8n AI agents, this node supports two powerful workflows:

  **1. AI-Generated Scripts**: AI agents can dynamically generate the entire Puppeteer script using `$fromAI()` on the Script Code parameter. The AI analyzes the task and writes the appropriate Puppeteer code to accomplish it.

  ```javascript
  // AI agent generates script dynamically based on the task
  scriptCode: $fromAI('code', 'Generate a Puppeteer script to extract product prices from the homepage')
  ```

  **2. Reusable Scripts with AI Input**: Write a reusable script that accepts dynamic input from AI agents via the Query parameter. Access the input using `$input.query` in your script.

  ```javascript
  // Reusable script that processes AI-provided input
  const url = $input.query || 'https://example.com';
  await $page.goto(url);

  const data = await $page.evaluate(() => {
    return document.querySelector('h1').textContent;
  });

  return [{ url, title: data }];
  ```

  ```javascript
  // AI agent provides input dynamically
  query: $fromAI('url', 'The website URL to scrape')
  ```

  This makes the node extremely flexible for AI-powered automation - agents can either write custom scripts for specific tasks or pass data to pre-built, reusable scripts.

  ### Basic

  ```javascript
  // Navigate to an IP lookup service
  await $page.goto("https://httpbin.org/ip");

  // Extract the IP address from the page content
  const ipData = await $page.evaluate(() => {
    const response = document.body.innerText;
    const parsed = JSON.parse(response);
    return parsed.origin; // Extract the 'origin' field, which typically contains the IP address
  });

  console.log("Hello, world!");

  console.log("IP Address", ipData);

  // Return the result in the required format (array)
  return [{ ip: ipData, ...$json }];
  ```

  ### Storing and re-using cookies

  #### Node 1

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

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

  // Store cookies for later use
  const cookies = await $page.cookies();

  return [{ cookies }];
  ```

  #### Node 2

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

  // Restore cookies
  await $page.setCookie(...cookies);

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

  // Perform authenticated operations
  const data = await $page.evaluate(() => {
    return document.querySelector(".protected-content").textContent;
  });

  return [{ data }];
  ```

  ### Working with Binary Data

  ```javascript
  await $page.goto("https://www.google.com");
  const imageData = await $page.screenshot({ type: "png", encoding: "base64" });
  return [
    {
      binary: {
        screenshot: {
          data: imageData,
          mimeType: "image/png",
          fileName: "screenshot.png",
        },
      },
    },
  ];
  ```

  ### Downloading Files

  The Capture Downloads option makes it easy to download files triggered by user interactions or scripts:

  ```javascript
  // Navigate to a page with downloadable files
  await $page.goto('https://example.com/downloads');

  // Click a download button - the file will be automatically captured
  await $page.click('#download-pdf-button');

  // Wait a moment for the download to complete
  await $page.waitForTimeout(2000);

  // Return the result - downloaded files will be attached as binary data
  return [{ json: { success: true } }];
  ```

  When the "Capture Downloads" option is enabled:
  - All files downloaded during script execution are automatically captured
  - Files are returned as binary data in the node output
  - Multiple files are supported - each file gets its own binary property
  - Files are automatically cleaned up after capture
  - Works with direct downloads, click-triggered downloads, and programmatic downloads

  This is particularly useful for:
  - Downloading PDFs from web applications
  - Capturing generated reports
  - Saving images or documents triggered by user actions
  - Testing download functionality in automated workflows

  ## Environment Variables

  The following environment variables can be used to configure Puppeteer globally:

  - **`PUPPETEER_BROWSER_WS_ENDPOINT`** or **`PUPPETEER_WS_ENDPOINT`**: WebSocket URL of the browser to connect to. This eliminates the need to configure each node individually.
  - **`PUPPETEER_PROTOCOL`**: Protocol to use (`cdp` or `webDriverBiDi`). Useful for Firefox setups.
  - **`PUPPETEER_SKIP_CHROMIUM_DOWNLOAD`**: Set to `true` to skip downloading Chromium during installation.
  - **`PUPPETEER_EXECUTABLE_PATH`**: Path to the browser executable.

  Example:
  ```bash
  docker run -it -p 5678:5678 \
    -e PUPPETEER_BROWSER_WS_ENDPOINT=ws://browserless:3000 \
    -e PUPPETEER_PROTOCOL=cdp \
    n8n-puppeteer
  ```

  Node-level settings always override environment variables when specified.

  ## Firefox Support

  This node supports Firefox through WebDriver BiDi protocol. To use Firefox:

  1. Set up a Firefox instance with WebDriver BiDi enabled
  2. Configure the connection either:
     - **Per-node**: Options > Browser WebSocket Endpoint + Protocol (WebDriver BiDi)
     - **Globally**: Environment variables `PUPPETEER_BROWSER_WS_ENDPOINT` + `PUPPETEER_PROTOCOL=webDriverBiDi`
  3. Execute your workflows with Firefox!

  ## Screenshots

  ### Run Custom Script

  ![](images/script.png)

  ### Get Page Content

  ![](images/content.png)

  ### Get Screenshot

  ![](images/screenshot.png)

  ## License

  MIT License

  Copyright (c) 2022-2024 Nicholas Penree <nick@penree.com>

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.

ai_documentation_summary:
  {"purpose":"A n8n node for browser automation using Puppeteer that enables executing custom scripts, capturing screenshots and PDFs, scraping content, and automating web interactions via Chrome/Chromium's DevTools Protocol.","capabilities":["Execute custom scripts on web pages","Capture full page screenshots","Capture partial page screenshots","Export page content as PDF","Get full HTML contents of a page","Scrape web content","Automate web interactions","Full Puppeteer API access","Support for Chrome DevTools Protocol (CDP)","Support for Firefox via WebDriver BiDi"],"authentication":"None - Uses local Chromium or remote browser WebSocket endpoints (e.g., browserless) with optional token authentication for remote services","commonUseCases":["Web scraping and data extraction","Automated testing and validation","Screenshot generation for documentation","PDF report generation from web pages","Cloud deployment without local browser dependencies"],"limitations":["Requires Chromium or Firefox dependencies when running locally (unless using remote browser)","Local installation increases package size and may require system dependencies","Remote browser setups require external service configuration or self-hosted browser instances","Containerized environments require specific launch arguments for Chrome"],"relatedNodes":["n8n Code node","n8n HTTP Request node","n8n Webhook node"]}


node_type: n8n-nodes-chatwoot.chatwoot
package_name: n8n-nodes-chatwoot
display_name: chatwoot
description: This is an n8n community node. It lets you use ChatWoot in your n8n workflows.
category: Community
development_style: declarative
version: 0.1.40
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: hugodeco
author_github_url: git+https://github.com/sufficit/n8n-nodes-chatwoot.git
npm_package_name: n8n-nodes-chatwoot
npm_version: 0.1.40
community_fetched_at: 2026-03-25T21:19:41.742Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-chatwoot

  This is an n8n community node. It lets you use ChatWoot 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)  
  [Credentials](#credentials)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [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.

  ## Operations

  _List the operations supported by your node._

  ## Credentials

  _If users need to authenticate with the app/service, provide details here. You should include prerequisites (such as signing up with the service), available authentication methods, and how to set them up._

  ## Compatibility

  Tested on N8N > v0.210 (Success)

  ## Usage

  _This is an optional section. Use it to help users with any difficult or confusing aspects of the node._

  _By the time users are looking for community nodes, they probably already know n8n basics. But if you expect new users, you can link to the [Try it out](https://docs.n8n.io/try-it-out/) documentation to help them get started._

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * _Link to app/service documentation._

  ## Version history

  _This is another optional section. If your node has multiple versions, include a short description of available versions and what changed, as well as any compatibility impact._

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Chatwoot, allowing users to interact with Chatwoot's support platform directly within n8n workflows.","capabilities":["Connect to Chatwoot instances","Send messages to Chatwoot","Retrieve messages from Chatwoot","Create tickets in Chatwoot","Update ticket status in Chatwoot"],"authentication":"API key required","commonUseCases":["Automating customer support responses","Syncing chat messages between platforms","Triggering workflows based on Chatwoot events","Managing support tickets programmatically"],"limitations":["Community node (not official n8n node)","Requires manual setup of Chatwoot credentials","May require additional configuration for advanced features"],"relatedNodes":["n8n-nodes-chatwoot.chatwoot","n8n-nodes-chatwoot.chatwootTrigger","n8n-nodes-chatwoot.chatwootWebhook"]}


node_type: n8n-nodes-rd-station-crm.rdstationcrm
package_name: n8n-nodes-rd-station-crm
display_name: rdstationcrm
description: Nós personalizados do n8n para integração com a API do RD Station CRM (v1)
category: Community
development_style: declarative
version: 1.3.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: pexuleco
author_github_url: git+https://github.com/rdstation/n8n-nodes-rd-station-crm.git
npm_package_name: n8n-nodes-rd-station-crm
npm_version: 1.3.1
community_fetched_at: 2026-03-25T21:19:41.743Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-rd-station-crm

  Nós personalizados do n8n para integração com a API do RD Station CRM (v1).

  ## 🚀 Funcionalidades

  Este pacote fornece nós personalizados para o n8n que permitem integração completa com a API do RD Station CRM, incluindo:

  ### 📋 Nós Disponíveis

  1. **RD Station CRM Contatos** - Gerenciamento de contatos
  2. **RD Station CRM Negócios** - Operações com negócios/deals
  3. **RD Station CRM Tarefas** - Gestão de tarefas
  4. **RD Station CRM Notas** - Criação e gerenciamento de notas
  5. **RD Station CRM Empresas** - Operações com empresas
  6. **RD Station CRM Produtos de Negócio** - Gestão de produtos em negócios
  7. **RD Station CRM Usuários** - Informações de usuários
  8. **RD Station CRM Times** - Gestão de equipes
  9. **RD Station CRM Pipelines** - Operações com funis de vendas
  10. **RD Station CRM Campanhas** - Gestão de campanhas
  11. **RD Station CRM Fontes** - Informações sobre fontes de leads
  12. **RD Station CRM Motivos de Perda** - Gestão de motivos de perda
  13. **RD Station CRM Webhooks** - Configuração de webhooks

  ### 🔑 Credenciais

  - **RD Station CRM API** - Autenticação via token de API

  ## 📦 Instalação

  ### Instalação via n8n Community Nodes

  1. Acesse as configurações do n8n
  2. Vá para "Community Nodes"
  3. Clique em "Install"
  4. Digite: `n8n-nodes-rd-station-crm`
  5. Clique em "Install"

  ### Instalação Manual

  ```bash
  # Clone o repositório
  git clone https://github.com/rdstation/n8n-nodes-rd-station-crm.git
  cd n8n-nodes-rd-station-crm

  # Instale as dependências
  npm install

  # Compile o projeto
  npm run build

  # Instale globalmente (opcional)
  npm install -g .
  ```

  ## 🔧 Configuração

  ### Obtendo o Token de API

  1. Acesse sua conta do RD Station CRM
  2. Vá para Configurações > Integrações > API
  3. Gere um novo token de API
  4. Copie o token gerado

  ### Configurando as Credenciais no n8n

  1. No n8n, vá para "Credentials"
  2. Clique em "Add Credential"
  3. Selecione "RD Station CRM API"
  4. Cole seu token de API no campo correspondente
  5. Teste a conexão e salve

  ## 🛠️ Desenvolvimento

  ### Estrutura do Projeto

  ```
  n8n-nodes-rd-station-crm/
  ├── credentials/           # Definições de credenciais
  │   └── RdStationCrmApi.credentials.ts
  ├── nodes/                # Nós do n8n
  │   ├── RdStationCrmContacts.node.ts
  │   ├── RdStationCrmDeals.node.ts
  │   ├── RdStationCrmTasks.node.ts
  │   ├── RdStationCrmNotes.node.ts
  │   ├── RdStationCrmCompanies.node.ts
  │   ├── RdStationCrmDealProducts.node.ts
  │   ├── RdStationCrmUsers.node.ts
  │   ├── RdStationCrmTeams.node.ts
  │   ├── RdStationCrmPipelines.node.ts
  │   ├── RdStationCrmCampaigns.node.ts
  │   ├── RdStationCrmSources.node.ts
  │   ├── RdStationCrmLossReasons.node.ts
  │   ├── RdStationCrmWebhooks.node.ts
  │   └── rdstation.svg      # Ícone dos nós
  ├── dist/                 # Arquivos compilados
  ├── index.ts              # Arquivo principal de exportação
  ├── package.json          # Configurações do pacote
  ├── tsconfig.json         # Configurações do TypeScript
  └── gulpfile.js          # Tarefas de build
  ```

  ### Scripts Disponíveis

  ```bash
  # Compilar o projeto
  npm run build

  # Modo de desenvolvimento (watch)
  npm run dev

  # Executar linter
  npm run lint

  # Corrigir problemas de linting
  npm run lintfix

  # Formatar código
  npm run format
  ```

  ## 🔄 Correções Implementadas

  ### Versão 1.0.2 - Correções de Carregamento

  **Problemas Corrigidos:**

  1. **Inconsistência no package.json**: Removidos nós inexistentes (`RdStationCrmFunnels`, `RdStationCrmStages`) e adicionado o nó `RdStationCrmPipelines` que estava faltando
  2. **Arquivo index.js otimizado**: Simplificado para apenas redirecionar para `dist/index.js`
  3. **Configuração TypeScript melhorada**: Adicionadas opções para melhor compatibilidade
  4. **Estrutura de diretórios corrigida**: Removidos subdiretórios desnecessários em `dist/nodes`
  5. **Gulpfile otimizado**: Corrigida a cópia de ícones SVG

  **Erro Resolvido:**

  ```
  Error loading package "n8n-nodes-rd-station-crm": The "paths[1]" argument must be of type string. Received an instance of Object
  ```

  **Alterações Técnicas:**

  - Corrigida a exportação de `nodeTypes` e `credentialTypes` no arquivo principal
  - Melhorada a resolução de módulos no TypeScript
  - Removidas estruturas de diretórios duplicadas
  - Otimizada a configuração do Gulp para cópia de ícones

  ## 📚 Documentação da API

  Para mais informações sobre a API do RD Station CRM, consulte:

  - [Documentação Oficial da API](https://developers.rdstation.com/en/reference)
  - [Guia de Autenticação](https://developers.rdstation.com/en/authentication)

  ## 🤝 Contribuição

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
  3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
  4. Push para a branch (`git push origin feature/AmazingFeature`)
  5. Abra um Pull Request

  ## 📄 Licença

  Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.

  ## 🆘 Suporte

  Se você encontrar problemas ou tiver dúvidas:

  1. Verifique se o token de API está correto
  2. Confirme se a versão do n8n é compatível
  3. Consulte os logs do n8n para mais detalhes sobre erros
  4. Abra uma issue no repositório do GitHub

  ## 📈 Versões

  - **1.3.1** - Correção completa da estrutura de campos de email
    - **Emails**: Corrigida estrutura de campos de email nos nós Contatos e Negociações
    - Adicionados campos `type` (personal/work/other) e `primary` (boolean) para emails
    - Implementado processamento correto de emails com valores padrão
    - Garantida compatibilidade com a API oficial do RD Station CRM v1
  - **1.3.0** - Correção completa de todos os nós seguindo a documentação oficial da API
    - **Contatos**: Corrigida estrutura de requisições, adicionados campos customizados e base legal
    - **Organizações**: Corrigido endpoint para `/organizations`, adicionados campos customizados
    - **Negociações**: Mantidas correções da v1.2.0
    - Todos os nós agora seguem exatamente a estrutura da API oficial do RD Station CRM v1
    - Padronizada estrutura de dados com objetos aninhados (ex: `{ contact: {...} }`)
    - Corrigidos tipos de campos e valores padrão
    - Adicionados campos obrigatórios faltantes
    - Melhoradas descrições de todos os campos
  - **1.2.0** - Reescrita completa do nó de Negociações seguindo exatamente a documentação oficial da API
    - Corrigida estrutura de requisições para seguir exatamente o formato da API oficial
    - Corrigidos tipos de campos (boolean vs string) conforme documentação
    - Corrigido tratamento do campo `win` com valores true/false/null
    - Corrigido formato de datas para yyyy-mm-dd
    - Corrigida estrutura de contatos existentes (usando `_id` em vez de apenas `id`)
    - Adicionado suporte para base legal em contatos
    - Separado campo `deal_stage_id` no update conforme documentação
    - Melhoradas descrições de todos os campos seguindo a documentação oficial
    - Corrigidos filtros de período com validação booleana adequada
  - **1.1.0** - Atualização completa do nó de Negociações (Deals) seguindo a documentação oficial da API
    - Adicionados todos os parâmetros de query para listagem de negociações
    - Implementados filtros de período (fechamento, criação, previsão)
    - Adicionado suporte completo para campos customizados
    - Implementada criação de novos contatos junto com a negociação
    - Adicionado suporte para associar contatos existentes
    - Implementado gerenciamento de produtos na negociação
    - Adicionados campos de campanha, fonte e organização
    - Melhorada a estrutura de dados seguindo exatamente a API oficial
  - **1.0.9** - Correção na estrutura do package.json para compatibilidade com n8n
  - **1.0.7** - Correções de sintaxe no package.json
  - **1.0.6** - Correções de carregamento e otimizações finais
  - **1.0.5** - Versão com nome alternativo para compatibilidade
  - **1.0.4** - Correções de carregamento e otimizações
  - **1.0.3** - Correções de carregamento e otimizações finais
  - **1.0.2** - Correções de carregamento e otimizações
  - **1.0.1** - Versão inicial com todos os nós básicos
  - **1.0.0** - Primeira versão estável

  ## 🚀 Como Publicar no NPM

  Para desenvolvedores que desejam publicar este pacote:

  ### Pré-requisitos

  1. Conta no [npmjs.com](https://www.npmjs.com/)
  2. Login no npm: `npm login`

  ### Opção 1: Script Automático (Windows)

  ```bash
  # Execute o script de publicação
  .\publish.bat
  # ou
  .\publish.ps1
  ```

  ### Opção 2: Manual

  ```bash
  # 1. Fazer build
  npm run build

  # 2. Verificar conteúdo
  npm pack --dry-run

  # 3. Publicar
  npm publish
  ```

  ### Verificação Pós-Publicação

  - Acesse: https://www.npmjs.com/package/n8n-nodes-rd-station-crm
  - Teste a instalação: `npm install n8n-nodes-rd-station-crm`

ai_documentation_summary:
  {"purpose":"A custom n8n node package providing full integration with the RD Station CRM (v1) API for managing CRM data, tasks, and sales pipelines.","capabilities":["Manage contacts","Manage deals (businesses)","Manage tasks","Create and manage notes","Manage companies","Manage deal products","Manage users","Manage teams","Manage sales pipelines","Manage campaigns"],"authentication":"API Token","commonUseCases":["Automating CRM data entry from other sources","Syncing contacts and deals between systems","Automating task assignment and tracking","Setting up automated notifications via webhooks","Managing sales pipelines and campaigns"],"limitations":["Supports only RD Station CRM API v1","Requires manual installation via Community Nodes or manual npm build"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


node_type: n8n-nodes-instagram-token.instagramtoken
package_name: n8n-nodes-instagram-token
display_name: instagramtoken
description: N8N nodes for Instagram API integration with access token authentication
category: Community
development_style: declarative
version: 2.4.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: robsonmilioli
author_github_url: git+https://github.com/r-milioli/n8n-nodes-insta-accessToken.git
npm_package_name: n8n-nodes-instagram-token
npm_version: 2.4.2
community_fetched_at: 2026-03-25T21:19:41.744Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-instagram-token

  ![Instagram Banner](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)
  [![npm version](https://img.shields.io/npm/v/n8n-nodes-instagram-token.svg)](https://www.npmjs.com/package/n8n-nodes-instagram-token)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![n8n](https://img.shields.io/badge/n8n-community-FF6D5A?logo=n8n)](https://n8n.io)

  Professional N8N community nodes for Instagram API integration with **access token authentication**.

  > **📌 Fork Notice**: This is a fork of [n8n-nodes-instagram-integrations](https://www.npmjs.com/package/n8n-nodes-instagram-integrations) with enhanced token management and additional features.

  [Installation](#installation) • [Features](#features) • [Quick Start](#quick-start) • [Documentation](#documentation)

  ---

  ## 🔄 What's Different from the Original?

  This fork includes several enhancements over the original [n8n-nodes-instagram-integrations](https://www.npmjs.com/package/n8n-nodes-instagram-integrations):

  ### ✨ **New Features:**
  - **Comment Management** - Reply to comments automatically, hide/unhide, and delete comments
  - **Enhanced Token Management** - Automatic refresh with smart fallback
  - **Better Error Handling** - More detailed debugging and logs
  - **Format Validation** - Proper audio format support (AAC, M4A, WAV, MP4)
  - **Performance Improvements** - Token caching and optimization

  ### 🔧 **Technical Improvements:**
  - **Access Token API** - Simplified authentication method
  - **Automatic Token Refresh** - No more "refreshToken is required" errors
  - **Smart Fallback** - Uses original token if refresh fails
  - **Enhanced Logging** - Better debugging capabilities

  ---

  ## 🚀 Features

  ### 🔐 Access Token Management
  - **Automatic token refresh** - Tokens refresh automatically before expiration
  - **Smart fallback** - Uses original token if refresh fails
  - **No more "refreshToken is required" errors** - Intelligent token lifecycle management
  - **Access Token API** - Simple authentication with automatic refresh
  - **Auto-discovery** - Automatically fetches Instagram Business Account ID

  ### 📬 Instagram Messaging
  - **Text Messages** - Send formatted text with up to 1000 characters
  - **Image Messages** - Share images via public HTTPS URLs
  - **Audio Messages** - Send voice messages (AAC, M4A, WAV, MP4 formats)
  - **Video Messages** - Share video content
  - **Media Upload** - Upload and publish photos, videos, reels, and stories
  - **Private Replies** - Send private replies to commenters directly (with optional quick replies)

  ### 💬 Interactive Templates
  - **Button Templates** - Up to 3 action buttons (web links or postbacks)
  - **Generic Templates** - Carousel cards with images and buttons
  - **Quick Replies** - Up to 13 quick response options

  ### 📝 Content Management
  - **Create Posts** - Single images, videos, and carousel posts
  - **Create Reels** - Short-form video content
  - **Create Stories** - Temporary 24-hour content
  - **Comment Management** - Reply to comments, hide/unhide comments, and delete comments

  ### 🔔 Webhook Events
  - **Message Events** - Incoming messages, postbacks, quick replies
  - **Comment Events** - New comments and mentions
  - **Opt-in Events** - User subscription confirmations

  ---

  ## 📋 Prerequisites

  - **n8n** (v1.0.0 or higher)
  - **Instagram Business Account** with Messaging API access
  - **Facebook App** with Instagram Basic Display API
  - **Webhook URL** (for receiving events)

  ---

  ## 🚀 Installation

  ### Method 1: Community Nodes (Recommended)
  1. Go to **Settings > Community Nodes** in n8n
  2. Click **Install a community node**
  3. Enter: `n8n-nodes-instagram-token`
  4. Click **Install**

  ### Method 2: Manual Installation
  ```bash
  npm install n8n-nodes-instagram-token
  ```

  ---

  ## ⚡ Quick Start

  ### 1. Configure Credentials
  1. Create **Instagram Access Token API** credential
  2. Enter your **Access Token** (long-lived recommended)
  3. Enable **Auto Refresh Token** (recommended)
  4. Set **Refresh Threshold** to 7 days

  ### 2. Create Your First Workflow
  1. Add **Instagram** node
  2. Select **Resource**: `Message`
  3. Select **Operation**: `Send Text`
  4. Configure your message
  5. **Execute** the workflow

  ### 3. Set Up Webhooks (Optional)
  1. Add **Instagram Trigger** node
  2. Configure webhook URL
  3. Set up event handling

  ---

  ## 📚 Documentation

  - **[API Reference](API_REFERENCE.md)** - Complete API documentation
  - **[Authentication Guide](AUTHENTICATION_GUIDE.md)** - Setup and configuration
  - **[Migration Guide](docs/MIGRATION_HYBRID_TOKEN.md)** - Migrating from OAuth2
  - **[Quick Start](docs/QUICKSTART.md)** - Getting started guide

  ---

  ## 🔧 Configuration

  ### Instagram Access Token API
  - **Access Token**: Your Instagram access token
  - **Instagram Business Account ID**: Auto-discovered if not provided
  - **Auto Refresh Token**: Enable automatic token refresh
  - **Refresh Threshold**: Days before expiration (default: 7)
  - **Webhook Verify Token**: Optional webhook verification

  ---

  # What's New in 2.4.1

  - ✅ **Hide/Unhide Comments** - Hide or unhide comments on your posts
  - ✅ **Delete Comments** - Delete comments from your posts
  - ✅ **Enhanced Comment Management** - Complete control over comment moderation

  ### v2.2.0 Highlights

  - ✅ **Private Replies** - Send private replies with plain text or quick replies directly from the message node
  - ✅ **Authentication Updates** - Support `Authorization: Bearer` header for compatible API scenarios

  ### v2.0.1 Highlights

  - ✅ **Comment Management** - Reply to comments automatically
  - ✅ **Access Token System** - Simplified authentication
  - ✅ **Enhanced Error Handling** - Better debugging and logs
  - ✅ **Format Support** - Proper audio format validation
  - ✅ **Performance Improvements** - Token caching and optimization

  ---

  ## 🤝 Support

  - **Issues**: [GitHub Issues](https://github.com/r-milioli/n8n-nodes-insta-accessToken/issues)
  - **Documentation**: [GitHub Wiki](https://github.com/r-milioli/n8n-nodes-insta-accessToken/wiki)
  - **Community**: [n8n Community Forum](https://community.n8n.io)

  ---

  ## 📄 License

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

  ---

  ## 🙏 Acknowledgments

  - **Original Authors** - [n8n-nodes-instagram-integrations](https://www.npmjs.com/package/n8n-nodes-instagram-integrations) for the foundation
  - **n8n Team** - For the amazing workflow automation platform
  - **Instagram API** - For providing comprehensive messaging capabilities
  - **Community** - For feedback and contributions

  ---

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

ai_documentation_summary:
  {"purpose":"A community node package providing n8n integration with the Instagram API, enabling content management, messaging, and event handling through access token authentication.","capabilities":["Send text, image, audio, and video messages","Reply to comments and manage comment visibility","Create posts, reels, and stories","Upload and publish media content","Configure interactive templates with buttons and quick replies","Receive webhook events for messages and comments","Automatic access token refresh with smart fallback","Auto-discovery of Instagram Business Account ID"],"authentication":"Access Token (OAuth2 migration available)","commonUseCases":["Automated social media engagement and commenting","Broadcasting announcements and promotional content","Receiving and processing Instagram message events","Moderating comments on posts","Sending multimedia messages to users"],"limitations":["Requires an Instagram Business Account with Messaging API access","Requires a Facebook App with Instagram Basic Display API","Webhook functionality requires a configured webhook URL","Some features may be limited by Instagram's API rate limits and business account permissions"],"relatedNodes":["Instagram Trigger","Instagram Message","Instagram Post","Instagram Media","Instagram Reel"]}


node_type: n8n-nodes-efibank.efibank
package_name: n8n-nodes-efibank
display_name: efibank
category: Community
development_style: declarative
version: 1.0.10
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: consultoria-efi
author_github_url: git+https://github.com/efipay/n8n-nodes-efibank.git
npm_package_name: n8n-nodes-efibank
npm_version: 1.0.10
community_fetched_at: 2026-03-25T21:19:41.745Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Nó personalizado para integração com as APIs Cobranças e Pix do Efi Bank, permitindo operações de pagamentos, recebimentos e gerenciamento de transações financeiras.

npm_readme:
  ![Banner image](https://gnetbr.com/BJgSIUhlYs)

  # n8n-nodes-efibank

  O n8n-nodes-efibank é um nó personalizado para o n8n que simplifica a integração com a API Cobranças e a API Pix do Efibank, permitindo a automação de fluxos financeiros, como pagamentos, recebimentos e transações.

  [Requisitos](#requisitos) 

  [Instalação](#instalação)

  [Instalação do nó](#instalação-do-nó)  

  [Configuração do nó](#configuração-do-nó)  

  ## Requisitos

  ### Versão do Node.js
  Este nó personalizado requer uma versão do Node.js compatível com o n8n. A versão mínima necessária é **18.17**, e a versão máxima suportada é **22**.

  ## Instalação

  Para instalar o nó em uma instalação existente do n8n, utilize uma das opções abaixo:

  ### Instalação via NPM

  ```bash
  $ npm install n8n-nodes-efibank
  ```

  ### Instalação via [GIT](https://github.com/efipay/n8n-nodes-efibank)

  ```bash
  $ git clone https://github.com/efipay/n8n-nodes-efibank.git
  ```


  ## Instalação do nó

  Para instalar corretamente o nó personalizado, siga estas etapas:

  1. Instale as dependências:
  ```bash
  npm install
  ```

  2. Compile o código:
  ```bash
  npm run build
  ```

  3. Configure o link para uso local (desenvolvimento):
  ```bash
  npm link
  ```

  4. Inicie o n8n:
  ```bash
  n8n
  ```

  ## Configuração do nó

  No ambiente do <strong>n8n</strong>, acesse seu workflow e busque pelos nós **Efí Bank Cobranças** e **Efí Bank Pix**

  ### Configuração do Nó da API Cobranças
  Na interface do n8n, configure suas credenciais:
  1. Selecione o ambiente (Homologação/Produção);
  2. Configure as credenciais Client ID e Client Secret para os dois ambientes. Para obter as credencias da aplicação, você pode acessar [esse tutorial](https://dev.efipay.com.br/docs/api-cobrancas/credenciais#obtendo-as-credenciais-da-aplica%C3%A7%C3%A3o);
  3. Clique em Save.

  ### Configuração do Nó da API Pix
  Na interface do n8n, configure suas credenciais:
  1. Selecione o ambiente (Homologação/Produção);
  2. Configure as credenciais Client ID e Client Secret para os dois ambientes. Para obter as credencias da aplicação, você pode acessar [esse tutorial](https://dev.efipay.com.br/docs/api-cobrancas/credenciais#obtendo-as-credenciais-da-aplica%C3%A7%C3%A3o);
  3. Configure o certificado:
     - Gere um certificado em sua conta Efí, seguindo [este guia](https://sejaefi.com.br/central-de-ajuda/api/como-gerar-o-certificado-para-usar-a-api-pix?_gl=1*96b3d4*_gcl_au*MTgzNDQxMDgyMi4xNzQzNTA2MDI5#conteudo);
     - Converta o certificado .p12 fazendo o upload na [página de conversão](https://efipay.github.io/encode-credentials/certificado.html) e clique em "Codificar e Exibir" para obter os dados necessários;
     - Copie o conteúdo do Certificado e cole no campo "Certificado";
     - Copie o conteúdo da Key e cole no campo "Key";
  4. Clique em Save.

ai_documentation_summary:
  {"purpose":"A custom n8n node for integrating with Efi Bank's Payment and Pix APIs to automate financial operations including payments, receipts, and transaction management.","capabilities":["Payment processing via Efi Bank API","Pix payment integration","Receipt management","Transaction management","Support for both Sandbox (Homologação) and Production environments"],"authentication":"OAuth2 (Client ID and Client Secret required for both environments; Pix requires additional certificate configuration)","commonUseCases":["Automating customer payments","Processing Pix transfers","Managing financial transactions in n8n workflows","Automated receipt generation"],"limitations":["Requires Node.js version 18.17 to 22","Pix integration requires manual certificate generation and conversion (.p12 to base64)","Requires local compilation and linking for development use"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request","n8n-nodes-credentials"]}


node_type: @devlikeapro/n8n-nodes-waha.waha
package_name: @devlikeapro/n8n-nodes-waha
display_name: waha
description: n8n to connect with WAHA (Whatsapp HTTP API)
category: Community
development_style: declarative
version: 2025.2.9
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: devlikeapro
author_github_url: git+https://github.com/devlikeapro/n8n-nodes-waha.git
npm_package_name: @devlikeapro/n8n-nodes-waha
npm_version: 2025.2.9
community_fetched_at: 2026-03-25T21:19:41.746Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # @devlikeapro/n8n-nodes-waha
  <p align="center">
    <img src="https://github.com/devlikeapro/n8n-nodes-waha/blob/master/WAHA+n8n.png?raw=true" width='300'/>
  </p>

  This is a n8n community node. 
  It lets you use [WAHA - WhatsApp HTTP API](https://waha.devlike.pro) in your n8n workflows.

  - [**WAHA**](https://waha.devlike.pro) - **WhatsApp API** that you can run in a click!
  - [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  👉 Generated from
  [**WAHA OpenAPI**](https://waha.devlike.pro/swagger/)
  using [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node)

  ![NPM Version](https://img.shields.io/npm/v/%40devlikeapro%2Fn8n-nodes-waha)

  <!-- toc -->

  - [Install WAHA n8n node](#install-waha-n8n-node)
  - [Links](#links)
  - [Workflow Examples](#workflow-examples)

  <!-- tocstop -->

  ![WAHA Workflow Example Screenshot](./waha-n8n-workflow-example.png)

  ## Install WAHA n8n node
  Go to your **n8n** => **Settings** => **Community nodes** and install:

  ```
  @devlikeapro/n8n-nodes-waha
  ```

  If you need help with that, check the
  [**Install community nodes**](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)

  ## Links
  - [**WAHA + n8n: No Code Low Code WhatsApp Automation Step-By-Step Guide**](https://waha/devlike.pro/blog/waha-n8n/)
  - [**🧩 WAHA + n8n Integration**](https://waha.devlike.pro/docs/integrations/n8n/)
  - [**WAHA n8n Workflow Templates**](http://waha-n8n-templates.devlike.pro/)

  ## Workflow Examples
  👉 Check out [**n8n-workflows**](http://waha-n8n-templates.devlike.pro/) folder for examples.

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation by connecting to WAHA (WhatsApp HTTP API) for managing WhatsApp communications.","capabilities":["Send WhatsApp messages","Receive WhatsApp messages","Manage WhatsApp contacts","Create WhatsApp groups","Manage WhatsApp media","Integrate with WAHA OpenAPI specifications"],"authentication":"API key required (via WAHA credentials)","commonUseCases":["Automated customer support via WhatsApp","Order status notifications","Appointment reminders","Marketing campaigns"],"limitations":["Requires WAHA API account and credentials","Limited to WhatsApp HTTP API functionality","Community node (may lack official support)"],"relatedNodes":["n8n-openapi-node","WAHA API node","WhatsApp integration nodes"]}


node_type: n8n-nodes-pdfkit.pdfkit
package_name: n8n-nodes-pdfkit
display_name: pdfkit
description: Node for using PDFKit to tranform images into PDF, more functionality may be added later.
category: Community
development_style: declarative
version: 0.1.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: bramknuever
author_github_url: git+https://github.com/bramkn/n8n-nodes-pdfkit.git
npm_package_name: n8n-nodes-pdfkit
npm_version: 0.1.2
community_fetched_at: 2026-03-25T21:19:41.747Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-pdfkit

  Use this node to convert images to PDF. At the moment only one option available to comnvert all images on a single item to a pdf. (will do this for each item)
  ![image](https://github.com/bramkn/n8n-nodes-pdfkit/assets/74856333/b18cf61e-f1fb-4165-859f-c95a01ecb982)


  ## License

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

ai_documentation_summary:
  {"purpose":"Converts images into PDF format using PDFKit, processing all images on a single item to create a single PDF document.","capabilities":["Convert images to PDF","Process multiple images per item","Generate one PDF per input item"],"authentication":"None","commonUseCases":["Batch converting image files to PDF documents","Creating PDF reports from image data"],"limitations":["Limited to converting all images on a single item","Additional functionality may be added in the future"],"relatedNodes":["n8n-nodes-core.pdf","n8n-nodes-core.binary"]}


node_type: n8n-nodes-mtai-zalo-test-trial.mtaizalotesttrial
package_name: n8n-nodes-mtai-zalo-test-trial
display_name: mtaizalotesttrial
description: Các node hỗ trợ Zalo cho n8n
category: Community
development_style: declarative
version: 1.2.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: dangminhtaivietinsoft
npm_package_name: n8n-nodes-mtai-zalo-test-trial
npm_version: 1.2.1
community_fetched_at: 2026-03-25T21:19:41.748Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-mtai-zalo-test-trial

  Các node hỗ trợ tích hợp Zalo vào nền tảng **n8n**.

  ---

  ## 📦 Cài đặt

  ```bash
  pnpm install n8n-nodes-mtai-zalo-test-trial
  ```

  ### Yêu cầu:
  - **Node.js** ≥ 18.10
  - **n8n** ≥ 1.0.0

  ---

  ## 🔐 Cấu hình Credentials

  1. Sử dụng node `ZaloLoginByQr` để quét mã QR và lấy thông tin xác thực:
     - `cookie`
     - `imei`
     - `userAgent`

  2. Credential được tạo sẽ dùng cho các node Zalo còn lại trong workflow.

  ---

  ## ✅ Các node đã hoàn chỉnh

  ### 1. `ZaloLoginByQr`
  - **Chức năng**: Đăng nhập Zalo bằng mã QR để lấy thông tin xác thực.
  - **Cách dùng**:
    - Thêm node vào workflow.
    - Làm theo hướng dẫn để quét QR và thu thập thông tin login.

  ---

  ### 2. `ZaloSendMessage`
  - **Chức năng**: Gửi tin nhắn đến người dùng hoặc nhóm trên Zalo, hỗ trợ nhiều định dạng.
  - **Cách dùng**:
    - Cấu hình `userId` hoặc `groupId`.
    - Nhập nội dung tin nhắn (hỗ trợ gửi text, ảnh).
    - **Mới**: Hỗ trợ gửi tin nhắn thoại bằng cách chuyển đổi văn bản thành giọng nói (Text-to-Speech) với nhiều ngôn ngữ.
    - **Mới**: Hỗ trợ gửi video từ URL, có khả năng tải và tối ưu hóa video.

  ---

  ### 3. `ZaloUser`
  - **Chức năng**: Quản lý thông tin và các hành động liên quan đến người dùng trên Zalo.
  - **Cách dùng**:
    - Hỗ trợ các thao tác như chấp nhận/gửi lời mời kết bạn, chặn/bỏ chặn người dùng.
    - Thay đổi ảnh đại diện và cài đặt tài khoản.
    - Lấy thông tin chi tiết của người dùng.

  ---

  ### 4. `ZaloMessageTrigger`
  - **Chức năng**: Lắng nghe và kích hoạt workflow khi có tin nhắn mới trên Zalo.
  - **Cách dùng**:
    - Cấu hình để lắng nghe tin nhắn từ người dùng hoặc nhóm.
    - Hỗ trợ chuyển đổi tin nhắn thoại thành văn bản (speech-to-text) bằng Wit.ai, có thể tự động nhận diện hoặc chọn ngôn ngữ thủ công.
    - Tùy chọn cho phép lắng nghe cả tin nhắn do chính bạn gửi đi.

  ---

  ## 📝 Ghi chú

  - Một số tính năng nâng cao như **chuyển đổi voice thành text (speech-to-text)** đang được phát triển.
  - Nếu gặp lỗi cài đặt:
    - Kiểm tra quyền truy cập file
    - Chạy với quyền admin (nếu cần)
    - Đảm bảo không có tiến trình nào đang khóa file

  ---

  ## 👨‍💻 Liên hệ & Đóng góp

  Đóng góp mã nguồn, bug report, hoặc ý tưởng xin gửi về repo hoặc liên hệ tác giả.

  ---

ai_documentation_summary:
  {"purpose":"This n8n node package provides integration capabilities for the Zalo messaging platform, enabling login, sending messages, managing users, and triggering workflows on new messages.","capabilities":["Zalo login via QR code","Send text messages to users or groups","Send images","Send voice messages (Text-to-Speech)","Send videos from URLs with optimization","Manage user invitations and blocks","Update profile pictures and account settings","Retrieve detailed user information","Listen for new incoming messages","Convert voice messages to text (speech-to-text)"],"authentication":"OAuth2 via QR code scan (using ZaloLoginByQr node to collect cookie, imei, and userAgent)","commonUseCases":["Automated customer support messaging on Zalo","Broadcasting announcements to user groups","Automated response to incoming customer inquiries","User management and onboarding workflows"],"limitations":["Some advanced features like speech-to-text are under development","Installation may require admin permissions or specific file access rights"],"relatedNodes":["ZaloLoginByQr","ZaloSendMessage","ZaloUser","ZaloMessageTrigger"]}


node_type: n8n-nodes-openpix.openpix
package_name: n8n-nodes-openpix
display_name: openpix
description: n8n nodes for OpenPix
category: Community
development_style: declarative
version: 0.3.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: fersilva
author_github_url: git+https://github.com/open-pix/n8n-nodes-openpix.git
npm_package_name: n8n-nodes-openpix
npm_version: 0.3.0
community_fetched_at: 2026-03-25T21:19:41.748Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-openpix

  ![OpenPix N8N logo](img/openpix-n8n.png)

  [![NPM Version](https://badge.fury.io/js/n8n-nodes-openpix.svg?style=flat)](https://npmjs.org/package/n8n-nodes-openpix)

  [![https://nodei.co/npm/n8n-nodes-openpix.png?downloads=true&downloadRank=true&stars=true](https://nodei.co/npm/n8n-nodes-openpix.png?downloads=true&downloadRank=true&stars=true)](https://www.npmjs.com/package/n8n-nodes-openpix)

  n8n nodes for create charges and payments with [OpenPix](https://openpix.com.br)

  ## How to use

  ### Community Nodes (Recommended)

  1. Go to Settings > Community Nodes.
  2. Select Install.
  3. Enter `n8n-nodes-openpix` in _Enter npm package name._ field.
  4. Agree to the risks of using community nodes: select I understand the risks of installing unverified code from a public source.
  5. Select Install.

  ### Manual installation

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

  `npm install n8n-nodes-openpix`

  ### Setup

  1. Go to Credentials.
  2. Select `Add Credential` button.
  3. Select `OpenPix API` from the _Search for app_ dropdown.
  4. Get your OpenPix API key from [API Getting Started](https://developers.openpix.com.br/docs/apis/api-getting-started).
  5. Enter your OpenPix API key in the _API Key_ field.

  ## API Reference

  - [OpenPix API](https://developers.openpix.com.br/docs/apis/api-getting-started)

  ## Contributing

  1. Fork it (<https://github.com/open-pix/n8n-nodes-openpix/fork>)
  2. Create your feature branch (`git checkout -b feature/fooBar`)
  3. Commit your changes (`git commit -m 'feat(fooBar) Add some fooBar'`)
  4. Push to the branch (`git push origin feature/fooBar`)
  5. Create a new Pull Request

ai_documentation_summary:
  {"purpose":"This n8n node enables the creation of charges and payments using the OpenPix Brazilian payment gateway API.","capabilities":["Create charges","Process payments","Integrate with OpenPix API"],"authentication":"API Key required","commonUseCases":["Accepting credit card payments in Brazil","Processing Pix transfers","Automated checkout workflows"],"limitations":["Limited to OpenPix-specific payment operations","Requires valid OpenPix API credentials"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-currency.convert"]}


node_type: n8n-nodes-thong-zalo-test-trial.thongzalotesttrial
package_name: n8n-nodes-thong-zalo-test-trial
display_name: thongzalotesttrial
description: Các node hỗ trợ Zalo cho n8n
category: Community
development_style: declarative
version: 0.1.182
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: vanthong0404
npm_package_name: n8n-nodes-thong-zalo-test-trial
npm_version: 0.1.182
community_fetched_at: 2026-03-25T21:19:41.749Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-mtai-zalo-test-trial

  Các node hỗ trợ tích hợp Zalo vào nền tảng **n8n**.

  ---

  ## 📦 Cài đặt

  ```bash
  pnpm install n8n-nodes-mtai-zalo-test-trial
  ```

  ### Yêu cầu:
  - **Node.js** ≥ 18.10
  - **n8n** ≥ 1.0.0

  ---

  ## 🔐 Cấu hình Credentials

  1. Sử dụng node `ZaloLoginByQr` để quét mã QR và lấy thông tin xác thực:
     - `cookie`
     - `imei`
     - `userAgent`

  2. Credential được tạo sẽ dùng cho các node Zalo còn lại trong workflow.

  ---

  ## ✅ Các node đã hoàn chỉnh

  ### 1. `ZaloLoginByQr`
  - **Chức năng**: Đăng nhập Zalo bằng mã QR để lấy thông tin xác thực.
  - **Cách dùng**:
    - Thêm node vào workflow.
    - Làm theo hướng dẫn để quét QR và thu thập thông tin login.

  ---

  ### 2. `ZaloSendMessage`
  - **Chức năng**: Gửi tin nhắn đến người dùng hoặc nhóm trên Zalo.
  - **Cách dùng**:
    - Cấu hình `userId` hoặc `groupId`.
    - Nhập nội dung tin nhắn (hỗ trợ gửi text, ảnh, file...).

  ---

  ### 3. `ZaloUser`
  - **Chức năng**: Lấy thông tin chi tiết của người dùng Zalo.
  - **Cách dùng**:
    - Nhập `userId` để truy xuất thông tin người dùng.

  ---

  ### 4. `ZaloGroup`
  - **Chức năng**: Truy xuất thông tin nhóm Zalo, bao gồm danh sách thành viên.
  - **Cách dùng**:
    - Nhập `groupId` để lấy dữ liệu liên quan đến nhóm.

  ---

  ### 5. `ZaloMessageTrigger`
  - **Chức năng**: 
    - Theo dõi và kích hoạt workflow khi có tin nhắn mới từ người dùng hoặc nhóm.
    - Chuyển đổi giọng nói sang text. 
  - **Cách dùng**:
    - Cấu hình loại sự kiện (`message.user`, `message.group`, v.v).
    - Node sẽ tự động kích hoạt khi có tin nhắn đến.
    - Chức năng chuyển giọng nói sang text yêu cầu thêm WitAiApi credential còn nếu không có mình có thể dùng Vosk
  - **Lưu ý**:
    - Tin nhắn giọng nói (`chat.voice`) hiện chỉ được nhận diện chứ chưa hỗ trợ chuyển đổi thành văn bản.
    - WitAiApi credentiald bắt buộc phải có AccessToken từ trang wit.ai
    - Hiện tại chức năng nghe hiểu của vosk về tiếng Việt không quá hiệu quả
  ---

  ### 6. `ZaloFriendTrigger`
  - **Chức năng**: Theo dõi các sự kiện liên quan đến bạn bè (kết bạn, hủy kết bạn,...).
  - **Cách dùng**:
    - Thêm node này vào workflow để lắng nghe các sự kiện liên quan.

  ---

  ## 📝 Ghi chú

  - Một số tính năng nâng cao như **chuyển đổi voice thành text (speech-to-text)** đang được phát triển.
  - Nếu gặp lỗi cài đặt:
    - Kiểm tra quyền truy cập file
    - Chạy với quyền admin (nếu cần)
    - Đảm bảo không có tiến trình nào đang khóa file

  ---

  ## 👨‍💻 Liên hệ & Đóng góp

  Đóng góp mã nguồn, bug report, hoặc ý tưởng xin gửi về repo hoặc liên hệ tác giả.

  ---

ai_documentation_summary:
  {"purpose":"This n8n node package provides integration capabilities for the Zalo messaging platform, enabling users to manage accounts, send messages, retrieve user/group data, and handle incoming events.","capabilities":["Zalo account login via QR code","Sending text, image, and file messages to users or groups","Retrieving detailed user information","Retrieving group information and member lists","Listening for new message events (text and voice)","Listening for friend-related events (adding/removing friends)","Speech-to-text conversion (requires WitAiApi or Vosk credentials)"],"authentication":"OAuth2 via QR code (manual credential collection using cookie, imei, userAgent)","commonUseCases":["Automated customer support chatbots on Zalo","Marketing campaigns sending promotional messages to groups","Automated response systems for business inquiries","Monitoring friend relationship changes for social management","Voice message transcription workflows"],"limitations":["Speech-to-text conversion requires external API credentials (WitAiApi) or Vosk; native Vietnamese recognition by Vosk is noted as not highly effective","Voice message recognition is functional but full conversion to text is not yet supported","Credential setup requires manual QR scanning and cookie/IMEI collection","Installation requires Node.js >= 18.10 and n8n >= 1.0.0"],"relatedNodes":["ZaloLoginByQr","ZaloSendMessage","ZaloUser","ZaloGroup","ZaloMessageTrigger"]}


node_type: n8n-nodes-woovi.woovi
package_name: n8n-nodes-woovi
display_name: woovi
description: n8n nodes for Woovi
category: Community
development_style: declarative
version: 2.3.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: sibelius
author_github_url: git+https://github.com/woovibr/n8n-nodes-woovi.git
npm_package_name: n8n-nodes-woovi
npm_version: 2.3.0
community_fetched_at: 2026-03-25T21:19:41.749Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-woovi

  ![Woovi N8N logo](img/woovi-n8n.png)

  [![NPM Version](https://badge.fury.io/js/n8n-nodes-woovi.svg?style=flat)](https://npmjs.org/package/n8n-nodes-woovi)

  [![https://nodei.co/npm/n8n-nodes-woovi.png?downloads=true&downloadRank=true&stars=true](https://nodei.co/npm/n8n-nodes-woovi.png?downloads=true&downloadRank=true&stars=true)](https://www.npmjs.com/package/n8n-nodes-woovi)

  n8n nodes for create charges and payments with [Woovi](https://woovi.com)

  ## How to use

  ### Community Nodes (Recommended)

  1. Go to Settings > Community Nodes.
  2. Select Install.
  3. Enter `n8n-nodes-woovi` in *Enter npm package name.* field.
  4. Agree to the risks of using community nodes: select I understand the risks of installing unverified code from a public source.
  5. Select Install.

  ### Manual installation

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

  `npm install n8n-nodes-woovi`

  ### Setup

  1. Go to Credentials.
  2. Select `Add Credential` button.
  3. Select `Woovi API` from the *Search for app* dropdown.
  4. Get your Woovi API key from [API Getting Started](https://developers.woovi.com/docs/apis/api-getting-started).
  5. Enter your Woovi API key in the *API Key* field.

  #### Sandbox (Ambiente de teste)

  Se você deseja usar o ambiente de sandbox, abra as credenciais `Woovi API` no n8n e ative `Use Sandbox Environment`. Quando ativado, preencha `API Key (Sandbox)` e `Base URL (Sandbox)` (padrão: `https://api.woovi-sandbox.com/api`). Desative para voltar ao ambiente de produção e preencher `API Key (Production)`.

  ## API Reference

  - [Woovi API](https://developers.woovi.com/docs/apis/api-getting-started)

  - All requests require the `Authorization` header with your AppID (set it in the `Woovi API` credential used by the node).

  ## Using implemented routes in n8n

  The package currently implements two primary integrations for n8n:

  - Create charge (POST /charge) — available as the `Woovi` node
  - Webhook listener for Woovi events — available as the `Woovi Trigger` node

  **Implemented endpoints:**

  | Endpoint | Method | n8n Node | Required fields / Parameters | Short usage | Example output |
  |---|---:|---|---|---|---|
  | `/v1/charge` | POST | `Woovi` | `Value` (number, cents) — required; `CorrelationID` (string) — optional | Create a charge (dynamic PIX / payment link). Configure **Woovi API** credentials, set `Value` and optional `CorrelationID`, then execute the `Woovi` node. | `charge.identifier`, `charge.status`, `charge.paymentLinkUrl`, `charge.brCode`, `charge.pixKey`, `expiresIn` |
  | `/webhook` (webhook listener) | POST (webhook) | `Woovi Trigger` | `events` (dropdown) — choose a specific event or `ALL` | Receive Woovi events (charge created/completed, transaction received, refunds, movement updates). Add `Woovi Trigger`, choose event(s), enable the workflow to expose the webhook URL, then configure Woovi to post to that URL. | Full event payload in node output JSON (field names depend on event) |
  | `/v1/subaccount` | GET | `Woovi` | — | List subaccounts for the company. Use the `resource=subaccount` and `operation=listSubaccounts` in the `Woovi` node. | Array of subaccount objects (id, pixKey, name, balance, ...) |
  | `/v1/subaccount/{id}` | GET | `Woovi` | `Subaccount ID` (string) — required | Get a single subaccount's details. Use `resource=subaccount` + `operation=getSubaccount` and provide `Subaccount ID`. | Subaccount object with details (id, pixKey, name, balance, createdAt, ...) |
  | `/v1/subaccount` | POST | `Woovi` | `Pix Key` (string) — required (or other identifying fields) ; `Subaccount Name` (string) — optional | Create or retrieve a subaccount by `pixKey`. Use `resource=subaccount` + `operation=createSubaccount`. | Created or existing subaccount object (id, pixKey, name, ...) |
  | `/v1/subaccount/{id}/withdraw` | POST | `Woovi` | `Subaccount ID` (string) — required; `Amount` (number, cents) — required | Withdraw (partial) from a subaccount to the main account. Use `operation=withdrawSubaccount`. | Operation result (success/info) |
  | `/v1/subaccount/{id}/debit` | POST | `Woovi` | `Subaccount ID` (string) — required; `Amount` (number, cents) — required; `Description` (string) — optional | Debit (move) value from a subaccount to the main account with an optional description. Use `operation=debitSubaccount`. | Operation result (success/info) |
  | `/v1/subaccount/{id}` | DELETE | `Woovi` | `Subaccount ID` (string) — required | Delete a subaccount (only allowed if balance == 0). Use `operation=deleteSubaccount`. | Operation result (success/info) |
  | `/v1/subaccount/transfer` | POST | `Woovi` | `Value` (number, cents) — required; `From Pix Key` (string) — required; `To Pix Key` (string) — required; `CorrelationID` (string) — optional | Transfer funds between subaccounts. Use `operation=transferSubaccounts` and provide transfer details. | Operation result (success/info) |
  | `/v1/subaccount` | GET | `Woovi` | — | List subaccounts for the company. Use the `resource=subaccount` and `operation=listSubaccounts` in the `Woovi` node. | Array of subaccount objects (id, pixKey, name, balance, ...)
  | `/v1/subaccount/{id}` | GET | `Woovi` | `Subaccount ID` (string) — required | Get a single subaccount's details. Use `resource=subaccount` + `operation=getSubaccount` and provide `Subaccount ID`. | Subaccount object with details (id, pixKey, name, balance, createdAt, ...)
  | `/v1/subaccount` | POST | `Woovi` | `Pix Key` (string) — required (or other identifying fields) ; `Subaccount Name` (string) — optional | Create or retrieve a subaccount by `pixKey`. Use `resource=subaccount` + `operation=createSubaccount`. | Created or existing subaccount object (id, pixKey, name, ...)
  | `/v1/subaccount/{id}/withdraw` | POST | `Woovi` | `Subaccount ID` (string) — required; `Amount` (number, cents) — required | Withdraw (partial) from a subaccount to the main account. Use `operation=withdrawSubaccount`. | Operation result (success/info)
  | `/v1/subaccount/{id}/debit` | POST | `Woovi` | `Subaccount ID` (string) — required; `Amount` (number, cents) — required; `Description` (string) — optional | Debit (move) value from a subaccount to the main account with an optional description. Use `operation=debitSubaccount`. | Operation result (success/info)
  | `/v1/subaccount/{id}` | DELETE | `Woovi` | `Subaccount ID` (string) — required | Delete a subaccount (only allowed if balance == 0). Use `operation=deleteSubaccount`. | Operation result (success/info)
  | `/v1/subaccount/transfer` | POST | `Woovi` | `Value` (number, cents) — required; `From Pix Key` (string) — required; `To Pix Key` (string) — required; `CorrelationID` (string) — optional | Transfer funds between subaccounts. Use `operation=transferSubaccounts` and provide transfer details. | Operation result (success/info)
  |  `/v1/customer`    | POST |  `Woovi` | `name` (string) — required; **at least one of:** `taxID` (string), `email` (string), or `phone` (string) — required; `correlationID` (string) — optional; `address` (object: { zipcode (string), street (string), number (string), neighborhood (string), city (string), state (string), complement (string), country (string) }) — optional, but if provided all fields except `complement` must be filled | Create a new customer. Use `resource=customer` + `operation=createCustomer` and provide `name` plus at least one identifier (`taxID`, `email`, or `phone`) | Operation result (success/info) 
  |  `/v1/customer`  | GET | `Woovi` | — | List customers of the company. Use `resource=customer` + `operation=listCustomers` | Operation result (success/info)
  |  `/v1/customer/{id}`  | GET | `Woovi` | `Id` CorrelationID or Tax ID (String) - required | Get a customer of the company. Use `resource=customer` + `operation=getCustomer` and provide a `id` that could be `Tax ID` or `Correlation ID` | Operation result (success/info)
  |  `/v1/customer/{id}`    | PATCH |  `Woovi` | `correlationID` (string) — required; `name` (string) — optional; `taxID` (string) — optional; `email` (string) — optional; `phone` (string) — optional; `address` (object: {  zipcode — (string); street — (string); number — (string); neighborhood — (string); city — (string);state — (string);complement — (string);country — (string) }) — optional if not provided | Update an existing customer. Use `resource=customer` + `operation=updateCustomer` and provide fields to update | Operation result (success/info)
  |  `/v1/refund`  | GET | `Woovi` | — | List refunds of the company. Use `resource=refund` + `operation=listRefunds` | Operation result (success/info)
  |  `/v1/refund/{id}`  | GET | `Woovi` | `Id` Refund ID or Correlation ID (String) - required | Get a refund of the company. Use `resource=refund` + `operation=getRefund` and provide a `id` that could be `Refund ID` or `Correlation ID` | Operation result (success/info)
  |  `/v1/refund`    | POST |  `Woovi` | `value` (number) — required; `correlationID` (string) — required; `transactionEndToEndId` (string) required; `comment` (string) optional | Create a new refund. Use `resource=refund` + `operation=createRefund` and provide `value`, `transactionEndToEndId` and `correlationID` at least | Operation result (success/info)
  |  `/v1/invoice`  | GET | `Woovi` | `limit` (number) — optional (default: 20); `skip` (number) — optional (default: 0); `start` (string, format: YYYY-MM-DD) — optional; `end` (string, format: YYYY-MM-DD) — optional | List invoices of the company. Use `resource=invoice` + `operation=listInvoices` and optionally filter by date range | Array of invoice objects
  |  `/v1/invoice/{correlationID}/cancel`  | POST | `Woovi` | `correlationID` (string) — required | Cancel an invoice. Use `resource=invoice` + `operation=cancelInvoice` and provide the invoice `correlationID` | Operation result (success/info)
  |  `/v1/invoice/{correlationID}/pdf`  | GET | `Woovi` | `correlationID` (string) — required | Get invoice PDF. Use `resource=invoice` + `operation=getInvoicePdf` and provide the invoice `correlationID` | PDF file data
  |  `/v1/invoice/{correlationID}/xml`  | GET | `Woovi` | `correlationID` (string) — required | Get invoice XML. Use `resource=invoice` + `operation=getInvoiceXml` and provide the invoice `correlationID` | XML file data
  |  `/v1/invoice`  | POST | `Woovi` | `billingDate` (string, ISO 8601) — required; `correlationID` (string) — required; **one of:** `charge` (string) OR `value` (number) — required; `description` (string) — optional; `customerId` (string) — optional; `customer` (object with taxID, name, email, phone, address) — optional (if provided, all customer fields are required) | Create a new invoice. Use `resource=invoice` + `operation=createInvoice` and provide required fields | Operation result (success/info)
  |  `/v1/installments/{id}`  | GET | `Woovi` | `id` (string) — required (globalID or endToEndId) | Get a single installment's details. Use `resource=installment` + `operation=getInstallment` and provide the installment `id` (either globalID or endToEndId) | Installment object with details (globalID, endToEndId, value, status, ...)
  |  `/v1/installments/{id}/cobr`  | POST | `Woovi` | `id` (string) — required (globalID); `value` (number, cents) — optional | Create CobR manually for an installment. Use `resource=installment` + `operation=createInstallmentCobr` and provide the installment `id`. Optionally provide custom `value` in cents, otherwise uses the installment value | Created CobR object with details (globalID, value, brCode, pixKey, status, ...)
  |  `/v1/installments/{id}/cobr/retry`  | POST | `Woovi` | `id` (string) — required (globalID) | Manually retry CobR creation for an installment. Use `resource=installment` + `operation=retryInstallmentCobr` and provide the installment `id` | Created CobR object with details (globalID, value, brCode, status, ...)
  |  `/v1/subscriptions`  | GET | `Woovi` | — | List all subscriptions of the company. Use `resource=subscription` + `operation=listSubscriptions`. **⚠️ Note: Subscriptions only work in Woovi production environment (not available in sandbox)** | Array of subscription objects (id, status, value, dayGenerateCharge, customer, ...)
  |  `/v1/subscriptions/{id}`  | GET | `Woovi` | `id` (string) — required | Get a subscription's details. Use `resource=subscription` + `operation=getSubscription` and provide the subscription `id`. **⚠️ Note: Subscriptions only work in Woovi production environment (not available in sandbox)** | Subscription object with details (id, status, value, dayGenerateCharge, customer, ...)
  |  `/v1/subscriptions`  | POST | `Woovi` | `value` (number, cents) — required; `type` (PIX_RECURRING or RECURRENT) — required; `correlationID` (string) — required; `customer` (object: name, email, phone, taxID, address) — required; `name` (string) — optional; `comment` (string) — optional; `dayGenerateCharge` (number 1-31, default 5) — optional; `frequency` (WEEKLY, MONTHLY, SEMIANNUALLY, ANNUALLY) — optional; `dayDue` (number >=3, default 7) — optional | Create a new subscription. Use `resource=subscription` + `operation=createSubscription` and provide all required fields including complete customer data with address. **⚠️ Note: Subscriptions only work in Woovi production environment (not available in sandbox)** | Created subscription object with id and details
  |  `/v1/subscriptions/{id}/cancel`  | PUT | `Woovi` | `id` (string) — required | Cancel a subscription. Use `resource=subscription` + `operation=cancelSubscription` and provide the subscription `id`. **⚠️ Note: Subscriptions only work in Woovi production environment (not available in sandbox)** | Subscription object with status CANCELED
  |  `/v1/subscriptions/{id}/value`  | PUT | `Woovi` | `id` (string) — required; `value` (number, cents) — required (must be > 0) | Update the value of future subscription installments (when allowed). Use `resource=subscription` + `operation=updateSubscriptionValue` and provide the subscription `id` and new `value`. **⚠️ Note: Subscriptions only work in Woovi production environment (not available in sandbox)** | Updated subscription object with new value
  |  `/v1/subscriptions/{id}/installments`  | GET | `Woovi` | `id` (string) — required | List all installments for a subscription. Use `resource=subscription` + `operation=listSubscriptionInstallments` and provide the subscription `id`. **⚠️ Note: Subscriptions only work in Woovi production environment (not available in sandbox)** | Array of installment objects (globalID, endToEndId, value, status, ...)
  |  `/v1/pix-keys`  | POST | `Woovi` | `pixKey` (string) — optional for EVP; `pixKeyType` (string, CNPJ or EVP) — required | Create a new pix key. Use `resource=pixKey` + `operation=create` and provide `pixKeyType`. For CNPJ type, `pixKey` is required. | Pix Key object (key, type, status, ...)
  |  `/v1/pix-keys`  | GET | `Woovi` | — | List all pix keys. Use `resource=pixKey` + `operation=list`. | Array of Pix Key objects and account info
  |  `/v1/pix-keys/{pixKey}/check`  | GET | `Woovi` | `pixKey` (string) — required | Check a pix key. Use `resource=pixKey` + `operation=check` and provide the `pixKey`. | Pix Key object (key, type, status, ...)
  |  `/v1/pix-keys/{pixKey}/default`  | POST | `Woovi` | `pixKey` (string) — required | Set a pix key as default. Use `resource=pixKey` + `operation=setDefault` and provide the `pixKey`. | Operation result (success/info)
  |  `/v1/pix-keys/{pixKey}`  | DELETE | `Woovi` | `pixKey` (string) — required | Delete a pix key. Use `resource=pixKey` + `operation=delete` and provide the `pixKey`. | Operation result (success/info)
  |  `/v1/pix-keys/tokens`  | GET | `Woovi` | — | Get tokens data for pix keys. Use `resource=pixKey` + `operation=getTokens`. | Tokens info (limit, refresh)
  |  `/v1/qrcode-static`  | POST | `Woovi` | `name` (string) — required; `value` (number, cents) — required; `correlationID` (string) — optional; `comment` (string) — optional; `pixKey` (string) — optional | Create a new static Pix QR code. Use `resource=qrCodeStatic` + `operation=create` and provide required fields. | QR Code object (brCode, qrCodeImage, paymentLinkUrl, ...)
  |  `/v1/qrcode-static/{id}`  | GET | `Woovi` | `qrCodeId` (string) — required | Get a static Pix QR code. Use `resource=qrCodeStatic` + `operation=get` and provide the `qrCodeId` (ID, correlation ID, or identifier). | QR Code object (id, name, value, status, ...)
  |  `/v1/qrcode-static`  | GET | `Woovi` | `limit` (number) — optional (default: 20); `skip` (number) — optional (default: 0) | List all static Pix QR codes. Use `resource=qrCodeStatic` + `operation=list`. Optionally provide `limit` and `skip` for pagination. | Array of QR Code objects
  | `/v1/payment` | POST | `Woovi` | `paymentType` (`PIX_KEY`/`QR_CODE`/`MANUAL`) — required; `value` (number, cents) — required; `correlationID` (string) — required. Optional: `destinationAlias`, `destinationAliasType` (`CPF`,`CNPJ`,`EMAIL`,`PHONE`,`RANDOM`), `pixKeyEndToEndId`, `comment`, `metadata` (JSON object, max 30 keys). | Request a payment (PIX key / QR code / manual). Use `resource=payment` + `operation=create` and provide required fields. | `payment` object with fields like `type`, `value`, `destinationAlias`, `destinationAliasType`, `qrCode` (when `QR_CODE`), `correlationID`, `comment`, `status` |
  | `/v1/payment` | GET | `Woovi` | `limit` (number) — optional (default: 20); `skip` (number) — optional (default: 0); `correlationID` (string) — optional; `status` (string) — optional | List payments for the company. Use `resource=payment` + `operation=list` and optionally filter by `correlationID` or `status`. | Array of payment objects |
  | `/v1/payment/{id}` | GET | `Woovi` | `id` (string) — required (payment ID or correlationID) | Get a single payment by ID or correlationID. Use `resource=payment` + `operation=get` and provide `id`. | Payment object with details (payment, transaction, destination) |
  Note: In the n8n node the `metadata` field is entered as a key/value collection (fixed collection) and will be converted to a JSON object by the node (maximum 30 keys). For `paymentType = QR_CODE` the `value` is optional and the node omits the `value` field when creating a QR code payment.
  | `/v1/psp` | GET | `Woovi` | `ispb` (string) — optional; `name` (string) — optional; `compe` (string) — optional | List PSPs (Payment Service Providers). Use `resource=psp` + `operation=list` and optionally filter by `ispb`, `name`, or `compe`. | Array of PSP objects (name, ispb, code, compe) |

  Common events available in the trigger: `OPENPIX:CHARGE_CREATED`, `OPENPIX:CHARGE_COMPLETED`, `OPENPIX:CHARGE_EXPIRED`, `OPENPIX:TRANSACTION_RECEIVED`, `OPENPIX:TRANSACTION_REFUND_RECEIVED`, `OPENPIX:MOVEMENT_CONFIRMED`, `OPENPIX:MOVEMENT_FAILED`, `OPENPIX:MOVEMENT_REMOVED`, and `ALL`.

  Tip: select `ALL` to receive every event and branch inside the workflow by inspecting the event payload's `event` field.


  ## Contributing

  1. Fork it (<https://github.com/entria/n8n-nodes-woovi/fork>)
  2. Create your feature branch (`git checkout -b feature/fooBar`)
  3. Commit your changes (`git commit -m 'feat(fooBar) Add some fooBar'`)
  4. Push to the branch (`git push origin feature/fooBar`)
  5. Create a new Pull Request

ai_documentation_summary:
  {"purpose":"This n8n node package enables integration with Woovi, a Brazilian payment gateway, allowing users to create charges, manage subaccounts, and handle payment events within n8n workflows.","capabilities":["Create charges (dynamic PIX/payment links)","List subaccounts","Get subaccount details","Create subaccounts","Withdraw funds from subaccounts","Debit funds from subaccounts","Delete subaccounts","Transfer funds between subaccounts","Listen to Woovi webhook events"],"authentication":"API Key required (AppID)","commonUseCases":["Automating PIX payment processing","Managing multi-currency or multi-merchant subaccounts","Receiving and processing payment events automatically","Handling refunds and fund movements"],"limitations":["Subaccount deletion is only allowed if the balance is zero","Requires manual installation via npm or community node installation"],"relatedNodes":["Woovi Trigger","Webhook"]}


node_type: n8n-nodes-weld.weld
package_name: n8n-nodes-weld
display_name: weld
category: Community
development_style: declarative
version: 1.1.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: GitHub Actions
author_github_url: git+https://github.com/useweld/n8n-nodes-weld.git
npm_package_name: n8n-nodes-weld
npm_version: 1.1.4
community_fetched_at: 2026-03-25T21:19:41.750Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  n8n community node for Weld — web scraping across LinkedIn, Instagram, TikTok, Twitter/X, YouTube & Facebook

npm_readme:
  # n8n-nodes-weld

  n8n community node for [Weld](https://www.useweld.app) — web scraping across LinkedIn, Instagram, TikTok, Twitter/X, YouTube, Facebook, Indeed, Glassdoor, Yelp, GitHub & Crunchbase.

  ## Installation

  In your n8n instance, go to **Settings → Community Nodes → Install** and enter:

  ```
  n8n-nodes-weld
  ```

  ## Credentials

  1. Log in to [Weld](https://www.useweld.app)
  2. Go to **Settings → API Keys** and create a new key
  3. In n8n, add a **Weld API** credential with your API key and base URL

  ## Nodes

  ### Per-Platform Scraper Nodes

  Each scraper has its own dedicated node with tailored input fields and AI agent descriptions:

  | Node | Scraper | Input | Cost |
  | ---- | ------- | ----- | ---- |
  | **Weld LinkedIn Profiles** | `linkedin-profiles` | Profile URLs | 5 cr |
  | **Weld LinkedIn Companies** | `linkedin-companies` | Company URLs | 5 cr |
  | **Weld LinkedIn Posts** | `linkedin-posts` | Profile/Company/Post URLs | 3 cr |
  | **Weld Instagram Profiles** | `instagram-profiles` | Profile URLs | 4 cr |
  | **Weld Instagram Posts** | `instagram-posts` | Post URLs | 3 cr |
  | **Weld Instagram Comments** | `instagram-comments` | Post URLs | 2 cr |
  | **Weld TikTok Profiles** | `tiktok-profiles` | Profile URLs | 4 cr |
  | **Weld TikTok Videos** | `tiktok-posts` | Video URLs | 3 cr |
  | **Weld Twitter/X Profiles** | `twitter-profiles` | Profile URLs | 4 cr |
  | **Weld Twitter/X Posts** | `twitter-posts` | Post URLs | 3 cr |
  | **Weld YouTube Channels** | `youtube-channels` | Channel URLs | 4 cr |
  | **Weld YouTube Comments** | `youtube-comments` | Video URLs | 2 cr |
  | **Weld Facebook Profiles** | `facebook-profiles` | Profile URLs | 4 cr |
  | **Weld Facebook Groups** | `facebook-groups` | Group URLs | 3 cr |
  | **Weld Indeed Jobs** | `indeed-jobs` | Job listing URLs | 5 cr |
  | **Weld Indeed Companies** | `indeed-companies` | Company URLs | 5 cr |
  | **Weld Glassdoor Companies** | `glassdoor-companies` | Company URLs | 5 cr |
  | **Weld Glassdoor Reviews** | `glassdoor-reviews` | Review URLs | 5 cr |
  | **Weld Glassdoor Jobs** | `glassdoor-jobs` | Job listing URLs | 5 cr |
  | **Weld Yelp Businesses** | `yelp-businesses` | Business URLs | 5 cr |
  | **Weld Yelp Reviews** | `yelp-reviews` | Review URLs | 5 cr |
  | **Weld GitHub Repositories** | `github-repositories` | Repository URLs | 5 cr |
  | **Weld Crunchbase Companies** | `crunchbase-companies` | Company URLs | 5 cr |

  Each scraper node supports three operations:

  | Operation | Description |
  | --------- | ----------- |
  | **Create** | Start a new scrape job with URLs and optionally wait for completion |
  | **Get** | Get job status and details by ID |
  | **Get Results** | Retrieve scraped data from a completed job |

  ### Weld Jobs (Management Node)

  The **Weld Jobs** node handles cross-cutting job management and credits:

  | Resource | Operation | Description |
  | -------- | --------- | ----------- |
  | Job | **Get** | Get job status and details by ID |
  | Job | **Get Results** | Retrieve scraped data from a completed job |
  | Job | **List** | List recent scrape jobs with optional status filter |
  | Job | **Cancel** | Cancel a pending/processing job and refund credits |
  | Credits | **Get Balance** | Check your current credit balance |
  | Credits | **Get Transactions** | View your credit transaction history |

  ## Features

  - **AI Agent compatible** — each scraper node has a focused `usableAsTool` description for accurate tool selection
  - **Per-platform icons** — color-coded icons make it easy to identify scrapers on the canvas
  - **Return All toggle** — standard n8n pagination pattern for Get Results and List operations
  - **Exponential backoff** — automatic retry on transient 5xx, 429, and network errors during polling
  - **Data provenance** — every output item includes `pairedItem` for n8n's data tracking
  - **Dark mode** — icons adapt to n8n's light and dark themes

  ## Wait for Completion

  When creating a job with "Wait for Completion" enabled, the node polls until the job finishes and outputs each scraped record as a separate n8n item — ready to pipe into the next node in your workflow.

  For long-running jobs, prefer using the **Weld Jobs** node's Get/Get Results operations on a schedule to avoid holding an n8n worker.

ai_documentation_summary:
  {"purpose":"A community n8n node that enables web scraping across multiple platforms including LinkedIn, Instagram, TikTok, Twitter/X, YouTube, Facebook, Indeed, Glassdoor, Yelp, GitHub, and Crunchbase.","capabilities":["Scrape LinkedIn profiles, companies, and posts","Scrape Instagram profiles, posts, and comments","Scrape TikTok profiles and videos","Scrape Twitter/X profiles and posts","Scrape YouTube channels and comments","Scrape Facebook profiles and groups","Scrape Indeed job listings and companies","Scrape Glassdoor companies, reviews, and jobs","Scrape Yelp businesses and reviews","Scrape GitHub repositories"],"authentication":"API key required (Weld API key and base URL)","commonUseCases":["Gathering competitor data from social media platforms","Collecting job listings for recruitment automation","Monitoring company reviews and ratings","Extracting public profile information for lead generation","Tracking GitHub repository activity"],"limitations":["Requires paid credits for each scraping operation (costs vary by platform and data type)","Long-running jobs should be managed via the Weld Jobs node to avoid blocking n8n workers","Limited to public data accessible through Weld's scraping service","No built-in support for dynamic content or JavaScript-heavy sites beyond Weld's capabilities"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.waitUntil","n8n-nodes-base.splitInBatches"]}


node_type: n8n-nodes-thang-zalo-app.thangzaloapp
package_name: n8n-nodes-thang-zalo-app
display_name: thangzaloapp
description: Các node udng2 để hỗ trợ người dùng zalo
category: Community
development_style: declarative
version: 1.1.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: ntnguyenthangtn
npm_package_name: n8n-nodes-thang-zalo-app
npm_version: 1.1.5
community_fetched_at: 2026-03-25T21:19:41.750Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # 🚀 n8n-nodes-zalo-test-trial

  **Kết nối Zalo vào thế giới tự động hóa của bạn với n8n!**  
  Tích hợp Zalo cá nhân, nhóm, bạn bè, tin nhắn, voice-to-text, đăng nhập QR... chỉ với vài cú click.  
  Tối ưu cho chatbot, CRM, automation, chăm sóc khách hàng, cảnh báo nội bộ, và hơn thế nữa!

  ---

  ## 🌟 Tại sao nên chọn bộ node Zalo này?

  - **Đầy đủ tính năng:** Gửi/nhận tin nhắn, quản lý nhóm, bạn bè, voice-to-text đa ngôn ngữ, đăng nhập QR, v.v.
  - **Dễ dùng:** Kéo thả, cấu hình trực quan, không cần code phức tạp.
  - **Tối ưu cho workflow hiện đại:** Kết hợp linh hoạt với các node khác của n8n.
  - **Chuẩn hóa voice kéo dài:** Nhận diện tốt tiếng Việt dù nói “đi đâyyyyyy”.
  - **Mở rộng dễ dàng:** Hỗ trợ nhiều tài khoản, nhiều ngôn ngữ, nhiều kịch bản.

  ---

  ## 🚦 Tính năng nổi bật

  ### 🔑 Đăng nhập Zalo bằng QR code
  - Đăng nhập siêu nhanh, không cần copy cookie thủ công.
  - Lưu Credential tự động, dùng lại cho mọi node Zalo khác.
  - Hỗ trợ nhiều tài khoản, proxy, quản lý Credential thông minh.

  ### 👤 Quản lý người dùng Zalo
  - Gửi/kết bạn, chặn/bỏ chặn, đổi avatar, cập nhật thông tin cá nhân.
  - Lấy thông tin chi tiết user, trạng thái, avatar, v.v.

  ### 💬 Gửi & nhận tin nhắn Zalo
  - Gửi tin nhắn text, ảnh, file, nhắc tên, trích dẫn, typing...
  - Lắng nghe tin nhắn từ user hoặc group, tự động kích hoạt workflow.
  - Hỗ trợ voice-to-text: nhận diện tiếng Việt, Anh, Trung (tự động hoặc thủ công).
  - Chuẩn hóa text voice kéo dài, trả về cả text, ngôn ngữ và độ tin cậy.

  ### 👥 Quản lý nhóm Zalo
  - Tạo nhóm, thêm/xóa thành viên, đổi tên/avatar nhóm, phân quyền quản trị.
  - Lấy thông tin nhóm, danh sách thành viên, quản trị viên.

  ### 🤝 Lắng nghe sự kiện bạn bè
  - Tự động phát hiện kết bạn mới, kích hoạt workflow khi có lời mời.

  ---

  ## ⚡️ Cài đặt siêu tốc

  ```bash
  pnpm install
  # hoặc
  npm install
  ```

  **Yêu cầu:**  
  - Node.js >= 16  
  - n8n >= 1.0.0  
  - Đã cài ffmpeg (bắt buộc cho voice-to-text)  
  - Tài khoản Zalo cá nhân

  ---

  ## 🛠️ Hướng dẫn sử dụng nhanh

  1. **Đăng nhập Zalo:**  
     - Dùng node “Zalo Login Via QR Code” để đăng nhập, Credential sẽ tự lưu.

  2. **Cấu hình Credential:**  
     - Có thể nhập cookie/imei/userAgent thủ công hoặc dùng Credential đã lưu.

  3. **Cấu hình Wit.ai (voice-to-text):**  
     - Đăng ký Wit.ai, tạo app cho từng ngôn ngữ (vi, en, zh).
     - Lấy Server Access Token, nhập vào Credential WitAIApi.

  4. **Kéo thả các node Zalo vào workflow:**  
     - Gửi/nhận tin nhắn, quản lý nhóm, bạn bè, voice-to-text...  
     - Kết nối với các node khác để xây dựng quy trình tự động hóa mạnh mẽ.

  ---

  ## 💡 Lưu ý kỹ thuật

  - Voice-to-text chỉ hoạt động với voice message .aac (chuẩn Zalo).
  - Cần cài ffmpeg trên máy chủ/server.
  - Tự động nhận diện ngôn ngữ cần ít nhất 1 token Wit.ai hợp lệ.
  - Nếu workflow chạy trên server, đảm bảo server có internet.

  ---

  ## 🤝 Đóng góp & Phản hồi

  - Gặp lỗi? Có ý tưởng mới?  
    → Tạo issue hoặc pull request ngay trên GitHub!
  - Đội ngũ phát triển luôn lắng nghe và chào đón mọi đóng góp.

  ---

  ## 📬 Liên hệ

  - **Tác giả:** Nguyễn Thắng  
  - **Email:** ntnguyenthangtn@gmail.com

  ---

  > **Hãy để Zalo trở thành một phần của hệ sinh thái tự động hóa của bạn!**  
  > _n8n-nodes-zalo-test-trial - Đơn giản hóa mọi kết nối, bứt phá mọi workflow!_ 

  ---

  ## 🧩 Hướng dẫn chi tiết từng node Zalo

  ---

  ### 1. 🔑 Zalo Login Via QR Code

  **Chức năng:**  
  Đăng nhập tài khoản Zalo cá nhân bằng mã QR, lưu Credential tự động cho các node khác.

  **Cách dùng:**
  - Thêm node “Zalo Login Via QR Code” vào workflow.
  - Chạy node, quét mã QR hiện ra bằng app Zalo trên điện thoại.
  - Sau khi đăng nhập thành công, Credential sẽ được lưu lại (không cần nhập cookie thủ công nữa).

  **Tips:**  
  - Có thể dùng cho nhiều tài khoản Zalo khác nhau, mỗi tài khoản một Credential riêng.
  - Credential này sẽ dùng cho tất cả các node Zalo khác trong workflow.

  ---

  ### 2. 👤 Zalo User

  **Chức năng:**  
  Quản lý tài khoản cá nhân, bạn bè, thông tin user.

  **Các thao tác nổi bật:**
  - Gửi lời mời kết bạn, chấp nhận/kết bạn.
  - Chặn, bỏ chặn người dùng.
  - Đổi avatar, cập nhật thông tin cá nhân.
  - Lấy thông tin chi tiết user (ID, tên, trạng thái, avatar...).

  **Cách dùng:**
  - Thêm node “Zalo User” vào workflow.
  - Chọn Credential Zalo đã đăng nhập.
  - Chọn thao tác muốn thực hiện (ví dụ: “Send Friend Request”, “Get User Info”, ...).
  - Nhập các thông tin cần thiết (userId, avatar URL, ...).

  **Ví dụ:**  
  - Gửi lời mời kết bạn tự động cho danh sách số điện thoại.
  - Lấy thông tin bạn bè để đồng bộ với hệ thống CRM.

  ---

  ### 3. 💬 Zalo Send Message

  **Chức năng:**  
  Gửi tin nhắn tới user hoặc group trên Zalo.

  **Các tính năng:**
  - Gửi text, ảnh, file, nhắc tên, trích dẫn tin nhắn cũ.
  - Gửi nhiều ảnh cùng lúc qua URL.
  - Gửi sự kiện “đang nhập” (typing) để tăng trải nghiệm người nhận.

  **Cách dùng:**
  - Thêm node “Zalo Send Message” vào workflow.
  - Chọn Credential Zalo.
  - Chọn loại đối tượng gửi (user hoặc group).
  - Nhập ID người nhận hoặc group, nội dung tin nhắn, file/ảnh nếu có.

  **Ví dụ:**  
  - Gửi thông báo tự động cho nhóm khi có sự kiện mới.
  - Gửi file báo cáo PDF cho từng user.

  ---

  ### 4. 💬 Zalo Message Trigger

  **Chức năng:**  
  Lắng nghe tin nhắn mới từ user hoặc group, tự động kích hoạt workflow.

  **Các tính năng nổi bật:**
  - Lắng nghe tin nhắn text, ảnh, file, voice.
  - Hỗ trợ voice-to-text: tự động nhận diện ngôn ngữ (Việt, Anh, Trung) hoặc chọn thủ công.
  - Chuẩn hóa text voice kéo dài, trả về cả text, ngôn ngữ và độ tin cậy.
  - Tùy chọn lắng nghe cả tin nhắn do chính mình gửi (self listen).

  **Cách dùng:**
  - Thêm node “Zalo Message Trigger” vào workflow.
  - Chọn Credential Zalo.
  - Chọn loại tin nhắn muốn lắng nghe (user, group).
  - Bật/tắt voice-to-text, chọn chế độ nhận diện ngôn ngữ.
  - Kết nối node này với các node xử lý tiếp theo (ví dụ: gửi email, lưu database, gọi API...).

  **Ví dụ:**  
  - Khi có ai nhắn “báo cáo” vào group, tự động gửi file báo cáo mới nhất.
  - Khi nhận voice message, tự động chuyển thành text và gửi sang hệ thống khác.

  ---

  ### 5. 👥 Zalo Group

  **Chức năng:**  
  Quản lý nhóm Zalo.

  **Các thao tác:**
  - Tạo nhóm mới, thêm/xóa thành viên, đổi tên/avatar nhóm.
  - Lấy thông tin nhóm, danh sách thành viên, quản trị viên.
  - Phân quyền quản trị, thêm phó nhóm.

  **Cách dùng:**
  - Thêm node “Zalo Group” vào workflow.
  - Chọn Credential Zalo.
  - Chọn thao tác muốn thực hiện (tạo nhóm, thêm thành viên, lấy info...).
  - Nhập các thông tin cần thiết (tên nhóm, userId, ...).

  **Ví dụ:**  
  - Tạo nhóm mới cho dự án, tự động thêm thành viên từ danh sách.
  - Lấy danh sách thành viên nhóm để gửi thông báo cá nhân hóa.

  ---

  ### 6. 🤝 Zalo Friend Trigger

  **Chức năng:**  
  Lắng nghe sự kiện kết bạn mới, tự động kích hoạt workflow khi có lời mời kết bạn đến.

  **Cách dùng:**
  - Thêm node “Zalo Friend Trigger” vào workflow.
  - Chọn Credential Zalo.
  - Kết nối với các node xử lý tiếp theo (gửi tin nhắn chào mừng, lưu thông tin bạn mới...).

  **Ví dụ:**  
  - Khi có bạn mới, tự động gửi tin nhắn chào mừng và hướng dẫn sử dụng dịch vụ.
  - Lưu thông tin bạn mới vào Google Sheet hoặc CRM.

  ---

  ## 📌 Lưu ý chung khi sử dụng các node

  - Luôn chọn đúng Credential Zalo cho từng node.
  - Đảm bảo đã đăng nhập thành công bằng QR hoặc nhập đúng cookie/imei/userAgent.
  - Đối với voice-to-text, cần cấu hình token Wit.ai hợp lệ cho từng ngôn ngữ.
  - Có thể kết hợp các node Zalo với bất kỳ node nào khác của n8n để xây dựng workflow mạnh mẽ, sáng tạo! 

ai_documentation_summary:
  {"purpose":"This n8n node package provides a comprehensive suite of nodes for integrating the Zalo messaging platform into automation workflows, enabling chatbot interactions, customer service, and internal notifications.","capabilities":["Zalo QR code login with automatic credential storage","User management (send friend requests, block/unblock, update profile)","Send messages (text, images, files, typing indicators)","Message trigger for real-time event listening","Voice-to-text conversion with multi-language support (Vietnamese, English, Chinese)","Group management (create, add/remove members, permissions)","Friend event monitoring","Integration with Wit.ai for speech recognition"],"authentication":"OAuth2 via QR Code (manual cookie/IMEI/UA fallback)","commonUseCases":["Automated customer support chatbots","CRM integration and data synchronization","Internal alerting and notification systems","Voice message transcription and processing","Automated friend request management"],"limitations":["Voice-to-text requires FFmpeg installation on the server","Voice-to-text only supports .aac format (standard Zalo voice messages)","Voice-to-text requires valid Wit.ai API tokens for language detection","Server must have internet access to function","Currently marked as 'test-trial' in package name"],"relatedNodes":["n8n-nodes-wit-ai","n8n-nodes-webhook","n8n-nodes-http-request"]}


node_type: n8n-nodes-difyai.difyai
package_name: n8n-nodes-difyai
display_name: difyai
description: Community node for Dify API
category: Community
development_style: declarative
version: 0.1.31
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: axyonsoftwares
author_github_url: git+https://github.com/gabrielbuarque/n8n-nodes-difyai.git
npm_package_name: n8n-nodes-difyai
npm_version: 0.1.31
community_fetched_at: 2026-03-25T21:19:41.751Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-difyai

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-difyai.svg)](https://www.npmjs.com/package/n8n-nodes-difyai)
  [![License: MIT](https://img.shields.io/npm/l/n8n-nodes-difyai.svg)](LICENSE)

  Este pacote é um nó da comunidade para o [n8n](https://n8n.io) que integra a **Dify API**.  
  Ele permite enviar mensagens de chat, converter áudio em texto e fazer upload de arquivos diretamente pela API do Dify.

  ## Funcionalidades

  - **Enviar Mensagem de Chat:**  
    Envie mensagens de chat para a API do Dify com suporte aos modos de resposta *streaming* ou *blocking*.  
    Suporta o envio de arquivos via configuração dinâmica (com opções para URLs remotas ou uploads locais).

  - **Áudio para Texto:**  
    Converta arquivos de áudio em texto enviando dados binários.

  - **Upload de Arquivo:**  
    Faça upload de arquivos utilizando `multipart/form-data`.

  ## Instalação no n8n

  Para instalar este nó da comunidade no n8n:

  1. **Acesse as Configurações do n8n:**
     - No editor do n8n, vá para `Settings` > `Community Nodes`.

  2. **Instale o Nó da Comunidade:**
     - Clique em `Install`.
     - No campo `Enter npm package name`, insira `n8n-nodes-difyai`.
     - Marque a opção `I understand the risks of installing unverified code from a public source`.
     - Clique em `Install` para concluir a instalação.

  Para mais detalhes sobre a instalação de nós da comunidade, consulte a [documentação oficial do n8n](https://docs.n8n.io/integrations/community-nodes/installation/).

  ## Configuração de Credenciais

  Antes de usar o nó, configure as credenciais do **DifyApi** no n8n:

  - **Base URL:**  
    Informe a URL base da API do Dify, por exemplo:  
    `https://dify.com/v1`  
    (O nó força HTTPS e garante que a URL termine com `/v1`)

  - **API Key:**  
    Sua chave de API fornecida pelo Dify.

  ## Operações do Nó

  ### 1. Enviar Mensagem de Chat

  Envie uma requisição de mensagem de chat para a API do Dify.

  **Parâmetros:**

  - **User ID:** Identificador único do usuário.
  - **Query:** Conteúdo da mensagem de chat.
  - **Conversation ID:** (Opcional) ID da conversa para continuidade.
  - **Response Mode:** Selecione entre *Streaming* e *Blocking*.
  - **Files:** (Opcional) Adicione um ou mais arquivos.  
    Para cada arquivo, configure:
    - **Type:** Tipo do arquivo (Áudio, Personalizado, Documento, Imagem, Vídeo).
    - **Transfer Method:** Selecione entre *Remote URL* e *Local File*.
    - **URL:** (Exibido quando *Remote URL* é selecionado) Forneça a URL do arquivo.
    - **Upload File ID:** (Exibido quando *Local File* é selecionado) Forneça o ID do arquivo enviado via API de Upload de Arquivo.

  ### 2. Áudio para Texto

  Converta um arquivo de áudio em texto.

  - Utilize o campo **Binary Property** para informar o nome da propriedade binária que contém o arquivo de áudio.
  - O nó envia o arquivo para a API e retorna o texto convertido.

  ### 3. Upload de Arquivo

  Faça upload de um arquivo para a API do Dify.

  - Utilize o campo **Binary Property** para informar o nome da propriedade binária que contém o arquivo.
  - O nó realiza o upload e retorna os detalhes do arquivo (ID, nome, tamanho, etc.).

  ## Uso no n8n

  1. **Adicione o nó DifyAI** ao seu workflow no editor do n8n.
  2. **Selecione a operação desejada** (Enviar Mensagem de Chat, Áudio para Texto ou Upload de Arquivo).
  3. **Configure os parâmetros do nó** e atribua as credenciais **DifyApi**.
  4. **Conecte o nó** ao seu fluxo de trabalho e execute-o para interagir com a API do Dify.

  ## Licença

  Este pacote é licenciado sob a [Licença MIT](LICENSE).

  ---

  Para mais informações sobre a instalação e uso de nós da comunidade no n8n, consulte a [documentação oficial](https://docs.n8n.io/integrations/community-nodes/installation/).

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with the Dify API to enable chat messaging, audio-to-text conversion, and file uploads.","capabilities":["Send chat messages with streaming or blocking response modes","Upload files via multipart/form-data (remote URLs or local files)","Convert audio files to text using binary data","Support multiple file types (audio, custom, document, image, video)","Maintain conversation context via conversation IDs"],"authentication":"API Key required (Base URL and API Key configuration)","commonUseCases":["Chatbot integration with Dify","Audio transcription workflows","Document processing and file management"],"limitations":["Community node (unverified code from public source)","Requires manual installation via npm package manager","File uploads require specific binary property configuration"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-binaryData","n8n-nodes-ai"]}


node_type: n8n-nodes-zapi.zapi
package_name: n8n-nodes-zapi
display_name: zapi
description: Custom n8n node for Z-API.
category: Community
development_style: declarative
version: 0.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: leandcesar
author_github_url: git+https://github.com/leandcesar/n8n-nodes-zapi.git
npm_package_name: n8n-nodes-zapi
npm_version: 0.1.0
community_fetched_at: 2026-03-25T21:19:41.751Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-zapi

  This is an n8n community node. It lets you use Z-API in your n8n workflows.

  Z-API is a service that provides an API enabling interaction with your WhatsApp through a API, along with webhooks to notify you about interactions with your number.

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

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Resources](#resources)

  ## Installation

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

  ## Operations

  <p align="center">
    <img src="docs/assets/actions.png" alt="Actions Image">
  </p>

  The following operations are supported by the Z-API node:

  ### Messages

  #### Send Message
  - [x] Send text
  - [x] Send image
  - [x] Send sticker
  - [x] Send GIF
  - [x] Send audio
  - [x] Send video
  - [x] Send PTV
  - [x] Send documents
  - [ ] Send link
  - [x] Send location
  - [ ] Send contact
  - [ ] Send multiple contacts
  - [ ] ~~Send text with action buttons~~ (unavailable)
  - [ ] ~~Send text with buttons texto~~ (unavailable)
  - [ ] ~~Send image with buttons botões~~ (unavailable)
  - [x] Send list of options

  #### Manage Message
  - [ ] Send reaction
  - [ ] Remove reaction
  - [ ] Delete message
  - [ ] Read message
  - [ ] Forward message
  - [ ] Pin message
  - [ ] Unpin message

  #### Products
  - [ ] Send product
  - [ ] Send catalog
  - [ ] Send order approval
  - [ ] Send order status update
  - [ ] Send payment status update

  #### Events
  - [ ] Send event
  - [ ] Edit event
  - [ ] Respond to event

  #### Polls
  - [ ] Send poll
  - [ ] Send poll vote

  ## Credentials

  To use this node, you need to authenticate with the Z-API service. Follow these steps:

  1. **Sign Up**: Create an account on [Z-API](https://www.z-api.io/).
  2. **Create an Instance**: After signing up, create an instance in the Z-API dashboard. Each instance will have its own ID and Token.
  3. **Get ID and Token**: Go to your instance settings in the admin panel to find your ID and Token.
  4. Navigate to the "Security" tab and find the "Client Token" module.
  5. Click "Configure Now" to generate a token. Initially, the token will be disabled to avoid disruptions.
  6. Activate the token in the Z-API dashboard.
  7. **Add Credentials to n8n**: In n8n, go to the credentials section and add new credentials for Z-API. Use the ID and Token from your Z-API instance and the Client Token from your account.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Z-API documentation](https://developer.z-api.io/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of WhatsApp interactions via the Z-API service, allowing users to send various media types and manage messages within their workflows.","capabilities":["Send text messages","Send images","Send stickers","Send GIFs","Send audio","Send videos","Send PTV (Personalized Text with Video)","Send documents","Send locations","Send lists of options"],"authentication":"API Token (Client Token) + Instance ID","commonUseCases":["Automated customer support on WhatsApp","Sending promotional content and media","Order tracking and status notifications","Event management and reminders","Interactive messaging with polls and lists"],"limitations":["Cannot send links directly","Cannot send contacts","Cannot send multiple contacts","Text with action buttons feature is unavailable","Text with buttons feature is unavailable"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-http-request","n8n-nodes-zapier"]}


node_type: n8n-nodes-comfyui.comfyui
package_name: n8n-nodes-comfyui
display_name: comfyui
description: n8n node to integrate with ComfyUI stable diffusion workflows
category: Community
development_style: declarative
version: 0.0.9
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: mason276752
author_github_url: git+https://github.com/mason276752/n8n-nodes-comfyui.git
npm_package_name: n8n-nodes-comfyui
npm_version: 0.0.9
community_fetched_at: 2026-03-25T21:19:41.752Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-comfyui

  This package provides an n8n node to integrate with [ComfyUI](https://github.com/comfyanonymous/ComfyUI) — a powerful and modular stable diffusion GUI with a graph/nodes interface.

  ## Features

  - Execute ComfyUI workflows directly from n8n
  - Support for multiple input items (each item runs its own workflow)
  - Automatic retrieval of generated images **and videos**
  - Output format conversion: JPEG, PNG, WebP, or Raw (no conversion)
  - Quality control for JPEG and WebP output
  - Progress monitoring and error handling
  - Optional API key authentication
  - Configurable timeout

  ## Prerequisites

  - n8n (version 1.0.0 or later)
  - ComfyUI instance running and accessible
  - Node.js 22.16 or newer

  ## Installation

  ```bash
  pnpm install n8n-nodes-comfyui
  ```

  Or via the n8n community nodes panel: search for `n8n-nodes-comfyui`.

  ## Node Configuration

  ### Credentials

  | Field   | Description                                              |
  |---------|----------------------------------------------------------|
  | API URL | URL of your ComfyUI instance (e.g. `http://127.0.0.1:8188`) |
  | API Key | Optional — required if your ComfyUI has authentication enabled |

  ### Parameters

  | Parameter      | Description                                                                 |
  |----------------|-----------------------------------------------------------------------------|
  | Workflow JSON  | ComfyUI workflow exported as JSON (API format)                              |
  | Output Format  | `JPEG` / `PNG` / `WebP` / `Raw (Original)` — applies to image outputs only |
  | JPEG Quality   | Quality 1–100 (shown when Output Format is JPEG)                           |
  | WebP Quality   | Quality 1–100 (shown when Output Format is WebP)                           |
  | Timeout        | Maximum minutes to wait for workflow completion (default: 30)               |

  ### Output Format notes

  - **JPEG / PNG / WebP** — images are decoded and re-encoded via [sharp](https://sharp.pixelplumbing.com/)
  - **Raw (Original)** — files are downloaded as-is without any conversion; useful for formats sharp doesn't support, or when you want to preserve the original file exactly

  ### Outputs

  Each output item contains:

  **JSON fields**
  - `filename` — original filename from ComfyUI
  - `type` — `output` or `temp`
  - `subfolder` — subfolder path if any
  - `mediaType` — `image` or `video`

  **Binary (`data`)**
  - The file content as binary data, with correct `mimeType` and `fileExtension` set

  ## Multiple Input Items

  When multiple items are passed into this node, each item is processed sequentially — one ComfyUI workflow execution per item. This allows expressions in the Workflow JSON field to reference each item's data (e.g. `{{ $json.prompt }}`).

  ## Usage

  1. Export your workflow from ComfyUI via **Save (API Format)**
  2. Add the ComfyUI node to your n8n workflow
  3. Paste the workflow JSON into the **Workflow JSON** field
  4. Set the API URL in the credentials
  5. Execute — generated images and videos will appear as binary outputs

  ## Error Handling

  The node handles:
  - API connection failures
  - Invalid workflow JSON
  - ComfyUI execution errors (with node ID and error message)
  - Timeout conditions
  - Individual file download failures (non-fatal; returns error in `json.error`)

  ## Development

  ```bash
  # Install dependencies
  pnpm install

  # Build
  pnpm build

  # Watch mode
  pnpm dev

  # Lint
  pnpm lint
  ```

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node integrates with ComfyUI to execute Stable Diffusion workflows directly from n8n, supporting both image and video generation with optional API key authentication.","capabilities":["Execute ComfyUI workflows via JSON API","Process multiple input items sequentially","Retrieve generated images and videos","Convert output formats to JPEG, PNG, WebP, or Raw","Control JPEG and WebP quality (1-100)","Monitor workflow progress","Handle timeouts and errors gracefully","Support expressions in workflow JSON for dynamic inputs"],"authentication":"Optional API key required if ComfyUI instance has authentication enabled","commonUseCases":["Automated image generation in marketing workflows","Video creation pipelines","Dynamic prompt-based content generation","Batch processing of Stable Diffusion workflows"],"limitations":["Requires Node.js 22.16 or newer","Minimum n8n version is 1.0.0","Image outputs in JPEG/WebP formats are re-encoded via sharp (may not preserve exact original quality)","Raw format downloads files without conversion but may not support all formats sharp can handle"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.binaryData","n8n-nodes-base.code"]}


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.2.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
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.2.2
community_fetched_at: 2026-03-25T21:19:41.753Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  n8n node to convert various document formats (DOCX, DOC, XML, YML, 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)](LICENSE)
  [![Tests](https://img.shields.io/badge/tests-57%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](https://img.shields.io/badge/n8n-2.7.0-orange.svg)](https://n8n.io/)

  > **n8n community node** for converting documents to JSON/text. Supports 15+ formats with AI-friendly output.

  ---

  ## Table of Contents

  - [Supported Formats](#supported-formats)
  - [Features](#features)
  - [Installation](#installation)
  - [Usage](#usage)
  - [Output Examples](#output-examples)
  - [Architecture](#architecture)
  - [Development](#development)
  - [License](#license)

  ---

  ## Supported Formats

  | Category | Formats | Details |
  |----------|---------|---------|
  | **Documents** | DOCX, DOC, ODT, TXT, PDF | Text, HTML, or Markdown output for DOCX |
  | **Spreadsheets** | XLSX, ODS, CSV | Multi-sheet parsing for XLSX/ODS and CSV |
  | **Presentations** | PPTX, PPT, ODP | Text extraction |
  | **Web & Data** | HTML, HTM, XML, JSON | Structure-aware parsing |
  | **E-commerce** | YML (Yandex Market) | Specialized shop/offers/categories parsing |

  ---

  ## Features

  **Core**
  - Automatic file type detection via magic bytes
  - Strategy pattern: each format has its own processing pipeline
  - DOCX output: plain text (default), HTML, or **Markdown** (GFM tables, headings, bold/italic)
  - DOCX → Markdown ideal for AI/LLM/RAG pipelines
  - XLSX multi-sheet processing with Excel-style column names (A, B, C...)
  - JSON flattening for nested structures
  - YML (Yandex Market) specialized parser
  - `usableAsTool: true` for n8n AI Agent integration

  **Reliability**
  - Concurrency control via promise pool (Set-based, no race conditions)
  - Fallback chains: DOCX uses officeparser -> mammoth, DOC/PPT uses CFB signature check + officeparser
  - File name sanitization (path traversal protection)
  - Configurable file size limits (up to 100MB)
  - Custom error classes with descriptive messages

  ---

  ## Installation

  ### Via n8n UI (recommended)

  ```
  Settings -> Community nodes -> Install
  Package name: @mazix/n8n-nodes-converter-documents
  ```

  ### Via CLI

  ```bash
  cd ~/.n8n
  npm install @mazix/n8n-nodes-converter-documents
  # Restart n8n
  ```

  ### Manual

  ```bash
  git clone https://github.com/mazixs/n8n-node-converter-documents.git
  cd n8n-node-converter-documents
  npm install
  npm run build
  # Copy dist/ and package.json to ~/.n8n/custom-nodes/n8n-node-converter-documents/
  ```

  ---

  ## Usage

  1. Add **"Convert File to JSON"** node to your workflow
  2. Connect a node that provides binary data (e.g., Read Binary File, HTTP Request)
  3. Configure parameters:

  | Parameter | Default | Description |
  |-----------|---------|-------------|
  | **Binary Property** | `data` | Name of the binary property with the file |
  | **Output Format (DOCX)** | `text` | `text`, `html`, or `markdown` (GFM with tables) |
  | **Max File Size (MB)** | `50` | File size limit |
  | **Max Concurrency** | `4` | Parallel file processing |

  ---

  ## Output Examples

  ### Text document (DOCX, PDF, TXT, etc.)

  ```json
  {
    "text": "Extracted document content...",
    "metadata": {
      "fileName": "report.docx",
      "fileSize": 12345,
      "fileType": "docx",
      "processedAt": "2026-02-08T00:00:00.000Z"
    }
  }
  ```

  ### DOCX with HTML output

  ```json
  {
    "text": "<p>Introduction</p><table><tr><td>Name</td><td>Value</td></tr>...</table>",
    "metadata": { "fileName": "data.docx", "fileType": "docx" }
  }
  ```

  ### DOCX with Markdown output

  ```json
  {
    "text": "# Introduction\n\n| Name | Value |\n| --- | --- |\n| Item | 100 |\n\n**Bold text** and _italic_",
    "metadata": { "fileName": "data.docx", "fileType": "docx" }
  }
  ```

  ### XLSX (multi-sheet)

  ```json
  {
    "sheets": {
      "Products": [
        { "A": "ID", "B": "Name", "C": "Price" },
        { "A": 1, "B": "Apple", "C": 100 }
      ],
      "Orders": [
        { "A": "Order", "B": "Qty" },
        { "A": 101, "B": 5 }
      ]
    },
    "metadata": { "fileName": "data.xlsx", "fileType": "xlsx" }
  }
  ```

  ### JSON (flattened)

  ```json
  {
    "text": "{\n  \"user.name\": \"John\",\n  \"user.address.city\": \"London\"\n}",
    "warning": "Multi-level JSON structure was converted to flat object"
  }
  ```

  ### YML (Yandex Market)

  ```json
  {
    "text": "{ \"shop\": { \"name\": \"MyShop\" }, \"currencies\": [...], \"categories\": [...], \"offers\": [...] }"
  }
  ```

  ---

  ## Architecture

  ### Project Structure

  ```
  src/
  ├── FileToJsonNode.node.ts   # Node class (~220 lines)
  ├── types.ts                 # Interfaces (JsonResult, StrategyFn, YML types)
  ├── errors.ts                # Custom error classes
  ├── helpers.ts               # extractViaOfficeParser, limitExcelSheet
  ├── strategies/
  │   └── index.ts             # All format strategies
  ├── processors/
  │   └── yml.ts               # Yandex Market YML processor
  └── utils/
      ├── sanitize.ts          # File name sanitization
      ├── promisePool.ts       # Concurrency control (Set-based)
      ├── columns.ts           # numberToColumn (1→A, 27→AA)
      ├── flatten.ts           # JSON flattening
      └── index.ts             # Barrel export
  ```

  ### Processing Flow

  ```
  Input binary → detect file type (magic bytes) → select strategy → process → output JSON
                                                        │
                                ┌────────────────────────┼────────────────────┐
                                │                        │                    │
                           Text formats            Spreadsheets         Special
                       (DOCX, PDF, TXT,          (XLSX, CSV, ODS)    (XML, JSON,
                        PPTX, HTML, ODT,                               YML, HTML)
                        ODP, DOC, PPT)
  ```

  ### Technology Stack

  | Component | Library | Version |
  |-----------|---------|---------|
  | DOCX/PDF/PPTX/OD* | officeparser | ^6.0.4 |
  | DOCX (HTML/MD) | mammoth | ^1.11.0 |
  | HTML → Markdown | node-html-markdown | ^2.0.0 |
  | XLSX | read-excel-file | ^6.0.3 |
  | CSV | papaparse | ^5.5.3 |
  | XML/YML | fast-xml-parser | ^5.3.4 |
  | HTML | node-html-parser | ^7.0.2 |
  | Encoding | chardet | ^2.1.1 |
  | File type | file-type | 16.5.4 |
  | n8n SDK | n8n-workflow | ^2.7.0 |
  | Runtime | Node.js | 22.x |
  | Language | TypeScript | 5.8 (strict) |
  | Tests | Jest | 30.x |

  ---

  ## Development

  ```bash
  npm install          # Install dependencies
  npm run build        # Compile TypeScript
  npm test             # Run 57 tests (13 suites)
  npm run lint         # ESLint check
  npm run dev          # Watch mode
  npm run test:coverage # Coverage report
  ```

  ### CI/CD

  - **CI** (`ci.yml`): lint -> build -> test -> security audit on push/PR to main/develop
  - **Auto Release** (`auto-release.yml`): creates GitHub Release + git tag on version bump in main
  - **npm publish**: manual (`npm publish --access public`)

  ---

  ## Limitations

  | Limitation | Details |
  |------------|---------|
  | **Legacy XLS** | Binary Excel not supported, convert to XLSX |
  | **file-type** | Pinned to v16.5.4 (last CJS version, v17+ is ESM-only) |
  | **Scanned PDFs** | Image-based PDFs return empty text (no OCR) |
  | **Large files** | PDF/XLSX load into RAM; use Max File Size to control |

  ---

  ## License

  [MIT](LICENSE) © mazix

  ---

  ## Links

  - [npm](https://www.npmjs.com/package/@mazix/n8n-nodes-converter-documents)
  - [GitHub](https://github.com/mazixs/n8n-node-converter-documents)
  - [Changelog](CHANGELOG.md)

ai_documentation_summary:
  {"purpose":"A n8n community node that converts various document formats (DOCX, PDF, XLSX, CSV, PPTX, HTML, JSON, YML, etc.) into JSON or text formats, including specialized parsing for Yandex Market YML files.","capabilities":["Convert DOCX to text, HTML, or Markdown (with GFM tables and formatting)","Convert PDF, TXT, ODT, ODP, PPT, PPTX to text","Parse XLSX and ODS with multi-sheet support and Excel-style column names","Parse CSV files","Parse HTML and XML with structure-aware parsing","Parse JSON with automatic flattening of nested structures","Specialized parsing for Yandex Market YML files (shops, offers, categories)","Automatic file type detection via magic bytes","Configurable file size limits (up to 100MB)","Concurrency control via promise pool"],"authentication":"None","commonUseCases":["Extracting document content for AI/LLM/RAG pipelines","Parsing spreadsheets for data analysis workflows","Converting uploaded files to structured JSON for downstream processing","Handling e-commerce data from Yandex Market","Preparing document content for chatbot or agent workflows"],"limitations":["Requires n8n 2.7.0 or higher","Not all formats support all output types (e.g., DOCX Markdown is specific)","File size limit of 100MB","Community node (may require manual installation via npm or UI)","Some formats rely on external libraries (officeparser, mammoth) which may have dependencies"],"relatedNodes":["Read Binary File","HTTP Request","AI Agent","JSON to Text","Text to JSON"]}


node_type: @mercadopago/n8n-nodes-mercadopago.mercadopago
package_name: @mercadopago/n8n-nodes-mercadopago
display_name: mercadopago
description: Community node for Mercado Pago
category: Community
development_style: declarative
version: 0.2.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: samher
author_github_url: git+https://github.com/mercadopago/n8n-nodes-mercadopago.git
npm_package_name: @mercadopago/n8n-nodes-mercadopago
npm_version: 0.2.0
community_fetched_at: 2026-03-25T21:19:41.753Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-mercadopago

  [![npm version](https://img.shields.io/npm/v/@mercadopago/n8n-nodes-mercadopago.svg)](https://www.npmjs.com/package/@mercadopago/n8n-nodes-mercadopago)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![Node.js Version](https://img.shields.io/badge/node-%3E%3D20.15-brightgreen)](https://nodejs.org)
  [![Test Coverage](https://img.shields.io/badge/coverage-check%20reports-blue)](./coverage)

  An n8n community node to integrate Mercado Pago APIs. It focuses on two main resource groups: Payment Operations and Reporting (Release/Settlement reports). The node provides a clean UI and typed handlers for each operation, following n8n best practices.

  ## Contributing

  The main purpose of this repository is to provide a robust integration between n8n and Mercado Pago APIs. Development happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read our [contributing guide](CONTRIBUTING.md) to learn how you can take part in improving this node.

  ## Author
  Name: Samuel Heredia
  Team: Tech Stuff IXF - MercadoPago
  Gravatar: <https://gravatar.com/ghostlytraveler48caa8d6d6>

  ## Table of Contents
  - Overview
  - Features
  - Supported Operations
  - Installation
  - Credentials
  - Usage
  - Architecture
  - Development
  - Contributing
  - License
  - Author

  ## Overview
  This node lets you execute common Mercado Pago flows directly from n8n:

  - Create payment links (preferences)
  - Manage Release Reports configuration and retrieval
  - Manage Settlement Reports listing and downloading

  The node is split by Resource to make the UI clear and scalable:

  - Resource: `Payments`
  - Resource: `Reporting`

  ## Features
  - Clear separation by Resource (Payments vs Reporting) using a `Resource` selector.
  - Consistent `Operation` selector per Resource.
  - Validations and helpful error messages for required parameters.
  - Boolean fields sent explicitly with default `false` where required by the API.
  - CSV download support returning raw text, ready to save or transform.

  ## Supported Operations

  ### Payments
  - Create Payment Link (`createPaymentLink`)
    - Builds a Preference with items and optional additional fields (back URLs, auto return, etc.).

  ### Reporting — Release Report
  - List Release Reports (`listReleaseReports`)
    - GET `v1/account/release_report/list` with pagination support (returnAll/limit/offset/apiLimit).
  - Configure Release Report (`configureReleaseReport`)
    - POST `v1/account/release_report/config` with frequency, columns, SFTP, and flags.
  - Edit Release Report Config (`editReleaseReportConfig`)
    - PUT `v1/account/release_report/config` with same schema as creation.
  - Get Release Report Config (`getReleaseReportConfig`)
    - GET `v1/account/release_report/config` returning current JSON configuration.
  - Download Release Report (`downloadReleaseReport`)
    - GET `v1/account/release_report/{file_name}`; returns `text/csv` content.

  ### Reporting — Settlement Report
  - List Settlement Reports (`listSettlementReports`)
    - GET `v1/account/settlement_report/list` with the same pagination pattern as Release.
  - Configure Settlement Report (`configureSettlementReport`)
    - POST `v1/account/settlement_report/config` with frequency, columns, SFTP, and flags.
  - Edit Settlement Report Config (`editSettlementReport`)
    - PUT `v1/account/settlement_report/config` with same schema as creation.
  - Get Settlement Report Config (`getSettlementReportConfig`)
    - GET `v1/account/settlement_report/config` returning current JSON configuration.
  - Download Settlement Report (`downloadSettlementReport`)
    - GET `v1/account/settlement_report/{file_name}`; returns `text/csv` content.

  ## Installation
  1. Build the project:
     - `npm install`
     - `npm run build`
  2. Install the compiled node into your n8n setup (community node install flow) or symlink the `dist/` output as needed.

  ## Credentials
  This node uses a single credential: `mercadoPagoApi` with a Personal Access Token (Access Token / Bearer). Configure it in n8n Credentials and select it in the node.

  ## Usage
  1. Drag the `MercadoPago` node into your n8n workflow.
  2. Select `Resource`:
     - `Payments` for payment links.
     - `Reporting` for release/settlement tasks.
  3. Choose an `Operation` under the selected `Resource`.
  4. Fill the required/optional fields shown by the node UI.
  5. Execute the node.

  Notes:
  - For listing operations, you can toggle `Return All` or set `Limit`, `Offset`, and `API Limit` (page size).
  - For configuration (create/edit), columns support a predefined list of keys or a custom key (via “Custom…” + free text).
  - CSV download operations return a JSON object with a `content` string (raw CSV). You can pipe this into another node to write to file or transform it.

  ## Architecture
  The node is designed for clarity, testability, and extensibility.

  Project layout:
  - `src/`
    - `credentials/`
      - `MercadoPagoApi.credentials.ts` — defines the `mercadoPagoApi` credential.
    - `nodes/MercadoPago/`
      - `MercadoPago.node.ts` — main n8n node definition.
      - `operations/` — one file per operation handler.
        - `createPaymentLink.ts`
        - `listReleaseReports.ts`
        - `configureReleaseReport.ts`
        - `editReleaseReportConfig.ts`
        - `getReleaseReportConfig.ts`
        - `downloadReleaseReport.ts`
        - `listSettlementReports.ts`
        - `configureSettlementReport.ts`
        - `editSettlementReport.ts`
        - `getSettlementReportConfig.ts`
        - `downloadSettlementReport.ts`
        - `index.ts` — operation registry and shared handler types.

  Key design points:
  - `MercadoPago.node.ts` declares `Resource` and `Operation` properties so the UI shows only relevant fields.
  - The node `execute()` builds a `HandlerCtx` passed to the selected operation.
  - `operations/index.ts` exposes a map `{ [operationName]: handler }` for easy dispatch.
  - Each handler encapsulates:
    - Input extraction and validation.
    - Request construction (method, URL, qs, body, headers).
    - Return shape (JSON array/item for n8n).
  - The request wrapper in `execute()` sets the Authorization header automatically and respects `init.json` for non-JSON responses (e.g., CSV download).

  ## Development
  - Scripts:
    - `npm run build` — compile TypeScript to `dist/`.
    - `npm run lint` — run ESLint.
    - `npm run format` — run Prettier (if configured).
    - `npm run test` — run all tests.
    - `npm run test:unit` — run unit tests once.
    - `npm run test:watch` — run tests in watch mode.
    - `npm run test:coverage` — generate test coverage report.
  - Coding guidelines:
    - Keep imports at the top of files.
    - One operation per file under `operations/`.
    - Validate required parameters early and return helpful errors (use `nodeError`).
    - When required by the API, always send boolean fields explicitly with default `false`.
    - Write unit tests for all operations in `tests/operations/`.

  ## Contributing

  Please read our [contributing guide](CONTRIBUTING.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to this node.

  ## License

  This project is [MIT licensed](LICENSE).

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates Mercado Pago APIs to handle payment link creation and reporting operations (release and settlement reports).","capabilities":["Create payment links (preferences)","List release reports with pagination","Configure release reports","Edit release report configuration","Download release reports as CSV","List settlement reports with pagination","Configure settlement reports","Edit settlement report configuration","Download settlement reports as CSV","Return raw CSV content for CSV download operations"],"authentication":"Personal Access Token (Bearer token) via MercadoPagoApi credential","commonUseCases":["Automating payment link generation for e-commerce workflows","Automating financial reporting and reconciliation","Downloading settlement data for accounting systems","Configuring automated report delivery via SFTP"],"limitations":["Requires manual installation via npm build and symlinking (not a native n8n node)","Requires Node.js version >= 20.15","CSV downloads return raw text content that requires additional processing to be saved to files"],"relatedNodes":["n8n HTTP Request","n8n CSV","n8n File"]}


node_type: n8n-nodes-firecrawl.firecrawl
package_name: n8n-nodes-firecrawl
display_name: firecrawl
description: FireCrawl nodes for n8n
category: Community
development_style: declarative
version: 0.3.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: minhlucvan
author_github_url: git+https://github.com/minhlucvan/n8n-nodes-firecrawl.git
npm_package_name: n8n-nodes-firecrawl
npm_version: 0.3.0
community_fetched_at: 2026-03-25T21:19:41.754Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-firecrawl
  ![](./firecrawl.png)

  This is an n8n community node. it lets you use Firecrawl in your n8n workflows.

  Firecrawl is a web scraping tool that allows you to extract data from websites and APIs.

  https://www.firecrawl.dev/

  [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.

  ## Operations

  ### Scrape

  Firecrawl converts web pages into markdown, ideal for LLM applications.

  - It manages complexities: proxies, caching, rate limits, js-blocked content
  - Handles dynamic content: dynamic websites, js-rendered sites, PDFs, images
  - Outputs clean markdown, structured data, screenshots or html.

  ### Crawl

  Firecrawl can recursively search through a urls subdomains, and gather the content

  - Firecrawl thoroughly crawls websites, ensuring comprehensive data extraction while bypassing any web blocker mechanisms. Here’s how it works:

  - URL Analysis: Begins with a specified URL, identifying links by looking at the sitemap and then crawling the website. If no sitemap is found, it will crawl the website following the links.

  - Recursive Traversal: Recursively follows each link to uncover all subpages.

  - Content Scraping: Gathers content from every visited page while handling any complexities like JavaScript rendering or rate limits.

  - Result Compilation: Converts collected data into clean markdown or structured output, perfect for LLM processing or any other task.

  This method guarantees an exhaustive crawl and data collection from any starting URL.

  ### Map

  The easiest way to go from a single url to a map of the entire website. This is extremely useful for:

  - When you need to prompt the end-user to choose which links to scrape
  - Need to quickly know the links on a website
  - Need to scrape pages of a website that are related to a specific topic (use the search parameter)
  - Only need to scrape specific pages of a website

  ## Credentials

  **FireCrawl API**

  The FireCrawl API is the only authentication method available for this node. You can find your API key in the FireCrawl dashboard.


  ## Compatibility

  This node has been tested with the following versions of N8N.

  - N8N 1.57.0

  ## Usage

  - Install the Firecrawl node
  - Enter your Firecrawl API key
  - Choose the operation you want to perform

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Firecrawl API documentation](https://docs.firecrawl.dev/)

ai_documentation_summary:
  {"purpose":"A community node that enables Firecrawl web scraping and crawling capabilities within n8n workflows for extracting data from websites and APIs.","capabilities":["Scrape single URLs to markdown, structured data, screenshots, or HTML","Crawl entire websites recursively with comprehensive data extraction","Map websites to generate a link structure for user selection","Handle dynamic content including JavaScript-rendered sites and PDFs","Manage proxies, caching, and rate limits automatically","Bypass web blocker mechanisms"],"authentication":"API key required (FireCrawl API key from dashboard)","commonUseCases":["Extracting website content for LLM applications","Building knowledge bases from web sources","Mapping website structures for navigation or scraping","Handling complex or JavaScript-heavy websites"],"limitations":["Community node (not official n8n node)","Requires external FireCrawl API key","Tested only on n8n 1.57.0"],"relatedNodes":["n8n-nodes-firecrawl.firecrawlScrape","n8n-nodes-firecrawl.firecrawlCrawl","n8n-nodes-firecrawl.firecrawlMap"]}


node_type: n8n-nodes-text-manipulation.textmanipulation
package_name: n8n-nodes-text-manipulation
display_name: textmanipulation
description: This node allows to modify texts.
category: Community
development_style: declarative
version: 1.4.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: lublak
author_github_url: git+https://github.com/lublak/n8n-nodes-text-manipulation.git
npm_package_name: n8n-nodes-text-manipulation
npm_version: 1.4.0
community_fetched_at: 2026-03-25T21:19:41.754Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  <p align="center">
    <img width="180" height="180" src="/assets/textManipulation/icon.png">
  </p>

  # n8n-nodes-text-manipulation

  [![version](https://img.shields.io/npm/v/n8n-nodes-text-manipulation.svg)](https://www.npmjs.org/package/n8n-nodes-text-manipulation)
  [![downloads](https://img.shields.io/npm/dt/n8n-nodes-text-manipulation.svg)](https://www.npmjs.org/package/n8n-nodes-text-manipulation)
  [![status](https://github.com/lublak/n8n-nodes-text-manipulation/actions/workflows/node.js.yml/badge.svg)](https://github.com/lublak/n8n-nodes-text-manipulation/actions/workflows/node.js.yml)

  Text manipulation allows various manipulations of strings.
  Features:

  - From
  	- Text
  	- File (Binary)
  		- With decode options see icon-v (utf8, base64, utf16, etc...)
  	- JSON
  - To
  	- Text
  	- File (Binary)
  		- With encode options see icon-v (utf8, base64, utf16, etc...)
  	- JSON
  - Get Manipulated Data (use previously manipulated)
  - Skip Non-String
  - Concat
  	- Before
  	- After
  - Decode/Encode
  	- see icon-v (utf8, base64, utf16, etc...)
  	- with strip/add BOM
  - Decode Entities
  	- Url
  	- Url Component
  	- Xml
  		- Legacy
  		- Strict
  	- Html
  		- Legacy
  		- Strict
  - Encode Entities
  	- Url
  	- Url Component
  	- Xml
  		- Extensive
  		- UTF8
  		- NonAscii
  	- Html
  		- Extensive
  		- UTF8
  		- NonAscii
  - Letter Case
  	- Upper Case
  	- Lower Case
  	- Locale Upper Case
  	- Locale Lower Case
  	- Capitalize
  	- Titlecase
  	- Camel Case
  	- Kebab Case
  	- Snake Case
  	- Start Case
  - Replace
  	- Substring
  		- All
  		- Extended
  	- Extended Substring
  		- All
  		- Extended
  	- Regex
  		- Extended
  	- Predefined Rule
  		- Tags
  			- Only Recognised HTML
  		- Character Groups
  			- Newline
  				- Newline Min
  				- Newline Max
  			- Number
  				- Number Min
  				- Number Max
  			- Alpha
  				- Alpha Min
  				- Alpha Max
  			- Whitespace
  				- Whitespace Min
  				- Whitespace Mac
  - Trim
  	- Left
  		- as an unit
  	- Right
  		- as an unit
  	- Both
  		- as an unit
  - Pad
  	- Start
  	- End
  - Substring
  	- StartPosition
  	- With
  		- Complete
  		- Position
  		- Length
  - Repeat
  	- Times
  - Normalize

  ## Install

  ![Settings Animation](/assets/install.gif)

  1. Go to Settings (Cogwheel)
  2. Click on "Community Nodes"
  3. Enter "n8n-nodes-text-manipulation" into the text box
  4. Click on "I understand the risk ..."
  5. Click on "Install"

ai_documentation_summary:
  {"purpose":"The textmanipulation node allows users to perform various string operations, including decoding/encoding, case conversion, entity handling, and text formatting, on text or binary data.","capabilities":["Decode and encode text (UTF8, base64, UTF16)","Decode and encode entities (URL, XML, HTML)","Convert letter case (upper, lower, capitalize, titlecase, camel, kebab, snake)","Replace substrings using regex or predefined rules","Trim, pad, and substring text","Repeat text a specified number of times","Normalize text","Handle binary files with decode/encode options","Skip non-string inputs","Concatenate text before or after manipulation"],"authentication":"None","commonUseCases":["Cleaning and formatting user input","Encoding/decoding data for transmission","Converting text formats (e.g., camelCase to snake_case)","Processing binary files as text","Removing special characters or normalizing data"],"limitations":[],"relatedNodes":["n8n-nodes-core.code","n8n-nodes-core.binary","n8n-nodes-core.httprequest"]}


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-03-25 21:19:41
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-03-25T21:19:41.755Z
ai_summary_generated_at: 2026-03-25 22:47:20
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":"Converts Microsoft Word (.docx) files to GitHub-flavored Markdown with automatic formatting correction and linting.","capabilities":["Converts .docx files to 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 output"],"authentication":"None","commonUseCases":["Converting uploaded Word documents to Markdown for documentation","Preparing Word content for GitHub repositories","Extracting text-only content from Word files by removing images","Formatting Word documents for web publishing"],"limitations":["Requires binary .docx file input","Images are converted to markdown syntax unless explicitly removed","Depends on Mammoth.js and Turndown libraries for conversion"],"relatedNodes":["HTTP Request","File Input","Save to File","Send Email","GitHub Webhook"]}


node_type: @asaasbr/n8n-nodes-asaas.asaas
package_name: @asaasbr/n8n-nodes-asaas
display_name: asaas
description: n8n nodes for integrating with the Asaas API
category: Community
development_style: declarative
version: 1.1.3
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: asaas-pagamentos
author_github_url: git+https://github.com/asaasdev/n8n-plugin-asaas.git
npm_package_name: @asaasbr/n8n-nodes-asaas
npm_version: 1.1.3
community_fetched_at: 2026-03-25T21:19:41.756Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # Módulo Asaas para N8N



  Nó oficial de N8N para integração com a [API do Asaas](https://docs.asaas.com/).
  Este módulo permite automatizar cobranças, gestão de clientes e notificações diretamente em seus fluxos de trabalho no [n8n](https://n8n.io).



  ## Recursos Implementados



  Atualmente, o módulo oferece suporte aos seguintes grupos de recursos da API Asaas:



  - 👥 **Clientes**: criação, listagem, atualização, exclusão e restauração de clientes.

  - 💰 **Cobranças (Payments)**: emissão e consulta de cobranças, incluindo suporte a PIX, boleto e cartão de crédito.

  - 🔔 **Notificações**: configuração e gerenciamento de notificações automáticas.

  - 📄 **Assinaturas e Parcelamentos**: gestão de recorrências e planos parcelados.

  - 💳 **Transações PIX**: criação de cobranças PIX e emissão de QR Codes.

  - 📊 **Financeiro e Relatórios**: extrato, antecipações e estatísticas de faturamento.

  - ⚙️ **Conta e Configurações**: dados comerciais, personalização e webhooks.



  ## Rotas de API utilizadas



  -  *Produção*: [https://api.asaas.com/v3](https://api.asaas.com/v3)

  -  *Sandbox*: [https://api-sandbox.asaas.com/v3](https://api-sandbox.asaas.com/v3)



  ## Instalação



  Via **npm** (recomendado):

  ```bash

  npm install @asaasbr/n8n-nodes-asaas

  ```



  Via **Community Nodes** no n8n:
  📖 **Documentação oficial:**  
  https://docs.asaas.com/docs/n8n

  1. Acesse *Settings → Community Nodes*

  2. Clique em *Install a community node*

  3. Digite: `@asaasbr/n8n-nodes-asaas`

  4. Clique em *Install*



  ## Pré-requisitos



  - Conta no [Asaas](https://asaas.com) (produção ou sandbox)

  - API Key ativa (obtida no painel Asaas)

  - n8n versão `>=1.0.0`

  - Node.js versão `>=20.15`



  ## Configuração



  1. No n8n, vá em **Credentials → Add Credential**

  2. Procure por **Asaas API**

  3. Preencha:

  - API Key: sua chave do Asaas

  - Ambiente: *Sandbox* (testes) ou *Produção*

  4. Teste a conexão e salve

  ## Feedback e Sugestões

  Encontrou algum bug ou tem uma ideia de melhoria?  
  Contribua para tornar este módulo ainda melhor :rocket:

  [https://forms.gle/Hbo5JhEZHJHVSrYH7](https://forms.gle/Hbo5JhEZHJHVSrYH7)


  ## Licença



  MIT

ai_documentation_summary:
  {"purpose":"This n8n node enables integration with the Asaas API to automate financial operations including billing, customer management, and notifications within n8n workflows.","capabilities":["Create, list, update, delete, and restore clients","Issue and query invoices supporting PIX, boleto, and credit card","Configure and manage automatic notifications","Manage subscriptions and installment plans","Create PIX invoices and generate QR Codes","Access financial reports, statements, and revenue statistics","Manage commercial data and webhook configurations"],"authentication":"API Key required","commonUseCases":["Automating invoice generation and payment collection","Managing customer databases and billing cycles","Sending automated payment reminders and notifications","Processing PIX transactions and QR Code generation"],"limitations":["Requires Node.js version >=20.15","Requires an active Asaas account with API Key access"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Credential Manager"]}


node_type: n8n-nodes-minio.minio
package_name: n8n-nodes-minio
display_name: minio
description: n8n custom nodes for Minio
category: Community
development_style: declarative
version: 0.1.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: cedricziel
author_github_url: git+https://github.com/cedricziel/n8n-nodes-minio.git
npm_package_name: n8n-nodes-minio
npm_version: 0.1.4
community_fetched_at: 2026-03-25T21:19:41.759Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-minio

  This is an n8n community node. It lets you use the minio client library in your n8n workflows.

  The primary motivation was to create an easy way to create pre-signed URLs easily.

  [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

  ### Objects

  * `presignedGetObject` - create a presigned URL for an object
  * `presignedPutObject` - create a presigned upload URL for an object
  * `removeObject` - remove an object

  ## Credentials

  To use the minio credentials, you'll need to provide the following:

  * Access Key
  * Secret Key
  * Endpoint

  ## License

  [MIT](./LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Minio object storage, primarily for generating pre-signed URLs and managing objects.","capabilities":["Create presigned GET URLs for object download","Create presigned PUT URLs for object upload","Remove objects from storage"],"authentication":"API key required (Access Key and Secret Key)","commonUseCases":["Secure object download via time-limited URLs","Secure object upload via time-limited URLs","Object cleanup and deletion workflows"],"limitations":["Limited to basic object operations (no list, head, or copy operations mentioned)","Community node (may require manual installation)"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request","n8n-nodes-s3"]}


node_type: n8n-nodes-waha.waha
package_name: n8n-nodes-waha
display_name: waha
description: n8n to connect with WAHA (Whatsapp HTTP API)
category: Community
development_style: declarative
version: 2024.11.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: morning-bird
author_github_url: git+https://github.com/devlikeapro/n8n-nodes-waha.git
npm_package_name: n8n-nodes-waha
npm_version: 2024.11.5
community_fetched_at: 2026-03-25T21:19:41.759Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # @devlikeapro/n8n-nodes-waha
  <p align="center">
    <img src="https://github.com/devlikeapro/n8n-nodes-waha/blob/master/WAHA+n8n.png?raw=true" width='300'/>
  </p>

  This is a n8n community node. 
  It lets you use [WAHA - WhatsApp HTTP API](https://waha.devlike.pro) in your n8n workflows.

  - [**WAHA**](https://waha.devlike.pro) - **WhatsApp API** that you can run in a click!
  - [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  👉 Generated from
  [**WAHA OpenAPI**](https://waha.devlike.pro/swagger/)
  using [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node)

  ![NPM Version](https://img.shields.io/npm/v/%40devlikeapro%2Fn8n-nodes-waha)

  <!-- toc -->

  - [Install WAHA n8n node](#install-waha-n8n-node)
  - [Links](#links)
  - [Workflow Examples](#workflow-examples)

  <!-- tocstop -->

  ![WAHA Workflow Example Screenshot](./waha-n8n-workflow-example.png)

  ## Install WAHA n8n node
  Go to your **n8n** => **Settings** => **Community nodes** and install:

  ```
  @devlikeapro/n8n-nodes-waha
  ```

  If you need help with that, check the
  [**Install community nodes**](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)

  ## Links
  - [**WAHA + n8n: No Code Low Code WhatsApp Automation Step-By-Step Guide**](https://waha/devlike.pro/blog/waha-n8n/)
  - [**🧩 WAHA + n8n Integration**](https://waha.devlike.pro/docs/integrations/n8n/)
  - [**WAHA n8n Workflow Templates**](http://waha-n8n-templates.devlike.pro/)

  ## Workflow Examples
  👉 Check out [**n8n-workflows**](http://waha-n8n-templates.devlike.pro/) folder for examples.

ai_documentation_summary:
  {"purpose":"Connects n8n workflows with WAHA (WhatsApp HTTP API) to automate WhatsApp messaging and interactions.","capabilities":["Send WhatsApp messages","Receive WhatsApp messages","Manage WhatsApp contacts","Create and manage WhatsApp groups","Automate WhatsApp business operations"],"authentication":"API key required (via WAHA credentials)","commonUseCases":["Automated customer support responses","Order status notifications","Appointment reminders","Marketing campaigns"],"limitations":["Requires WAHA account setup","Limited to WhatsApp Business API features supported by WAHA"],"relatedNodes":["n8n-nodes-waha.waha","n8n-nodes-openapi-node"]}


node_type: n8n-nodes-quepasa.quepasa
package_name: n8n-nodes-quepasa
display_name: quepasa
category: Community
development_style: declarative
version: 0.1.84
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: hugodeco
author_github_url: git+https://github.com/sufficit/n8n-nodes-quepasa.git
npm_package_name: n8n-nodes-quepasa
npm_version: 0.1.84
community_fetched_at: 2026-03-25T21:19:41.760Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  This is an n8n community node. It lets you use Quepasa in your n8n workflows. (use with Quepasa >= v4)

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).

  ## Version Changes (0.1.65)

  * in reply to send text messages (missing)

  ## Version Changes (0.1.64)

  * in reply to send messages with attachments

  ## Version Changes (0.1.62)

  * revoke message

  ## Version Changes (0.1.60)

  * message id on sent

  ## Version Changes (0.1.58)

  * error status message

  ## Version Changes (0.1.57)

  * download endpoint to v4 with messageid paramater

  ## Prerequisites

  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/).

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables users to integrate Quepasa (version 4+) into their n8n workflows for messaging and communication tasks.","capabilities":["Send text messages","Send messages with attachments","Revoke messages","Retrieve message IDs on sent","Download messages via v4 endpoint"],"authentication":"API key required (implied by Quepasa integration pattern, not explicitly detailed in README)","commonUseCases":["Automated customer support messaging","Internal team communication automation","Message archiving and retrieval","Attachment-based notifications"],"limitations":["Requires Quepasa client version >= v4","Community node (may lack official support)","Requires manual npm package submission for community availability"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request","n8n-nodes-ai"]}


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-03-25 21:19:41
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-03-25T21:19:41.761Z
ai_summary_generated_at: 2026-03-25 22:47:20
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":"This n8n community node provides comprehensive integration with Wuzapi, a multi-user and multi-device REST API for WhatsApp, enabling automation of messaging, group management, user operations, and real-time event handling.","capabilities":["Send and receive text, images, audio, video, documents, stickers, locations, contacts, templates, buttons, lists, and polls","Manage WhatsApp groups (create, join, leave, update settings, manage participants)","Handle chat interactions (delete, edit, download media, mark as read, react, set presence)","Manage user profiles and contacts (check availability, get info, avatars, contacts)","Configure webhooks for real-time event listening (messages, read receipts, presence, history sync)","Support for media handling via S3 storage and base64 extraction","Advanced message filtering and content parsing in webhook triggers","Interactive message workflows with approval buttons, custom forms, and wait-time limits","Administrative operations for user management (create, list, delete users)"],"authentication":"API key required (Wuzapi token)","commonUseCases":["Automated customer support via WhatsApp","Multi-device WhatsApp business automation","Real-time event monitoring and response workflows","Group management and announcements","Media file sharing and storage integration"],"limitations":["Community node (not official n8n node)","Requires external Wuzapi instance setup","Some advanced features may depend on Wuzapi server configuration"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-webhook","n8n-nodes-s3"]}


node_type: n8n-nodes-synology-suite.synologysuite
package_name: n8n-nodes-synology-suite
display_name: synologysuite
category: Community
development_style: declarative
version: 0.33.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: clawbow
author_github_url: git+https://github.com/ClawBow/n8n-nodes-synology-suite.git
npm_package_name: n8n-nodes-synology-suite
npm_version: 0.33.0
community_fetched_at: 2026-03-25T21:19:41.761Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  n8n community nodes for Synology DSM (API, Drive, Sheets, Office, MailPlus, Calendar, Note, Photos, Contacts, FileStation, Chat, Security, DownloadStation2, Storage Manager, AudioStation) - AI Agent compatible

npm_readme:
  # n8n-nodes-synology-suite

  Community nodes for Synology DSM WebAPI.

  - **NPM**: https://www.npmjs.com/package/n8n-nodes-synology-suite
  - **GitHub**: https://github.com/ClawBow/n8n-nodes-synology-suite
  - **Issues**: https://github.com/ClawBow/n8n-nodes-synology-suite/issues

  ## Project status

  > ⚠️ **Work in progress / actively expanding**
  >
  > This package is under active development. New Synology APIs are added progressively, coverage is improving release after release, and some operations can still be unstable depending on DSM version/build.
  >
  > Bugs are possible (especially on less common DSM/API variants). I’m actively fixing them and extending coverage over time.

  ## Included nodes (current)

  - **Synology API**: generic DSM caller (`api + method + version + params`)
  - **Synology Drive**: file operations, search, links, team folders, labels, webhooks
  - **Synology Sheets**: spreadsheet reads/writes, range ops, exports, batch updates
  - **Synology Office**: Office-family fallback + custom calls
  - **Synology MailPlus**: mailbox/message/label/filter operations
  - **Synology MailPlus Trigger**: incoming mail events (webhook style)
  - **Synology Calendar**: calendars, events, tasks, settings, timezone helpers
  - **Synology Note**: notebooks, notes, todos, tags, search, trash, sharing
  - **Synology Photos**: browse, albums, sharing, favorites, thumbnails
  - **Synology Contacts**: addressbooks, contacts, labels, search
  - **Synology File Station**: list/info/search/copy/move/delete/upload/download/background tasks
  - **Synology Chat**: users/channels/posts/webhooks/apps + custom chat calls
  - **Synology Security Observability**: security/logcenter-style discovery and operations
  - **Synology DownloadStation2**: modern Download Station operations

  ## Coverage philosophy

  Goal: cover as much of the Synology API surface as possible with stable operation-based nodes.

  - New API families are added incrementally.
  - Unsupported or DSM-variant methods can still be reached via `Custom * Call` operations.
  - Runtime probing artifacts are included to document what is actually available on real NAS targets.

  ## Credentials

  `Synology DSM API`
  - Base URL (example: `https://your-nas:5001`)
  - Username
  - Password
  - Session Name (default `FileStation`)
  - Ignore SSL Issues (for self-signed certs)

  ## Node usage examples

  ### Synology Office
  - **List Spreadsheets**: choose `List Spreadsheets`, set folder ID and limit.
  - **Read Range / Cells**: choose `Read Range / Cells`, set `fileId`, optional `sheetId`, and A1 range (`A1:C20`).
  - **Write Range / Cells**: choose `Write Range / Cells`, provide A1 range and a 2D JSON values array.
  - **Append Row**: provide `rowValues` JSON array.
  - If your DSM build uses different method names, keep using operation mode and pass `extraParamsJson`, or use `Custom Office Call`.

  ### Synology MailPlus
  - **List Mailboxes**: operation `List Mailboxes`.
  - **List Messages**: operation `List Messages`, optionally enable `Return All` for auto-pagination.
  - **Get Message Detail**: set `messageId`.
  - **Move Message**: set `messageIds` JSON array and destination mailbox.
  - **Mark Read / Unread**: set `messageId` + boolean `read`.
  - **Add / Remove Label**: set `messageId`, `labelId`, and label action.

  ### Synology Drive
  - **List Files**: supports offset/limit and `Return All`.
  - **Search Files**: can `Wait for Completion` and poll search task results.
  - **Create Share Link**: supports link password, expiration date, and download toggle.
  - `Custom Drive Call` remains available for unsupported variants.

  ## Error handling

  DSM error responses are normalized and include:
  - `api`
  - `method`
  - `version`
  - DSM `code`
  - mapped human message

  All nodes use n8n `continueOnFail()` behavior. If enabled, each failing item emits an error payload instead of stopping the workflow.

  ## Local test

  ```bash
  npm install
  npm run build
  npm run smoke
  ```

  ## Troubleshooting

  - **`code=102/103/104`**: API/method/version mismatch on your DSM version. Use `Custom * Call` mode or provide additional params in `extraParamsJson`.
  - **`code=105/106/107/119`**: auth/session issue. Verify credentials and session name. Re-login retry is automatic once.
  - **Mail label operations fail**: MailPlus versions differ. Try custom call and inspect available methods through `List Mail APIs`.
  - **Office sheet operation fails**: different Office method names exist between builds. Operation mode already attempts multiple method candidates; if still failing, switch to custom call.

  ## API inventories captured from your NAS

  - [`synology-api-catalog.full.json`](https://github.com/ClawBow/n8n-nodes-synology-suite/blob/main/synology-api-catalog.full.json) (full discovered catalog)
  - [`ALL_APIS.md`](https://github.com/ClawBow/n8n-nodes-synology-suite/blob/main/ALL_APIS.md) (human-readable full list)

  Additional per-service inventories (`syno-drive-apis.json`, `syno-office-apis.json`, `syno-mailplus-server-apis.json`, `syno-mailclient-apis.json`) are generated in the **workspace root** during local probing and are not part of this repository by default.

  ## Full-action discovery (exhaustive probe)

  The repository includes an exhaustive action discovery script that probes a conservative method set on every discovered DSM API:

  - candidate methods: `get,list,query,info,start,status,create,update,set,delete,run,stop,search,read,write`
  - default safety mode skips potentially destructive methods (`start/create/update/set/delete/run/stop/write`)
  - credentials are loaded from `../skills/synology-api-discovery/.env` by default

  Run (safe default):

  ```bash
  npm run probe:actions
  ```

  Outputs:
  - `API_PROBE_RESULTS.json` (full machine-readable probe results)
  - `API_PROBE_SUMMARY.md` (human summary, top valid methods, coverage stats)

  Optional destructive probing (use with caution):

  ```bash
  npm run probe:actions:destructive
  ```

  ### Caveats

  - Many endpoints require mandatory params; `error code 101` often means method likely exists but needs args.
  - `error code 103` usually indicates unsupported/non-existent method for that API.
  - Running with `--allow-destructive` can trigger state-changing operations. Prefer non-destructive mode unless on a test NAS.

  ## About Synology Office API docs/slides access

  Based on Synology support feedback, Synology Office API docs/slides resources are currently not accessible.

  If you need access, open a request via official channels:
  - Synology Support Center: https://account.synology.com/support
  - Synology KB portal: https://kb.synology.com/
  - Synology Community: https://community.synology.com/

  If you already received specific support links from Synology, add them here so other users can request the same access path.

  ## Release workflow

  - See [RELEASE_CHECKLIST.md](https://github.com/ClawBow/n8n-nodes-synology-suite/blob/main/RELEASE_CHECKLIST.md) for a safe publish process.
  - See [CHANGELOG.md](https://github.com/ClawBow/n8n-nodes-synology-suite/blob/main/CHANGELOG.md) for version history.

  ## Additional examples

  See [EXAMPLES.md](https://github.com/ClawBow/n8n-nodes-synology-suite/blob/main/EXAMPLES.md) for sample n8n workflow JSON snippets.

ai_documentation_summary:
  {"purpose":"A collection of community nodes enabling n8n workflows to interact with Synology DSM services including Drive, MailPlus, Office, Calendar, Photos, and more via WebAPI.","capabilities":["Generic Synology API calls with customizable method/version/params","File operations (upload, download, search, copy, move, delete) via Drive and File Station","Spreadsheet management (read/write ranges, append rows, exports) via Sheets","Email operations (list messages, move, mark read/unread, label management) via MailPlus","Calendar and Note management (events, tasks, notebooks, tags)","Photo management (albums, sharing, favorites, thumbnails)","Contact and addressbook management","Chat operations (users, channels, posts, webhooks)","Security and logcenter discovery","Download Station 2 operations"],"authentication":"Basic Auth (Username/Password) with configurable Session Name","commonUseCases":["Automating file backup and organization across Synology NAS","Syncing email data between Synology MailPlus and external services","Managing shared folders and generating secure share links","Automating photo album creation and tagging","Integrating Synology Calendar events with workflow automation"],"limitations":["Work in progress with active development; some operations may be unstable depending on DSM version/build","Bugs possible especially on less common DSM/API variants","Some Office and MailPlus operations may fail due to version-specific API method name differences","Requires manual probing or custom calls for unsupported DSM variants","Some per-service API inventories are generated locally and not included in the repository"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.webhook"]}


node_type: n8n-nodes-wts.wts
package_name: n8n-nodes-wts
display_name: wts
description: n8n node to call wts services
category: Community
development_style: declarative
version: 2.0.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: wts-chat
author_github_url: git+https://github.com/wtschat/n8n-nodes.git
npm_package_name: n8n-nodes-wts
npm_version: 2.0.5
community_fetched_at: 2026-03-25T21:19:41.762Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-wts
  Este é um nó Wts Chat, que permite que você use o Wts Chat em seus fluxos de trabalho no n8n.
  Vai facilitar suas automações com a plataforma Wts Chat, de forma rápida, prática e eficiente.
  Permitindo que os usuários criem contatos, notas em um cartão, enviem mensagens de texto, modelos e muito mais.

  # Release Notes
  Atualização do Wts Chat – Versão 2.0.2   19/03/2025

  A nova versão 2.0.2 do nó do Wts Chat traz melhorias e ajustes importantes em diversos módulos. Confira as principais mudanças desta atualização:

  **Módulo Update Card**
  ✅Edição do campo Metadata: Agora, é possível editar apenas o campo Metadata sem a necessidade de modificar outros dados do card.
  ✅Campo Custom Fields de Multiseleção: Para campos do tipo multiseleção, é possível selecionar várias opções separando os valores por vírgulas (exemplo: 1, 2, 3), garantindo mais flexibilidade na escolha de múltiplos valores.

  **Módulo Update Session**
  ✅Novidade: Possibilidade de atribuir valores vazios ('Empty') para usuário e departamento, permitindo alterações independentes:

  Usuário: Agora pode ser atualizado separadamente, bastando definir o valor como ‘Empty’.
  Departamento: Pode ser modificado sem afetar o usuário.
  Usuário e Departamento: Ambos podem ser alterados simultaneamente.
  🚫Remoção do campo 'CompanyId': Esse campo não estará mais disponível na atualização de conversa.

  **Módulo Transfer Session To User**
  🔄Renomeação do módulo: O nome foi atualizado de "Assign user to session" para "Transfer session to user", tornando a ação mais clara e intuitiva.

  **Módulo Complete Session**
  🔄Renomeação do módulo: O nome foi alterado de "Conclude session" para "Complete session".

  **Módulo List Annotations**
  🔄Renomeação do módulo: O nome foi atualizado de "List notes" para "List annotations".

  -----------------------------------------------------------------------------------------------------------------------

  Atualização do Wts Chat – Versão 2.0.3   02/02/2025
    
  A nova versão 2.0.3 do nó do Wts Chat traz os seguintes ajustes ao nó "Send Chatbot".

  ✅Campo "From Name or ID": Esse campo é possível passar o valor como expressão.
  🚫Remoção de validações dos campos.

  -----------------------------------------------------------------------------------------------------------------------

  Atualização do Wts Chat – Versão 2.0.4   27/05/2025

  A nova versão 2.0.4 do nó do Wts Chat traz um ajuste importante no módulo "Send Chatbot", focando na melhoria da identificação dos chatbots disponíveis para envio. A identificação sendo a chave e não mais o id.

  **Módulo Send Chatbot**
  🔄Listagem de Chatbots: Agora, a listagem de chatbots utiliza como valor a chave (key) do chatbot, e não mais o Id.
  🔄Envio da Chave: A chamada ao módulo agora envia a chave do chatbot selecionado, substituindo o envio do Id, garantindo maior consistência com os dados utilizados na plataforma.

  -----------------------------------------------------------------------------------------------------------------------

  Atualização do Wts Chat – Versão 2.0.5 13/08/2025
  A nova versão 2.0.5 do nó do Wts Chat traz correções importantes no integrador N8N. Veja as principais mudanças:

  **Módulo Complete Session**
  ✅Foi adicionado o parâmetro stopBotInExecution, permitindo que o bot seja interrompido ao concluir a sessão.

  **Módulo Create Contact**
  ✅O parâmetro Portfolio (Carteira) foi adicionado, agora permitindo associar um contato a uma carteira específica durante a criação.

  **Módulo List Contacts**
  Endpoint "Get All Contacts": Foi incluído o parâmetro includeDetails para o portfolio, permitindo que os detalhes da carteira sejam retornados ao consultar todos os contatos.



  <h1></h1>
  <h3>📌 Recurso: Contato</h3>

  <details>
    <summary>✅ <b> Criar Contato</b></summary>
  </details>

  <details>
    <summary>✅ <b> Atualizar Contato</b></summary>
  </details> 

  <details>
    <summary>✅ <b> Buscar Contato por ID</b></summary>
  </details>

  <details>
    <summary>✅ <b> Buscar Contato por Telefone</b></summary>
  </details>

  <details>
    <summary>✅ <b> Listar Contatos</b></summary>
  </details>

  <h1></h1>
  <h3>📌 Recurso: Mensagem</h3>

  <details>
    <summary>✅ <b> Enviar Texto</b></summary>
  </details>

  <details>
    <summary>✅ <b> Enviar Arquivo</b></summary>
  </details>

  <details>
    <summary>✅ <b> Enviar Modelo de Mensagem</b></summary>
  </details>


  <details>
    <summary>✅ <b> Buscar Mensagem por ID</b></summary>
  </details>

  <h1></h1>
  <h3>📌 Recurso: Conversa</h3>
  <details>
  <summary>✅ <b> Listar Conversas</b></summary>
  </details>
  <details>
  <summary>✅ <b> Atualizar Transferência</b></summary>
  </details>
  <details>
  <summary>✅ <b> Atualizar Status da Conversa</b></summary>
  </details>
  <details>
  <summary>✅ <b> Buscar Conversa por ID</b></summary>
  </details>
  <details>
  <summary>✅ <b> Atribuir Usuário à Conversa</b></summary>
  </details> 
  <details>
  <summary>✅ <b> Concluir Conversa</b></summary>
  </details>
  <details>
  <summary>✅ <b> Atualizar Conversa</b></summary>
  </details>
  <details>
  <summary>✅ <b> Enviar Mensagem de Texto</b></summary>
  </details>
  <details>
  <summary>✅ <b> Enviar Mensagem com Arquivo</b></summary>
  </details>
  <details>
  <summary>✅ <b> Enviar Modelo de Mensagem</b></summary>
  </details>

  <h1></h1>
  <h3>📌 Recurso: Painel</h3>
  <details>
  <summary>✅ <b> Listar Anotações</b></summary>
  </details>
  <details>
  <summary>✅ <b> Listar Cards</b></summary>
  </details>
  <details>
  <summary>✅ <b> Listar Painéis</b></summary>
  </details>
  <details>
  <summary>✅ <b> Buscar Card por ID</b></summary>
  </details>
  <details>
  <summary>✅ <b> Buscar Painel por ID</b></summary>
  </details>
  <details>
  <summary>✅ <b> Criar Card</b></summary>
  </details>
  <details>
  <summary>✅ <b> Criar Anotação de Texto</b></summary>
  </details>
  <details>
  <summary>✅ <b> Criar Anotação de Arquivo</b></summary>
  </details>
  <details>
  <summary>✅ <b> Deletar Anotação de Card</b></summary>
  </details>
  <details>
  <summary>✅ <b> Duplicação de Card</b></summary>
  </details>
  <details>
  <summary>✅ <b> Atualização de Card</b></summary>
  </details>

  <h1></h1>
  <h3>📌 Recurso: Chatbot</h3>
  <details>
  <summary>✅ <b> Enviar Chatbot</b></summary>
  </details>

  <h1></h1>
  <h3>📌 Recurso: Sequência</h3>
  <details>
  <summary>✅ <b> Adicionar Contato à sequência</b></summary>
  </details>
  <details>
  <summary>✅ <b> Adicionar Contatos à sequência</b></summary>
  </details>
  <details>
  <summary>✅ <b> Remover Contato de uma sequência</b></summary>
  </details>
  <details>
  <summary>✅ <b> Remover Contatos de uma sequência</b></summary>
  </details>
  <details>
  <summary>✅ <b> Listar Sequências</b></summary>
  </details>
  <details>
  <summary>✅ <b> Listar Contatos de uma Sequência</b></summary>
  </details>

  <h1></h1>

  # Instalação

  #### Siga o guia de instalação nos nós da comunidade n8n.

   - Vá para Configurações > Nós da comunidade.

  - Selecione Instalar.

  - Digite o nome do pacote: **n8n-nodes-wts**

  - Depois de instalado, você pode criar um fluxo de trabalho e no painel de nós, pesquisar por: **WTS Chat**

  - Com isso você poderá visualizar as ações disponíveis com o nó.

ai_documentation_summary:
  {"purpose":"This n8n node enables automation workflows to interact with the Wts Chat platform, allowing users to manage contacts, messages, sessions, and dashboard cards.","capabilities":["Create contacts","Update contacts","Search contacts by ID or phone","List all contacts","Send text messages","Send files","Send message templates","Retrieve messages by ID","List conversations","Update session transfers"],"authentication":"API key required","commonUseCases":["Automating customer support interactions via Wts Chat","Managing CRM contacts and notes within n8n workflows","Sending automated messages and files to users","Tracking and updating conversation statuses","Organizing dashboard cards and annotations"],"limitations":["Removal of 'CompanyId' field in session updates","Validation fields removed in version 2.0.3","Chatbot identification now relies on key rather than ID"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-wts.wts","n8n-nodes-wts.wts"]}


node_type: n8n-nodes-deepseek.deepseek
package_name: n8n-nodes-deepseek
display_name: deepseek
category: Community
development_style: declarative
version: 1.0.6
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: rubickecho
author_github_url: git+https://github.com/rubickecho/n8n-deepseek.git
npm_package_name: n8n-nodes-deepseek
npm_version: 1.0.6
community_fetched_at: 2026-03-25T21:19:41.762Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  A user-friendly DeepSeek AI node, similar to OpenAI, designed to enhance your workflow. npm link: https://www.npmjs.com/package/n8n-nodes-deepseek

npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-deepseek

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

  DeepSeek-V2 delivers impressive results on current major large model leaderboards.

  DeepSeek WebSite: https://www.deepseek.com/en


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

  - [Installation](#installation)  
  - [Credentials](#credentials)
  - [Usage](#usage)
  - [Resources](#resources)  

  ## Installation

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

  Use the package at [here](https://www.npmjs.com/package/n8n-nodes-deepseek).

  ## Credentials
  Add your Api Key and store securely

  ![Add Credentials](images/credentials.jpg)

  ## Usage

  Add a DeepSeek node to your workflow, select the action you want to perform, and enter the required fields.

  ![Workflow](images/workflow.jpg)

  Run the workflow, and the result will be displayed in the Run Result node.

  ![Run Result](images/run-result.jpg)

  ### A Simple Demo

  ```json
  {
    "meta": {
      "instanceId": "8419fa436e34f85077f6eb7f63a9c97687d9df6ed55cfc53d58b3b86ab6d8e61"
    },
    "nodes": [
      {
        "parameters": {},
        "id": "a8c5f656-680b-4e43-b626-d3c85b1e21a1",
        "name": "When clicking ‘Test workflow’",
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [
          920,
          480
        ]
      },
      {
        "parameters": {
          "model": "deepseek-chat",
          "prompt": {
            "messages": [
              {
                "role": "system",
                "content": "I want you to act as a etymologist. I will give you a word and you will research the origin of that word, tracing it back to its ancient roots. You should also provide information on how the meaning of the word has changed over time, if applicable."
              },
              {
                "content": "={{ $json.prompt }}"
              }
            ]
          },
          "options": {},
          "requestOptions": {}
        },
        "id": "4841b428-7848-42d1-a0c6-f28c01a07010",
        "name": "DeepSeek",
        "type": "n8n-nodes-deepseek.deepSeek",
        "typeVersion": 1,
        "position": [
          1380,
          480
        ],
        "credentials": {
          "deepSeekApi": {
            "id": "WWBInhkKqwf808n4",
            "name": "DeepSeek account"
          }
        }
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "1b94a0dc-9b9b-4302-a1fd-2ac41b876740",
                "name": "prompt",
                "value": "My word is \"pizza\"",
                "type": "string"
              }
            ]
          },
          "options": {}
        },
        "id": "6e6054b0-bcb4-4fe3-83be-01cd7da39d93",
        "name": "Edit Fields",
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          1160,
          480
        ]
      }
    ],
    "connections": {
      "When clicking ‘Test workflow’": {
        "main": [
          [
            {
              "node": "Edit Fields",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Edit Fields": {
        "main": [
          [
            {
              "node": "DeepSeek",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "pinData": {}
  }
  ```

  ## Resources

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


  ## License

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

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with the DeepSeek AI API to perform text generation and other LLM tasks within workflow automation.","capabilities":["Text generation via chat models (e.g., deepseek-chat)","Support for system prompts and multi-turn conversations","Dynamic prompt injection using n8n expressions","Integration with DeepSeek API for large model inference"],"authentication":"API key required (stored in node credentials)","commonUseCases":["Automated customer support responses","Content generation and summarization","Data analysis and text processing","Workflow automation with natural language understanding"],"limitations":["Community node (may lack official support compared to n8n core nodes)","Dependent on DeepSeek API availability and rate limits","Requires manual installation via npm package"],"relatedNodes":["n8n-nodes-base.manualTrigger","n8n-nodes-base.set","n8n-nodes-base.runResult","n8n-nodes-base.if"]}


node_type: n8n-nodes-browserless.browserless
package_name: n8n-nodes-browserless
display_name: browserless
description: n8n mode integrate with Browserless platform
category: Community
development_style: declarative
version: 1.1.3
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: minhlucvan
author_github_url: git+https://github.com/minhlucvan/n8n-nodes-browserless.git
npm_package_name: n8n-nodes-browserless
npm_version: 1.1.3
community_fetched_at: 2026-03-25T21:19:41.763Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-browserless

  <p align="center">
    <img src="https://user-images.githubusercontent.com/11575076/202373912-a90e5cc0-9dd2-4873-b782-6f86c78f00eb.png" />
  </p>

  #### New Updates: 🎉 **Browserless** API V2 is now supported.

  This is an n8n community node that allows you to interact with a [browserless](https://github.com/browserless/chrome) instance in your `n8n` workflows.

  **Browserless** is a web service that enables remote clients to connect, drive, and execute headless tasks, all within Docker. It provides first-class integrations for Puppeteer, Playwright, Selenium WebDriver, and several REST APIs for common tasks. Additionally, it addresses common issues like missing system fonts, external libraries, and performance improvements. It even handles tasks such as downloading files, managing sessions, and includes a fully-featured documentation site.

  If you’ve struggled with setting up Chrome in Docker or scaling headless workloads, browserless is designed for you.

  If you’ve been trying to automate browser-related tasks like `web scraping`, `browser automation`, `end-to-end testing`, or `PDF generation` with `n8n` and want to avoid dealing with browser infrastructure, the `n8n-nodes-browserless` will make your life easier.

  [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)  
  [Compatibility](#compatibility)  
  [Usage](#usage)  
  [Resources](#resources)  
  [Version history](#version-history)  

  ## Highlights

  - [x] Full control over Browserless
  - [x] Cloud compatibility
  - [x] Docker support by default
  - [x] Live browser debugging
  - [x] JavaScript injection
  - [x] Dynamic page rendering
  - [x] PDF download
  - [x] Screenshot capture
  - [x] Custom code execution

  ## Installation

  1. [Install Docker](https://docs.docker.com/engine/install/)
  2. [Install Browserless](https://docs.browserless.io/docs/docker-quickstart.html)

  ```shell
  $ docker run \
    --rm \
    -p 3000:3000 \
    -e "CONCURRENT=10" \
    -e "TOKEN=6R0W53R135510" \
    ghcr.io/browserless/chromium
  ```

  3. Visit your n8n instance > Settings > Community Nodes > Install `n8n-nodes-browserless`.
  4. Set up Browserless credentials with the URL `http://localhost:3000` and your secure token.
  5. Add the Browserless node to your workflow by searching for `browserless`.
  6. Start using Browserless in your n8n workflows!

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

  ## Operations

  - [Get page content](https://www.browserless.io/docs/content)
  - [Execute custom function](https://www.browserless.io/docs/function)
  - [Generate PDF of a page](https://www.browserless.io/docs/pdf)
  - [Capture page screenshot](https://www.browserless.io/docs/screenshot)
  - [Scrape page as JSON](https://www.browserless.io/docs/scrape)

  ## Credentials

  This node requires a Browserless `URL` and `token` to connect to your Browserless account or a self-hosted Browserless instance.

  ![](.//assets/credentials-setup.png)

  ## Compatibility

  This node was developed on `n8n@0.200.1`. It hasn't been tested on other versions yet.

  ## Usage

  1. Add the `browserless` node to your workflow.
     ![](./assets/browserless-node.png)
  2. Configure your node.
     ![](./assets/browserless-content.png)
     ![](./assets/browserless-screenshot.png)
     ![image](https://user-images.githubusercontent.com/11575076/202370828-c8e3896e-1fc5-4f08-b147-688e55c90c74.png)

  ## Anti-Bot Detection

  With strong support from Browserless, you can implement robust anti-bot detection using the following setup:

  - `Browser Options` > `Stealth` On
  - `Browser Options` > `Headless` Off

  ![](./assets/anti-bot-detector.png)

  ## Resources

  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Browserless Homepage](https://www.browserless.io/)
  * [Browserless API Documentation](https://www.browserless.io/docs/api)
  * [Browserless Self-Hosted Quick Start](https://www.browserless.io/docs/docker-quickstart)

  ## Version History

  - `0.0.1` Initial release
  - `0.2.0` Fixed common issues
  - `0.3.0` Fixed [#1](https://github.com/minhlucvan/n8n-nodes-browserless/issues/1), added tests
  - `0.4.0` Added browser options, set no-cache as the default header
  - `0.5.0` Implemented anti-bot detection
  - `1.0.0` Added support for `browserless` API v2

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with a Browserless instance to perform headless browser tasks without managing local browser infrastructure.","capabilities":["Web scraping as JSON","PDF generation","Screenshot capture","Custom JavaScript execution","Page content retrieval","Live browser debugging","Dynamic page rendering","File downloading","Session management","Anti-bot detection via stealth mode"],"authentication":"API token required (Browserless token)","commonUseCases":["Web scraping automation","End-to-end testing","PDF generation from web pages","Browser automation workflows","Anti-bot detection implementation"],"limitations":["Developed and tested on n8n@0.200.1 only; compatibility with other versions not verified","Requires Docker installation and a running Browserless instance"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n PDF","n8n Screenshot"]}


node_type: n8n-nodes-html-tag-extract.htmltagextract
package_name: n8n-nodes-html-tag-extract
display_name: htmltagextract
description: n8n helper nodes to extract HTML tags, parse JSON and more
category: Community
development_style: declarative
version: 0.2.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: danielvee
author_github_url: git+https://github.com/defmans7/n8n-nodes-html-tag-extract.git
npm_package_name: n8n-nodes-html-tag-extract
npm_version: 0.2.0
community_fetched_at: 2026-03-25T21:19:41.763Z
npm_readme:
  # n8n-nodes-html-tag-extract

  This is an n8n community node. It lets you use extract common HTML tags from an HTML string in your n8n workflows.

  This is my first community node for n8n, I've also included a JSON parse helper node that I use in my workflows. 
  I find it useful to have a node that can parse JSON strings and return the parsed object, 
  because repeating the same custom code node for all my workflows is a bit cumbersome.

  HTML Tag Extract, provides helper nodes to extract HTML tags, parse JSON... and that's basically it.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Usage](#usage)  
  [Acknowledgements](#acknowledgements)  
  [Further (future) development](#further-future-development)

  ## Installation

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

  ## Operations

  * Extract HTML Tags
  * Parse JSON

  ## Usage

  ### Extract HTML Tags
  * Pass a string containing HTML to the Extract HTML Tags node, and it will return the data object containing the tags name and the tag's content.
  * Some tags will be an array of objects, for example, the heading tags (h1, h2, h3, h4, h5, h6) will be an array of objects, each object containing the tag's name and content.
  * There is also a word and character count for the text content of the page.

  ### Parse JSON
  * Pass a string containing JSON to the Parse JSON node, and it will return the parsed object.
  * Sometimes LLM output contains a JSON string within a code block: \```json {"key": "value"} ``` and this node will remove the junk and return the parsed object.

  ## Acknowledgements

  * [Cheerio provides the HTML Tag Extract node](https://www.npmjs.com/package/cheerio)
  * N8N team for the great platform and documentation
  * Aider, mainly for commit messages

  ## Further (future) development

  I'm planning to add more features to this node, such as allowing for extracting specific tags and CSS selectors.

  Also:
  * Parse YouTube iframes / links and extract the video ID
  * Extract images with alt text (currently only extracts the image URL)
  * Find all articles
  * List internal and external links separately
  * Implement better cleanup methods for the text content
  * Maybe include Markdown as an output format, but there's already a community node for [HTML to Markdown conversion](https://www.npmjs.com/package/n8n-nodes-turndown-html-to-markdown)


node_type: n8n-nodes-document-generator.documentgenerator
package_name: n8n-nodes-document-generator
display_name: documentgenerator
description: This node creates dynamic content for documents or emails with Handlebars templates
category: Community
development_style: declarative
version: 1.0.10
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: mcolomer
author_github_url: git+https://github.com/n8nhackers/n8n-nodes-document-generator.git
npm_package_name: n8n-nodes-document-generator
npm_version: 1.0.10
community_fetched_at: 2026-03-25T21:19:41.764Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  ![Banner image](images/n8n-and-n8nhackers.png)

  # n8n-nodes-document-generator

  This is an n8n community node. It helps you to create:
  * One dynamic content per all input items.
  * One dynamic content per input item.

  If you have any questions or remarks please [contact me](mailto:contact@n8nhackers.com).

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

  ## TL;DR
  Don't want to read? Import the sample workflow [Generate dynamic contents for EMAILS or HTML pages](https://n8n.io/workflows/1790-generate-dynamic-contents-for-emails-or-html-pages/) to test this node with random samples. 
  ![Generate dynamic contents for EMAILS or HTML pages](images/workflow-sample.jpeg?raw=true "Generate dynamic contents for EMAILS or HTML pages")

  ## Installation

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

  ## Compatibility

  This node was developed and tested with version 0.193.5 of n8n.

  ## Dependencies
  If you install this node, n8n will install automatically the next extra npm packages:
  * [@jaredwray/fumanchu](https://www.npmjs.com/package/@jaredwray/fumanchu): this new Handlebars replacement provides Handlebars + Helpers Together.

  ## Usage
  The node can solve multiple use cases when creating content like:
  * Email generation (HTML or TEXT)
  * Static HTML pages
  * WordPress posts
  * Telegram/Slack messages
  * Use helpers to filter templates

  The sky is your limit!

  Just follow the next samples to create your dynamic content and forget to use SET, FUNCTION, or FUNCTION ITEM nodes.

  ### All input items in one template

  #### Cases
  * You want to send a list of recent news about n8n.
  * You want to send the list of the customers created in the last hour in your database.

  #### Template
  Supposing that you have a customer list in JSON:
  ```json
  [
  	{
  		"email": "miquel@n8nhackers.com",
  		"name": "Miquel",
  		"primary": true
  	},
  	{
  		"email": "contact@n8nhackers.com",
  		"name": "Contact",
  		"primary": false
  	}
  ]
  ```

  We will try a Handlebars helper #if to show if the contact is the primary email or not.

  If you use the next template:
  ```
  <ul id="customer_list">
    {{#each items}}
    <li>{{name}}: {{email}} {{#if (eq primary true)}}(primary){{/if}}</li>
    {{/each}}
  </ul>
  ```

  And you will get the next output to send by email in HTML format:
  ```
  <ul id="customer_list">
  <li>Miquel: miquel@n8nhackers.com (primary)</li>
  <li>Contact: contact@n8nhackers.com</li>
  </ul>
  ```

  Property **items** is always mandatory to iterate over all items.

  ### One input item per template

  #### Cases
  * You have an invoice with header and lines and you want to send it by email.

  #### Template
  If you have one item/invoice with this JSON:
  ```json
  {
  	"date": "2022-01-12",
  	"to": "N8n hackers",
  	"address": "Granollers, Spain",
  	"total": 133.10,
  	"lines": [
  		{
  			"description": "Create a node to render items in handlebar templates",
  			"quantity": 1,
  			"amount": 100,
  			"vat": 21,
  			"total": 121
  		},
  		{
  			"description": "Test a node to render items in handlebar templates",
  			"quantity": 1,
  			"amount": 10,
  			"vat": 2.10,
  			"total": 12.1
  		}
  	]
  }
  ```

  You need to use this template:
  ```
  Date: {{date}}
  To: {{to}}
  Address: {{address}}
  Details:
  {{#each lines}}
  - "{{description}}" x {{quantity}} = {{amount}}€ + {{vat}}€ = {{total}}€
  {{/each}}
  Total invoice: {{total}}€
  ```

  And you will get the next output to send by email in TEXT format:
  ```
  Date: 2022-01-12
  To: N8n hackers
  Address: Granollers, Spain
  Details:
  - "Create a node to render items in handlebar templates" x 1 = 100€ + 21€ = 121€
  - "Test a node to render items in handlebar templates" x 1 = 10€ + 2.10€ = 12.10€
  Total invoice: 133.10€
  ```

  I recommend using this method if you want to send multiple invoices.

  ## Helpers
  Now the node supports helpers thanks to the [@jaredwray/fumanchu](https://www.npmjs.com/package/@jaredwray/fumanchu#helpers) package. 

  We recommend checking 

  ## Doubts about templates syntax
  Please, check the [official page](https://handlebarsjs.com/guide/expressions.html#basic-usage) to review all the existing expressions in Handlebars.

  ## Another way to try it out

  [N8N documentation on custom nodes](https://docs.n8n.io/nodes/creating-nodes/create-n8n-nodes-module.html)

  Clone the n8n-nodes-document-generator repository and execute:
  ```
  # Use v20.12.2 = lts/iron
  nvm use lts/iron

  # Install dependencies
  npm install

  # Build the code
  npm run build

  # "Publish" the package locally
  npm link
  ```

  Create an N8N installation and add the n8n-nodes-document-generator to it:
  ```
  # Ensure that custom nodes directory exists in your .n8n
  mkdir ~/.n8n/custom

  # Init npm packages (intro to all questions)
  cd ~/.n8n/custom && npm init

  # "Install" the locally published module
  npm link n8n-nodes-document-generator

  # Start n8n
  n8n start
  ```

  # Contribution

  To make this node even better, please let us know, [how you use it](mailto:contact@n8nhackers.com). Commits are always welcome.

  # Issues

  If you have any issues, please [let us know on GitHub](https://github.com/n8nhackers/n8n-nodes-document-generator/issues).

  # About

  Nodes by [n8nhackers.com](https://n8nhackers.com). For productive use and consulting on this, [contact us please](mailto:contact@n8nhackers.com).

  Special thanks to [N8n nodemation](https://n8n.io) workflow automation by Jan Oberhauser.

  # License

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

ai_documentation_summary:
  {"purpose":"Generates dynamic content for documents, emails, or messages using Handlebars templates, supporting both single-item and multi-item input processing.","capabilities":["Render HTML or text content from Handlebars templates","Process one template per all input items (batch mode)","Process one template per input item (individual mode)","Iterate over arrays of data using {{#each}}","Use Handlebars helpers like {{#if}} and {{eq}} for conditional logic","Generate email content (HTML or text format)","Generate static HTML pages","Generate WordPress posts","Generate Telegram or Slack messages","Filter and conditionally display data based on template logic"],"authentication":"None","commonUseCases":["Sending personalized email campaigns with dynamic content","Generating HTML pages for websites","Creating WordPress blog posts with variable data","Automating Telegram or Slack notifications","Processing lists of customers or news items in a single template"],"limitations":["Requires manual installation via npm link for custom node integration","Compatible only with n8n version 0.193.5 or similar","Depends on external npm package @jaredwray/fumanchu for Handlebars support","No built-in authentication or security features for template data"],"relatedNodes":["Handlebars expression node","Set node","Function node","Function item node","Email node"]}


node_type: @splainez/n8n-nodes-phonenumber-parser.phonenumberparser
package_name: @splainez/n8n-nodes-phonenumber-parser
display_name: phonenumberparser
description: Parse a phone number and return its information
category: Community
development_style: declarative
version: 1.2.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: splainez
author_github_url: git+https://github.com/splainez/n8n-nodes-phonenumber-parser.git
npm_package_name: @splainez/n8n-nodes-phonenumber-parser
npm_version: 1.2.0
community_fetched_at: 2026-03-25T21:19:41.764Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-phonenumber-parser

  [![version](https://img.shields.io/npm/v/@splainez/n8n-nodes-phonenumber-parser.svg)](https://www.npmjs.org/package/@splainez/n8n-nodes-phonenumber-parser)

  ## Description

  The `PhoneNumberParser` node is a powerful tool for working with phone numbers in your n8n workflows. It uses the `libphonenumber-js` library to format phone numbers into human-readable formats and extract useful information, such as the country code, area code, and phone number.


  You can also clone the repository from GitHub and build the package yourself.

  ## Installation

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

  ## Usage

  To use the `PhoneNumberParser` node in your n8n workflows, drag and drop the node from the node palette onto your workflow canvas. Then, connect the output of any preceding node to the input of the `PhoneNumberParser` node.

  The `PhoneNumberParser` node has a single input parameter: the phone number to be formatted. This should be a string containing only digits. Once the node receives the phone number, it will automatically format it into a human-readable format and extract useful information, such as the country code, area code, and phone number. The formatted phone number will be output as a JSON object containing these fields.

  This node parses a phone number using the `libphonenumber-js` library and returns its information in JSON format. The following information is included in the output:

  * `country`: The country code associated with the phone number.
  * `countryCallingCode`: The country calling code of the phone number.
  * `nationalNumber`: The national (significant) part of the phone number.
  * `formatNational`: The phone number formatted in national format.
  * `formatInternational`: The phone number formatted in international format.
  * `formatE164`: The phone number formatted in E.164 format.
  * `formatRFC3966`: The phone number formatted in RFC3966 format.
  * `possible`: Whether the length of the phone number is valid, although it may not necessarily be correctly formatted.
  * `valid`: Whether the phone number is valid, based on both length and format.
  * `nonGeographic`: Whether the phone number is non-geographic (i.e., not tied to a specific location).
  * `type`: The type of phone number (e.g., FIXED_LINE_OR_MOBILE, MOBILE, FIXED_LINE, TOLL_FREE, etc.).


  ## License

  This project is licensed under the MIT License. See the `LICENSE` file for more details.

  This project uses the `libphonenumber-js` library, which is also licensed under the MIT License. See the `libphonenumber-js/LICENSE` file for more details.

ai_documentation_summary:
  {"purpose":"The PhoneNumberParser node parses phone numbers using the libphonenumber-js library to extract metadata and format them into various human-readable standards.","capabilities":["Extract country code","Extract area code","Extract national number","Format phone number in national format","Format phone number in international format","Format phone number in E.164 format","Format phone number in RFC3966 format","Validate phone number length","Validate phone number format","Determine if number is non-geographic"],"authentication":"None","commonUseCases":["Standardizing phone number formats across workflow outputs","Validating user-provided phone numbers before processing","Extracting country codes for routing or display purposes","Normalizing phone numbers for database storage"],"limitations":["Input must be a string containing only digits"],"relatedNodes":["httprequest","json","string","if"]}


node_type: n8n-nodes-instagram-integrations.instagramintegrations
package_name: n8n-nodes-instagram-integrations
display_name: instagramintegrations
description: N8N nodes for Instagram API integration with OAuth2 authentication
category: Community
development_style: declarative
version: 1.6.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: msameim181
author_github_url: git+https://github.com/Msameim181/n8n-nodes-instagram-integrations.git
npm_package_name: n8n-nodes-instagram-integrations
npm_version: 1.6.0
community_fetched_at: 2026-03-25T21:19:41.765Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-instagram-integrations

  ![Instagram Banner](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)
  [![npm version](https://img.shields.io/npm/v/n8n-nodes-instagram-integrations.svg)](https://www.npmjs.com/package/n8n-nodes-instagram-integrations)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![n8n](https://img.shields.io/badge/n8n-community-FF6D5A?logo=n8n)](https://n8n.io)
  [![Downloads](https://img.shields.io/npm/dt/n8n-nodes-instagram-integrations.svg)](https://www.npmjs.com/package/n8n-nodes-instagram-integrations)

  Professional N8N community nodes for seamless Instagram Messaging API integration with OAuth2 authentication.

  [Installation](#installation) • [Features](#features) • [Prerequisites](#prerequisites) • [Quick Start](#quick-start) • [Documentation](#documentation) • [Support](#support)

  ---

  ## 📖 Overview

  This package provides comprehensive Instagram integration for n8n workflows, enabling automated messaging, media management, and webhook-based event handling through the official Instagram Graph API.

  **Perfect for:**
  - 🤖 Automated customer support via Instagram DM
  - 📢 Marketing campaigns and notifications
  - 🎯 Lead generation and engagement
  - 📊 Customer interaction tracking
  - 🔄 Multi-platform messaging automation

  ---

  ## ✨ Features

  ### 🔐 OAuth2 Authentication
  - **One-click authentication** - Secure OAuth2 flow similar to Google Drive
  - **🆕 Automatic long-lived tokens** - Short-lived tokens (1 hour) automatically exchanged for long-lived tokens (60 days)
  - **🆕 Automatic token refresh** - Tokens refresh automatically before expiration (zero configuration)
  - **🆕 No more "refreshToken is required" errors** - Smart token lifecycle management prevents expiration issues
  - **Multiple credential types** - OAuth2 or manual access token
  - **Auto-discovery** - Automatically fetches Instagram Business Account ID

  ### 📬 Instagram Messaging Node

  **Message Types:**
  - 💬 **Text Messages** - Send formatted text with up to 1000 characters
  - 🖼️ **Image Messages** - Share images via public HTTPS URLs
  - 🎵 **Audio Messages** - Send voice messages and audio files
  - 🎬 **Video Messages** - Share video content
  - 📤 **Media Upload** - Upload and publish photos, videos, reels, and stories

  **Interactive Templates:**
  - 🔘 **Button Templates** - Up to 3 action buttons (web links or postbacks)
  - 🎴 **Generic Templates** - Carousel cards with images and buttons
  - ⚡ **Quick Replies** - Up to 13 quick response options

  **User Management:**
  - 👤 **Get User Profile** - Retrieve user information (name, username, profile picture)

  ### 💬 Comment Management (NEW in v1.6.0!)

  **Comment Moderation:**
  - 📜 **Get Comments** - Retrieve all comments on your media posts with pagination
  - 💬 **Get Replies** - Fetch replies to specific comments
  - ↩️ **Reply to Comment** - Post public replies to comments on your media
  - 🔒 **Send Private Reply** - Send a DM to users who commented (7-day window)
  - 🗑️ **Delete Comment** - Remove unwanted comments from your posts
  - 👁️ **Hide/Unhide Comment** - Toggle comment visibility without deletion

  **Perfect for:**
  - 🤝 Engaging with your audience through comment replies
  - 📧 Sending exclusive offers via private DM to commenters
  - 🛡️ Moderating spam and unwanted comments
  - 🔄 Automating comment response workflows (Manychat alternative!)

  ### � Instagram Content Publishing (NEW!)

  **Post Creation:**
  - 📷 **Single Posts** - Create image or video feed posts
  - 🎞️ **Carousel Posts** - Multi-media posts (2-10 images/videos)
  - 🎬 **Reels** - Short-form videos up to 60 seconds
  - 📋 **Stories** - 24-hour temporary content

  **Advanced Features:**
  - 🏷️ **User Tagging** - Tag up to 20 users with precise positioning
  - 🛍️ **Product Tagging** - Tag products from Facebook catalog
  - 🤝 **Collaborators** - Tag other accounts as collaborators
  - 📍 **Location Tagging** - Add location stickers to posts
  - 🎨 **Custom Thumbnails** - Set video thumbnail positions
  - 🎵 **Audio Attribution** - Name audio tracks in reels

  **Media Management:**
  - 📊 **List Media** - Get paginated list of your media
  - 🔍 **Get Media Details** - Retrieve specific media information
  - 👶 **Get Carousel Children** - Access individual carousel items

  ###  Instagram Trigger Node

  **Webhook Events:**
  - 💬 **New Messages** - Trigger on incoming messages
  - 🔘 **Postback Events** - Handle button clicks and interactions
  - ✅ **Opt-in Events** - Process user consent actions
  - 💭 **Comments** (NEW!) - Trigger when someone comments on your media
  - 🏷️ **Mentions** (NEW!) - Trigger when someone mentions you in comments or stories

  **Dual Output System:**
  - **Output 1** (Messages/Postbacks/Opt-ins) - Direct messaging events
  - **Output 2** (Comments/Mentions) - Content engagement events

  **Security Features:**
  - 🔒 Webhook signature validation (X-Hub-Signature-256)
  - ✓ Verify token authentication
  - 🛡️ HMAC SHA256 cryptographic verification

  ---

  ## 📋 Prerequisites

  ### Required Accounts
  1. **Facebook Page** - Active Facebook page
  2. **Instagram Business Account** - Connected to your Facebook page
  3. **Meta Developer Account** - Access to Facebook Developer Console
  4. **n8n Instance** - Self-hosted or cloud (version 0.196.0+)

  ### Required Permissions

  **For Messaging:**
  - `instagram_basic` - Basic profile access
  - `instagram_manage_messages` - Send and receive messages
  - `pages_manage_metadata` - Webhook subscriptions
  - `pages_read_engagement` - Read engagement data

  **For Content Publishing (NEW):**
  - `instagram_content_publish` - Create and publish posts, reels, and stories
  - `pages_show_list` - List Facebook pages
  - `catalog_management` - Product tagging (optional, for Instagram Shopping)

  ### Technical Requirements
  - Node.js 18.15+ or 20.10+
  - n8n version 0.196.0 or higher
  - HTTPS webhook endpoint (for trigger node)

  ---

  ## 🚀 Installation

  ### Option 1: n8n Community Nodes (Recommended)

  1. Open n8n
  2. Go to **Settings** → **Community Nodes**
  3. Search for `n8n-nodes-instagram-integrations`
  4. Click **Install**
  5. Restart n8n

  ### Option 2: npm Installation

  ```bash
  cd ~/.n8n/nodes
  npm install n8n-nodes-instagram-integrations
  ```

  ### Option 3: Docker

  Add to your `docker-compose.yml`:

  ```yaml
  services:
    n8n:
      environment:
        - N8N_COMMUNITY_PACKAGES=n8n-nodes-instagram-integrations
  ```

  ---

  ## 🎯 Quick Start

  ### Step 1: Create Meta App

  1. Visit [Meta for Developers](https://developers.facebook.com/apps/)
  2. Click **Create App**
  3. Select **Business** type
  4. Add **Instagram** product
  5. Note your **App ID** and **App Secret**

  ### Step 2: Connect Facebook Page

  1. In App Dashboard → **Instagram** → **Basic Display**
  2. Add your Instagram Business Account
  3. Generate a **Page Access Token** with required permissions
  4. Copy the **Instagram Business Account ID**

  ### Step 3: Configure n8n Credentials

  **Using OAuth2 (Recommended):**

  1. In n8n: **Credentials** → **New** → **Instagram OAuth2 API**
  2. Enter:
     - **Client ID**: Your App ID
     - **Client Secret**: Your App Secret
  3. Click **Connect my account**
  4. Authorize in popup window
  5. ✅ Connection established!

  **Using Access Token:**

  1. In n8n: **Credentials** → **New** → **Instagram Access Token API**
  2. Enter:
     - **Access Token**: Your Page Access Token
  3. Click **Save**
  4. ✅ Account ID auto-discovered!

  ### Step 4: Build Your First Workflow

  1. Create new workflow
  2. Add **Instagram** node
  3. Select **Message** → **Send Text Message**
  4. Configure:
     - **Credential**: Your Instagram credential
     - **Recipient ID**: Target user's Instagram-scoped ID
     - **Message**: Your text content
  5. Execute!

  ---

  ## 📚 Documentation

  ### Core Guides
  - 📘 [**CHANGELOG.md**](./CHANGELOG.md) - Version history and updates
  - 🔧 [**IMPLEMENTATION_GUIDE.md**](./IMPLEMENTATION_GUIDE.md) - Developer documentation
  - � [**AUTHENTICATION_GUIDE.md**](./AUTHENTICATION_GUIDE.md) - Setup and OAuth guide
  - �📋 [**Instruction Files**](./.github/instructions/) - Technical specifications

  ### Content Publishing Guides (NEW!)
  - 🚀 [**QUICKSTART.md**](./QUICKSTART.md) - Get started in 5 minutes
  - 📸 [**POST_STORY_GUIDE.md**](./POST_STORY_GUIDE.md) - Complete post/story creation guide
  - 💡 [**EXAMPLES.md**](./EXAMPLES.md) - Code examples and workflow patterns
  - 📊 [**FEATURE_SUMMARY.md**](./FEATURE_SUMMARY.md) - Technical implementation details

  ### Example Workflows

  **Messaging:**
  - Auto-Reply to Messages
  - Daily Announcements
  - Customer Support Bot

  **Content Publishing:**
  - Scheduled Daily Posts
  - Automated Carousels
  - Story Automation
  - Product Showcase Reels

  ### API Reference

  **Message Operations:**
  - `sendTextMessage` - Send text content
  - `sendImageMessage` - Send image via URL
  - `sendAudioMessage` - Send audio file
  - `sendVideoMessage` - Send video content
  - `sendButtonTemplate` - Interactive buttons
  - `sendGenericTemplate` - Carousel cards
  - `sendQuickReplies` - Quick response options
  - `uploadMedia` - Upload media files

  **Post Operations (NEW):**
  - `createSinglePost` - Create image/video posts
  - `createCarouselPost` - Multi-media carousels
  - `createReel` - Short-form videos
  - `publishPost` - Publish created content

  **Story Operations (NEW):**
  - `createStory` - Create and publish stories

  **Media Operations (NEW):**
  - `listMedia` - Get your media list
  - `getMedia` - Get media details
  - `getMediaChildren` - Get carousel children

  **User Operations:**
  - `getUserProfile` - Fetch user information
  - `getMyProfile` - Get authenticated account info

  **Comment Operations (NEW in v1.6.0):**
  - `getComments` - Get all comments on media
  - `getReplies` - Get replies to a comment
  - `replyToComment` - Post public reply
  - `sendPrivateReply` - Send DM to commenter
  - `deleteComment` - Remove a comment
  - `toggleVisibility` - Hide/unhide comment

  **Webhook Events:**
  - `messages` - Incoming messages
  - `messaging_postbacks` - Button interactions
  - `messaging_optins` - Consent events

  ---

  ## � Token Management (v1.5.0+)

  ### Automatic Long-Lived Token System

  Instagram uses a two-tier token system that this package **automatically manages** for you:

  | Token Type | Validity | Management |
  |------------|----------|------------|
  | Short-lived | 1 hour | Received from OAuth |
  | Long-lived | 60 days | **Auto-exchanged** on first use |
  | Refreshed | 60 days | **Auto-refreshed** before expiration |

  ### How It Works

  ```
  OAuth Authentication (User action)
           ↓
  Short-lived Token (1 hour)
           ↓
  First API Call (automatic)
           ↓
  Long-lived Token Exchange (automatic)
           ↓
  Token Valid for 60 Days
           ↓
  Auto-refresh at 53 Days (automatic)
           ↓
  Another 60 Days of Validity
  ```

  ### Key Features

  ✅ **Zero Configuration** - Everything happens automatically  
  ✅ **No More Errors** - "refreshToken is required" error is eliminated  
  ✅ **Smart Refresh** - Tokens refresh when at least 24 hours old and expiring within 7 days  
  ✅ **Fallback Protection** - If refresh fails, attempts to exchange current OAuth token  
  ✅ **Secure Storage** - All tokens encrypted in N8N credential system  

  ### Best Practices

  1. **Keep Workflows Active**: Run at least once every 50 days to maintain token validity
  2. **Monitor Health**: Create a weekly health-check workflow (optional)
  3. **Handle Errors Gracefully**: Use `continueOnFail` for robust error handling

  ### Token Lifecycle Example

  ```typescript
  // Day 1: OAuth authentication
  User authenticates → Short-lived token (expires in 1 hour)

  // Day 1: First workflow run
  First API call → Automatic exchange → Long-lived token (expires in 60 days)

  // Day 53: Automatic refresh (7 days before expiry)
  API call → Token check → Auto-refresh → New long-lived token (expires in 60 days)

  // Repeat cycle every ~53 days as long as workflows are active
  ```

  ### What If Token Expires?

  If a workflow is inactive for 60+ days:
  1. Token expires and cannot be refreshed
  2. Workflow shows error: "Instagram access token has expired"
  3. **Solution**: Reconnect your Instagram OAuth2 credential (takes 30 seconds)

  ### Learn More

  📘 [**TOKEN_MANAGEMENT.md**](./docs/TOKEN_MANAGEMENT.md) - Comprehensive token management guide  
  🔧 [**TOKEN_MANAGEMENT_IMPLEMENTATION.md**](./docs/TOKEN_MANAGEMENT_IMPLEMENTATION.md) - Technical implementation details

  ---

  ## �🔧 Configuration

  ### Webhook Setup

  1. In Meta App Dashboard → **Instagram** → **Webhooks**
  2. Subscribe to `messages` field
  3. Callback URL: Your n8n webhook URL
     ```
     https://your-n8n.com/webhook/instagram
     ```
  4. Verify Token: Enter in both Meta and n8n credentials
  5. Click **Verify and Save**

  ### Rate Limits

  - **API Calls**: 200 requests per hour per user
  - **Messages**: 1000 characters max
  - **Buttons**: 3 per template, 20 characters per title
  - **Quick Replies**: 13 max per message
  - **Webhook Response**: Must respond within 20 seconds

  ---

  ## 🛠️ Troubleshooting

  ### Common Issues

  **"Invalid OAuth Access Token"**
  - Verify token hasn't expired
  - Check required permissions are granted
  - Regenerate token in Meta Developer Console

  **"Webhook Verification Failed"**
  - Ensure verify token matches in both Meta and n8n
  - Check n8n webhook is publicly accessible via HTTPS
  - Verify firewall allows Meta's IP ranges

  **"User Cannot Receive Messages"**
  - User must initiate conversation first (24-hour window)
  - Use message tags for out-of-window messaging
  - Verify Instagram Business Account is active

  **"Rate Limit Exceeded"**
  - Implement exponential backoff
  - Reduce request frequency
  - Use batch operations where possible

  ### Debug Mode

  Enable n8n debug logging:
  ```bash
  export N8N_LOG_LEVEL=debug
  n8n start
  ```

  ---

  ## 🤝 Support

  ### Resources
  - 📖 [Instagram Graph API Documentation](https://developers.facebook.com/docs/instagram-api)
  - 💬 [n8n Community Forum](https://community.n8n.io)
  - 🐛 [Issue Tracker](https://github.com/Msameim181/n8n-nodes-instagram-integrations/issues)
  - 📧 Email: 9259samei@gmail.com

  ### Contributing

  Contributions are welcome! Please:
  1. Fork the repository
  2. Create a feature branch
  3. Follow existing code style
  4. Add tests for new features
  5. Submit a pull request

  See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) for guidelines.

  ---

  ## 📄 License

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

  Copyright © 2025 Mohammad Mahdi Samei

  ---

  ## 🙏 Acknowledgments

  - Built with [n8n](https://n8n.io) - Fair-code workflow automation
  - Powered by [Instagram Graph API](https://developers.facebook.com/docs/instagram-api)
  - Icons by [Instagram Brand Guidelines](https://en.instagram-brand.com/)

  ---

  ## 📊 Stats

  ![npm](https://img.shields.io/npm/v/n8n-nodes-instagram-integrations)
  ![downloads](https://img.shields.io/npm/dt/n8n-nodes-instagram-integrations)
  ![license](https://img.shields.io/npm/l/n8n-nodes-instagram-integrations)
  ![node version](https://img.shields.io/node/v/n8n-nodes-instagram-integrations)

  ---

  **Made with ❤️ for the n8n community** | [GitHub](https://github.com/Msameim181/n8n-nodes-instagram-integrations) | [npm](https://www.npmjs.com/package/n8n-nodes-instagram-integrations)

ai_documentation_summary:
  {"purpose":"This n8n community node package provides comprehensive Instagram API integration for automated messaging, content publishing, and comment management via OAuth2 authentication.","capabilities":["Send text, image, audio, and video messages","Upload and publish photos, videos, reels, and stories","Create carousel posts with 2-10 media items","Tag users, products, and collaborators in posts","Retrieve and moderate comments with public replies and private DMs","Handle Instagram webhooks for messages, postbacks, and mentions","Get user profiles and media details","Automatic token refresh and long-lived token management"],"authentication":"OAuth2","commonUseCases":["Automated customer support via Instagram DM","Marketing campaigns and notifications","Lead generation and engagement tracking","Comment moderation and automated replies","Social media content publishing and scheduling"],"limitations":["Requires n8n version 0.196.0 or higher","Requires active Facebook Page and connected Instagram Business Account","Requires Meta Developer Account access","Webhook trigger node requires HTTPS endpoint","Product tagging requires catalog_management permission"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-oauth2","n8n-nodes-instagram-messaging","n8n-nodes-instagram-content-publishing"]}


node_type: n8n-nodes-elevenlabs.elevenlabs
package_name: n8n-nodes-elevenlabs
display_name: elevenlabs
description: Complete implementation of ElevenLabs AI voice generation into n8n workflows.
category: Community
development_style: declarative
version: 0.0.6
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: n8ninja
author_github_url: git+https://github.com/n8n-ninja/n8n-nodes-elevenlabs.git
npm_package_name: n8n-nodes-elevenlabs
npm_version: 0.0.6
community_fetched_at: 2026-03-25T21:19:41.765Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-elevenlabs

  > **Currently in BETA and under active development.**

  This n8n community node enables seamless integration of **[ElevenLabs](http://go.n8n.ninja/elevenlabs) in your [n8n](http://go.n8n.ninja/tryn8n) workflows**.

  **[ElevenLabs](http://go.n8n.ninja/elevenlabs)** offers cutting-edge, contextually aware AI voices, allowing you to generate lifelike speech in hundreds of unique and familiar voices across dozens of languages.

  **[n8n](http://go.n8n.ninja/tryn8n)** is a powerful, AI-native, open-source workflow automation tool. Connect hundreds of services and rapidly create complex solutions with ease.

  [![Watch Teaser](https://www.n8n.ninja/images/nodes/elevenlabs/cover-play-youtube.png)](https://youtu.be/R2qFRdu8CMY)
  Watch the teaser and visit the [Official node page](https://go.n8n.ninja/811)

  ## Features

  - **Text to speech**: Turn any text into a high quality audio, lifelike, context-aware speech audio file that you can manipulate in your workflow.
  - **Speech to speech**: Transform your voice into an other character, preserving emotions and deliver with consistency.
  - **Generate voice**: Generate a new voice based on settings like age, gender, accent... add it to your library and start using it your workflow.
  - **Clone your voice**: Clone your own voice from an audio file and use it in your workflow, for text to speech or speech to speech.

  And more: voice library, user and history management.

  ## Installation

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

  ## Credentials

  To use this node, you need to have an [elevenlabs.io](http://go.n8n.ninja/elevenlabs) account and setup your xi-api-key in the node built-in credentials.

  ## Compatibility

  1.39.1 and above

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [elevenlabs api documentation](https://elevenlabs.io/docs/api-reference/getting-started)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates ElevenLabs AI voice generation capabilities into n8n workflows, enabling text-to-speech, speech-to-speech, voice cloning, and custom voice generation.","capabilities":["Text to speech conversion","Speech to speech transformation","Custom voice generation","Voice cloning from audio files","Voice library management","User and history management"],"authentication":"API key required (xi-api-key)","commonUseCases":["Automated voiceovers for content creation","Character voice transformation in media workflows","Personalized audio announcements","Voice cloning for consistent branding"],"limitations":["Currently in BETA and under active development"],"relatedNodes":["n8n-nodes-elevenlabs.elevenlabs"]}


node_type: n8n-nodes-comfyui-image-to-video.comfyuiimagetovideo
package_name: n8n-nodes-comfyui-image-to-video
display_name: comfyuiimagetovideo
description: n8n node to integrate with ComfyUI stable diffusion workflows for image to video conversion
category: Community
development_style: declarative
version: 1.0.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: christiankuri
author_github_url: git+https://github.com/christiankuri/n8n-nodes-comfyui-image-to-video.git
npm_package_name: n8n-nodes-comfyui-image-to-video
npm_version: 1.0.1
community_fetched_at: 2026-03-25T21:19:41.766Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-comfyui-image-to-video

  This package provides n8n nodes to integrate with [ComfyUI](https://github.com/comfyanonymous/ComfyUI) - A powerful and modular stable diffusion GUI with a graph/nodes interface.

  ## Features

  - Execute ComfyUI workflows directly from n8n
  - Generate images and videos using stable diffusion models
  - Support for workflow JSON import
  - Automatic output retrieval from workflow outputs
  - Progress monitoring and error handling
  - Support for API key authentication
  - Configurable timeout settings

  ## Prerequisites

  - n8n (version 1.0.0 or later)
  - ComfyUI instance running and accessible
  - Node.js 16 or newer

  ## Installation

  ```bash
  npm install n8n-nodes-comfyui-image-to-video
  ```

  ## Node Types

  ### ComfyUI Node

  This node allows you to execute ComfyUI workflows and retrieve generated images.

  #### Settings

  - **API URL**: The URL of your ComfyUI instance (default: http://127.0.0.1:8188)
  - **API Key**: Optional API key if authentication is enabled
  - **Workflow JSON**: The ComfyUI workflow in JSON format

  #### Outputs

  The node outputs an array of generated images with:
  - `filename`: Name of the generated image file
  - `subfolder`: Subfolder path if any
  - `data`: Base64 encoded image data

  ### ComfyUI Image to Video Node

  This node allows you to convert images to videos using ComfyUI's image-to-video capabilities (like AnimateDiff, WanImageToVideo, or video generation models).

  #### Settings

  - **API URL**: The URL of your ComfyUI instance (default: http://127.0.0.1:8188)
  - **API Key**: Optional API key if authentication is enabled
  - **Workflow JSON**: The ComfyUI workflow in JSON format for video generation
  - **Input Type**: Choose between URL, Base64, or Binary input methods
  - **Input Image**: URL or base64 string of the input image (when using URL or Base64 input type)
  - **Binary Property**: Name of the binary property containing the image (when using Binary input type)
  - **Timeout**: Maximum time in minutes to wait for video generation

  #### Input

  The node accepts an image input in three ways:
  1. **URL**: Provide a direct URL to an image
  2. **Base64**: Provide a base64-encoded image string
  3. **Binary**: Use an image from a binary property in the workflow (e.g., from an HTTP Request node)

  #### Outputs

  The node outputs the generated video:
  - In the `binary.data` property with proper MIME type and file information
  - `fileName`: Name of the generated video file
  - `data`: Base64 encoded video data
  - `fileType`: The type of video file (e.g., 'video')
  - `fileSize`: Size of the video in KB
  - `fileExtension`: File extension (webp, mp4, gif)
  - `mimeType`: MIME type of the video

  > **Note**: If multiple videos are generated by the ComfyUI workflow, only the first video output will be returned. The node currently prioritizes video outputs (files with .webp, .mp4, or .gif extensions) and returns the first one it finds.

  ## Usage Examples

  ### Using the ComfyUI Node

  1. Export your workflow from ComfyUI as JSON
  2. Create a new workflow in n8n
  3. Add the ComfyUI node
  4. Paste your workflow JSON
  5. Configure the API URL
  6. Execute and retrieve generated images

  ### Using the ComfyUI Image to Video Node

  1. Create a workflow in ComfyUI for video generation (e.g., using WanImageToVideo, VHS_VideoCombine)
  2. Export the workflow as JSON (API)
  4. Add the ComfyUI Image to Video node
  5. Paste your workflow JSON
  6. Select the appropriate Input Type:
     - For URL: Enter the image URL
     - For Base64: Provide a base64 string
     - For Binary: Specify the binary property containing the image (default: "data")
  7. Configure timeout as needed
  8. Execute the workflow to generate a video from your input image

  ## Error Handling

  The node includes comprehensive error handling for:
  - API connection issues
  - Invalid workflow JSON
  - Execution failures
  - Timeout conditions
  - Input image validation

  ## Development

  ```bash
  # Install dependencies
  npm install

  # Build
  npm run build

  # Test
  npm run test

  # Lint
  npm run lint
  ```

  ## License

  [MIT](LICENSE.md)
   

ai_documentation_summary:
  {"purpose":"This n8n node integrates with ComfyUI to execute stable diffusion workflows for generating images and converting images to videos.","capabilities":["Execute ComfyUI workflows directly from n8n","Generate images using stable diffusion models","Convert images to videos using models like AnimateDiff or WanImageToVideo","Import and run workflows via JSON format","Accept image inputs via URL, Base64, or Binary properties","Monitor progress and handle errors","Support configurable timeout settings"],"authentication":"API key required (optional)","commonUseCases":["Generate images from text prompts using stable diffusion","Convert static images into animated videos","Run complex diffusion workflows without manual ComfyUI setup","Integrate video generation into automated marketing or content workflows"],"limitations":["Only returns the first video output if multiple are generated","Prioritizes video files with .webp, .mp4, or .gif extensions","Requires a running ComfyUI instance accessible via API","Node version requires n8n 1.0.0 or later"],"relatedNodes":["ComfyUI","HTTP Request","Binary File","Code"]}


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-03-25 21:19:41
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-03-25T21:19:41.767Z
ai_summary_generated_at: 2026-03-25 22:47:20
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":"Automates browser actions in n8n workflows using Playwright for tasks like navigation, data extraction, form filling, and screenshot capture.","capabilities":["Navigate to URLs and retrieve page content","Take full-page or viewport screenshots (including Base64 output)","Extract text from elements using CSS selectors or XPath","Click elements using CSS selectors or XPath","Fill form fields using CSS selectors or XPath","Execute custom JavaScript with full Playwright API access","Support multiple browsers (Chromium, Firefox, WebKit)","Configure headless mode and slow motion","Handle binary data output","Manage cookies for session persistence"],"authentication":"None","commonUseCases":["Web scraping and data extraction","Form automation and login workflows","Screenshot generation for reports","Browser-based testing within n8n","Automated data collection from websites"],"limitations":["Requires approximately 1GB of disk space for browser binaries","Manual browser setup may be needed if not automatic","Custom scripts require JavaScript knowledge"],"relatedNodes":["Code","HTTP Request","Binary Data"]}


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-03-25 21:19:41
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-03-25T21:19:41.767Z
ai_summary_generated_at: 2026-03-25 22:47:20
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":"Validates input data against JSON Schemas to ensure data integrity and format compliance.","capabilities":["JSON Schema validation","Input data verification","Format compliance checking"],"authentication":"None","commonUseCases":["Validating API request payloads","Ensuring data format before processing","Quality control for incoming data streams"],"limitations":["Requires external JSON Schema definitions"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-http.response"]}


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-03-25 21:19:41
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-03-25T21:19:41.768Z
ai_summary_generated_at: 2026-03-25 22:47:20
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":"Triggers an n8n workflow automatically when specific events occur in a Discord server, such as messages, reactions, or user/role changes.","capabilities":["Listen to Discord chat messages (server and direct messages)","React to messages with specific patterns or triggers","Fetch lists of channels and roles","Trigger on GuildMemberUpdate events (user joins/leaves guild)","Trigger on Role created/deleted/updated events","Support multiple clients across different workflows","Require reference messages for triggering","Send confirmation messages with timeout options"],"authentication":"OAuth2 (Discord Client ID and Bot Token) + n8n API Key","commonUseCases":["Automate responses to incoming Discord messages","Monitor server activity and react to specific keywords","Automatically assign roles when users join or leave","Create automated workflows based on role changes","Fetch channel and role information for other nodes"],"limitations":["Requires Privileged Gateway Intents (Message Intent) to be enabled in Discord Developer Portal","Bot must have read channel permissions to function","Compatibility limited to n8n version 1.75.2 (as of documentation)","Community node (requires manual installation)"],"relatedNodes":["discordinteraction","discordwebhook","discordmessage"]}


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-03-25 21:19:41
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-03-25T21:19:41.769Z
ai_summary_generated_at: 2026-03-25 22:47:20
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":"This n8n community node enables programmatic web searches using Google's Custom Search API, allowing workflows to retrieve information from the internet.","capabilities":["Execute custom search queries via Google Custom Search API","Filter results by date range (past 24h, week, month, year)","Search for exact phrases or exclude specific terms","Filter results by file type (PDF, DOC, etc.)","Filter images by size, color type, and dominant color","Restrict results to specific sites or link sites","Sort results by relevance or date","Enable safe search filtering","Support automatic pagination for large result sets","Integrate as a tool in AI Agent workflows"],"authentication":"API key required (Google Cloud API key and Custom Search Engine ID)","commonUseCases":["Content research and information gathering","Competitor analysis and brand monitoring","Lead generation and contact information retrieval","SEO keyword analysis","Automated web data collection"],"limitations":["Requires Google Cloud Platform account and Custom Search Engine setup","Requires n8n v0.198.0+ (v1.40+ for AI Agent tool usage)","Requires Node.js 18.10 or higher","Community node requires enabling community packages in n8n settings","AI Agent tool usage requires additional environment variable configuration"],"relatedNodes":["AI Agent node","HTTP Request node","Webhook node"]}


node_type: n8n-nodes-asaas-v2.asaasv2
package_name: n8n-nodes-asaas-v2
display_name: asaasv2
description: Nó n8n para integração com a API do Asaas
category: Community
development_style: declarative
version: 1.0.15
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: degoisrs
author_github_url: git+https://github.com/analixbi/n8n-nodes-asaas-v2.git
npm_package_name: n8n-nodes-asaas-v2
npm_version: 1.0.15
community_fetched_at: 2026-03-25T21:19:41.769Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-asaas-v2

  Este é um nó não oficial do n8n para integração com a API do Asaas v3.

  ## Sobre a Analix Business Intelligence

  A Analix Business Intelligence é uma empresa especializada em soluções tecnológicas para negócios, oferecendo:

  - Desenvolvimento de agentes de atendimento para redes sociais com IA
  - Sistemas de notificação automático para WooCommerce
  - Sistema de atendimento multi atendente
  - Desenvolvimento de sites WordPress com WooCommerce para venda

  ## Contato

  - Website: [analixbi.com.br](https://analixbi.com.br)
  - Email: contato@analixbi.com.br
  - Telefone: +55 (54) 99135-7745

  ## Recursos

  - Clientes
    - Criar
    - Listar
    - Buscar
    - Atualizar
    - Remover

  - Pagamentos
    - Criar
    - Listar
    - Buscar
    - Atualizar
    - Remover

  - Assinaturas
    - Criar
    - Listar
    - Buscar
    - Atualizar
    - Remover

  - Links de Pagamento
    - Criar
    - Listar
    - Buscar
    - Atualizar
    - Remover

  - PIX
    - Criar
    - Listar
    - Buscar
    - Remover

  ## Instalação

  ```bash
  npm install n8n-nodes-asaas-v2
  ```

  ## Configuração

  1. Acesse [Asaas](https://www.asaas.com)
  2. Faça login na sua conta
  3. Vá em Configurações > API
  4. Gere uma nova API Key
  5. Configure no n8n:
     - Nome: Asaas API
     - API Key: sua_api_key
     - Ambiente: Produção ou Sandbox

  ## Ambiente Sandbox

  Para testar sem custos reais, use o ambiente sandbox:

  - API Key de sandbox
  - Dados fictícios seguros
  - Sem cobranças reais

  ## Suporte

  Para suporte técnico:

  - Email: contato@analixbi.com.br
  - Telefone: +55 (54) 99135-7745
  - Website: [analixbi.com.br](https://analixbi.com.br)

  ## Licença

  MIT 

ai_documentation_summary:
  {"purpose":"An unofficial n8n node for integrating with the Asaas v3 API to manage financial operations like clients, payments, subscriptions, and PIX.","capabilities":["Create clients","List clients","Search clients","Update clients","Delete clients","Create payments","List payments","Search payments","Update payments","Delete payments"],"authentication":"API Key required","commonUseCases":["Automating client management in Brazilian businesses","Processing and tracking payments via Asaas","Managing subscription billing cycles","Handling PIX payments for instant transfers","Integrating Asaas API into n8n workflows for data processing"],"limitations":["Unofficial node (not maintained by Asaas or n8n core)","Support depends on the third-party developer (Analix Business Intelligence)"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-tesseractjs.tesseractjs
package_name: n8n-nodes-tesseractjs
display_name: tesseractjs
description: A n8n module that exposes Tesseract.js, an OCR library that can detect text on images
category: Community
development_style: declarative
version: 1.5.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: jreyesr
author_github_url: git+https://github.com/jreyesr/n8n-nodes-tesseractjs.git
npm_package_name: n8n-nodes-tesseractjs
npm_version: 1.5.1
community_fetched_at: 2026-03-25T21:19:41.769Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-tesseractjs

  This is a n8n community node. It lets you use [Tesseract.js](https://tesseract.projectnaptha.com/) in your n8n
  workflows.

  [Tesseract](https://github.com/tesseract-ocr/tesseract?tab=readme-ov-file#about) is an open source OCR (Optical
  Character Recognition) engine that can recognize text (machine/typed/printed text, not handwritten) in images (e.g. PNG
  or JPEG) or images embedded in PDF files.

  To read text from PDFs directly (not from images), you may want
  [the **Extract from PDF** operation of the built-in **Extract from file** node
  ](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.extractfromfile/#operations)

  [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)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [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.

  You can quickly get started by importing [the sample playbook](./sample_workflow.json).

  ## Operations

  Note: both operations will output a new binary field, called `ocr`, which contains the image that was actually OCR'd.
  For input images, this will be the same image. For input PDFs, this will be each image in the PDF.

  ### Extract text

  This operation reads the text of the entire image. It outputs a JSON item containing the entire recognized text, and a "
  confidence value" indicating how likely the generated text is to match the source image, as a percentage:

  ```json
  {
  	"text": "...",
  	"confidence": 94
  }
  ```

  If passed a PDF instead of an image, the node may output several items, one for each image in the PDF. Each item will
  have the format described above.

  ### Extract boxes

  This operation also reads text, but returns more information about the bounding box of each detected block, and the
  detected
  language if available.

  The "granularity" of the detections can be controlled: you can split on paragraphs, lines, words or individual
  characters.

  ```json
  {
  	"blocks": [
  		{
  			"text": "This",
  			"confidence": 95.15690612792969,
  			"bbox": {
  				"x0": 36,
  				"y0": 92,
  				"x1": 96,
  				"y1": 116
  			},
  			"language": "eng"
  		},
  		{
  			"text": "is",
  			"confidence": 95.15690612792969,
  			"bbox": {
  				"x0": 109,
  				"y0": 92,
  				"x1": 129,
  				"y1": 116
  			},
  			"language": "eng"
  		},
  		...
  	]
  }
  ```

  ![an image of some text with Tesseract detections overlaid. Each word is surrounded in a light red box, and each box also has text on top indicating the detected word and confidence percentage](imgs/words.png)

  Entire paragraphs:

  ![an image of the same text with Tesseract per-paragraph detections overlaid as one red box covering each paragraph](imgs/paragraphs.png)

  Per-line statistics:

  ![an image of the same text with Tesseract per-line detections overlaid as one red box covering each line](imgs/lines.png)

  If passed a PDF instead of an image, the node may output several items, one for each image in the PDF. Each item will
  have the format described above.

  ## Compatibility

  This node has been tested on n8n v1.68.0, but should also work on older versions. If you encounter an issue with an
  older version, please [raise an issue](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues).

  ## Usage

  ### Input Image Field Name

  All Operations of this node have a field **Input Image Field Name**, where the _name_ of a Binary item should be
  provided:

  ![a screenshot of the node UI showing an input item with Binary data](imgs/iifn.png)

  The Binary file with that name will be read and processed. It should be an image or a PDF document. If a PDF, all images
  inside the PDF will be extracted and processed separately.

  ### Detect on Entire Image?

  It's possible to limit the OCR to a certain segment of an image, by toggling the **Detect on Entire Image?** switch
  to Off. When doing so, it's necessary to provide the top and left coordinates of the desired bounding box, and the width
  and height of the box. For example:

  ![a screenshot of the node settings showing that when the Detect on Entire Image switch is Off, there are fields to provide the top, left, width and height of the desired bounding box](imgs/bbox.png)

  This could delineate a region like this:

  ![an image with some text and a light green box that covers only part of it](imgs/bbox_vis.png)

  When performing OCR on that region, it'd only return the text that was contained in that box, even truncating words of
  they lie halfway across the bounding box's borders:

  ![an image with some text and the OCR detections overlaid, showing that only text that lies inside the area of interest has been recognized](imgs/bbox_ocr.png)

  ### Force Resolution

  This option can be used if Tesseract can't autodetect the image's resolution, such as a PNG that doesn't carry that
  information.

  ### Minimum Confidence

  Each recognized block of text (the entire image in the Extract Text operation, or a block such as a paragraph, word or
  letter in the Extract Boxes operation) has a `confidence` value
  that [correlates with the likelihood of the recognized text being correct](https://groups.google.com/g/tesseract-ocr/c/SN8L0IA_0D4/m/sFG8cvitAQAJ).
  Lower confidences are more likely to contain wrong characters or be junk (such as the OCR engine "recognizing" text in
  an image that has none).

  > In my experience values below 95 are usually unusable. Above 99 is usually correct. I would set the threshold
  > somewhere between 97.5 and 98.5 depending on your requirements.
  >
  > The lowest value I have ever seen is 75 but anything below 90 is extremely rare, even below 95 is rare.

  Set the Minimum Confidence option to filter low-confidence results. Ony results that have a confidence _greater than or
  equal to_ this value will be returned. By default, or if not provided, it'll be 0, meaning that no filtering will be
  performed (because confidence is an integer between 0 and 100, so all confidences are greater than or equal to zero).

  ### Timeout

  If you'd like to abort OCR when a certain image takes too long to process, set the Timeout option (in milliseconds).

  Any items that take longer than that time to process will be interrupted and raise an error.
  Set [On Error](https://community.n8n.io/t/issue-with-continue-using-error-output-never-any-output/57194) on the node's
  Settings if you want execution to continue.

  Items that time out will have the `error` or `timeout` key set in the JSON output, so they can be extracted later if
  desired. Items that have a `confidence` were successfully processed.

  ### Controlling which characters can and can't be recognized

  If you know that the source image can only have certain characters (e.g. license plates that can only have uppercase
  letters, numbers or a dash) or can't have certain characters (e.g. if Tesseract is inserting question marks when there
  aren't any), you can explicitly specify which characters will be allowed or which characters will be ignored.

  For example, when only the digits 0-9 are allowed, and splitting on words:

  ![a screenshot of text where only a number 12 has been detected. All other characters, which are letters, are ignored](imgs/whitelist.png)

  Or, when disallowing all uppercase characters:

  ![a screenshot of text where the capital letters that start each sentence have been ignored](imgs/blacklist.png)

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Tesseract.js's docs](https://github.com/naptha/tesseract.js/tree/master/docs)

  ## Version history

  ### v1.0.0

  Initial version, contains the **Extract text** and **Extract boxes** operations.

  ### v1.0.1

  * Fix the installation on N8N instances from NPM
  * Add the toggle switch for specifying a bounding box

  ### v1.1.0

  * Add the ability to control the Tesseract PSM (block, column, single line, single word, sparse text)
  * Add a setting to override the detected DPI of the image
  * Add the ability to specify the whitelist and blacklist

  ### v1.2.0

  * Update the Tesseract.JS version to v6.0.0. No user-facing changes.
  	Please [report any issues that you find](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues)!

  ### v1.3.0

  * Add a Timeout option to control the max processing time
  	(closes [#3](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues/3))

  ### v1.4.0

  * Add the ability to extract all images from a PDF and process them, in addition to single images
  	(closes [#4](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues/4))

  ### v1.4.1

  * Add proper handling for images that are repeated across pages (e.g. logo on header, page background,
  	image that was copy-pasted on several pages), which are stored separately from page-specific images

  ### v1.4.2

  * Add options to resize the images before OCR and to not return binary data (solves Invalid string length error on large
  	images)

  ### v1.5.0

  * Add option to filter low confidence results (closes [#4](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues/4))
  * Downgrade `pdfjs-dist` to v5.3.31 to match N8N's own copy, because otherwise this node conflicted with the Extract
  	From File node (closes [#5](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues/5))

  ### v1.5.1

  No user-facing changes, should work exactly like v1.5.0.
  Please [raise an issue](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues) if anything breaks when upgrading from
  v1.5.0 to v1.5.1!

  * Changes the PDF library (added in v1.4.0) from `pdfjs-dist` to `pdf-lib` due to unexplained crashes (e.g. in Synology
  	devices and some virtualized environments) ([#7](https://github.com/jreyesr/n8n-nodes-tesseractjs/issues/7))

  ## Developer info

  ```bash
  npm i
  ```

  To add this node to a local N8N install:

  ```shell
  npm link
  npm run dev # or npm build the first time or when adding assets, such as the node's logo

  # in ~/.n8n/custom
  npm link n8n-nodes-tesseractjs
  ```

  ### Releasing changes

  1. Bump the version in package.json. We use SemVer.
  2. Add an entry on the [Version History](#version-history) section above describing the changes.
  3. Push changes, open a PR and merge it to master branch (if developing on another branch)
  4. Create a release. This will kick off the CI which will build and publish the package on NPM

ai_documentation_summary:
  {"purpose":"A n8n community node that integrates Tesseract.js to perform Optical Character Recognition (OCR) on images and PDFs, extracting text with confidence scores and optional bounding box coordinates.","capabilities":["Extract text from entire images or PDFs","Extract text with bounding box coordinates (words, lines, paragraphs, characters)","Detect recognized language","Filter text by minimum confidence threshold","Process specific image regions via bounding box coordinates","Handle images embedded in PDF files","Output confidence percentages for recognized text"],"authentication":"None","commonUseCases":["Digitizing scanned documents","Extracting text from image-based invoices or forms","Processing PDFs containing embedded images","Filtering low-quality OCR results using confidence thresholds"],"limitations":["Cannot recognize handwritten text","Cannot read text directly from PDFs without extracting images first","May output multiple items when processing PDFs with multiple images","Text truncation may occur if words cross bounding box boundaries"],"relatedNodes":["Extract from file","Binary","Code","HTTP Request"]}


node_type: @mbakgun/n8n-nodes-slack-socket-mode.slacksocketmode
package_name: @mbakgun/n8n-nodes-slack-socket-mode
display_name: slacksocketmode
category: Community
development_style: declarative
version: 1.6.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: mbakgun
author_github_url: git+https://github.com/mbakgun/n8n-slack-socket-mode.git
npm_package_name: @mbakgun/n8n-nodes-slack-socket-mode
npm_version: 1.6.2
community_fetched_at: 2026-03-25T21:19:41.770Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Slack Socket Mode Node for n8n that allows you to use +100 Slack events in your n8n instance with proxy mode

npm_readme:
  # @mbakgun/n8n-nodes-slack-socket-mode

  <div align="center">
    <img src="https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png" width="200" alt="n8n logo">
    <h3>+</h3>
    <img src="https://cdn.worldvectorlogo.com/logos/slack-new-logo.svg" width="100" alt="Slack logo">
  </div>

  This is an n8n community node that lets you use Slack Socket Mode in your n8n workflows. It enables real-time event processing from Slack without requiring public URLs for webhooks.

  Since the current integration of Slack in n8n only supports webhooks, this node allows you to use the Slack Socket Mode to listen to events in your Slack workspace in real-time, even in local development environments.

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

  ## Table of Contents
  - [Installation](#installation)
  - [Slack App Setup](#slack-app-setup)
  - [Credentials](#credentials)
  - [Node Configuration](#node-configuration)
  - [Supported Events](#supported-events)
  - [Usage Examples](#usage-examples)
  - [Example Workflow](#example-workflow)
  - [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.

  Using Bun (recommended):
  ```bash
  bun add @mbakgun/n8n-nodes-slack-socket-mode
  ```

  Using npm:
  ```bash
  npm install @mbakgun/n8n-nodes-slack-socket-mode
  ```

  After installation, restart n8n and the node will be available in the nodes panel.

  ### Development Setup

  This project uses [Bun](https://bun.sh) as its package manager. To set up your development environment:

  1. Install Bun:
     ```bash
     curl -fsSL https://bun.sh/install | bash
     ```
     
  2. Install dependencies:
     ```bash
     bun install
     ```
     
  3. Build the project:
     ```bash
     bun run build
     ```

  ## Slack App Setup

  Before using this node, you need to create a Slack app with Socket Mode enabled:

  1. Go to [https://api.slack.com/apps](https://api.slack.com/apps) and create a new app
  2. Navigate to "Socket Mode" in the left sidebar and enable it
  3. Generate an 'App-Level Token' with the `connections:write` scope
  4. Go to "OAuth & Permissions" and add the following Bot Token Scopes:
     - `app_mentions:read`
     - `channels:history`
     - `channels:read`
     - `chat:write`
     - `commands`
     - `reactions:read`
     - `team:read`
     - (Add any other scopes required for your use case)
  5. Install the app to your workspace (This will generate a 'Bot User OAuth Token')
  6. Copy the Bot User OAuth Token, App-Level Token, and Signing Secret(from the 'Basic Information' section) for credential setup
  7. Go to 'Event Subscriptions' and enable 'Socket Mode'
  8. Subscribe to the events you want to listen to (e.g. `app_mention`, `message`, `reaction_removed`, `reaction_added`)

  ## Credentials

  To use this node, you need to set up credentials with the following information:

  - **Bot Token**: Your Slack Bot User OAuth Token (starts with `xoxb-`)
  - **App-Level Token**: Your Slack App-Level Token for Socket Mode (starts with `xapp-`)
  - **Signing Secret**: Your Slack App Signing Secret

  These values can be found in your Slack App configuration.

  ## Node Configuration

  The Slack Socket Trigger node can be configured with the following options:

  - **Trigger On**: Select which Slack events should trigger your workflow:
    - All Slack events are now supported (app_mention, message, reaction events, channel events, etc.)
    - See the Supported Events section below for a complete list of available events

  - **Regex Pattern**: Optional regular expression to match against the entire event JSON structure (not just message text). This allows matching on any field in the event, such as subtypes, attachment colors, user IDs, etc.
    - Example: `(?=.*bot_message)(?=.*#FF0000)` matches events that contain both `bot_message` and the color `#FF0000`
    - Example: `help|assist|support` matches events containing any of these words anywhere in the event data
  - **Regex Flags**: Flags for the regular expression (e.g., `g` for global, `i` for case-insensitive)
  - **Slash Commands**: Comma-separated list of slash commands to listen for (e.g., `deploy, status, help`). Leave empty to listen for all slash commands. Do not include the leading slash.
  - **Channels to Watch**: Optional list of channels to filter events. Click **Add Channel** to add channels. Each channel can be selected from the dropdown or entered by ID (e.g., `C1234567890`, `G1234567890`)
  - **Legacy Channel to Watch**: Preserved single-channel selector for workflows created before version 1.4.2

  This node supports using an HTTP or HTTPS proxy by reading the following environment variables:

  ```bash
  export HTTP_PROXY=http://proxy.example.com:3128
  # or
  export HTTPS_PROXY=http://proxy.example.com:3128
  ```

  ## Supported Events

  The node currently supports the following Slack events:

  - `app_mention`: When your bot is mentioned in a channel
  - `block_actions`: When a user interacts with buttons, including NPS-style ratings
  - `message`: When a message is posted to a channel the app is added to
  - `channel_created`: When a new public channel is created
  - `team_join`: When a new user is added to Slack
  - `reaction_added`: When a reaction is added to a message
  - `reaction_removed`: When a reaction is removed from a message
  - `app_deleted`: User has deleted an app
  - `app_home_opened`: User clicked into your App Home
  - `app_installed`: User has installed an app
  - `app_mention`: Subscribe to only the message events that mention your app or bot
  - `app_rate_limited`: Indicates your app's event subscriptions are being rate limited
  - `app_requested`: User requested an app
  - `app_uninstalled`: Your Slack app was uninstalled
  - `app_uninstalled_team`: User has uninstalled an app
  - `assistant_thread_context_changed`: The context changed while an AI assistant thread was visible
  - `assistant_thread_started`: An AI assistant thread was started
  - `bot_added`: A bot user was added
  - `bot_changed`: A bot user was changed
  - `call_rejected`: A Call was rejected
  - `channel_archive`: A channel was archived
  - `channel_created`: A channel was created
  - `channel_deleted`: A channel was deleted
  - `channel_history_changed`: Bulk updates were made to a channel's history
  - `channel_id_changed`: A channel ID changed
  - `channel_joined`: You joined a channel
  - `channel_left`: You left a channel
  - `channel_marked`: Your channel read marker was updated
  - `channel_rename`: A channel was renamed
  - `channel_shared`: A channel has been shared with an external workspace
  - `channel_unarchive`: A channel was unarchived
  - `channel_unshared`: A channel has been unshared with an external workspace
  - `commands_changed`: A slash command has been added or changed
  - `dnd_updated`: Do not Disturb settings changed for the current user
  - `dnd_updated_user`: Do not Disturb settings changed for a member
  - `email_domain_changed`: The workspace email domain has changed
  - `emoji_changed`: A custom emoji has been added or changed
  - `external_org_migration_finished`: An enterprise grid migration has finished on an external workspace
  - `external_org_migration_started`: An enterprise grid migration has started on an external workspace
  - `file_change`: A file was changed
  - `file_comment_added`: A file comment was added
  - `file_comment_deleted`: A file comment was deleted
  - `file_comment_edited`: A file comment was edited
  - `file_created`: A file was created
  - `file_deleted`: A file was deleted
  - `file_public`: A file was made public
  - `file_shared`: A file was shared
  - `file_unshared`: A file was unshared
  - `function_executed`: Your app function is executed as a step in a workflow
  - `goodbye`: The server intends to close the connection soon
  - `grid_migration_finished`: An enterprise grid migration has finished on this workspace
  - `grid_migration_started`: An enterprise grid migration has started on this workspace
  - `group_archive`: A private channel was archived
  - `group_close`: You closed a private channel
  - `group_deleted`: A private channel was deleted
  - `group_history_changed`: Bulk updates were made to a private channel's history
  - `group_joined`: You joined a private channel
  - `group_left`: You left a private channel
  - `group_marked`: A private channel read marker was updated
  - `group_open`: You created a group DM
  - `group_rename`: A private channel was renamed
  - `group_unarchive`: A private channel was unarchived
  - `hello`: The client has successfully connected to the server
  - `im_close`: You closed a DM
  - `im_created`: A DM was created
  - `im_history_changed`: Bulk updates were made to a DM's history
  - `im_marked`: A direct message read marker was updated
  - `im_open`: You opened a DM
  - `invite_requested`: User requested an invite
  - `link_shared`: A message was posted containing one or more links relevant to your application
  - `manual_presence_change`: You manually updated your presence
  - `member_joined_channel`: A user joined a public channel, private channel or MPDM
  - `member_left_channel`: A user left a public or private channel
  - `message`: A message was sent to a channel
  - `message.app_home`: A user sent a message to your Slack app
  - `message.channels`: A message was posted to a channel
  - `message.groups`: A message was posted to a private channel
  - `message.im`: A message was posted in a direct message channel
  - `message.mpim`: A message was posted in a multiparty direct message channel
  - `message_metadata_deleted`: Message metadata was deleted
  - `message_metadata_posted`: Message metadata was posted
  - `message_metadata_updated`: Message metadata was updated
  - `pin_added`: A pin was added to a channel
  - `pin_removed`: A pin was removed from a channel
  - `pref_change`: You have updated your preferences
  - `presence_change`: A member's presence changed
  - `presence_query`: Determine the current presence status for a list of users
  - `presence_sub`: Subscribe to presence events for the specified users
  - `reaction_added`: A member has added an emoji reaction to an item
  - `reaction_removed`: A member removed an emoji reaction
  - `reconnect_url`: Experimental
  - `resources_added`: Access to a set of resources was granted for your app
  - `resources_removed`: Access to a set of resources was removed for your app
  - `scope_denied`: OAuth scopes were denied to your app
  - `scope_granted`: OAuth scopes were granted to your app
  - `shared_channel_invite_accepted`: A shared channel invite was accepted
  - `shared_channel_invite_approved`: A shared channel invite was approved
  - `shared_channel_invite_declined`: A shared channel invite was declined
  - `shared_channel_invite_received`: A shared channel invite was sent to a Slack user
  - `shared_channel_invite_requested`: A shared channel invite was requested
  - `star_added`: A member has saved an item for later or starred an item
  - `star_removed`: A member has removed an item saved for later or starred an item
  - `subteam_created`: A User Group has been added to the workspace
  - `subteam_members_changed`: The membership of an existing User Group has changed
  - `subteam_self_added`: You have been added to a User Group
  - `subteam_self_removed`: You have been removed from a User Group
  - `subteam_updated`: An existing User Group has been updated or its members changed
  - `team_access_granted`: Access to a set of teams was granted to your org app
  - `team_access_revoked`: Access to a set of teams was revoked from your org app
  - `team_domain_change`: The workspace domain has changed
  - `team_join`: A new member has joined
  - `team_migration_started`: The workspace is being migrated between servers
  - `team_plan_change`: The account billing plan has changed
  - `team_pref_change`: A preference has been updated
  - `team_profile_change`: The workspace profile fields have been updated
  - `team_profile_delete`: The workspace profile fields have been deleted
  - `team_profile_reorder`: The workspace profile fields have been reordered
  - `team_rename`: The workspace name has changed
  - `tokens_revoked`: API tokens for your app were revoked
  - `url_verification`: Verifies ownership of an Events API Request URL
  - `user_change`: A member's data has changed
  - `user_resource_denied`: User resource was denied to your app
  - `user_resource_granted`: User resource was granted to your app
  - `user_resource_removed`: User resource was removed from your app
  - `user_typing`: A channel member is typing a message
  - `view_submission`: When a modal view is submitted 
  - `view_closed`: When a modal view is closed
  - `workflow_deleted`: A workflow that contains a step supported by your app was deleted
  - `workflow_published`: A workflow that contains a step supported by your app was published
  - `workflow_step_deleted`: A workflow step supported by your app was removed from a workflow
  - `workflow_step_execute`: A workflow step supported by your app should execute
  - `workflow_unpublished`: A workflow that contains a step supported by your app was unpublished
  - `slash_command`: When a user invokes a slash command

  ## Usage Examples

  ### Respond to mentions

  Configure the node to trigger on `app_mention` events to make your workflow respond when someone mentions your bot.

  ### Process messages matching a pattern

  Use the Regex Pattern field to only trigger on messages that match a specific pattern:
  - Pattern: `help|assist|support`
  - Flags: `i`

  This will trigger the workflow only when messages containing "help", "assist", or "support" (case-insensitive) are posted.

  ### Monitor channel creation

  Set the trigger to `channel_created` to run workflows whenever a new channel is created in your workspace.

  ## Example Workflow

  Here's an example of a simple workflow that responds to Slack mentions:

  ```
  [Slack Socket Trigger] → [JSON Parse] → [IF] → [HTTP Request] → [Slack]
  ```

  1. **Slack Socket Trigger**: Configured to trigger on app mentions
  2. **JSON Parse**: Extracts the message text and channel from the event data
  3. **IF**: Checks if the message contains certain keywords
  4. **HTTP Request**: Fetches relevant data based on the message
  5. **Slack**: Sends a response back to the channel

  This workflow allows you to create a Slack bot that responds to mentions with data from external APIs, all without needing to expose your n8n instance to the internet.

  ## Compatibility

  - Requires n8n version 1.6.0 or later
  - Tested against n8n versions 1.91.3
  - Uses Bun as package manager for improved performance

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Slack API Documentation](https://api.slack.com/apis)
  - [Slack Socket Mode Documentation](https://api.slack.com/apis/connections/socket)
  - [Slack Events API Documentation](https://api.slack.com/events)
  - [Bun Documentation](https://bun.sh/docs)

  ### Workflow Building Tools

  - [n8n Builder](https://n8nbuilder.dev/) - AI-powered workflow generator. Great for quickly prototyping Socket Mode workflows with natural language.

  ## Contributors

  We appreciate all contributions to this project! 🎉

  ### How to Contribute

  1. Fork the repository
  2. Create a feature branch (`git checkout -b feature/amazing-feature`)
  3. Make your changes
  4. Run tests and ensure build passes (`bun run build`)
  5. Commit your changes (`git commit -m 'Add some amazing feature'`)
  6. Push to the branch (`git push origin feature/amazing-feature`)
  7. Open a Pull Request

  Special thanks to all contributors who help improve this project!

  ## Version History

  - **1.6.1**: Added slash command trigger support by **[@ydogukan-yd](https://github.com/ydogukan-yd)**
    - Added `slash_command` event listener for handling slash commands
    - Added configurable slash commands field to filter specific commands
    - Enables building interactive Slack workflows with custom slash commands in n8n
  - **1.6.0**: Upgraded @slack/bolt to v4.6.0
    - Fixed dependency resolution issues that caused `ENOENT` errors during installation
    - Resolved nested dependency conflicts with `@slack/logger` and other Slack packages
    - If you experienced installation errors, please upgrade to 1.6.0
  - **1.5.1**: Added modal view event support by **[@unbalanced](https://github.com/unbalanced)**
    - Added `view_submission` event listener for handling modal form submissions
    - Added `view_closed` event listener for detecting when modals are dismissed
    - Enables building interactive Slack workflows with modal forms in n8n
  - **1.5.0**: Enhanced regex pattern matching for entire event structure
    - Changed regex matching to work against the entire event JSON instead of just the text field
    - Enables matching on any event property including subtypes, attachment colors, metadata, etc.
    - Supports complex patterns like `(?=.*bot_message)(?=.*#FF0000)` to match multiple conditions
    - Provides more flexible event filtering for advanced use cases
  - **1.4.2**: Fixed multi-channel selector implementation
    - Each channel entry now properly supports both dropdown selection and manual ID input
    - Maintained backward compatibility with legacy single-channel selector
  - **1.3.6**: Production release with enhanced event handler architecture
    - Stable release of message event handler improvements from 1.3.5
    - Production-ready named function handlers for all message events
    - Verified event capture and processing reliability
    - Ready for enterprise deployments with improved debugging capabilities
  - **1.3.5**: Enhanced message event handler architecture for better app event handling
    - Refactored message event handlers into named functions (handleMessageEvent, handleMessageSubtypeEvent)
    - Fixed event capture and processing by separating handler definition from registration
    - Improved app.event() listener registration to properly catch all message events
    - Enhanced code maintainability and debugging with named function handlers
    - Better event handling reliability for message and message subtype events
  - **1.3.3**: Improved message event handling
    - Refactored message event listeners to use app.event() instead of app.message()
    - Fixed regex state management by resetting lastIndex for global regex flags
    - Enhanced null safety with explicit event and text validation
    - Reduced code duplication in message subtype handling
    - Improved early return pattern for better code readability
  - **1.3.2**: Fixed block actions acknowledgement by **[@keenlim](https://github.com/keenlim)**
    - Added proper acknowledgement for block actions interactions
    - Fixed socket to Slack communication for button interactions
  - **1.3.1**: Enhanced channel filtering for all event types
    - Fixed channel filtering for events like `reaction_added`, `pin_added`, `file_shared`, etc.
    - Added comprehensive channel ID extraction from multiple event properties (`event.channel`, `event.item.channel`, `event.item.channel_id`, `event.file.channels`)
  - **1.3.0**: Channel filtering feature by **[@tongshengng](https://github.com/tongshengng)**
    - Added "Channel to watch" field similar to official Slack trigger node
    - Implemented optional channel ID parameter to filter incoming Slack events
    - Added searchable dropdown with channel selection via Slack API
    - Improved event targeting by filtering events from specific channels only
    - Added channel ID format validation for manual entry
  - **1.2.5**: Added proxy support by **[@minimorph223](https://github.com/minimorph223)**
    - Added `http-proxy-agent` dependency for HTTP/HTTPS proxy support
    - Enhanced connectivity options for enterprise environments
  - **1.2.3**: Enhanced message filtering by **[@macchiang](https://github.com/macchiang)**
    - Fixed invalid `message.im` event type with proper channel_type filtering
    - Added support for filtering Slack messages by channel type (channels, groups, im, mpim, app_home)
    - Improved message filtering capabilities using Slack Bolt framework best practices
    - Resolved TypeScript typing issues
  - **1.2.0**: Added support for all Slack events
    - Updated to include all events from the Slack Events API
    - Improved event descriptions and documentation
  - **1.0.0**: Initial release - Project initialized with Socket Mode support for Slack events
    - Support for app_mention, message, reaction events
    - Added button interaction support

  ## License

  MIT License

  Copyright (c) 2025 Mehmet Burak Akgün

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.

ai_documentation_summary:
  {"purpose":"A n8n community node that enables real-time Slack Socket Mode integration, allowing workflows to listen to and process over 100 Slack events without requiring public webhook URLs.","capabilities":["Real-time event processing from Slack","Support for 100+ Slack event types including messages, reactions, and channel events","Regex pattern matching on entire event JSON structures","Regex flag configuration for flexible filtering","Slash command listening","Channel filtering by ID","HTTP/HTTPS proxy support for local development","No public webhook URL requirement"],"authentication":"None (uses Slack App-Level Token, Bot User OAuth Token, and Signing Secret via credentials)","commonUseCases":["Real-time monitoring of Slack messages and reactions","Automated responses to specific message patterns or subtypes","Local development environments without exposing public webhooks","Slash command automation","Event-based workflow triggers based on channel or user activity"],"limitations":["Requires manual Slack App setup with Socket Mode enabled","Requires specific token scopes and permissions to be configured in Slack","Proxy configuration requires environment variables (HTTP_PROXY or HTTPS_PROXY)","Legacy channel selector may not work in newer workflows (version 1.4.2+)"],"relatedNodes":["Slack Webhook Trigger","Slack Webhook Response","Slack Webhook Trigger (Community)","Slack Webhook Response (Community)"]}


node_type: n8n-nodes-better-ai-agent.betteraiagent
package_name: n8n-nodes-better-ai-agent
display_name: betteraiagent
description: A better AI Agent node for n8n with improved memory management and modern AI SDK integration
category: Community
development_style: declarative
version: 1.6.16
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: fjrdomingues
npm_package_name: n8n-nodes-better-ai-agent
npm_version: 1.6.16
community_fetched_at: 2026-03-25T21:19:41.771Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # Better AI Agent for n8n

  An improved AI Agent node for n8n that provides better memory management, modern AI SDK integration and a webhook option to push intermediate messages as they happen.

  ## Features

  - **Conversation Memory that includes Tools** – every user message, tool call and tool result is stored.
  - **Modern AI SDK Providers** – wraps OpenAI (including GPT-5), Gemini and Anthropic through stable Vercel AI SDK v4.
  - **Live Streaming Updates**: Intermediate Webhook URL lets you push each agent step in real-time

  ## Installation

  ```bash
  npm install n8n-nodes-better-ai-agent
  ```

  ## Compatibility

  This node is designed to be a drop-in replacement for the existing AI Agent node while providing enhanced functionality:

  - ✅ Works with existing Language Model nodes
  - ✅ Works with existing Memory nodes  
  - ✅ Works with existing Tool nodes
  - ✅ Works with existing Output Parser nodes
  - ✅ Maintains same input/output interface

  ## Key Improvements Over Standard Agent

  ### 1. Memory Management
  - **Problem**: Original agent doesn't save tool calls to memory
  - **Solution**: Every interaction (human messages, AI responses, tool calls, tool results) is properly saved

  ### 2. Modern AI SDK
  - **Problem**: Uses deprecated LangChain patterns
  - **Solution**: Built on Vercel AI SDK for better performance and reliability

  ### 3. Simplified Configuration
  - **Problem**: Complex agent type selection with lots of conditional logic
  - **Solution**: Single, powerful agent that adapts to your needs

  ## Usage

  ### Basic Setup

  1. **Add the node** to your workflow
  2. **Connect a Language Model** (OpenAI, Anthropic, etc.)
  3. **Optionally connect**:
     - Memory node for conversation persistence
     - Tool nodes for enhanced capabilities
     - Output Parser for structured responses

  ### Input Sources

  Choose how to provide the user prompt:

  - **Connected Chat Trigger Node**: Automatically uses `chatInput` from chat triggers
  - **Define below**: Use expressions or static text

  ### Configuration Options

  - **System Message**: Define the agent's behavior and personality
  - **Max Tool Calls**: Limit the number of tool interaction rounds
  - **Intermediate Webhook URL**: Send each partial reply/tool-call to an external workflow in real-time
  - **Verbose Logs**: Enable/disable detailed console logging
  - **Temperature**: Control response creativity (0.0 = deterministic, 1.0 = creative)
  - **Max Tokens**: Set response length limits

  ### Example Workflow

  ```
  Chat Trigger → Better AI Agent → Response
                ↗ OpenAI Model
                ↗ Buffer Memory
                ↗ Calculator Tool
                ↗ Web Search Tool
  ```

  ## Technical Details

  ### Tool Call Memory

  Unlike the original agent, this node ensures that all tool interactions are preserved in memory:

  ```
  User: "What's 25 * 47 and then search for that number"
  Assistant: [calls calculator tool]
  Tool: "1175"
  Assistant: [calls web search tool with "1175"]
  Tool: [search results]
  Assistant: "The result is 1175. Here's what I found about it..."
  ```

  All of these interactions are saved to memory for future reference.

  ### AI SDK Integration

  Uses modern patterns from Vercel AI SDK:

  - Built-in tool calling support
  - Automatic conversation management
  - Better error handling
  - Real-time step streaming via `onStepFinish`

  ### Known Limitations

  | Limitation | Work-around |
  |------------|------------|
  | n8n UI does not highlight the attached model or tool nodes because only the Agent executes code | Rely on the Agent output or streamed webhook messages for visibility |
  | Tool nodes without an explicit Zod/JSON schema (e.g. raw HTTP Request) may receive incorrect argument keys | Wrap such tools in a **Custom Code Tool** and define a schema, or add few-shot examples |
  | Streaming is step-level, not token-level; the n8n node outputs only when the Agent finishes | Use the Intermediate Webhook to push interim messages to a Chat, Slack, etc. |
  | The node's dependencies must be available next to `~/.n8n/custom/BetterAiAgent.node.js` | Run `npm run deploy-local` (copies `package.json` and installs runtime deps) |

  ## Development

  ### Building from Source

  ```bash
  git clone <repository>
  cd better-ai-agent
  npm install
  npm run build
  ```

  ### Testing

  ```bash
  npm test
  ```

  ### Publishing

  ```bash
  npm run package
  npm publish
  ```

  ## Troubleshooting

  ### Common Issues

  1. **"No language model connected"**: Ensure you've connected a language model node
  2. **Tool calls not working**: Verify your tools are properly configured and connected
  3. **Memory not persisting**: Check that your memory node is correctly connected

  ### Debug Information

  The node outputs additional debug information:

  - `usage`: Token usage statistics
  - `finishReason`: Why the generation stopped
  - `toolCalls`: List of tools that were called
  - `toolResults`: Results from tool executions

  ## Contributing

  We welcome contributions! Please see our contributing guidelines for more information.

  ## License

  MIT License - see LICENSE file for details.

  ## Support

  - Create an issue for bugs or feature requests
  - Join the n8n community for general support
  - Check the documentation for detailed usage examples 

ai_documentation_summary:
  {"purpose":"A n8n node that provides an improved AI Agent with enhanced memory management for tool calls, modern Vercel AI SDK integration, and real-time streaming updates.","capabilities":["Stores conversation history including tool calls and results","Integrates with OpenAI, Gemini, and Anthropic via Vercel AI SDK v4","Supports live streaming of intermediate agent steps via webhook","Adapts to different agent needs with a single powerful agent configuration","Outputs debug information including token usage, finish reason, tool calls, and tool results","Supports custom system messages and temperature control"],"authentication":"None","commonUseCases":["Replacing the standard AI Agent node with enhanced memory features","Building chatbots that need to track tool interactions across conversations","Streaming partial agent responses to external channels like Slack or Chat","Integrating with existing Language Model, Memory, and Tool nodes"],"limitations":["n8n UI does not highlight attached model or tool nodes (only the Agent executes code)","Tool nodes without explicit Zod/JSON schemas may receive incorrect argument keys","Streaming is step-level rather than token-level","Node dependencies must be installed locally using npm run deploy-local"],"relatedNodes":["Language Model","Memory","Tool","Output Parser","Chat Trigger"]}


node_type: n8n-nodes-helicone.helicone
package_name: n8n-nodes-helicone
display_name: helicone
description: n8n node for Helicone AI gateway and observability
category: Community
development_style: declarative
version: 1.0.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: _juliettech
author_github_url: git+https://github.com/Helicone/n8n-nodes-helicone.git
npm_package_name: n8n-nodes-helicone
npm_version: 1.0.4
community_fetched_at: 2026-03-25T21:19:41.771Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-helicone

  This is an n8n community node that provides a LangChain-compatible Helicone Chat Model for use in AI chains and workflows. The node routes requests to your chosen LLM provider through the Helicone AI Gateway.

  [Helicone](https://helicone.ai) is an open-source LLM observability platform that helps developers monitor, debug, and improve production AI applications.

  ## Installation

  ### 1. Build the Node
  Clone the repository and install dependencies:
  ```bash
  git clone https://github.com/helicone/n8n-nodes-helicone.git
  cd n8n-nodes-helicone
  pnpm install
  pnpm build
  ```

  ### 2. Install as n8n Community Node
  You can install this node as an n8n community node:

  ```bash
  # Install via npm
  npm install n8n-nodes-helicone

  # Or install via pnpm
  pnpm add n8n-nodes-helicone
  ```

  ### 3. Alternative: Manual Installation
  If you prefer to install manually, navigate to your n8n folder (usually `~/.n8n` on macOS/Linux):
  ```bash
  cd ~/.n8n
  mkdir custom
  cd custom
  pnpm init
  ```

  Link your built node to the n8n custom folder:
  ```bash
  pnpm link /path/to/your/n8n-nodes-helicone
  ```
  Replace `/path/to/your/n8n-nodes-helicone` with the actual path to your repository.

  ### 4. Start n8n
  ```bash
  n8n start
  ```

  ### 5. Access n8n Interface
  Open your browser and go to: `http://localhost:5678`

  ## 6. Add Helicone API Credentials

    - Go to **Credentials > New**
    - Select **Helicone LLM Observability**
    - Enter your Helicone API key (get it from [Helicone Dashboard](https://helicone.ai/dashboard))
    - The base URL is automatically set to `https://ai-gateway.helicone.ai/`

  ## 7. Create a workflow and add your Helicone Chat Model node

  The Helicone Chat Model node is designed to work as part of any AI chain. It outputs a LangChain-compatible model that can be used with other AI nodes.

  **Node Configuration:**
  1. **AI Model:** Choose any model supported by Helicone AI Gateway (find them here: https://helicone.ai/models - e.g, `gpt-4.1-mini`, `claude-3-opus-20240229`).
  2. **Options:**
     - **Temperature:** Sampling temperature (0-2)
     - **Max Tokens:** Maximum number of tokens to generate
     - **Top P:** Nucleus sampling parameter (0-1)
     - **Frequency Penalty:** Control repetition (-2 to 2)
     - **Presence Penalty:** Control new topics (-2 to 2)
     - **Response Format:** Text or JSON
     - **Timeout:** Request timeout in milliseconds
     - **Max Retries:** Number of retry attempts

  **Helicone Options:**
  - **Custom Properties:** JSON object for metadata and filtering
  - **Session Tracking:** Session ID, Path, and Name for grouping requests
  - **Caching:** Enable response caching with configurable TTL (up to 365 days)

  ## How It Works

  The Helicone Chat Model node uses the [Helicone AI Gateway](https://ai-gateway.helicone.ai) to route requests to your chosen LLM provider. The node implements the `LmChatHelicone` class and provides a LangChain-compatible ChatOpenAI interface.

  This provides:
  - **Unified Interface:** Single endpoint for multiple providers
  - **Automatic fallbacks:** If the primary provider is down, the node will automatically use a fallback provider
  - **Observability:** Track usage, performance, and costs across providers
  - **Caching:** Reduce costs with intelligent response caching and reduce latency with intelligent caching
  - **Session Tracking:** Group related requests with session management
  - **Custom Properties:** Add metadata for filtering and analysis

  ## Usage in AI Chains

  This node is designed to be used as part of n8n's AI chain functionality:

  1. **Add the Helicone Chat Model node** to your workflow
  2. **Configure the model** with your desired parameters
  3. **Connect it to other AI nodes** that accept `ai_languageModel` inputs
  4. **Use in chains** for complex AI workflows

  The node outputs a LangChain-compatible model that can be used with:
  - Chat nodes
  - Chain nodes
  - Other AI processing nodes

  ## Helicone Features

  The node supports various Helicone observability features:

  - **Custom Properties:** Add metadata to requests for filtering and analysis
  - **Session Tracking:** Group related requests with Session ID, Path, and Name
  - **Caching:** Enable response caching with configurable TTL (up to 365 days)
  - **Automatic Logging:** All requests are automatically logged in your Helicone dashboard

  ## Response Format

  The node returns a LangChain ChatOpenAI model instance that can be used with other AI nodes. The underlying responses include:

  - Generated content
  - Token usage information
  - Model information
  - Helicone-specific metadata

  All requests are automatically logged in your Helicone dashboard for observability and analysis.

  ## Troubleshooting

  ### Common Issues

  1. **Authentication Errors**
     - Verify your Helicone API key is correct (starts with `pk-` for write access)
     - Ensure your Helicone account has access to the chosen provider

  2. **Model Errors**
     - Validate your model name is correct for the chosen provider
     - Check if the model is available in your Helicone account

  3. **Chain Integration Issues**
     - Ensure the node is properly connected to other AI nodes
     - Verify the output type is compatible with downstream nodes

  ### Getting Help

  - [Helicone Documentation](https://docs.helicone.ai)
  - [n8n Community Forum](https://community.n8n.io)
  - [Helicone Discord](https://discord.gg/helicone)

  ## License

  MIT

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Helicone documentation](https://docs.helicone.ai)
  - [Helicone GitHub](https://github.com/Helicone/helicone)
  - [This Node's GitHub](https://github.com/juliettech13/n8n-nodes-helicone)
  - [LangChain documentation](https://js.langchain.com/)

ai_documentation_summary:
  {"purpose":"A community n8n node that acts as a LangChain-compatible gateway to route AI requests through Helicone for observability, caching, and multi-provider fallback.","capabilities":["Route requests to multiple LLM providers via Helicone AI Gateway","Implement automatic fallback to secondary providers if primary is down","Enable response caching with configurable TTL (up to 365 days)","Track usage, performance, and costs across providers","Group requests using session tracking (Session ID, Path, Name)","Add custom metadata properties for filtering and analysis","Support standard LLM parameters (Temperature, Max Tokens, Top P, Penalties)","Output LangChain-compatible ChatOpenAI interface"],"authentication":"API key required (Helicone API key starting with 'pk-')","commonUseCases":["Monitoring and debugging production AI applications","Reducing costs through intelligent response caching","Unifying access to multiple LLM providers in one workflow","Tracking token usage and latency across different models","Grouping related AI requests for session-based analysis"],"limitations":["Community node (requires manual installation or npm/pnpm install)","Requires Helicone account with access to chosen LLM providers","API key must have write access (starts with 'pk-')","Model availability depends on Helicone account permissions"],"relatedNodes":["LangChain nodes","Chat nodes","Chain nodes","AI Language Model nodes"]}


node_type: n8n-nodes-c10_great_lotus.c10_great_lotus
package_name: n8n-nodes-c10_great_lotus
display_name: c10_great_lotus
category: Community
development_style: declarative
version: 0.1.57
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: meomay22
npm_package_name: n8n-nodes-c10_great_lotus
npm_version: 0.1.57
community_fetched_at: 2026-03-25T21:19:41.772Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  10 action groups: ManagerAction, MouseAction, KeyboardAction, BrowserControl, ElementAction, ImageAction, OthersAction, EmailAction, DeveloperAction, General Debug

npm_readme:
  # n8n-nodes-c10-great-lotus

  Unified GREAT LOTUS MQTT node.

  Highlights:
  1. Existing browser control groups are preserved (Mouse, Keyboard, Browser, Element, Image, Others, Email, Developer, General Debug).
  2. `ManagerAction` now also includes GPM profile actions from C11:
     - `list_profiles`, `get_profile_info`, `create_profile`, `open_profile`, `close_profile`, `update_profile`, `delete_profile`, `list_groups`
  3. `GPM_connect` can open GPM profile first (by `profile_id`) and then attach Playwright to the same `remote_port`.
  4. `quit` will close GPM profile (when session was created from `profile_id`) or close local browser session as usual.

  Quick start:
  1. Use Node.js `>=20.15` (for example: `nvm use` from this folder)
  2. `npm install`
  3. `npm run build`

ai_documentation_summary:
  {"purpose":"A unified MQTT node for the GREAT LOTUS automation framework that integrates browser control actions and GPM profile management.","capabilities":["ManagerAction: list_profiles, get_profile_info, create_profile, open_profile, close_profile, update_profile, delete_profile, list_groups","MouseAction","KeyboardAction","BrowserControl","ElementAction","ImageAction","OthersAction","EmailAction","DeveloperAction","General Debug"],"authentication":"None","commonUseCases":["Automated browser testing via Playwright","GPM profile management and remote session attachment","Unified automation workflows combining mouse, keyboard, and element interactions"],"limitations":["Requires Node.js >=20.15","Requires manual installation of dependencies (npm install) and building the node (npm run build)"],"relatedNodes":["n8n-nodes-mqtt","n8n-nodes-playwright"]}


node_type: n8n-nodes-glpi-v2-fork.glpiv2fork
package_name: n8n-nodes-glpi-v2-fork
display_name: glpiv2fork
description: GLPI Rest API Node compatible with GLPI API V2.
category: Community
development_style: declarative
version: 2.1.17-rc.31
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: marcoscamposyesh
author_github_url: git+https://github.com/YeshShareDEV/n8n-nodes-glpi-v2-glpi11.git
npm_package_name: n8n-nodes-glpi-v2-fork
npm_version: 2.1.17-rc.31
community_fetched_at: 2026-03-25T21:19:41.773Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-glpi-v2-glpi11

  ![version](https://img.shields.io/badge/version-2.0.12.13-blue) ![n8n](https://img.shields.io/badge/n8n-community-orange) ![GLPI](https://img.shields.io/badge/GLPI-REST%20API-blue)

  Node para integração do [GLPI](https://glpi-project.org/) com o [n8n](https://n8n.io/), compatível com a API REST V2 do GLPI.

  ## ✨ Funcionalidades
  - Autenticação automática via initSession (sem precisar criar node HTTP manual)
  - Suporte a operações de CRUD para Tickets, Changes, Problems, Computers, Softwares e comentários
  - Gerenciamento automático do Session-Token
  - Compatível com n8n Cloud e Self-hosted
  - Credenciais seguras (GLPI URL, App Token, Username, Password)

  --

  Nota rápida: para a criação/atualização de usuários em `Administration/User` o node agora espera o payload como JSON bruto no campo `Input (raw)`.
  Use a opção `Send raw body` para enviar exatamente esse JSON (sem o wrapper `{ "input": ... }`). Campos individuais como Name/Email/Password foram removidos do formulário para evitar ambiguidade.

  ## 🚀 Instalação

  1. Clone ou baixe este repositório
  2. Execute `npm install` para instalar as dependências
  3. Use os scripts disponíveis para build/dev:
     - `npm run build` — build de produção
     - `npm run dev` — modo desenvolvimento

  ## 🔧 Configuração no n8n

  1. Importe o node customizado no painel do n8n
  2. Crie uma credencial do tipo **GLPI API** informando:
     - GLPI URL (ex: https://glpi.seudominio.com/api.php)
     - App Token
     - Username
     - Password
  3. Use o node "GLPI API" nos seus fluxos, escolhendo a operação desejada (Get, Add, Update, Comment)

  ## 🧩 Exemplo de Uso

  - Buscar um ticket:
    - Operation: Get
    - Item Type: Ticket
    - Item ID: 123
  - Criar um novo computador:
    - Operation: Add
    - Item Type: Computer
    - Payload: `{ "name": "PC-01", "serial": "123456" }`

  ## 📁 Estrutura do Projeto

  - `credentials/GlpiV2Api.credentials.ts` — definição das credenciais
  - `nodes/GlpiV2/GlpiV2.node.ts` — implementação principal do node
  - `nodes/GlpiV2/resources/` — módulos separados por área do GLPI
  - `n8n-nodes-glpi-instructions.md` — instruções detalhadas e exemplos

  ## 📜 Licença

  MIT — veja o arquivo [LICENSE.md](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A custom n8n node that integrates with the GLPI v2 REST API, enabling automated CRUD operations on IT assets like tickets, computers, and problems.","capabilities":["Automatic session initialization via initSession","Automatic session token management","CRUD operations on Tickets","CRUD operations on Changes","CRUD operations on Problems","CRUD operations on Computers","CRUD operations on Softwares","Commenting on items","Raw JSON body support for user creation/updates","Compatible with n8n Cloud and Self-hosted environments"],"authentication":"Credentials (GLPI URL, App Token, Username, Password)","commonUseCases":["Automated IT asset tracking","Incident management via ticket creation","Computer inventory management","Change request processing","Problem tracking and resolution"],"limitations":["User creation/updates require raw JSON payload in the 'Input (raw)' field","Individual user fields (Name/Email/Password) are removed from the form to prevent ambiguity"],"relatedNodes":["GLPI API","HTTP Request","JSON"]}


node_type: n8n-nodes-hotmart.hotmart
package_name: n8n-nodes-hotmart
display_name: hotmart
category: Community
development_style: declarative
version: 0.9.9
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: thaleslaray
author_github_url: git+https://github.com/thaleslaray/n8n-nodes-hotmart.git
npm_package_name: n8n-nodes-hotmart
npm_version: 0.9.9
community_fetched_at: 2026-03-25T21:19:41.773Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Nós personalizados para integrar a API Hotmart com o n8n, permitindo automação completa de operações na plataforma líder de produtos digitais da América Latina

npm_readme:
  # 🚀 n8n-nodes-hotmart

  **👨‍💻 Autor:** [Thales Laray](https://www.escoladeautomacao.com.br/inscricao-ea-bio) | [@thaleslaray](https://instagram.com/thaleslaray)  
  **🤝 Colaborador:** [Anderson Ferreira](https://www.instagram.com/afsautomacoes/) | [@afsautomacoes](https://www.instagram.com/afsautomacoes/)

  <div align="center">

  ![n8n](https://img.shields.io/badge/n8n-community-orange?style=for-the-badge)
  ![Hotmart](https://img.shields.io/badge/Hotmart-API-red?style=for-the-badge)
  ![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue?style=for-the-badge)
  ![Coverage](https://img.shields.io/badge/Coverage-100%25-brightgreen?style=for-the-badge)
  ![Tests](https://img.shields.io/badge/Tests-1300+-success?style=for-the-badge)

  **🏆 Certificação n8n Level: Steve Jobs** 

  *"Quando a perfeição encontra a obsessão, nasce um node que nem o próprio Steve Jobs criticaria"*

  </div>

  ---

  ## 📋 Índice

  - [Sobre](#-sobre)
  - [Por que este é o melhor node Hotmart](#-por-que-este-é-o-melhor-node-hotmart)
  - [Instalação](#-instalação)
  - [Recursos](#-recursos)
  - [Qualidade Obsessiva](#-qualidade-obsessiva)
  - [Para Auditores n8n](#-para-auditores-n8n)
  - [Documentação](#-documentação)
  - [Contribuindo](#-contribuindo)

  ## 🎯 Sobre

  Este não é apenas mais um node n8n. É o resultado de 19 dias de desenvolvimento obsessivo, 100+ horas de código, e um compromisso inabalável com a perfeição. Cada linha de código foi escrita pensando em você, desenvolvedor que precisa de uma integração Hotmart que simplesmente funciona.

  ## 🏆 Por que este é o melhor node Hotmart

  ### 1. **Cobertura Total da API**
  - ✅ **100% da API Hotmart** implementada
  - ✅ **43 operações** disponíveis
  - ✅ **Todos os endpoints** documentados
  - ✅ **Webhooks inteligentes** com 3 modos de operação

  ### 2. **Qualidade Steve Jobs**
  ```typescript
  // Não é apenas código. É arte.
  const perfection = {
    coverage: '100%',
    bugs: 0,
    documentation: 'Impecável',
    userExperience: 'Mágica'
  };
  ```

  ### 3. **Números que Impressionam**
  - 📊 **1300+ testes** automatizados
  - 🎯 **100% de cobertura** de código
  - 🐛 **Zero bugs** em produção
  - ⚡ **Performance otimizada** com paginação inteligente
  - 🤖 **AI-Ready** - Funciona com n8n AI Agents

  ## 🚀 Instalação

  ### Via n8n Community Nodes
  1. Acesse: **Settings → Community Nodes**
  2. Busque: `n8n-nodes-hotmart`
  3. Clique: **Install**

  ✅ **Pronto!** O node será instalado automaticamente e estará disponível em seus workflows.

  ## ⚡ Recursos

  ### 🔥 Operações Principais

  <details>
  <summary><b>💰 Vendas (Sales)</b> - 6 operações</summary>

  - **Histórico de Vendas** - Com filtros avançados por data, status, afiliado
  - **Comissões** - Detalhamento completo de comissões (produtor/afiliado)  
  - **Preços Detalhados** - Breakdown de valores, taxas, impostos
  - **Participantes** - Todos os envolvidos em cada venda
  - **Resumo de Vendas** - Métricas consolidadas com totalizadores
  - **Reembolsos** - Processamento de solicitações de reembolso

  </details>

  <details>
  <summary><b>📋 Assinaturas (Subscriptions)</b> - 10 operações</summary>

  - **Listar Todas** - Com paginação automática e filtros inteligentes
  - **Cancelar** - Individual ou em lote
  - **Reativar** - Com cobrança automática opcional
  - **Alterar Data** - Mudança de ciclo de cobrança
  - **Transações** - Histórico completo de pagamentos
  - **Compras** - Detalhes de cada compra
  - **Resumo** - Analytics de assinaturas

  </details>

  <details>
  <summary><b>🎯 Mais Recursos</b></summary>

  - **🛍️ Produtos** - Catálogo completo com detalhes
  - **🎟️ Cupons** - Criar, validar, excluir
  - **🎓 Área de Membros** - Alunos, módulos, progresso
  - **🎫 Eventos** - Ingressos e participantes
  - **💳 Negociação** - Links de pagamento personalizados
  - **🔧 Custom API Call** - Para endpoints futuros

  </details>

  ### 📡 Webhook Trigger Inteligente

  ```javascript
  // 3 Modos de Operação:

  // 1. Standard - Todos os eventos em uma saída
  webhookMode: 'standard'

  // 2. Smart - Separação automática por tipo
  webhookMode: 'smart' 
  // Saídas: purchase_approved, purchase_complete, subscription_cancellation...

  // 3. Super Smart - Separação ultra-granular
  webhookMode: 'superSmart'
  // Saídas: single_purchase, new_subscription, subscription_renewal
  ```

  ## 🏆 Qualidade Obsessiva

  ### 📊 Métricas de Excelência

  ```yaml
  Testes:
    Total: 1,337
    Unitários: 1,084
    Integração: 178
    E2E: 48
    Performance: 27

  Cobertura:
    Statements: 100%
    Branches: 100%
    Functions: 100%
    Lines: 100%

  Qualidade:
    Complexidade Ciclomática: < 10
    Duplicação de Código: 0%
    Code Smells: 0
    Vulnerabilidades: 0
  ```

  ### 🛡️ Garantias

  - ✅ **Retrocompatibilidade** garantida
  - ✅ **Tipagem 100%** TypeScript
  - ✅ **Documentação inline** completa
  - ✅ **Error handling** robusto
  - ✅ **Rate limiting** inteligente
  - ✅ **Retry automático** com backoff

  ## 👨‍💼 Para Auditores n8n

  <details>
  <summary><b>📋 Checklist de Certificação</b></summary>

  ### ✅ Requisitos Técnicos
  - [x] TypeScript sem `any`
  - [x] Tratamento de erros consistente
  - [x] Paginação implementada corretamente
  - [x] Credenciais OAuth2 seguras
  - [x] Ícones em todos os formatos necessários

  ### ✅ Documentação
  - [x] README completo
  - [x] Todas as operações documentadas
  - [x] Exemplos de uso
  - [x] Troubleshooting guide
  - [x] CHANGELOG mantido

  ### ✅ Testes
  - [x] Cobertura > 80% (temos 100%!)
  - [x] Testes de integração
  - [x] Testes de webhook
  - [x] Testes de performance

  ### ✅ Boas Práticas
  - [x] Versionamento semântico
  - [x] Commits convencionais
  - [x] CI/CD configurado
  - [x] Dependências atualizadas
  - [x] Sem vulnerabilidades conhecidas

  </details>

  ## 📚 Documentação

  ### 🚀 Quick Start
  ```typescript
  // 1. Configure suas credenciais Hotmart OAuth2
  // 2. Arraste o node Hotmart para seu workflow
  // 3. Selecione a operação desejada
  // 4. Seja feliz! 🎉
  ```

  ### 📖 Guias Completos
  - [Instalação Detalhada](docs/INSTALLATION.md)
  - [Configuração de Webhooks](docs/WEBHOOKS.md)
  - [Exemplos de Workflows](docs/EXAMPLES.md)
  - [API Reference](docs/API-REFERENCE.md)
  - [Troubleshooting](docs/TROUBLESHOOTING.md)

  ### 💡 Exemplos de Uso

  <details>
  <summary><b>Exemplo 1: Listar vendas do mês</b></summary>

  ```json
  {
    "resource": "sales",
    "operation": "getHistoricoVendas",
    "dateFilter": "custom",
    "startDate": "2024-01-01",
    "endDate": "2024-01-31",
    "returnAll": true
  }
  ```

  </details>

  <details>
  <summary><b>Exemplo 2: Webhook inteligente</b></summary>

  ```json
  {
    "webhookMode": "smart",
    "events": ["PURCHASE_APPROVED", "SUBSCRIPTION_CANCELLATION"],
    "authentication": "bearerToken"
  }
  ```

  </details>

  ## 🤝 Contribuindo

  Contribuições são bem-vindas, mas lembre-se: mantemos padrões Steve Jobs aqui.

  ### 📏 Nossos Padrões

  1. **Código**: Clean, testado, documentado
  2. **Commits**: Convencionais (feat:, fix:, docs:)
  3. **PRs**: Com descrição detalhada e testes
  4. **Issues**: Use os templates fornecidos

  ### 🚀 Setup de Desenvolvimento

  ```bash
  # Clone
  git clone https://github.com/thaleslaray/n8n-nodes-hotmart.git
  cd n8n-nodes-hotmart

  # Instale
  npm install

  # Desenvolva
  npm run dev

  # Teste
  npm test
  npm run test:watch

  # Build
  npm run build
  ```

  ## 📄 Licença

  MIT © [Thales Laray](https://github.com/thaleslaray)

  ---

  <div align="center">

  ### ⭐ Se este node tornou sua vida melhor, considere dar uma estrela!

  **Feito com ❤️ e ☕ por [Thales Laray](https://github.com/thaleslaray)**

  ### 🤝 Agradecimentos Especiais

  - **[Anderson Ferreira](https://www.instagram.com/afsautomacoes/)** - Testes e melhorias de qualidade, Revisão de código

  *"Stay hungry, stay foolish" - mas sempre com 100% de cobertura de testes*

  </div>

ai_documentation_summary:
  {"purpose":"Integrates the Hotmart API with n8n to automate operations on the Latin American digital products platform, covering sales, subscriptions, products, and more.","capabilities":["Access sales history with advanced filters","Manage commissions and detailed pricing breakdowns","Handle subscription operations (list, cancel, reactivate, change billing date)","View transaction and purchase histories","Manage coupons (create, validate, exclude)","Access member area data (students, modules, progress)","Handle event tickets and participants","Create custom payment links","Execute custom API calls for future endpoints","Webhook triggers with three modes: standard, smart, and superSmart"],"authentication":"OAuth2","commonUseCases":["Automating sales reporting and commission tracking","Managing subscription renewals and cancellations","Processing refund requests","Monitoring product sales and analytics","Automating coupon validation and creation"],"limitations":["Limited to the Hotmart API's scope and rate limits","Custom API calls may require specific endpoint knowledge"],"relatedNodes":["n8n-nodes-core.webhook","n8n-nodes-core.oauth2","n8n-nodes-core.httpRequest"]}


node_type: @luka-cat-mimi/n8n-nodes-bcryptjs.bcryptjs
package_name: @luka-cat-mimi/n8n-nodes-bcryptjs
display_name: bcryptjs
category: Community
development_style: declarative
version: 1.0.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-03-25 21:19:41
author_name: GitHub Actions
author_github_url: git+https://github.com/luka-mimi/n8n-nodes-bcryptjs.git
npm_package_name: @luka-cat-mimi/n8n-nodes-bcryptjs
npm_version: 1.0.5
community_fetched_at: 2026-03-25T21:19:41.774Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  n8n community node package that provides bcryptjs password hashing and verification functionality with full async operations support

npm_readme:
  # n8n-nodes-bcryptjs

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

  This is an [n8n](https://n8n.io/) community node that allows you to use bcryptjs for password hashing and verification operations 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) • [Usage Examples](#usage-examples) • [Resources](#resources)

  ## Installation

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

  ### Community Nodes Installation

  1. In n8n, go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `@luka-cat-mimi/n8n-nodes-bcryptjs` in the **npm Package Name** field.
  4. Agree to the risks, then select **Install**.

  After installation, the Bcryptjs node will appear in the **Cryptography** category.

  ### Manual Installation

  To install the node locally, you can use npm package manager:

  ```bash
  # For n8n self-hosted
  npm install @luka-cat-mimi/n8n-nodes-bcryptjs
  ```

  ## Operations

  This node provides all bcryptjs async function capabilities:

  ### Supported Operations

  | Operation | Description |
  |-----------|-------------|
  | **Compare Password** | Asynchronously compare password with hash |
  | **Generate Salt** | Asynchronously generate salt value |
  | **Get Rounds** | Get the number of rounds used in the hash |
  | **Get Salt** | Extract salt portion from hash |
  | **Hash Password** | Asynchronously hash password |
  | **Test Truncation** | Test if password will be truncated (over 72 bytes) |

  ### Parameter Descriptions

  #### Generate Salt
  - **Rounds**: The cost of processing the data, default value is 10
  - **Minor Version**: The minor version of bcrypt, 'a' or 'b', default is 'b'

  #### Hash Password
  - **Password**: The password to hash
  - **Salt or Rounds**: Salt value to use for hashing, or number specifying rounds

  #### Compare Password
  - **Password**: The original password to compare
  - **Hash**: The hash value to compare against the password

  #### Get Rounds
  - **Hash**: The hash value to extract rounds from

  #### Get Salt
  - **Hash**: The hash value to extract salt from

  #### Test Truncation
  - **Password**: The password to check

  ### Options

  - **Output Field Name**: Field name where the result will be saved, default is 'result'

  ## Usage Examples

  ### Example 1: Password Hashing

  Hash passwords when creating users:

  1. Set operation to **Hash Password**
  2. Enter the password to hash
  3. Set rounds (recommended 10-12)
  4. The node will return the hashed password

  **Input**:
  ```json
  {
    "password": "mySecretPassword"
  }
  ```

  **Output**:
  ```json
  {
    "password": "mySecretPassword",
    "result": "$2b$10$N9qo8uLOickgx2ZMRZoMye..."
  }
  ```

  ### Example 2: Password Verification

  Verify passwords during user login:

  1. Set operation to **Compare Password**
  2. Enter the original password and stored hash value
  3. The node will return true or false

  **Input**:
  ```json
  {
    "password": "mySecretPassword",
    "hash": "$2b$10$N9qo8uLOickgx2ZMRZoMye..."
  }
  ```

  **Output**:
  ```json
  {
    "password": "mySecretPassword",
    "hash": "$2b$10$N9qo8uLOickgx2ZMRZoMye...",
    "result": true
  }
  ```

  ### Example 3: Custom Output Field

  Set a custom output field name in options:

  1. Expand the **Options** section
  2. Set **Output Field Name** to `hashedPassword`
  3. The result will be saved to the specified field

  **Output**:
  ```json
  {
    "password": "mySecretPassword",
    "hashedPassword": "$2b$10$N9qo8uLOickgx2ZMRZoMye..."
  }
  ```

  ## Security Considerations

  - bcrypt only uses the first 72 bytes of a password, any extra bytes are ignored
  - Recommend using async version to avoid blocking the event loop
  - Higher rounds mean better security but longer processing time
  - Default rounds of 10 is secure for most cases
  - Production environments should consider using 12 rounds or higher

  ## Development

  To develop or contribute to this project:

  ```bash
  # Clone the repository
  git clone https://github.com/luka-mimi/n8n-nodes-bcryptjs.git
  cd n8n-nodes-bcryptjs

  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Run code quality checks
  npm run lint

  # Fix code formatting
  npm run lintfix
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [bcryptjs documentation](https://github.com/dcodeIO/bcrypt.js) - The underlying crypto library
  - [bcrypt algorithm explanation](https://en.wikipedia.org/wiki/Bcrypt) - Learn about the bcrypt algorithm

  ## License

  [MIT](LICENSE.md) © luka-cat-mimi

  ---

  **If this project helps you, please give it a ⭐️!**

  **Issue Reports**: [GitHub Issues](https://github.com/luka-mimi/n8n-nodes-bcryptjs/issues)

  **中文文档**: [README_CN.md](README_CN.md)

ai_documentation_summary:
  {"purpose":"A community n8n node that provides bcryptjs functionality for password hashing, verification, and salt generation within workflow automation.","capabilities":["Hash passwords asynchronously","Verify passwords against stored hashes","Generate random salt values","Extract salt from existing hashes","Retrieve hash round count","Test password truncation limits"],"authentication":"None","commonUseCases":["User registration password hashing","User login authentication verification","Secure password storage in workflows","Password strength validation"],"limitations":["Only processes first 72 bytes of passwords, ignoring longer portions","Higher security rounds increase processing time","Community node (not official n8n package)","No built-in rate limiting or additional security features"],"relatedNodes":["Cryptography nodes","HTTP Request nodes (for external auth services)","Code nodes (for custom hashing logic)"]}


