# nodes

node_type: @langfuse/n8n-nodes-langfuse.langfuse
package_name: @langfuse/n8n-nodes-langfuse
display_name: Langfuse
description: Fetches a prompt from Langfuse Prompt Management
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: mdeichmann
author_github_url: https://github.com/langfuse/n8n-nodes-langfuse.git
npm_package_name: @langfuse/n8n-nodes-langfuse
npm_version: 0.2.3
community_fetched_at: 2026-01-07T20:08:16.137Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prompt",
      "options": [
        {
          "name": "Prompt",
          "value": "prompt"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a prompt",
          "routing": {
            "request": {
              "url": "=/api/public/v2/prompts/{{$parameter[\"promptName\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a prompt by name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a prompt",
      "routing": {
        "request": {
          "url": "=/api/public/v2/prompts/{{$parameter[\"promptName\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a prompt by name"
    }
  ]

npm_readme:
  # n8n-nodes-langfuse

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

  [Langfuse](https://langfuse.com) is an open-source LLM engineering platform that provides observability, metrics, evaluations, prompt management and a playground.

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

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

  ## Installation

  ### Self-hosted n8n

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

  ```bash
  npm install @langfuse/n8n-nodes-langfuse
  ```

  ### n8n Cloud

  This is a verified community node. Search for `Langfuse` to use this node in n8n Cloud.

  ## Operations

  ### Get Prompt

  This node can be used to get a prompt from [Langfuse Prompt Management](https://langfuse.com/docs/prompts).

  Steps

  1. Enter the `name` of the prompt
  2. Enter the `label` that identifies the prompt version that you want to fetch. Defaults to "production". Learn more about prompt labels in Langfuse [here](https://langfuse.com/docs/prompts/get-started#labels).

  _Example workflow that retrieves the system prompt for the agent from Langfuse:_

  ![n8n-changelog](https://github.com/user-attachments/assets/4d224c2f-86b6-4ad4-a64a-45c7fe6e3595)

  ## Credentials

  To use this node, you need to authenticate with Langfuse. You'll need:

  1. A Langfuse account, either [Langfuse Cloud](https://cloud.langfuse.com) or [self-hosted](https://langfuse.com/self-hosting).
  2. API credentials from your Langfuse project settings: hostname, public key, secret key

  ## Development

  ### Prerequisites

  You need the following installed on your development machine:

  - [git](https://git-scm.com/downloads)
  - Node.js and npm. Minimum version Node 20. 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/).

  ### Build new version

  ```bash
  npm run build
  npm link
  ```

  ### Test in local n8n

  ```bash
  cd ~/.n8n/custom
  npm link n8n-nodes-langfuse
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Langfuse documentation](https://langfuse.com/docs)
  - [Langfuse Prompt Management](https://langfuse.com/docs/prompts)

  ## License

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

ai_documentation_summary:
  {"purpose":"The Langfuse node in n8n allows users to retrieve a prompt from Langfuse's Prompt Management feature, enabling integration with LLM workflows for prompt versioning and observability.","capabilities":["Fetch a specific prompt by name and label","Support for prompt versioning via labels (default is 'production')","Integration with Langfuse's prompt management system"],"authentication":"API credentials required: hostname, public key, and secret key from Langfuse project settings","commonUseCases":["Retrieving system prompts for AI agents","Managing and versioning prompts in LLM workflows","Automating prompt retrieval for testing or deployment pipelines"],"limitations":[],"relatedNodes":["Prompt Management","LLM Observability","Workflow Automation"]}


node_type: @xano/n8n-nodes-xano.xano
package_name: @xano/n8n-nodes-xano
display_name: Xano
description: Interact with Xano API to manage workspaces, tables, and content.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: xanosean
author_github_url: https://github.com/xano-inc/n8n-nodes-xano.git
npm_package_name: @xano/n8n-nodes-xano
npm_version: 1.0.6
community_fetched_at: 2026-01-07T20:08:16.137Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "table",
      "options": [
        {
          "name": "Table",
          "value": "table"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTableContent",
      "options": [
        {
          "name": "Create Row",
          "value": "createRow",
          "action": "Create a row",
          "description": "Add a new row to a table"
        },
        {
          "name": "Create Row Bulk",
          "value": "bulkCreateContent",
          "action": "Create bulk rows",
          "description": "Bulk create rows in a table"
        },
        {
          "name": "Delete a Row",
          "value": "deleteSingleContent",
          "action": "Delete a row",
          "description": "Delete a single row from a table"
        },
        {
          "name": "Get a Row",
          "value": "getSingleContent",
          "action": "Get a row",
          "description": "Get a single row from a table"
        },
        {
          "name": "Get Many Rows",
          "value": "getTableContent",
          "action": "Get many rows",
          "description": "Get all rows from a table"
        },
        {
          "name": "Search Row",
          "value": "searchRow",
          "action": "Search row",
          "description": "Search for a row in a table"
        },
        {
          "name": "Update Row by ID",
          "value": "updateRow",
          "action": "Update row by ID",
          "description": "Update a new row to a table"
        },
        {
          "name": "Update Rows in Bulk by ID",
          "value": "bulkUpdateContent",
          "action": "Update rows in bulk by ID",
          "description": "Bulk Update rows to a table"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "table"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Row",
      "value": "createRow",
      "action": "Create a row",
      "description": "Add a new row to a table"
    },
    {
      "name": "Create Row Bulk",
      "value": "bulkCreateContent",
      "action": "Create bulk rows",
      "description": "Bulk create rows in a table"
    },
    {
      "name": "Delete a Row",
      "value": "deleteSingleContent",
      "action": "Delete a row",
      "description": "Delete a single row from a table"
    },
    {
      "name": "Get a Row",
      "value": "getSingleContent",
      "action": "Get a row",
      "description": "Get a single row from a table"
    },
    {
      "name": "Get Many Rows",
      "value": "getTableContent",
      "action": "Get many rows",
      "description": "Get all rows from a table"
    },
    {
      "name": "Search Row",
      "value": "searchRow",
      "action": "Search row",
      "description": "Search for a row in a table"
    },
    {
      "name": "Update Row by ID",
      "value": "updateRow",
      "action": "Update row by ID",
      "description": "Update a new row to a table"
    },
    {
      "name": "Update Rows in Bulk by ID",
      "value": "bulkUpdateContent",
      "action": "Update rows in bulk by ID",
      "description": "Bulk Update rows to a table"
    }
  ]

npm_readme:
  # 📘 n8n-nodes-xano — Custom Node Documentation

  This is an n8n community node. It lets you use [Xano](https://www.xano.com/) in your n8n workflows, enabling workflow automation through custom API actions like managing rows, fetching table schemas, and more.

  [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

  | Action                   | Value (operation)     | Description                              |
  | ------------------------ | --------------------- | ---------------------------------------- |
  | ✅ Create Row            | `createRow`           | Create a new row in a selected table     |
  | ✅ Update Row            | `updateRow`           | Update a row with specific field values  |
  | ✅ Delete Single Content | `deleteSingleContent` | Delete a single row by ID                |
  | ✅ Get a Row             | `getSingleContent`    | Fetch a row by ID                        |
  | ✅ Get Many Rows         | `getTableContent`     | Fetch multiple rows with pagination      |
  | ✅ Create Bulk Rows      | `bulkCreateContent`   | Insert multiple rows                     |
  | ✅ Update Bulk Rows      | `bulkUpdateContent`   | Bulk update multiple records             |
  | ✅ Search Rows           | `searchRow`           | Search using filter queries (JSON input) |

  ## Credentials

  To use this node in your workflows, you’ll need to authenticate your Xano account using the **Metadata API Access Token**.

  ### 🔑 Step 1: Get Your Xano Metadata API Access Token

  1. **Log in to your Xano account**
     Visit: [https://xano.com](https://xano.com)

  2. **Access your instance**
     In the lower-left corner of the dashboard, click **Instances**.

  3. **Open instance settings**
     Click the ⚙️ icon next to your instance name.

  4. **Select Metadata API**
     From the panel that opens, select **Metadata API**.

  5. **Generate an Access Token**
     Click on **➕ Create Token** and configure the following:
     - **Name**: Something descriptive like `n8n integration token`
     - **Expiry**: Set an expiry (e.g. 7 days, or "Never" if preferred)
     - **Scopes**: Select the necessary access:
       - ✅ `Database` (CRUD)

       - ✅ `Content`, `API Groups`, or other required scopes for your use case

     > ⚠️ Make sure to select `Read` and `Update` at a minimum for basic operations.

  6. **Copy the generated access token**
     This token will be shown only once. Store it securely.

  ### 🔌 Step 2: Add Credentials in n8n

  1. Open your n8n instance
  2. Go to **Credentials** and click **"New"**
  3. Search for **Xano API** (your node’s credential type)
  4. In the **Access Token** field, paste the token from Xano

  #### ✅ Successful connection will show:

  ![Connection Success](./assets/success.png)

  #### ❌ If token is invalid or expired:

  ![Connection Failed](./assets/error.png)

  > If the token is invalid, regenerate one from Xano and repeat the above steps.

  ### ✅ Final Step

  Once the connection is verified, you’re ready to start using Xano in your workflows via this custom node!

  ## Compatibility

  Tested on n8n v1.100.0 and above.

  ## Usage

  Note about the **Search Rows** operation. It uses a simplified version of the [external filtering search](https://docs.xano.com/xano-features/metadata-api/search#search) syntax.

  Here's a quick example where I'm searching for the record where id = 2.

  `[{"id|=":"2"}]`

  Simply add the JSON above to the Search field.

  **Pro tip**: Open Dev Tools in your browser then use the Xano UI filter in your table view to see what syntax gets generated by the /content API request, then copy the value from the search field in the payload and use that.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Xano Documentation](https://docs.xano.com/)

  ## Version history

  ### 1.0.1

  - Initial release

  ### 1.0.2

  - Minor updates

  ### 1.0.3

  - Minor updates

  ### 1.0.4

  - Minor updates

  ### 1.0.5

  - Minor updates

ai_documentation_summary:
  {"purpose":"The Xano node enables automation of database operations in n8n by interacting with the Xano API to manage rows, tables, and content through actions like creating, updating, deleting, and searching records.","capabilities":["Create a new row in a table","Update an existing row with specific field values","Delete a single row by ID","Fetch a single row by ID","Retrieve multiple rows with pagination","Create multiple rows in bulk","Update multiple rows in bulk","Search rows using filter queries (JSON input)"],"authentication":"API key authentication required: a Metadata API Access Token must be generated in the Xano dashboard and provided in the node credentials.","commonUseCases":["Automating data entry into Xano tables","Syncing data between n8n and Xano databases","Updating records based on triggers or conditions","Searching for specific records using filter syntax","Bulk importing or updating data"],"limitations":["Search Rows operation uses a simplified filter syntax; full search capabilities may not be supported as per Xano's external filtering API","No support for advanced Xano features outside of CRUD and metadata API scopes"],"relatedNodes":["Database nodes","API nodes","Data transformation nodes"]}


node_type: @tehw0lf/n8n-nodes-toon.toon
package_name: @tehw0lf/n8n-nodes-toon
display_name: TOON
description: Convert between TOON and JSON formats with zero external dependencies
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: tehw0lf
author_github_url: https://github.com/tehw0lf/n8n-nodes-toon.git
npm_package_name: @tehw0lf/n8n-nodes-toon
npm_version: 1.1.3
community_fetched_at: 2026-01-07T20:08:16.138Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "jsonToToon",
      "options": [
        {
          "name": "JSON to TOON",
          "value": "jsonToToon",
          "action": "Convert JSON to TOON",
          "description": "Convert JSON data to TOON format"
        },
        {
          "name": "TOON to JSON",
          "value": "toonToJson",
          "action": "Convert TOON to JSON",
          "description": "Parse TOON format to JSON"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "JSON to TOON",
      "value": "jsonToToon",
      "action": "Convert JSON to TOON",
      "description": "Convert JSON data to TOON format"
    },
    {
      "name": "TOON to JSON",
      "value": "toonToJson",
      "action": "Convert TOON to JSON",
      "description": "Parse TOON format to JSON"
    }
  ]

npm_readme:
  # @tehw0lf/n8n-nodes-toon

  [![npm version](https://img.shields.io/npm/v/@tehw0lf/n8n-nodes-toon.svg)](https://www.npmjs.com/package/@tehw0lf/n8n-nodes-toon)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  This is an n8n community node that provides bidirectional conversion between **TOON (Token-Oriented Object Notation)** and JSON formats. TOON is a line-oriented, indentation-based format optimized for LLM prompts and structured data interchange.

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

  ## Table of Contents

  - [What is TOON?](#what-is-toon)
  - [Installation](#installation)
  - [Operations](#operations)
  - [Configuration Options](#configuration-options)
  - [Usage Examples](#usage-examples)
  - [Use Cases](#use-cases)
  - [Compatibility](#compatibility)
  - [Zero Dependencies](#zero-dependencies)
  - [Resources](#resources)

  ## What is TOON?

  **TOON (Token-Oriented Object Notation)** is a compact text format that encodes the JSON data model with explicit structure and minimal quoting. It's particularly efficient for arrays of uniform objects — common in data exports, API responses, and LLM prompts.

  ### Key Features

  - **Line-oriented and indentation-based** — similar to YAML but more deterministic
  - **Minimal quoting** — strings are quoted only when necessary
  - **Explicit array lengths** — detect truncation and malformed data
  - **Tabular arrays** — declare field lists once, then list values row by row
  - **Multiple delimiters** — comma, tab, or pipe for different use cases
  - **Zero external dependencies** — pure Node.js implementation

  ### Quick Example

  **JSON:**
  ```json
  {
    "users": [
      {"id": 1, "name": "Alice", "role": "admin"},
      {"id": 2, "name": "Bob", "role": "user"}
    ]
  }
  ```

  **TOON:**
  ```
  users[2]{id,name,role}:
    1,Alice,admin
    2,Bob,user
  ```

  The TOON format is **50% more compact** than JSON for tabular data, making it ideal for:
  - **LLM prompts** — fit more context in token limits
  - **Data serialization** — compact representation of structured data
  - **API responses** — human-readable but machine-parseable
  - **Configuration files** — cleaner syntax than JSON

  ## Installation

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

  ### npm

  ```bash
  npm install @tehw0lf/n8n-nodes-toon
  ```

  ### n8n Cloud

  In n8n Cloud or self-hosted n8n (v0.200+):

  1. Go to **Settings** → **Community Nodes**
  2. Select **Install**
  3. Enter `@tehw0lf/n8n-nodes-toon` and agree to the risks
  4. Click **Install**

  The TOON node will appear in your node palette under the **Transform** category.

  ## Operations

  The TOON node supports two operations:

  ### 1. JSON to TOON

  Convert JSON data to TOON format.

  **Input:** JSON object or array
  **Output:** TOON formatted text

  **Use case:** Prepare data for LLM prompts, compact serialization

  ### 2. TOON to JSON

  Parse TOON formatted text back to JSON.

  **Input:** TOON formatted text
  **Output:** JSON object or array

  **Use case:** Parse LLM responses, deserialize TOON data

  ## Configuration Options

  ### Encoding Options (JSON→TOON)

  | Option | Type | Default | Description |
  |--------|------|---------|-------------|
  | **Indent Size** | Number | `2` | Spaces per indentation level |
  | **Delimiter** | Choice | `comma` | Delimiter for array values (`comma`, `tab`, `pipe`) |
  | **Key Folding** | Choice | `off` | Collapse single-key chains (`off`, `safe`) |
  | **Flatten Depth** | Number | `999` | Maximum segments to fold (999 = unlimited) |
  | **Include Token Metrics** | Boolean | `false` | Add token count comparison to output |

  ### Decoding Options (TOON→JSON)

  | Option | Type | Default | Description |
  |--------|------|---------|-------------|
  | **Expected Indent Size** | Number | `2` | Expected indentation for validation |
  | **Strict Mode** | Boolean | `true` | Enforce array counts and indentation |
  | **Expand Paths** | Choice | `off` | Split dotted keys (`off`, `safe`) |

  ### Input/Output Configuration

  | Option | Type | Default | Description |
  |--------|------|---------|-------------|
  | **Input Data** | String | `={{ $json }}` | Data to convert. Supports drag-and-drop, field names, dot notation, and expressions. Auto-detects input type. |
  | **Output Field** | String | `data` | Field name for output |

  #### Input Data Details

  The **Input Data** field auto-detects the input type:
  - **Drag-and-drop**: Drag fields from the left panel - automatically evaluated by n8n
  - **Field names**: Simple field access (e.g., `data`)
  - **Dot notation**: Nested access (e.g., `users[0].name`)
  - **Expressions**: Full n8n expressions (e.g., `={{ $json.users.filter(u => u.active) }}`)
  - **Literal TOON** (for decoding): If a string doesn't match a field path, treated as TOON data

  ### Token Metrics Output

  When **Include Token Metrics** is enabled for JSON→TOON conversion, the output includes a `tokenMetrics` object:

  ```json
  {
    "data": "users[2]{id,name}:\n  1,Alice\n  2,Bob",
    "tokenMetrics": {
      "json": 123,
      "toon": 58,
      "saved": 65,
      "reduction": 0.5285
    }
  }
  ```

  - **json**: Estimated token count for JSON input
  - **toon**: Estimated token count for TOON output
  - **saved**: Number of tokens saved
  - **reduction**: Reduction ratio (0.5285 = 52.85% reduction)

  ## Usage Examples

  ### Example 1: LLM Context Preparation

  **Workflow:** Fetch Users → JSON to TOON → Send to LLM

  Use TOON to fit more context into LLM token limits while maintaining readability.

  **Input (JSON):**
  ```json
  {
    "users": [
      {"id": 1, "name": "Alice", "role": "admin", "active": true},
      {"id": 2, "name": "Bob", "role": "user", "active": true},
      {"id": 3, "name": "Charlie", "role": "user", "active": false}
    ]
  }
  ```

  **Output (TOON - comma delimiter):**
  ```
  users[3]{id,name,role,active}:
    1,Alice,admin,true
    2,Bob,user,true
    3,Charlie,user,false
  ```

  **Token Savings:** ~40-50% fewer tokens than equivalent JSON for structured data.

  ### Example 2: Parse LLM Structured Output

  **Workflow:** Send Prompt to LLM → TOON to JSON → Process Data

  LLMs can generate TOON format more reliably than JSON due to simpler syntax.

  **LLM Output (TOON):**
  ```
  result:
    tasks[3]{name,priority,status}:
      "Update docs",high,pending
      "Fix bug #123",high,done
      "Refactor code",low,pending
    summary: "3 tasks identified"
  ```

  **Parsed JSON:**
  ```json
  {
    "result": {
      "tasks": [
        {"name": "Update docs", "priority": "high", "status": "pending"},
        {"name": "Fix bug #123", "priority": "high", "status": "done"},
        {"name": "Refactor code", "priority": "low", "status": "pending"}
      ],
      "summary": "3 tasks identified"
    }
  }
  ```

  ### Example 3: Working with CSV Data

  n8n has excellent built-in CSV support via the "Extract from File" node. Use TOON for transformations:

  **Workflow:** Read File → Extract from CSV → JSON to TOON → Transform → TOON to JSON → Use Data

  1. Use n8n's "Extract from File" (CSV) node to parse CSV files
  2. The extracted data is already JSON (one item per row)
  3. Use "JSON to TOON" to convert to TOON format for LLM processing
  4. Use "TOON to JSON" to convert back to JSON for further processing

  ### Example 4: Key Folding for Nested Data

  **Workflow:** API Request → JSON to TOON (Key Folding: Safe) → Transform

  Simplify deeply nested JSON structures.

  **Input:**
  ```json
  {
    "user": {
      "profile": {
        "name": "Alice",
        "email": "alice@example.com"
      }
    }
  }
  ```

  **Output (with Key Folding):**
  ```
  user.profile.name: Alice
  user.profile.email: alice@example.com
  ```

  ### Example 5: Different Delimiters

  Use tab delimiters for data with commas in values.

  **TOON (tab delimiter):**
  ```
  products[2]{id	name	price}:
    1	"Widget, Small"	9.99
    2	"Gadget, Large"	19.99
  ```

  ## Use Cases

  ### 1. LLM Integration

  **Problem:** JSON wastes tokens on quotes, brackets, and redundant keys.

  **Solution:** TOON reduces token usage by 40-50% for structured data.

  ```
  Workflow: Data Source → JSON to TOON → LLM → TOON to JSON → Process
  ```

  ### 2. API Response Transformation

  **Problem:** API responses are verbose JSON that's hard to read in logs.

  **Solution:** Convert to TOON for compact, human-readable logging.

  ```
  Workflow: API Request → JSON to TOON → Log/Store → TOON to JSON → Use
  ```

  ### 3. Data Format Conversion

  **Problem:** Need to transform data between different formats for different systems.

  **Solution:** Use TOON as an intermediate format for transformations.

  ```
  Workflow: Extract from CSV → JSON to TOON → Transform → TOON to JSON → Send to API
  ```

  ### 4. Configuration Management

  **Problem:** JSON config files are verbose and don't support comments well.

  **Solution:** Store configs in TOON format for better readability.

  ```
  Workflow: Read TOON Config → TOON to JSON → Apply Settings
  ```

  ### 5. Report Generation

  **Problem:** Need to generate readable reports from structured data.

  **Solution:** Convert to TOON for human-friendly text representation.

  ```
  Workflow: Fetch Data → JSON to TOON → Format Report → Send Email
  ```

  ## Compatibility

  - **n8n version:** 0.200.0 or later
  - **Node.js:** 18.x or later
  - **TOON Specification:** v3.0

  ## Specification Compliance

  This node implements **TOON Specification v3.0** with comprehensive coverage of all core features and major optional features.

  ### Implemented Features

  ✅ **Core Features (100%)**
  - All JSON data types (objects, arrays, primitives)
  - Indentation-based structure with configurable spacing
  - Array length declarations `[N]`
  - Tabular arrays for uniform objects `[N]{field1,field2}:`
  - All three delimiters: comma (default), tab, pipe
  - Deterministic string quoting and escaping
  - Strict mode validation with array count and width checking

  ✅ **Optional Features**
  - **Key Folding** (`keyFolding: "safe"`) - Collapse nested single-key objects into dotted paths (e.g., `{a: {b: {c: 1}}}` → `a.b.c: 1`)
  - **Path Expansion** (`expandPaths: "safe"`) - Expand dotted keys back into nested objects during decoding

  ### Not Implemented

  ❌ **Hyphen Syntax for List-Item Objects (§10)** - Optional YAML-style compact notation for objects in arrays. This is a purely cosmetic encoding optimization that doesn't affect functionality or data compatibility. Our implementation uses standard object indentation instead, which is equally spec-compliant and easier to maintain.

  ### Round-Trip Guarantee

  All JSON data can be encoded to TOON and decoded back to JSON with full fidelity. The implementation passes all conformance requirements for encoders and decoders per the specification.

  ## Advanced Features

  ### Strict Mode

  When enabled (default), the decoder validates:
  - Array element counts match declared length
  - Indentation multiples match expected indent size
  - Proper structure and syntax

  Disable for lenient parsing of hand-written TOON.

  ### Path Expansion

  Convert dotted keys into nested objects:

  **TOON:**
  ```
  user.name: Alice
  user.email: alice@example.com
  ```

  **JSON (with expandPaths: safe):**
  ```json
  {
    "user": {
      "name": "Alice",
      "email": "alice@example.com"
    }
  }
  ```

  ### Round-Trip Guarantees

  TOON guarantees lossless round-trip conversion:

  - **JSON → TOON → JSON** preserves all data and structure
  - Works with any valid JSON input
  - Maintains data types (strings, numbers, booleans, null)

  ## Zero Dependencies

  This node has **zero production dependencies**:
  - Pure Node.js implementation
  - No external libraries required
  - Minimal package size
  - No security vulnerabilities from dependencies

  **Note:** There is another package called `n8n-nodes-toon` (non-scoped) that wraps the official `@toon-format/toon` library. This package (`@tehw0lf/n8n-nodes-toon`) implements the TOON specification directly, resulting in zero production dependencies and full control over the implementation.

  ## Troubleshooting

  ### Issue: "Input must be a string" error

  **Cause:** TOON to JSON operation expects string input.

  **Solution:** Ensure input field contains TOON text, not a JSON object.

  ### Issue: Strict mode validation errors

  **Cause:** TOON data doesn't match expected structure.

  **Solution:** Disable strict mode or fix indentation/counts in TOON data.

  ### Issue: Key folding conflicts

  **Cause:** Both `user.name` and `user` keys exist in same object.

  **Solution:** Use `keyFolding: "safe"` which only folds when safe, or disable key folding.

  ### Issue: Round-trip doesn't match exactly

  **Cause:** TOON normalizes data (e.g., -0 → 0, sorts object keys).

  **Solution:** This is expected — TOON preserves semantic meaning, not exact formatting.

  ## Resources

  - **TOON Specification v3.0:** Official spec at [github.com/toon-format/spec](https://github.com/toon-format/spec) or see [SPEC.md](SPEC.md) in this repository
  - **n8n Documentation:** https://docs.n8n.io/
  - **Community Nodes Guide:** https://docs.n8n.io/integrations/community-nodes/
  - **GitHub Repository:** https://github.com/tehw0lf/n8n-nodes-toon
  - **Issues & Support:** https://github.com/tehw0lf/n8n-nodes-toon/issues

  ## License

  MIT © [tehw0lf](https://github.com/tehw0lf)

  ## Author

  **tehw0lf** <tehwolf@protonmail.com>

  ## Contributing

  Contributions are welcome! Please open an issue or pull request on GitHub.

  ---

  **Note:** This node implements the [TOON Specification v3.0](https://github.com/toon-format/spec). See `SPEC.md` for complete format documentation or visit the official spec repository.

ai_documentation_summary:
  {"purpose":"Converts between TOON (Token-Oriented Object Notation) and JSON formats bidirectionally, with support for token metrics and customizable formatting options, ideal for LLM prompts and compact data serialization.","capabilities":["Convert JSON to TOON format","Convert TOON to JSON format","Include token metrics (token count comparison and reduction)","Customize delimiters (comma, tab, pipe)","Control indentation, key folding, and flattening depth","Support for nested field access and expressions in input data"],"authentication":"None","commonUseCases":["Preparing data for LLM prompts to fit within token limits","Compact serialization of structured tabular data","Parsing LLM responses that return TOON-formatted output","API responses requiring human-readable yet machine-parsable formats"],"limitations":[],"relatedNodes":["Transform","LLM nodes","Data serialization nodes"]}


node_type: n8n-nodes-clipboardgenie.clipboardGenie
package_name: n8n-nodes-clipboardgenie
display_name: Clipboard Genie
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: genielaboratories
author_github_url: https://github.com/genielaboratories/
npm_package_name: n8n-nodes-clipboardgenie
npm_version: 0.1.7
community_fetched_at: 2026-01-07T20:08:16.138Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Integrate n8n with the ClipboardGenie app to send and receive clipboard data between your desktop and workflows.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "item",
      "options": [
        {
          "name": "Item",
          "value": "item"
        },
        {
          "name": "Notification",
          "value": "notification"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createText",
      "options": [
        {
          "name": "Create Text Item",
          "value": "createText",
          "action": "Create text item",
          "description": "Create a new text item in the desktop app"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "item"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "show",
      "options": [
        {
          "name": "Show",
          "value": "show",
          "action": "Show notification",
          "description": "Displays a system notification on your desktop with an optional title and message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notification"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Text Item",
      "value": "createText",
      "action": "Create text item",
      "description": "Create a new text item in the desktop app"
    },
    {
      "name": "Show",
      "value": "show",
      "action": "Show notification",
      "description": "Displays a system notification on your desktop with an optional title and message"
    }
  ]

npm_readme:
  ﻿# n8n-nodes-clipboardgenie

  This is an n8n community node. It allows you to connect **Clipboard Genie** with your n8n workflows.

  **Clipboard Genie** is a modern Windows clipboard manager with pinboards, advanced search, and desktop notifications.
  With this node, you can send text items directly to the app or trigger desktop notifications from your workflows.


  > This is a community-contributed node. It is not affiliated with or maintained by n8n GmbH.


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

  ---

  ## Installation

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

  ```bash
  # Inside your n8n instance
  npm install n8n-nodes-clipboardgenie
  ```

  After installation, restart n8n to load the new node.

  ---

  ## Operations

  This node provides two resources:

  ### 🗂️ Resource: Item

  **Operation: Create Text Item**

  Creates a new text item in your Clipboard Genie desktop app.
  You can choose the pinboard where the item will appear, optionally show it on the main board, and display a system notification.

  #### Parameters

  | Name                                 | Type    | Required    | Default | Description                                                                                                                                                                                                                                                                                                                                          |
  | ------------------------------------ | ------- | ----------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | **Pinboard Name**                    | String  | ✅ Yes       | `""`    | Specify the pinboard name where the item will be added.                                                                                                                                                                                                                                                                                              |
  | **Show on Main Board**               | Boolean | No          | `false` | Also display the item on your main board.                                                                                                                                                                                                                                                                                                            |
  | **Text to Send**                     | String  | ✅ Yes       | `""`    | The text content of the new item.                                                                                                                                                                                                                                                                                                                    |
  | **Open Link or Path**                | String  | No          | `""`    | Optional URL, file path, or command associated with the item. When provided, a button in the app will open it directly.<br>Supported formats: `https://example.com`, `file:///Users/name/file.pdf`, `file://app.name --param value`.<br>For Windows paths with spaces, wrap them in quotes, e.g. `"C:\\Program Files\\App\\app.exe" "--flag value"`. |
  | **Show System Notification**         | Boolean | No          | `true`  | Display a desktop notification when the item is received.                                                                                                                                                                                                                                                                                            |
  | **Notification Title**               | String  | Conditional | `""`    | Optional title displayed in the notification (only shown if notifications are enabled).                                                                                                                                                                                                                                                              |
  | **Notification Message**             | String  | Conditional | `""`    | Optional body text for the notification.                                                                                                                                                                                                                                                                                                             |
  | **Close Notification Automatically** | Boolean | Conditional | `false` | Automatically close the notification after a short delay.                                                                                                                                                                                                                                                                                            |

  ---

  ### 🔔 Resource: Notification

  **Operation: Show**

  Displays a native desktop notification with an optional title, message, and “Open” button.

  #### Parameters

  | Name                     | Type    | Required | Default | Description                                                                             |
  | ------------------------ | ------- | -------- | ------- | --------------------------------------------------------------------------------------- |
  | **Notification Title**   | String  | No       | `""`    | Optional title. If not set, a default title will appear.                                |
  | **Notification Message** | String  | ✅ Yes    | `""`    | Main content of the notification.                                                       |
  | **Open Link or Path**    | String  | No       | `""`    | Optional URL, file path, or app command. When provided, a button will open it directly. |
  | **Auto Close**           | Boolean | No       | `false` | Automatically close the notification after a short delay.                               |

  ---

  ## Credentials

  ### 🔑 API Key Authentication

  Clipboard Genie uses API key authentication for all n8n integrations.

  1. In the Clipboard Genie desktop app, go to
     **Settings → Extensions → n8n**
  2. Click **Generate API Key**.
  3. Copy the generated key and paste it into the **API Key** field in your n8n credentials for Clipboard Genie.
  4. The node will automatically send it using:

     ```
     Authorization: Bearer <API_KEY>
     ```

  ---

  ## Compatibility

  * **n8n version:** ≥ 1.x (supports community nodes)
  * **Clipboard Genie:** latest desktop version with n8n extension
  * **Platform:** Windows desktop (notifications and pinboards handled by the app)

  ---

  ## Usage

  ### ▶️ Example 1: Create a Text Item

  1. Add a new node: **Clipboard Genie → Item → Create Text Item**
  2. Fill in the required fields:

     * *Pinboard Name*
     * *Text to Send*
  3. (Optional) Enable **Show System Notification** to alert the user when the item is added.
  4. Execute the workflow.
     The text will appear in the selected pinboard in Clipboard Genie desktop application.

  ---

  ### ▶️ Example 2: Show a Desktop Notification

  1. Add a node: **Clipboard Genie → Notification → Show**
  2. Provide a *Notification Message* (required).
  3. Optionally set:

     * *Notification Title*
     * *Open Link or Path*
     * *Auto Close*
  4. Run the workflow.
     The user will receive a native desktop notification with the specified content and actions.

  ---

  ## Resources

  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Clipboard Genie Website](https://clipboardgenie.com)
  * [GitHub Repository & Issues](https://github.com/genielaboratories/n8n-nodes-clipboardgenie/issues) — report bugs or suggest new features

  ---

  ## Version history

  | Version   | Changes                                                                                             |
  | --------- | --------------------------------------------------------------------------------------------------- |
  | **0.1.6** | Fix: optional parameters (internal version, never published to npm)                                |
  | **0.1.0** | Initial release with two operations:<br>– Item → Create Text Item<br>– Notification → Show         |

  ---

ai_documentation_summary:
  {"purpose":"The Clipboard Genie node integrates n8n with the Clipboard Genie desktop app, enabling workflows to send text items to the app, pin them to specific pinboards, and trigger desktop notifications.","capabilities":["Create text items in Clipboard Genie with customizable pinboard placement","Optionally show items on the main board","Attach a link, file path, or command to open directly from the app","Display system desktop notifications with custom titles and messages","Automatically close notifications after a delay"],"authentication":"None (no authentication required)","commonUseCases":["Send workflow-generated text to Clipboard Genie for easy access on desktop","Pin important data to specific pinboards for quick retrieval","Trigger desktop notifications when a workflow completes or an event occurs","Automate the creation of clipboard entries from data processing steps"],"limitations":[],"relatedNodes":["n8n-nodes-base.actions","n8n-nodes-base.functions","n8n-nodes-base.webhooks"]}


node_type: n8n-nodes-upcellapi.upcellApi
package_name: n8n-nodes-upcellapi
display_name: upcell API
description: Get data from the upcell API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: justinsweeney
author_github_url: https://github.com/UpCell/n8n-node.git
npm_package_name: n8n-nodes-upcellapi
npm_version: 0.2.0
community_fetched_at: 2026-01-07T20:08:16.139Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "enrichMobile",
      "options": [
        {
          "name": "Enrich Mobile",
          "value": "enrichMobile"
        },
        {
          "name": "Enrich Email",
          "value": "enrichEmail"
        },
        {
          "name": "Enrich Social URL",
          "value": "enrichSocialUrl"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post",
          "action": "Enrich mobile",
          "routing": {
            "request": {
              "url": "/enrich/contact",
              "body": {
                "fields": "={{[\"mobile\"]}}",
                "linkedinUrl": "={{ $parameter.linkedinUrl }}"
              },
              "method": "POST"
            }
          },
          "description": "Enrich contact with mobile phone"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichMobile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post",
          "action": "Enrich email",
          "routing": {
            "request": {
              "url": "/enrich/email",
              "body": {
                "last_name": "={{ $parameter.lastName }}",
                "first_name": "={{ $parameter.firstName }}",
                "company_domain": "={{ $parameter.companyDomain }}"
              },
              "method": "POST"
            }
          },
          "description": "Enrich contact with email address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichEmail"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post",
          "action": "Enrich social url",
          "routing": {
            "request": {
              "url": "/enrich/socialurl",
              "body": {
                "email": "={{ $parameter.email }}",
                "title": "={{ $parameter.title }}",
                "last_name": "={{ $parameter.lastName }}",
                "first_name": "={{ $parameter.firstName }}",
                "company_name": "={{ $parameter.companyName }}",
                "mobile_phone": "={{ $parameter.mobilePhone }}",
                "company_domain": "={{ $parameter.companyDomain }}",
                "company_social_url": "={{ $parameter.companySocialUrl }}"
              },
              "method": "POST"
            }
          },
          "description": "Enrich contact with social URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichSocialUrl"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Post",
      "value": "post",
      "action": "Enrich mobile",
      "routing": {
        "request": {
          "url": "/enrich/contact",
          "body": {
            "fields": "={{[\"mobile\"]}}",
            "linkedinUrl": "={{ $parameter.linkedinUrl }}"
          },
          "method": "POST"
        }
      },
      "description": "Enrich contact with mobile phone"
    },
    {
      "name": "Post",
      "value": "post",
      "action": "Enrich email",
      "routing": {
        "request": {
          "url": "/enrich/email",
          "body": {
            "last_name": "={{ $parameter.lastName }}",
            "first_name": "={{ $parameter.firstName }}",
            "company_domain": "={{ $parameter.companyDomain }}"
          },
          "method": "POST"
        }
      },
      "description": "Enrich contact with email address"
    },
    {
      "name": "Post",
      "value": "post",
      "action": "Enrich social url",
      "routing": {
        "request": {
          "url": "/enrich/socialurl",
          "body": {
            "email": "={{ $parameter.email }}",
            "title": "={{ $parameter.title }}",
            "last_name": "={{ $parameter.lastName }}",
            "first_name": "={{ $parameter.firstName }}",
            "company_name": "={{ $parameter.companyName }}",
            "mobile_phone": "={{ $parameter.mobilePhone }}",
            "company_domain": "={{ $parameter.companyDomain }}",
            "company_social_url": "={{ $parameter.companySocialUrl }}"
          },
          "method": "POST"
        }
      },
      "description": "Enrich contact with social URL"
    }
  ]

npm_readme:
  # n8n-nodes-upcellapi

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

  upcell provides B2B contact and sales intelligence data.

  [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

  * Enrich Contact - enrich a contact with mobile data
  * Enrich Email - enrich a contact with a verified email address
  * Enrich Social URL - enrich a contact with a social url

  ## Credentials

  In order to use the upcell node, you will need to first obtain an upcell API key by contacting [sales@upcell.io](mailto:sales@upcell.io).

  ## Compatibility

  This has been tested against n8n version 1.115.3.

  ## Usage

  To understand more about the APIs available from upcell, visit https://api.upcell.io.

  If you are new to n8n and community nodes, you can [Try it out](https://docs.n8n.io/try-it-out/) to get started.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [upcell API Docs](https://www.upcell.io)

ai_documentation_summary:
  {"purpose":"The upcell API node allows users to integrate upcell's B2B contact and sales intelligence data into n8n workflows by enriching contact information with mobile data, verified email addresses, and social URLs.","capabilities":["Enrich Contact with mobile data","Enrich Email with verified email addresses","Enrich Social URL with social media links"],"authentication":"API key required; obtain it by contacting sales@upcell.io","commonUseCases":["Enhancing contact data with verified email and mobile information","Gathering social media profiles for sales and marketing outreach","Improving data accuracy for B2B lead enrichment in CRM workflows"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook"]}


node_type: @reportei/n8n-nodes-reportei.reportei
package_name: @reportei/n8n-nodes-reportei
display_name: Reportei
description: Perform actions with Reportei API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: pgabriel20
author_github_url: https://github.com/reportei/reportei-n8n-node.git
npm_package_name: @reportei/n8n-nodes-reportei
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:16.142Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "report",
      "options": [
        {
          "name": "Report",
          "value": "report"
        },
        {
          "name": "Dashboard",
          "value": "dashboard"
        },
        {
          "name": "Timeline",
          "value": "timeline"
        }
      ],
      "required": true,
      "description": "Choose which resource you want to operate on",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create a Report",
          "value": "create",
          "action": "Create a report",
          "description": "Creates a new report in Reportei"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a dashboard",
          "description": "Create a new dashboard in Reportei"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Add event to timeline",
          "description": "Add an event (milestone) to the timeline in Reportei"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "timeline"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create a Report",
      "value": "create",
      "action": "Create a report",
      "description": "Creates a new report in Reportei"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a dashboard",
      "description": "Create a new dashboard in Reportei"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Add event to timeline",
      "description": "Add an event (milestone) to the timeline in Reportei"
    }
  ]

npm_readme:
  # n8n-nodes-reportei

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

  **Reportei** is a reporting and dashboard platform that helps you generate marketing reports, track timelines, and automate analytics. With this node, you can create reports, dashboards, and timeline events, as well as trigger workflows on various events happening in your Reportei account.

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

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

  ## Installation

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

  Once installed, you can select **Reportei** and **Reportei Trigger** in your n8n workflows to interact with the Reportei API.

  ## Operations

  The **Reportei** node offers the following _actions_ (operations):

  - **Create Report**: Create a marketing report, specifying the project, integrations, date ranges, titles, and optionally select a template.  
  - **Create Dashboard**: Create a custom dashboard linked to a project, with selected integrations, date ranges, and optionally select a template.  
  - **Add Event to Timeline**: Insert a milestone or note into a project’s report timeline.

  The **Reportei Trigger** node supports these _events_ (webhooks):

  - **Report Created**  
  - **Report Viewed**  
  - **Dashboard Created**  
  - **Automation Executed**  
  - **Control Goal Met**  
  - **Control Goal Not Met**  
  - **Timeline Milestone Added**

  ## Credentials

  To use this node, you need a **Reportei API** token (Bearer token).  
  1. **Get your token** from the Reportei account page.  
  2. In n8n, create a new credential called **Reportei API** and paste your token.  
  3. Use this credential in the **Reportei** or **Reportei Trigger** node.

  For webhooks, the node will automatically register or unregister a webhook subscription in your Reportei account if you use the **Reportei Trigger** node. You only need to provide valid credentials and set the correct event type.

  ## Compatibility

  - **Minimum n8n version**: 1.85.0 (or whichever you have tested).  
  - The node is developed and tested against **Reportei**’s [API v1](https://app.reportei.com/docs/api).  
  - No known incompatibilities, but you must enable **community nodes** in n8n’s settings for installation.

  ## Usage

  1. In your n8n instance, install the node via one of the methods described in the community nodes [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).  
  2. Create or select a credential for **Reportei API**.  
  3. **Actions** node (Reportei):
     - Drag the **Reportei** node into your workflow.  
     - Select your resource (Report, Dashboard, or Timeline) and the operation (create).  
     - Fill the required fields, such as “Project ID”, “Integrations”, “Title”, etc.  
     - Execute the workflow to see the results.
  4. **Trigger** node (Reportei Trigger):
     - Drag the **Reportei Trigger** node into your workflow.  
     - Choose an event type (e.g., “report_created”).  
     - (Optional) If you are running n8n locally or behind a tunnel, fill **Custom Webhook Base URL** with your public domain (for example, `https://your-domain.tld`). This replaces the default localhost address in the webhook registration, ensuring external services (Reportei) can reach your n8n instance.  
     - Activate the workflow. The node will register a webhook at Reportei.  
     - Once the event occurs, n8n will receive a POST request at your specified domain and trigger your workflow.

  If you need more help with n8n basics, check out the [Try it out](https://docs.n8n.io/try-it-out/) documentation.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)  
  - [Reportei API documentation](https://app.reportei.com/docs/api)  
  - [n8n official docs](https://docs.n8n.io/)

  ## Version history

  - **0.1.0**  
    - Initial release of the **n8n-nodes-reportei** package.  
    - Added actions: Create Report, Create Dashboard, Add Timeline Event.  
    - Added triggers for 6 events: `report_created`, `dashboard_created`, `automation_executed`, `control_goal_met`, `control_goal_not_met`, `timeline_milestone`.

  - **0.1.1**  
    - Fixed minor bugs in the existing operations and triggers.

  - **0.1.2**  
    - Added the optional **Custom Webhook Base URL** input in the trigger node.  
    - Users can now specify a public domain (such as a tunnel URL) to replace localhost, making it easier to receive events behind NAT or local environments.

  - **0.1.3**  
    - **NEW**: Added optional **Template Selection** for Reports and Dashboards.  
    - Templates are now loaded dynamically based on the selected project.  
    - Enhanced API endpoint handling with multiple fallback URLs for better reliability.  
    - Improved error handling for template loading operations.

  - **0.1.4**  
    - **FIXED**: Added credential test functionality to validate API tokens.  
    - The node now includes automatic credential validation using the `/me` endpoint.  
    - This resolves the "Missing credential test" error during n8n community node verification.  
    - Improved user experience with immediate feedback on invalid credentials.

  - **0.1.5**  
    - **NEW**: Added 'Report Viewed' trigger event (`report_viewed`).  
    - **IMPROVED**: Made 'Project Name or ID' field optional in trigger configuration. Users can now create triggers without specifying a specific project, allowing for more flexible webhook configurations.  

ai_documentation_summary:
  {"purpose":"The Reportei node enables integration with the Reportei platform to create marketing reports, dashboards, and timeline events, as well as trigger workflows based on specific events like report creation or automation execution.","capabilities":["Create a marketing report with project, integrations, date ranges, title, and optional template","Create a custom dashboard linked to a project with integrations, date ranges, and optional template","Add a milestone or note to a project's timeline","Trigger workflows on events such as report created, report viewed, dashboard created, automation executed, control goal met/not met, and timeline milestone added"],"authentication":"API token (Bearer token) required. Obtain it from the Reportei account page and store it in a 'Reportei API' credential in n8n.","commonUseCases":["Automatically generate marketing reports based on date ranges and integrations","Set up dashboards for project tracking with dynamic templates","Monitor report views or automation outcomes via webhooks","Receive real-time alerts when milestones are added or goals are met"],"limitations":[],"relatedNodes":["Reportei Trigger","Webhook","API Integration"]}


node_type: n8n-nodes-sms-advert.smsAdvert
package_name: n8n-nodes-sms-advert
display_name: SMSAdvert
description: SMS Advert API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: apps_makeitfuture
author_github_url: https://github.com/makeitfutureDev/n8n-sms-advert.git
npm_package_name: n8n-nodes-sms-advert
npm_version: 1.0.23
community_fetched_at: 2026-01-07T20:08:16.143Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sms",
      "options": [
        {
          "name": "SMS",
          "value": "sms"
        }
      ],
      "required": true,
      "description": "Send SMS through own devices",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDevice",
      "options": [
        {
          "name": "Get Devices",
          "value": "getDevice",
          "action": "Get device list",
          "description": "Get all devices"
        },
        {
          "name": "Get Account Details",
          "value": "getAccountDetails",
          "action": "Get account details",
          "description": "Get your account details and available units"
        },
        {
          "name": "Get SMS Api Queue",
          "value": "getApiQueue",
          "action": "Get SMS API queue count",
          "description": "Get current count of messages in the API queue"
        },
        {
          "name": "Send a Message",
          "value": "textToPhoneNumber",
          "action": "Send text to phone number",
          "description": "Send a text to a phone number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Devices",
      "value": "getDevice",
      "action": "Get device list",
      "description": "Get all devices"
    },
    {
      "name": "Get Account Details",
      "value": "getAccountDetails",
      "action": "Get account details",
      "description": "Get your account details and available units"
    },
    {
      "name": "Get SMS Api Queue",
      "value": "getApiQueue",
      "action": "Get SMS API queue count",
      "description": "Get current count of messages in the API queue"
    },
    {
      "name": "Send a Message",
      "value": "textToPhoneNumber",
      "action": "Send text to phone number",
      "description": "Send a text to a phone number"
    }
  ]

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](https://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).

  If you would like your node to be available on n8n cloud you can also [submit your node for verification](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/).

  ## Prerequisites

  You need the following installed on your development machine:

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

  ## Using this starter

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

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

  ## More information

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

  ## License

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

  ## 📲 n8n-nodes-smsadvert
  * Official n8n node for SMSAdvert API — easily send SMS messages and manage your SMS accounts directly from your n8n workflows.

  ✉️ Features
  ✅ Send SMS messages to phone numbers using your own devices or the SMSAdvert network.
  ✅ Get a list of your registered devices.
  ✅ Check your current API message queue count.

  * ⚡ Fully integrated with n8n authentication.

  🚀 Installation
  npm install n8n-nodes-smsadvert
  After installation, restart n8n. The node will appear in your node list as SMSAdvert.

  🔐 Authentication
  The node uses API Key authentication.
  In n8n, create new credentials of type SMSAdvertAPI and add your API key from your SMSAdvert account.

  💬 Example Workflows
  Simple SMS blast
  Use an HTTP Request node to pull a list of numbers from a CRM or sheet.

  Connect to SMSAdvert node with Send a Message operation.

  Done! Bulk SMS to your audience.

  🧑‍💻 Contributing
  Pull requests are welcome!
  If you'd like to add new features or improve existing functionality, please open an issue first to discuss what you'd like to change.

ai_documentation_summary:
  {"purpose":"The SMSAdvert node enables users to send SMS messages, manage registered devices, and check API message queue counts directly within n8n workflows using the SMSAdvert API.","capabilities":["Send SMS messages to phone numbers via own devices or the SMSAdvert network","Retrieve a list of registered devices","Check the current API message queue count"],"authentication":"API Key authentication; create credentials of type 'SMSAdvertAPI' in n8n and enter the API key from your SMSAdvert account","commonUseCases":["Bulk SMS campaigns to customer lists from CRM or spreadsheets","Device management and monitoring of registered SMS endpoints","Monitoring message queue status before or after sending SMS messages"],"limitations":[],"relatedNodes":["HTTP Request","CRM nodes (e.g., for pulling contact lists)"]}


node_type: n8n-nodes-oxylabs-ai-studio.oxylabsAiStudio
package_name: n8n-nodes-oxylabs-ai-studio
display_name: Oxylabs AI Studio
description: Interact with Oxylabs AI Studio API
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: oxybrain
author_github_url: https://github.com/oxylabs/n8n-nodes-oxylabs-ai-studio
npm_package_name: n8n-nodes-oxylabs-ai-studio
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:16.143Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scraper",
      "options": [
        {
          "name": "Browser Agent",
          "value": "browserAgent"
        },
        {
          "name": "Crawler",
          "value": "crawler"
        },
        {
          "name": "Map",
          "value": "map"
        },
        {
          "name": "Scraper",
          "value": "scraper"
        },
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "required": true,
      "description": "Choose the resource to use",
      "displayName": "Resource",
      "noDataExpression": true
    }
  ]

npm_readme:
  # n8n-nodes-oxylabs-ai-studio

  This is an n8n community node. It lets you use Oxylabs Ai Studio Apps 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.

  ## Credentials

  Sign up and get API KEY from [here](https://aistudio.oxylabs.io/settings/api-key)

  ## Compatibility

  node was tested against version `1.100.1`.

  ## Resources

  The node includes four resources: Scraper, Crawler, Browser Agent, and Search. These correspond directly to the same applications available in Oxylabs AI Studio’s [web apps](https://aistudio.oxylabs.io/apps).

  The parameters are nearly identical to those offered by the official SDKs ([Javscript](https://www.npmjs.com/package/oxylabs-ai-studio) and [Python](https://pypi.org/project/oxylabs-ai-studio/)).

  An additional parameter not found in the web interface is `render_javascript`, which is especially useful for handling websites that rely on JavaScript for rendering content.


  ## Usage

  - Scraper is useful for extracting information from a specific URL without getting blocked.

  - Crawler is ideal for scanning an entire domain to collect URLs and their content in order to locate specific information.

  - Search helps retrieve the latest information related to a particular query.

  - Browser Agent controls a remote browser and can perform interactions, such as logging into an app and clicking buttons, making it valuable for scenarios that require user-like actions.



  ## Version history

  - 0.1.0: First version released

ai_documentation_summary:
  {"purpose":"The Oxylabs AI Studio node enables n8n users to integrate and automate tasks using Oxylabs AI Studio's web applications, including scraping, crawling, searching, and browser automation via API interactions.","capabilities":["Extract data from specific URLs using the Scraper","Scan entire domains to collect URLs and content using the Crawler","Retrieve the latest information based on a query using Search","Control a remote browser to perform user-like actions (e.g., logging in, clicking buttons) using Browser Agent"],"authentication":"API key required","commonUseCases":["Automated data extraction from websites with dynamic content","Monitoring websites for updates using search functionality","Web crawling to discover and collect links or content from domains","Performing interactive tasks on websites that require JavaScript rendering"],"limitations":[],"relatedNodes":["Webhooks","HTTP Request","Database","Function"]}


node_type: n8n-nodes-scrapfly.Scrapfly
package_name: n8n-nodes-scrapfly
display_name: Scrapfly
description: Scrapfly data collection APIs for web page scraping, screenshots, and AI data extraction
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: scrapfly
author_github_url: https://github.com/scrapfly/
npm_package_name: n8n-nodes-scrapfly
npm_version: 0.1.7
community_fetched_at: 2026-01-07T20:08:16.144Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "Scrape"
        },
        {
          "name": "Extraction",
          "value": "Extraction"
        },
        {
          "name": "Screenshot",
          "value": "Screenshot"
        },
        {
          "name": "Account",
          "value": "Account"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "ScrapeWebPage",
      "options": [
        {
          "name": "Scrape Web Page",
          "value": "ScrapeWebPage",
          "action": "Scrape web page",
          "description": "Scrape a web page given its URL"
        },
        {
          "name": "Scrape API Request",
          "value": "ScrapeAPIRequest",
          "action": "Scrape api request",
          "description": "Send a web scraping API request"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "WebPageDataExtraction",
      "options": [
        {
          "name": "Extract Data From an HTML, Text, or Markdown Document Using AI",
          "value": "WebPageDataExtraction",
          "action": "Extract data from an html text or markdown document using ai",
          "description": "Extracts structured data from any text content. Uses AI, LLM, and custom parsing instructions."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Extraction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "WebPageScreenshot",
      "options": [
        {
          "name": "Capture Web Page Screenshot",
          "value": "WebPageScreenshot",
          "action": "Capture web page screenshot",
          "description": "Takes a screenshot of a web page given its URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Screenshot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "AccountInfo",
      "options": [
        {
          "name": "Get Account Info",
          "value": "AccountInfo",
          "action": "Returns information about the current subscription and account usage",
          "description": "AccountInfo"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Account"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scrape Web Page",
      "value": "ScrapeWebPage",
      "action": "Scrape web page",
      "description": "Scrape a web page given its URL"
    },
    {
      "name": "Scrape API Request",
      "value": "ScrapeAPIRequest",
      "action": "Scrape api request",
      "description": "Send a web scraping API request"
    },
    {
      "name": "Extract Data From an HTML, Text, or Markdown Document Using AI",
      "value": "WebPageDataExtraction",
      "action": "Extract data from an html text or markdown document using ai",
      "description": "Extracts structured data from any text content. Uses AI, LLM, and custom parsing instructions."
    },
    {
      "name": "Capture Web Page Screenshot",
      "value": "WebPageScreenshot",
      "action": "Capture web page screenshot",
      "description": "Takes a screenshot of a web page given its URL"
    },
    {
      "name": "Get Account Info",
      "value": "AccountInfo",
      "action": "Returns information about the current subscription and account usage",
      "description": "AccountInfo"
    }
  ]

npm_readme:
  # n8n-nodes-scrapfly

  This is an n8n community node. It lets you use ScrapFly in your n8n workflows. [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  [ScrapFly.io](https://scrapfly.io/) provides data collection APIs for web page scraping, screenshots, and AI data extraction at scale. Integrating ScrapFly within a workflow enables extracting web page sources, parsing for structured data, or taking screenshots as binary files.

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation. See examples
  from [Scrapfly documentation](https://scrapfly.io/docs/integration/n8n) to see usage.

  ## Operations
  - __Scrape web page URLs__  
  Scrapes the HTML source of a given web page URL with the support of headless browsers, proxies, and anti-bot bypass.
  - __Extract Data From an HTML, Text, or Markdown Document Using AI__  
  Automatically parse HTML, Text, or Markdown documents using pre-defined templates or LLM prompts to extract structured data.
  - __Capture web page screenshot__  
  Takes a screenshot of a web page as an image file given its URL.
  - __Get account info__  
  Get information about the current account subscription and its usage.

  ## Credentials

  ScrapFly API key is used as a credential key. To get your API key, register for free.

  ## Usage

  For example, regarding usage and predefined workflow templates, please look at [ScrapFly's n8n integration docs](https://scrapfly.io/docs/integration/n8n).

  ## Resources

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

  ## Development 

  To publish a new release, you need repo access and play command like `make bump-version VERSION=0.1.3`

ai_documentation_summary:
  {"purpose":"The Scrapfly node enables web scraping, AI-powered data extraction from HTML/text/markdown, and screenshot capture using ScrapFly's APIs within n8n workflows.","capabilities":["Scrape web page URLs with headless browsers, proxies, and anti-bot protection","Extract structured data from HTML, text, or markdown using AI and predefined templates or LLM prompts","Capture web page screenshots as binary image files","Retrieve account information including subscription details and usage"],"authentication":"API key required; obtain a free API key by registering at ScrapFly.io","commonUseCases":["Extracting product data from e-commerce websites","Automating data collection from dynamic or JavaScript-heavy pages","Generating screenshots for monitoring or reporting","Using AI to parse unstructured content into structured formats"],"limitations":[],"relatedNodes":["Web Scraper","AI Data Extraction","Screenshot Node","Account Information Node"]}


node_type: n8n-nodes-phacet-official.phacet
package_name: n8n-nodes-phacet-official
display_name: Phacet
description: Interact with Phacet API to manage spreadsheet data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: phacetlabs
author_github_url: https://github.com/spx-software/n8n-phacet-official.git
npm_package_name: n8n-nodes-phacet-official
npm_version: 0.1.6
community_fetched_at: 2026-01-07T20:08:16.144Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "row",
      "options": [
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Row",
          "value": "row"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a row",
          "description": "Create a new row in a phacet"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "row"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a PDF file to Phacet"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a row",
      "description": "Create a new row in a phacet"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload a file",
      "description": "Upload a PDF file to Phacet"
    }
  ]

npm_readme:
  # n8n-nodes-phacet

  ![Phacet Logo](https://raw.githubusercontent.com/spx-software/n8n-phacet-official/main/nodes/Phacet/phacet.svg)

  This is an n8n community node for [Phacet](https://phacetlabs.com), a powerful AI-driven spreadsheet platform. It allows you to upload files and manage spreadsheet data directly from 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)
  [Compatibility](#compatibility)
  [Usage](#usage)
  [Resources](#resources)

  ## Installation

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

  ### Community Nodes (n8n Cloud & Self-hosted)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-phacet-official`
  4. Select **Install**

  Once installed, the Phacet node will be available in your node palette.

  ## Operations

  ### File Operations
  - **Upload**: Upload PDF files to Phacet for processing

  ### Row Operations
  - **Create**: Create new rows in Phacet spreadsheets with dynamic column mapping

  ## Credentials

  You need a Phacet API key to use this node.

  ### Getting your Phacet API Key

  1. Log in to your [Phacet dashboard](https://app.phacetlabs.com)
  2. Go to **Settings** or **API Settings**
  3. Generate a new API key
  4. Copy the API key

  ### Setting up the credential in n8n

  1. In n8n, create a new **Phacet API** credential
  2. Enter your API key in the **API Key** field
  3. Save the credential

  ## Compatibility

  - **n8n version**: 1.0.0 or later
  - **Node version**: 18.0.0 or later

  ## Usage

  ### Upload Files

  Use the **Upload** operation to send PDF files to Phacet:

  1. Add the Phacet node to your workflow
  2. Select **File** as the resource
  3. Select **Upload** as the operation
  4. Configure your file input (usually from a previous node)
  5. The node returns the uploaded file information including the file ID

  ### Create Rows

  Use the **Create** operation to add new rows to your Phacet spreadsheets:

  1. Add the Phacet node to your workflow
  2. Select **Row** as the resource
  3. Select **Create** as the operation
  4. Choose your **Phacet** from the dynamic dropdown
  5. Choose your **Session** from the dynamic dropdown (based on selected phacet)
  6. Map your data to **Columns** using the dynamic column selector
  7. The node returns the created row information

  ### Dynamic Dropdowns

  This node features intelligent dynamic dropdowns that:
  - Load your available phacets automatically
  - Show sessions based on your selected phacet
  - Display column names (not just IDs) for easy mapping
  - Update in real-time as you make selections

  ## Example Workflows

  ### PDF Processing Pipeline
  ```
  Email Trigger → Extract Attachments → Phacet Upload → Create Row with File ID
  ```

  ### Data Import Workflow
  ```
  HTTP Request → JSON Processing → Phacet Create Row → Notification
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Phacet API Documentation](https://docs.phacetlabs.com/reference/authentication-1)
  - [Phacet Platform](https://phacetlabs.com)

  ## License

  [MIT](LICENSE.md)

  ---

  **Developed by [Phacet Labs](https://phacetlabs.com)**

ai_documentation_summary:
  {"purpose":"The Phacet node enables integration with Phacet's AI-driven spreadsheet platform, allowing users to upload PDF files and create rows in spreadsheets directly within n8n workflows.","capabilities":["Upload PDF files to Phacet for processing","Create new rows in Phacet spreadsheets with dynamic column mapping","Auto-populate dynamic dropdowns for selecting Phacets, sessions, and columns"],"authentication":"API key required","commonUseCases":["Processing incoming PDF attachments from emails or forms","Automatically importing structured data into Phacet spreadsheets","Creating new records with AI-powered data extraction and mapping"],"limitations":[],"relatedNodes":["Email","HTTP Request","JSON Processing","File Input"]}


node_type: n8n-nodes-camino.camino
package_name: n8n-nodes-camino
display_name: Camino AI
description: Guide your AI agents through the real world with location intelligence
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: jamesbarney
author_github_url: https://github.com/Barneyjm/
npm_package_name: n8n-nodes-camino
npm_version: 0.1.1
community_fetched_at: 2026-01-07T20:08:16.145Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "description": "Search for places using free-form or structured queries"
        },
        {
          "name": "Query",
          "value": "query",
          "description": "Natural language queries for points of interest"
        },
        {
          "name": "Spatial",
          "value": "spatial",
          "description": "Spatial relationships, context, and journey planning"
        },
        {
          "name": "Route",
          "value": "route",
          "description": "Get routes between locations"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPlaces",
      "options": [
        {
          "name": "Search Places",
          "value": "searchPlaces",
          "action": "Search for places",
          "routing": {
            "request": {
              "url": "/search",
              "method": "POST"
            }
          },
          "description": "Search for places using free-form or structured queries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "queryPoi",
      "options": [
        {
          "name": "Query POI",
          "value": "queryPoi",
          "action": "Query points of interest",
          "routing": {
            "request": {
              "url": "/query",
              "method": "GET"
            }
          },
          "description": "Natural language query for points of interest"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "query"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "relationship",
      "options": [
        {
          "name": "Calculate Relationship",
          "value": "relationship",
          "action": "Calculate spatial relationship",
          "routing": {
            "request": {
              "url": "/relationship",
              "method": "POST"
            }
          },
          "description": "Calculate spatial relationships between two points"
        },
        {
          "name": "Get Place Context",
          "value": "context",
          "action": "Get place context",
          "routing": {
            "request": {
              "url": "/context",
              "method": "POST"
            }
          },
          "description": "Get context-aware information about a location"
        },
        {
          "name": "Plan Journey",
          "value": "journey",
          "action": "Plan a journey",
          "routing": {
            "request": {
              "url": "/journey",
              "method": "POST"
            }
          },
          "description": "Multi-waypoint journey planning with route optimization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "spatial"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRoute",
      "options": [
        {
          "name": "Get Route",
          "value": "getRoute",
          "action": "Get a route",
          "routing": {
            "request": {
              "url": "/route",
              "method": "GET"
            }
          },
          "description": "Get route from start to end point"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "route"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Places",
      "value": "searchPlaces",
      "action": "Search for places",
      "routing": {
        "request": {
          "url": "/search",
          "method": "POST"
        }
      },
      "description": "Search for places using free-form or structured queries"
    },
    {
      "name": "Query POI",
      "value": "queryPoi",
      "action": "Query points of interest",
      "routing": {
        "request": {
          "url": "/query",
          "method": "GET"
        }
      },
      "description": "Natural language query for points of interest"
    },
    {
      "name": "Calculate Relationship",
      "value": "relationship",
      "action": "Calculate spatial relationship",
      "routing": {
        "request": {
          "url": "/relationship",
          "method": "POST"
        }
      },
      "description": "Calculate spatial relationships between two points"
    },
    {
      "name": "Get Place Context",
      "value": "context",
      "action": "Get place context",
      "routing": {
        "request": {
          "url": "/context",
          "method": "POST"
        }
      },
      "description": "Get context-aware information about a location"
    },
    {
      "name": "Plan Journey",
      "value": "journey",
      "action": "Plan a journey",
      "routing": {
        "request": {
          "url": "/journey",
          "method": "POST"
        }
      },
      "description": "Multi-waypoint journey planning with route optimization"
    },
    {
      "name": "Get Route",
      "value": "getRoute",
      "action": "Get a route",
      "routing": {
        "request": {
          "url": "/route",
          "method": "GET"
        }
      },
      "description": "Get route from start to end point"
    }
  ]

npm_readme:
  # n8n-nodes-camino

  This is an n8n community node that lets you use [Camino AI](https://getcamino.ai) in your n8n workflows.

  Camino AI provides location intelligence and spatial reasoning APIs for AI agents, enabling them to search places, plan routes, understand spatial relationships, and make location-aware decisions.

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

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

  ## Installation

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

  ## Operations

  ### Search
  - **Search Places**: Search for places using free-form queries or structured address components

  ### Query
  - **Query POI**: Natural language queries for points of interest with AI-powered ranking

  ### Spatial
  - **Calculate Relationship**: Calculate spatial relationships between two points (distance, direction, travel time)
  - **Get Place Context**: Get context-aware information about a location including nearby places and weather
  - **Plan Journey**: Multi-waypoint journey planning with route optimization

  ### Route
  - **Get Route**: Get routes between locations with support for car, bike, and foot modes

  ## Credentials

  To use this node, you need a Camino AI API key. You can get one by signing up at [getcamino.ai](https://getcamino.ai).

  Configure your credentials with:
  - **API Key**: Your Camino AI API key
  - **Environment**: Use the Production url (api.getcamino.ai) 

  ## Example Agent Prompt
  ```
  You are a helpful and knowledgeable location intelligence agent that helps users discover places, plan routes, and understand spatial relationships in the real world. Your job is to provide accurate, contextual location information using Camino AI's powerful tools.
  Your Main Purpose

  Help users find places using natural language queries
  Provide spatial intelligence about distances, directions, and travel times
  Plan optimal routes and journeys
  Give rich context about locations and areas
  Make location-based decisions easy and data-driven

  Your Available Camino AI Tools
  camino_query
  Primary search tool for finding places

  Use for natural language location searches
  Examples: "coffee shops near Golden Gate Bridge", "restaurants in downtown Seattle"
  Accepts latitude/longitude for precise searches
  Can filter by radius (default 1000m)
  Returns AI-ranked results by relevance
  Set generate_answer: true for human-readable summaries

  camino_search
  Structured address-based search

  Use when you have specific address components
  Good for finding specific businesses or addresses
  Can search by city, state, street, postal code
  Alternative to camino_query for more structured searches

  camino_spatial_relationship
  Calculate relationships between two points

  Get distance, direction, and travel time between locations
  Essential for "how far is X from Y" questions
  Provides human-readable descriptions of spatial relationships

  camino_place_context
  Get contextual information about a location

  Discover what's nearby a specific point
  Understand area characteristics
  Include weather with include_weather: true
  Specify context like "business meeting" or "family outing" for tailored insights

  camino_journey_planning
  Multi-waypoint route optimization

  Plan routes with multiple stops
  Optimize for time budgets
  Choose transport mode (walking, driving, cycling)
  Get feasibility analysis and recommendations

  camino_route_planning
  Point-to-point routing

  Calculate routes between two locations
  Get turn-by-turn directions
  Estimate travel times
  Choose mode: car, bike, or foot

  Interaction Style
  When Users Ask About Places

  Start with camino_query for natural language searches
  Use AI ranking for best results: rank: true
  Generate answers for readable summaries: generate_answer: true
  Present results clearly with key details
  Ask if they want more specific information

  When Users Need Navigation

  Use camino_route_planning for simple A-to-B routes
  Use camino_journey_planning for multi-stop trips
  Always specify appropriate transport mode
  Provide time estimates and distances
  Consider route alternatives if appropriate

  When Users Compare Locations

  Use camino_spatial_relationship to calculate distances
  Provide context about travel times
  Help users understand which option is more convenient
  Consider factors like traffic patterns if relevant

  When Users Want Area Information

  Use camino_place_context with relevant context string
  Include weather if trip planning: include_weather: true
  Describe what makes the area suitable for their needs
  Mention nearby amenities and attractions

  Response Guidelines
  Location Discovery

  Always understand intent before searching
  Use specific coordinates when provided
  Adjust search radius based on context (urban vs rural)
  Explain why recommendations fit user needs

  Providing Directions

  Choose appropriate transport mode
  Give realistic time estimates
  Mention key landmarks or waypoints
  Warn about potential challenges (traffic, distance)

  Contextual Advice

  Consider user's purpose (work, leisure, family)
  Factor in time of day when relevant
  Suggest alternatives if initial results aren't ideal
  Provide practical tips (parking, hours, accessibility)

  Example Interactions
  User: "Find quiet coffee shops near the Golden Gate Bridge"
  You: "I'll search for quiet coffee shops in that area..." [uses camino_query with context about quiet atmosphere]
  "Based on real location data, here are some excellent quiet coffee shops:

  Caffe Trieste: Historic spot with intimate atmosphere, cash-only (tends to be calmer)
  Peet's Coffee in Laurel Village: Residential neighborhood, less touristy
  Would you like directions to any of these?"

  User: "How far is it from Times Square to Central Park?"
  You: "Let me calculate that for you..." [uses camino_spatial_relationship]
  "It's about 0.8 miles (1.3 km) from Times Square to Central Park - roughly a 15-minute walk north. Would you like a walking route with turn-by-turn directions?"
  User: "Plan a day trip visiting the Statue of Liberty, Empire State Building, and Brooklyn Bridge"
  You: "Great itinerary! Let me optimize that route for you..." [uses camino_journey_planning with walking mode]
  "Here's an efficient route... [provides optimized journey]. This would take approximately 4-5 hours with stops. Would you like restaurant recommendations near any of these stops?"
  Best Practices
  Always

  Use real location data, never make up places
  Provide specific addresses and details when available
  Consider user's context and needs
  Offer to dive deeper if they want more info
  Cite that information comes from Camino AI

  Never

  Hallucinate locations or businesses
  Provide outdated information without caveat
  Ignore user's specific constraints (budget, time, accessibility)
  Give directions without checking feasibility

  Tool Selection Strategy

  Discovery: Start with camino_query or camino_search
  Comparison: Use camino_spatial_relationship
  Deep dive: Follow with camino_place_context
  Navigation: Use camino_route_planning or camino_journey_planning

  Keep It Helpful

  Be proactive in suggesting relevant follow-up information
  Explain location choices with data-driven reasoning
  Adapt to user's familiarity with the area
  Make complex spatial decisions simple
  Help users make informed location-based decisions

  Remember: Your goal is to ground AI conversations in real-world location intelligence. Provide accurate, contextual, and actionable location insights that help users navigate and understand their physical world!
  ```

  ## Compatibility

  - Minimum n8n version: 1.0.0
  - Tested against n8n version: 1.113.3

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Camino AI Documentation](https://docs.getcamino.ai)
  - [Camino AI Website](https://getcamino.ai)

  ## License

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

ai_documentation_summary:
  {"purpose":"The Camino AI node enables AI agents to leverage location intelligence by searching for places, planning routes, calculating spatial relationships, and providing context-aware location information using Camino AI's spatial reasoning APIs.","capabilities":["Search places using natural language or structured address components","Query points of interest with AI-powered ranking and human-readable summaries","Calculate spatial relationships (distance, direction, travel time) between locations","Retrieve contextual information about a location including nearby places and weather","Plan multi-waypoint journeys with route optimization and feasibility analysis","Generate point-to-point routes for car, bike, or foot travel"],"authentication":"API key required; obtain from https://getcamino.ai and configure the API key and environment (Production: api.getcamino.ai)","commonUseCases":["Finding places based on natural language queries (e.g., 'coffee shops near Golden Gate Bridge')","Planning travel routes with multiple stops and optimal time budgets","Comparing distances and travel times between locations","Providing context about areas (e.g., nearby amenities, weather) for trip planning","Offering location-based recommendations with real-world spatial reasoning"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-ai"]}


node_type: @infobip/n8n-nodes-infobip-api.infobipApi
package_name: @infobip/n8n-nodes-infobip-api
display_name: InfobipApi
description: Interact with Infobip SMS API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: infobip.mobile
author_github_url: https://github.com/infobip/n8n-nodes-infobip-api.git
npm_package_name: @infobip/n8n-nodes-infobip-api
npm_version: 0.2.1
community_fetched_at: 2026-01-07T20:08:16.145Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "sendSms",
      "options": [
        {
          "name": "Send an SMS",
          "value": "sendSms",
          "action": "Send an SMS"
        },
        {
          "name": "View SMS Delivery Report",
          "value": "smsDeliveryReport",
          "action": "View sms delivery report"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send an SMS",
      "value": "sendSms",
      "action": "Send an SMS"
    },
    {
      "name": "View SMS Delivery Report",
      "value": "smsDeliveryReport",
      "action": "View sms delivery report"
    }
  ]

npm_readme:
  # n8n-nodes-infobip-api

  **⚠️ Beta Version**: This node is currently in beta. Features and APIs may change.

  This is an n8n community node. It lets you use Infobip SMS API in your n8n workflows.

  Infobip is a global cloud communications platform that enables businesses to send SMS messages, make voice calls, and engage with customers through various messaging channels.

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

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

  ## Installation

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

  You can install this node using:

  ```bash
  npm install @infobip/n8n-nodes-infobip-api
  ```

  ## Operations

  * **Send SMS**: Send SMS messages to recipients via the Infobip SMS API
  * **View SMS Delivery Report**: Retrieve delivery reports for previously sent SMS messages

  ## Credentials

  To use this node, you need an Infobip account and API credentials:

  1. Sign up for an [Infobip account](https://www.infobip.com/)
  2. Obtain your API key from the Infobip Developer Hub
  3. In n8n, create new Infobip API credentials with:
     - **API Key**: Your Infobip API key
     - **Domain**: Your Infobip API domain (defaults to `https://api.infobip.com/`)

  ## Compatibility

  This node requires:
  - n8n version 1.0 or later
  - Node.js version 20 or higher

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Infobip SMS API documentation](https://www.infobip.com/docs/api/channels/sms)
  * [Infobip API authentication](https://www.infobip.com/docs/api#authentication)

ai_documentation_summary:
  {"purpose":"The InfobipApi node allows users to send SMS messages and retrieve delivery reports using Infobip's SMS API within n8n workflows.","capabilities":["Send SMS messages to recipients","View SMS delivery reports for previously sent messages"],"authentication":"API key required; users must provide an API key and domain (default: https://api.infobip.com/) from their Infobip account","commonUseCases":["Sending automated SMS notifications","Tracking SMS delivery status and message outcomes"],"limitations":["Beta version - features and APIs may change","No support for voice calls or other messaging channels (only SMS)"],"relatedNodes":["SMS communication nodes","Message delivery reporting nodes"]}


node_type: n8n-nodes-evolution-api.EvolutionApi
package_name: n8n-nodes-evolution-api
display_name: EvolutionApi
description: A Evolution API é um hub de canais com foco no WhatsApp
category: Community
development_style: declarative
version: 1.0.4
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: oriondesign
author_github_url: git+https://github.com/oriondesign2015/n8n-nodes-evolution-api.git
npm_package_name: n8n-nodes-evolution-api
npm_version: 1.0.4
community_fetched_at: 2026-01-07T20:08:17.555Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![image](https://github.com/user-attachments/assets/813b7b34-377c-42e8-9f1a-12e27e682c7f)

  <p align="center"><br>
  Este Community Nodes é uma solução 100% gratuita, criada com o intuito de simplificar e auxiliar toda a comunidade a integrar e utilizar ao máximo os principais recursos oferecidos pela <b>Evolution API v2.2+</b> em seus projetos no N8N. <b>Desenvolvido por OrionDesign.</b>
  </p>
  <br>
  	
  <div align="center">
    <img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2Flast-year%2Fn8n-nodes-evolution-api&query=downloads&style=for-the-badge&label=Total%20de%20Downloads&labelColor=%230d1117&color=%23359514&cacheSeconds=30&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fn8n-nodes-evolution-api" alt="Dynamic JSON Badge">
  </div>
  <br>
  </p>
  <p align="center">
    <a href="https://oriondesign.art.br/whatsapp1"><img src="https://github.com/user-attachments/assets/5a469114-2054-4f01-85b2-51a282518658" alt=”SetupOrion” ></a>     
    <a href="https://oriondesign.art.br/whatsapp2"><img src="https://github.com/user-attachments/assets/3e3580a9-ae8e-4209-84fc-cfc1c03a8f12" alt=”SetupOrion” ></a>     
    <a href="https://oriondesign.art.br/whatsapp3"><img src="https://github.com/user-attachments/assets/91aa7733-c09c-474f-9483-54cb678213d2" alt=”SetupOrion” ></a>
  </p>


  <h1></h1>

  <h3>⚙️ Requisitos</h3>

  Para utilizar o nosso **Community Node**, é necessário atender aos seguintes requisitos:  
  - **N8N** na versão **1.54.4** ou superior  
  - **Evolution API** na versão **2.2.0** ou superior  

  <h1></h1>

  <h3>📌 Recursos Disponíveis</h3>

  <h3>Instância</h3>
  🖥️ Este recurso oferece acesso completo às principais funcionalidades relacionadas às instâncias da Evolution API. Ele permite realizar operações essenciais, como criar novas instâncias, conectar-se a elas, obter informações detalhadas, personalizar comportamentos, monitorar presença, reiniciar e até mesmo excluir instâncias de forma prática e eficiente.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Criar Instancia</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Gerar Qr-Code</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Instancia</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Definir Comportamento</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Definir Presença</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Definir Proxy</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Proxy</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Desconectar WhatsApp</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Deletar Instancia</b></summary>
  	</details>
  </details>

  <h3> Mensagem</h3>
  ✉️ Este recurso concentra todas as funcionalidades relacionadas ao envio e gerenciamento de mensagens através da Evolution API. Com ele, você pode enviar diversos tipos de conteúdo como textos, imagens, vídeos, áudios, documentos, contatos, listas interativas, botões e até mesmo mensagens PIX. Cada tipo de mensagem possui opções avançadas como delay, mentions, replies e formatações especiais. O recurso foi desenvolvido para proporcionar uma experiência completa de comunicação, permitindo explorar ao máximo os recursos nativos do WhatsApp de forma simples e eficiente.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Enviar Texto</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Imagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Video</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Audio</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Documento</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Enquete</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Contato</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Lista</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Botão</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Pix</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Status</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Reagir a Mensagem</b></summary>
  	</details>
  </details>

  <h3>Grupo</h3>
  👥 Com este recurso, você conta com um conjunto completo de funcionalidades para gerenciamento de grupos no WhatsApp por meio da Evolution API. Ele abrange desde a criação e administração de grupos até o gerenciamento de participantes, configuração de permissões, links de convite e mensagens temporárias. Tudo foi projetado para oferecer controle eficiente e simplificado na administração de grupos.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Criar Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Imagem do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Nome do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Descrição do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Configurações do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Atualizar Membros</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Link de convite do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Revogar Link de convite do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Link de Convite do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Encontrar Participantes</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Mensagens Temporarias</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Sair do Grupo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Entrar no Grupo</b></summary>
  	</details>
  </details>

  <h3>Chat</h3>
  💬 Este recurso disponibiliza um conjunto abrangente de ferramentas para o gerenciamento de conversas e interações utilizando a Evolution API. Com ele, é possível verificar números, enviar e gerenciar mensagens, manipular arquivos de mídia, controlar status de leitura, administrar contatos e monitorar presença. Todas as operações são desenvolvidas para proporcionar um controle completo e eficiente das comunicações, facilitando a gestão tanto de conversas individuais quanto em grupo.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Verificar Numero</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Ler Mensagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Gerenciar Arquivoo</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Marcar como Não lido</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Deletar Mensagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Foto de Perfil</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Obter Midia em Base64</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Editar Mensagem</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Enviar Presença</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Bloquear Contato</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Buscar Contatos</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Procurar Mensagens</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Procurar Status</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Procurar Chats</b></summary>
  	</details>
  </details>

  <h3>Evento</h3>
  ⚡ Este recurso oferece mecanismos avançados para integração e monitoramento em tempo real das atividades da Evolution API. Ele permite configurar e gerenciar Webhooks e RabbitMQ, possibilitando o acompanhamento de eventos como mensagens recebidas, alterações em grupos, status de conexão e muito mais. Essas funcionalidades foram projetadas para garantir uma comunicação ágil e automatizada entre sua aplicação e a API, promovendo respostas imediatas a diferentes eventos do WhatsApp.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Webhook</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> RabbitMQ</b></summary>
  	</details>
  </details>

  <h3>Integração</h3>
  🔗 Este recurso disponibiliza uma ampla gama de conectores para integrar a Evolution API a diversas plataformas e serviços externos. Entre as possibilidades estão conexões com Chatwoot para atendimento ao cliente, Evolution Bot para automações, Typebot para fluxos conversacionais, além de integrações com Flowise e Dify para soluções de inteligência artificial. Essas integrações ampliam as capacidades da API, permitindo criar soluções robustas e automatizadas para diferentes cenários de negócios.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details>
    	<summary>   ✅ <b> Chatwoot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Evolution Bot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Typebot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Dify</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Floise</b></summary>
  	</details>
  </details>

  <h1></h1>

  <h3>🤝 Contribuição</h3>

  Contribua para o crescimento deste projeto! Você pode ajudar de diversas formas:  
  - **Pull Requests**: Envie melhorias, correções ou novas funcionalidades.  
  - **Issues**: Relate problemas ou sugira novas ideias.  
  - **Sugestões**: Compartilhe suas opiniões e feedbacks.  
  - **Documentação**: Ajude a melhorar ou expandir a documentação existente.  

  <h1></h1>

  <h3>📌 Principais contribuidores</h3>
  <a align="center" href="https://github.com/oriondesign2015/n8n-nodes-evolution-api/graphs/contributors">
    <img src="https://contrib.rocks/image?repo=oriondesign2015/n8n-nodes-evolution-api" />
  </a>

  <h1></h1>
  <a href="https://star-history.com/#oriondesign2015/SetupOrion&Date">
   <picture>
     <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date&theme=dark" />
     <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date" />
     <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date" />
   </picture>
  </a>

  <h1></h1>
  <p align="center">
  Desenvolvido com ❤️ por OrionDesign
  </p>

ai_documentation_summary:
  {"purpose":"The EvolutionApi node enables users to integrate and manage WhatsApp functionalities through the Evolution API v2.2+, offering operations for instance management, message sending, group administration, and chat interactions within n8n workflows.","capabilities":["Create and manage instances","Generate QR codes for instances","Connect and disconnect WhatsApp","Set instance behavior, presence, and proxy","Send text, image, video, audio, document, polls, contacts, lists, buttons, and PIX messages","React to messages","Create, update, and manage groups (name, image, description, settings, members)","Generate and revoke group invite links","Send temporary messages","Join or leave groups"],"authentication":"API key required (via Evolution API credentials)","commonUseCases":["Automated WhatsApp message sending (text, images, videos, etc.)","Group management automation (creation, updates, member changes)","Instance configuration and monitoring","Sending PIX payments via WhatsApp","Interactive message handling (buttons, polls, lists)"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-telegram","n8n-nodes-whatsapp"]}


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-01-07 20:08:17
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-01-07T20:08:17.556Z
ai_summary_generated_at: 2026-01-08 10:45:31
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 a wide range of string and binary text operations, including encoding/decoding, case manipulation, replacement, trimming, padding, and formatting, supporting both text and file inputs/outputs.","capabilities":["Modify text content (e.g., uppercase, lowercase, titlecase, camel case, kebab case, snake case)","Encode/decode text using various formats (UTF-8, Base64, UTF-16) with BOM handling","Decode/encode URLs, URL components, XML (legacy/strict), and HTML (legacy/strict)","Replace text using substring, extended substring, regex, or predefined rules (e.g., character groups, whitespace, numbers, alpha)","Trim text from left, right, or both ends","Pad text at start or end","Extract substrings by position or length","Repeat text a specified number of times","Concatenate text before or after existing content","Process text from input fields, files (binary), or JSON"],"authentication":"None","commonUseCases":["Cleaning and formatting text data for downstream processing","Converting between encoding formats (e.g., UTF-8 to Base64)","Standardizing text case for consistency","Extracting specific parts of a string using substring or regex","Replacing placeholders or tags in dynamic content"],"limitations":[],"relatedNodes":["String Manipulation","File Operations","JSON Processing","Data Cleaning"]}


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-01-07 20:08:17
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-01-07T20:08:17.558Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The MCP node enables n8n workflows to interact with Model Context Protocol (MCP) servers, allowing AI models to access external tools, resources, and data sources through standardized operations like executing tools and using prompts.","capabilities":["Connect to MCP servers via Command-line Based Transport (STDIO)","Use HTTP Streamable transport (recommended) for streaming responses","Use Server-Sent Events (SSE) transport (deprecated, for legacy compatibility)","Execute tools and run prompts on connected MCP servers","Pass environment variables to MCP servers during execution"],"authentication":"Authentication is handled via credentials configured in the node: either through command-line arguments, HTTP headers, or environment variables depending on the transport method. HTTP Streamable and SSE require a URL and optional headers for authentication.","commonUseCases":["Integrating AI agents with external tools and APIs using MCP","Building AI-powered workflows that dynamically execute actions based on context","Connecting n8n AI agents to external services via standardized MCP tool calls","Testing local MCP servers in development environments"],"limitations":["Server-Sent Events (SSE) transport is deprecated and will not receive updates; HTTP Streamable is now required for new implementations","Command-line transport requires running a local MCP server with specific environment setup","Environment variable support is limited to command-line transport only"],"relatedNodes":["AI Agent nodes","Tool nodes","HTTP Request nodes"]}


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-01-07 20:08:17
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-01-07T20:08:17.559Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Elevenlabs node integrates ElevenLabs' AI-powered voice generation capabilities into n8n workflows, enabling text-to-speech, speech-to-speech transformation, voice cloning, and voice generation with context-aware, lifelike speech across multiple languages and voices.","capabilities":["Text to speech","Speech to speech (voice transformation)","Generate new voices (by age, gender, accent)","Clone user's voice from audio file","Voice library management","User and history management"],"authentication":"API key (xi-api-key) required from an ElevenLabs.io account","commonUseCases":["Converting customer messages into natural-sounding audio for automated calls","Creating personalized voice messages using a user's own voice","Transforming one person's voice into another character's voice for content creation","Generating multilingual audio content with realistic emotional tone"],"limitations":["Currently in beta and under active development","No support for real-time streaming or advanced voice customization beyond specified parameters"],"relatedNodes":["Text to Speech","Voice Processing","AI Content Generation"]}


node_type: n8n-nodes-datastore.Datastore
package_name: n8n-nodes-datastore
display_name: Datastore
description: Datastore for n8n within the workflow
category: Community
development_style: declarative
version: 0.1.18
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: korotovsky
author_github_url: git+https://github.com/korotovsky/n8n-nodes-datastore.git
npm_package_name: n8n-nodes-datastore
npm_version: 0.1.18
community_fetched_at: 2026-01-07T20:08:17.560Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n Datastore Node

  An n8n node that provides a simple in-memory key-value store. This node is useful for temporarily sharing data between different workflow executions or different parts of the same workflow.

  It is no-code solution for `getWorkflowStaticData()`, Complex round-robin ping-pong via S3 or any similar approach where you tried to achieve any kind of pseudo persistence in your workflows, where you practically required to write JavaScript or integrate complex chains of nodes together in your workflows.

  ## Feature demo

  ![image.gif](images/image.gif)

  ## Key Features

  *   **Set Value:** Store a string or JSON object associated with a unique key.
  *   **Get Value:** Retrieve a stored value using its key.
  *   **Clear Value:** Remove a specific key-value pair from the store.
  *   **Clear All:** Remove all key-value pairs from the store.
  *   Configurable output for Set/Clear operations (pass through input or output status).

  ## Prerequisites

  *   An active n8n instance.

  ## Installation

  If this node is not part of the core n8n nodes, follow these steps to install it as a community node:

   - Go to "Settings" -> "Community nodes"
   - Click "Install"
   - Enter "n8n-nodes-datastore"
   - Ack security risks and proceed with the installation

  Later on you will find this node under the name "Datastore" in the modes search box.

  ## Addressed issues

  - [Keep variables between executions](https://community.n8n.io/t/keep-variables-between-executions/5595)
  - [How to store data as global variable?](https://community.n8n.io/t/how-to-store-data-as-global-variable/27125)
  - [Store values between Executions](https://community.n8n.io/t/store-values-between-executions/23959)
  - [How to store variables based on dynamic data, for use throughout workflow](https://community.n8n.io/t/how-to-store-variables-based-on-dynamic-data-for-use-throughout-workflow/68826/4)
  - [Best way to store global variable in n8n community edition](https://www.reddit.com/r/n8n/comments/1gptv3c/best_way_to_store_global_variable_in_n8n/)
  - [Community edition environments and variables](https://www.reddit.com/r/n8n/comments/18cz4f8/community_edition_environments_and_variables/)
  - [Set a value and update each time the workflow runs](https://community.n8n.io/t/set-a-value-and-update-each-time-the-workflow-runs/35083)
  - [How can I share a variable between two workflows in n8n?](https://community.n8n.io/t/how-can-i-share-a-variable-between-two-workflows-in-n8n/102094)
  - ... :D

  ## FAQ

   - How to reference all input values (table data, JSON-array) and save it into specified key?
     - You have to Select type `Value Data Type` = `JSON` and in `Value` make expression something like `{{ $json }}`. See the screenshot below:
       <details><summary>How to store entire input as JSON</summary>
       <img src="images/howto-1.png">
  </details>

  ## Important Considerations & Limitations

   - **In-Memory Storage**: All data stored using this node resides in the RAM of the n8n process. If n8n is restarted, all data in this store will be lost.
   - **Memory Consumption**: Storing very large amounts of data or a very large number of keys can consume significant server memory. Use with caution for large datasets.
   - **Not a Database Replacement**: For persistent storage, reliable inter-process communication, or robust data management, use a proper database (e.g., PostgreSQL, MySQL, Redis) with its corresponding n8n node.

  ## License

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

ai_documentation_summary:
  {"purpose":"The Datastore node provides an in-memory key-value storage solution to temporarily share data between different workflow executions or parts of the same workflow, enabling simple persistence without requiring complex scripting or external integrations.","capabilities":["Set a value (string or JSON object) using a unique key","Get a stored value by its key","Clear a specific key-value pair","Clear all stored key-value pairs","Configurable output for Set/Clear operations (can pass through input or output status)"],"authentication":"None required","commonUseCases":["Storing and retrieving variables between workflow executions","Sharing dynamic data across nodes in a single workflow","Maintaining state in workflows that need temporary persistence","Simplifying complex round-robin or ping-pong logic without JavaScript"],"limitations":["Data is lost upon n8n restart (in-memory storage)","Large datasets or many keys can consume significant memory","Not suitable for persistent or reliable storage","Does not support inter-workflow data sharing across separate instances"],"relatedNodes":["Database nodes (e.g., PostgreSQL, MySQL, Redis)","Workflow variables","Dynamic data 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-01-07 20:08:17
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-01-07T20:08:17.561Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-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":"The Pdfkit node converts images into PDF files using PDFKit, currently supporting the transformation of all images within a single item into one PDF document.","capabilities":["Convert multiple images in a single item into a combined PDF","Process images from input data to generate a PDF output"],"authentication":"None","commonUseCases":["Batch converting image files (e.g., screenshots, documents) into PDF format","Automating document generation from image sources in workflows"],"limitations":["Only supports converting all images in one item to a PDF; does not support per-image processing or individual PDF generation","No additional PDF formatting or styling options available"],"relatedNodes":["Image processing nodes","File handling nodes","PDF generation 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-01-07 20:08:17
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-01-07T20:08:17.561Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Globals node allows users to define global constants that can be accessed and used across all workflows in n8n, enabling consistent configuration without repeating values.","capabilities":["Store and manage global constants using key-value pairs or JSON format","Use global constants in any workflow via the node output","Integrate with n8n credentials system for secure storage"],"authentication":"None required; constants are stored in a credential system for secure access","commonUseCases":["Storing API keys or secrets that are used across multiple workflows","Defining configuration values like base URLs, timeouts, or environment variables","Maintaining consistent default settings across different workflows"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-utils"]}


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-01-07 20:08:17
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-01-07T20:08:17.562Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Chatwoot node enables integration with the ChatWoot platform within n8n workflows, allowing users to interact with chat and support operations such as managing conversations, messages, and agents.","capabilities":["Send messages to ChatWoot","Retrieve conversations","Manage agents and teams","Fetch messages and chat history"],"authentication":"API key required; users must sign up for ChatWoot and obtain an API key from the dashboard to authenticate.","commonUseCases":["Automating customer support responses","Monitoring and retrieving chat conversations","Integrating chat data with CRM or ticketing systems"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook"]}


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-01-07 20:08:17
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-01-07T20:08:17.563Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Kommo node enables n8n users to integrate with the Kommo API to manage customer interactions, automate sales processes, and perform CRUD operations on 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 with Integration ID and Secret key obtained from Kommo after setting up a widget and granting access permissions","commonUseCases":["Automating sales process tracking","Maintaining customer interaction history","Syncing company and contact data across workflows","Managing sales tasks and deals in real-time"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook"]}


node_type: n8n-nodes-evolution-api-media-downloader.EvolutionApiMediaDownloader
package_name: n8n-nodes-evolution-api-media-downloader
display_name: EvolutionApiMediaDownloader
description: Download Media from Evolution API data message
category: Community
development_style: declarative
version: 0.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: betorcs
author_github_url: git+https://github.com/betorcs/n8n-nodes-evolution-api-media-downloader.git
npm_package_name: n8n-nodes-evolution-api-media-downloader
npm_version: 0.1.0
community_fetched_at: 2026-01-07T20:08:17.564Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-starter

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

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

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


  ## Using this starter

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

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

  ## More information

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

  ## License

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

ai_documentation_summary:
  {"purpose":"The EvolutionApiMediaDownloader node is designed to download media files from Evolution API data messages, enabling integration with messaging platforms that use the Evolution API for media transmission.","capabilities":["Download media files from Evolution API data messages","Extract and process media content from incoming data messages"],"authentication":"None specified in the README","commonUseCases":["Retrieve images, videos, or other media from SMS or messaging platforms using Evolution API","Automate media collection for content analysis or storage in cloud services"],"limitations":["No authentication method described in the README","Lacks detailed configuration or usage examples in provided documentation"],"relatedNodes":["n8n-nodes-base","n8n-nodes-http-request"]}


node_type: n8n-nodes-a2a.A2a
package_name: n8n-nodes-a2a
display_name: A2a
category: Community
development_style: declarative
version: 0.4.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: bruno.growthsales
author_github_url: git+https://github.com/bruno-growthsales/n8n-nodes-a2a.git
npm_package_name: n8n-nodes-a2a
npm_version: 0.4.0
community_fetched_at: 2026-01-07T20:08:17.565Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  n8n community node for A2A (Account to Account) transfers, account management, and Google Agent2Agent protocol communication with advanced features including file upload, custom JSON fields, custom requests, and streaming support

npm_readme:
  # n8n-nodes-a2a

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

  This is an n8n community node that provides A2A (Account to Account) operations for transfers and account management.

  A2A enables secure account-to-account transfers and comprehensive account management through a unified API interface.

  [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 Examples](#usage-examples)  
  [Resources](#resources)  

  ## 🚀 Installation

  The A2A node can be installed using multiple methods:

  ### Option 1: Via npm (Recommended)

  ```bash
  # In your n8n directory
  npm install n8n-nodes-a2a

  # Restart n8n
  pm2 restart n8n
  ```

  ### Option 2: Automated Script

  ```bash
  # Install from npm (default)
  curl -fsSL https://raw.githubusercontent.com/your-username/n8n-nodes-a2a/main/install-a2a-node.sh | bash

  # Install from GitHub
  curl -fsSL https://raw.githubusercontent.com/your-username/n8n-nodes-a2a/main/install-a2a-node.sh | bash -s -- --github
  ```

  ### Option 3: Manual Installation from GitHub

  ```bash
  # In your n8n directory
  npm install https://github.com/your-username/n8n-nodes-a2a.git

  # Restart n8n
  pm2 restart n8n
  ```

  ### Option 4: Docker

  ```dockerfile
  FROM n8nio/n8n:latest

  USER root
  RUN cd /usr/local/lib/node_modules/n8n && \
      npm install n8n-nodes-a2a
  USER node
  ```

  For detailed installation instructions including troubleshooting, see:
  - **Quick Guide**: [INSTALL_SELFHOST.md](INSTALL_SELFHOST.md)  
  - **Detailed Guide**: [docs/N8N_SELFHOST_INSTALL.md](docs/N8N_SELFHOST_INSTALL.md)

  ## Operations

  This node provides comprehensive A2A functionality through three main resources:

  ### Transfer Resource
  - **Create Transfer**: Create a new account-to-account transfer
  - **Get Transfer**: Get details of a specific transfer by ID
  - **List Transfers**: Get a list of transfers with filtering options
  - **Cancel Transfer**: Cancel a pending transfer

  ### Account Resource
  - **Get Account**: Get details of a specific account
  - **List Accounts**: Get a list of accounts with filtering options
  - **Get Balance**: Get account balance information
  - **Get Transactions**: Get account transaction history with date filtering

  ### Agent Resource (Google Agent2Agent Protocol)
  - **Send Message**: Send a message to an agent and receive complete response (tasks/send)
  - **Send Message with Streaming**: Send a message with real-time streaming response (tasks/sendSubscribe)
  - **Get Agent Card**: Retrieve agent capabilities from .well-known/agent-card endpoint

  ## Credentials

  You need to authenticate with the A2A API using the following credentials:

  1. **API Key**: Your A2A API key
  2. **API Secret**: Your A2A API secret  
  3. **Environment**: Choose between Production or Sandbox
  4. **Base URL**: Automatically set based on environment selection

  ### Setting up credentials

  1. Sign up for an A2A account and obtain your API credentials
  2. In n8n, create new credentials using the "A2A API" credential type
  3. Enter your API Key and Secret
  4. Select the appropriate environment (Sandbox for testing, Production for live operations)
  5. Test the credentials to ensure they work correctly

  ## Usage Examples

  ### Creating a Transfer

  ```javascript
  {
    "resource": "transfer",
    "operation": "create",
    "amount": 100.50,
    "currency": "USD",
    "fromAccountId": "acc_123456789",
    "toAccountId": "acc_987654321",
    "reference": "Service Payment",
    "description": "Monthly service payment"
  }
  ```

  ### Checking Account Balance

  ```javascript
  {
    "resource": "account",
    "operation": "getBalance",
    "accountId": "acc_123456789"
  }
  ```

  ### Listing Recent Transfers

  ```javascript
  {
    "resource": "transfer",
    "operation": "getMany",
    "limit": 50,
    "status": "completed"
  }
  ```

  ### Getting Transaction History

  ```javascript
  {
    "resource": "account",
    "operation": "getTransactions",
    "accountId": "acc_123456789",
    "startDate": "2024-01-01T00:00:00Z",
    "endDate": "2024-12-31T23:59:59Z",
    "transactionLimit": 100
  }
  ```

  ### Agent2Agent Protocol Examples

  #### Send Standard Message

  ```javascript
  {
    "resource": "agent",
    "operation": "send",
    "agentUrl": "https://agent-api.example.com",
    "message": "Hello! Can you help me with my query?",
    "sessionId": "session-123",
    "taskId": "task-456",
    "acceptedOutputModes": ["text", "image"],
    "additionalOptions": {
      "apiKey": "your-api-key",
      "responseFormat": "message",
      "role": "user",
      "timeout": 30000
    }
  }
  ```

  #### Send Message with File Upload

  ```javascript
  {
    "resource": "agent",
    "operation": "send",
    "agentUrl": "https://agent-api.example.com",
    "message": "Please analyze this document for me",
    "includeFiles": true,
    "files": {
      "file": [{
        "inputFieldName": "data",
        "fileName": "document.pdf", 
        "mimeType": "application/pdf"
      }]
    },
    "acceptedOutputModes": ["text", "code"],
    "additionalOptions": {
      "apiKey": "your-api-key",
      "responseFormat": "full",
      "maxRetries": 3,
      "retryDelay": 2000
    }
  }
  ```

  #### Send Message with Streaming

  ```javascript
  {
    "resource": "agent",
    "operation": "sendSubscribe",
    "agentUrl": "https://agent-api.example.com",
    "message": "Please provide a detailed analysis...",
    "sessionId": "session-123",
    "taskId": "task-789",
    "acceptedOutputModes": ["text", "image", "code"],
    "additionalOptions": {
      "apiKey": "your-api-key",
      "role": "user",
      "timeout": 60000,
      "streamProcessing": "final",
      "responseFormat": "auto",
      "headers": {
        "parameter": [
          {
            "name": "X-Custom-Header",
            "value": "custom-value"
          }
        ]
      }
    }
  }
  ```

  #### Custom JSON-RPC Request

  ```javascript
  {
    "resource": "agent",
    "operation": "custom",
    "agentUrl": "https://agent-api.example.com",
    "customMethod": "tasks/analyze",
    "customParams": {
      "message": {
        "role": "user",
        "parts": [{
          "type": "text",
          "text": "Custom analysis request"
        }]
      },
      "sessionId": "custom-session",
      "analysisType": "deep",
      "outputFormat": "json"
    },
    "additionalOptions": {
      "apiKey": "your-api-key",
      "timeout": 45000,
      "validateSSL": true
    }
  }
  ```

  #### Get Agent Capabilities

  ```javascript
  {
    "resource": "agent",
    "operation": "getAgentCard",
    "agentUrl": "https://agent-api.example.com"
  }
  ```

  ### JSON-RPC 2.0 Protocol

  The Agent resource implements the Google Agent2Agent protocol using JSON-RPC 2.0:

  #### Request Format
  ```json
  {
    "jsonrpc": "2.0",
    "method": "tasks/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [
          {
            "type": "text",
            "text": "Your message here"
          }
        ]
      },
      "sessionId": "session-123",
      "id": "task-456"
    },
    "id": "call-789"
  }
  ```

  #### Success Response
  ```json
  {
    "jsonrpc": "2.0",
    "result": {
      "status": {
        "message": {
          "parts": [
            {
              "type": "text",
              "text": "Agent response here..."
            }
          ]
        }
      }
    },
    "id": "call-789"
  }
  ```

  #### Error Response
  ```json
  {
    "jsonrpc": "2.0",
    "error": {
      "code": -32603,
      "message": "Error message"
    },
    "id": "call-789"
  }
  ```

  ## Supported Currencies

  - USD (US Dollar)
  - EUR (Euro)
  - GBP (British Pound)
  - BRL (Brazilian Real)

  ## Error Handling

  The node includes comprehensive error handling for common scenarios:

  - **401 Unauthorized**: Invalid API credentials
  - **404 Not Found**: Account or transfer not found
  - **400 Bad Request**: Invalid parameters or insufficient funds
  - **429 Rate Limited**: Too many requests

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Node.js version**: 20.15+
  - **Tested with n8n versions**: 1.0.0+

  ## Development

  ### Prerequisites

  - Node.js 20.15 or higher
  - npm or yarn
  - n8n installed globally

  ### Building

  ```bash
  npm run build
  ```

  ### Linting

  ```bash
  npm run lint
  npm run lintfix  # Auto-fix issues
  ```

  ### Development Mode

  ```bash
  npm run dev  # Watch mode for development
  ```

  ### Project Structure

  ```
  n8n-nodes-a2a/
  ├── credentials/
  │   └── A2aApi.credentials.ts     # API credentials definition
  ├── nodes/
  │   └── A2a/
  │       ├── A2a.node.ts          # Main node implementation
  │       ├── TransferDescription.ts # Transfer operations
  │       ├── AccountDescription.ts  # Account operations
  │       ├── a2a.svg              # Node icon
  │       └── A2a.node.json        # Node metadata
  ├── examples/
  │   └── A2A_Example_Workflow.json # Example workflow
  └── docs/
      └── INSTALLATION.md           # Detailed installation guide
  ```

  ## Example Workflow

  Import the example workflow from `examples/A2A_Example_Workflow.json` to see:

  1. How to create a transfer
  2. How to check transfer status
  3. How to verify account balance
  4. Error handling best practices

  ## Contributing

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

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [A2A API Documentation](https://docs.a2a.com/api)
  * [A2A Authentication Guide](https://docs.a2a.com/authentication)
  * [Transfer API Reference](https://docs.a2a.com/transfers)
  * [Account API Reference](https://docs.a2a.com/accounts)
  * **Agent2Agent Protocol**:
    * [Google A2A Repository](https://github.com/google/A2A)
    * [A2A Testing Lab](https://a2a.to/)
    * [Agent2Agent Protocol Documentation](docs/AGENT2AGENT_PROTOCOL.md)
    * [JSON-RPC 2.0 Specification](https://www.jsonrpc.org/specification)

  ## Support

  For support and questions:

  1. **Documentation**: Check the [official A2A API docs](https://docs.a2a.com/api)
  2. **Agent2Agent Protocol**: See [Agent2Agent Documentation](docs/AGENT2AGENT_PROTOCOL.md)
  3. **Issues**: Report bugs on [GitHub Issues](https://github.com/bruno-growthsales/n8n-nodes-a2a/issues)
  4. **Community**: Join the [n8n community forum](https://community.n8n.io/)

  ## License

  [MIT](https://github.com/bruno-growthsales/n8n-nodes-a2a/blob/master/LICENSE.md)

  ## 🚀 Advanced Features

  ### File Upload Support
  - **Automatic Base64 encoding** of binary data
  - **Multiple file types** with custom MIME type detection  
  - **File name customization** and metadata preservation
  - **Integration with n8n binary data** system

  ### Advanced Authentication
  - **API Key support** with `x-api-key` header
  - **Custom headers** for specialized authentication
  - **SSL validation** control for development/testing

  ### Response Processing
  - **Multiple format options**: Auto, Full Response, Message Only, Status Only
  - **Streaming event processing**: Collect All, Final Only, Individual Events  
  - **Metadata inclusion** for debugging and monitoring

  ### Retry & Error Handling
  - **Configurable retry logic** (0-10 attempts)
  - **Custom retry delays** (100-10000ms)
  - **Automatic error categorization** with JSON-RPC error codes

  ### Output Modes
  - **Text**: Standard text responses
  - **Image**: Image generation and analysis
  - **Audio**: Audio processing capabilities  
  - **Video**: Video analysis and generation
  - **Code**: Code generation and analysis

  See [Advanced Features Documentation](docs/ADVANCED_FEATURES.md) for complete details.

  ## 📋 Funcionalidades

  ### Operações A2A Financeiras
  - **Transfer**: Transferências entre contas
  - **Account**: Consulta de informações de conta

  ### Protocolo Agent2Agent
  - **Agent Operations**: Comunicação completa com agentes IA via protocolo A2A
  - **Custom Requests**: Requisições JSON-RPC personalizadas
  - **File Upload**: Suporte a upload de arquivos com encoding base64
  - **Streaming**: Processamento de respostas em tempo real
  - **Authentication**: Autenticação via x-api-key

  ## 🤖 Agent2Agent Protocol

  Este nó suporta o protocolo Agent2Agent (A2A) do Google, permitindo comunicação padronizada entre agentes de IA.

  ### Recursos Avançados

  - **Custom JSON-RPC**: Construa requisições personalizadas
  - **File Upload**: Anexe arquivos com detecção automática de MIME type
  - **API Key Auth**: Autenticação segura via header x-api-key
  - **Multi-format Output**: Suporte a texto, imagem, áudio, vídeo, código
  - **Retry Logic**: Sistema robusto de tentativas
  - **Streaming Support**: Processar respostas em tempo real

  ### Exemplo de Uso

  ```javascript
  // Configuração básica
  {
    "operation": "send",
    "agentUrl": "https://agent.example.com",
    "message": "Analyze this data and provide insights",
    "responseFormat": "auto"
  }

  // Com upload de arquivo
  {
    "operation": "send", 
    "agentUrl": "https://agent.example.com",
    "message": "Process this image",
    "includeFiles": true,
    "files": "image.png",
    "responseFormat": "full"
  }
  ```

  ## 🔧 Criando Seu Próprio Servidor A2A

  Você pode criar seus próprios servidores Agent2Agent! Veja o guia completo em [docs/AGENT2AGENT_SERVER.md](./docs/AGENT2AGENT_SERVER.md).

  ### Exemplo Rápido

  Execute o servidor de exemplo:
  ```bash
  python examples/simple_a2a_server.py
  ```

  Teste com o cliente:
  ```bash
  python examples/test_a2a_client.py
  ```

  O servidor oferece:
  - 🔄 **Echo Skill**: Repete mensagens
  - 🧮 **Calculator**: Operações matemáticas básicas
  - 📋 **Agent Card**: Descoberta automática de capacidades
  - ✅ **Health Check**: Monitoramento de status

  ### Estrutura Básica

  ```python
  # Agent Card - Descreve capacidades
  AGENT_CARD = {
      "name": "Meu Agente",
      "description": "Descrição das funcionalidades",
      "skills": [
          {
              "id": "minha_skill",
              "name": "Minha Habilidade",
              "description": "O que esta skill faz"
          }
      ]
  }

  # Endpoint obrigatório - Agent Card
  @app.route("/.well-known/agent.json")
  def get_agent_card():
      return jsonify(AGENT_CARD)

  # Endpoint obrigatório - Processar tarefas
  @app.route("/tasks/send", methods=["POST"])
  def handle_task():
      task = request.get_json()
      # Processar tarefa aqui
      return jsonify(response)
  ```

  ## 📚 Documentação

  - [🔧 Instalação Completa](./INSTALLATION.md)
  - [🏠 Instalação Self-hosted](./INSTALL_SELFHOST.md)
  - [🤖 Protocolo Agent2Agent](./docs/AGENT2AGENT_PROTOCOL.md)
  - [⚡ Recursos Avançados](./docs/ADVANCED_FEATURES.md)
  - [🛠️ Criar Servidor A2A](./docs/AGENT2AGENT_SERVER.md)

  ## 🛠️ Desenvolvimento

  ```bash
  # Clone e configure
  git clone https://github.com/brunobs/n8n-node-a2a.git
  cd n8n-node-a2a

  # Instale dependências
  npm install

  # Build do projeto
  npm run build

  # Lint e format
  npm run lint
  npm run format

  # Testes
  npm test
  ```

  ## 📝 Exemplos

  ### Operações A2A Básicas
  ```javascript
  // Transfer operation
  {
    "resource": "transfer",
    "operation": "create",
    "amount": 100.50,
    "fromAccount": "12345",
    "toAccount": "67890"
  }
  ```

  ### Agent2Agent Avançado
  ```javascript
  // Enviar tarefa para agente
  {
    "resource": "agent",
    "operation": "send", 
    "agentUrl": "https://my-agent.com",
    "message": "Analyze sales data",
    "acceptedOutputModes": ["text", "image"],
    "maxRetries": 3
  }

  // Upload de arquivo
  {
    "resource": "agent",
    "operation": "send",
    "agentUrl": "https://my-agent.com", 
    "message": "Process this document",
    "includeFiles": true,
    "files": "document.pdf"
  }
  ```

  ## 🔗 Links Úteis

  - [Especificação Agent2Agent](https://google.github.io/A2A/specification/)
  - [Repositório Google A2A](https://github.com/google/A2A)
  - [n8n Documentation](https://docs.n8n.io/)
  - [Google Agent Development Kit](https://github.com/google/agent-development-kit)

  ## 🤝 Contribuindo

  Contribuições são bem-vindas! Por favor:

  1. Fork o repositório
  2. Crie uma branch para sua feature
  3. Faça commit das mudanças
  4. Execute os testes
  5. Abra um Pull Request

  ## 📄 Licença

  MIT License - veja [LICENSE.md](LICENSE.md) para detalhes.

  ## 🏷️ Versão

  **v0.3.0** - Recursos avançados Agent2Agent com upload de arquivos, autenticação e streaming.

  ### Changelog

  - **v0.3.0**: Recursos avançados A2A, custom requests, file upload
  - **v0.2.0**: Implementação completa do protocolo Agent2Agent
  - **v0.1.0**: Operações básicas A2A financeiras

  ---

  ⭐ **Se este projeto te ajudou, considere dar uma estrela no GitHub!**

ai_documentation_summary:
  {"purpose":"The A2A node enables secure account-to-account transfers, account management, and communication via the Google Agent2Agent protocol, supporting features like file uploads, custom JSON fields, and real-time streaming.","capabilities":["Create, retrieve, list, and cancel transfers","Get account details, balance, and transaction history","Send messages to agents using the Agent2Agent protocol","Send messages with file uploads","Send messages with real-time streaming responses","Support for custom JSON fields and requests","Filtering and pagination for transfers and transactions"],"authentication":"API key and API secret required; environment (Production or Sandbox) must be selected; base URL auto-set based on environment","commonUseCases":["Automating financial transfers between accounts","Monitoring account balances and transaction history","Integrating with AI agents for real-time query processing","Uploading documents to agents for analysis","Streaming long-form responses from AI agents"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-http","n8n-nodes-webhook"]}


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-01-07 20:08:17
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-01-07T20:08:17.565Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Waha node enables integration with the WAHA WhatsApp HTTP API within n8n workflows, allowing users to send messages, manage conversations, and automate WhatsApp-based communications without coding.","capabilities":["Send WhatsApp messages via HTTP API","Integrate with WAHA's WhatsApp service using its open API","Supports workflow automation through n8n's visual interface"],"authentication":"API key required (via WAHA service configuration)","commonUseCases":["Automated customer support messaging","Order confirmation and delivery updates via WhatsApp","Marketing campaigns through WhatsApp","Two-way communication automation with users"],"limitations":[],"relatedNodes":["n8n-openapi-node","WhatsApp integration nodes"]}


node_type: n8n-nodes-imap.Imap
package_name: n8n-nodes-imap
display_name: Imap
description: This node allows you to connect to an IMAP server and retrieve emails.
category: Community
development_style: declarative
version: 2.15.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: umanamente
author_github_url: git+https://github.com/umanamente/n8n-nodes-imap.git
npm_package_name: n8n-nodes-imap
npm_version: 2.15.0
community_fetched_at: 2026-01-07T20:08:17.566Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # <img src="nodes/Imap/node-imap-icon.svg"  height="40"> <img src="https://gist.githubusercontent.com/umanamente/3aec0274e0d5f029ab76a16627825c67/raw/n8n-nodes-imap-coverage-badge.svg" align="right"> n8n-nodes-imap

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

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

  ## Installation

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

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

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

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


  ## Operations

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

  ## Credentials

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

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

  ## Troubleshooting & Debug

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

  ### Enable Debug Mode

  Set the following environment variable before starting n8n:

  ```bash
  N8N_NODES_DEBUG_ENABLED=true
  ```

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

  ### Getting Debug Information

  1. **Set environment variables**:
     ```bash
     N8N_LOG_LEVEL=debug
     N8N_NODES_DEBUG_ENABLED=true
     ```

  2. **Restart your n8n instance**

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

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

  ### Reporting Issues

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

ai_documentation_summary:
  {"purpose":"The Imap node enables connection to IMAP email servers to retrieve, manage, and manipulate emails, including listing mailboxes, fetching emails, downloading attachments, moving or copying messages, and setting flags.","capabilities":["Get list of mailboxes with status (e.g., message count)","Get mailbox status (e.g., number of messages)","Create a mailbox","Rename a mailbox","Get list of emails in a mailbox","Download attachments from emails","Permanently delete emails","Move emails to another mailbox","Copy emails to another mailbox","Set or remove email flags (seen, answered, flagged, deleted, draft)"],"authentication":"Basic authentication (username and password) only. OAuth2 is not supported.","commonUseCases":["Retrieve incoming emails from a Gmail, Outlook, or other IMAP server","Automate email processing workflows (e.g., filter, move, or delete specific emails)","Download email attachments for further processing","Create email drafts for automated follow-ups","Monitor mailbox status for workflow triggers"],"limitations":["Delete mailbox functionality is disabled due to risk of accidental data loss","OAuth2 authentication is not supported","No support for advanced IMAP features like search queries or custom filters in the base node (requires additional nodes or manual implementation)"],"relatedNodes":["n8n-nodes-eml (for creating complex emails with attachments)","N8N IMAP Trigger node (for triggering workflows on new emails)"]}


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-01-07 20:08:17
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-01-07T20:08:17.567Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Chatwoot node enables integration with the ChatWoot CRM platform via n8n, allowing automation of workflows such as managing users, inboxes, agents, and messages through ChatWoot's API.","capabilities":["Authenticate with ChatWoot using platform, user, or inbox tokens","Provision agent bots, accounts, and users","Manage inboxes and associated settings","Interact with ChatWoot API endpoints via automated workflows"],"authentication":"API token-based authentication; requires one of three token types: Platform, User, or Inbox token, each obtained through specific ChatWoot admin or user interfaces","commonUseCases":["Automating user onboarding and role assignment in ChatWoot","Syncing customer conversations and messages to n8n workflows","Managing multiple inboxes and agents across different teams","Triggering actions based on incoming chat messages"],"limitations":["Node is generated from OpenAPI spec and may not fully support all edge cases or deprecated endpoints","No built-in error handling or retry logic for API failures","Requires manual token creation and management in ChatWoot admin panel"],"relatedNodes":["n8n OpenAPI Node (used to generate this node)","n8n Workflow Automation Nodes (for triggering actions based on chat events)"]}


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-01-07 20:08:17
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-01-07T20:08:17.567Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The DeepSeek node allows users to integrate DeepSeek AI into n8n workflows, enabling tasks like generating responses to prompts using DeepSeek's language model, similar to OpenAI's functionality.","capabilities":["Generate text responses using the DeepSeek Chat model","Support for custom prompts with system messages and user input","Integration with n8n's workflow system via manual triggers and data assignments"],"authentication":"API key required","commonUseCases":["Generating content such as summaries, explanations, or creative writing","Performing etymological research or historical meaning analysis of words","Automating customer support responses with AI-generated answers"],"limitations":[],"relatedNodes":["n8n-nodes-base.manualTrigger","n8n-nodes-base.set"]}


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-01-07 20:08:17
author_name: dangminhtaivietinsoft
npm_package_name: n8n-nodes-mtai-zalo-test-trial
npm_version: 1.2.1
community_fetched_at: 2026-01-07T20:08:17.568Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"Các node hỗ trợ tích hợp Zalo vào nền tảng n8n, cho phép đăng nhập, gửi và nhận tin nhắn, quản lý người dùng, và lắng nghe tin nhắn mới trên Zalo.","capabilities":["Đăng nhập Zalo bằng mã QR để lấy thông tin xác thực (cookie, imei, userAgent)","Gửi tin nhắn văn bản, ảnh, video từ URL, và tin nhắn thoại (text-to-speech) với nhiều ngôn ngữ","Quản lý người dùng: chấp nhận lời mời kết bạn, chặn/bỏ chặn, thay đổi ảnh đại diện, lấy thông tin chi tiết","Lắng nghe tin nhắn mới (message trigger) và chuyển đổi tin nhắn thoại thành văn bản (speech-to-text) bằng Wit.ai","Hỗ trợ cả tin nhắn do người dùng gửi và tin nhắn do hệ thống gửi"],"authentication":"API key không cần thiết; xác thực bằng mã QR (ZaloLoginByQr) để lấy cookie, imei, userAgent","commonUseCases":["Gửi thông báo tự động đến người dùng qua Zalo","Tự động phản hồi tin nhắn bằng AI (sau khi chuyển đổi giọng nói thành văn bản)","Quản lý danh sách người dùng và tương tác trên Zalo","Tạo workflow phản hồi tin nhắn từ nhóm hoặc cá nhân","Tích hợp Zalo với các nguồn dữ liệu khác trong n8n"],"limitations":["Tính năng chuyển đổi voice thành text (speech-to-text) đang được phát triển, chưa hoàn thiện","Không có hỗ trợ cho các chức năng Zalo nâng cao như quản lý nhóm, lịch sử tin nhắn chi tiết, hoặc tìm kiếm người dùng"],"relatedNodes":["ZaloLoginByQr","ZaloSendMessage","ZaloUser","ZaloMessageTrigger"]}


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-01-07 20:08:17
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-01-07T20:08:17.569Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"Provides a set of custom n8n nodes for full integration with the RD Station CRM API (v1), enabling automation of contact, deal, task, note, company, pipeline, campaign, and other CRM-related operations.","capabilities":["Manage contacts","Handle business deals and products","Manage tasks and notes","Operate with companies and teams","Manage pipelines and sales funnels","Handle campaigns and lead sources","Manage loss reasons","Configure webhooks"],"authentication":"API token required via 'RD Station CRM API' credential","commonUseCases":["Syncing customer data between n8n and RD Station CRM","Automating lead assignment and follow-up tasks","Creating and updating deals with product details","Tracking campaign performance and lead sources","Setting up webhooks for real-time event notifications"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-base.credentials","n8n-nodes-base.webhooks"]}


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-01-07 20:08:17
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-01-07T20:08:17.569Z
ai_summary_generated_at: 2026-01-08 10:45:31
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 a phone number string and extracts detailed information such as country code, area code, and formatted versions (national, international, E.164, RFC3966), along with validity and type details using the libphonenumber-js library.","capabilities":["Parse phone numbers from a string of digits","Format phone numbers in national, international, E.164, and RFC3966 formats","Extract metadata including country code, country calling code, national number, and phone type","Determine if the number is valid, possible, or non-geographic"],"authentication":"None","commonUseCases":["Standardizing phone numbers across different formats in data pipelines","Validating phone number inputs before sending to databases or APIs","Extracting country and region information from phone numbers","Preparing phone numbers for SMS or call routing systems"],"limitations":[],"relatedNodes":["String Manipulation Nodes","Data Validation Nodes","Format/Transform Nodes"]}


node_type: n8n-nodes-qrcode.Qrcode
package_name: n8n-nodes-qrcode
display_name: Qrcode
description: n8n nodes to generate QRCode
category: Community
development_style: declarative
version: 0.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: 0xtlt
author_github_url: git+https://github.com/0xtlt/n8n-nodes-qrcode.git
npm_package_name: n8n-nodes-qrcode
npm_version: 0.1.0
community_fetched_at: 2026-01-07T20:08:17.570Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-qrcode

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

  Qrcode is a node that allows you to generate QR codes from text.

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

  [Installation](#installation)  
  [Operations](#operations)  

  ## Installation

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

  ## Operations

  - Qrcode: Generate a QR code from text

  ## License

  The word "QR Code" is registered trademark of:
  DENSO WAVE INCORPORATED

ai_documentation_summary:
  {"purpose":"Generates a QR code from input text within n8n workflows.","capabilities":["Generate QR codes from text input"],"authentication":"None","commonUseCases":["Embed QR codes in emails or messages","Create shareable links with QR codes","Integrate with forms or notifications to generate scanable codes"],"limitations":[],"relatedNodes":["Text manipulation nodes","Email nodes","Webhook nodes"]}


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-01-07 20:08:17
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-01-07T20:08:17.571Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Firecrawl node enables n8n users to scrape, crawl, or map websites using Firecrawl's web scraping capabilities, extracting clean markdown, structured data, or screenshots from static and dynamic content including JS-rendered pages, PDFs, and images.","capabilities":["Scrape a single webpage into markdown, structured data, or HTML","Crawl recursively through a website's subdomains and pages to gather comprehensive content","Map a website to generate a list of URLs, useful for navigation or targeted scraping","Handle dynamic content, JavaScript rendering, rate limits, proxies, and blocked content automatically"],"authentication":"API key required (obtained from the Firecrawl dashboard)","commonUseCases":["Extracting data from dynamic websites for LLM training or analysis","Creating a complete map of a website's structure for navigation or content discovery","Automatically scraping specific pages related to a topic using search parameters","Crawling entire websites with full content extraction while bypassing blockers"],"limitations":[],"relatedNodes":["Web scraping nodes","LLM data preparation nodes","URL mapping or navigation nodes"]}


node_type: n8n-nodes-megaapi.Megaapi
package_name: n8n-nodes-megaapi
display_name: Megaapi
category: Community
development_style: declarative
version: 1.3.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: script7sistemas
author_github_url: git+https://github.com/megaapi/n8n-nodes-megaapi.git
npm_package_name: n8n-nodes-megaapi
npm_version: 1.3.1
community_fetched_at: 2026-01-07T20:08:17.573Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  N8N Community Node for MegaAPI WhatsApp automation - Complete WhatsApp integration with messaging, groups, media, and more

npm_readme:
  ![MegaAPI Logo](https://img.shields.io/badge/MegaAPI-WhatsApp%20Automation-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)

  # 🚀 N8N Community Nodes - MegaAPI

  ![Version](https://img.shields.io/badge/version-1.1.2-blue?style=for-the-badge)
  ![License](https://img.shields.io/badge/license-MIT-green?style=for-the-badge)
  ![N8N](https://img.shields.io/badge/n8n-1.54.4+-orange?style=for-the-badge)

  **Complete WhatsApp Business automation solution for n8n workflows.**

  This community node package integrates **MegaAPI** (WhatsApp service) with **Chatwoot** for seamless customer support automation, providing custom nodes for n8n workflows that enable WhatsApp message handling, media management, group operations, and customer service integration.

  ---

  ## 🌟 **Features**

  ### **WhatsApp Operations**
  - ✅ **Text Messages**: Send and receive text messages
  - ✅ **Media Messages**: Send images, videos, documents, and audio files
  - ✅ **Location Sharing**: Send location coordinates and live location
  - ✅ **Link Previews**: Send messages with rich link previews
  - ✅ **List Messages**: Interactive list messages for better UX

  ### **Group Management**
  - ✅ **Group Operations**: Create, manage, and configure groups
  - ✅ **Participant Management**: Add, remove, and manage group members
  - ✅ **Group Messaging**: Send messages to groups with media support

  ### **Instance Management**
  - ✅ **QR Code Generation**: Generate QR codes for WhatsApp Web connection
  - ✅ **Pairing Codes**: Generate pairing codes for device linking
  - ✅ **Status Monitoring**: Real-time instance status and health checks
  - ✅ **Webhook Configuration**: Configure and manage webhooks

  ### **Chatwoot Integration**
  - ✅ **Contact Synchronization**: Sync WhatsApp contacts with Chatwoot
  - ✅ **Conversation Management**: Create and manage customer conversations
  - ✅ **Message Routing**: Automatic message routing to Chatwoot agents
  - ✅ **Webhook Processing**: Complete MegaAPI → Chatwoot automation

  ### **Advanced Features**
  - ✅ **Message Forwarding**: Forward messages between contacts and groups
  - ✅ **Message Quoting**: Reply to specific messages with context
  - ✅ **Presence Updates**: Manage online/offline status and typing indicators
  - ✅ **Media Download**: Download and process received media files

  ---

  ## 📦 **Installation**

  ### **NPM Installation**
  ```bash
  npm install n8n-nodes-megaapi
  ```

  ### **N8N Community Package Installation**
  1. Open your n8n instance
  2. Go to **Settings** → **Community Nodes**
  3. Enter package name: `n8n-nodes-megaapi`
  4. Click **Install**

  ### **Manual Installation**
  ```bash
  # Navigate to your n8n installation directory
  cd ~/.n8n/nodes

  # Clone or download the package
  git clone https://github.com/megaapi/n8n-nodes-megaapi.git

  # Install dependencies
  npm install

  # Build the package
  npm run build
  ```

  ---

  ## 🔧 **Configuration**

  ### **MegaAPI Credentials**
  1. Create a **MegaAPI Credentials** in n8n
  2. Add your MegaAPI base URL and authentication token
  3. Test the connection

  ### **Chatwoot Integration**
  1. Create **Chatwoot MegaAPI Credentials** for integrated workflows
  2. Configure both MegaAPI and Chatwoot API details
  3. Set up account ID and inbox ID

  ### **Required Information**
  - **MegaAPI Base URL**: Your MegaAPI instance URL
  - **MegaAPI Token**: Authentication token from MegaAPI
  - **Chatwoot URL**: Your Chatwoot instance URL (for integration)
  - **Chatwoot Token**: API access token from Chatwoot (for integration)

  ---

  ## 🎯 **Use Cases**

  ### **Customer Support Automation**
  - Route WhatsApp messages to Chatwoot agents automatically
  - Create conversations and contacts from new WhatsApp interactions
  - Handle media attachments in customer support workflows
  - Maintain conversation history and context

  ### **Business Communication**
  - Send bulk WhatsApp messages for marketing campaigns
  - Automate order confirmations and shipping notifications
  - Handle customer inquiries with intelligent routing
  - Manage group communications for teams

  ### **E-commerce Integration**
  - Send order confirmations via WhatsApp
  - Provide customer support through messaging
  - Automate product inquiries and responses
  - Handle refunds and support requests

  ### **Team Collaboration**
  - Create WhatsApp groups for project teams
  - Automate status updates and notifications
  - Share files and media with team members
  - Manage participant access and permissions

  ---

  ## 📋 **Available Nodes**

  ### **Message Operations**
  - **Send Text Message**: Send text messages to contacts
  - **Send Media URL**: Send media files via URL
  - **Send Media Base64**: Send media files via base64 encoding
  - **Send Location**: Share location coordinates
  - **Send Link Preview**: Send messages with rich previews
  - **Send List Message**: Send interactive list messages
  - **Forward Message**: Forward existing messages
  - **Quote Message**: Reply to messages with context
  - **Send Text Direct from Chatwoot**: Direct text messaging from Chatwoot data
  - **Send Media Direct from Chatwoot**: Direct media messaging from Chatwoot data

  ### **Group Operations**
  - **Get Groups**: List all available groups
  - **Group Details**: Get detailed group information
  - **Create Group**: Create new WhatsApp groups
  - **Send Group Message**: Send messages to groups
  - **Send Group Media**: Send media to groups
  - **Add Participants**: Add members to groups
  - **Remove Participants**: Remove members from groups
  - **Leave Group**: Leave from groups

  ### **Instance Management**
  - **Generate QR Code**: Get QR code for WhatsApp Web
  - **Generate Pairing Code**: Get pairing code for devices
  - **Instance Status**: Check connection status
  - **Logout Instance**: Disconnect WhatsApp session
  - **Restart Instance**: Restart WhatsApp connection

  ### **Webhook & Media**
  - **Download Media**: Download received media files
  - **Check WhatsApp**: Verify if number is on WhatsApp
  - **Get Webhook Config**: Retrieve webhook configuration
  - **Configure Webhook**: Set up webhook endpoints

  ### **Chat Operations**
  - **Update Presence**: Manage online/typing status
  - **Delete Message**: Delete sent messages
  - **Delete Message From Me**: Delete messages from sender

  ### **Chatwoot Integration**
  - **Process Webhook to Chatwoot**: Complete automation pipeline
  - **Send Message to Chatwoot**: Send messages to Chatwoot conversations
  - **Sync Contact**: Synchronize contacts between platforms
  - **Create Conversation**: Create new Chatwoot conversations

  ---

  ## 🛠️ **Development**

  ### **Requirements**
  - Node.js 20.15 or higher
  - n8n 1.54.4 or higher
  - TypeScript 5.8.2 or higher

  ### **Build Commands**
  ```bash
  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Development mode with watch
  npm run dev

  # Run linting
  npm run lint

  # Fix linting issues
  npm run lintfix

  # Format code
  npm run format

  # Prepare for publishing
  npm run prepublishOnly
  ```

  ### **Project Structure**
  ```
  n8n-nodes-megaapi/
  ├── 📁 nodes/MegaAPI/          # Main node implementation
  │   ├── 📄 MegaApi.node.ts     # Node definition and routing
  │   ├── 📁 execute/            # Operation implementations
  │   │   ├── 📁 message/        # Message operations
  │   │   ├── 📁 group/          # Group operations
  │   │   ├── 📁 instance/       # Instance management
  │   │   ├── 📁 webhook/        # Webhook operations
  │   │   ├── 📁 chat/           # Chat operations
  │   │   └── 📁 chatwoot/       # Chatwoot integration
  │   └── 📁 properties/         # Node property definitions
  ├── 📁 credentials/            # Authentication configurations
  ├── 📄 package.json            # Package configuration
  ├── 📄 tsconfig.json          # TypeScript configuration
  └── 📄 gulpfile.js            # Build configuration
  ```

  ---

  ## 📝 **License**

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

  ---

  ## 🤝 **Contributing**

  We welcome contributions! Please feel free to submit issues, feature requests, or pull requests.

  ### **Development Setup**
  1. Fork the repository
  2. Clone your fork: `git clone https://github.com/your-username/n8n-nodes-megaapi.git`
  3. Install dependencies: `npm install`
  4. Make your changes
  5. Run tests: `npm run lint && npm run build`
  6. Submit a pull request

  ---

  ## 📞 **Support**

  - **Issues**: [GitHub Issues](https://github.com/megaapi/n8n-nodes-megaapi/issues)
  - **Discussions**: [GitHub Discussions](https://github.com/megaapi/n8n-nodes-megaapi/discussions)
  - **Email**: megaapi@github.com

  ---

  ## 🎉 **Changelog**

  ### **v1.1.2** - Current
  - ✅ Added `syncContact` operation for Chatwoot integration
  - ✅ Added `createConversation` operation for Chatwoot workflows
  - ✅ Improved error handling and validation
  - ✅ Enhanced TypeScript type definitions
  - ✅ Updated build and deployment pipeline

  ### **v1.1.0**
  - ✅ Added `processWebhookToChatwoot` for complete automation
  - ✅ Enhanced Chatwoot integration capabilities
  - ✅ Improved webhook processing

  ### **v1.0.9**
  - ✅ Added `sendMessageToChatwoot` operation
  - ✅ Enhanced Chatwoot API integration

  ### **v1.0.8**
  - ✅ Added `sendTextFromChatwootDirect` operation
  - ✅ Improved direct messaging capabilities

  ### **v1.0.7**
  - ✅ Added `sendMediaFromChatwootDirect` operation
  - ✅ Enhanced media handling for Chatwoot integration

  ---

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

ai_documentation_summary:
  {"purpose":"The MegaAPI node enables full WhatsApp Business automation within n8n workflows by integrating with MegaAPI and Chatwoot, allowing for messaging, media sharing, group management, and customer support automation.","capabilities":["Send text messages","Send images, videos, documents, and audio files","Share location and live location","Send messages with rich link previews","Send interactive list messages","Create, manage, and send messages to WhatsApp groups","Add or remove group participants","Forward messages between contacts and groups","Quote messages with context","Manage online/offline status and typing indicators"],"authentication":"API key/token-based authentication required for MegaAPI and Chatwoot; requires MegaAPI base URL, token, Chatwoot URL, and token for integration","commonUseCases":["Customer support automation with message routing to Chatwoot","Sending bulk marketing messages","Order confirmations and shipping notifications","Team collaboration via WhatsApp groups","E-commerce customer inquiries and support"],"limitations":[],"relatedNodes":["Chatwoot integration nodes","Messaging nodes","Group management nodes","Webhook nodes","Media processing nodes"]}


node_type: n8n-nodes-notificame-hub.NotificameHub
package_name: n8n-nodes-notificame-hub
display_name: NotificameHub
category: Community
development_style: declarative
version: 0.3.3
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: oriondesign
author_github_url: git+https://github.com/oriondesign2015/n8n-nodes-notificame-hub.git
npm_package_name: n8n-nodes-notificame-hub
npm_version: 0.3.3
community_fetched_at: 2026-01-07T20:08:17.573Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  A NotificaMe Hub automatiza a comunicação em múltiplos canais, oferecendo soluções integradas e escaláveis.

npm_readme:
  ![image](https://github.com/user-attachments/assets/23ac406d-93eb-45d1-938e-4f4e5dba882e)

  <p align="center"><br>
  Este Community Node foi desenvolvido a pedido da <b>NotificaMe Hub</b> com o intuito de simplificar e auxiliar toda a comunidade a integrar e utilizar ao máximo todo o poder oferecido pela plataforma <b>NotificaMe Hub</b> em seus projetos do N8N. <b>Desenvolvido por OrionDesign.</b>
  </p>
  <br>
  	
  <div align="center">
    <img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2Flast-year%2Fn8n-nodes-notificame-hub&query=downloads&style=for-the-badge&label=Total%20de%20Downloads&labelColor=%230d1117&color=%23359514&cacheSeconds=30&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fn8n-nodes-notificame-hub" alt="Dynamic JSON Badge">
  </div>
  <br>
  </p>


  <h1></h1>

  <h3>⚙️ Requisitos</h3>

  Para utilizar o nosso **Community Node**, é necessário atender aos seguintes requisitos:  
  - **N8N** na versão **1.54.4** ou superior  
  - Possuir uma conta no **NotificaMe Hub**  

  <h1></h1>

  <h3>📌 Recursos Disponíveis</h3>

  <h3>Revendas</h3>
  🔧 Este recurso oferece acesso completo às principais funcionalidades relacionadas às revendas do NotificaMe Hub. Ele permite realizar operações essenciais, como listar subcontas e definir webhooks de forma prática e eficiente.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
  	<details><summary>✅ <b>Listar Subcontas</b></summary></details>
   	<details><summary>✅ <b>Definir Webhook</b></summary></details>
  </details>

  <h3>WhatsApp</h3>
  📱 Este recurso permite o envio e gerenciamento de mensagens no WhatsApp, incluindo templates, mídias, interações e reações.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Listar templates</b></summary></details>
    <details><summary>✅ <b>Enviar template - Sem parâmetros</b></summary></details>
    <details><summary>✅ <b>Enviar template - Com parâmetros (tipo número/positional)</b></summary></details>
    <details><summary>✅ <b>Enviar template - Com parâmetros (tipo nome/named)</b></summary></details>
    <details><summary>✅ <b>Enviar uma mensagem de texto</b></summary></details>
    <details><summary>✅ <b>Enviar uma mensagem de áudio</b></summary></details>
    <details><summary>✅ <b>Enviar um sticker</b></summary></details>
    <details><summary>✅ <b>Enviar um arquivo (documentos, imagens, vídeos…)</b></summary></details>
    <details><summary>✅ <b>Enviar localização</b></summary></details>
    <details><summary>✅ <b>Enviar mensagem interativa com botões</b></summary></details>
    <details><summary>✅ <b>Enviar mensagem interativa com listas</b></summary></details>
    <details><summary>✅ <b>Enviar mensagem interativa com link / CTA</b></summary></details>
    <details><summary>✅ <b>Reagir a uma mensagem</b></summary></details>
    <details><summary>✅ <b>Responder uma mensagem</b></summary></details>
  </details>

  <h3>Instagram</h3>
  📸 Este recurso permite a interação com usuários do Instagram, incluindo mensagens, postagens e respostas a comentários.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Enviar uma mensagem de texto</b></summary></details>
    <details><summary>✅ <b>Enviar uma mensagem de áudio</b></summary></details>
    <details><summary>✅ <b>Enviar um arquivo (imagens, vídeos…)</b></summary></details>
    <details><summary>✅ <b>Responder um comentário</b></summary></details>
    <details><summary>✅ <b>Enviar template de botões</b></summary></details>
    <details><summary>✅ <b>Fazer uma publicação</b></summary></details>
    <details><summary>✅ <b>Listar postagens da conta</b></summary></details>
  </details>

  <h3>Facebook</h3>
  📘 Permite o envio de mensagens e templates para interagir com usuários no Facebook Messenger.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Enviar uma mensagem de texto</b></summary></details>
    <details><summary>✅ <b>Enviar uma mensagem de áudio</b></summary></details>
    <details><summary>✅ <b>Enviar um arquivo (imagens, vídeos…)</b></summary></details>
    <details><summary>✅ <b>Enviar um template genérico</b></summary></details>
    <details><summary>✅ <b>Enviar um template de botão</b></summary></details>
    <details><summary>✅ <b>Enviar um template de mídia</b></summary></details>
  </details>

  <h3>Telegram</h3>
  📲 Recurso para envio de mensagens e arquivos no Telegram, permitindo automação e interação.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Enviar uma mensagem de texto</b></summary></details>
    <details><summary>✅ <b>Enviar uma mensagem de áudio</b></summary></details>
    <details><summary>✅ <b>Enviar um arquivo (documento, imagens, vídeos…)</b></summary></details>
  </details>

  <h3>Mercado Livre</h3>
  🤝 Permite a interação com clientes respondendo perguntas diretamente na plataforma do Mercado Livre.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Responder uma pergunta</b></summary></details>
  </details>

  <h3>OLX</h3>
  💬 Permite a interação com clientes respondendo perguntas do chat diretamente na plataforma OLX.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Enviar mensagem</b></summary></details>
  </details>

  <h3>WebChat</h3>
  💬 Ferramenta para comunicação via WebChat, permitindo troca de mensagens e arquivos.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Enviar uma mensagem de texto</b></summary></details>
    <details><summary>✅ <b>Enviar um arquivo (documento, imagens, vídeos…)</b></summary></details>
  </details>

  <h3>Email</h3>
  📧 Permite o envio de emails com ou sem anexos, facilitando a comunicação via correio eletrônico.
  <br>
  <details>
    <summary><b>Lista de operações</b></summary>
    <details><summary>✅ <b>Enviar um email (somente texto)</b></summary></details>
    <details><summary>✅ <b>Enviar um email (com arquivos)</b></summary></details>
  </details>

  <h1></h1>

  <h3>🤝 Contribuição</h3>

  Contribua para o crescimento deste projeto! Você pode ajudar de diversas formas:  
  - **Pull Requests**: Envie melhorias, correções ou novas funcionalidades.  
  - **Issues**: Relate problemas ou sugira novas ideias.  
  - **Sugestões**: Compartilhe suas opiniões e feedbacks.  
  - **Documentação**: Ajude a melhorar ou expandir a documentação existente.  

  <h1></h1>

  <h3>📌 Principais contribuidores</h3>
  <a align="center" href="https://github.com/oriondesign2015/n8n-nodes-notificame-hub/graphs/contributors">
    <img src="https://contrib.rocks/image?repo=oriondesign2015/n8n-nodes-notificame-hub" />
  </a>

  <h1></h1>
  <a href="https://star-history.com/#oriondesign2015/n8n-nodes-notificame-hub&Date">
   <picture>
     <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/n8n-nodes-notificame-hub&type=Date&theme=dark" />
     <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/n8n-nodes-notificame-hub&type=Date" />
     <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=oriondesign2015/n8n-nodes-notificame-hub&type=Date" />
   </picture>
  </a>

  <h1></h1>
  <p align="center">
  Desenvolvido com ❤️ por OrionDesign
  </p>

ai_documentation_summary:
  {"purpose":"O NotificameHub é um node community para o n8n que permite automatizar comunicações em múltiplos canais, como WhatsApp, Instagram, Facebook, Telegram, Mercado Livre, OLX, WebChat e Email, integrando a plataforma NotificaMe Hub para enviar mensagens, responder interações e gerenciar templates e webhooks.","capabilities":["Listar subcontas (Revendas)","Definir webhook (Revendas)","Listar templates (WhatsApp)","Enviar mensagens de texto, áudio, mídias, localização, interações com botões e listas (WhatsApp)","Enviar mensagens e responder comentários no Instagram","Fazer publicações e listar postagens no Instagram","Enviar mensagens e templates no Facebook Messenger","Enviar mensagens e arquivos no Telegram","Responder perguntas no Mercado Livre","Enviar mensagens no OLX"],"authentication":"Requer uma conta ativa no NotificaMe Hub; não é especificado o tipo de autenticação (ex: API key, OAuth), mas a integração depende da autenticação fornecida pela plataforma.","commonUseCases":["Automatizar respostas em canais de chat como WhatsApp, Instagram e Facebook","Enviar notificações personalizadas com templates e parâmetros","Gerenciar revendas e webhooks para integração com subcontas","Responder perguntas em plataformas de e-commerce como Mercado Livre e OLX","Enviar mensagens e arquivos via Telegram e e-mail"],"limitations":["Não há detalhes sobre limites de mensagens, taxa de requisições ou tempo de resposta","Ausência de informações sobre erros, tratamento de falhas ou logs de mensagens","Não é claro se há suporte para autenticação por API key ou OAuth2","A documentação não detalha configurações avançadas ou personalizações"],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-email"]}


node_type: n8n-nodes-aistudio.Aistudio
package_name: n8n-nodes-aistudio
display_name: Aistudio
description: N8N nodes for Gemini API
category: Community
development_style: declarative
version: 1.0.11
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: ronieremarques
npm_package_name: n8n-nodes-aistudio
npm_version: 1.0.11
community_fetched_at: 2026-01-07T20:08:17.574Z
npm_readme: ERROR: No README data found!
ai_summary_generated_at: 2026-01-08 10:45:31
ai_documentation_summary:
  {"purpose":"The Aistudio node in n8n is designed to integrate with the Gemini API, enabling users to leverage AI capabilities such as text generation, image processing, and other AI-driven tasks within n8n workflows.","capabilities":["Send requests to the Gemini API","Generate text responses","Process images using AI","Handle AI-based content creation tasks"],"authentication":"API key required","commonUseCases":["Generating content such as articles or stories","Creating images from text descriptions","Automating customer support responses","Performing AI-powered data analysis"],"limitations":[],"relatedNodes":["n8n-nodes-base.Http Request","n8n-nodes-base.Function","n8n-nodes-base.Set"]}


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-01-07 20:08:17
author_name: ntnguyenthangtn
npm_package_name: n8n-nodes-thang-zalo-app
npm_version: 1.1.5
community_fetched_at: 2026-01-07T20:08:17.575Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The ThangZaloApp node integrates Zalo (personal, group, and friend management) into n8n workflows, enabling automated messaging, voice-to-text transcription, QR login, and user/group management for chatbots, CRM, customer service, and internal alerts.","capabilities":["Login to Zalo via QR code with automatic credential storage","Send and receive text, image, file, and voice messages","Manage friends (send friend requests, block/unblock, update profile)","Manage groups (create, add/remove members, change name/avatar, set admin roles)","Listen to incoming messages with voice-to-text support in Vietnamese, English, and Chinese","Automatically detect and standardize long voice messages with language and confidence scores","Trigger workflows on new messages (including self-sent messages)","Retrieve detailed user and group information"],"authentication":"API key or credential-based (via stored Zalo login session using QR code; requires Zalo personal account and optional Wit.ai API token for voice-to-text)","commonUseCases":["Automated customer support via chatbot in Zalo groups","CRM synchronization by fetching and updating user information","Internal notifications and alerts sent to team members","Automated friend requests or blocking based on user behavior","Voice-to-text transcription for Vietnamese customer feedback"],"limitations":["Voice-to-text only supports .aac voice messages from Zalo (not other formats)","Requires FFmpeg to be installed on the server for voice processing","Voice-to-text requires at least one valid Wit.ai token per language (vi, en, zh)","Workflow execution on server requires stable internet connectivity","No support for business or enterprise Zalo accounts (only personal accounts)"],"relatedNodes":["n8n-nodes-base.Workflow","n8n-nodes-base.Function","n8n-nodes-base.Database","n8n-nodes-base.Email","n8n-nodes-base.Webhook"]}


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-01-07 20:08:17
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-01-07T20:08:17.575Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Quepasa node allows users to integrate with the Quepasa platform within n8n workflows, enabling actions such as sending messages, managing message attachments, revoking messages, and retrieving message details, specifically designed for Quepasa version 4 and above.","capabilities":["Send text messages","Send messages with attachments","Revoke messages","Retrieve message ID upon sending","Handle error status messages","Download messages using a v4 endpoint with message ID parameter"],"authentication":"Not specified in the README","commonUseCases":["Sending automated messages to users via Quepasa","Managing message lifecycle (e.g., revoking messages)","Tracking sent messages using message IDs","Handling message errors in workflows"],"limitations":["Authentication method not documented","No details on rate limits or message delivery guarantees","No information on supported message types or formatting options"],"relatedNodes":[]}


node_type: n8n-nodes-apify.Apify
package_name: n8n-nodes-apify
display_name: Apify
description: n8n nodes for Apify
category: Community
development_style: declarative
version: 0.1.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: minhlucvan
author_github_url: git+https://github.com/minhlucvan/n8n-nodes-apify.git
npm_package_name: n8n-nodes-apify
npm_version: 0.1.0
community_fetched_at: 2026-01-07T20:08:17.576Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-apify

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

  Apify is the platform where developers build, deploy, and publish
  web scraping, data extraction, and web automation tools.

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

  # Screenshots

  ![](./docs/Screenshot%202024-10-06%20at%2001.54.44.png)

  ![](./docs/Screenshot%202024-10-06%20at%2002.02.34.png)

  ![](./docs//Screenshot%202024-10-06%20at%2002.04.16.png)

  ## Operations

  The node supports the following operations:

  - Actors/Actor collection
  - Actors/Actor object
  - Actors/Run collection
  - Actors/Run actor synchronously
  - Actors/Run Actor synchronously and get dataset items
  - Actors/Run object
  - Actors/Abort run
  - Actors/Metamorph run
  - Actors/Resurrect run
  - Actors/Last run object and its storages
  - Actor tasks/Task collection
  - Actor tasks/Task object
  - Actor tasks/Task input object
  - Actor tasks/Run collection
  - Actor tasks/Run task synchronously
  - Actor tasks/Run task synchronously and get dataset items
  - Actor tasks/Last run object and its storages
  - Datasets
  - Datasets/Dataset collection
  - Datasets/Dataset
  - Datasets/Item collection

  ## Credentials

  The node supports the API Key authentication method `apifyApi` that is required to authenticate with the Apify API.

  ## Compatibility

  Tested against n8n version 1.57.0.

  ## Usage

  1. Create a new actor on Apify.
  2. Create a new workflow in n8n.
  3. Add the Apify node to your workflow.
  4. Enter your API key and actor ID.
  5. Select the operation you want to perform.
  6. Execute the node.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"The Apify node enables integration with the Apify platform to perform web scraping, data extraction, and automation tasks within n8n workflows by supporting a wide range of operations on actors, runs, datasets, and tasks.","capabilities":["List and retrieve actors and actor collections","Run actors synchronously and retrieve dataset items","Abort or resurrect runs","Manage actor tasks and their inputs and runs","Access datasets and dataset items","Retrieve last run objects and their storages"],"authentication":"API key authentication via the 'apifyApi' credential","commonUseCases":["Web scraping data from websites","Automating data extraction workflows","Running and monitoring Apify actor tasks","Managing datasets and their contents","Orchestrating data pipelines using Apify actors"],"limitations":[],"relatedNodes":["Webhooks","HTTP Request","Function","Database"]}


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-01-07 20:08:17
author_name: vanthong0404
npm_package_name: n8n-nodes-thong-zalo-test-trial
npm_version: 0.1.182
community_fetched_at: 2026-01-07T20:08:17.576Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"Các node hỗ trợ tích hợp Zalo vào nền tảng n8n, cho phép đăng nhập, gửi tin nhắn, lấy thông tin người dùng và nhóm, cũng như theo dõi sự kiện từ Zalo như tin nhắn mới hoặc thay đổi bạn bè.","capabilities":["Đăng nhập Zalo bằng mã QR để lấy thông tin xác thực (cookie, imei, userAgent)","Gửi tin nhắn văn bản, ảnh, hoặc file đến người dùng hoặc nhóm","Lấy thông tin chi tiết của người dùng Zalo","Truy xuất thông tin nhóm Zalo và danh sách thành viên","Theo dõi tin nhắn mới từ người dùng hoặc nhóm và kích hoạt workflow","Theo dõi sự kiện liên quan đến bạn bè (kết bạn, hủy kết bạn)","Chuyển đổi giọng nói (voice) thành văn bản (speech-to-text) với hỗ trợ WitAiApi hoặc Vosk (chức năng đang phát triển, chưa hiệu quả với tiếng Việt)"],"authentication":"API key không cần thiết; xác thực bằng mã QR (ZaloLoginByQr) để lấy cookie, imei, userAgent. Các node khác sử dụng thông tin này để xác thực.","commonUseCases":["Tự động gửi thông báo hoặc tin nhắn đến khách hàng qua Zalo","Theo dõi tin nhắn mới từ khách hàng để phản hồi tự động","Lấy thông tin người dùng hoặc nhóm để phân tích dữ liệu","Xử lý sự kiện kết bạn hoặc hủy kết bạn","Chuyển đổi tin nhắn giọng nói thành văn bản để xử lý"],"limitations":["Chức năng chuyển đổi giọng nói thành văn bản (speech-to-text) chưa ổn định, chỉ nhận diện chứ chưa chuyển đổi thành văn bản","Chức năng nghe hiểu của Vosk với tiếng Việt hiện tại không hiệu quả","Cần có credential WitAiApi (AccessToken) để sử dụng chức năng speech-to-text với WitAI","Tin nhắn giọng nói (chat.voice) chỉ được nhận diện, chưa hỗ trợ chuyển đổi thành text"],"relatedNodes":["ZaloLoginByQr","ZaloSendMessage","ZaloUser","ZaloGroup","ZaloMessageTrigger"]}


node_type: n8n-nodes-sshv2.Sshv2
package_name: n8n-nodes-sshv2
display_name: Sshv2
category: Community
development_style: declarative
version: 1.2.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: hadidiz
author_github_url: git+https://github.com/AhmedElhadidii/N8N-SSH-Tool-Node.git
npm_package_name: n8n-nodes-sshv2
npm_version: 1.2.0
community_fetched_at: 2026-01-07T20:08:17.577Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  2 N8N ( Node & AI Agent Tool) for SSH operations Dynamically Configurable parameters NO credentials, including command execution, file uploads, and downloads by Hadidiz, HadidizFlow

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

  https://www.npmjs.com/package/n8n-nodes-sshv2

  # n8n-nodes-sshv2

  This package provides enhanced SSH functionality for n8n, including an AI-powered SSH tool node.

  ## Features

  ### 1. Hadidiz-AI Node
  An AI-powered SSH tool that can be used with n8n's AI Agent for:
  - Executing remote commands
  - Downloading files
  - Uploading files
  - Dynamic connection parameters
  - Support for both password and private key authentication

  ### 2. SSHv2 Node
  A standard SSH node with enhanced capabilities for:
  - Command execution
  - File transfers
  - Credential management
  - Dynamic parameters

  ## Installation

  ### Local Installation
  ```bash
  npm install n8n-nodes-sshv2
  ```

  ### n8n.cloud Installation
  1. Go to Settings > Community Nodes
  2. Select "Install"
  3. Enter `n8n-nodes-sshv2`
  4. Click "Install"

  ## Usage with AI Agent

  To use the Hadidiz-AI node with the AI Agent, you need to:

  1. Set the following environment variables:
  ```bash
  export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
  ```

  2. Add the AI Agent node to your workflow
  3. Select "Tools Agent" as the agent type
  4. Add "Hadidiz-AI" from the available tools

  ## Configuration

  ### SSH Credentials
  The package supports two types of authentication:
  - Password-based authentication
  - Private key authentication

  ### Dynamic Parameters
  Both nodes support dynamic parameters, allowing you to:
  - Use different servers in the same workflow
  - Pass credentials from previous nodes
  - Use environment variables

  ## Development

  ### Building the Package

  ```bash
  # Install dependencies
  pnpm install

  # Build the project
  pnpm build

  # Run linting
  pnpm lint

  # Format code
  pnpm format
  ```

  ### Publishing to NPM

  This package uses GitHub Actions to automatically publish to npm when version tags are pushed.

  #### For Maintainers

  1. **Set up NPM_TOKEN secret**: 
     - Go to repository Settings → Secrets and variables → Actions
     - Add a new secret named `NPM_TOKEN`
     - Value should be your npm authentication token (get from https://www.npmjs.com/settings/tokens)

  2. **Release a new version**:
     ```bash
     # Update version in package.json
     npm version patch  # or minor, major
     
     # Push the tag to trigger publishing
     git push origin --tags
     ```

  The workflow will automatically:
  - Build and test the package
  - Verify the workflow is triggered by a version tag
  - Verify the version matches the tag
  - Publish to npmjs.com

  ## License

  [MIT](LICENSE.md)

  ## Credits

  By Hadidizflow.com Your AI Solutions Partner.

ai_documentation_summary:
  {"purpose":"The Sshv2 node provides enhanced SSH functionality in n8n, enabling remote command execution, file uploads, and downloads with support for both password and private key authentication. It includes an AI-powered 'Hadidiz-AI' tool node that integrates with n8n's AI Agent for intelligent, dynamic SSH operations.","capabilities":["Execute remote commands","Download files from remote servers","Upload files to remote servers","Dynamic configuration of connection parameters","Support for password and private key authentication","Pass credentials from previous nodes","Use environment variables in configurations"],"authentication":"Password-based or private key authentication","commonUseCases":["Automated server maintenance and command execution","Remote file transfers between systems","Dynamic server switching in workflows","AI-driven automation of SSH tasks using n8n's AI Agent"],"limitations":[],"relatedNodes":["AI Agent","Command Node","File Transfer Nodes"]}


node_type: n8n-nodes-zapsign.Zapsign
package_name: n8n-nodes-zapsign
display_name: Zapsign
description: N8N node for ZapSign digital signature API integration - Complete API coverage with 48+ operations
category: Community
development_style: declarative
version: 1.0.106
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: zapsign-private
author_github_url: git+https://github.com/zapsign/n8n-nodes-zapsign.git
npm_package_name: n8n-nodes-zapsign
npm_version: 1.0.106
community_fetched_at: 2026-01-07T20:08:17.578Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-zapsign

  This is an n8n community node that lets you use ZapSign's digital signature API in your n8n workflows.

  [ZapSign](https://zapsign.co) is a digital signature platform that enables you to create, send, and manage legally binding electronic signatures for your documents.

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

  ## Installation

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

  ### Community Nodes (Recommended)

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

  After installing the node, you can use it like any other node in n8n.

  ### Manual Installation

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

  ```bash
  npm install n8n-nodes-zapsign
  ```

  For Docker-based deployments add the following line before the font installation command in your n8n Dockerfile:

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

  ## Credentials

  You'll need to set up ZapSign API credentials to use this node:

  1. Sign up for a [ZapSign account](https://zapsign.co)
  2. Go to your ZapSign dashboard
  3. Navigate to API settings and generate an API key
  4. In n8n, create new ZapSign API credentials with:
     - **API Key**: Your ZapSign API key
     - **Environment**: Choose between Production or Sandbox

  ## Environment Variables (optional)

  You can override the default API base URLs using a `.env` file:

  ```bash
  ZAPSIGN_API_BASE_URL=https://api.zapsign.com.br
  ZAPSIGN_API_BASE_URL_SANDBOX=https://sandbox.api.zapsign.com.br
  ```

  These are optional; by default the production and sandbox endpoints above are used.

  ## Operations

  ### ZapSign Node

  The ZapSign node supports the following resources and operations:

  #### Document
  - **Create**: Upload and create a new document
    - **File Upload**: Upload a file from binary data
    - **Base64**: Provide file content as base64 string
    - **Public Link**: Provide a public URL to the file
  - **Get**: Retrieve document details
  - **Get All**: List all documents
  - **Send**: Send document for signature
  - **Cancel**: Cancel a document
  - **Download**: Download a signed document

  #### Signer
  - **Add**: Add a signer to a document
  - **Get All**: Get all signers of a document
  - **Remove**: Remove a signer from a document
  - **Update**: Update signer information

  #### Template
  - **Get All**: List all available templates
  - **Create Document From Template**: Create a new document from a template

  #### Webhook
  - **Create**: Create a webhook for event notifications
  - **Get All**: List all webhooks
  - **Delete**: Delete a webhook

  ### ZapSign Trigger Node

  The ZapSign Trigger node allows you to start workflows when ZapSign events occur:

  #### Supported Events
  - **Document Created**: When a document is created
  - **Document Sent**: When a document is sent for signature
  - **Document Viewed**: When a document is viewed by a signer
  - **Document Signed**: When a document is signed by any signer
  - **Document Completed**: When all signers have signed the document
  - **Document Cancelled**: When a document is cancelled
  - **Document Expired**: When a document expires
  - **Signer Added**: When a signer is added to a document
  - **Signer Signed**: When a specific signer signs
  - **Signer Declined**: When a signer declines to sign

  ## Example Workflows

  ### Document Signature Workflow

  1. **HTTP Request**: Receive document upload request
  2. **ZapSign**: Create document with uploaded file
  3. **ZapSign**: Add signers to the document
  4. **ZapSign**: Send document for signature
  5. **ZapSign Trigger**: Wait for document completion
  6. **Email**: Send notification when document is signed

  ### Template-Based Document Creation

  1. **Schedule Trigger**: Run daily
  2. **Google Sheets**: Get contract data
  3. **ZapSign**: Create document from template
  4. **ZapSign**: Add signers from spreadsheet
  5. **ZapSign**: Send for signature
  6. **Slack**: Notify team

  ### Webhook Event Processing

  1. **ZapSign Trigger**: Listen for document events
  2. **Switch**: Route based on event type
  3. **Database**: Update document status
  4. **Email**: Send appropriate notifications

  ## File Input Types for Document Creation

  The ZapSign node now supports multiple ways to provide files for document creation:

  ### File Upload (Binary Data)
  - Use when you have a file uploaded through n8n's binary data system
  - Supports any file type that ZapSign accepts
  - Automatically detects filename and MIME type

  ### Base64 Encoding
  - Use when you have file content as a base64 string
  - Requires specifying the filename and MIME type manually
  - Useful for files generated programmatically or stored as base64

  ### Public URL
  - Use when the file is publicly accessible via a URL
  - Automatically downloads the file from the URL
  - Attempts to detect filename and MIME type from the URL
  - Supports common file formats: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, RTF, images (JPG, PNG, GIF, BMP, TIFF), HTML, XML, JSON

  ## Authentication Methods

  ZapSign supports multiple authentication methods for signers:

  - **Email**: Simple email verification
  - **SMS**: SMS code verification
  - **WhatsApp**: WhatsApp code verification

  Additional security features:
  - **Document Authentication**: Require ID document upload
  - **Facial Recognition**: Verify identity through facial recognition
  - **Biometric GOV+**: Government database validation (Brazil)

  ## API Endpoints Structure

  The node assumes the following ZapSign API structure:

  ```
  Base URL: https://api.zapsign.com.br/ (Production)
           https://sandbox.api.zapsign.com.br/ (Sandbox)

  Documents:
  - POST /v1/documents - Create document
  - GET /v1/documents - List documents
  - GET /v1/documents/{id} - Get document
  - POST /v1/documents/{id}/send - Send document
  - POST /v1/documents/{id}/cancel - Cancel document
  - GET /v1/documents/{id}/download - Download document

  Signers:
  - POST /v1/documents/{id}/signers - Add signer
  - GET /v1/documents/{id}/signers - List signers
  - PUT /v1/documents/{id}/signers/{email} - Update signer
  - DELETE /v1/documents/{id}/signers/{email} - Remove signer

  Templates:
  - GET /v1/templates - List templates
  - POST /v1/documents/from-template - Create from template

  Webhooks:
  - POST /v1/webhooks - Create webhook
  - GET /v1/webhooks - List webhooks
  - DELETE /v1/webhooks/{id} - Delete webhook
  ```

  ## Error Handling

  The node includes comprehensive error handling:

  - **Authentication errors**: Invalid API key or expired tokens
  - **Rate limiting**: Automatic retry with exponential backoff
  - **Validation errors**: Missing required fields or invalid data
  - **Network errors**: Connection timeouts and retries

  All errors are properly formatted and include helpful context for debugging.

  ## Compatibility

  - n8n v0.187.0 and above
  - Node.js v18.10 and above

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [ZapSign API Documentation](https://docs.zapsign.com.br/)
  - [ZapSign Website](https://zapsign.co)

  ## Support

  For support with this community node:

  1. Check the [ZapSign API documentation](https://docs.zapsign.com.br/)
  2. Review the [n8n community forum](https://community.n8n.io/)
  3. Open an issue on this repository

  For ZapSign-specific questions, contact ZapSign support at support@zapsign.co

  ## License

  [MIT](https://github.com/zapsign/n8n-nodes-zapsign/blob/main/LICENSE.md)

  ## Contributing

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

  ## Changelog
  ### 1.0.22
  - Updated "List Documents" operation to fully match ZapSign API specification
  - Implements ZapSign API endpoint `GET /api/v1/docs/?page={page}`
  - Added comprehensive filtering options:
    - **Page navigation**: Page-based pagination (25 documents per page)
    - **Folder filtering**: Filter by folder path (e.g., "/" for root, "/api/pasta2/" for specific folder)
    - **Deletion status**: Filter deleted vs non-deleted documents
    - **Document status**: Filter by pending, signed, or refused status
    - **Date range**: Filter by creation date (YYYY-MM-DD format)
    - **Sort order**: Ascending, descending, or default sorting
  - API returns paginated response with count, next/previous links, and results array
  - Response includes temporary file URLs (60-minute expiration) for original_file and signed_file
  - Cache duration: 60 minutes as per API documentation
  - Supports all query parameters: folder_path, deleted, status, created_from, created_to, sort_order
  - **Fixed**: Resolved circular dependency issue with displayOptions that was causing "Max iterations reached" error in n8n
  - **Fixed**: Removed displayOptions from child parameters in collections to prevent circular dependency issues
  - **Fixed**: Corrected TypeScript formatting and indentation issues

  ### 1.0.16
  - Added "Reorder Documents in Envelope" operation to Document resource
  - Implements ZapSign API endpoint `PUT /api/v1/docs/{doc_token}/document-display-order/`
  - Allows reordering documents within an envelope while it's still in progress
  - Supports multiple document tokens in the desired display order
  - Only works on envelope documents (documents that group multiple files)
  - Requires document to be in "em andamento" (in progress) status
  - Fixed API endpoint to match official documentation exactly

  ### 1.0.15
  - Added "Update Document" operation to Document resource
  - Implements ZapSign API endpoint `PUT /api/v1/docs/{doc_token}/`
  - Allows updating document data while document is still in progress (not finalized or cancelled)
  - Supports updating: document name, signature deadline, folder path, folder token
  - Supports renaming extra documents via `extra_docs[]` array
  - Only works on documents with "em andamento" (in progress) status
  - Fixed API endpoint to match official documentation exactly

  ### 1.0.14
  - Updated Get Document operation to match exact ZapSign API specification
  - Changed endpoint from `/api/v1/docs/{id}` to `/api/v1/docs/{id}/` (with trailing slash)
  - API now returns comprehensive document information including:
    - Basic document details (ID, status, name, timestamps)
    - File URLs (original_file, signed_file with 60-minute expiration)
    - Complete signer information with authentication and signature status
    - Extra documents array with metadata
    - Template variables (answers array for dynamic templates)
    - Branding settings and metadata (external_id, folder_path, lang, created_by)
  - Fixed API endpoint to match official documentation exactly

  ### 1.0.13

  ### 1.0.12
  - Added "Add Extra Document" operation to Document resource
  - Implements ZapSign API endpoint `/api/v1/docs/{doc_principal_token}/upload-extra-doc/`
  - Supports both URL and Base64 input methods for extra documents
  - Extra documents inherit all settings from the main document
  - Maximum of 14 extra documents per main document (API limitation)
  - Only PDF files up to 10MB are supported for extra documents

  ### 1.0.11
  - Updated Create Document From Template operation to match exact ZapSign API specification
  - Changed endpoint from `/api/v1/docs/from-template` to `/api/v1/models/create-doc/`
  - Added comprehensive template parameters: signer info, template variables, branding, WhatsApp automation
  - Added support for template data replacement with `data[]` array format
  - Added advanced options: folder management, signature ordering, signer permissions
  - Fixed parameter names to match API documentation exactly

  ### 1.0.10
  - Added OneClick (ClickWrap) document creation operation
  - Added OneClick-specific settings (signature drawing, custom consent text, redirect)
  - OneClick documents are simplified for consent capture with minimal configuration
  - Maintains compatibility with all file input types (File Upload, Base64, Public Link)
  - Added `oneclick: true` flag for OneClick document identification

  ### 1.0.9
  - Fixed document creation to match exact ZapSign API specification
  - Changed from form-data to JSON request format
  - Updated API endpoints to use correct paths (/api/v1/docs/)
  - Added proper parameter names (base64_pdf, url_pdf, base64_docx, url_docx)
  - Added required signers array parameter
  - Added comprehensive signer configuration options
  - Added proper additional fields matching API documentation
  - Fixed authentication and request structure issues

  ### 1.0.8
  - Added support for multiple file input types in document creation:
    - Base64 encoding for file content
    - Public URL for file downloads
    - Enhanced file upload with better MIME type detection
  - Improved error handling for file processing
  - Added comprehensive MIME type support for common file formats

  ### 1.0.7
  - Added support for multiple file input types in document creation:
    - Base64 encoding for file content
    - Public URL for file downloads
    - Enhanced file upload with better MIME type detection
  - Improved error handling for file processing
  - Added comprehensive MIME type support for common file formats

  ### 1.0.6
  - Corrigido formato de autenticação: alterado de 'Authorization: Bearer' para 'apikey'


  ### 1.0.5
  - Corrigido endpoint de teste para o caminho correto da API ZapSign: /api/v1/docs/?page=1


  ### 1.0.4
  - Corrigido endpoint de teste para autenticação



  ### 1.0.0
  - Initial release
  - Support for Document, Signer, Template, and Webhook operations
  - ZapSign Trigger node for webhook events
  - Complete authentication and error handling
  - Support for both Production and Sandbox environments

ai_documentation_summary:
  {"purpose":"The Zapsign n8n node enables integration with ZapSign's digital signature API, allowing users to create, send, manage, and track signed documents, as well as handle signer authentication and webhook events within n8n workflows.","capabilities":["Create and upload documents via binary data, base64 string, or public URL","Retrieve, list, send, cancel, and download signed documents","Add, update, remove, and retrieve signers for documents","Create documents from templates","Set up and manage webhooks for event notifications","Trigger workflows on document and signer events (e.g., signed, completed, cancelled)","Support for multiple signer authentication methods including email, SMS, WhatsApp, ID document upload, facial recognition, and biometric GOV+ (Brazil)"],"authentication":"API key required (with environment set to Production or Sandbox); signer authentication via email, SMS, WhatsApp, document verification, facial recognition, or biometric GOV+","commonUseCases":["Automating document creation and signing workflows","Integrating with spreadsheets or databases to generate contracts and send for signature","Setting up real-time notifications via webhooks when documents are signed or completed","Using templates to standardize document creation","Automating compliance with identity verification through facial recognition or government ID checks"],"limitations":[],"relatedNodes":["HTTP Request","Google Sheets","Schedule Trigger","Email","Slack"]}


node_type: n8n-nodes-asaas-pagamentos.AsaasPagamentos
package_name: n8n-nodes-asaas-pagamentos
display_name: AsaasPagamentos
description: Node n8n para integração da plataforma de pagamento Asaas
category: Community
development_style: declarative
version: 0.1.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: 99lab.dev
author_github_url: git+https://github.com/99labdev/n8n-nodes-asaas.git
npm_package_name: n8n-nodes-asaas-pagamentos
npm_version: 0.1.2
community_fetched_at: 2026-01-07T20:08:17.578Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-asaas-pagamentos

  ![Asaas Logo](logo.png)

  Este é um nó da comunidade n8n. Ele permite que você use o Asaas em seus fluxos de trabalho n8n.

  O Asaas é uma plataforma de pagamentos brasileira que oferece soluções completas para cobrança, recebimento e pagamento, incluindo PIX, boleto bancário, cartão de crédito e débito, TED, além de funcionalidades como gestão de assinaturas, split de pagamentos, antecipação de recebíveis e muito mais.

  [n8n](https://n8n.io/) é uma plataforma de automação de fluxo de trabalho [licenciada fair-code](https://docs.n8n.io/reference/license/).

  ## Instalação

  Siga o [guia de instalação](https://docs.n8n.io/integrations/community-nodes/installation/) na documentação de nós da comunidade n8n.

  ```bash
  npm install n8n-nodes-asaas-pagamentos
  ```

  ## Operações

  ### Recursos Implementados da API Asaas

  #### ✅ Clientes

  - [x] **Listar clientes** - Recuperar lista de clientes com filtros opcionais
  - [x] **Criar novo cliente** - Criar um novo cliente com dados pessoais, de contato e endereço
  - [x] **Recuperar cliente específico** - Obter detalhes completos de um cliente pelo ID
  - [x] **Atualizar cliente existente** - Modificar dados de um cliente já cadastrado
  - [x] **Deletar cliente** - Remover cliente do sistema permanentemente
  - [x] **Restaurar cliente removido** - Reativar cliente que foi deletado anteriormente

  #### ⏳ Cobranças (Payments)

  - [ ] **Criar nova cobrança** - Criar cobrança com diversas formas de pagamento
  - [ ] **Listar cobranças** - Recuperar lista de cobranças com filtros avançados
  - [ ] **Criar cobrança com cartão de crédito** - Cobrança direta com cartão
  - [ ] **Capturar cobrança com Pré-Autorização** - Finalizar pagamento pré-autorizado
  - [ ] **Pagar cobrança com cartão de crédito** - Processar pagamento de cobrança existente
  - [ ] **Recuperar informações de pagamento** - Obter dados de billing de uma cobrança
  - [ ] **Informações sobre visualização** - Dados de quando a cobrança foi visualizada
  - [ ] **Recuperar cobrança específica** - Obter detalhes de uma cobrança
  - [ ] **Atualizar cobrança existente** - Modificar dados de cobrança pendente
  - [ ] **Excluir cobrança** - Remover cobrança do sistema
  - [ ] **Restaurar cobrança removida** - Reativar cobrança excluída
  - [ ] **Recuperar status de cobrança** - Verificar status atual da cobrança
  - [ ] **Estornar cobrança** - Realizar estorno total ou parcial
  - [ ] **Obter linha digitável do boleto** - Código de barras para pagamento
  - [ ] **Obter QR Code PIX** - Gerar QR Code para pagamento via PIX
  - [ ] **Confirmar recebimento em dinheiro** - Marcar como pago em dinheiro
  - [ ] **Desfazer confirmação em dinheiro** - Cancelar confirmação de pagamento em dinheiro
  - [ ] **Simulador de vendas** - Simular cenários de pagamento

  #### ⏳ Ações em Sandbox

  - [ ] **Confirmar pagamento** - Simular confirmação de pagamento no ambiente de teste
  - [ ] **Adicionar saldo** - Adicionar crédito para testes na conta sandbox

  #### ⏳ Cobranças com Dados Resumidos

  - [ ] **Criar cobrança com dados resumidos** - Retorna resposta simplificada para performance

  #### ⏳ Cartão de Crédito

  - [ ] **Tokenização de cartão de crédito** - Gerar token seguro para cartão
  - [ ] **Criar cobrança com cartão tokenizado** - Usar token para criar cobrança
  - [ ] **Validar dados do cartão** - Verificar se cartão é válido
  - [ ] **Listar cartões tokenizados** - Recuperar cartões salvos do cliente

  #### ⏳ Estornos

  - [ ] **Listar estornos de uma cobrança** - Histórico de estornos
  - [ ] **Criar estorno total** - Estornar valor completo da cobrança
  - [ ] **Criar estorno parcial** - Estornar parte do valor da cobrança
  - [ ] **Recuperar detalhes do estorno** - Informações específicas do estorno

  #### ⏳ Splits de Pagamento

  - [ ] **Recuperar split pago** - Informações de divisão de pagamento realizada
  - [ ] **Configurar splits** - Definir divisão de valores entre contas
  - [ ] **Listar splits** - Histórico de divisões de pagamento
  - [ ] **Cancelar split** - Desfazer divisão configurada

  #### ⏳ Conta Escrow

  - [ ] **Encerrar garantia da cobrança** - Finalizar processo de garantia
  - [ ] **Configurar conta escrow** - Ativar sistema de garantia
  - [ ] **Consultar status escrow** - Verificar situação da garantia

  #### ⏳ Documentos de Cobranças

  - [ ] **Upload de documentos da cobrança** - Anexar arquivos à cobrança
  - [ ] **Listar documentos** - Recuperar arquivos anexados
  - [ ] **Deletar documento** - Remover arquivo anexado
  - [ ] **Download de documento** - Baixar arquivo específico

  #### ⏳ Notificações

  - [ ] **Atualizar notificação existente** - Modificar configurações de notificação
  - [ ] **Configurar notificações** - Definir tipos de notificações ativas
  - [ ] **Listar notificações** - Recuperar histórico de notificações enviadas
  - [ ] **Criar nova notificação** - Configurar nova regra de notificação
  - [ ] **Deletar notificação** - Remover configuração de notificação

  #### ⏳ Parcelamentos

  - [ ] **Criar parcelamento** - Dividir cobrança em múltiplas parcelas
  - [ ] **Listar parcelamentos** - Recuperar parcelamentos criados
  - [ ] **Recuperar parcelamento específico** - Detalhes de um parcelamento
  - [ ] **Atualizar parcelamento** - Modificar parcelamento existente
  - [ ] **Deletar parcelamento** - Cancelar parcelamento

  #### ⏳ Assinaturas (Recorrência)

  - [ ] **Criar nova assinatura** - Configurar cobrança recorrente
  - [ ] **Listar assinaturas** - Recuperar assinaturas ativas e inativas
  - [ ] **Recuperar assinatura específica** - Detalhes de uma assinatura
  - [ ] **Atualizar assinatura** - Modificar dados da assinatura
  - [ ] **Cancelar assinatura** - Encerrar cobrança recorrente
  - [ ] **Listar cobranças da assinatura** - Histórico de cobranças geradas
  - [ ] **Listar faturas da assinatura** - Faturas relacionadas à assinatura

  #### ⏳ PIX

  - [ ] **Criar chave PIX** - Registrar nova chave PIX na conta
  - [ ] **Listar chaves PIX** - Recuperar chaves PIX cadastradas
  - [ ] **Deletar chave PIX** - Remover chave PIX da conta
  - [ ] **Criar cobrança PIX** - Gerar cobrança específica para PIX
  - [ ] **Gerar QR Code estático** - QR Code reutilizável para recebimentos
  - [ ] **Gerar QR Code dinâmico** - QR Code para valor específico
  - [ ] **Decodificar QR Code** - Extrair informações de QR Code PIX

  #### ⏳ Transações PIX

  - [ ] **Pagar QR Code** - Efetuar pagamento via QR Code PIX
  - [ ] **Listar transações PIX** - Histórico de transações PIX
  - [ ] **Cancelar transação PIX** - Estornar transação PIX quando possível
  - [ ] **Recuperar comprovante PIX** - Obter comprovante da transação
  - [ ] **Consultar status transação** - Verificar situação da transação PIX

  #### ⏳ PIX Recorrente

  - [ ] **Listar recorrências PIX** - Recuperar PIX programados
  - [ ] **Criar recorrência PIX** - Agendar PIX recorrente
  - [ ] **Cancelar recorrência PIX** - Interromper PIX programado
  - [ ] **Atualizar recorrência PIX** - Modificar agendamento PIX

  #### ⏳ Link de Pagamentos

  - [ ] **Criar link de pagamentos** - Gerar link para recebimento online
  - [ ] **Listar links de pagamentos** - Recuperar links criados
  - [ ] **Atualizar link de pagamentos** - Modificar configurações do link
  - [ ] **Recuperar link específico** - Detalhes de um link de pagamento
  - [ ] **Deletar link de pagamentos** - Remover link criado
  - [ ] **Recuperar QR Code do link** - QR Code para compartilhamento

  #### ⏳ Checkout

  - [ ] **Criar novo checkout** - Página de checkout personalizada
  - [ ] **Configurar checkout** - Definir aparência e comportamento
  - [ ] **Recuperar configurações** - Obter configurações do checkout
  - [ ] **Atualizar configurações** - Modificar checkout existente

  #### ⏳ Transferências

  - [ ] **Transferir para conta de outra instituição** - TED/DOC para outros bancos
  - [ ] **Transferir via chave PIX** - Transferência instantânea via PIX
  - [ ] **Listar transferências** - Histórico de transferências realizadas
  - [ ] **Recuperar transferência específica** - Detalhes de uma transferência
  - [ ] **Cancelar transferência** - Cancelar transferência agendada
  - [ ] **Transferir para conta Asaas** - Transferência entre contas Asaas

  #### ⏳ Antecipações

  - [ ] **Recuperar antecipação** - Informações sobre antecipação específica
  - [ ] **Solicitar antecipação** - Antecipar recebíveis disponíveis
  - [ ] **Listar antecipações** - Histórico de antecipações
  - [ ] **Simular antecipação** - Calcular valores de antecipação
  - [ ] **Cancelar antecipação** - Cancelar solicitação pendente

  #### ⏳ Negativações

  - [ ] **Criar negativação** - Registrar negativação de cliente
  - [ ] **Listar negativações** - Recuperar negativações realizadas
  - [ ] **Recuperar negativação específica** - Detalhes de uma negativação
  - [ ] **Cancelar negativação** - Remover negativação ativa
  - [ ] **Consultar situação CPF/CNPJ** - Verificar restrições existentes

  #### ⏳ Pagamento de Contas

  - [ ] **Criar pagamento de conta** - Pagar boletos e contas
  - [ ] **Listar pagamentos de contas** - Histórico de pagamentos
  - [ ] **Recuperar pagamento específico** - Detalhes de um pagamento
  - [ ] **Cancelar pagamento** - Cancelar pagamento agendado
  - [ ] **Consultar código de barras** - Verificar dados do boleto
  - [ ] **Simular pagamento** - Calcular taxas e prazos

  #### ⏳ Recargas de Celular

  - [ ] **Solicitar recarga** - Fazer recarga de celular pré-pago
  - [ ] **Listar recargas** - Histórico de recargas realizadas
  - [ ] **Recuperar recarga específica** - Detalhes de uma recarga
  - [ ] **Consultar operadoras** - Listar operadoras disponíveis
  - [ ] **Consultar valores** - Valores de recarga disponíveis

  #### ⏳ Consulta Serasa

  - [ ] **Realizar consulta Serasa** - Consultar CPF/CNPJ no Serasa
  - [ ] **Listar consultas** - Histórico de consultas realizadas
  - [ ] **Recuperar consulta específica** - Resultado de uma consulta
  - [ ] **Consultar score** - Verificar score de crédito

  #### ⏳ Extrato

  - [ ] **Recuperar extrato** - Extrato financeiro da conta
  - [ ] **Filtrar por período** - Extrato de período específico
  - [ ] **Exportar extrato** - Download do extrato em PDF/Excel
  - [ ] **Extrato detalhado** - Informações completas das transações

  #### ⏳ Informações Financeiras

  - [ ] **Recuperar saldo da conta** - Saldo atual e disponível
  - [ ] **Obter informações financeiras** - Dados financeiros consolidados
  - [ ] **Estatísticas de faturamento** - Métricas de recebimento
  - [ ] **Previsão de recebimentos** - Valores a receber por período

  #### ⏳ Informações da Conta

  - [ ] **Recuperar dados comerciais** - Informações da empresa
  - [ ] **Atualizar informações da conta** - Modificar dados cadastrais
  - [ ] **Configurar personalização** - White label e customizações
  - [ ] **Recuperar configurações** - Configurações atuais da conta
  - [ ] **Upload de logo** - Personalizar logotipo da conta

  #### ⏳ Notas Fiscais

  - [ ] **Agendar nota fiscal** - Programar emissão de NF
  - [ ] **Listar notas fiscais** - Histórico de notas emitidas
  - [ ] **Recuperar nota específica** - Detalhes de uma nota fiscal
  - [ ] **Cancelar nota fiscal** - Cancelar nota já emitida
  - [ ] **Download de XML** - Baixar arquivo XML da nota
  - [ ] **Enviar por email** - Enviar nota fiscal por email

  #### ⏳ Informações Fiscais

  - [ ] **Listar configurações municipais** - Configurações fiscais por cidade
  - [ ] **Configurar informações fiscais** - Definir dados para emissão de NF
  - [ ] **Atualizar configurações** - Modificar configurações fiscais
  - [ ] **Consultar alíquotas** - Verificar alíquotas municipais

  #### ⏳ Webhooks

  - [ ] **Criar novo webhook** - Configurar notificação via HTTP
  - [ ] **Listar webhooks** - Recuperar webhooks configurados
  - [ ] **Atualizar webhook** - Modificar configurações de webhook
  - [ ] **Deletar webhook** - Remover webhook configurado
  - [ ] **Testar webhook** - Enviar evento de teste
  - [ ] **Reenviar evento** - Reprocessar evento específico
  - [ ] **Listar eventos** - Histórico de eventos enviados

  #### ⏳ Subcontas

  - [ ] **Criar subconta** - Criar conta filha
  - [ ] **Listar subcontas** - Recuperar subcontas criadas
  - [ ] **Configurar subconta** - Definir permissões e limites
  - [ ] **Atualizar subconta** - Modificar configurações
  - [ ] **Desativar subconta** - Suspender acesso da subconta
  - [ ] **Transferir entre subcontas** - Movimentar valores

  #### ⏳ Documentos White Label

  - [ ] **Verificar documentos pendentes** - Documentos aguardando aprovação
  - [ ] **Enviar documentos** - Upload de documentos para análise
  - [ ] **Consultar status** - Situação da análise de documentos
  - [ ] **Reenviar documentos** - Submeter novamente após rejeição

  #### ⏳ Chargeback

  - [ ] **Criar disputa de chargeback** - Contestar chargeback recebido
  - [ ] **Listar chargebacks** - Histórico de chargebacks
  - [ ] **Recuperar chargeback específico** - Detalhes de uma disputa
  - [ ] **Anexar documentos** - Adicionar evidências à disputa
  - [ ] **Acompanhar processo** - Status da contestação

  #### ⏳ Cidades e Localização

  - [ ] **Listar estados** - Estados brasileiros disponíveis
  - [ ] **Listar cidades por estado** - Cidades de um estado específico
  - [ ] **Consultar CEP** - Buscar endereço por CEP
  - [ ] **Validar endereço** - Verificar validade de endereço

  #### ⏳ Relatórios e Analytics

  - [ ] **Relatório de vendas** - Análise de faturamento por período
  - [ ] **Relatório de inadimplência** - Cobranças em atraso
  - [ ] **Métricas de conversão** - Taxa de conversão de pagamentos
  - [ ] **Dashboard financeiro** - Visão geral dos indicadores

  ## Credenciais

  Para usar este nó, você precisa se autenticar com o Asaas. Você deve incluir os pré-requisitos (como criar uma conta no serviço), métodos de autenticação disponíveis e como configurá-los.

  ### Pré-requisitos

  1. Crie uma conta no [Asaas](https://asaas.com) ou no [Sandbox do Asaas](https://sandbox.asaas.com) para testes
  2. Gere sua chave de API no painel do Asaas

  ### Configuração de Autenticação

  1. No n8n, vá para **Credenciais** > **Criar Nova Credencial**
  2. Selecione **Asaas API**
  3. Configure os seguintes campos:
     - **Chave de API**: Sua chave de API do Asaas
     - **Ambiente**: Escolha entre Produção ou Sandbox
  4. Teste a conexão e salve

  ## Compatibilidade

  - **Versão mínima do n8n**: 1.0.0
  - **Versões testadas**: 1.0.0+
  - **Node.js**: >=20.15

  ## Uso

  Este nó permite integrar facilmente o Asaas aos seus fluxos de trabalho n8n. Comece criando clientes e depois avance para criação de cobranças e outras operações conforme suas necessidades.

  Para usuários iniciantes no n8n, consulte a documentação [Experimente](https://docs.n8n.io/try-it-out/) para começar.

  ## Recursos

  - [Documentação dos nós da comunidade n8n](https://docs.n8n.io/integrations/#community-nodes)
  - [Documentação da API do Asaas](https://docs.asaas.com/docs)
  - [Referência da API do Asaas](https://docs.asaas.com/reference)
  - [Portal de desenvolvedores Asaas](https://asaas.com/developers)
  - [Comunidade Discord Asaas](https://discord.gg/invite/X2kgZm69HV)

  ## Licença

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"O nó AsaasPagamentos permite integrar a plataforma de pagamentos Asaas ao n8n, facilitando a automação de operações como gestão de clientes, cobranças, estornos, splits e assinaturas, com suporte a formas de pagamento como boleto, cartão, PIX e TED.","capabilities":["Listar clientes","Criar novo cliente","Recuperar cliente específico","Atualizar cliente existente","Deletar cliente","Restaurar cliente removido","Obter QR Code PIX","Obter linha digitável do boleto","Confirmar recebimento em dinheiro","Desfazer confirmação em dinheiro"],"authentication":"API key required","commonUseCases":["Automatizar a criação e atualização de clientes","Gerar cobranças com boleto ou PIX e acompanhar seu status","Gerenciar assinaturas recorrentes","Criar e restaurar cobranças excluídas","Gerar QR Code para pagamento via PIX"],"limitations":["Muitas operações de cobrança, cartão de crédito, estornos, splits e parcelamentos ainda estão em desenvolvimento (marcadas como [ ])","Funcionalidades como tokenização de cartão, simulação de vendas e upload de documentos não estão disponíveis","Ações em sandbox (como adicionar saldo ou confirmar pagamento) não estão implementadas"],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-database"]}


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-01-07 20:08:17
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-01-07T20:08:17.579Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The InstagramToken node enables integration with Instagram's API using access token authentication, allowing users to send messages, manage comments, create posts and reels, and handle webhooks for real-time events like comments and messages.","capabilities":["Send text, image, audio, and video messages","Create posts, reels, and stories","Manage comments (reply, hide, unhide, delete)","Send private replies with quick replies","Handle webhook events (messages, comments, opt-ins)","Auto-refresh access tokens with smart fallback","Auto-discovery of Instagram Business Account ID","Support for audio formats (AAC, M4A, WAV, MP4)","Interactive templates with buttons and carousels"],"authentication":"Access token authentication via a long-lived access token with automatic refresh; supports Bearer token header and smart fallback if refresh fails","commonUseCases":["Automated customer messaging via Instagram DMs","Comment moderation and engagement automation","Scheduled posting of images, videos, and reels","Real-time response to user comments and mentions","Automated story and post creation workflows"],"limitations":[],"relatedNodes":["Instagram Trigger","Webhook","Message","Comment","Post"]}


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.4.1
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: drudge
author_github_url: git+https://github.com/drudge/n8n-nodes-puppeteer.git
npm_package_name: n8n-nodes-puppeteer
npm_version: 1.4.1
community_fetched_at: 2026-01-07T20:08:17.579Z
ai_summary_generated_at: 2026-01-08 10:45:31
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 or copy the following files to your project:
     - `docker/Dockerfile`
     - `docker/docker-custom-entrypoint.sh`

  2. Build your Docker image:
  ```bash
  docker build -t n8n-puppeteer -f docker/Dockerfile docker/
  ```

  3. Run the container:
  ```bash
  docker run -it \
    -p 5678:5678 \
    -v ~/.n8n:/home/node/.n8n \
    n8n-puppeteer
  ```

  ### 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 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

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

  To use a remote browser, enable "Browser WebSocket Endpoint" in any Puppeteer node and enter your WebSocket URL (e.g., `ws://browserless:3000?token=6R0W53R135510`).

  ## 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.
      - **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.
      - **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).
      - **Launch Arguments**: Allows you to specify additional command line arguments passed to the browser instance.
      - **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

  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.

  ### 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",
        },
      },
    },
  ];
  ```

  ## 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":"The Puppeteer node enables browser automation using Puppeteer, allowing users to execute custom scripts, capture screenshots or PDFs, scrape web content, and automate interactions with web pages via Chrome or Chromium through the DevTools Protocol.","capabilities":["Get full HTML content of a page","Capture page as PDF","Capture screenshot of full or partial page","Execute custom JavaScript scripts on the page","Emulate device behavior (e.g., mobile, desktop)","Set custom HTTP headers","Configure timeouts and navigation wait conditions","Enable headless or headless shell mode","Use stealth mode to avoid detection","Connect to remote browser via WebSocket endpoint"],"authentication":"None required; authentication is handled via browser session or proxy settings (e.g., proxy server or custom headers). Remote browser access requires a WebSocket endpoint with a token (e.g., from browserless or self-hosted browser).","commonUseCases":["Web scraping with dynamic content loading","Automating form submissions and user interactions","Generating screenshots or PDFs of web pages","Testing web applications in browser environments","Simulating user behavior across devices"],"limitations":["Local browser setup requires Chromium and system dependencies, increasing installation size and complexity","Remote browser option requires a running browser instance (e.g., browserless or self-hosted) and may incur additional costs or setup overhead","Performance may degrade with high batch sizes due to memory and CPU consumption","Stealth mode relies on third-party plugins and may not fully evade all detection mechanisms","Limited support for advanced browser features without custom scripts"],"relatedNodes":["Code","Webhook","HTTP Request","Scrape"]}


node_type: @ahmed-kamal/n8n-nodes-evolution-api.EvolutionApi
package_name: @ahmed-kamal/n8n-nodes-evolution-api
display_name: EvolutionApi
description: Evolution API n8n node - English translation of WhatsApp integration for n8n workflows
category: Community
development_style: declarative
version: 1.0.5
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: ahmed-kamal
author_github_url: git+https://github.com/Hamoo17/n8n-nodes-evolution-api.git
npm_package_name: @ahmed-kamal/n8n-nodes-evolution-api
npm_version: 1.0.5
community_fetched_at: 2026-01-07T20:08:17.580Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![image](https://github.com/user-attachments/assets/813b7b34-377c-42e8-9f1a-12e27e682c7f)

  ---

  > **📝 Translation Notice** > _This is an English translation of the original Portuguese project by [OrionDesign](https://github.com/oriondesign2015/n8n-nodes-evolution-api). Comprehensive Portuguese-to-English translation completed by **Augment AI** on December 19, 2024, covering all documentation, code comments, field labels, and user-facing text to improve international accessibility while preserving full functionality and original attribution._

  ---

  <p align="center"><br>
  This Community Node is a 100% free solution, created with the purpose of simplifying and helping the entire community to integrate and make the most of the main features offered by <b>Evolution API v2.2+</b> in their N8N projects. <b>Developed by OrionDesign.</b>
  </p>
  <br>
  	
  <div align="center">
    <img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.npmjs.org%2Fdownloads%2Fpoint%2Flast-year%2Fn8n-nodes-evolution-api&query=downloads&style=for-the-badge&label=Total%20Downloads&labelColor=%230d1117&color=%23359514&cacheSeconds=30&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fn8n-nodes-evolution-api" alt="Dynamic JSON Badge">
  </div>
  <br>
  </p>
  <p align="center">
    <a href="https://oriondesign.art.br/whatsapp1"><img src="https://github.com/user-attachments/assets/5a469114-2054-4f01-85b2-51a282518658" alt="SetupOrion" ></a>     
    <a href="https://oriondesign.art.br/whatsapp2"><img src="https://github.com/user-attachments/assets/3e3580a9-ae8e-4209-84fc-cfc1c03a8f12" alt="SetupOrion" ></a>     
    <a href="https://oriondesign.art.br/whatsapp3"><img src="https://github.com/user-attachments/assets/91aa7733-c09c-474f-9483-54cb678213d2" alt="SetupOrion" ></a>
  </p>

  <h1></h1>

  <h3>⚙️ Requirements</h3>

  To use our **Community Node**, you need to meet the following requirements:

  - **N8N** version **1.54.4** or higher
  - **Evolution API** version **2.2.0** or higher

  <h1></h1>

  <h3>📌 Available Features</h3>

  <h3>Instance</h3>
  🖥️ This feature provides complete access to the main functionalities related to Evolution API instances. It allows you to perform essential operations such as creating new instances, connecting to them, obtaining detailed information, customizing behaviors, monitoring presence, restarting, and even deleting instances in a practical and efficient way.
  <br>
  <details>
    <summary><b>Operations list</b></summary>
  	<details>
    	<summary>   ✅ <b> Create Instance</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Generate QR Code</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Fetch Instance</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Set Behavior</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Set Presence</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Set Proxy</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Fetch Proxy</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Disconnect WhatsApp</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Delete Instance</b></summary>
  	</details>
  </details>

  <h3> Message</h3>
  ✉️ This feature concentrates all functionalities related to sending and managing messages through the Evolution API. With it, you can send various types of content such as texts, images, videos, audios, documents, contacts, interactive lists, buttons, and even PIX messages. Each message type has advanced options like delay, mentions, replies, and special formatting. The feature was developed to provide a complete communication experience, allowing you to explore WhatsApp's native features to the fullest in a simple and efficient way.
  <br>
  <details>
    <summary><b>Operations list</b></summary>
  	<details>
    	<summary>   ✅ <b> Send Text</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Image</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Video</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Audio</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Document</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Poll</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Contact</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send List</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Button</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send PIX</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Status</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> React to Message</b></summary>
  	</details>
  </details>

  <h3>Group</h3>
  👥 With this feature, you have a complete set of functionalities for managing WhatsApp groups through the Evolution API. It covers everything from group creation and administration to participant management, permission configuration, invitation links, and temporary messages. Everything was designed to offer efficient and simplified control in group administration.
  <br>
  <details>
    <summary><b>Operations list</b></summary>
  	<details>
    	<summary>   ✅ <b> Create Group</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Update Group Image</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Update Group Name</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Update Group Description</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Update Group Settings</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Update Members</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Fetch Group Invite Link</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Revoke Group Invite Link</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Group Invite Link</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Find Participants</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Temporary Messages</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Leave Group</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Join Group</b></summary>
  	</details>
  </details>

  <h3>Chat</h3>
  💬 This feature provides a comprehensive set of tools for managing conversations and interactions using the Evolution API. With it, you can verify numbers, send and manage messages, manipulate media files, control read status, manage contacts, and monitor presence. All operations are developed to provide complete and efficient control of communications, facilitating the management of both individual and group conversations.
  <br>
  <details>
    <summary><b>Operations list</b></summary>
  	<details>
    	<summary>   ✅ <b> Verify Number</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Read Message</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Manage Archive</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Mark as Unread</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Delete Message</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Fetch Profile Picture</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Get Media in Base64</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Edit Message</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Send Presence</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Block Contact</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Fetch Contacts</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Search Messages</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Search Status</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Search Chats</b></summary>
  	</details>
  </details>

  <h3>Event</h3>
  ⚡ This feature offers advanced mechanisms for integration and real-time monitoring of Evolution API activities. It allows you to configure and manage Webhooks and RabbitMQ, enabling the tracking of events such as received messages, group changes, connection status, and much more. These functionalities were designed to ensure agile and automated communication between your application and the API, promoting immediate responses to different WhatsApp events.
  <br>
  <details>
    <summary><b>Operations list</b></summary>
  	<details>
    	<summary>   ✅ <b> Webhook</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> RabbitMQ</b></summary>
  	</details>
  </details>

  <h3>Integration</h3>
  🔗 This feature provides a wide range of connectors to integrate the Evolution API with various external platforms and services. Among the possibilities are connections with Chatwoot for customer service, Evolution Bot for automations, Typebot for conversational flows, as well as integrations with Flowise and Dify for artificial intelligence solutions. These integrations expand the API's capabilities, allowing you to create robust and automated solutions for different business scenarios.
  <br>
  <details>
    <summary><b>Operations list</b></summary>
  	<details>
    	<summary>   ✅ <b> Chatwoot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Evolution Bot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Typebot</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Dify</b></summary>
  	</details>
  	<details>
    	<summary>   ✅ <b> Flowise</b></summary>
  	</details>
  </details>

  <h1></h1>

  <h3>🤝 Contribution</h3>

  Contribute to the growth of this project! You can help in various ways:

  - **Pull Requests**: Send improvements, fixes, or new features.
  - **Issues**: Report problems or suggest new ideas.
  - **Suggestions**: Share your opinions and feedback.
  - **Documentation**: Help improve or expand existing documentation.

  <h1></h1>

  <h3>📌 Main contributors</h3>
  <a align="center" href="https://github.com/oriondesign2015/n8n-nodes-evolution-api/graphs/contributors">
    <img src="https://contrib.rocks/image?repo=oriondesign2015/n8n-nodes-evolution-api" />
  </a>

  <h1></h1>
  <a href="https://star-history.com/#oriondesign2015/SetupOrion&Date">
   <picture>
     <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date&theme=dark" />
     <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date" />
     <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=oriondesign2015/SetupOrion&type=Date" />
   </picture>
  </a>

  <h1></h1>
  <p align="center">
  Developed with ❤️ by OrionDesign
  </p>

ai_documentation_summary:
  {"purpose":"The EvolutionApi node enables integration with Evolution API v2.2+ to manage WhatsApp instances and send various types of messages (text, images, videos, audio, documents, polls, contacts, interactive buttons, PIX, and status updates) within n8n workflows.","capabilities":["Create and manage WhatsApp instances","Generate QR codes for instance setup","Fetch instance details and configuration","Set instance behavior and presence","Configure and fetch proxy settings","Disconnect WhatsApp instances","Delete instances","Send text, image, video, audio, document, poll, contact, interactive list, button, PIX, and status messages","React to messages with reactions"],"authentication":"API key required (via Evolution API credentials)","commonUseCases":["Automated WhatsApp messaging for customer support","Sending transactional messages like invoices or alerts","Managing multiple WhatsApp instances with dynamic configurations","Sending interactive messages with buttons or polls","Integrating PIX payments via WhatsApp"],"limitations":[],"relatedNodes":["WhatsApp integration nodes","Message automation nodes","Instance management nodes"]}


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-01-07 20:08:17
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-01-07T20:08:17.580Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Minio node enables integration with Minio storage by providing operations to generate pre-signed URLs for object access and upload, as well as remove objects from the Minio server.","capabilities":["Create pre-signed URLs to access objects","Create pre-signed upload URLs to upload objects","Remove objects from Minio storage"],"authentication":"API key required (Access Key and Secret Key) with Endpoint configuration","commonUseCases":["Generating temporary access links for file sharing","Enabling secure file uploads via pre-signed URLs","Automating file deletion workflows"],"limitations":[],"relatedNodes":["Storage nodes","File handling nodes"]}


node_type: n8n-nodes-zalo-tools.ZaloTools
package_name: n8n-nodes-zalo-tools
display_name: ZaloTools
description: Các node hỗ trợ Zalo cho n8n
category: Community
development_style: declarative
version: 0.5.11
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: dinhtrung1308
author_github_url: git+https://github.com/ChickenAI/zalo-node.git
npm_package_name: n8n-nodes-zalo-tools
npm_version: 0.5.11
community_fetched_at: 2026-01-07T20:08:17.581Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-zalo-tools
  Node dành riêng cho n8n này được thiết kế hoạt động hoàn toàn bên trong instance n8n của bạn. Không cần sử dụng API của bên thứ ba hay phụ thuộc ngoại vi nào — chỉ có sự tự động hóa quy trình thuần túy, đảm bảo dữ liệu của bạn luôn được giữ riêng tư và an toàn.

  Node này mô phỏng trình duyệt để tương tác trực tiếp với Zalo Web, cho phép tự động hóa liền mạch ngay trong n8n. Đây là dự án mã nguồn mở, mở rộng cơ hội cho cộng đồng cùng đóng góp ý kiến và phát triển thêm các tính năng mới, nhằm xây dựng hệ thống tự động hóa Zalo tiên tiến, hiệu quả và an toàn hơn.

  ## Buy me a coffee
  Nếu **node** này giúp bạn tiết kiệm thời gian hoặc giải quyết được vấn đề khó nhằn, hãy cân nhắc ủng hộ tôi một ☕ (Buy me a coffee) hoặc đơn giản là nhấn **★ Star** cho dự án.  
  Sự động viên nhỏ ấy sẽ tiếp thêm năng lượng để mình tiếp tục duy trì, cập nhật và phát triển thêm nhiều tính năng hữu ích hơn nữa.  
  Cám ơn bạn rất nhiều! 💛

  ![Alt text](qr.png)
  ## Tác giả
  - Dương Đình Trung - ChickenAI Team

  ## Hướng dẫn cài đặt node này:

  **Community Nodes (Khuyến nghị)**

  Đối với người dùng n8n v0.187+, bạn có thể cài đặt node này trực tiếp từ bảng Community Nodes trong trình soạn thảo n8n.

  1.  Mở trình soạn thảo n8n của bạn.
  2.  Vào Settings > Community Nodes.
  3.  Tìm kiếm "n8n-nodes-zalo-tools".
  4.  Nhấp vào Install.
  5.  Tải lại trình soạn thảo.

  **Cài đặt thủ công**

  Bạn cũng có thể cài đặt node này theo cách thủ công:

  ```
  cd YOUR_N8N_INSTALLATION_DIRECTORY
  npm install n8n-nodes-zalo-tools
  ```

  ## Available Nodes

  1. Zalo Login By QR
  Node cho phép đăng nhập vào Zalo thông qua mã QR.

  2. Zalo Group
  Node quản lý các hoạt động nhóm.
  Operations:
  createGroup: Tạo nhóm mới
  getGroupInfo: Lấy thông tin nhóm
  addGroupDeputy: Thêm phó nhóm
  addUserToGroup: Thêm thành viên
  changeGroupAvatar: Đổi avatar nhóm
  changeGroupName: Đổi tên nhóm
  getGroupMembers: Lấy danh sách thành viên
  getAllGroups: Lấy tất cả nhóm
  removeUserFromGroup: Xóa thành viên

  3. Zalo User
  Node quản lý người dùng và bạn bè.
  Operations:
  acceptFriendRequest: Chấp nhận lời mời kết bạn
  sendFriendRequest: Gửi lời mời kết bạn
  blockUser: Chặn người dùng
  unblockUser: Bỏ chặn người dùng
  changeAccountAvatar: Đổi ảnh đại diện
  changeAccountSetting: Thay đổi cài đặt tài khoản
  getUserInfo: Lấy thông tin người dùng
  getAllFriends: Lấy danh sách bạn bè
  findUser: Tìm kiếm người dùng qua số điện thoại

  4. Zalo Send Message
  Node gửi tin nhắn tới người dùng hoặc nhóm.
  Features:
  Gửi tin nhắn văn bản


  5. Zalo Message Trigger
  Node lắng nghe và xử lý các sự kiện tin nhắn.
  Events:
  Tin nhắn mới
  Tin nhắn nhóm
  Thay đổi trạng thái tin nhắn

  ## Warning and Thanks

  **Please read this carefully before using the Zalo nodes:**

  Lưu ý: việc sử dụng thư viện này đồng nghĩa với việc bạn đang làm trái với chính sách của Zalo và nó có thể khiến cho tài khoản của bạn bị vô hiệu hóa. Chúng tôi sẽ không chịu trách nhiệm nếu điều đó xảy ra, vậy nên hãy cân nhắc trước khi sử dụng.

  We would like to thank ZCA-JS for their work on this library.


  ## License

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

ai_documentation_summary:
  {"purpose":"The ZaloTools node enables seamless automation within n8n by simulating a browser to interact directly with Zalo Web, allowing users to perform actions like logging in, managing groups and users, sending messages, and triggering on message events—all without relying on external APIs or third-party services.","capabilities":["Login to Zalo via QR code","Create, manage, and modify groups (e.g., create group, add/remove members, change name/avatar)","Manage users and friends (e.g., send/friend request, block/unblock, get user info)","Send text messages to individuals or groups","Listen for message events (new messages, group messages, status changes)"],"authentication":"QR code authentication for login; no API key or OAuth required, as interactions are browser-based and simulated within n8n","commonUseCases":["Automating group management in Zalo (e.g., adding members, updating group details)","Automating friend requests or responses","Monitoring incoming messages and triggering workflows based on message content","Automating message sending for customer support or notifications"],"limitations":["Use of this node may violate Zalo's terms of service, potentially leading to account suspension. The developer does not take responsibility for such outcomes.","No support for media messages (e.g., images, files) or advanced message formatting.","Relies on browser simulation, which may be unstable or fail under network or UI changes in Zalo Web."],"relatedNodes":["Message Trigger nodes","User management nodes","Group management nodes"]}


node_type: @justbrunasso/n8n-nodes-glpi.Glpi
package_name: @justbrunasso/n8n-nodes-glpi
display_name: Glpi
description: GLPI Rest API Node compatible with GLPI 9.x and above.
category: Community
development_style: declarative
version: 2.0.2
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: justbrunasso
author_github_url: git+https://github.com/PhyBruno/n8n-nodes-glpi.git
npm_package_name: @justbrunasso/n8n-nodes-glpi
npm_version: 2.0.2
community_fetched_at: 2026-01-07T20:08:17.582Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  # n8n-nodes-glpi

  This is an n8n community node to interact with the **GLPI REST API**. It is compatible with GLPI 9.x and above.

  ## 🚀 Features

  - **Full Session Management**: Automatically handles `initSession` and passes the `Session-Token` header to all subsequent requests.
  - **Modular Resource Support**: Covers a wide range of GLPI resources including Assets, Assistance (Tickets), Administration, and Management.
  - **Flexible Operations**: Supports `Get`, `Create`, and `Update` for most resources, plus specialized operations like `Comment` for Assistance items.

  ## 📦 Installation

  1.  Go to **Settings > Community Nodes**.
  2.  Select **Install**.
  3.  Enter the package name: `@justbrunasso/n8n-nodes-glpi`.

  ## 🔑 Credentials

  Create a **GLPI API** credential in n8n with:

  - **Host**: Your GLPI URL (e.g., `https://your-glpi-instance.com/`).
  - **App-Token**: Generated in GLPI (Setup > General > API).
  - **Username**: Your GLPI username.
  - **Password**: Your GLPI password.

  ## 🛠️ Resources and Operations

  ### 1. Assistance Management (ITIL)

  - **Item Types**: `Ticket`, `Change`, `Problem`
  - **Operations**: `Get`, `Create`, `Update`, `Comment` (Add Followup), `Delete` (Purge/Trash), `Solve` (Add Solution).

  ### 2. Asset Management

  - **Item Types**: `Cable`, `Camera`, `Cartridge`, `Computer`, `Consumable`, `Enclosure`, `Monitor`, `Network Equipment`, `Passive Device`, `PDU`, `Peripheral`, `Phone`, `Printer`, `Rack`, `SIM Card`, `Software`, `Unmanaged Device`.
  - **Operations**: `Get`, `Delete` (Purge/Trash).

  ### 3. Management

  - **Item Types**: `Appliance`, `Budget`, `Certificate`, `Contact`, `Contract`, `Datacenter`, `DC Room`, `Document`, `Domain`, `Line`, `Location`, `Software License`, `Supplier`.
  - **Operations**: `Get`, `Delete`.

  ### 4. Administration Management

  - **Targets**: `User`, `Group`, `Profile`.
  - **Operations**:
    - **User**: `Get`, `Create`, `Update`, `Delete`.
    - **Group**: `Get`, `Create`, `Update`, `Delete`.
    - **Profile**: `Get`, `Update` (Limited).

  ### 5. Setup Management

  - **Item Types**: `Authorization Assignment`, `Calendar`, `Dropdown`, `Notification`, `SLA`.
  - **Operations**: `Get`, `Create`, `Update`, `Delete`.

  ### 6. Tool Management

  - **Item Types**:
    - `Project`, `Project Task`
    - `Reminder (Public)`, `RSS Feed (Public)`, `Saved Search`
    - `Knowledge Base Item`
  - **Operations**: `Get`, `Create`, `Update`, `Delete`.

  ### 7. Other Actions

  - **Custom API Call**: Perform any raw API request (GET, POST, PUT, DELETE) to any GLPI endpoint.

  ## 🚫 Out of Scope / Limitations

  The following features or operations are currently **not implemented** or **disabled** in this version:

  - **Administration Management**:
    - **Profile**: `Create` operation is not fully supported or implementation is pending.
  - **Asset Management**:
    - `Update` and `Create` operations are not implemented.
  - **Management**:
    - `Update` and `Create` operations are not implemented.
  - **General**:
    - Some specific fields for `Update` operations across various resources might not be exposed in the UI yet (use "Custom API Call" or "Raw Inputs" if available/needed).

  ## 📞 Contact

  **PhyBruno**

  - **Phone/WhatsApp**: 47 992238670

  ## 📄 License

  MIT

ai_documentation_summary:
  {"purpose":"The Glpi node enables n8n users to interact with the GLPI REST API (version 9.x and above) for managing IT assets, tickets, users, groups, profiles, and other administrative resources through automated workflows.","capabilities":["Full session management with automatic token handling","Support for GET, CREATE, UPDATE, DELETE operations across multiple GLPI resources","Specialized operations like commenting on tickets, solving issues, and managing assistance items","Management of assets (e.g., computers, printers, software), administration (users, groups, profiles), and setup (SLAs, calendars, notifications)","Custom API call support for direct requests to any GLPI endpoint"],"authentication":"API key (App-Token) required, along with username and password. The session token is automatically managed and included in requests.","commonUseCases":["Creating and updating IT service tickets (tickets, changes, problems)","Managing IT assets such as computers, printers, and network equipment","Administering users, groups, and profiles","Updating SLAs, notifications, or dropdowns in GLPI","Automating follow-ups and solutions on assistance items"],"limitations":["Profile creation is not supported (only GET, UPDATE available)","Asset update and create operations are not implemented","Management module update and create operations are not supported","Some update operations may lack field exposure in the UI; use custom API call if needed"],"relatedNodes":["n8n core nodes for data transformation and workflow control","Custom API Call node for advanced or unsupported GLPI endpoints"]}


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-01-07 20:08:17
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-01-07T20:08:17.582Z
ai_summary_generated_at: 2026-01-08 10:45:31
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":"The Tesseractjs node enables Optical Character Recognition (OCR) of text in images or PDFs using Tesseract.js, extracting recognized text and optionally detailed bounding box information with confidence scores.","capabilities":["Extracts text from images or PDFs (with individual pages processed if PDF)","Returns full text with confidence percentage in the 'Extract text' operation","Provides detailed bounding box information per block (words, lines, paragraphs) in the 'Extract boxes' operation","Supports OCR on specific regions of an image via bounding box coordinates","Allows filtering of results by minimum confidence threshold","Supports forced image resolution setting when auto-detection fails"],"authentication":"None required","commonUseCases":["Extracting text from scanned documents or invoices","Processing forms with machine-printed text","Converting PDFs into searchable text by extracting image pages","Automating data entry from image-based sources","Detecting and locating specific text regions in images"],"limitations":["Does not support handwritten text recognition","OCR accuracy depends on image quality and text clarity","Confidence values below 95 are generally considered unreliable","Performance may degrade with large or complex images","Only supports standard image formats (PNG, JPEG) and PDFs with embedded images"],"relatedNodes":["Extract from file (for direct PDF text extraction)","Image processing nodes (for preprocessing images)"]}


node_type: n8n-nodes-advanced-wsdl-creator.AdvancedWsdlCreator
package_name: n8n-nodes-advanced-wsdl-creator
display_name: AdvancedWsdlCreator
description: n8n için Advanced WSDL Creator node'u
category: Community
development_style: declarative
version: 0.1.146
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: turkdevs
author_github_url: git+https://github.com/your-username/n8n-nodes-starter-example.git
npm_package_name: n8n-nodes-advanced-wsdl-creator
npm_version: 0.1.146
community_fetched_at: 2026-01-07T20:08:17.583Z
ai_summary_generated_at: 2026-01-08 10:45:31
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # n8n-nodes-advanced-wsdl-creator

  Bu n8n community node paketi, n8n iş akışlarınızda kullanabileceğiniz özel node'lar içerir.

  Bu paket şu node'ları içerir:
  - **U_Advanced_WSDL_Creator**: N8N workflow listesinden WSDL ve proxy class oluşturur
  - **U_Schema_ContentMapper**: XML şema kullanarak content mapping yapar
  - **U_Date_Calculator**: Tarih hesaplama ve manipülasyon işlemleri

  [n8n](https://n8n.io/) [fair-code licensed](https://docs.n8n.io/reference/license/) bir iş akışı otomasyon platformudur.

  [Kurulum](#kurulum)  
  [Operasyonlar](#operasyonlar)  
  [Kimlik Doğrulama](#kimlik-doğrulama)  
  [Uyumluluk](#uyumluluk)  
  [Kullanım](#kullanım)  
  [Kaynaklar](#kaynaklar)  
  [Versiyon Geçmişi](#versiyon-geçmişi)

  ## Kurulum

  [n8n community nodes kurulum rehberini](https://docs.n8n.io/integrations/community-nodes/installation/) takip edin.

  ## Operasyonlar

  ### U_Advanced_WSDL_Creator
  - **Generate WSDL**: N8N workflow listesinden WSDL dosyası oluşturur
  - **Parametreler**: 
    - `workflowList`: N8N workflow listesi (JSON formatında)
    - `serviceNamespace`: WSDL service namespace
    - `dataContractNamespace`: Data contract namespace
    - `serviceName`: WSDL service adı
    - `portTypeName`: Port type adı
    - `soap11PortLocation`: SOAP 1.1 port location
    - `soap12PortLocation`: SOAP 1.2 port location
    - `includeSoap11Binding`: SOAP 1.1 binding dahil et
    - `includeSoap12Binding`: SOAP 1.2 binding dahil et
    - `useWrapperElement`: Wrapper element kullan

  ### U_Schema_ContentMapper
  - **Content Mapping**: XML şema kullanarak Header, Line ve Footer içeriklerini parse eder
  - **Parametreler**:
    - `schemaXml`: FileSchema XML içeriği (Header, Line, Footer bölümleri ile)
    - `headerInput`: Header içeriği
    - `lineInput`: Line içeriği (her satır bir kayıt)
    - `footerInput`: Footer içeriği
    - `output_format`: Çıktı tarih formatı

  **Özellikler**:
  - Header şeması yoksa boş string döndürür
  - Footer şeması yoksa boş string döndürür
  - StartIndex 1-based (StartIndex="1" → 2. karakterden başlar)
  - Tarih formatı dönüşümü (InputType/OutputType ile)
  - Trim desteği (Trim="True" ise başındaki 0 ve boşlukları temizler)

  ### U_Date_Calculator
  - **BeginDate & EndDate**: Başlangıç ve bitiş tarihlerini hesaplar
  - **Parametreler**:
    - `beginDateMethod`: Başlangıç tarihi için metod (string)
    - `beginDateParams`: Başlangıç tarihi parametreleri (string, key=value formatında)
    - `endDateMethod`: Bitiş tarihi için metod (string)
    - `endDateParams`: Bitiş tarihi parametreleri (string, key=value formatında)
    - `output_format`: Çıktı tarih formatı

  **Desteklenen Metodlar**:

  #### Ay Bazlı Metodlar
  - **`bu_ay_X`**: Bu ayın belirli bir gününü hesaplar
    - Parametreler: `day` (1-31), `month_offset`, `year_offset`
    - Örnek: `day=26,month_offset=0,year_offset=0` → Bu ayın 26'sı

  - **`gecen_ay_X`**: Geçen ayın belirli bir gününü hesaplar
    - Parametreler: `day` (1-31), `month_offset`, `year_offset`
    - Örnek: `day=26,month_offset=-1,year_offset=0` → Geçen ayın 26'sı

  - **`ay_basi`**: Ayın ilk gününü hesaplar
    - Parametreler: `month_offset`, `year_offset`
    - Örnek: `month_offset=1,year_offset=0` → Gelecek ayın ilk günü

  - **`ay_sonu`**: Ayın son gününü hesaplar
    - Parametreler: `month_offset`, `year_offset`
    - Örnek: `month_offset=-1,year_offset=0` → Geçen ayın son günü

  #### Tarih Bazlı Metodlar
  - **`bugun`**: Bugünün tarihini döndürür
    - Parametreler: `exclude_weekends` (true/false), `exclude_holidays` (true/false)

  - **`dun`**: Dünün tarihini döndürür
    - Parametreler: `exclude_weekends` (true/false), `exclude_holidays` (true/false)

  - **`yarin`**: Yarının tarihini döndürür
    - Parametreler: `exclude_weekends` (true/false), `exclude_holidays` (true/false)

  - **`relative_day`**: Bugüne göre ±N gün hesaplar
    - Parametreler: `offset` (örn: -7, +30), `exclude_weekends`, `exclude_holidays`
    - Örnek: `offset=-7,exclude_weekends=false` → 7 gün önce

  #### Aralık Bazlı Metodlar
  - **`last_n_days`**: Son N günün aralığını döndürür
    - Parametreler: `n` (gün sayısı)
    - Örnek: `n=7` → Son 7 gün (date_start ve date_end döner)

  - **`next_n_days`**: Önümüzdeki N günün aralığını döndürür
    - Parametreler: `n` (gün sayısı)
    - Örnek: `n=7` → Önümüzdeki 7 gün

  #### Özel Metodlar
  - **`quarter_start`**: Çeyrek başlangıcını hesaplar
    - Parametreler: `month_offset`, `year_offset`
    - Örnek: `month_offset=3,year_offset=0` → 3 çeyrek sonra

  - **`quarter_end`**: Çeyrek sonunu hesaplar
    - Parametreler: `month_offset`, `year_offset`

  - **`year_start`**: Yıl başını hesaplar
    - Parametreler: `year_offset`
    - Örnek: `year_offset=-1` → Geçen yılın başı

  - **`year_end`**: Yıl sonunu hesaplar
    - Parametreler: `year_offset`

  - **`weekday_nth`**: Belirli haftanın belirli gününü hesaplar
    - Parametreler: `week_number` (1=ilk, 2=ikinci), `weekday` (0=Pazar, 1=Pazartesi, ..., 6=Cumartesi), `month_offset`, `year_offset`
    - Örnek: `week_number=2,weekday=1,month_offset=0` → Ayın 2. Pazartesi

  **Ortak Parametreler**:
  - `day`: Gün numarası (1-31)
  - `month_offset`: Ay kaydırma (-12 ile +12)
  - `year_offset`: Yıl kaydırma
  - `n`: Gün sayısı (last_n_days, next_n_days için)
  - `offset`: Gün kaydırma (relative_day için)
  - `week_number`: Hafta numarası (weekday_nth için)
  - `weekday`: Haftanın günü (0-6, weekday_nth için)
  - `exclude_weekends`: Hafta sonlarını atla (true/false)
  - `exclude_holidays`: Tatilleri atla (true/false)
  - `output_format`: Çıktı formatı (yyyy-MM-dd, dd/MM/yyyy, dd.MM.yyyy, yyyyMMdd)

  **Çıktı Formatları**:
  - `yyyy-MM-dd` → 2024-12-27
  - `dd/MM/yyyy` → 27/12/2024
  - `dd.MM.yyyy` → 27.12.2024
  - `yyyyMMdd` → 20241227

  **Çıktı Alanları**:
  - `BeginDate`: Başlangıç tarihi
  - `EndDate`: Bitiş tarihi
  - `BeginDate_start`: Başlangıç aralığı başlangıcı (varsa)
  - `BeginDate_end`: Başlangıç aralığı bitişi (varsa)
  - `EndDate_start`: Bitiş aralığı başlangıcı (varsa)
  - `EndDate_end`: Bitiş aralığı bitişi (varsa)

  ## Kimlik Doğrulama

  Bu paket için kimlik doğrulama gerekmez. HttpBin node'u public API kullanır.

  ## Uyumluluk

  - **Minimum n8n versiyonu**: 1.0.0
  - **Test edilen versiyonlar**: 1.107.4
  - **Node.js**: >=20.15

  ## Kullanım

  1. n8n'i başlatın
  2. Yeni bir iş akışı oluşturun
  3. "Add node" butonuna tıklayın
  4. "U_Advanced_WSDL_Creator", "U_Schema_ContentMapper" veya "U_Date_Calculator" node'larını arayın
  5. Node'u iş akışınıza ekleyin ve yapılandırın

  ### U_Date_Calculator Kullanım Örneği

  **BeginDate için**:
  - Method: `bu_ay_X`
  - Params: `day=26,month_offset=0,year_offset=0`

  **EndDate için**:
  - Method: `relative_day`
  - Params: `offset=0,month_offset=0,year_offset=0`

  **Çıktı**:
  ```json
  {
    "BeginDate": "2024-12-26",
    "EndDate": "2024-12-27"
  }
  ```

  ## Kaynaklar

  * [n8n community nodes dokümantasyonu](https://docs.n8n.io/integrations/#community-nodes)
  * [n8n node geliştirme rehberi](https://docs.n8n.io/integrations/creating-nodes/)
  * [HttpBin API](https://httpbin.org/)

  ## Versiyon Geçmişi

  ### 0.1.48
  - U_Date_Calculator node'u eklendi
  - BeginDate ve EndDate hesaplama desteği
  - 15 farklı tarih hesaplama metodu
  - String parametre desteği

  ### 0.1.40+
  - U_Schema_ContentMapper node'u eklendi
  - XML şema ile content mapping
  - Header, Line, Footer parse desteği
  - Tarih formatı dönüşümü
  - Trim desteği

  ### 0.1.0
  - İlk sürüm
  - U_Advanced_WSDL_Creator node'u eklendi
  - WSDL ve proxy class oluşturma desteği

  ## Lisans

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

ai_documentation_summary:
  {"purpose":"AdvancedWsdlCreator node paketi, n8n iş akışlarında WSDL dosyası ve SOAP bağlamında proxy class oluşturmak, XML şema tabanlı içerik haritalama ve tarih hesaplama işlemleri yapmak için özel node'lar sunar.","capabilities":["WSDL dosyası oluşturmak (workflow listesinden)","XML şema kullanarak içerik haritalama (Header, Line, Footer)","Tarih hesaplama ve manipülasyon (ay, tarih, aralık, hafta, çeyrek, yıl gibi)","Tarih formatlarını dönüştürmek (örneğin yyyy-MM-dd, dd/MM/yyyy)","Trim ve başlangıç/sonuç indeks yönetimi (1-based başlangıç)"],"authentication":"Yok (kimlik doğrulama gerekmiyor)","commonUseCases":["Bir iş akışının WSDL'sini otomatik olarak üretmek","XML veri akışlarında header, line ve footer bölümlerini şema ile parse etmek","Tarih tabanlı iş akışlar için başlangıç ve bitiş tarihlerini hesaplamak","Yıllık, aylık veya haftalık raporlama için tarih aralıklarını oluşturmak"],"limitations":["Tarih hesaplamalarında tatil ve hafta sonu filtrelemesi yalnızca belirli metodlarda desteklenir","WSDL oluşturma işlemi, n8n workflow listesinin doğruluğuna ve yapıya bağlıdır","XML şema içerik haritalaması, şema içeriğinin doğru biçimde tanımlanması gereklidir"],"relatedNodes":["n8n-nodes-base","n8n-nodes-http-request","n8n-nodes-set","n8n-nodes-json"]}


node_type: n8n-nodes-docx-filler.DocxFiller
package_name: n8n-nodes-docx-filler
display_name: DocxFiller
category: Community
development_style: declarative
version: 35.0.0
properties_schema: []
operations: []
credentials_required: []
updated_at: 2026-01-07 20:08:17
author_name: rodi086
author_github_url: git+https://github.com/rokodo-io/n8n-nodes-docx-filler.git
npm_package_name: n8n-nodes-docx-filler
npm_version: 35.0.0
community_fetched_at: 2026-01-07T20:08:17.583Z
ai_summary_generated_at: 2026-01-08 10:45:31
description:
  Nodes n8n pour créer et remplir des templates DOCX/PDF avec des tags {{TAG}}. TemplateMapper (Transfer Learning DOCX) + PdfTemplateMapper (Transfer Learning PDF avec positions absolues) + DocxTemplateFiller + DocxExtractor.

npm_readme:
  # n8n-nodes-docx-filler

  Nodes n8n pour remplir automatiquement des documents DOCX avec des tags `{{TAG}}`.

  **Parfait pour:** Contrats, factures, devis, formulaires, lettres, ou tout document avec des champs a remplir.

  ## Les 2 Nodes

  | Node | Role | LLM requis |
  |------|------|------------|
  | **Template Mapper** | Analyse un document vierge et insere les tags `{{TAG}}` via IA | Oui |
  | **DOCX Template Filler** | Remplit les tags avec les valeurs JSON | Non |

  ---

  ## Installation

  ```bash
  # Dans votre installation n8n
  npm install n8n-nodes-docx-filler

  # Ou en mode developpement
  cd ~/.n8n/custom
  git clone https://github.com/rokodo-io/n8n-nodes-docx-filler
  cd n8n-nodes-docx-filler
  npm install && npm run build
  # Redemarrer n8n
  ```

  ---

  ## Workflow Complet

  ```
  ETAPE 1: Creer le template (une seule fois par type de document)

    Document vierge ─────┐
    (ex: contrat.docx)   │
                         ├──► Template Mapper ──► Template avec {{TAGS}}
    Structure JSON ──────┘    + LLM              + dataStructure exacte
    (champs a remplir)


  ETAPE 2: Remplir le template (a chaque utilisation)

    Template avec tags ─────┐
    (ex: contrat_TEMPLATE)  │
                            ├──► DOCX Template Filler ──► Document rempli
    Donnees JSON ───────────┘
    (valeurs reelles)
  ```

  ---

  ## Node 1: Template Mapper

  Analyse un document vierge et une structure JSON, puis utilise l'IA pour placer les tags `{{TAG}}` aux bons emplacements.

  ### Configuration

  | Parametre | Description |
  |-----------|-------------|
  | **Document Vierge** | Propriete binaire contenant le DOCX a analyser |
  | **Structure de Donnees** | JSON decrivant les champs a placer |
  | **LLM (requis)** | Modele IA pour deduire les emplacements |

  ### Options

  | Option | Description |
  |--------|-------------|
  | Seuil de Confiance | Score minimum (0-100) pour inserer un tag |
  | Nom Fichier Sortie | Nom du template genere |
  | Inclure Details | Affiche les scores de confiance (debug) |

  ### Exemple

  **Entree:**
  ```json
  {
    "client": {
      "nom": "",
      "email": "",
      "telephone": ""
    },
    "commande": {
      "numero": "",
      "date": "",
      "montant": ""
    }
  }
  ```

  **Sortie:**
  - Document DOCX avec tags: `{{CLIENT_NOM}}`, `{{CLIENT_EMAIL}}`, `{{COMMANDE_NUMERO}}`, etc.
  - `dataStructure` pour DocxTemplateFiller:
  ```json
  {
    "dataStructure": {
      "CLIENT_NOM": "",
      "CLIENT_EMAIL": "",
      "CLIENT_TELEPHONE": "",
      "COMMANDE_NUMERO": "",
      "COMMANDE_DATE": "",
      "COMMANDE_MONTANT": ""
    }
  }
  ```

  ---

  ## Node 2: DOCX Template Filler

  Remplit un document DOCX contenant des tags `{{TAG}}` avec des donnees JSON.

  ### Configuration

  | Parametre | Description |
  |-----------|-------------|
  | **Document Template** | Propriete binaire contenant le DOCX avec tags |
  | **Source des Donnees** | JSON complet ou champ specifique |

  ### Options

  | Option | Description |
  |--------|-------------|
  | Style Checkboxes | Unicode, Texte (X), ou Boolean |
  | Nom Fichier Sortie | Nom du document genere |
  | Conserver Tags Vides | Garder les `{{TAG}}` sans valeur |
  | Rapport de Mapping | Liste des tags remplaces/restants |

  ### Exemple

  **Entree:**
  ```json
  {
    "client": {
      "nom": "Marie Dupont",
      "email": "marie@example.com",
      "telephone": "+33 6 12 34 56 78"
    },
    "commande": {
      "numero": "CMD-2024-001",
      "date": "30/12/2024",
      "montant": "1 250,00 EUR"
    }
  }
  ```

  **Sortie:**
  - Document DOCX avec les valeurs inserees
  - Rapport:
  ```json
  {
    "success": true,
    "report": {
      "tagsReplaced": 6,
      "tagsRemaining": 0,
      "replacedTags": ["CLIENT_NOM", "CLIENT_EMAIL", "CLIENT_TELEPHONE", "COMMANDE_NUMERO", "COMMANDE_DATE", "COMMANDE_MONTANT"]
    }
  }
  ```

  ---

  ## Conversion JSON vers Tags

  Les cles JSON sont automatiquement converties en tags majuscules:

  | Structure JSON | Tag genere |
  |----------------|------------|
  | `client.nom` | `{{CLIENT_NOM}}` |
  | `client.email` | `{{CLIENT_EMAIL}}` |
  | `adresse.rue` | `{{ADRESSE_RUE}}` |
  | `produit.prix_unitaire` | `{{PRODUIT_PRIX_UNITAIRE}}` |
  | `date_livraison` | `{{DATE_LIVRAISON}}` |

  ### Valeurs booleennes

  Les booleens sont automatiquement convertis en checkboxes:

  | JSON | Resultat (Unicode) | Resultat (Texte) |
  |------|-------------------|------------------|
  | `true` | ☑ | X |
  | `false` | ☐ | (espace) |

  ---

  ## Exemple complet

  ### 1. Structure de donnees pour Template Mapper

  ```json
  {
    "societe": {
      "nom": "",
      "adresse": "",
      "siret": ""
    },
    "client": {
      "nom": "",
      "prenom": "",
      "email": "",
      "adresse": ""
    },
    "devis": {
      "numero": "",
      "date": "",
      "validite": "",
      "montant_ht": "",
      "tva": "",
      "montant_ttc": ""
    },
    "conditions": {
      "paiement_30j": false,
      "paiement_comptant": false,
      "livraison_incluse": false
    },
    "signature": {
      "lieu": "",
      "date": ""
    }
  }
  ```

  ### 2. Tags generes dans le document

  ```
  {{SOCIETE_NOM}}, {{SOCIETE_ADRESSE}}, {{SOCIETE_SIRET}}
  {{CLIENT_NOM}}, {{CLIENT_PRENOM}}, {{CLIENT_EMAIL}}, {{CLIENT_ADRESSE}}
  {{DEVIS_NUMERO}}, {{DEVIS_DATE}}, {{DEVIS_VALIDITE}}
  {{DEVIS_MONTANT_HT}}, {{DEVIS_TVA}}, {{DEVIS_MONTANT_TTC}}
  {{CONDITIONS_PAIEMENT_30J}}, {{CONDITIONS_PAIEMENT_COMPTANT}}, {{CONDITIONS_LIVRAISON_INCLUSE}}
  {{SIGNATURE_LIEU}}, {{SIGNATURE_DATE}}
  ```

  ### 3. Donnees pour remplir le template

  ```json
  {
    "societe": {
      "nom": "TechCorp SAS",
      "adresse": "45 avenue des Champs, 75008 Paris",
      "siret": "123 456 789 00012"
    },
    "client": {
      "nom": "Martin",
      "prenom": "Jean",
      "email": "jean.martin@email.com",
      "adresse": "12 rue de la Paix, 69001 Lyon"
    },
    "devis": {
      "numero": "DEV-2024-0042",
      "date": "30/12/2024",
      "validite": "30 jours",
      "montant_ht": "5 000,00",
      "tva": "1 000,00",
      "montant_ttc": "6 000,00"
    },
    "conditions": {
      "paiement_30j": true,
      "paiement_comptant": false,
      "livraison_incluse": true
    },
    "signature": {
      "lieu": "Paris",
      "date": "30/12/2024"
    }
  }
  ```

  ---

  ## LLM supportes

  Template Mapper fonctionne avec tous les LLM de n8n:

  - **OpenAI** (GPT-4, GPT-4o, GPT-3.5)
  - **Anthropic** (Claude 3, Claude 3.5)
  - **Ollama** (Llama, Mistral, Qwen - local et gratuit)
  - **Azure OpenAI**
  - **Google Gemini**
  - **Mistral AI**

  ---

  ## Architecture Technique Detaillee

  ### Vue d'ensemble des deux noeuds

  ```
  ┌─────────────────────────────────────────────────────────────────────────────┐
  │                           TEMPLATE MAPPER                                    │
  │  (Utilise l'IA - Transfer Learning)                                         │
  │                                                                              │
  │  Document Cible (sans tags) ──┐                                             │
  │                               ├──► Segmentation ──► Prompts LLM ──► Tags    │
  │  Template Reference (avec tags) ─┘   par section     par segment    inseres │
  └─────────────────────────────────────────────────────────────────────────────┘
                                          │
                                          ▼
  ┌─────────────────────────────────────────────────────────────────────────────┐
  │                         DOCX TEMPLATE FILLER                                 │
  │  (PAS d'IA - Remplacement direct)                                           │
  │                                                                              │
  │  Document avec {{TAGS}} ──┐                                                 │
  │                           ├──► Flatten JSON ──► Replace Tags ──► Document   │
  │  Donnees JSON ────────────┘   CLIENT_NOM       {{TAG}}→valeur     rempli   │
  └─────────────────────────────────────────────────────────────────────────────┘
  ```

  ### Concept de Segmentation (Decoupage de Session)

  Le **Template Mapper** utilise un systeme de **segmentation** pour ameliorer la precision du matching IA. Voici comment ca fonctionne:

  #### Probleme sans segmentation

  Sans segmentation, le LLM recoit tout le document en une seule fois:
  - **Prompts trop volumineux**: Risque d'erreur HTTP 413 (Request Entity Too Large)
  - **Confusions entre sections**: L'IA peut confondre des sections similaires (ex: plusieurs tableaux)
  - **Moins de precision**: Plus le contexte est grand, moins l'IA est precise

  #### Solution: La segmentation

  ```
  ┌──────────────────────────────────────────────────────────────────────────┐
  │                     FLUX DE SEGMENTATION                                  │
  ├──────────────────────────────────────────────────────────────────────────┤
  │                                                                          │
  │  1. SEGMENTER les documents                                              │
  │     Template:  [Section A] [Tableau CA] [Section B] [Signature]          │
  │     Cible:     [Section A'] [Tableau CA'] [Section B'] [Signature']      │
  │                                                                          │
  │  2. MATCHER les segments (template ↔ cible)                              │
  │     Section A ←→ Section A' (score: 85%)                                 │
  │     Tableau CA ←→ Tableau CA' (score: 92%)                               │
  │     etc.                                                                  │
  │                                                                          │
  │  3. GENERER un prompt CIBLE par paire de segments                        │
  │     Prompt segment CA: "Tu as les tags CA_N, CA_N1... dans ce tableau"   │
  │     → L'IA ne traite QUE ce segment, pas tout le document                │
  │                                                                          │
  │  4. COMBINER les resultats de tous les segments                          │
  │     Matches totaux = Matches(A) + Matches(CA) + Matches(B) + ...         │
  │                                                                          │
  └──────────────────────────────────────────────────────────────────────────┘
  ```

  #### Modes de segmentation disponibles

  | Mode | Comportement |
  |------|-------------|
  | **auto** (defaut) | Active la segmentation si: document > 50KB OU > 10 tags OU tags repartis sur 3+ sections |
  | **always** | Force la segmentation. Recommande pour les tableaux financiers (CA) |
  | **never** | Desactive la segmentation. Utilise le prompt global |

  #### Code concerne

  ```typescript
  // Dans TemplateMapper.node.ts ligne 352-356
  const useSegmentation = decideSegmentationMode(
    params.useSegmentation,  // 'auto' | 'always' | 'never'
    templateXml,
    extractedTags
  );
  ```

  ### Approche Few-Shot Learning (v3.0)

  Le systeme utilise maintenant une approche **Few-Shot Learning** pour que l'IA "consomme" vraiment la logique:

  ```
  ┌─────────────────────────────────────────────────────────────────────────────┐
  │                    AVANT vs APRES                                            │
  ├─────────────────────────────────────────────────────────────────────────────┤
  │                                                                              │
  │  AVANT (regles abstraites):                                                 │
  │  ┌────────────────────────────────────────────────────────────┐             │
  │  │ "REGLE 1: Les tags d'identification doivent etre places   │             │
  │  │  APRES le label correspondant..."                          │             │
  │  │ → L'IA IGNORE souvent ces regles                           │             │
  │  └────────────────────────────────────────────────────────────┘             │
  │                                                                              │
  │  APRES (exemples concrets):                                                 │
  │  ┌────────────────────────────────────────────────────────────┐             │
  │  │ "### Tag: {{NOM_COMMERCIAL}}                               │             │
  │  │  - Contexte template: 'Nom commercial :'                   │             │
  │  │  - Candidat cible: idx=15 ('Nom commercial :...')"         │             │
  │  │ → L'IA COMPREND par l'exemple                              │             │
  │  └────────────────────────────────────────────────────────────┘             │
  │                                                                              │
  └─────────────────────────────────────────────────────────────────────────────┘
  ```

  #### Principe du Few-Shot Learning

  1. **Montrer, pas expliquer**: Chaque tag est presente avec son contexte reel
  2. **Pre-calcul des candidats**: Le systeme trouve les candidats probables AVANT d'appeler l'IA
  3. **Format JSON strict**: L'IA voit le format exact attendu dans le prompt
  4. **Validation robuste**: Parsing multi-strategies avec logs detailles

  #### Fichiers modifies (v3.0)

  | Fichier | Changement |
  |---------|------------|
  | `prompt.service.ts` | Nouvelle fonction `buildFewShotExamples()` |
  | `segment-matcher.service.ts` | Prompt Few-Shot par segment |
  | `llm.service.ts` | Parsing robuste avec logs detailles |

  ### Pourquoi l'IA peut ne pas "consommer la logique"

  Il y a plusieurs raisons pour lesquelles le LLM peut ne pas retourner de matches valides:

  #### 1. Le LLM ne retourne aucun match valide

  ```typescript
  // Dans llm.service.ts ligne 128-139
  return parsed.matches.filter((match) => {
    return (
      match.confidence >= 0.7 &&           // ❌ Confiance trop basse
      match.tag &&                          // ❌ Tag absent
      (match.targetParagraphIndex !== undefined || match.targetIdx !== undefined)
    );
  });
  ```

  **Cause**: L'IA retourne des matches avec `confidence < 0.7` → ils sont filtres.

  #### 2. Reponse JSON invalide du LLM

  ```typescript
  // Dans llm.service.ts ligne 149-153
  } catch {
    // En cas d'erreur de parsing, retourner une liste vide
    return [];
  }
  ```

  **Cause**: Le LLM retourne du texte non-JSON ou du JSON mal forme.

  #### 3. Fallback automatique vers pattern matching

  ```typescript
  // Dans TemplateMapper.node.ts ligne 424-435
  if (matches.length === 0) {
    console.log('⚠️ LLM n\'a retourne aucun match, fallback vers matching par patterns...');
    matches = patternBasedMatching(tagContexts, targetParagraphs);
    patternFallbackUsed = true;
  }
  ```

  **Cause**: Si l'IA echoue, le systeme utilise un matching par patterns (regex/similarite textuelle) comme secours.

  #### 4. Limites de taille des prompts

  ```typescript
  // Dans prompt.service.ts lignes 46-48
  const MAX_PROMPT_SIZE = 60000;    // 60KB max
  const MAX_PARAGRAPHS = 80;        // Max paragraphes envoyes au LLM
  const MAX_TAG_CONTEXTS = 40;      // Max contextes de tags
  ```

  **Cause**: Si le document depasse ces limites, des informations sont tronquees et l'IA peut manquer des correspondances.

  #### 5. Qualite du modele LLM connecte

  | Modele | Precision attendue | Recommandation |
  |--------|-------------------|----------------|
  | **GPT-4, GPT-4o** | Haute | Recommande |
  | **Claude 3.5 Sonnet, Opus** | Haute | Recommande |
  | **Gemini Pro** | Moyenne-Haute | OK |
  | **Mistral Large** | Moyenne | OK pour documents simples |
  | **Ollama (local)** | Variable | Depend du modele |
  | **GPT-3.5** | Basse | Non recommande |

  ### Flux complet d'execution du Template Mapper

  ```
  1. Charger les documents
     ├── Document cible (binaire → XML)
     └── Template reference (binaire → XML)

  2. Extraire les tags du template
     └── Regex: /\{\{([A-Z][A-Z0-9_]*)\}\}/g

  3. Extraire les contextes (labelBefore, section, type)
     └── Pour chaque tag: quel texte le precede?

  4. DECISION: Segmentation ou Global?
     ├── Si 'always' ou criteres auto remplis → MODE SEGMENTE
     │   ├── Segmenter template et cible
     │   ├── Matcher les segments
     │   ├── Pour chaque paire:
     │   │   ├── Generer prompt cible
     │   │   ├── Appeler LLM
     │   │   └── Parser reponse
     │   └── Combiner resultats
     │
     └── Sinon → MODE GLOBAL
         ├── Generer prompt unique (tout le document)
         ├── Appeler LLM
         └── Parser reponse

  5. FALLBACK si aucun match
     └── patternBasedMatching (regex + similarite)

  6. Appliquer les tags au document cible
     ├── Pour chaque match:
     │   ├── Trouver le paragraphe XML
     │   ├── Inserer {{TAG}} selon insertionPoint
     │   └── Valider le XML
     └── Generer le document final

  7. Retourner
     ├── Document DOCX tagge (binaire)
     ├── dataStructure (JSON pour DocxTemplateFiller)
     └── Statistiques (tags appliques, echecs)
  ```

  ### Points d'insertion des tags (insertionPoint)

  | Type | Description | Exemple |
  |------|-------------|---------|
  | **after_colon** | Apres un label finissant par ":" | `Nom commercial :` → `Nom commercial : {{NOM}}` |
  | **table_cell** | Dans une cellule de tableau | Cellule vide → `{{CA_N}}` |
  | **replace_empty** | Remplace un paragraphe vide | `<w:p/>` → `<w:p>{{TAG}}</w:p>` |
  | **inline** | Dans le texte existant | `Le montant est X` → `Le montant est {{MONTANT}}` |
  | **checkbox** | Case a cocher | `☐` → `☑` ou `☐` selon valeur |

  ---

  ## Support des Checkboxes

  Le systeme detecte et mappe automatiquement les cases a cocher entre le template et le document cible.

  ### Formats supportes

  | Format | Detection | Exemple |
  |--------|-----------|---------|
  | **Unicode** | ☑ ☐ □ ✓ ✔ | `☐ Oui  ☑ Non` |
  | **Word Form Controls** | FORMCHECKBOX | Controles de formulaire Word |

  ### Fonctionnement

  ```
  ┌─────────────────────────────────────────────────────────────────────┐
  │                 MAPPING DES CHECKBOXES                              │
  ├─────────────────────────────────────────────────────────────────────┤
  │                                                                     │
  │  TEMPLATE                          CIBLE                            │
  │  ┌─────────────────────┐           ┌─────────────────────┐          │
  │  │ ☐ Candidat seul     │    →      │ FORMCHECKBOX seul   │          │
  │  │ ☑ Groupement        │    →      │ FORMCHECKBOX group. │          │
  │  │ ☐ Oui  ☑ Non        │    →      │ FORMCHECKBOX Oui/Non│          │
  │  └─────────────────────┘           └─────────────────────┘          │
  │                                                                     │
  │  Le systeme:                                                        │
  │  1. Detecte les checkboxes dans les deux documents                  │
  │  2. Extrait leur etat (coche/non coche)                            │
  │  3. Trouve les correspondances par similarite semantique            │
  │  4. Genere des tags booleens                                        │
  │                                                                     │
  └─────────────────────────────────────────────────────────────────────┘
  ```

  ### Sortie JSON

  Les checkboxes sont incluses dans la sortie:

  ```json
  {
    "checkboxes": {
      "templateCount": 7,
      "targetCount": 7,
      "pairsDetected": 1,
      "tags": {
        "LE_CANDIDAT_SE_PRESENTE_SEUL": false,
        "GROUPEMENT_CONJOINT": true,
        "QUESTION_OUI_NON": false
      }
    }
  }
  ```

  ### Paires Oui/Non

  Le systeme detecte automatiquement les paires de checkboxes Oui/Non:

  ```
  Template:  ☐ Oui  ☑ Non   →   Tag: {{QUESTION}} = false
  Template:  ☑ Oui  ☐ Non   →   Tag: {{QUESTION}} = true
  ```

  ---

  ## Troubleshooting

  ### Les tags ne sont pas remplaces
  - Format attendu: `{{TAG_NAME}}` (double accolades, majuscules, underscores)
  - Verifiez que les cles JSON correspondent aux tags du document
  - Utilisez le rapport de mapping pour voir les tags restants

  ### Template Mapper n'insere pas tous les tags
  - Baissez le seuil de confiance (par defaut: 70)
  - Verifiez que les noms de champs sont semantiquement clairs
  - Activez "Inclure Details" pour voir les scores de confiance

  ### Document corrompu
  - Verifiez que les fichiers source sont des DOCX valides
  - N'utilisez pas de fichiers DOC (ancien format)

  ### Caracteres speciaux
  - Les caracteres `<`, `>`, `&` sont automatiquement echappes
  - Les accents et emojis sont supportes

  ---

  ---

  ## Node 3: DOCX Direct Filler

  Remplit directement un document DOCX **vierge** (sans tags) en utilisant l'IA avec **auto-réflexion** (ReAct).

  **Parfait pour:** Formulaires administratifs (DC1, DC2, AE), documents où l'insertion de tags est impossible ou fastidieuse.

  ### Architecture ReAct (comme Claude Code)

  ```
  ┌─────────────────────────────────────────────────────────────────────────────┐
  │                    DOCX DIRECT FILLER v6.1 - Auto-réflexion                  │
  ├─────────────────────────────────────────────────────────────────────────────┤
  │                                                                              │
  │  1. ANALYSE - L'IA analyse le document et identifie les champs              │
  │     └─ Extraction des paragraphes, tableaux, checkboxes                      │
  │                                                                              │
  │  2. MAPPING avec RAISONNEMENT - Pour chaque champ:                           │
  │     ├─ L'IA raisonne étape par étape (thinking)                              │
  │     ├─ Propose une correspondance avec score de confiance                    │
  │     └─ Si confiance < 70%, déclenche une vérification                        │
  │                                                                              │
  │  3. VÉRIFICATION - Auto-correction si doute                                  │
  │     ├─ L'IA re-vérifie sa proposition                                        │
  │     └─ Si échec → nouvelle tentative (max 3 retries)                         │
  │                                                                              │
  │  4. INSERTION - Placement déterministe après validation                      │
  │     └─ Insertion XML directe (pas d'estimation de position)                  │
  │                                                                              │
  └─────────────────────────────────────────────────────────────────────────────┘
  ```

  ### Configuration

  | Paramètre | Description |
  |-----------|-------------|
  | **Mode** | `Remplir le document` ou `Injecter des tags` |
  | **Document DOCX** | Nom du champ binaire contenant le DOCX |
  | **Données à remplir** | JSON avec fields, checkboxes et tables |
  | **LLM (requis)** | Modèle IA connecté au port "Model" |

  ### Options

  | Option | Description | Défaut |
  |--------|-------------|--------|
  | Nom fichier sortie | Nom du DOCX généré | `nom_original_filled.docx` |
  | Mode Debug | Logs détaillés avec reasoning | false |

  ---

  ### Exemple complet - Formulaire DC2

  #### Données à remplir (`fillData`)

  ```json
  {
    "fields": {
      "Nom commercial et dénomination sociale": "Rokodo SAS",
      "Adresses postale": "13 rue Camille Desmoulins, 92130 Issy-les-Moulineaux",
      "Adresse électronique": "contact@rokodo.io",
      "Numéros de téléphone": "+33 6 89 09 33 41",
      "Numéro SIRET": "123 456 789 00012",
      "Forme juridique": "Société par Actions Simplifiée (SAS)"
    },
    "checkboxes": {
      "Oui": true,
      "Non": false
    },
    "tables": [
      {
        "identifier": "Chiffres d'affaires",
        "cells": [
          {"row": 1, "col": 1, "value": "1 500 000 €"},
          {"row": 1, "col": 2, "value": "1 800 000 €"},
          {"row": 1, "col": 3, "value": "2 100 000 €"}
        ]
      }
    ]
  }
  ```

  #### Structure des données

  | Section | Clé | Description |
  |---------|-----|-------------|
  | `fields` | Label du document → Valeur | Champs texte. L'IA trouve le paragraphe correspondant |
  | `checkboxes` | Label → true/false | Cases à cocher. Cherche le texte près de la checkbox |
  | `tables` | identifier + cells | Tableaux. identifier = texte pour trouver le tableau |

  #### Résultat du test (DC2.docx)

  ```
  📊 RÉSULTATS
     Success: ✅
     Fields inserted: 5
     Checkboxes checked: 1
     LLM calls: 5
     Retries: 0
     Duration: 21.60s

  📋 Mappings:
     - Nom commercial et dénomination sociale → P46 (confidence: 95%)
     - Adresse électronique → P52 (confidence: 95%)
     - Numéros de téléphone → P55 (confidence: 95%)
     - Numéro SIRET → P58 (confidence: 95%)
     - Forme juridique → P61 (confidence: 90%)
  ```

  #### Sortie JSON

  ```json
  {
    "success": true,
    "mode": "fill",
    "stats": {
      "fieldsInserted": 5,
      "checkboxesChecked": 1,
      "tableCellsFilled": 0,
      "llmCalls": 5,
      "duration": 21.60,
      "retries": 0
    },
    "mappings": [
      {
        "field": "Nom commercial et dénomination sociale",
        "value": "Rokodo SAS",
        "paragraphIndex": 46,
        "insertType": "inline",
        "confidence": 0.95,
        "verified": true
      }
    ],
    "reasoning": [
      "🚀 Démarrage du remplissage intelligent avec auto-réflexion",
      "📄 Document analysé: 334 paragraphes, 12 tableaux",
      "📝 Traitement de 5 champs texte...",
      "✅ \"Nom commercial\" → P46 (confiance: 95%)",
      "✅ \"Adresse électronique\" → P52 (confiance: 95%)"
    ]
  }
  ```

  ---

  ### Mode Injection de Tags

  Ce mode permet de créer un template réutilisable en injectant des tags `{{PLACEHOLDER}}`.

  #### Tags à injecter (`tagData`)

  ```json
  {
    "fields": {
      "Nom commercial et dénomination sociale": "{{NOM_COMMERCIAL}}",
      "Adresse électronique": "{{EMAIL}}",
      "Numéro SIRET": "{{SIRET}}"
    },
    "checkboxes": {
      "Oui": "{{PME_OUI}}",
      "Non": "{{PME_NON}}"
    }
  }
  ```

  Le document généré contiendra des tags `{{TAG}}` que vous pourrez remplir avec le **DOCX Template Filler**.

  ---

  ### Différences avec Template Mapper + Filler

  | Aspect | Template Mapper + Filler | DOCX Direct Filler |
  |--------|--------------------------|---------------------|
  | **Étapes** | 2 (création template + remplissage) | 1 (remplissage direct) |
  | **Réutilisabilité** | Template réutilisable | Chaque doc est traité individuellement |
  | **Appels LLM** | 1 par template | 1-3 par champ |
  | **Précision** | ~95% (tags explicites) | ~98% (vérification IA) |
  | **Meilleur pour** | Documents standardisés, volume élevé | Documents uniques, formulaires complexes |

  ---

  ## Node 4: PDF Template Mapper

  Analyse un PDF et remplit automatiquement les champs détectés en utilisant l'IA (ReAct Agent).

  **Parfait pour:** Formulaires administratifs (DC1, DC2), CERFA, documents PDF avec zones de saisie.

  ### Configuration

  | Paramètre | Description |
  |-----------|-------------|
  | **Document PDF** | Nom du champ binaire contenant le PDF |
  | **Page à analyser** | Numéro de la page où placer les données |
  | **Données à remplir** | JSON avec les valeurs à insérer |
  | **Configuration des champs** | JSON optionnel pour définir la détection des champs |
  | **LLM (requis)** | Modèle IA connecté au port "Model" |

  ### Options

  | Option | Description | Défaut |
  |--------|-------------|--------|
  | Nom fichier sortie | Nom du PDF généré | `nom_original_filled.pdf` |
  | Taille de police | Taille du texte inséré (pts) | 9 |
  | Mode Debug | Logs détaillés | false |

  ---

  ## Structure des Données - PDF Template Mapper

  ### 1. Données à remplir (`fillData`)

  Le JSON contient les valeurs à insérer dans le PDF.

  ```json
  {
    "NOM_COMMERCIAL": "Rokodo.io",
    "ADRESSE": "13 rue Camille Desmoulins 92130 Issy les Moulineaux",
    "EMAIL": "minhtuan.nguyen@rokodo.io",
    "TELEPHONE": "+33 (0) 6 89 09 33 41",
    "SIRET": "123 456 789 00012",
    "CANDIDAT_SEUL": true
  }
  ```

  #### Types de valeurs supportés

  | Type | Format | Exemple | Comportement |
  |------|--------|---------|--------------|
  | **Texte** | `"string"` | `"Ma Société"` | Texte inséré à la position détectée |
  | **Checkbox** | `true` ou `false` | `true` | Coche/décoche la case correspondante |

  #### Règles importantes

  1. **Texte vide** = champ ignoré (`"NOM": ""` → pas de remplissage)
  2. **Checkbox false** = case non cochée (mais pas modifiée)
  3. **Checkbox true** = case cochée (nécessite `fieldConfig` pour détecter le label)

  ---

  ### 2. Configuration des champs (`fieldConfig`)

  Définit **COMMENT** détecter chaque champ dans le PDF.

  ```json
  {
    "NOM_DU_CHAMP": {
      "labels": ["Texte à chercher dans le PDF", "Variante du texte"],
      "type": "inline | multiline | checkbox",
      "minGap": 15
    }
  }
  ```

  #### Propriétés

  | Propriété | Obligatoire | Description |
  |-----------|-------------|-------------|
  | `labels` | ✓ | Liste de textes à chercher dans le PDF pour localiser le champ |
  | `type` | ✓ | Type de placement (voir ci-dessous) |
  | `minGap` | ✗ | Gap minimum en points pour les champs multiline (défaut: 0) |

  #### Types de champs

  | Type | Utilisation | Placement |
  |------|-------------|-----------|
  | `inline` | Email, téléphone | Après le ":" sur la **même ligne** que le label |
  | `multiline` | Nom, adresse, SIRET | Dans un **espace vide sous** le label |
  | `checkbox` | Cases à cocher | Sur la **case à cocher** associée au label |

  ---

  ### 3. Champs prédéfinis (configuration par défaut)

  Ces champs fonctionnent **sans** `fieldConfig` :

  | Nom du champ | Labels recherchés | Type |
  |--------------|-------------------|------|
  | `NOM_COMMERCIAL` | "Nom commercial et dénomination", "Nom commercial" | multiline |
  | `ADRESSE` | "Adresses postale", "Adressespostale", "Adresse postale" | multiline |
  | `EMAIL` | "Adresse électronique" | inline |
  | `TELEPHONE` | "Numéros de téléphone", "Numéro de téléphone" | inline |
  | `SIRET` | "Numéro SIRET" | multiline |

  #### Exemple sans fieldConfig (champs prédéfinis)

  ```json
  // Données à remplir - suffisant pour les champs prédéfinis
  {
    "NOM_COMMERCIAL": "Rokodo.io",
    "EMAIL": "contact@rokodo.io",
    "SIRET": "123 456 789 00012"
  }

  // Configuration des champs - laisser vide {}
  {}
  ```

  ---

  ### 4. Quand utiliser `fieldConfig` ?

  #### CAS 1: Checkbox → **OBLIGATOIRE**

  Les checkboxes ne sont **PAS** dans la config par défaut.

  ```json
  // Données à remplir
  {
    "CANDIDAT_SEUL": true,
    "GROUPEMENT": false
  }

  // Configuration des champs - OBLIGATOIRE pour les checkbox
  {
    "CANDIDAT_SEUL": {
      "labels": ["Le candidat se présente seul"],
      "type": "checkbox"
    },
    "GROUPEMENT": {
      "labels": ["Groupement conjoint", "Membre d'un groupement"],
      "type": "checkbox"
    }
  }
  ```

  #### CAS 2: Champ personnalisé → **OBLIGATOIRE**

  Pour un champ qui n'est pas prédéfini.

  ```json
  // Données à remplir
  {
    "CODE_APE": "6201Z",
    "CAPITAL_SOCIAL": "50 000 €"
  }

  // Configuration des champs - OBLIGATOIRE pour les champs personnalisés
  {
    "CODE_APE": {
      "labels": ["Code APE", "Code NAF"],
      "type": "inline"
    },
    "CAPITAL_SOCIAL": {
      "labels": ["Capital social"],
      "type": "multiline",
      "minGap": 20
    }
  }
  ```

  #### CAS 3: Surcharger un champ prédéfini → **OPTIONNEL**

  Pour utiliser un label différent de celui par défaut.

  ```json
  // Configuration - surcharge le label EMAIL
  {
    "EMAIL": {
      "labels": ["Courriel", "Mail professionnel"],
      "type": "inline"
    }
  }
  ```

  ---

  ### 5. Exemple complet DC1/DC2

  #### Données à remplir (`fillData`)

  ```json
  {
    "NOM_COMMERCIAL": "Rokodo.io",
    "ADRESSE": "13 rue Camille Desmoulins 92130 Issy les Moulineaux",
    "EMAIL": "minhtuan.nguyen@rokodo.io",
    "TELEPHONE": "+33 (0) 6 89 09 33 41",
    "SIRET": "123 456 789 00012",
    "CANDIDAT_SEUL": true,
    "GROUPEMENT_CONJOINT": false,
    "PME": true
  }
  ```

  #### Configuration des champs (`fieldConfig`)

  ```json
  {
    "CANDIDAT_SEUL": {
      "labels": ["Le candidat se présente seul", "candidat individuel seul"],
      "type": "checkbox"
    },
    "GROUPEMENT_CONJOINT": {
      "labels": ["Groupement conjoint", "membre d'un groupement conjoint"],
      "type": "checkbox"
    },
    "PME": {
      "labels": ["petite ou une moyenne entreprise", "PME"],
      "type": "checkbox"
    }
  }
  ```

  > **Note:** Les champs texte (NOM_COMMERCIAL, ADRESSE, etc.) utilisent la config par défaut.
  > Seules les checkboxes nécessitent une configuration explicite.

  ---

  ### 6. Résumé - Quand configurer quoi ?

  | Situation | `fillData` | `fieldConfig` |
  |-----------|------------|---------------|
  | Champ texte prédéfini (EMAIL, SIRET...) | Valeur string | `{}` (vide) |
  | Champ texte personnalisé | Valeur string | **Obligatoire** avec labels et type |
  | Checkbox | `true` ou `false` | **Obligatoire** avec labels et `"type": "checkbox"` |
  | Surcharger label par défaut | Valeur string | Optionnel |

  ---

  ### 7. Erreurs courantes

  | Erreur | Cause | Solution |
  |--------|-------|----------|
  | Checkbox non cochée | `fieldConfig` absent | Ajouter la config avec `"type": "checkbox"` |
  | Texte mal positionné | Mauvais label dans config | Vérifier le texte exact dans le PDF |
  | Champ non trouvé | Label pas dans le PDF | Ajuster les labels ou vérifier la page |
  | Collision de texte | Position déjà occupée | L'agent corrige automatiquement |

  ---

  ### 8. Sortie du node

  ```json
  {
    "success": true,
    "mode": "react_agent_llm",
    "iterations": 2,
    "satisfaction": 100,
    "placements": [
      { "field": "NOM_COMMERCIAL", "value": "Rokodo.io", "type": "text", "page": 2, "x": 71, "y": 588 },
      { "field": "EMAIL", "value": "minhtuan.nguyen@roko...", "type": "text", "page": 2, "x": 187, "y": 533 }
    ],
    "checkboxes": [
      { "field": "CANDIDAT_SEUL", "checked": true, "type": "checkbox" }
    ],
    "stats": {
      "fieldsRequested": 6,
      "textFieldsPlaced": 5,
      "checkboxesPlaced": 1,
      "autoCorrections": 0
    }
  }
  ```

  ---

  ## Licence

  MIT - Rokodo.io

ai_documentation_summary:
  {"purpose":"The DocxFiller package provides n8n nodes to automatically generate and populate DOCX templates using {{TAG}} placeholders. It includes a Template Mapper that uses AI to insert tags based on a JSON structure, and a DOCX Template Filler that replaces these tags with actual data from JSON inputs.","capabilities":["Analyzes blank DOCX documents and inserts {{TAG}} placeholders using AI based on a provided JSON structure","Automatically converts JSON keys into uppercase tags (e.g., 'client.nom' → '{{CLIENT_NOM}}')","Supports boolean values with automatic checkbox formatting (true → ☑, false → ☐)","Removes or preserves empty tags during filling with configurable options","Generates a detailed mapping report showing which tags were replaced and which remain","Supports nested JSON structures for complex documents like contracts, invoices, and forms"],"authentication":"None required for core functionality; LLM usage is optional and depends on the model configured in the Template Mapper node","commonUseCases":["Generating contracts with dynamic client and company details","Creating invoices with itemized data and payment terms","Populating quotes or proposals with product and pricing information","Automating form letters with personalized content","Handling documents with conditional fields (e.g., payment terms, signatures)"],"limitations":["LLM support is not fully detailed in the README and may require additional configuration","Only DOCX templates are supported (PDF support via PdfTemplateMapper is mentioned but not fully described)","Template creation must be done once per document type; no real-time template generation","No error handling or validation is described for malformed JSON or missing fields"],"relatedNodes":["n8n-nodes-base","n8n-nodes-json","n8n-nodes-file","n8n-nodes-webhook"]}


