# nodes

node_type: @copicake/n8n-nodes-copicake.copicake
package_name: @copicake/n8n-nodes-copicake
display_name: Copicake
description: Generate and retrieve images using Copicake API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: eragonj
author_github_url: https://github.com/Copicake/n8n-nodes-copicake.git
npm_package_name: @copicake/n8n-nodes-copicake
npm_version: 1.1.0
community_fetched_at: 2026-01-07T20:08:16.090Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an image",
          "description": "Create a new image from a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an image",
          "description": "Get an existing image by rendering ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an image",
      "description": "Create a new image from a template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an image",
      "description": "Get an existing image by rendering ID"
    }
  ]

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

  # n8n-nodes-copicake

  This is an n8n community node that lets you use [Copicake](https://copicake.com/) in your n8n workflows.

  Copicake is a data-driven image generation service that allows you to generate social media materials with just one click using templates and API calls.

  [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-copicake` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

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

  ### Manual Installation

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

  ```bash
  npm install n8n-nodes-copicake
  ```

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

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

  ## Credentials

  You need to set up credentials to use this node:

  1. In n8n, go to **Credentials** and create new **Copicake API** credentials.
  2. Enter your Copicake API key.
     - You can get your API key from the [Copicake dashboard](https://copicake.com/).

  ## Operations

  This node supports the following operations:

  ### Image

  #### Create
  Create a new image from a template with custom changes.

  **Parameters:**
  - **Template ID** (required): The ID of the template to use for image generation
  - **Changes**: Array of changes to apply to the template elements
    - **Element Name**: The name of the element to modify
    - **Change Type**: Type of change (Text, Image, QR Code, Shape)
    - **Properties**: Specific properties based on change type:
      - **Text**: text, fill color, stroke color, text background color
      - **Image**: image URL, stroke color
      - **QR Code**: content, fill color, stroke color
      - **Shape**: fill color, stroke color
  - **Additional Options**:
    - **Format**: Output format (PNG or JPG)
    - **Max Wait Time (Seconds)**: Maximum time to wait for rendering completion (default: 60)
    - **Polling Interval (Seconds)**: How often to check rendering status (default: 2)
    - **Wait for Completion**: Whether to poll until rendering is complete (default: true)
    - **Webhook URL**: URL to receive webhook when image is ready

  **Asynchronous Processing:**
  By default, the node will automatically wait for the image rendering to complete before returning the final result. This includes polling the Copicake API every 2 seconds until the status becomes either `success` or `failed`, with a maximum wait time of 60 seconds. You can disable this behavior by setting "Wait for Completion" to false, which will return the initial response with `processing` status immediately.

  **Example:**
  ```json
  {
    "template_id": "jfwrFJdR3z1eF8BcEhSnAFyhxgOq",
    "changes": [
      {
        "name": "text-9so09m",
        "text": "hello world",
        "fill": "#ff0000"
      },
      {
        "name": "image-yeavh7",
        "src": "https://your_website.com/test.png"
      }
    ],
    "options": {
      "format": "png",
      "webhook_url": "https://your_website.com/webhook_url"
    }
  }
  ```

  #### Get
  Retrieve an existing image by its rendering ID.

  **Parameters:**
  - **Rendering ID** (required): The rendering ID of the image to retrieve

  **Example:**
  ```json
  {
    "rendering_id": "ki9ImK39lPRwb1oOpKbROkNWumFz"
  }
  ```

  ## Response Format

  ### Create Image Response
  ```json
  {
    "rendering_id": "xc17NtfyMaxPDCtz0ZjEZ4guBmiC",
    "status": "processing",
    "created_at": "2023-01-01T00:00:00Z"
  }
  ```

  ### Get Image Response
  ```json
  {
    "rendering_id": "xc17NtfyMaxPDCtz0ZjEZ4guBmiC",
    "status": "success",
    "permanent_url": "https://copicake.s3.ap-northeast-1.amazonaws.com/renderings/xc17NtfyMaxPDCtz0ZjEZ4guBmiC.png",
    "created_at": "2023-01-01T00:00:00Z",
    "completed_at": "2023-01-01T00:00:05Z"
  }
  ```

  ## Example Workflows

  ### Basic Image Generation
  1. **Manual Trigger** → **Copicake (Create Image)** → **HTTP Request** (to download image)

  ### Automated Social Media Posts
  1. **Schedule Trigger** → **Copicake (Create Image)** → **Twitter** (post with generated image)

  ### Dynamic Content Generation
  1. **Webhook** → **Set** (prepare data) → **Copicake (Create Image)** → **Email** (send with generated image)

  ## Resources

  - [Copicake API Documentation](https://docs.copicake.com/)
  - [Copicake Website](https://copicake.com/)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Version History

  ### 0.1.0
  - Initial release
  - Support for Create Image and Get Image operations
  - Full support for all Copicake API features including text, image, QR code, and shape modifications

  ## License

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

ai_documentation_summary:
  {"purpose":"The Copicake node enables users to generate and retrieve images using Copicake's API by applying custom changes to predefined templates, supporting text, image, QR code, and shape modifications in workflows.","capabilities":["Create images from templates with customizable elements (text, image, QR code, shape)","Retrieve existing images by rendering ID","Support for asynchronous processing with configurable polling and wait times","Webhook integration to receive notifications when images are ready"],"authentication":"API key required; obtain from the Copicake dashboard and configure in n8n under 'Credentials > Copicake API'","commonUseCases":["Automated social media content generation","Dynamic email campaigns with personalized images","Scheduled posting to platforms like Twitter with generated visuals","Real-time image generation via webhooks"],"limitations":[],"relatedNodes":["HTTP Request","Twitter","Email","Schedule Trigger","Set"]}


node_type: n8n-nodes-peliqan.peliqan
package_name: n8n-nodes-peliqan
display_name: Peliqan
description: Get data from Peliqan
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: peliqan-dev
author_github_url: https://github.com/Peliqan-io/
npm_package_name: n8n-nodes-peliqan
npm_version: 0.0.6
community_fetched_at: 2026-01-07T20:08:16.091Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "table",
      "options": [
        {
          "name": "Endpoint",
          "value": "endpoint"
        },
        {
          "name": "Pipeline",
          "value": "pipeline"
        },
        {
          "name": "Query",
          "value": "query"
        },
        {
          "name": "Script",
          "value": "script"
        },
        {
          "name": "Table",
          "value": "table"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "exec",
      "options": [
        {
          "name": "Execute",
          "value": "exec",
          "action": "Execute endpoint",
          "description": "Execute selected endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "endpoint"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run a pipeline",
          "description": "Start pipeline sync on server"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create SQL Query",
          "value": "create",
          "action": "Create sql view",
          "description": "Create sql view in Peliqan"
        },
        {
          "name": "Execute SQL Query",
          "value": "exec",
          "action": "Execute sql query",
          "description": "Create sql view in Peliqan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "query"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run script",
          "description": "Run a script"
        },
        {
          "name": "Logs",
          "value": "logs",
          "action": "Return logs of script",
          "description": "Return logs of script"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "script"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get records",
          "description": "Get data from a Peliqan table"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List tables",
          "description": "List all available tables"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "table"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Execute",
      "value": "exec",
      "action": "Execute endpoint",
      "description": "Execute selected endpoint"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run a pipeline",
      "description": "Start pipeline sync on server"
    },
    {
      "name": "Create SQL Query",
      "value": "create",
      "action": "Create sql view",
      "description": "Create sql view in Peliqan"
    },
    {
      "name": "Execute SQL Query",
      "value": "exec",
      "action": "Execute sql query",
      "description": "Create sql view in Peliqan"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run script",
      "description": "Run a script"
    },
    {
      "name": "Logs",
      "value": "logs",
      "action": "Return logs of script",
      "description": "Return logs of script"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get records",
      "description": "Get data from a Peliqan table"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List tables",
      "description": "List all available tables"
    }
  ]

npm_readme:
  # n8n-nodes-peliqan

  This is an **n8n community node** that lets you use [Peliqan](https://peliqan.io) in your [n8n](https://n8n.io) workflows.  

  Peliqan.io is an all-in-one data platform with **ELT**, a **built-in data warehouse**, **data transformations**, and a **data cockpit**.  

  ## Table of contents

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


  ## Installation

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


  ## Operations

  The node currently supports:

  - **List tables** – Retrieve available tables  
  - **Get data from table** – Query records from a Peliqan table  
  - **Run pipeline** – Trigger an existing pipeline  
  - **Execute endpoint** – Call an API endpoint defined in Peliqan  
  - **Create SQL query** – Create a new SQL query in Peliqan  
  - **Execute SQL query** – Run a query against Peliqan’s data warehouse  
  - **Run script** – Execute a script stored in Peliqan  
  - **Get script logs** – Retrieve execution logs of a script  

  ## Credentials

  1. Log in to [Peliqan.io](https://peliqan.io).  
  2. Go to **Settings → API Token**.  
  3. Copy your API Token.  
  4. In n8n, go to **Credentials → New → Peliqan API** and paste your Token.  

  🔑 More details here: [Configure credentials in n8n](https://help.peliqan.io/build-ai-agents-with-n8n-and-peliqan#2401aa9b38798047ad22e353042f5d74).  


  ## Usage

  - Visit the [Peliqan Documentation](https://help.peliqan.io) for guides and tutorials:
      - To set up **AI Agents in n8n** with RAG and SQL: [step-by-step guide](https://help.peliqan.io/build-ai-agents-with-n8n-and-peliqan).  

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)  
  - [Peliqan.io](https://peliqan.io)  
  - [Peliqan Documentation](https://help.peliqan.io)  


  ## Version history

  - **May 2025** – `v0.0.1` initial implementation  
  - **June 2025** – `v0.0.3` add table list operation  
  - **June 2025** – `v0.0.4` enable tool usage of node  
  - **September 2025** – `v0.0.5` UX fixes and code overhaul
  - **October 2025** – `v0.0.6` replace deprecated functions

ai_documentation_summary:
  {"purpose":"The Peliqan n8n node enables integration with Peliqan's data platform, allowing users to retrieve data, execute queries, run pipelines, and manage scripts within n8n workflows.","capabilities":["List available tables","Retrieve data from a table","Run an existing pipeline","Call a defined API endpoint","Create a new SQL query","Execute a SQL query against the data warehouse","Run a stored script","Retrieve script execution logs"],"authentication":"API token required","commonUseCases":["Fetching structured data from Peliqan's data warehouse","Building AI agents with RAG and SQL using Peliqan in n8n workflows","Automating data transformations and pipeline executions","Monitoring script execution logs for debugging or auditing"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-base.sql","n8n-nodes-base.api"]}


node_type: n8n-nodes-parsio.parsio
package_name: n8n-nodes-parsio
display_name: Parsio
description: Extract structured data from emails, PDFs, images, and other documents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: andrew_io
author_github_url: https://github.com/parsioio/
npm_package_name: n8n-nodes-parsio
npm_version: 0.1.2
community_fetched_at: 2026-01-07T20:08:16.092Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "importFile",
      "options": [
        {
          "name": "Import Document From File",
          "value": "importFile",
          "action": "Import a binary file into an inbox and extract structured data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "description": "Import a binary file into an inbox and extract structured data"
        },
        {
          "name": "Import Text/HTML Document",
          "value": "importTextHtml",
          "action": "Import a text html document into an inbox and extract structured data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "description": "Import a text/html document into an inbox and extract structured data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Import Document From File",
      "value": "importFile",
      "action": "Import a binary file into an inbox and extract structured data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        }
      },
      "description": "Import a binary file into an inbox and extract structured data"
    },
    {
      "name": "Import Text/HTML Document",
      "value": "importTextHtml",
      "action": "Import a text html document into an inbox and extract structured data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        }
      },
      "description": "Import a text/html document into an inbox and extract structured data"
    }
  ]

npm_readme:
  # Parsio n8n Node

  > 🧩 Official n8n Node to interact with [Parsio](https://parsio.io): import documents and extract structured data from emails, PDFs, images, and other documents.

  [About](#about)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Usage](#usage)  
  [Resources](#resources)

  ## About

  **Parsio** is a powerful document parsing service that extracts structured data from emails, PDFs, images, and other documents using AI and machine learning.

  This official **n8n Node** allows you to:

  ✅ Import documents into Parsio for parsing  
  ✅ Automatically trigger workflows when documents are parsed  
  ✅ Extract structured data and use it in your automation workflows

  ## Operations

  ### Parsio Actions

  - **Import Document From File**
    - Use when you have a binary file (PDF, image, email attachment, etc.)
    - Example: Send files uploaded to a Google Drive folder to Parsio for data extraction
    - Automatically extracts structured data from the document

  - **Import Text/HTML Document**
    - Use when you have HTML pages, email content, or plain text
    - Example: Parse HTML from a website or email body content
    - Perfect for extracting data from web pages or text-based content

  ### Parsio Trigger

  - **Document Parsed**
    - Automatically starts your workflow when a document is parsed in Parsio
    - Receives the extracted data and passes it to the next node
    - Built-in security to protect your webhook

  ## Credentials

  ### Parsio API Key

  1. Sign in to your [Parsio account](https://app.parsio.io/account)
  2. Go to your account settings
  3. Copy your **API Key**

  In n8n:

  - Click **"Add Credential"** and search for **"Parsio API"**
  - Paste your API Key

  For more information, visit the [Parsio documentation](https://help.parsio.io/).

  ## Usage

  ### Parsio Trigger

  **Quick Start:**

  1. Add the **Parsio Trigger** node to your workflow
  2. Select **"Document Processed"** as the event
  3. Choose the **Inbox** where you want to receive events
  4. Activate your workflow

  That's it! Your workflow will now automatically run whenever a document is parsed in the selected inbox.

  **What happens:**

  - When a document is parsed in your Parsio inbox, the trigger receives the extracted data
  - The data is automatically passed to the next node in your workflow
  - You can use this data in any n8n node (send emails, update databases, create records, etc.)

  **Example Use Cases:**

  - **Email Notifications**: Send an email notification when an invoice is parsed
  - **Data Logging**: Save parsed data to Google Sheets or Airtable
  - **CRM Updates**: Create or update records in your CRM when documents are processed
  - **Approval Workflows**: Route documents for approval based on parsed data

  ### Import Document From File

  1. Select the **Import Document From File** operation
  2. Choose an **Inbox** from the dropdown
  3. Enter the **Document File (Binary)** property name (usually "data")
  4. Optionally add a custom **Filename** or **Additional Metadata**

  **Example workflow:**

  - Read a PDF file → Parsio node → Extract data → Use in next steps

  ### Import Text/HTML Document

  1. Select the **Import Text/HTML Document** operation
  2. Choose an **Inbox** from the dropdown
  3. Enter the **HTML/Text Content** (paste directly or use an expression)
  4. Optionally add a custom **Filename** or **Additional Metadata**

  **Example workflow:**

  - Fetch HTML from a website → Parsio node → Extract data → Process results

  ## Resources

  - [Parsio](https://parsio.io) — Document parsing & data extraction
  - [Parsio Documentation](https://help.parsio.io/) — Help and guides
  - [n8n](https://n8n.io) — Workflow automation platform
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

ai_documentation_summary:
  {"purpose":"The Parsio n8n node enables automation workflows to import and extract structured data from documents such as emails, PDFs, images, and HTML content using AI-powered parsing.","capabilities":["Import binary files (PDFs, images, email attachments) into Parsio for structured data extraction","Import text or HTML content (e.g., email bodies, web pages) for parsing","Trigger workflows automatically when a document is parsed in Parsio","Pass extracted structured data to downstream nodes for further processing"],"authentication":"API key required","commonUseCases":["Send email notifications when invoices or receipts are parsed","Log parsed document data into Google Sheets or Airtable","Update CRM records based on extracted document fields","Route documents for approval using parsed data","Extract data from web pages or email content for automation"],"limitations":[],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest","n8n-nodes-base.database","n8n-nodes-base.email"]}


node_type: n8n-nodes-realm.realm
package_name: n8n-nodes-realm
display_name: Realm
description: Interact with the Realm API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: anthonybrebion
author_github_url: https://github.com/abrebion/
npm_package_name: n8n-nodes-realm
npm_version: 0.1.3
community_fetched_at: 2026-01-07T20:08:16.096Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Assistant",
          "value": "assistant"
        },
        {
          "name": "Connector",
          "value": "connector"
        },
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get chats",
          "routing": {
            "request": {
              "url": "=/chats",
              "method": "GET"
            }
          },
          "description": "Get many chat conversations"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a chat",
          "routing": {
            "request": {
              "url": "=/chats/{{$parameter.chatId}}",
              "method": "GET"
            }
          },
          "description": "Get a single chat conversation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a chat",
          "routing": {
            "request": {
              "url": "=/chats/{{$parameter.chatId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a chat"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Start a chat",
          "routing": {
            "request": {
              "url": "={{$parameter[\"additionalFields\"]?.streamResponse ? \"/chats-streaming\" : \"/chats\"}}",
              "method": "POST"
            }
          },
          "description": "Start a new chat or continue an existing one"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get assistants",
          "routing": {
            "request": {
              "url": "/assistants",
              "method": "GET"
            }
          },
          "description": "Get assistants"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistant"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get connectors",
          "routing": {
            "request": {
              "url": "/connectors",
              "method": "GET"
            }
          },
          "description": "Get connectors"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "connector"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create or Update",
          "value": "createOrUpdate",
          "action": "Create or update documents",
          "routing": {
            "request": {
              "url": "=/documents/{{$parameter.connectorId}}",
              "method": "POST"
            }
          },
          "description": "Create or update documents for a connector"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a document",
          "routing": {
            "request": {
              "url": "=/documents/{{$parameter.connectorId}}/{{$parameter.documentId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a document"
        },
        {
          "name": "Delete Old Documents",
          "value": "deleteOldDocuments",
          "action": "Delete documents older than a specified timestamp",
          "routing": {
            "request": {
              "qs": {
                "older_than": "={{$parameter.olderThan + \"Z\"}}"
              },
              "url": "=/documents/{{$parameter.connectorId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete documents older than a specified timestamp"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document",
          "routing": {
            "request": {
              "qs": {
                "fields": "={{$parameter.fieldsToInclude}}"
              },
              "url": "=/documents/{{$parameter.connectorId}}/{{$parameter.documentId}}",
              "method": "GET",
              "arrayFormat": "repeat"
            }
          },
          "description": "Get a single document"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get documents",
          "routing": {
            "request": {
              "qs": {
                "fields": "={{$parameter.fieldsToInclude}}"
              },
              "url": "=/documents/{{$parameter.connectorId}}/",
              "method": "GET",
              "arrayFormat": "repeat"
            }
          },
          "description": "Get documents for a connector"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get chats",
      "routing": {
        "request": {
          "url": "=/chats",
          "method": "GET"
        }
      },
      "description": "Get many chat conversations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a chat",
      "routing": {
        "request": {
          "url": "=/chats/{{$parameter.chatId}}",
          "method": "GET"
        }
      },
      "description": "Get a single chat conversation"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a chat",
      "routing": {
        "request": {
          "url": "=/chats/{{$parameter.chatId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a chat"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Start a chat",
      "routing": {
        "request": {
          "url": "={{$parameter[\"additionalFields\"]?.streamResponse ? \"/chats-streaming\" : \"/chats\"}}",
          "method": "POST"
        }
      },
      "description": "Start a new chat or continue an existing one"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get assistants",
      "routing": {
        "request": {
          "url": "/assistants",
          "method": "GET"
        }
      },
      "description": "Get assistants"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get connectors",
      "routing": {
        "request": {
          "url": "/connectors",
          "method": "GET"
        }
      },
      "description": "Get connectors"
    },
    {
      "name": "Create or Update",
      "value": "createOrUpdate",
      "action": "Create or update documents",
      "routing": {
        "request": {
          "url": "=/documents/{{$parameter.connectorId}}",
          "method": "POST"
        }
      },
      "description": "Create or update documents for a connector"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a document",
      "routing": {
        "request": {
          "url": "=/documents/{{$parameter.connectorId}}/{{$parameter.documentId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a document"
    },
    {
      "name": "Delete Old Documents",
      "value": "deleteOldDocuments",
      "action": "Delete documents older than a specified timestamp",
      "routing": {
        "request": {
          "qs": {
            "older_than": "={{$parameter.olderThan + \"Z\"}}"
          },
          "url": "=/documents/{{$parameter.connectorId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete documents older than a specified timestamp"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a document",
      "routing": {
        "request": {
          "qs": {
            "fields": "={{$parameter.fieldsToInclude}}"
          },
          "url": "=/documents/{{$parameter.connectorId}}/{{$parameter.documentId}}",
          "method": "GET",
          "arrayFormat": "repeat"
        }
      },
      "description": "Get a single document"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get documents",
      "routing": {
        "request": {
          "qs": {
            "fields": "={{$parameter.fieldsToInclude}}"
          },
          "url": "=/documents/{{$parameter.connectorId}}/",
          "method": "GET",
          "arrayFormat": "repeat"
        }
      },
      "description": "Get documents for a connector"
    }
  ]

npm_readme:
  # n8n-nodes-realm

  This is an n8n community node. It lets you consume Realm API in your n8n workflows.

  Realm is an AI-powered enterprise search engine that unifies your knowledge bases (Google Drive, Slack, Jira, Confluence, Salesforce, Gong, etc.) and makes them accessible to custom AI assistants.

  With the Realm API, you can programmatically add, edit, and delete documents for custom connectors (non-native knowledge data sources) and interact with Realm assistants.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-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

  This node supports the following resources/operations:

  * Create or continue a chat conversation
  * Get a single chat conversation
  * Get many chat conversations
  * Delete a chat conversation
  * Get all asssistants
  * Get all connectors
  * Create or update documents in a connector
  * Get all documents from a connector
  * Get a specific document from a connector
  * Delete a specific document from a connector
  * Delete documents from a connector older than a specified timestamp

  ## Credentials

  * From the Realm app, create an API key and give it access to assistants.
  * In n8n, create a new Realm credential. Enter your API base url (e.g. https://your-account.withrealm.com/api/external/alpha) and the API key you've just created.

  ## Usage

  In your Workflow, find the Realm node and use as you need. I accept comments and suggestions in Issues repository on GitHub.

  ## Compatibility

  Tested against n8n version 1.117.3+

  ## Resources

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

ai_documentation_summary:
  {"purpose":"The Realm node allows users to interact with the Realm API to manage chat conversations, assistants, connectors, and documents, enabling integration with enterprise knowledge bases and AI assistants within n8n workflows.","capabilities":["Create or continue a chat conversation","Get a single or multiple chat conversations","Delete a chat conversation","Get all assistants","Get all connectors","Create or update documents in a connector","Get all documents from a connector","Get a specific document from a connector","Delete a specific document from a connector","Delete documents older than a specified timestamp"],"authentication":"API key required; obtained from the Realm app and entered in the n8n credential settings with the API base URL","commonUseCases":["Integrating AI assistants with enterprise knowledge sources like Slack, Jira, or Confluence","Automating document management in custom knowledge connectors","Triggering AI-powered responses based on user queries via chat conversations"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook"]}


node_type: @respond-io/n8n-nodes-respond-io.respondio
package_name: @respond-io/n8n-nodes-respond-io
display_name: Respond.io
description: Read, update, write and delete data from Respond.io
category: Community
development_style: declarative
version: 1.2.3
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: respond.io
author_github_url: https://github.com/respond-io/n8n-integration.git
npm_package_name: @respond-io/n8n-nodes-respond-io
npm_version: 1.2.3
community_fetched_at: 2026-01-07T20:08:16.097Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  # n8n-nodes-respondio

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

  Respond.io is a customer conversation management platform that helps businesses manage customer conversations across multiple channels like WhatsApp, Facebook Messenger, Instagram, and more. This node provides comprehensive integration with the Respond.io API to automate customer communication workflows.

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

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

  ## Installation

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

  ## Operations

  ### Respond.io Actions Node

  The Respond.io Actions node supports the following operations:

  #### Channels

  - **Get All Channels** - Retrieve all channels connected to your workspace

  #### Closing Notes

  - **Get All Closing Notes** - Retrieve all closing notes templates

  #### Comments

  - **Add Comment** - Add a comment to a conversation

  #### Contacts

  - **Create Contact** - Create a new contact
  - **Create or Update Contact** - Create or update an existing contact
  - **Update Contact** - Update an existing contact's information
  - **Find Contact** - Find a specific contact by identifier
  - **Get Many Contacts** - Retrieve multiple contacts with search filtering
  - **Add Tags** - Add tags to a contact
  - **Remove Tags** - Remove tags from a contact
  - **Add Space Tag** - Add a space tag to a contact
  - **Delete Space Tag** - Delete a space tag
  - **Update Space Tag** - Update a space tag
  - **Delete Contact** - Delete a contact
  - **Find Contact Channels** - Find channels associated with a contact

  #### Contact Fields

  - **Get All Custom Fields** - Retrieve all custom fields
  - **Find Custom Field** - Find a specific custom field
  - **Create Custom Field** - Create a new custom field

  #### Conversations

  - **Assign or Unassign Conversation** - Assign or unassign a conversation to/from a user
  - **Open or Close Conversation** - Open or close a conversation

  #### Lifecycle

  - **Update Contact Lifecycle** - Update a contact's lifecycle stage
  - **Remove Contact Lifecycle** - Remove a contact's lifecycle stage

  #### Messages

  - **Send Message** - Send a message to a contact (supports text, email, attachments, quick replies, WhatsApp templates, and custom payloads)
  - **Find Message** - Find a specific message by ID

  #### Users

  - **Find User** - Find a specific user by ID
  - **Get All Users** - Retrieve all users in the workspace

  ## Triggers

  ### Respond.io Trigger Node

  The Respond.io Trigger node can listen for the following events:

  - **New Incoming Message** - Triggered when a new message is received
  - **New Outgoing Message** - Triggered when a new outgoing message is sent
  - **New Comment** - Triggered when a new comment is added to a conversation
  - **Conversation Opened** - Triggered when a conversation is opened
  - **Conversation Closed** - Triggered when a conversation is closed
  - **New Contact** - Triggered when a new contact is created
  - **Contact Updated** - Triggered when a contact is updated
  - **Contact Assignee Updated** - Triggered when a contact's assignee is changed
  - **Contact Tag Updated** - Triggered when a contact's tags are modified
  - **Contact Lifecycle Updated** - Triggered when a contact's lifecycle stage changes

  ## Credentials

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

  1. **API Key** - Your Respond.io API key

  ### How to get your API Key

  1. Log in to your Respond.io account
  2. Go to **Settings** → **Integrations** → **N8N**
  3. Generate a new API key
  4. Copy the API key and use it in the credentials

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with n8n versions**: 1.0.0+
  - **Node.js version**: >=18.0.0

  ## Usage

  ### Basic Workflow Example

  1. **Set up a trigger** - Use the Respond.io Trigger node to listen for new incoming messages
  2. **Process the message** - Use the Respond.io Actions node to find the contact and send a response
  3. **Add automation** - Create workflows that automatically assign conversations, update contact information, or send follow-up messages

  ### Advanced Workflow Example

  1. **New message trigger** → **Find contact** → **Check contact tags** → **Send automated response** → **Assign to team member**

  ### Message Types Supported

  The Send Message operation supports multiple message types:

  - **Text messages** - Simple text messages
  - **Email messages** - Rich email content with subject and body
  - **Attachments** - Send files and media
  - **Quick replies** - Interactive quick reply buttons
  - **WhatsApp templates** - Pre-approved WhatsApp message templates
  - **Custom payloads** - Custom message formats for specific channels

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Respond.io API Documentation](https://developers.respond.io/)
  - [Respond.io Platform](https://respond.io/)

  ## Version history

  ### Version 1.0.0

  - Initial release
  - Support for all major Respond.io API operations
  - Webhook triggers for real-time events
  - Comprehensive contact and conversation management
  - Multi-channel message sending capabilities

ai_documentation_summary:
  {"purpose":"The Respond.io node enables automation of customer communication workflows by integrating with Respond.io's platform, allowing users to read, write, update, and delete data across channels like WhatsApp, Facebook Messenger, and Instagram.","capabilities":["Retrieve all channels and users","Manage contacts (create, update, delete, find, tag, and assign)","Handle conversations (open/close, assign/unassign)","Send messages via text, email, attachments, quick replies, WhatsApp templates, or custom payloads","Track closing notes and lifecycle stages","Listen to real-time events such as new messages, comments, contact updates, and conversation status changes"],"authentication":"API key required","commonUseCases":["Automatically respond to incoming customer messages","Assign conversations to team members based on tags or lifecycle stage","Update contact information or tags in real time","Send follow-up messages or notifications via multiple channels","Monitor and react to contact lifecycle changes"],"limitations":[],"relatedNodes":["n8n trigger nodes","contact management nodes","message automation nodes","workflow conditionals"]}


node_type: @nskha/n8n-nodes-scrappey.scrappey
package_name: @nskha/n8n-nodes-scrappey
display_name: Scrappey
description: Make advanced web requests with anti-bot protection bypass using Scrappey API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: automations-project
author_github_url: https://github.com/Automations-Project/n8n-nodes-scrappey.git
npm_package_name: @nskha/n8n-nodes-scrappey
npm_version: 0.3.13
community_fetched_at: 2026-01-07T20:08:16.097Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  ![Banner](.github/assets/banner.webp)

  # Scrappey n8n Node

  [![CI](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/ci.yml/badge.svg)](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/ci.yml)
  [![Release](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/release.yml/badge.svg)](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/release.yml)
  [![Security Scan](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/security.yml/badge.svg)](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/security.yml)
  [![npm version](https://img.shields.io/npm/v/@nskha/n8n-nodes-scrappey?logo=npm)](https://www.npmjs.com/package/@nskha/n8n-nodes-scrappey)
  [![npm downloads](https://img.shields.io/npm/dm/@nskha/n8n-nodes-scrappey?logo=npm)](https://www.npmjs.com/package/@nskha/n8n-nodes-scrappey)
  [![n8n Node version](https://img.shields.io/github/package-json/v/Automations-Project/n8n-nodes-scrappey?logo=n8n&label=n8n%20node)](https://github.com/Automations-Project/n8n-nodes-scrappey)
  [![n8n compatibility](https://img.shields.io/github/v/release/n8n-io/n8n?logo=n8n&label=)](https://n8n.io)
  [![Node.js compatibility](https://img.shields.io/node/v/@nskha/n8n-nodes-scrappey?logo=node.js)](https://nodejs.org)
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5%2B-blue?logo=typescript)](https://www.typescriptlang.org)
  [![Dependencies](https://img.shields.io/librariesio/release/npm/@nskha/n8n-nodes-scrappey?logo=dependabot)](https://libraries.io/npm/@nskha%2Fn8n-nodes-scrappey)
  [![License](https://img.shields.io/github/license/Automations-Project/n8n-nodes-scrappey)](LICENSE.md)

  [![GitHub stars](https://img.shields.io/github/stars/Automations-Project/n8n-nodes-scrappey?style=social)](https://github.com/Automations-Project/n8n-nodes-scrappey/stargazers)
  [![GitHub forks](https://img.shields.io/github/forks/Automations-Project/n8n-nodes-scrappey?style=social)](https://github.com/Automations-Project/n8n-nodes-scrappey/network)
  [![GitHub issues](https://img.shields.io/github/issues/Automations-Project/n8n-nodes-scrappey)](https://github.com/Automations-Project/n8n-nodes-scrappey/issues)
  [![Last commit](https://img.shields.io/github/last-commit/Automations-Project/n8n-nodes-scrappey)](https://github.com/Automations-Project/n8n-nodes-scrappey/commits)

  > 🚀 **Advanced web scraping and anti-bot bypass node for n8n workflows**

  A powerful n8n community node that integrates with the [Scrappey.com API](https://scrappey.com) to provide advanced web scraping capabilities with built-in anti-bot protection bypass. Perfect for automating data extraction from protected websites, handling CAPTCHAs, and managing complex browser interactions.

  ## ✨ Key Features

  ### 🛠️ **Three Operation Modes**

  1. **Request Builder** - Create fully customized HTTP/browser requests with granular control
  2. **HTTP Auto-Retry** - Automatically retry failed HTTP requests through Scrappey's anti-bot network
  3. **Browser Auto-Retry** - Advanced browser-based retry with full anti-bot protection

  ### 🔒 **Anti-Bot Protection Bypass**

  - **Cloudflare** challenge solving
  - **Datadome** bypass capabilities
  - **hCaptcha & reCAPTCHA** automatic solving
  - **JavaScript-heavy websites** full browser simulation
  - **Mouse movement simulation** for enhanced stealth

  ### 🌍 **Advanced Proxy Management**

  - **Residential proxies** with country targeting
  - **Datacenter proxies** for fast requests
  - **Mobile proxies** for mobile-specific content
  - **Custom proxy** support (SOCKS4/5, HTTP/HTTPS)
  - **150+ countries** available for geo-targeting

  ### ⚙️ **Flexible Configuration**

  - **Multiple request types**: Standard HTTP, Browser, Patched Chrome
  - **Custom headers & cookies** with field-based or JSON input
  - **Session management** for maintaining state across requests
  - **POST/PUT/PATCH support** with body or form parameters
  - **CSS selector waiting** for dynamic content
  - **XHR/Fetch interception** for API data extraction

  ## 🚀 Installation

  ### Method 1: n8n Community Nodes (Recommended)

  1. Open your n8n instance
  2. Go to **Settings** → **Community Nodes**
  3. Enter: `@automations-project/n8n-nodes-scrappey`
  4. Click **Install**

  ### Method 2: Manual Installation

  ```bash
  # Using npm
  npm install @automations-project/n8n-nodes-scrappey

  # Using pnpm
  pnpm add @automations-project/n8n-nodes-scrappey

  # Using yarn
  yarn add @automations-project/n8n-nodes-scrappey
  ```

  ### Method 3: Development Installation

  ```bash
  # Clone the repository
  git clone https://github.com/Automations-Project/n8n-nodes-scrappey.git
  cd n8n-nodes-scrappey

  # Install dependencies
  pnpm install

  # Build the node
  pnpm run build

  # Link for development
  pnpm run start:dev
  ```

  ## 🔧 Configuration

  ### 1. Set Up Scrappey API Credentials

  1. Sign up at [Scrappey.com](/#) to get your API key.
  2. In n8n, create new **Scrappey API** credentials
  3. Enter your API key and optional proxy settings
     > 🎯 **Get Started Free!** Try Scrappey with **750 Direct requests** and **150 Browser requests** at no cost.  
     > [Start your free trial →](https://nodes.n8n.community/scrappey/signup)
     >
     > **Affordable scaling**: For just €100, you can get 600,000 request credits including proxies, captcha etc...

  ### 2. Credential Options

  - **API Key** (required): Your Scrappey.com API key
  - **Custom Proxy** (optional): Your own proxy URL (SOCKS4/5, HTTP/HTTPS)
  - **Whitelisted Domains** (optional): JSON array of allowed domains for enhanced security

  ## 📋 Operation Modes
  ![Operations Types](.github/assets/operations.jpg)
  ### 🛠️ Request Builder (Manual)

  **Primary mode for creating custom requests with full control**

  ```typescript
  // Example configuration options:
  {
    "url": "https://example.com/api/data",
    "httpMethod": "GET",
    "request_type": "Browser", // or "Request", "PatchedChrome"
    "whichProxyToUse": "proxyFromScrappey",
    "proxyType": "residential", // residential, datacenter, mobile
    "customProxyCountry": "UnitedStates",
    "antibot": true,
    "mouseMovements": true,
    "datadome": true
  }
  ```

  **Use Cases:**

  - Complex form submissions with CAPTCHA solving
  - JavaScript-heavy SPA scraping
  - API data extraction with anti-bot protection
  - Multi-step workflows with session management

  ### 🔁 HTTP Auto-Retry

  **Fallback solution for failed n8n HTTP Request nodes**
  ![Banner](.github/assets/example.svg)
  Connect the **error output** (red connector) of a standard HTTP Request node to this operation. It automatically retries the same request through Scrappey's network when blocked by:

  - Cloudflare challenges
  - Rate limiting
  - IP blocks
  - Basic anti-bot measures


  ### 🌐 Browser Auto-Retry

  **Advanced browser-based retry with full anti-bot protection**

  Similar to HTTP Auto-Retry but uses a full browser environment with:

  - Automatic CAPTCHA solving (hCaptcha, reCAPTCHA)
  - Mouse movement simulation
  - Datadome bypass enabled
  - JavaScript execution
  - 3 automatic retries

  ## 💡 Usage Examples

  ### Basic Web Scraping

  ```javascript
  // Request Builder - Simple GET request
  {
    "operation": "requestBuilder",
    "url": "https://httpbin.org/get",
    "httpMethod": "request.get",
    "request_type": "Request"
  }
  ```

  ### Advanced Browser Automation

  ```javascript
  // Browser request with anti-bot protection
  {
    "operation": "requestBuilder",
    "url": "https://protected-site.com",
    "request_type": "Browser",
    "antibot": true,
    "mouseMovements": true,
    "datadome": true,
    "cssSelector": ".content-loaded",
    "proxyType": "residential",
    "customProxyCountry": "UnitedStates"
  }
  ```

  ### Form Submission with CAPTCHA

  ```javascript
  // POST request with CAPTCHA solving
  {
    "operation": "requestBuilder",
    "url": "https://example.com/submit",
    "httpMethod": "request.post",
    "request_type": "Browser",
    "bodyOrParams": "body_used",
    "body_for_request": "{\"name\":\"John\",\"email\":\"john@example.com\"}",
    "antibot": true
  }
  ```

  ### Auto-Retry Fallback

  ```javascript
  // Connect HTTP Request node error output to Scrappey node input
  // Set operation to "httpRequestAutoRetry" or "httpRequestAutoRetryBrowser"
  {
    "operation": "httpRequestAutoRetry",
    "whichProxyToUse": "proxyFromScrappey",
    "proxyType": "residential"
  }
  ```

  ## 🔒 Error Handling

  The node provides detailed error messages for common Scrappey API error codes:

  | Code      | Description        | Solution                            |
  | --------- | ------------------ | ----------------------------------- |
  | CODE-0001 | Server overloaded  | Retry after a few minutes           |
  | CODE-0002 | Cloudflare blocked | Try different proxy or browser mode |
  | CODE-0003 | Too many attempts  | Wait before retrying                |
  | CODE-0004 | Invalid command    | Check request configuration         |
  | CODE-0005 | Tunnel failed      | Retry with different proxy          |

  ## 🏗️ Development

  ### Building from Source

  ```bash
  # Install dependencies
  pnpm install

  # Development build with watch
  pnpm run build:watch

  # Production build
  pnpm run build

  # Linting & formatting
  pnpm run lint
  pnpm run format

  # Type checking
  pnpm run type-check

  # Full validation
  pnpm run validate
  ```

  ### Project Structure

  ```
  n8n-nodes-scrappey/
  ├── nodes/Scrappey/          # Main node implementation
  │   ├── Scrappey.node.ts     # Node definition and execution
  │   ├── execute.ts           # Operation dispatcher
  │   ├── RequestMethods.ts    # HTTP/Browser request handlers
  │   ├── requestBodyBuilder.ts # Request body construction
  │   ├── fields.ts            # Node field definitions
  │   ├── GenericFunctions.ts  # API integration utilities
  │   └── utils.ts             # Helper functions
  ├── credentials/             # Credential definitions
  │   └── ScrappeyApi.credentials.ts
  ├── scripts/                 # Build and deployment scripts
  ├── .github/workflows/       # CI/CD pipelines
  └── dist/                    # Built output
  ```

  ### CI/CD Pipeline

  This project includes a comprehensive CI/CD setup:

  - **Continuous Integration**: Automated testing, linting, and building on every PR
  - **Auto-versioning**: Automatic version bumps based on commit messages
  - **Automated Releases**: Publishes to GitHub Packages and optionally npm
  - **Security Scanning**: CodeQL analysis and dependency auditing
  - **Dependabot**: Automated dependency updates

  #### Commit Message Conventions

  - `feat: description` → Minor version bump
  - `fix: description` → Patch version bump
  - `BREAKING CHANGE` or `[major]` → Major version bump
  - `[skip ci]` or `[skip version]` → Skip automation

  ## 🤝 Contributing

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

  ## 📄 License

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

  ## 🔗 Links

  - **Scrappey Website**: [https://scrappey.com](https://scrappey.com)
  - **Scrappey Documentation**: [https://wiki.scrappey.com](https://wiki.scrappey.com)
  - **n8n Community**: [https://community.n8n.io](https://community.n8n.io)
  - **GitHub Issues**: [Report bugs or request features](https://github.com/Automations-Project/n8n-nodes-scrappey/issues)
  - **Nskha Discord**: [⚠️Incative community](https://nskha.com/discord)

  ---

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

ai_documentation_summary:
  {"purpose":"The Scrappey n8n node enables advanced web scraping with anti-bot protection bypass by integrating with the Scrappey API, allowing automation of data extraction from protected websites that use CAPTCHAs, Cloudflare, Datadome, or JavaScript-heavy content.","capabilities":["Create custom HTTP and browser requests with granular control","Automatically retry failed HTTP requests using Scrappey's anti-bot network","Perform browser-based retries with full anti-bot protection","Bypass Cloudflare, Datadome, hCaptcha, and reCAPTCHA challenges","Simulate mouse movements for stealthy browsing","Support for residential, datacenter, mobile, and custom proxies","Geo-targeting across 150+ countries","Handle dynamic content via CSS selector waiting","Intercept XHR/Fetch requests for API data extraction","Manage sessions and maintain state across requests"],"authentication":"API key required (from Scrappey.com)","commonUseCases":["Extracting data from websites with CAPTCHAs or anti-bot measures","Automating data collection from JavaScript-rendered pages","Handling Cloudflare or Datadome protection","Performing geo-targeted scraping with residential proxies","Retrying failed requests with built-in anti-bot retry logic"],"limitations":[],"relatedNodes":["HTTP Request","Web Scraper","Browser Node","Proxy Node"]}


node_type: @thelifeofrishi/n8n-nodes-orshot.orshot
package_name: @thelifeofrishi/n8n-nodes-orshot
display_name: Orshot
description: Automated Image Generation for Marketing
category: Community
development_style: declarative
version: 3
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: thelifeofrishi
author_github_url: https://github.com/rishimohan/orshot-n8n.git
npm_package_name: @thelifeofrishi/n8n-nodes-orshot
npm_version: 0.4.1
community_fetched_at: 2026-01-07T20:08:16.098Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "https://api.orshot.com/v1/generate/images",
      "options": [
        {
          "name": "Generate Image From a Library Template",
          "value": "https://api.orshot.com/v1/generate/images",
          "action": "Generate an image from a library template",
          "description": "Endpoint: https://api.orshot.com/v1/generate/images"
        },
        {
          "name": "Generate Image From an Orshot Studio Template",
          "value": "https://api.orshot.com/v1/studio/render",
          "action": "Generate an image from a studio template",
          "description": "Endpoint: https://api.orshot.com/v1/studio/render"
        }
      ],
      "required": true,
      "description": "Orshot API Endpoint URL(ref: https://orshot.com/docs/api-reference)",
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Image From a Library Template",
      "value": "https://api.orshot.com/v1/generate/images",
      "action": "Generate an image from a library template",
      "description": "Endpoint: https://api.orshot.com/v1/generate/images"
    },
    {
      "name": "Generate Image From an Orshot Studio Template",
      "value": "https://api.orshot.com/v1/studio/render",
      "action": "Generate an image from a studio template",
      "description": "Endpoint: https://api.orshot.com/v1/studio/render"
    }
  ]

npm_readme:
  # n8n-nodes-orshot

  This is an n8n community node. It lets you use [Orshot](https://orshot.com)'s Image Generation API in your n8n workflows.

  Orshot is an Image Generation API which lets you generate dynamic images from pre-designed and AI generated templates via API and Integrations.

  [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

  - Generate Images from a Library Template
  - Generate Images from a Orshot Studio Templates

  ## Credentials

  - You need an API Key for this integration to work
  - You can get an free API Key by signing up on [Orshot](https://orshot.com)
  - After signing up, you can head to your Workspace > Settings > API Key to get your API Key
  - You can use that API Key in the "Token" field in the n8n Integration

  ## Compatibility

  - Works on n8n > 1.00
  - Created on n8n v1.94.1

  ## Usage

  You can refer to [Orshot API Docs](https://orshot.com/docs) to refer to the APIs and their usage along with definitions, examples etc.

  ## Resources

  - [API Docs](https://orshot.com/docs)
  - [Library Templates](https://orshot.com/templates)
  - [Creating a custom API template using Orshot Studio](https://orshot.com/features/orshot-studio)
  - [Creating a template using AI Template Generator](https://orshot.com/features/ai-template-generator)
  - [Integrations](https://orshot.com/integrations)

  ## Version history

  #### 0.4.1

  - Added support for `includePages` param for studio templates

  #### 0.4.0

  - Added support for `customFileName` and `scale` params for studio templates

  #### 0.3.5

  - Fixes image generation for "binary" response types

  #### 0.3.0

  - Add correct link to n8n Ingegration doc
  - Show descriptions in studio templates dropdown list

  #### 0.2.5

  - Automatically show dropdown of user's studio templates(previously user needed to enter it manually)

  #### 0.2.0

  - Make repo public and trigger vertification check

  #### 0.1.0

  - Initial Release
  - Actions for rendering from a library and studio template

ai_documentation_summary:
  {"purpose":"The Orshot node enables users to generate dynamic images using Orshot's Image Generation API, supporting both pre-designed library templates and AI-generated studio templates within n8n workflows.","capabilities":["Generate images from library templates","Generate images from Orshot Studio templates","Support for custom file names and scaling in studio templates","Support for including specific pages in studio templates"],"authentication":"API key required; obtain a free API key by signing up at https://orshot.com and navigating to Workspace > Settings > API Key","commonUseCases":["Creating marketing materials with dynamic content from templates","Automating image generation for social media posts","Generating product or campaign visuals using AI-powered templates"],"limitations":["No support for image editing or post-processing after generation","Limited to templates available in Orshot's library or user-created studio templates","Binary response handling was previously an issue, fixed in version 0.3.5"],"relatedNodes":["Image generation nodes","Template-based automation nodes","API integration nodes"]}


node_type: n8n-nodes-sinergiacrm.sinergiaCrm
package_name: n8n-nodes-sinergiacrm
display_name: SinergiaCRM
description: Perform operations on any module in SinergiaCRM (SuiteCRM API).
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: tecnologia-solidaria
author_github_url: https://github.com/Tecnologia-Solidaria/
npm_package_name: n8n-nodes-sinergiacrm
npm_version: 2.0.0
community_fetched_at: 2026-01-07T20:08:16.099Z
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all records"
        },
        {
          "name": "Get One",
          "value": "getOne",
          "action": "Get a single record"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new record"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a record"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a record"
        },
        {
          "name": "Get Relationships",
          "value": "getRelationships",
          "action": "Get related records"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all records"
    },
    {
      "name": "Get One",
      "value": "getOne",
      "action": "Get a single record"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a record"
    },
    {
      "name": "Get Relationships",
      "value": "getRelationships",
      "action": "Get related records"
    }
  ]

npm_readme:
  # n8n-nodes-sinergiacrm

  A generic n8n node to operate with any SinergiaCRM (SuiteCRM 7.x+) module via the official JSON API.

  Supports CRUD operations, dynamic module and field discovery (including custom fields), advanced filtering, pagination, and relationship retrieval.

  ---

  ## Features

  - **Full CRUD** – Create, read, update, and delete any SuiteCRM module
  - **Dynamic discovery** – Auto-lists modules and fields, including custom fields
  - **Advanced filtering** – Filter records using operators, custom fields, pagination
  - **Relationship handling** – Retrieve related records from any entity
  - **OAuth2 authentication** – Native SuiteCRM client credentials flow
  - **Robust error handling** – Clear errors and maintainable structure

  ---

  ## Installation

  ```bash
  pnpm add n8n-nodes-sinergiacrm
  ```

  Or with npm:

  ```bash
  npm install n8n-nodes-sinergiacrm
  ```

  Add to your instance following [n8n's custom node guide](https://docs.n8n.io/integrations/creating-nodes/code/create-node/).

  ---

  ## Usage

  ### 1. Credentials

  - Create credentials in n8n of type **SinergiaCRM API**
  - Fill in your SuiteCRM domain, Client ID, and Client Secret  
    *(see SuiteCRM → Admin → OAuth2 Clients)*

  ### 2. Node Configuration

  - **Module:** Auto-discovered list from your API
  - **Operation:** Choose from Get All, Get One, Create, Update, Delete, Get Relationships
  - **Parameters:** Filters, IDs, pagination, or JSON payloads depending on operation

  ### 3. Example – Create a Contact

  Input data:
  ```json
  {
    "first_name": "John",
    "last_name": "Doe",
    "email1": "john.doe@example.com"
  }
  ```

  ---

  ## Supported Operations

  | Operation         | Description                                   |
  |------------------|-----------------------------------------------|
  | Get All          | Fetch records with optional filters & paging  |
  | Get One          | Retrieve a single record by ID                |
  | Create           | Add a new record (JSON fields)                |
  | Update           | Modify a record (PATCH with JSON)             |
  | Delete           | Remove a record by ID                         |
  | Get Relationships| Fetch related records of a module by ID       |

  ---

  ## Requirements

  - SuiteCRM 7.x+ with API and OAuth2 enabled
  - All modules and fields are fetched dynamically
  - For 1:N relations, set the "parent" ID on the child (SuiteCRM logic)
  - Tested against SuiteCRM v7+ JSON API

  ---

  ## Troubleshooting

  - `access_token` missing → Check credentials or OAuth2 setup
  - `405 Method Not Allowed` → PATCH may not be enabled in your SuiteCRM
  - Any API error is returned as node output for transparency

  ---

  ## Contributing

  Contributions welcome!  
  Feel free to open issues or PRs.

  ---

  ## License

  MIT

  ---

  **Maintainer:** Javier Quilez Cabello / [tecnologiasolidaria.org](https://tecnologiasolidaria.org)  
  **Support:** [SuiteCRM Forums](https://community.suitecrm.com/)  
  **Source:** [GitHub](https://github.com/tecnologiasolidaria/n8n-nodes-sinergiacrm)  
  **Docs:** [SuiteCRM JSON API](https://docs.suitecrm.com/developer/api/developer-setup-guide/json-api/)


node_type: n8n-nodes-parseur.parseur
package_name: n8n-nodes-parseur
display_name: Parseur
description: Interact with Parseur to upload text or files
category: Development
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: parseur
author_github_url: https://github.com/parseur/parseur-n8n-node.git
npm_package_name: n8n-nodes-parseur
npm_version: 0.0.4
community_fetched_at: 2026-01-07T20:08:16.099Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "uploadFile",
      "options": [
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload a file to a mailbox",
          "description": "Upload a file to a mailbox"
        },
        {
          "name": "Upload Text",
          "value": "uploadText",
          "action": "Upload a text html document to a mailbox",
          "description": "Upload a text/HTML document to a mailbox"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload a file to a mailbox",
      "description": "Upload a file to a mailbox"
    },
    {
      "name": "Upload Text",
      "value": "uploadText",
      "action": "Upload a text html document to a mailbox",
      "description": "Upload a text/HTML document to a mailbox"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__"
    }
  ]

npm_readme:
  # Parseur n8n Node

  > 🧩 Official n8n Node to interact with [Parseur](https://parseur.com): receive events, upload text or upload files.

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

  [About](#about)  
  [Operations](#operations)  
  [Installation](#installation)  
  [Credentials](#credentials)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  
  [Credit](#credit)  
  [License](#license)  


  ## About

  **Parseur** is a powerful no-code data extraction platform that helps you turn emails, PDFs, and other documents into structured data.

  This custom **n8n Node** allows you to:

  ✅ Trigger workflows when documents or tables are processed (via webhook)  
  ✅ Upload new documents as text (via API)  
  ✅ Upload files to a parser (via API)

  ## Operations

  - Upload File: send binary files (PDF, EML, etc.) to a Mailbox
  - Upload Text: send plain or HTML content as a document to a Mailbox
  - Supports webhook events from Parseur:

    | Event                          | Type        | Description                          |
    |--------------------------------|-------------|--------------------------------------|
    | `document.processed`           | document    | Document processed successfully      |
    | `document.processed.flattened` | document    | Document processed as flat data      |
    | `document.template_needed`     | document    | Processing failed (template needed)  |
    | `document.export_failed`       | document    | Export failed                        |
    | `table.processed`              | table       | A table field row was processed      |
    | `table.processed.flattened`    | table       | A table field row (flattened)        |


  ## Installation

  ### Install from npm

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

  ### Install from source

  1. Install dependencies

  ```bash
  brew install pnpm
  pnpm setup
  source ~/.zshrc
  ```

  2. Clone and build the node

  ```bash
  git clone https://github.com/parseur/parseur-n8n-node <parseur-n8n-node>
  cd <parseur-n8n-node>
  pnpm install
  pnpm build
  ```

  3. Set up a local n8n instance

  ```bash
  mkdir <n8n>
  cd <n8n>
  pnpm init
  pnpm add sqlite3
  pnpm approve-builds  # Needed for sqlite3 to complete install
  pnpm add n8n
  pnpm approve-builds  # Needed for n8n to complete install (select all packages, confirm and press Enter)
  pnpm exec n8n
  ```

  4. Link the Parseur node to n8n

  ```bash
  cd ~/.n8n
  mkdir -p custom
  cd custom
  pnpm init
  pnpm link <parseur-n8n-node>
  ```

  5. Restart n8n and you will see Parseur Trigger available.

  ```bash
  cd <n8n>
  pnpm exec n8n
  ```

  ## Credentials

  To connect n8n with your Parseur account, you’ll need two values: an **API Key** and a **Webhook Token**.

  ### API Key

  Get your API key in the [Parseur account settings](https://app.parseur.com/account).  
  This key is required to authenticate API requests to the Parseur platform.

  1. Log in to your [Parseur](https://app.parseur.com/login).
  2. Navigate to **Account**
  3. Copy your **API Key**.

  In n8n:

  - Click **“Add Credential”** and search for **"Parseur API"**.
  - Paste your API Key into the **API Key** field.

  ### Webhook Token

  The **Webhook Token** is used to verify that incoming webhook requests (e.g. from n8n to Parseur) are legitimate.

  You can generate a secure random token using a service like [uuidgenerator.net](https://www.uuidgenerator.net/), or generate one yourself using a tool or script of your choice.

  1. Go to [uuidgenerator.net](https://www.uuidgenerator.net/).
  2. Copy a generated UUID or token string.
  3. Paste it into the **Webhook Token** field in your Parseur credential in n8n.

  This token will be expected in the HTTP header `X-Parseur-Token` of all webhook requests.

  ## Compatibility

  Compatible with n8n v1.91.2.

  ## Resources

  - [Parseur](https://parseur.com) — Document processing & data extraction
  - [n8n](https://n8n.io) — Workflow automation

  ## Version history

  #### v0.0.1
  Initial release

  ## Contributing

  We welcome contributions and ideas!

  Please [open an issue](https://github.com/parseur/parseur-n8n-node/issues) or [submit a pull request](https://github.com/parseur/parseur-n8n-node/pulls) if you want to improve this node.

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The Parseur n8n node enables integration with Parseur's document processing platform by allowing users to upload text or files and trigger workflows via webhook events when documents or tables are processed.","capabilities":["Upload files (e.g., PDF, EML) to a Parseur mailbox via API","Upload plain or HTML text content as a document to a Parseur mailbox","Receive webhook events when documents are processed, flattened, or fail due to template needs","Receive webhook events when table rows are processed or flattened"],"authentication":"API Key and Webhook Token required; API Key is obtained from Parseur account settings, and Webhook Token is used to verify incoming webhook requests via the X-Parseur-Token header","commonUseCases":["Automatically extract data from incoming emails or PDFs and send structured data to other tools","Set up real-time workflows triggered when a document is successfully processed or fails due to missing templates","Process table data from documents and flatten it for use in databases or spreadsheets"],"limitations":[],"relatedNodes":["Webhook triggers","File upload nodes","Data extraction nodes"]}


node_type: @cloudconvert/n8n-nodes-cloudconvert.cloudConvert
package_name: @cloudconvert/n8n-nodes-cloudconvert
display_name: CloudConvert
description: Use CloudConvert to convert files, create thumbnails, merge files, add watermarks and more!
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: josiasmontag
author_github_url: https://github.com/cloudconvert/n8n-nodes-cloudconvert.git
npm_package_name: @cloudconvert/n8n-nodes-cloudconvert
npm_version: 1.0.2
community_fetched_at: 2026-01-07T20:08:16.100Z
ai_summary_generated_at: 2026-01-08 10:45:31
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "convert",
      "options": [
        {
          "name": "Add Watermark",
          "value": "watermark",
          "action": "Add watermark to a file",
          "description": "Add a watermark to a PDF file, to an image or to a video"
        },
        {
          "name": "Capture Website",
          "value": "capture-website",
          "action": "Capture website",
          "description": "Creates job to capture a website as PDF or create a website screenshot as JPG or PNG"
        },
        {
          "name": "Convert File",
          "value": "convert",
          "action": "Convert a file",
          "description": "Convert a file to a different format"
        },
        {
          "name": "Create Archive",
          "value": "archive",
          "action": "Create archive",
          "description": "Create an archive (ZIP, RAR...) for multiple files"
        },
        {
          "name": "Create Thumbnail",
          "value": "thumbnail",
          "action": "Create a thumbnail",
          "description": "Create a thumbnail of a file"
        },
        {
          "name": "Get Metadata",
          "value": "metadata",
          "action": "Get metadata from a file",
          "description": "Extract metadata from files"
        },
        {
          "name": "Merge Files",
          "value": "merge",
          "action": "Merge files to PDF",
          "description": "Merge multiple files into a single PDF"
        },
        {
          "name": "Optimize File",
          "value": "optimize",
          "action": "Optimize a file",
          "description": "Optimize / compress a file to reduce its size"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Watermark",
      "value": "watermark",
      "action": "Add watermark to a file",
      "description": "Add a watermark to a PDF file, to an image or to a video"
    },
    {
      "name": "Capture Website",
      "value": "capture-website",
      "action": "Capture website",
      "description": "Creates job to capture a website as PDF or create a website screenshot as JPG or PNG"
    },
    {
      "name": "Convert File",
      "value": "convert",
      "action": "Convert a file",
      "description": "Convert a file to a different format"
    },
    {
      "name": "Create Archive",
      "value": "archive",
      "action": "Create archive",
      "description": "Create an archive (ZIP, RAR...) for multiple files"
    },
    {
      "name": "Create Thumbnail",
      "value": "thumbnail",
      "action": "Create a thumbnail",
      "description": "Create a thumbnail of a file"
    },
    {
      "name": "Get Metadata",
      "value": "metadata",
      "action": "Get metadata from a file",
      "description": "Extract metadata from files"
    },
    {
      "name": "Merge Files",
      "value": "merge",
      "action": "Merge files to PDF",
      "description": "Merge multiple files into a single PDF"
    },
    {
      "name": "Optimize File",
      "value": "optimize",
      "action": "Optimize a file",
      "description": "Optimize / compress a file to reduce its size"
    }
  ]

npm_readme:
  # n8n-nodes-cloudconvert

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

  CloudConvert is an online file conversion and processing API which allows to convert files, create thumbnails, merge files, add watermarks 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.

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

  - Convert files from one format to another
  - Create thumbnails of files
  - Add watermarks to images, PDFs and videos
  - Capture website screenshots and save websites as PDF
  - Merge multiple input files in one single PDF
  - Create archives (ZIP, RAR...) for multiple input files
  - Get file metadata (EXIF etc)

  ## Credentials

  Create a free CloudConvert account [here](https://cloudconvert.com/register) which allows 25 free credits per day.

  - Generate OAuth 2 credentials (default auth method) here: https://cloudconvert.com/dashboard/api/v2/clients
  - Generate an API key (alternative auth method) here: https://cloudconvert.com/dashboard/api/v2/keys

  ## Compatibility

  Tested against n8n version 0.225+.

  ## Usage

  A typical workflow using this node would look like this:
  <img width="906" alt="image" src="https://github.com/n8n-io/n8n/assets/1945577/3cd6f332-74ee-4997-8e67-7d873a124592">

  This is a workflow merging multiple input files in a single PDF:
  <img width="1276" alt="image" src="https://github.com/n8n-io/n8n/assets/1945577/9324c941-eb86-48ac-8d83-aaeecf16fd09">



  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [CloudConvert API v2 Documentation](https://cloudconvert.com/api/v2)

ai_documentation_summary:
  {"purpose":"The CloudConvert node enables n8n workflows to perform file conversions, create thumbnails, add watermarks, capture screenshots, merge files, generate archives, and retrieve file metadata using CloudConvert's API.","capabilities":["Convert files between formats","Create thumbnails for images, PDFs, and videos","Add watermarks to images, PDFs, and videos","Capture website screenshots and save websites as PDF","Merge multiple files into a single PDF","Create archives (e.g., ZIP, RAR) from multiple files","Retrieve file metadata (e.g., EXIF data)"],"authentication":"OAuth 2 (default) or API key (alternative)","commonUseCases":["Converting image or document files to different formats","Generating thumbnails for media files","Adding watermarks to marketing materials","Merging multiple documents into a single PDF","Saving website content as PDF via screenshot"],"limitations":[],"relatedNodes":["File operations nodes","PDF processing nodes","Image processing nodes"]}


node_type: n8n-nodes-famulor.famulor
package_name: n8n-nodes-famulor
display_name: Famulor
description: Make phone calls using AI assistants from Famulor platform
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: bekservice
author_github_url: https://github.com/bekservice/n8n-famulor.git
npm_package_name: n8n-nodes-famulor
npm_version: 1.7.0
community_fetched_at: 2026-01-07T20:08:16.102Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "Assistant",
          "value": "assistant"
        },
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "SMS",
          "value": "sms"
        },
        {
          "name": "Tool",
          "value": "tool"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "make",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a call",
          "description": "Delete a specific call record"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a call",
          "description": "Get details of a specific call by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all calls",
          "description": "List all calls with filtering options"
        },
        {
          "name": "Make",
          "value": "make",
          "action": "Make a phone call",
          "description": "Make a phone call using an AI assistant"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAssistants",
      "options": [
        {
          "name": "Get Assistants",
          "value": "getAssistants",
          "action": "Get assistants",
          "description": "Get all assistants from your account"
        },
        {
          "name": "Get Languages",
          "value": "getLanguages",
          "action": "Get languages",
          "description": "Get all available languages for assistant configuration"
        },
        {
          "name": "Get Models",
          "value": "getModels",
          "action": "Get models",
          "description": "Get all available LLM models for assistant configuration"
        },
        {
          "name": "Get Phone Numbers",
          "value": "getPhoneNumbers",
          "action": "Get phone numbers",
          "description": "Get available phone numbers for assistant assignment"
        },
        {
          "name": "Get Voices",
          "value": "getVoices",
          "action": "Get voices",
          "description": "Get all available voices for assistant configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistant"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List all campaigns",
          "description": "List all campaigns"
        },
        {
          "name": "Update Status",
          "value": "updateStatus",
          "action": "Update campaign status",
          "description": "Start or stop a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "description": "Delete a lead"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all leads",
          "description": "List all leads"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a lead",
          "description": "Update an existing lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send an SMS",
          "description": "Send an SMS message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a tool",
          "description": "Create a new mid call tool"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a tool",
          "description": "Delete a mid call tool"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a tool",
          "description": "Get a specific mid call tool by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all tools",
          "description": "List all mid call tools"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a tool",
          "description": "Update an existing mid call tool"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tool"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a call",
      "description": "Delete a specific call record"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a call",
      "description": "Get details of a specific call by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all calls",
      "description": "List all calls with filtering options"
    },
    {
      "name": "Make",
      "value": "make",
      "action": "Make a phone call",
      "description": "Make a phone call using an AI assistant"
    },
    {
      "name": "Get Assistants",
      "value": "getAssistants",
      "action": "Get assistants",
      "description": "Get all assistants from your account"
    },
    {
      "name": "Get Languages",
      "value": "getLanguages",
      "action": "Get languages",
      "description": "Get all available languages for assistant configuration"
    },
    {
      "name": "Get Models",
      "value": "getModels",
      "action": "Get models",
      "description": "Get all available LLM models for assistant configuration"
    },
    {
      "name": "Get Phone Numbers",
      "value": "getPhoneNumbers",
      "action": "Get phone numbers",
      "description": "Get available phone numbers for assistant assignment"
    },
    {
      "name": "Get Voices",
      "value": "getVoices",
      "action": "Get voices",
      "description": "Get all available voices for assistant configuration"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all campaigns",
      "description": "List all campaigns"
    },
    {
      "name": "Update Status",
      "value": "updateStatus",
      "action": "Update campaign status",
      "description": "Start or stop a campaign"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "description": "Delete a lead"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all leads",
      "description": "List all leads"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a lead",
      "description": "Update an existing lead"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send an SMS",
      "description": "Send an SMS message"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a tool",
      "description": "Create a new mid call tool"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a tool",
      "description": "Delete a mid call tool"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a tool",
      "description": "Get a specific mid call tool by ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all tools",
      "description": "List all mid call tools"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a tool",
      "description": "Update an existing mid call tool"
    }
  ]

npm_readme:
  # 🤖 Famulor for n8n

  <div align="center">

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

  **The most powerful AI calling automation for n8n workflows**

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

  [English](#english) • [Deutsch](#deutsch) • [Installation](#installation) • [Documentation](https://docs.famulor.de/)

  ---

  </div>

  ## English

  **Transform your n8n workflows with AI-powered phone calls**

  This official n8n community node integrates [Famulor](https://www.famulor.io/)'s cutting-edge AI calling platform directly into your automation workflows. Make intelligent phone calls, receive real-time call data, and automate complex communication processes with ease.

  ### Why Famulor?

  🎯 **AI-Powered Conversations** - Deploy intelligent virtual assistants that conduct natural phone conversations  
  📊 **Real-time Analytics** - Get instant call results, transcripts, and extracted data  
  🔄 **Seamless Integration** - Native n8n integration with no complex setup required  
  📱 **Global Reach** - Make calls worldwide with enterprise-grade reliability  

  ---

  ## Deutsch

  **Verwandeln Sie Ihre n8n-Workflows mit KI-gestützten Telefonanrufen**

  Dieser offizielle n8n-Community-Node integriert [Famulors](https://www.famulor.de/) hochmoderne KI-Anrufplattform direkt in Ihre Automatisierungs-Workflows. Führen Sie intelligente Telefonanrufe durch, erhalten Sie Echtzeit-Anrufdaten und automatisieren Sie komplexe Kommunikationsprozesse mit Leichtigkeit.

  ### Warum Famulor?

  🎯 **KI-gestützte Gespräche** - Setzen Sie intelligente virtuelle Assistenten ein, die natürliche Telefongespräche führen  
  📊 **Echtzeit-Analytik** - Erhalten Sie sofortige Anrufergebnisse, Transkripte und extrahierte Daten  
  🔄 **Nahtlose Integration** - Native n8n-Integration ohne komplexe Einrichtung  
  📱 **Globale Reichweite** - Führen Sie weltweit Anrufe mit Enterprise-Level-Zuverlässigkeit durch  

  ---

  ## Installation

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

  ### Deutsch
  Befolgen Sie die [Installationsanleitung](https://docs.n8n.io/integrations/community-nodes/installation/) in der n8n Community Nodes Dokumentation.

  ---

  ## Operations / Operationen

  ### English

  **Unified Node Interface** - One node, all capabilities

  When you add the **Famulor** node to your workflow, choose between:

  #### 🚀 Actions (Regular Node)
  **📞 Call Operations**
  - **Make Call**: Initiate AI-powered phone conversations
    - Select from your outbound assistants
    - Specify target phone numbers  
    - Add custom variables for personalized conversations
    - Get instant call results and data

  **🤖 Assistant Management**  
  - **Get Assistants**: Retrieve all your AI assistants
    - Fetch complete assistant configurations
    - Access assistant details (name, ID, status, capabilities)
    - Use in any workflow for dynamic assistant selection

  #### ⚡ Triggers (Webhook Node)
  **📋 Call Monitoring**
  - **Call Ended**: Real-time call completion notifications
    - Monitor specific assistants for call events
    - Receive comprehensive call data:
      - Full conversation transcripts
      - AI-extracted variables and insights
      - Call duration, status, and recordings
      - Lead and campaign information
      - Input/output variable mappings

  ### Deutsch

  **Einheitliche Node-Oberfläche** - Ein Node, alle Funktionen

  Wenn Sie den **Famulor**-Node zu Ihrem Workflow hinzufügen, wählen Sie zwischen:

  #### 🚀 Aktionen (Regulärer Node)
  **📞 Anruf-Operationen**
  - **Anruf tätigen**: KI-gestützte Telefongespräche initiieren
    - Auswahl aus Ihren ausgehenden Assistenten
    - Zieltelefonnummern angeben
    - Benutzerdefinierte Variablen für personalisierte Gespräche hinzufügen
    - Sofortige Anrufergebnisse und Daten erhalten

  **🤖 Assistenten-Verwaltung**
  - **Assistenten abrufen**: Alle Ihre KI-Assistenten abrufen
    - Vollständige Assistenten-Konfigurationen laden
    - Zugriff auf Assistenten-Details (Name, ID, Status, Fähigkeiten)
    - Verwendung in jedem Workflow für dynamische Assistenten-Auswahl

  #### ⚡ Trigger (Webhook-Node)
  **📋 Anruf-Überwachung**
  - **Anruf beendet**: Echtzeit-Benachrichtigungen bei Anrufabschluss
    - Überwachung spezifischer Assistenten für Anruf-Events
    - Umfassende Anrufdaten erhalten:
      - Vollständige Gesprächstranskripte
      - KI-extrahierte Variablen und Erkenntnisse
      - Anrufdauer, Status und Aufzeichnungen
      - Lead- und Kampagnen-Informationen
      - Input/Output-Variablen-Zuordnungen

  ---

  ## Credentials / Anmeldedaten

  ### English

  **Quick Setup in 3 Steps**

  1. **Get Your API Key**
     - Sign up at [Famulor](https://app.famulor.de/) (German) or [Famulor.io](https://www.famulor.io/) (English)
     - Navigate to your account settings
     - Generate a new API key

  2. **Configure n8n**
     - Create new credentials of type "Famulor API"
     - Enter your API key
     - Credentials are automatically validated upon save

  3. **Start Automating**
     - Your Famulor account is now connected
     - All assistants and settings sync automatically

  ### Deutsch

  **Schnelle Einrichtung in 3 Schritten**

  1. **API-Schlüssel erhalten**
     - Registrieren Sie sich bei [Famulor](https://app.famulor.de/) (Deutsch) oder [Famulor.io](https://www.famulor.io/) (Englisch)
     - Gehen Sie zu Ihren Kontoeinstellungen
     - Generieren Sie einen neuen API-Schlüssel

  2. **n8n konfigurieren**
     - Erstellen Sie neue Anmeldedaten vom Typ "Famulor API"
     - Geben Sie Ihren API-Schlüssel ein
     - Anmeldedaten werden beim Speichern automatisch validiert

  3. **Automatisierung starten**
     - Ihr Famulor-Konto ist jetzt verbunden
     - Alle Assistenten und Einstellungen synchronisieren automatisch

  ---

  ## Compatibility / Kompatibilität

  ### English
  - **Minimum n8n version**: 0.36.1
  - **Tested with**: n8n 1.0.0+
  - **Platform support**: All n8n deployment types

  ### Deutsch
  - **Minimale n8n-Version**: 0.36.1
  - **Getestet mit**: n8n 1.0.0+
  - **Plattform-Unterstützung**: Alle n8n-Deployment-Typen

  ---

  ## Usage / Verwendung

  ### English

  #### 🎯 Getting Started

  1. **Add the Famulor Node** to your workflow
  2. **Choose your mode**: Action (for outbound operations) or Trigger (for receiving data)
  3. **Configure credentials** using your Famulor API key
  4. **Start automating** your phone operations

  #### 📞 Making Phone Calls (Actions)

  **Quick Setup:**
  1. Select **Action** → **Call** → **Make**
  2. Choose your **outbound assistant** (loaded from your account)
  3. Enter the **target phone number**
  4. Add **custom variables** for personalized conversations:
     ```
     customer_name: "John Smith"
     order_id: "12345"
     appointment_time: "3 PM"
     ```
  5. **Execute** and receive instant results

  #### 🤖 Managing Assistants (Actions)

  **Retrieve All Assistants:**
  1. Select **Action** → **Assistant** → **Get Assistants**
  2. Fetches all assistants with complete configuration data
  3. Use for dynamic assistant selection in complex workflows

  #### ⚡ Real-time Call Monitoring (Triggers)

  **Setup Webhook Triggers:**
  1. Select **Trigger** → **Call** → **Call Ended**
  2. Choose which **assistant to monitor**
  3. Copy the **generated webhook URL**
  4. **Important**: Add this URL to your assistant settings in Famulor dashboard
  5. Enable webhook notifications in your assistant configuration

  **Data You Receive:**
  - 📋 Complete call transcripts and recordings
  - 📊 AI-extracted variables and insights
  - ⏱️ Call duration, timestamps, and status
  - 📱 Phone numbers and participant details
  - 🎯 Campaign and lead information (if applicable)

  ### Deutsch

  #### 🎯 Erste Schritte

  1. **Famulor-Node hinzufügen** zu Ihrem Workflow
  2. **Modus wählen**: Aktion (für ausgehende Operationen) oder Trigger (für Datenempfang)
  3. **Anmeldedaten konfigurieren** mit Ihrem Famulor-API-Schlüssel
  4. **Automatisierung starten** Ihrer Telefon-Operationen

  #### 📞 Telefonanrufe tätigen (Aktionen)

  **Schnelle Einrichtung:**
  1. Wählen Sie **Aktion** → **Call** → **Make**
  2. Wählen Sie Ihren **ausgehenden Assistenten** (aus Ihrem Konto geladen)
  3. Geben Sie die **Zieltelefonnummer** ein
  4. Fügen Sie **benutzerdefinierte Variablen** für personalisierte Gespräche hinzu:
     ```
     kundenname: "Max Mustermann"
     bestell_id: "12345"
     termin_zeit: "15 Uhr"
     ```
  5. **Ausführen** und sofortige Ergebnisse erhalten

  #### 🤖 Assistenten verwalten (Aktionen)

  **Alle Assistenten abrufen:**
  1. Wählen Sie **Aktion** → **Assistant** → **Get Assistants**
  2. Lädt alle Assistenten mit vollständigen Konfigurationsdaten
  3. Verwenden Sie für dynamische Assistenten-Auswahl in komplexen Workflows

  #### ⚡ Echtzeit-Anrufüberwachung (Trigger)

  **Webhook-Trigger einrichten:**
  1. Wählen Sie **Trigger** → **Call** → **Call Ended**
  2. Wählen Sie, welchen **Assistenten Sie überwachen** möchten
  3. Kopieren Sie die **generierte Webhook-URL**
  4. **Wichtig**: Fügen Sie diese URL in Ihre Assistenten-Einstellungen im Famulor-Dashboard hinzu
  5. Aktivieren Sie Webhook-Benachrichtigungen in Ihrer Assistenten-Konfiguration

  **Erhaltene Daten:**
  - 📋 Vollständige Anruftranskripte und Aufzeichnungen
  - 📊 KI-extrahierte Variablen und Erkenntnisse
  - ⏱️ Anrufdauer, Zeitstempel und Status
  - 📱 Telefonnummern und Teilnehmerdetails
  - 🎯 Kampagnen- und Lead-Informationen (falls zutreffend)

  ---

  ## Resources / Ressourcen

  ### English

  📚 **Documentation & Guides**
  - [Famulor Documentation](https://docs.famulor.de/) - Complete platform documentation  
  - [Famulor API Reference](https://docs.famulor.de/api-reference/) - Technical API documentation
  - [n8n Community Nodes Guide](https://docs.n8n.io/integrations/#community-nodes) - n8n integration docs

  🌐 **Platforms & Support**
  - [Famulor.io](https://www.famulor.io/) - English platform & signup
  - [Famulor.de](https://www.famulor.de/) - German platform & signup  
  - [Famulor App](https://app.famulor.de/) - Login to your dashboard

  ### Deutsch

  📚 **Dokumentation & Anleitungen**
  - [Famulor-Dokumentation](https://docs.famulor.de/) - Vollständige Plattform-Dokumentation
  - [Famulor-API-Referenz](https://docs.famulor.de/api-reference/) - Technische API-Dokumentation  
  - [n8n-Community-Nodes-Anleitung](https://docs.n8n.io/integrations/#community-nodes) - n8n-Integrations-Dokumentation

  🌐 **Plattformen & Support**
  - [Famulor.io](https://www.famulor.io/) - Englische Plattform & Anmeldung
  - [Famulor.de](https://www.famulor.de/) - Deutsche Plattform & Anmeldung
  - [Famulor App](https://app.famulor.de/) - Anmeldung zu Ihrem Dashboard

  ---

  ## About Famulor / Über Famulor

  ### English

  Famulor is the leading AI-powered calling platform that revolutionizes business communications. Our intelligent virtual assistants conduct natural phone conversations, extract meaningful data, and integrate seamlessly into your existing workflows.

  **Why Choose Famulor?**
  - 🧠 **Advanced AI** - GPT-powered conversations that sound human  
  - 🔒 **Enterprise Security** - GDPR-compliant with enterprise-grade encryption
  - 🌍 **Global Scale** - Make calls worldwide with local presence
  - 📈 **Proven Results** - Trusted by businesses across industries

  ### Deutsch

  Famulor ist die führende KI-gestützte Anrufplattform, die die Geschäftskommunikation revolutioniert. Unsere intelligenten virtuellen Assistenten führen natürliche Telefongespräche, extrahieren aussagekräftige Daten und integrieren sich nahtlos in Ihre bestehenden Workflows.

  **Warum Famulor wählen?**
  - 🧠 **Fortgeschrittene KI** - GPT-gestützte Gespräche, die menschlich klingen
  - 🔒 **Unternehmenssicherheit** - DSGVO-konform mit Enterprise-Level-Verschlüsselung  
  - 🌍 **Globale Reichweite** - Weltweite Anrufe mit lokaler Präsenz
  - 📈 **Bewährte Ergebnisse** - Vertrauen von Unternehmen aller Branchen

  ---

  <div align="center">

  **Ready to automate your phone calls? / Bereit, Ihre Telefonanrufe zu automatisieren?**

  [🚀 Get Started with Famulor](https://app.famulor.de/) • [📖 Read the Docs](https://docs.famulor.de/) • [💬 Get Support](https://www.famulor.io/support)

  *Built with ❤️ by the Famulor team*

  </div>

ai_documentation_summary:
  {"purpose":"The Famulor node enables AI-powered phone calling within n8n workflows, allowing users to initiate intelligent phone conversations using virtual assistants, monitor call events in real time, and extract valuable data such as transcripts and extracted variables.","capabilities":["Make AI-powered phone calls using predefined or custom assistants","Retrieve and manage AI assistants (names, IDs, status, capabilities)","Receive real-time call data including transcripts, call duration, status, and extracted variables","Monitor call completion events via webhook triggers","Access lead and campaign information from calls","Map input and output variables during conversations"],"authentication":"API key required","commonUseCases":["Automating outbound sales calls with personalized AI assistants","Collecting customer insights from call transcripts and AI-extracted data","Monitoring call performance and tracking lead generation","Integrating call data into CRM or marketing automation systems","Real-time call analytics for customer service operations"],"limitations":[],"relatedNodes":["Webhook Node","Action Node","Trigger Node","CRM Integration Nodes"]}


node_type: @ekyte/n8n-nodes-ekyte.eKyteAction
package_name: @ekyte/n8n-nodes-ekyte
display_name: eKyte
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: lucassebold
author_github_url: https://github.com/ekyte/n8n-nodes-ekyte.git
npm_package_name: @ekyte/n8n-nodes-ekyte
npm_version: 1.1.0
community_fetched_at: 2026-01-07T20:08:16.103Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Create and retrieve data from eKyte (tasks, projects, tickets, boards, workspaces, notes, notifications)

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Board",
          "value": "board"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Notification",
          "value": "notifications"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Ticket",
          "value": "ticket"
        },
        {
          "name": "Workspace",
          "value": "workspaces"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createBoard",
      "options": [
        {
          "name": "Create",
          "value": "createBoard",
          "action": "Create board",
          "description": "Create a new board for organizing notes and planning content"
        },
        {
          "name": "Get All",
          "value": "getBoards",
          "action": "Get all boards",
          "description": "Retrieve all boards accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "board"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createNote",
      "options": [
        {
          "name": "Create",
          "value": "createNote",
          "action": "Create note",
          "description": "Create a new note inside a board with title, content, and category"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createProject",
      "options": [
        {
          "name": "Create",
          "value": "createProject",
          "action": "Create project",
          "description": "Create a new project to group related tasks and track progress"
        },
        {
          "name": "Get All",
          "value": "getProjects",
          "action": "Get all projects",
          "description": "Retrieve all projects accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTask",
      "options": [
        {
          "name": "Create",
          "value": "createTask",
          "action": "Create task",
          "description": "Create a new task in eKyte with title, dates, priority, and assignment"
        },
        {
          "name": "Get",
          "value": "getTask",
          "action": "Get task",
          "description": "Retrieve a single task by its unique ID"
        },
        {
          "name": "Get Many (with Filters)",
          "value": "getManyTasks",
          "action": "Get many tasks with filters",
          "description": "Search and filter tasks by title, status, workspace, executor, squad, project, or date range"
        },
        {
          "name": "Get Recent",
          "value": "getTasks",
          "action": "Get recent tasks",
          "description": "Get tasks created or updated in the last 15 minutes (basic info)"
        },
        {
          "name": "Get Recent (with Phase)",
          "value": "getTasksPhase",
          "action": "Get recent tasks with phase",
          "description": "Get tasks created or updated in the last 15 minutes including current phase/stage information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTicket",
      "options": [
        {
          "name": "Create",
          "value": "createTicket",
          "action": "Create ticket",
          "description": "Create a new ticket with subject, type, priority, and requester information"
        },
        {
          "name": "Get Concluded",
          "value": "getTicketsClosed",
          "action": "Get concluded tickets",
          "description": "Get tickets that were concluded/closed in the last 15 minutes"
        },
        {
          "name": "Get Updated",
          "value": "getTicketsChanged",
          "action": "Get updated tickets",
          "description": "Get tickets that had any changes/updates in the last 15 minutes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getNotifications",
      "options": [
        {
          "name": "Get All",
          "value": "getNotifications",
          "action": "Get all notifications",
          "description": "Retrieve all unread notifications for the specified user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notifications"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createWorkspace",
      "options": [
        {
          "name": "Create",
          "value": "createWorkspace",
          "action": "Create workspace",
          "description": "Create a new workspace for a team or department"
        },
        {
          "name": "Get All",
          "value": "getWorkspaces",
          "action": "Get all workspaces",
          "description": "Retrieve all workspaces accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspaces"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "createBoard",
      "action": "Create board",
      "description": "Create a new board for organizing notes and planning content"
    },
    {
      "name": "Get All",
      "value": "getBoards",
      "action": "Get all boards",
      "description": "Retrieve all boards accessible to the authenticated user"
    },
    {
      "name": "Create",
      "value": "createNote",
      "action": "Create note",
      "description": "Create a new note inside a board with title, content, and category"
    },
    {
      "name": "Create",
      "value": "createProject",
      "action": "Create project",
      "description": "Create a new project to group related tasks and track progress"
    },
    {
      "name": "Get All",
      "value": "getProjects",
      "action": "Get all projects",
      "description": "Retrieve all projects accessible to the authenticated user"
    },
    {
      "name": "Create",
      "value": "createTask",
      "action": "Create task",
      "description": "Create a new task in eKyte with title, dates, priority, and assignment"
    },
    {
      "name": "Get",
      "value": "getTask",
      "action": "Get task",
      "description": "Retrieve a single task by its unique ID"
    },
    {
      "name": "Get Many (with Filters)",
      "value": "getManyTasks",
      "action": "Get many tasks with filters",
      "description": "Search and filter tasks by title, status, workspace, executor, squad, project, or date range"
    },
    {
      "name": "Get Recent",
      "value": "getTasks",
      "action": "Get recent tasks",
      "description": "Get tasks created or updated in the last 15 minutes (basic info)"
    },
    {
      "name": "Get Recent (with Phase)",
      "value": "getTasksPhase",
      "action": "Get recent tasks with phase",
      "description": "Get tasks created or updated in the last 15 minutes including current phase/stage information"
    },
    {
      "name": "Create",
      "value": "createTicket",
      "action": "Create ticket",
      "description": "Create a new ticket with subject, type, priority, and requester information"
    },
    {
      "name": "Get Concluded",
      "value": "getTicketsClosed",
      "action": "Get concluded tickets",
      "description": "Get tickets that were concluded/closed in the last 15 minutes"
    },
    {
      "name": "Get Updated",
      "value": "getTicketsChanged",
      "action": "Get updated tickets",
      "description": "Get tickets that had any changes/updates in the last 15 minutes"
    },
    {
      "name": "Get All",
      "value": "getNotifications",
      "action": "Get all notifications",
      "description": "Retrieve all unread notifications for the specified user"
    },
    {
      "name": "Create",
      "value": "createWorkspace",
      "action": "Create workspace",
      "description": "Create a new workspace for a team or department"
    },
    {
      "name": "Get All",
      "value": "getWorkspaces",
      "action": "Get all workspaces",
      "description": "Retrieve all workspaces accessible to the authenticated user"
    }
  ]

npm_readme:
  # n8n-nodes-ekyte

  This is an n8n community node that lets you integrate with the eKyte API to manage tasks, projects, tickets, boards, workspaces, notes, and notifications.

  eKyte is a Digital Marketing Management Platform for High Performance.

  ## AI Tool Support

  This node is configured with `usableAsTool: true`, which means it can be used as a tool by AI agents in n8n. All operations have detailed descriptions to help AI understand and use each field correctly.

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-ekyte` in **Enter npm package name**
  4. Agree to the risks of using community nodes
  5. Select **Install**

  After installation, the eKyte node will be available in your n8n workflows.

  ### Manual Installation

  To install this node locally:

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

  ## Credentials

  You'll need to configure the eKyte API credentials:

  1. **API Key**: Your eKyte API key
  2. **Company ID**: Your eKyte company identifier

  To obtain these credentials:

  1. Log into your eKyte account
  2. Navigate to your API settings
  3. Generate an API key if you don't have one
  4. Note your Company ID

  ## Resources and Operations

  The eKyte node is organized by resources, each with specific operations:

  ### Board

  - **Create**: Create a new board for organizing notes and planning content
  - **Get All**: Retrieve all boards accessible to the authenticated user

  ### Note

  - **Create**: Create a new note inside a board with title, content, and category

  ### Project

  - **Create**: Create a new project to group related tasks and track progress
  - **Get All**: Retrieve all projects accessible to the authenticated user

  ### Task

  - **Create**: Create a new task with title, dates, priority, and assignment
  - **Get**: Retrieve a single task by its unique ID
  - **Get Many (with Filters)**: Search and filter tasks by title, status, workspace, executor, squad, project, or date range
  - **Get Recent**: Retrieve tasks created or updated in the last 15 minutes (basic info)
  - **Get Recent (with Phase)**: Retrieve tasks with phase/stage information from the last 15 minutes

  ### Ticket

  - **Create**: Create a new support ticket with subject, type, priority, and requester information
  - **Get Concluded**: Retrieve tickets that were concluded/closed in the last 15 minutes
  - **Get Updated**: Retrieve tickets that had any changes/updates in the last 15 minutes

  ### Notification

  - **Get All**: Retrieve all unread notifications for the specified user

  ### Workspace

  - **Create**: Create a new workspace for a team or department
  - **Get All**: Retrieve all workspaces accessible to the authenticated user

  ## Node Usage

  1. Add the eKyte node to your workflow
  2. Configure your eKyte API credentials
  3. Select the desired resource (Board, Note, Project, Task, Ticket, Notification, or Workspace)
  4. Choose the operation for the selected resource
  5. Provide the required user email (when applicable)
  6. Configure operation-specific parameters
  7. Execute the workflow

  ## API Reference

  This node integrates with the eKyte API at `https://api.ekyte.com/n8n`. For detailed API documentation, visit the [eKyte integration guide](https://www.ekyte.com/guide/pt-br/suporte/integracao-com-n8n/).

  ## Version History

  - **1.0.0**: Initial release with core eKyte operations

  ## Requirements

  - n8n version 1.0.0 or higher
  - Node.js 20.15 or higher
  - Valid eKyte account with API access

  ## Support

  For issues, questions, or feature requests:

  - Create an issue in the [GitHub repository](https://github.com/ekyte/n8n-nodes-ekyte)
  - Contact the eKyte support team at atendimento@ekyte.com

  ## License

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

  ## Contributing

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

  ## Rate Limiting

  This node implements rate limiting to prevent excessive calls and backend overload:

  - **Get Operations**: Have a 5-minute rate limit for the same operation to avoid excessive calls
  - **Create Operations**: No rate limiting applied, allowing unrestricted resource creation

ai_documentation_summary:
  {"purpose":"The eKyte node enables integration with the eKyte platform to create, retrieve, and manage data such as tasks, projects, tickets, boards, workspaces, notes, and notifications within n8n workflows.","capabilities":["Create and retrieve boards","Create and retrieve notes","Create and retrieve projects","Create, get, filter, and retrieve tasks with various filters and time-based options","Create and retrieve support tickets","Retrieve unread notifications","Create and retrieve workspaces"],"authentication":"API key and Company ID required; obtained from eKyte account API settings","commonUseCases":["Automating task creation and tracking in marketing workflows","Syncing project updates and status changes to external tools","Monitoring support tickets and notifications in real time","Organizing content planning with boards and notes","Managing team workspaces and project progress"],"limitations":["Rate limiting applies to get operations (5-minute limit per operation)","Create operations have no rate limit but may be subject to eKyte backend limits","No support for advanced filtering or pagination beyond what is specified in the operations"],"relatedNodes":["Task management nodes","Project tracking nodes","Notification monitoring nodes","Content planning nodes"]}


node_type: n8n-nodes-deeptagger.deepTagger
package_name: n8n-nodes-deeptagger
display_name: DeepTagger
description: Extract structured data from documents using DeepTagger
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: deeptagger
author_github_url: https://github.com/deeptaggerhq/
npm_package_name: n8n-nodes-deeptagger
npm_version: 0.1.7
community_fetched_at: 2026-01-07T20:08:16.103Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "extractData",
      "options": [
        {
          "name": "Extract Data",
          "value": "extractData",
          "action": "Extract data from document",
          "description": "Extract structured data from a document"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract Data",
      "value": "extractData",
      "action": "Extract data from document",
      "description": "Extract structured data from a document"
    }
  ]

npm_readme:
  <div align="center">
    <img src="https://raw.githubusercontent.com/deeptaggerhq/n8n-nodes-deeptagger/master/nodes/DeepTagger/deeptagger.svg" alt="DeepTagger Logo" width="200"/>
    <h1>DeepTagger</h1>
    <p><strong>n8n-nodes-deeptagger</strong></p>
  </div>

  This is an n8n community node that integrates [DeepTagger](https://deeptagger.com) into your n8n workflows. DeepTagger is an AI-powered document intelligence platform that automatically extracts structured data from documents like invoices, receipts, forms, and contracts.

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

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

  ## What is DeepTagger?

  DeepTagger uses machine learning to extract structured information from documents automatically. Instead of writing complex extraction rules, you simply annotate a few example documents, and DeepTagger learns to extract similar data from new documents. It's perfect for automating data entry from invoices, receipts, forms, contracts, and other business documents.

  ## What does this node do?

  The DeepTagger node allows you to:
  - **Extract structured data** from documents (PDF, images, text) using pre-trained DeepTagger projects
  - **Process both files and text** - upload documents or send text directly
  - **Return structured JSON** - get clean, structured data ready for use in your workflows
  - **Automate document processing** - integrate document intelligence into your automation workflows

  ## Prerequisites

  - An active [DeepTagger account](https://deeptagger.com)
  - A DeepTagger API key (available in your account settings)
  - At least one trained DeepTagger project with a Project ID

  ## Installation

  ### For n8n Cloud users

  n8n Cloud users can install this node directly from the n8n interface once it has been verified by the n8n team.

  ### For self-hosted n8n instances

  Install the node using npm:

  ```bash
  npm install n8n-nodes-deeptagger
  ```

  Then restart your n8n instance. The DeepTagger node should now appear in your node list.

  Alternatively, you can install it directly from the n8n interface by going to **Settings > Community Nodes** and entering `n8n-nodes-deeptagger`.

  ## Credentials

  To use this node, you'll need to configure your DeepTagger API credentials:

  1. In n8n, click on **Credentials** in the left sidebar
  2. Click **New Credential**
  3. Search for and select **DeepTagger API**
  4. Enter your credentials:
     - **API Key**: Your DeepTagger API key (find this in your DeepTagger account settings)
     - **Base URL**: Leave as default (`https://deeptagger.com/api/v1`) unless using a custom deployment
  5. Click **Save**

  ## Operations

  ### Extract Data

  Extracts structured data from a document or text using a trained DeepTagger project.

  **Parameters:**
  - **Project ID** (required): The ID of your DeepTagger project (e.g., `fo_1759714105892`)
    - Find your Project ID by browsing to https://deeptagger.com/das/fos and opening a project - the ID will be in the URL
  - **Input Type**: Choose between `File` (default) or `Text`
    - **File**: Upload a document (PDF, image, etc.) from a binary property
    - **Text**: Send raw text for extraction
  - **Binary Property** (for File input): Name of the binary property containing the file (default: `data`)
  - **Text** (for Text input): The text content to extract data from

  ## Usage

  ### Example 1: Extract Invoice Data from Uploaded Files

  **Workflow:**
  1. **Webhook Trigger** - Receive file upload
  2. **DeepTagger Node** - Extract invoice data
     - Operation: `Extract Data`
     - Project ID: `fo_1759714105892` (your invoice extraction project)
     - Input Type: `File`
     - Binary Property: `data`
  3. **Process Data** - Use extracted fields (invoice number, total, date, etc.) in subsequent nodes

  **Use Case:** Automatically extract invoice details from uploaded PDFs and save them to your accounting system or database.

  ### Example 2: Extract Receipt Data from Email Attachments

  **Workflow:**
  1. **Email Trigger** - Monitor inbox for new emails with attachments
  2. **Filter** - Only process emails with PDF or image attachments
  3. **DeepTagger Node** - Extract receipt data
     - Project ID: Your receipt extraction project ID
     - Input Type: `File`
  4. **Spreadsheet Node** - Add extracted data to Google Sheets or Airtable

  **Use Case:** Process expense receipts sent via email and automatically log them in a spreadsheet.

  ### Example 3: Extract Form Data from Text

  **Workflow:**
  1. **Webhook Trigger** - Receive form submission as text
  2. **DeepTagger Node** - Extract structured fields
     - Operation: `Extract Data`
     - Project ID: Your form extraction project ID
     - Input Type: `Text`
     - Text: `{{$json["formContent"]}}`
  3. **CRM Node** - Create or update contact with extracted data

  **Use Case:** Parse unstructured form submissions and create structured records in your CRM.

  ### Example 4: Batch Process Documents from Cloud Storage

  **Workflow:**
  1. **Schedule Trigger** - Run daily at midnight
  2. **Google Drive Node** - List new PDFs in a specific folder
  3. **Loop Over Items**
  4. **DeepTagger Node** - Extract data from each document
  5. **Database Node** - Insert extracted data
  6. **Google Drive Node** - Move processed files to archive folder

  **Use Case:** Automatically process new documents uploaded to a shared drive overnight.

  ### Example 5: Extract Contract Details for Legal Review

  **Workflow:**
  1. **Dropbox Trigger** - Monitor contracts folder
  2. **DeepTagger Node** - Extract key contract terms
     - Project ID: Your contract extraction project ID
     - Input Type: `File`
  3. **Slack Node** - Send notification with extracted terms to legal team
  4. **Airtable Node** - Create contract record with extracted metadata

  **Use Case:** Automatically extract and catalog key terms from new contracts for review and tracking.

  ## Troubleshooting

  ### Error: "No API key found in request"

  **Solution:** Make sure you've configured your DeepTagger API credentials correctly. The API key must be set in the credentials and properly selected in the node.

  ### Error: "Project not found" or 404

  **Solution:** Verify your Project ID is correct. You can find it in the URL when viewing your project at https://deeptagger.com/das/fos.

  ### Node not appearing in n8n

  **Solution:**
  - Restart your n8n instance after installation
  - Check that the package is installed: `npm list n8n-nodes-deeptagger`
  - For n8n Cloud, wait for the node to be verified by the n8n team

  ### Extraction results are not accurate

  **Solution:**
  - This node uses your trained DeepTagger projects. If results aren't accurate, you may need to:
    - Add more training examples in DeepTagger
    - Review and correct annotations in your project
    - Check that you're using the correct Project ID for the document type

  ### Binary data / file upload issues

  **Solution:**
  - Ensure the previous node outputs binary data in the property you specified (default: `data`)
  - Use the **Move Binary Data** node if needed to reorganize your binary properties
  - Check that the file type is supported by your DeepTagger project

  ## Resources

  - [DeepTagger Documentation](https://deeptagger.com/docs)
  - [DeepTagger Dashboard](https://deeptagger.com/das/fos)
  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community Forum](https://community.n8n.io)

  ## Support

  For issues related to:
  - **This n8n node**: Open an issue on [GitHub](https://github.com/deeptaggerhq/n8n-nodes-deeptagger/issues)
  - **DeepTagger API or platform**: Contact support@deeptagger.com
  - **n8n platform**: Visit the [n8n community forum](https://community.n8n.io)

  ## License

  [MIT](LICENSE)

  ## Version History

  ### 0.1.0 (2025-01-06)
  - Initial release
  - Extract Data operation with file and text input support

ai_documentation_summary:
  {"purpose":"The DeepTagger node extracts structured data from documents such as invoices, receipts, forms, and contracts using AI-powered machine learning models trained on user-annotated examples, returning clean JSON output for integration into n8n workflows.","capabilities":["Extract structured data from PDFs, images, and text","Supports both file and text input types","Returns structured JSON data ready for downstream processing","Automates data entry from unstructured documents","Works with pre-trained DeepTagger projects"],"authentication":"API key required via DeepTagger credentials configuration","commonUseCases":["Extract invoice details from uploaded PDFs","Process expense receipts from email attachments","Parse form submissions sent as text","Batch process documents from cloud storage (e.g., Google Drive, Dropbox)","Extract contract terms for legal review and tracking"],"limitations":[],"relatedNodes":["Webhook","Email","Google Drive","Dropbox","Spreadsheet"]}


node_type: @aotoki/n8n-nodes-line-messaging.lineMessaging
package_name: @aotoki/n8n-nodes-line-messaging
display_name: Line Messaging
description: Interact with the Line Messaging API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: elct9620
author_github_url: https://github.com/elct9620/n8n-nodes-line-messaging.git
npm_package_name: @aotoki/n8n-nodes-line-messaging
npm_version: 0.10.0
community_fetched_at: 2026-01-07T20:08:16.104Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "reply",
      "options": [
        {
          "name": "Get Profile",
          "value": "getProfile",
          "action": "Retrieve profile information of a user",
          "description": "Retrieve profile information of a user"
        },
        {
          "name": "Multicast",
          "value": "multicast",
          "action": "Send a message to multiple users",
          "description": "Send a message to multiple users"
        },
        {
          "name": "Reply",
          "value": "reply",
          "action": "Reply to a message using a reply token",
          "description": "Reply to a message using a reply token"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a message to a user",
          "description": "Send a message to a user"
        },
        {
          "name": "Show Loading Animation",
          "value": "showLoadingAnimation",
          "action": "Display a loading animation to a user",
          "description": "Display a loading animation to a user"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Profile",
      "value": "getProfile",
      "action": "Retrieve profile information of a user",
      "description": "Retrieve profile information of a user"
    },
    {
      "name": "Multicast",
      "value": "multicast",
      "action": "Send a message to multiple users",
      "description": "Send a message to multiple users"
    },
    {
      "name": "Reply",
      "value": "reply",
      "action": "Reply to a message using a reply token",
      "description": "Reply to a message using a reply token"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send a message to a user",
      "description": "Send a message to a user"
    },
    {
      "name": "Show Loading Animation",
      "value": "showLoadingAnimation",
      "action": "Display a loading animation to a user",
      "description": "Display a loading animation to a user"
    }
  ]

npm_readme:
  # n8n-nodes-line-messaging

  This is an n8n community node. It lets you use LINE Messaging API in your n8n workflows.

  LINE Messaging API enables developers to build chatbots and integrate messaging features into their services with the LINE platform, which is especially popular in Japan, Thailand, Taiwan, and other parts of Asia.

  [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)
  - [Development](#development)
  - [Resources](#resources)

  ## Installation

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

  ```bash
  npm install @aotoki/n8n-nodes-line-messaging
  ```

  ## Operations

  This node provides the following operations:

  ### Line Messaging Node

  - **Reply**: Reply to a user's message using the replyToken
  - **Send**: Proactively send messages to users using their User ID
  - **Multicast**: Send messages to multiple users simultaneously (up to 500 recipients)
  - **Get Profile**: Retrieve user profile information

  ### Line Messaging Data Node

  - **Get Content**: Retrieve content (images, videos, audio, files) from message IDs

  ### Line Messaging Trigger Node

  - **Webhook**: Receive events from LINE Messaging API

  ## Credentials

  You need to set up a LINE Bot channel in the [LINE Developers Console](https://developers.line.biz/console/) before using this node.

  1. Create a new provider and channel in the LINE Developers Console
  2. Enable the Messaging API option
  3. Get your Channel Secret and Channel Access Token from the Basic Settings and Messaging API tabs
  4. Use these credentials when setting up the node in n8n

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Built without external dependencies to comply with n8n verified node requirements

  ## Usage

  ### Setting up a LINE Bot Webhook

  1. Create a workflow with the LINE Messaging Trigger node
  2. Configure the node to listen for the events you're interested in
  3. Copy the webhook URL from the trigger node
  4. Set this URL as your webhook URL in the LINE Developers Console
  5. Add a verification step in your workflow to validate the signature using the Channel Secret

  ### Responding to Messages

  1. When a message is received, your workflow will be triggered
  2. You can access the `replyToken` from the trigger output
  3. Use the LINE Messaging node with the "Reply" operation to send a response
  4. Set the reply token and add the messages you want to send

  ### Sending Proactive Messages

  1. Use the LINE Messaging node with the "Send" operation
  2. Provide the User ID of the recipient (format: U1234567890abcdef...)
  3. Add the messages you want to send
  4. This allows sending messages without waiting for user interaction

  ### Sending Bulk Messages (Multicast)

  1. Use the LINE Messaging node with the "Multicast" operation
  2. Provide comma-separated User IDs (e.g., "U1234..., U5678..., U9012...")
  3. Add the messages you want to send to all recipients
  4. Supports up to 500 recipients per operation for efficient bulk messaging

  ### Getting User Profiles

  1. Use the LINE Messaging node with the "Get Profile" operation
  2. Provide the User ID to retrieve profile information
  3. Get user's display name, profile picture, and status message

  ### Retrieving Media Content

  1. When a media message (image, video, audio, file) is received, you get a message ID
  2. Use the LINE Messaging Data node with the "Get Content" operation
  3. Provide the message ID to download the content as binary data
  4. The content can then be processed, saved, or sent to other services

  ### Example: Simple Echo Bot

  This example workflow receives messages and echoes them back to the user:

  1. Add a LINE Messaging Trigger node and configure it to listen for "message" events
  2. Add a LINE Messaging node configured to "Reply"
  3. Set the "Reply Token" field to use the replyToken from the trigger output: `{{$json.replyToken}}`
  4. Add a text message with the content: `You said: {{$json.message.text}}`

  ## Features

  - **Multiple Messaging Types**: Reply to messages, send to individuals, or multicast to groups
  - **Bulk Messaging**: Send to up to 500 recipients simultaneously with multicast operation
  - **Text Messages (V2)**: Send text messages with quote tokens and quick reply buttons
  - **Quick Replies**: Add postback and message action buttons to messages
  - **Quote Messages**: Reference previous messages in conversations
  - **User Profiles**: Retrieve user display names, pictures, and status messages
  - **Media Content**: Download images, videos, audio files, and documents
  - **Webhook Events**: Receive all LINE webhook events for comprehensive bot functionality
  - **No External Dependencies**: Built using only n8n-workflow types and Node.js built-ins

  ## Development

  To develop and test this node locally:

  ```bash
  # Clone the repository
  git clone git@github.com:elct9620/n8n-nodes-line-messaging.git
  cd n8n-nodes-line-messaging

  # Install dependencies
  pnpm install

  # Start the development server
  pnpm n8n-node dev
  ```

  The `pnpm n8n-node dev` command will start a local n8n instance with the node loaded for development and testing. This replaces the previous Docker-based development setup.

  For more development commands, see the available scripts:

  ```bash
  # Build the project
  pnpm build

  # Run linting
  pnpm lint

  # Format code
  pnpm format
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [LINE Messaging API documentation](https://developers.line.biz/en/docs/messaging-api/)
  - [LINE Bot Designer](https://developers.line.biz/en/services/bot-designer/)

ai_documentation_summary:
  {"purpose":"The Line Messaging node enables integration with the LINE Messaging API to send messages, retrieve user profiles, download media content, and receive webhook events in n8n workflows, supporting chatbot development and messaging automation across Asia.","capabilities":["Reply to user messages using replyToken","Send proactive messages to individual users via User ID","Multicast messages to up to 500 recipients simultaneously","Retrieve user profile information (name, picture, status message)","Download media content (images, videos, audio, files) from message IDs","Receive webhook events from LINE Messaging API","Send text messages with quote tokens and quick reply buttons","Add postback and message action buttons to messages"],"authentication":"API key required: Channel Access Token and Channel Secret obtained from LINE Developers Console","commonUseCases":["Building a chatbot that responds to user messages","Sending proactive notifications to users","Bulk messaging campaigns to multiple users","Retrieving user profile data for personalization","Processing media files received via LINE messages"],"limitations":["Multicast is limited to 500 recipients per operation","No support for LINE's advanced features like location sharing or stickers beyond basic message types","Requires a LINE Bot channel with Messaging API enabled"],"relatedNodes":["Webhook Trigger","Message Processing","File Handling","User Data Retrieval"]}


package_name: @digitalocean/n8n-nodes-digitalocean-gradient-serverless-inference
display_name: DigitalOcean Gradient™ AI Serverless Inference
description: Consume DigitalOcean Gradient™ AI Serverless Inference
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: digitalocean-eng
author_github_url: https://github.com/digitalocean-labs/n8n-node-gradient-serverless-inference.git
npm_package_name: @digitalocean/n8n-nodes-digitalocean-gradient-serverless-inference
npm_version: 1.0.6
community_fetched_at: 2026-01-07T20:08:16.105Z
ai_summary_generated_at: 2026-01-08 10:45:32
node_type:
  @digitalocean/n8n-nodes-digitalocean-gradient-serverless-inference.digitalOceanGradientServerlessInference

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "complete",
      "options": [
        {
          "name": "Complete",
          "value": "complete",
          "action": "Create a text completion",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/chat/completions",
              "method": "POST"
            }
          },
          "description": "Create one or more completions for a given text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Complete",
      "value": "complete",
      "action": "Create a text completion",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/chat/completions",
          "method": "POST"
        }
      },
      "description": "Create one or more completions for a given text"
    }
  ]

npm_readme:
  # n8n-nodes-digitalocean-serverless-inference

  This is an n8n community node for the [DigitalOcean Gradient™ AI Platform Serverless Inference API](https://gradientai-sdk.digitalocean.com/api/resources/chat/). It provides access to DigitalOcean Gradient™ AI Platform's large language models through n8n workflows.

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

  [Installation](#installation)   
  [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.

  ### Quick Installation

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `@digitalocean/n8n-nodes-digitalocean-serverless-inference` in **Enter npm package name**
  4. Agree to the risks of using community nodes
  5. Select **Install**

  **Note:** After installation, you need to restart your n8n instance for the new node to be recognized.

  ### Chat Completion

  Create chat completions using DigitalOcean Gradient™ AI Serverless Inference LLMs. The node supports:

  - Multiple messages with system, user, and assistant roles
  - [Multiple Models](https://docs.digitalocean.com/products/gradient-ai-platform/details/models/)
  - Customizable parameters conforming to the [API Specification](https://gradientai-sdk.digitalocean.com/api/resources/chat/subresources/completions/methods/create)

  ## Credentials

  To use this node, you need a [Model Access Key](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/use-serverless-inference/#create) from DigitalOcean Gradient™ AI Platform

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Tested up to n8n version 1.106.3

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [DigitalOcean Gradient™ AI Serverless Inference documentation](https://docs.digitalocean.com/products/gradient-ai-platform/how-to/use-serverless-inference/)

  ## Version History

  ### 1.0.0

  - Initial usable release

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Enables n8n workflows to interact with DigitalOcean Gradient™ AI Platform's serverless inference API for generating chat completions using large language models.","capabilities":["Create chat completions with support for multiple message roles (system, user, assistant)","Support for multiple available models from DigitalOcean Gradient™ AI Platform","Customizable parameters aligned with the official API specification"],"authentication":"API key (Model Access Key) required from DigitalOcean Gradient™ AI Platform","commonUseCases":["Generating AI-powered responses in customer service bots","Automated content creation and summarization","Integrating LLM-based decision-making into workflow automation"],"limitations":[],"relatedNodes":["n8n community nodes for AI and LLM integration","DigitalOcean Gradient™ AI Platform nodes"]}


node_type: n8n-nodes-pushinator.pushinator
package_name: n8n-nodes-pushinator
display_name: Pushinator
description: Send notifications using Pushinator
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: makstamoian
author_github_url: https://github.com/appricos/pushinator-n8n.git
npm_package_name: n8n-nodes-pushinator
npm_version: 0.1.4
community_fetched_at: 2026-01-07T20:08:16.105Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "send_notification",
      "options": [
        {
          "name": "Send Notification",
          "value": "send_notification",
          "action": "Send a push notification"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Notification",
      "value": "send_notification",
      "action": "Send a push notification"
    }
  ]

npm_readme:
  # n8n-nodes-pushinator

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

  Pushinator is a powerful push notification service that lets you send real-time updates to iPhone, iPad, and Android devices.

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

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

  ## Installation

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

  ## Operations

  ### Send Notification
  This operation lets you choose a channel from the list of your channels, add the notification text and send the notification to the selected channel.
  ## Credentials

  Your main credential is the API token. If you already have a Pushinator account, go to your [API tokens page](https://console.pushinator.com/tokens), create a new token and note it down. Use this token when connecting your  account in the Pushinator node.

  If you don't have an account:
  - Create an account at https://console.pushinator.com/sign-up
  - Create a channel in the [channels page](https://console.pushinator.com/channels)
  - Create a new token in the [API tokens page](https://console.pushinator.com/tokens), note it down and use it when connecting your account in the Pushinator node.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Pushinator website](https://pushinator.com)
  * [Pushinator API reference](https://pushinator.com/api)

ai_documentation_summary:
  {"purpose":"The Pushinator node sends real-time push notifications to iPhone, iPad, and Android devices using the Pushinator service.","capabilities":["Send notifications to selected channels","Configure notification text","Supports both existing and new Pushinator accounts"],"authentication":"API token required","commonUseCases":["Notify users of workflow updates","Send alerts or reminders via mobile devices","Integrate with n8n workflows to trigger real-time mobile alerts"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook"]}


node_type: @pdfgeneratorapi/n8n-nodes-pdf-generator-api.pdfGeneratorApi
package_name: @pdfgeneratorapi/n8n-nodes-pdf-generator-api
display_name: PDF Generator API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: bruno-farias-ar
author_github_url: https://github.com/pdfgeneratorapi/n8n-nodes-pdf-generator-api.git
npm_package_name: @pdfgeneratorapi/n8n-nodes-pdf-generator-api
npm_version: 0.4.0
community_fetched_at: 2026-01-07T20:08:16.106Z
ai_summary_generated_at: 2026-01-08 10:45:32
description:
  Generate PDFs, manage templates, convert HTML/URLs to PDF, and perform PDF operations like watermarking, encryption, and optimization

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Asset",
          "value": "asset",
          "description": "Generate QR codes and other assets for use in documents"
        },
        {
          "name": "Conversion",
          "value": "conversion",
          "description": "Convert HTML content or URLs directly to PDF without templates"
        },
        {
          "name": "Document",
          "value": "document",
          "description": "Generate PDFs from templates with data, manage document storage"
        },
        {
          "name": "PDF Service",
          "value": "pdfServices",
          "description": "Process existing PDFs: add watermarks, encrypt, decrypt, optimize, and manage form fields"
        },
        {
          "name": "Template",
          "value": "template",
          "description": "Create, update, and manage PDF templates for document generation"
        },
        {
          "name": "Workspace",
          "value": "workspace",
          "description": "Manage workspaces for organizing templates and users"
        }
      ],
      "description": "Choose the type of PDF operation: generate documents from templates, convert HTML/URLs, process existing PDFs, or manage templates and workspaces",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateQRCode",
      "options": [
        {
          "name": "Generate QR Code",
          "value": "generateQRCode",
          "action": "Generate a QR code image",
          "description": "Generate a QR code image"
        }
      ],
      "displayName": "Asset Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "asset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "htmlToPdf",
      "options": [
        {
          "name": "HTML to PDF",
          "value": "htmlToPdf",
          "action": "Convert HTML content to PDF",
          "description": "Convert HTML content to PDF"
        },
        {
          "name": "URL to PDF",
          "value": "urlToPdf",
          "action": "Convert public URL to PDF",
          "description": "Convert public URL to PDF"
        }
      ],
      "displayName": "Conversion Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "conversion"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a document from storage",
          "description": "Delete a document from storage"
        },
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate a PDF document",
          "description": "Generate a PDF document"
        },
        {
          "name": "Generate (Async)",
          "value": "generateAsync",
          "action": "Generate a PDF document asynchronously",
          "description": "Generate a PDF document asynchronously"
        },
        {
          "name": "Generate (Batch + Async)",
          "value": "generateBatchAsync",
          "action": "Generate multiple PDF documents in batch asynchronously",
          "description": "Generate multiple PDF documents in batch asynchronously"
        },
        {
          "name": "Generate (Batch)",
          "value": "generateBatch",
          "action": "Generate multiple PDF documents in batch",
          "description": "Generate multiple PDF documents in batch"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document by public ID",
          "description": "Get a document by public ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List generated documents",
          "description": "List generated documents"
        }
      ],
      "displayName": "Document Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addWatermark",
      "options": [
        {
          "name": "Add Watermark",
          "value": "addWatermark",
          "action": "Add watermark to PDF document",
          "description": "Add text or image watermark to PDF document"
        },
        {
          "name": "Decrypt Document",
          "value": "decrypt",
          "action": "Decrypt encrypted PDF document",
          "description": "Decrypt an encrypted PDF document"
        },
        {
          "name": "Encrypt Document",
          "value": "encrypt",
          "action": "Encrypt PDF document with password",
          "description": "Encrypt a PDF document with password protection"
        },
        {
          "name": "Extract Form Fields",
          "value": "extractFormFields",
          "action": "Extract form fields from PDF document",
          "description": "Extract form fields and their metadata from a PDF document"
        },
        {
          "name": "Fill Form Fields",
          "value": "fillFormFields",
          "action": "Fill form fields in PDF document",
          "description": "Fill form fields in a PDF document with provided data"
        },
        {
          "name": "Optimize Document",
          "value": "optimize",
          "action": "Optimize PDF document size",
          "description": "Optimize PDF document size for better performance"
        }
      ],
      "displayName": "Services Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfServices"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Copy",
          "value": "copy",
          "action": "Copy a template",
          "description": "Copy a template"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new template",
          "description": "Create a new template"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a template",
          "description": "Delete a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a template by ID",
          "description": "Get a template by ID"
        },
        {
          "name": "Get Data Fields",
          "value": "getDataFields",
          "action": "Get template data fields",
          "description": "Get template data fields"
        },
        {
          "name": "Get Template Schema",
          "value": "getTemplateSchema",
          "action": "Get template JSON schema",
          "description": "Get template JSON schema"
        },
        {
          "name": "List",
          "value": "list",
          "action": "Get all templates",
          "description": "Get all templates"
        },
        {
          "name": "Open Editor",
          "value": "openEditor",
          "action": "Get template editor URL",
          "description": "Get template editor URL"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an existing template",
          "description": "Update an existing template"
        },
        {
          "name": "Validate",
          "value": "validate",
          "action": "Validate template configuration",
          "description": "Validate template configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new workspace",
          "description": "Create a new workspace"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a workspace",
          "description": "Delete a workspace"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get workspace by identifier",
          "description": "Get workspace by identifier"
        },
        {
          "name": "List",
          "value": "list",
          "action": "Get all workspaces",
          "description": "Get all workspaces"
        }
      ],
      "displayName": "Workspace Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate QR Code",
      "value": "generateQRCode",
      "action": "Generate a QR code image",
      "description": "Generate a QR code image"
    },
    {
      "name": "HTML to PDF",
      "value": "htmlToPdf",
      "action": "Convert HTML content to PDF",
      "description": "Convert HTML content to PDF"
    },
    {
      "name": "URL to PDF",
      "value": "urlToPdf",
      "action": "Convert public URL to PDF",
      "description": "Convert public URL to PDF"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a document from storage",
      "description": "Delete a document from storage"
    },
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate a PDF document",
      "description": "Generate a PDF document"
    },
    {
      "name": "Generate (Async)",
      "value": "generateAsync",
      "action": "Generate a PDF document asynchronously",
      "description": "Generate a PDF document asynchronously"
    },
    {
      "name": "Generate (Batch + Async)",
      "value": "generateBatchAsync",
      "action": "Generate multiple PDF documents in batch asynchronously",
      "description": "Generate multiple PDF documents in batch asynchronously"
    },
    {
      "name": "Generate (Batch)",
      "value": "generateBatch",
      "action": "Generate multiple PDF documents in batch",
      "description": "Generate multiple PDF documents in batch"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a document by public ID",
      "description": "Get a document by public ID"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List generated documents",
      "description": "List generated documents"
    },
    {
      "name": "Add Watermark",
      "value": "addWatermark",
      "action": "Add watermark to PDF document",
      "description": "Add text or image watermark to PDF document"
    },
    {
      "name": "Decrypt Document",
      "value": "decrypt",
      "action": "Decrypt encrypted PDF document",
      "description": "Decrypt an encrypted PDF document"
    },
    {
      "name": "Encrypt Document",
      "value": "encrypt",
      "action": "Encrypt PDF document with password",
      "description": "Encrypt a PDF document with password protection"
    },
    {
      "name": "Extract Form Fields",
      "value": "extractFormFields",
      "action": "Extract form fields from PDF document",
      "description": "Extract form fields and their metadata from a PDF document"
    },
    {
      "name": "Fill Form Fields",
      "value": "fillFormFields",
      "action": "Fill form fields in PDF document",
      "description": "Fill form fields in a PDF document with provided data"
    },
    {
      "name": "Optimize Document",
      "value": "optimize",
      "action": "Optimize PDF document size",
      "description": "Optimize PDF document size for better performance"
    },
    {
      "name": "Copy",
      "value": "copy",
      "action": "Copy a template",
      "description": "Copy a template"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new template",
      "description": "Create a new template"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a template",
      "description": "Delete a template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a template by ID",
      "description": "Get a template by ID"
    },
    {
      "name": "Get Data Fields",
      "value": "getDataFields",
      "action": "Get template data fields",
      "description": "Get template data fields"
    },
    {
      "name": "Get Template Schema",
      "value": "getTemplateSchema",
      "action": "Get template JSON schema",
      "description": "Get template JSON schema"
    },
    {
      "name": "List",
      "value": "list",
      "action": "Get all templates",
      "description": "Get all templates"
    },
    {
      "name": "Open Editor",
      "value": "openEditor",
      "action": "Get template editor URL",
      "description": "Get template editor URL"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an existing template",
      "description": "Update an existing template"
    },
    {
      "name": "Validate",
      "value": "validate",
      "action": "Validate template configuration",
      "description": "Validate template configuration"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new workspace",
      "description": "Create a new workspace"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a workspace",
      "description": "Delete a workspace"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get workspace by identifier",
      "description": "Get workspace by identifier"
    },
    {
      "name": "List",
      "value": "list",
      "action": "Get all workspaces",
      "description": "Get all workspaces"
    }
  ]

npm_readme:
  # n8n-nodes-pdf-generator-api

  This is an n8n community node. It lets you use PDF Generator API in your n8n workflows.

  PDF Generator API is a powerful service that allows you to generate PDFs from templates, convert HTML/URLs to PDF, and perform various PDF operations like watermarking, encryption, optimization, and form field manipulation.

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

  Use the package name: `@pdfgeneratorapi/n8n-nodes-pdf-generator-api`

  ## Operations

  This node supports the following operations organized by resource:

  ### Asset
  - **Generate QR Code** - Generate QR codes with customizable colors and logos
    - Support for base64 and file output formats
    - Optional logo overlay (from URL or base64)
    - Customizable QR code color

  ### Document
  - **Generate** - Generate a PDF document from a template with data
  - **Generate (Async)** - Generate a PDF document asynchronously with callback
  - **Generate (Batch)** - Generate multiple PDF documents in batch
  - **Generate (Batch + Async)** - Generate multiple PDF documents in batch asynchronously
  - **List** - List generated documents stored in the API
  - **Get** - Retrieve a specific document by public ID
  - **Delete** - Delete a document from storage

  ### Template
  - **Create** - Create a new PDF template
  - **Update** - Update an existing template configuration
  - **Get** - Retrieve template configuration
  - **Delete** - Delete a template
  - **List** - List available templates
  - **Copy** - Create a copy of an existing template
  - **Get Data Fields** - Extract data fields used in a template
  - **Get Template Schema** - Get Template JSON Schema for validation
  - **Open Editor** - Get URL to open template editor
  - **Validate** - Validate template configuration

  ### Conversion
  - **HTML to PDF** - Convert HTML content directly to PDF
  - **URL to PDF** - Convert a public URL to PDF

  ### PDF Services
  - **Add Watermark** - Add text or image watermarks to PDF documents
  - **Encrypt Document** - Encrypt PDF documents with password protection
  - **Decrypt Document** - Decrypt encrypted PDF documents
  - **Optimize Document** - Optimize PDF file size for better performance
  - **Extract Form Fields** - Extract form fields and metadata from PDF documents
  - **Fill Form Fields** - Fill form fields in PDF documents with provided data

  ### Workspace
  - **Create** - Create a new workspace for organizing templates
  - **List** - List all workspaces in organization
  - **Get** - Get workspace information
  - **Delete** - Delete a workspace

  ## Credentials

  To use this node, you need to authenticate with PDF Generator API:

  ### Prerequisites
  1. Sign up for a [PDF Generator API account](https://pdfgeneratorapi.com/signup)
  2. Get your API Key and API Secret from Account Settings

  ### Authentication Setup
  1. In n8n, create new credentials for "PDF Generator API"
  2. Enter your **API Key** and **API Secret**

  ### JWT Authentication
  The node automatically handles JWT token generation using your API credentials. Tokens are generated server-side and include:
  - Issuer (iss): Your API Key
  - Subject (sub): Workspace identifier
  - Expiration (exp): Short-lived tokens for security

  ## Compatibility

  - **Minimum n8n version**: 0.199.0
  - **Tested with**: n8n versions 0.199.0+
  - **Node API version**: 1

  ## Usage

  ### QR Code Generation
  1. Select **Resource**: Asset
  2. Select **Operation**: Generate QR Code
  3. Enter the content to encode (URL, text, etc.)
  4. Choose output format (Base64 or File)
  5. Optionally add a logo from URL or base64
  6. Customize QR code color

  ### Basic Document Generation
  1. Select **Resource**: Document
  2. Select **Operation**: Generate
  3. Choose your template from the dropdown
  4. Provide JSON data to merge with the template
  5. Select output format (Base64, URL, Viewer, or File)

  ### HTML to PDF Conversion
  1. Select **Resource**: Conversion
  2. Select **Operation**: HTML to PDF
  3. Enter your HTML content
  4. Configure paper size and orientation
  5. Specify filename and output format

  ### PDF Processing
  - **Watermarking**: Add text or image watermarks with positioning options
  - **Encryption**: Protect PDFs with owner and user passwords
  - **Decryption**: Remove password protection from encrypted PDFs
  - **Optimization**: Reduce file size while maintaining quality
  - **Form Fields**: Extract form field metadata and fill PDF forms with data

  #### Form Fields Operations
  1. **Extract Form Fields**: Analyze PDF forms to discover available fields
  2. **Fill Form Fields**: Populate PDF forms with data

  Example form data:
  ```json
  {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "subscribe": true
  }
  ```

  ### Output Formats
  - **Base64**: Returns PDF as base64 encoded string in JSON
  - **URL**: Returns download URL (files stored for 30 days)
  - **Viewer**: Returns viewer URL for viewing/downloading (files stored for 30 days)
  - **File**: Returns binary PDF data for direct download

  ### Supported Document Formats
  - **PDF**: Full-featured PDF documents
  - **HTML**: HTML documents for web display

  ### Error Handling
  The node includes comprehensive error handling for:
  - Authentication failures
  - Invalid template configurations
  - Missing required parameters
  - API rate limiting
  - Network connectivity issues

  For workflows that should continue on errors, enable "Continue on Fail" in node settings.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [PDF Generator API Documentation](https://docs.pdfgeneratorapi.com)
  * [PDF Generator API Support](https://support.pdfgeneratorapi.com)
  * [Template Editor Guide](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/)
  * [Expression Language Documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/)

  ## Version history

  ### 0.4.0
  - **New**: Added Asset resource with QR code generation
    - Generate QR codes with customizable colors
    - Optional logo overlay support (URL or base64)
    - Base64 and file output formats
  - **New**: Added "Get Template Schema" operation to Template resource
    - Returns Template JSON Schema for validation
  - **New**: Added "Viewer" output format for document generation
    - Available for all document generation operations (sync, async, batch)
    - Returns viewer URL for viewing/downloading PDFs
    - Files stored for 30 days like URL format
  - 🔧 **Improved**: Enhanced output format descriptions and help text

  ### 0.3.0
  - 🔧 **Breaking**: Removed ZIP and XLSX format support
  - 🐛 **Fixed**: Parameter name collisions that caused UI issues with action generation
  - 🔧 **Improved**: File response handling
  - ✨ **New**: JSON parsing helper with consistent error handling across all user inputs
  - 🐛 **Fixed**: MIME type mappings for proper file downloads (PDF, HTML)
  - 🐛 **Fixed**: Resource/operation parameter extraction for proper n8n batch processing
  - 🔧 **Improved**: PDF optimization stats
  - 🛡️ **Security**: Enhanced input validation and error messaging

  ### 0.2.5 & 0.2.6
  - 🧹 **Improved**: Removed debug code
  - 📦 **Optimized**: Improved credentials logic
    
  ### 0.2.3 & 0.2.4
  - 🧹 **Cleanup**: Removed external dependencies

  ### 0.2.2
  - 🧹 **Cleanup**: Removed example nodes and credentials from package
  - 🔧 **Improved**: Build process now only includes production files
  - 📦 **Optimized**: Package structure for better n8n compatibility

  ### 0.2.1
  - 🐛 **Fixed**: Fixed npm publish script in package.json
  - 📝 **Updated**: Package metadata and repository information

  ### 0.2.0
  - ✨ **New**: Added PDF form fields operations
    - Extract Form Fields: Analyze and extract form field metadata
    - Fill Form Fields: Populate PDF forms with data
  - 🐛 **Fixed**: Improved error handling for PDF services operations
  - 📝 **Docs**: Enhanced documentation and examples

  ### 0.1.0
  - 🎉 **Initial Release**: Complete PDF Generator API integration
    - Document generation from templates
    - HTML/URL to PDF conversion
    - PDF processing (watermark, encrypt, decrypt, optimize)
    - Template and workspace management
    - Support for all output formats (Base64, URL, File)
    - Comprehensive error handling and validation 

ai_documentation_summary:
  {"purpose":"The PDF Generator API node enables users to generate PDFs from templates, convert HTML or URLs to PDF, and perform advanced PDF operations such as watermarking, encryption, form field extraction and filling, and optimization within n8n workflows.","capabilities":["Generate PDFs from templates with dynamic data merging","Convert HTML content or URLs directly to PDF","Add text or image watermarks to PDFs","Encrypt and decrypt PDF documents with password protection","Optimize PDF file size","Extract and fill form fields in PDFs","Generate QR codes with custom colors and logos","Manage templates, workspaces, and document storage","Support for batch generation and asynchronous processing"],"authentication":"API Key and API Secret required; JWT tokens are automatically generated server-side using these credentials","commonUseCases":["Creating personalized invoices or reports from templates","Converting website content or HTML forms to PDFs","Adding watermarks to sensitive documents","Automating form generation and data population","Generating and securing PDFs for email or document sharing"],"limitations":["Files stored via URL are only available for 30 days","No support for custom PDF metadata or digital signatures","Form field extraction may not capture all complex or dynamic fields","Limited error details in some cases; requires 'Continue on Fail' for resilient workflows"],"relatedNodes":["HTML to PDF conversion nodes","Template management nodes","Document storage and retrieval nodes","Form processing nodes"]}


node_type: n8n-nodes-cloudinary.cloudinary
package_name: n8n-nodes-cloudinary
display_name: Cloudinary
description: Upload to Cloudinary
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: cloudinary
author_github_url: https://github.com/cloudinary/
npm_package_name: n8n-nodes-cloudinary
npm_version: 0.0.6
community_fetched_at: 2026-01-07T20:08:16.107Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload"
        },
        {
          "name": "Update Asset",
          "value": "updateAsset"
        },
        {
          "name": "Admin",
          "value": "admin"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadUrl",
      "options": [
        {
          "name": "Upload From URL",
          "value": "uploadUrl",
          "action": "Upload an asset from URL",
          "description": "Upload an asset from URL"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload an asset from file data",
          "description": "Upload an asset from file data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "upload"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "updateTags",
      "options": [
        {
          "name": "Update Asset Tags",
          "value": "updateTags",
          "action": "Update asset tags",
          "description": "Update tags for an existing asset"
        },
        {
          "name": "Update Asset Structured Metadata",
          "value": "updateMetadata",
          "action": "Update asset structured metadata",
          "description": "Update structured metadata for an existing asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "updateAsset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTags",
      "options": [
        {
          "name": "Get Tags",
          "value": "getTags",
          "action": "Get tags for a resource type",
          "description": "Get all tags for a specific resource type"
        },
        {
          "name": "Get Metadata Fields",
          "value": "getMetadataFields",
          "action": "Get metadata fields definitions",
          "description": "Get all metadata fields definitions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "admin"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload From URL",
      "value": "uploadUrl",
      "action": "Upload an asset from URL",
      "description": "Upload an asset from URL"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload an asset from file data",
      "description": "Upload an asset from file data"
    },
    {
      "name": "Update Asset Tags",
      "value": "updateTags",
      "action": "Update asset tags",
      "description": "Update tags for an existing asset"
    },
    {
      "name": "Update Asset Structured Metadata",
      "value": "updateMetadata",
      "action": "Update asset structured metadata",
      "description": "Update structured metadata for an existing asset"
    },
    {
      "name": "Get Tags",
      "value": "getTags",
      "action": "Get tags for a resource type",
      "description": "Get all tags for a specific resource type"
    },
    {
      "name": "Get Metadata Fields",
      "value": "getMetadataFields",
      "action": "Get metadata fields definitions",
      "description": "Get all metadata fields definitions"
    }
  ]

npm_readme:
  # Cloudinary node

  Use the Cloudinary node to automate work in Cloudinary, and integrate Cloudinary with other applications. n8n has built-in support for a wide range of Cloudinary features, including uploading assets, managing tags, and updating metadata.

  On this page, you'll find a list of operations the Cloudinary node supports.

  ## Operations

  * Asset
  	* Upload from URL/file
  	* Update asset tags
  	* Update asset metadata fields
  	* Get tags
  	* Get structured metadata definitions

  ## Supported authentication methods

  - API key & API secret

  ## Authentication 
  ### Using API key

  To configure this credential, you'll need a [Cloudinary Account](https://cloudinary.com/users/register_free) and:

  - A **Cloud name**
  - An **API Key**
  - An **API Secret**

  If you're a user with a Master admin, Admin, or Technical admin role, you can find your API keys and other credentials on the API Keys page of the Cloudinary Console Settings:

  1. Navigate to the API Keys pages in the [settings page](https://console.cloudinary.com/settings/api-keys).
  2. Click on **+ Generate New API Key**.
  3. Copy the API Key and API Secret.
  4. From the top of the page copy the **Cloud name**.
  5. Enter the cloud name, api key and api secret to your n8n credential.


  ## Related resources

  Refer to [Cloudinary's documentation](https://cloudinary.com/documentation/programmable_media_guides) for more information on this service.

ai_documentation_summary:
  {"purpose":"The Cloudinary node enables automation of asset management in Cloudinary, allowing users to upload files, update metadata, manage tags, and retrieve asset information within n8n workflows.","capabilities":["Upload assets from URL or file","Update asset tags","Update asset metadata fields","Retrieve asset tags","Retrieve structured metadata definitions"],"authentication":"API key & API secret required","commonUseCases":["Uploading images or videos from external sources to Cloudinary","Tagging media assets for better organization and searchability","Updating metadata (e.g., captions, descriptions) for assets","Retrieving metadata or tags for downstream processing"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-placid.placid
package_name: n8n-nodes-placid
display_name: Placid
description: Generate images, PDFs, and videos via Placid's API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: placidapp
author_github_url: https://github.com/placidapp/
npm_package_name: n8n-nodes-placid
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:16.107Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "PDF",
          "value": "pdf"
        },
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Template",
          "value": "template"
        },
        {
          "name": "Other",
          "value": "other"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an image from a template",
          "description": "Generate a new image from a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an image by ID",
          "description": "Retrieve an existing image by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an image by ID",
          "description": "Delete an existing image by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a PDF from a template",
          "description": "Generate a new PDF from a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a PDF by ID",
          "description": "Retrieve an existing PDF by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a PDF by ID",
          "description": "Delete an existing PDF by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a video from a template",
          "description": "Generate a new video from a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a video by ID",
          "description": "Retrieve an existing video by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a video by ID",
          "description": "Delete an existing video by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a template",
          "description": "Create a new template"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a template by ID",
          "description": "Delete an existing template by ID"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a template by ID",
          "description": "Retrieve an existing template by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many templates",
          "description": "Retrieve multiple templates"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a template",
          "description": "Update an existing template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadMedia",
      "options": [
        {
          "name": "Upload Media",
          "value": "uploadMedia",
          "action": "Upload media files",
          "description": "Upload media files to Placid storage for use in templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "other"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an image from a template",
      "description": "Generate a new image from a template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an image by ID",
      "description": "Retrieve an existing image by ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an image by ID",
      "description": "Delete an existing image by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a PDF from a template",
      "description": "Generate a new PDF from a template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a PDF by ID",
      "description": "Retrieve an existing PDF by ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a PDF by ID",
      "description": "Delete an existing PDF by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a video from a template",
      "description": "Generate a new video from a template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a video by ID",
      "description": "Retrieve an existing video by ID"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a video by ID",
      "description": "Delete an existing video by ID"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a template",
      "description": "Create a new template"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a template by ID",
      "description": "Delete an existing template by ID"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a template by ID",
      "description": "Retrieve an existing template by ID"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many templates",
      "description": "Retrieve multiple templates"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a template",
      "description": "Update an existing template"
    },
    {
      "name": "Upload Media",
      "value": "uploadMedia",
      "action": "Upload media files",
      "description": "Upload media files to Placid storage for use in templates"
    }
  ]

npm_readme:
  ![Placid n8n Integration](https://placid.app/assets/n8n/github-header-n8n.jpg)

  # n8n-nodes-placid

  This is an n8n community node. It lets you use [Placid API](https://placid.app) in your n8n workflows.

  Placid is a powerful API service for automated image, PDF, and video generation from custom templates. Create dynamic visual content at scale with simple API calls.

  [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

  ### Quick Install
  ```bash
  npm install n8n-nodes-placid
  ```

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

  ### Complete Setup Guide  
  📖 **New to Placid + n8n?** Check out our comprehensive [Placid n8n Setup Guide](https://placid.app/help/n8n-setup-guide) with step-by-step instructions, examples, and best practices for:
  - Setting up your Placid project with n8n integration
  - Creating dynamic templates for images, PDFs, and videos  
  - Installing and configuring the node
  - Mapping data to template layers
  - Testing and completing your workflows

  ## Operations

  ### Image Operations
  - **Create Image** - Generate images from Placid templates with dynamic data
  - **Get Image** - Retrieve image information and download URLs
  - **Delete Image** - Delete generated images from your Placid account

  ### PDF Operations  
  - **Create PDF** - Generate PDFs from Placid templates with dynamic data
  - **Get PDF** - Retrieve PDF information and download URLs
  - **Delete PDF** - Delete generated PDFs from your Placid account

  ### Video Operations
  - **Create Video** - Generate videos from Placid templates with support for multiple clips and audio
  - **Get Video** - Retrieve video information and download URLs
  - **Delete Video** - Delete generated videos from your Placid account

  ### Template Operations
  - **Create Template** - Create new Placid templates
  - **Get Template** - Retrieve a specific template by ID
  - **Get Many Templates** - List all templates with optional filtering
  - **Update Template** - Update existing template properties
  - **Delete Template** - Delete templates from your Placid account

  ### Other Operations
  - **Upload Media** - Upload media files to Placid storage for use in templates

  ## Credentials

  To use this node, you'll need:

  1. **Placid Account**: Sign up at [placid.app](https://placid.app)
  2. **API Key**: Get your API key from your Placid dashboard
  3. **Authentication Setup**: 
     - In n8n, create new credentials of type "Placid API"
     - Enter your Placid API key

  ## Compatibility

  - **Minimum n8n version**: 0.208.0
  - **Node.js version**: >=20.15
  - **Tested with**: n8n 1.x.x

  ## Usage

  ### Configuration Modes
  The Placid node offers two configuration modes for maximum flexibility:

  **🎯 Simple Mode (Recommended)**  
  - User-friendly interface with dropdowns and form fields
  - Dynamic template layer detection - template layers automatically become input fields
  - Support for binary file uploads (images, videos, PDFs)
  - Perfect for most use cases

  **⚙️ Advanced Mode**  
  - Direct JSON configuration for complex scenarios
  - Full control over API payload structure  
  - Support for multi-clip videos and advanced layer configurations
  - Ideal for developers and complex automations

  ### Key Features

  **📁 Binary File Upload**  
  Upload files directly from n8n binary data:
  - Images (JPG, PNG, GIF, WebP) for image and picture layers
  - Videos (MP4) for video layers and video generation
  - Automatic upload to Placid storage with instant URL generation

  **🎬 Multi-Clip Videos**  
  Create sophisticated videos:
  - Combine multiple templates into single videos  
  - Add audio tracks with trimming controls
  - Support for image arrays and slideshow effects
  - Layer animations and transitions

  **🔄 Dynamic Template Integration**  
  - Template layers automatically appear as configurable fields
  - Support for all layer types: text, images, shapes, barcodes, ratings
  - Custom properties for advanced styling
  - Real-time template validation

  ### Quick Start Example
  1. **Choose Resource**: Select "Image", "PDF", "Video", "Template", or "Other"
  2. **Select Operation**: Pick "Create", "Get", "Delete", etc.  
  3. **Pick Template**: Choose from your Placid templates
  4. **Configure Layers**: Use the simple UI or JSON mode
  5. **Add Data**: Map your n8n workflow data to template fields
  6. **Execute**: Generate your creative asset

  For detailed examples and walkthroughs, see the [📖 Placid n8n Setup Guide](https://placid.app/help/n8n-setup-guide).

  ## Resources

  ### Getting Started
  * [📖 Placid n8n Setup Guide](https://placid.app/help/n8n-setup-guide) - Complete walkthrough with examples
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

  ### API Documentation  
  * [Placid API Documentation](https://placid.app/docs/2.0/introduction)
  * [Placid Image API](https://placid.app/docs/2.0/rest/images)
  * [Placid PDF API](https://placid.app/docs/2.0/rest/pdfs)  
  * [Placid Video API](https://placid.app/docs/2.0/rest/videos)
  * [Placid Templates API](https://placid.app/docs/2.0/rest/templates)

  ### Support & Community
  * [📝 Report Issues](https://github.com/placidapp/n8n-nodes-placid/issues)
  * [💬 Get Help](https://placid.app/help) - Contact Placid support
  * [🔗 Repository](https://github.com/placidapp/n8n-nodes-placid)

  ## Version history

  ### 0.1.6 (Current)
  - **New PDF Merge Operation**
  - Merge multiple PDFs into a single document with mixed URL/binary source support
  - Simple and Advanced configuration modes for flexibility
  - **Security Improvements**
  - Sanitized filenames in multipart headers to prevent injection attacks
  - Added randomness to multipart boundaries to prevent collisions
  - **Bug Fixes**
  - Validate whitespace-only URLs in simple mode
  - Validate URLs in advanced mode PDF merge configuration
  - Show last polled status in timeout error messages
  - Fixed multipart body handling for media uploads

  ### 0.1.5
  - **Error Handling Enhancement** 🛡️
  - Added ContinueOnFail support to allow workflows to continue execution even when individual operations encounter errors
  - Improved error reporting with standardized NodeOperationError across all operations for better debugging
  - **Compatibility Update** 🔄
  - Updated authentication method to use latest n8n API for improved reliability

  ### 0.1.4
  - **Item Tracking Fix** 🔧
  - Added pairedItem to all operation returns to enable proper input-output tracking and data lineage in n8n workflows

  ### 0.1.3
  - **Bug Fixes** 🔧
  - Fixed property field mapping for shape layer colors (background_color, border_color)
  - Fixed text layer property mappings (text_color, alt_text_color, font, alt_font)
  - Fixed rating/barcode "Value" field label collision
  - Improved layer property handling across all resources

  ### 0.1.2
  - **n8n Cloud Verification Fix** 🔧
  - Fixed ESLint violations by replacing `setTimeout` with n8n's `sleep` helper
  - Ensures compatibility with n8n cloud verification requirements

  ### 0.1.1
  - **Documentation improvements** 📚
  - Added comprehensive usage examples and feature documentation
  - Added reference to [Placid n8n Setup Guide](https://placid.app/help/n8n-setup-guide)
  - Enhanced installation instructions with npm command
  - Documented binary file upload capabilities
  - Added support and community links

  ### 0.1.0
  - **First stable release** 🎉
  - Image, PDF, and video generation from Placid templates
  - Template management (CRUD operations)
  - Media upload functionality
  - Dynamic template field generation
  - API key authentication
  - Production ready

  ### 0.0.1-beta.1
  - Initial beta release
   

ai_documentation_summary:
  {"purpose":"The Placid n8n node enables users to generate images, PDFs, and videos using Placid's API within n8n workflows, supporting dynamic template-based content creation with full control over layers, media, and outputs.","capabilities":["Generate images from templates with dynamic data","Generate PDFs from templates with dynamic data","Generate videos with multiple clips, audio, and transitions","Create, retrieve, update, and delete templates","Upload media files (images, videos) directly to Placid storage","Support for binary file uploads (JPG, PNG, GIF, WebP, MP4)","Dynamic template layer integration with real-time validation","Multi-clip video generation with trimming and slideshow effects","Simple and advanced configuration modes for flexibility"],"authentication":"API key required; users must sign up at placid.app and obtain an API key from the dashboard, which is then entered in the n8n credentials under 'Placid API'","commonUseCases":["Automated generation of marketing images from dynamic data","Creating personalized PDFs (e.g., invoices, reports) with variable content","Producing video content (e.g., social media clips, product demos) with animations and audio","Managing reusable templates for consistent branding across assets","Integrating media uploads into workflows for use in templates"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook","n8n-nodes-database"]}


node_type: n8n-nodes-murf.murf
package_name: n8n-nodes-murf
display_name: Murf AI
description: Murf AI APIs for speech synthesis, dubbing, and audio transformation.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: nileshmurf
author_github_url: https://github.com/murf-ai/
npm_package_name: n8n-nodes-murf
npm_version: 0.1.3
community_fetched_at: 2026-01-07T20:08:16.108Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "textToSpeech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "description": "Convert text to speech using AI voices"
        },
        {
          "name": "Voice Changer",
          "value": "voiceChanger",
          "description": "Change voice characteristics of audio files"
        },
        {
          "name": "Translation",
          "value": "translations",
          "description": "Translate content between languages"
        },
        {
          "name": "Dubbing",
          "value": "dubbing",
          "description": "Automated dubbing in multiple languages"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Speech",
          "value": "generate",
          "action": "Generate speech from text",
          "description": "Convert text to speech"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "textToSpeech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convert",
      "options": [
        {
          "name": "Convert Voice",
          "value": "convert",
          "action": "Change voice of audio files",
          "description": "Change voice characteristics of audio files"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voiceChanger"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "translate",
      "options": [
        {
          "name": "Translate",
          "value": "translate",
          "action": "Translate text to another language",
          "description": "Translate text to another language"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createJob",
      "options": [
        {
          "name": "Create Dubbing Job",
          "value": "createJob",
          "action": "Create a dubbing job",
          "description": "Create a new dubbing job"
        },
        {
          "name": "Check Job Status",
          "value": "checkStatus",
          "action": "Check dubbing job status",
          "description": "Check the status of a dubbing job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dubbing"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Speech",
      "value": "generate",
      "action": "Generate speech from text",
      "description": "Convert text to speech"
    },
    {
      "name": "Convert Voice",
      "value": "convert",
      "action": "Change voice of audio files",
      "description": "Change voice characteristics of audio files"
    },
    {
      "name": "Translate",
      "value": "translate",
      "action": "Translate text to another language",
      "description": "Translate text to another language"
    },
    {
      "name": "Create Dubbing Job",
      "value": "createJob",
      "action": "Create a dubbing job",
      "description": "Create a new dubbing job"
    },
    {
      "name": "Check Job Status",
      "value": "checkStatus",
      "action": "Check dubbing job status",
      "description": "Check the status of a dubbing job"
    }
  ]

npm_readme:
  # n8n-nodes-murf

  This is an n8n community node for [Murf AI](https://murf.ai). It provides integration with Murf's AI-powered voice and audio processing services.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Resources](#resources)  
  [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.

  ```bash
  npm install n8n-nodes-murf
  ```

  ## Operations

  The Murf AI node provides the following operations:

  ### Text to Speech
  - **Generate Speech**: Convert text to natural-sounding speech using AI voices
    - Supports multiple languages and voice styles
    - Control speech parameters like speed, pitch, and emphasis
    - Add pauses and customize pronunciation

  ### Voice Changer
  - **Convert Voice**: Transform audio files by changing voice characteristics
    - Modify voice properties while maintaining natural sound
    - Support for various audio formats

  ### Translation
  - **Translate**: Translate text between supported languages
    - High-quality translations optimized for voice synthesis
    - Preserve formatting and special characters

  ### Dubbing
  - **Create Dubbing Job**: Create automated dubbing jobs for videos
    - Support for multiple target languages
    - File or URL input options
    - Optional project creation for Murf UI editing
    - Priority levels for processing
    - Webhook support for status updates
  - **Check Job Status**: Monitor the progress of dubbing jobs
    - Get detailed status information
    - Access download URLs for completed jobs
    - View credit usage and remaining credits

  ## Node Structure

  ```
  nodes/Murf/
  ├── Dubbing/
  │   ├── DubbingDescription.ts   # Dubbing node parameters
  │   └── DubbingExecute.ts       # Dubbing operations logic
  ├── TextToSpeech/
  │   └── ...                     # Text to Speech components
  ├── VoiceChanger/
  │   └── ...                     # Voice Changer components
  ├── Translations/
  │   └── ...                     # Translation components
  ├── Murf.node.ts               # Main node definition
  └── Murf.node.json             # Node metadata
  ```

  ## Credentials

  The node requires API credentials from Murf AI:

  1. **Murf API** (`murfApi`)
     - Required for Text to Speech, Voice Changer, and Translation operations
     - Get your API key from [Murf API Dashboard](https://murf.ai/api/dashboard)

  2. **Murf Dubbing API** (`murfDubApi`)
     - Required for Dubbing operations
     - Get your Dubbing API key from [Murf Dub Dashboard](https://dub.murf.ai)

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Follows n8n community node standards

  ## Usage

  1. Install the node package
  2. Add your Murf AI credentials in n8n
  3. Add the Murf AI node to your workflow
  4. Configure the desired operation and parameters
  5. Connect with other nodes as needed

  ## Resources

  - [Murf AI API Documentation](https://murf.ai/api/docs)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Report Issues](https://github.com/murf-ai/n8n-nodes-murf)

  ## Development

  To develop the node:

  1. Clone the repository
  2. Install dependencies: `npm install`
  3. Build: `npm run build`
  4. Link to n8n: `npm link`
  5. Start n8n: `n8n start`

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"The Murf AI node integrates with Murf's AI-powered services to enable text-to-speech, voice transformation, translation, and video dubbing with natural-sounding audio outputs.","capabilities":["Convert text to speech with support for multiple languages, voice styles, and speech parameters like speed, pitch, and emphasis","Transform audio files by changing voice characteristics while preserving natural sound","Translate text between supported languages with formatting preservation","Create and manage dubbing jobs for videos across multiple languages","Monitor dubbing job status and retrieve download URLs and credit usage","Support for both file and URL inputs in dubbing operations","Webhook support for real-time job status updates"],"authentication":"API key required: Murf API key for Text to Speech, Voice Changer, and Translation; Murf Dubbing API key for dubbing operations","commonUseCases":["Generating natural-sounding voiceovers from scripts","Creating multilingual video dubs for content localization","Translating text for voice synthesis in different languages","Modifying audio files to change voice tone or style","Automating dubbing workflows with status tracking and webhook notifications"],"limitations":[],"relatedNodes":["Text to Speech","Voice Changer","Translation","Dubbing"]}


node_type: n8n-nodes-jaasai.jaasai
package_name: n8n-nodes-jaasai
display_name: JaaS AI
description: Evaluate AI Agents with JaaS
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: hljaasai
author_github_url: https://github.com/jaas-a1/
npm_package_name: n8n-nodes-jaasai
npm_version: 0.3.2
community_fetched_at: 2026-01-07T20:08:16.109Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "evaluate",
      "options": [
        {
          "name": "Evaluate",
          "value": "evaluate",
          "description": "Evaluate AI agents and outputs"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "evaluate",
      "options": [
        {
          "name": "Evaluate",
          "value": "evaluate",
          "action": "Evaluate AI agent responses",
          "description": "Evaluate AI agent responses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "evaluate"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Evaluate",
      "value": "evaluate",
      "action": "Evaluate AI agent responses",
      "description": "Evaluate AI agent responses"
    }
  ]

npm_readme:
  ## JAAS AI 

  JaaS AI is a turnkey evaluationAI service that scores, analyzes, validates and monitors any AI-generated text in seconds. Plug JaaS AI into your workflow to ensure accuracy, consistency, and quality—without needing extra reviewers. The system evaluates responses based on customizable criteria and provides detailed scoring and reasoning.
  JaaS AI has been proven to detect Hallucination in AI Agents and chat bots.

  *Put your workflows and chat bots under the microscope and understand when they start to derail, hallucinate or degrade their accuracy.*

  ### Requirements

  To configure you n8n node, you need a JaaS API key. For that you have to register for the service at jaas-ai.net.You will also need a LLM Provider API key.


  ### Understanding the evaluation process

  The evaluation process is very simple. It compares an *answer* to a specific *question* to a *ground truth answer* in a *context* given. A *score* and *reasoning* is provided based on a *criteria* or criterion given to evaluate.

  #### Inputs to the evaluation
  - . **question:** The question that you want to evaluate. Example: *Which is capital of France?*

  - . **answer:** This is the answer that is going to be evaluated. Example: *Paris*.

  - . **ground_truth_answer**: This is the source of truth. It is used as rubric to for the evaluation process to score the criterion. Example: *The capital of France is Paris.*

  - . **context:** Additional information that is used to evaluate. The context becomes more relevant in non-direct comparison criterion. As an example in cases of **hallucination:** The context is key to understand if the evaluated answer related to the conversation that has been happening. Example: *Paris is the capital and largest city of France, with an estimated population of 2,048,472 in January 2025 in an area of more than 105 km2 (41 sq mi).*

  - . **criteria:** The criteria or criterion is the base of the scoring process. The evaluation tool scores the *answer* based on the criteria given. Example: *Accuracy, Hallucination.*

  - . **type:** This is the type of evaluation. There are 4 types: *Simple (S), Conversational Simple (D),
    -  The main differences are: *conversational or non-conversations*: the *conversational* types detect chit-chat conversations that are not evaluated. This is key when evaluating or monitoring *chat bots* or transcripts of *voice conversations*.  

  - . **cohort:** The *cohort* helps in the monitoring and analysis process. It does not intervene in the evaluation itself, while indicates a grouping of evaluation. As an example, if the tool is evaluating conversations from a chat bot, each conversation can have its own cohort for better tracking and monitoring.


  #### Example of a Information for an evaluation
  ```json

  From Input to the Node:	
    "question": "What is the capital of France?",
    "answer": "Paris.",
    "ground_truth_answer": "Paris is the capital of France.",
    "context": "",

  From Configuration:
  	"evaluation_criteria": ["Accuracy", "Hallucination"],
    "type": "S",
    "cohort":"ChatBot1"

  ```
  After the evaluation is completed almost in real time, the system returns the score for each of the metrics and the reasoning behind.


  ### Using the n8n JaaS Module

  ***Configuration:*** The module requires the corresponding configuration:
  	- JaaS API Key: linked to you account in jaas-ai.com
  	- Criteria: you can enter up to 3 criteria for each node. The criteria should be available in teh Criteria Database in jaas-ai.com.
  	- Type of Evaluation: S - Simple, or C- Conversational
  	- Cohort: to groupe the evaluations in groups for better tracking
    
  ***Input:*** You should provide the no de the fields needed for the evaluation:
  	- question: question to answer
  	- answer: answer that has to be evaluated
  	- ground_truth_answer: source of truth for the answer to be evaluated
  	- context: additional information to help the evaluation process
  The inputs should be in Json Format.

  Obtain the results and monitor what is going on with your tools!

  Look for more information and examples in our website!!

  support: support@jaas-ai.com
  website: jaas-ai.net

ai_documentation_summary:
  {"purpose":"The JaaS AI node evaluates AI-generated text by comparing it to a ground truth answer using predefined criteria, providing real-time scores and reasoning to detect inaccuracies, hallucinations, and consistency issues.","capabilities":["Evaluates AI responses for accuracy and hallucinations","Supports customizable evaluation criteria (e.g., Accuracy, Hallucination)","Differentiates between simple and conversational evaluation types","Provides detailed scoring and reasoning for each criterion","Enables cohort-based tracking for monitoring and analysis"],"authentication":"API key required (JaaS API key from jaas-ai.net and an LLM provider API key)","commonUseCases":["Monitoring chatbot responses for hallucinations and accuracy","Validating AI-generated content in workflows","Ensuring consistency and quality in automated responses","Tracking performance over time using cohort grouping"],"limitations":["Criteria must be available in the JaaS AI Criteria Database","Context field is optional but recommended for detecting hallucinations in conversational scenarios","Only up to three criteria can be selected per node configuration"],"relatedNodes":["LLM nodes for generating answers","Data validation nodes","Monitoring and analytics nodes"]}


node_type: @datafix/n8n-nodes-exact-online.exactOnline
package_name: @datafix/n8n-nodes-exact-online
display_name: Exact Online
description: Exact Online Node
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: bramknuever
author_github_url: https://github.com/DataFix-B-V/ExactOnline.git
npm_package_name: @datafix/n8n-nodes-exact-online
npm_version: 0.3.7
community_fetched_at: 2026-01-07T20:08:16.109Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "description": "Resource to connect to. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code-examples/expressions/\">expression</a>. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "displayName": "Resource Name or ID",
      "typeOptions": {
        "loadOptionsMethod": "getResources",
        "loadOptionsDependsOn": [
          "service"
        ]
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "description": "Operation to use. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code-examples/expressions/\">expression</a>. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "displayName": "Operation Name or ID",
      "typeOptions": {
        "loadOptionsMethod": "getOperations",
        "loadOptionsDependsOn": [
          "resource"
        ]
      },
      "noDataExpression": true
    }
  ]

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

  # n8n-nodes-exact-online

  This node was developed during the n8n node-athon. This is version one with a basic CRUD implemented.
  During the development the API reference docs were scraped with a n8n workflow. This Workflow was also included in the repo.
  There were 396 pages scraped and processed into a config file.

  The node is usable with a Developer account which can be created for free at Exact Online's website. This way you can test the node however you like it without compromising your production environment.
  After you can easily connect it with a production environment and automate your workflows.

  ## Developer

  Hi, 

  We are [DataFix](https://datafix.nl), an expert partner of n8n.
  > :warning: **We have developed this node to be free to use. The node is as-is, support is not included.**

  Some of the services we offer:
  * Node Development
  * Workflow Development
  * Mentoring
  * Support

  Feel free to reach out if you want to hire us @ hi@datafix.nl

  For questions or issues with the node, please open an issue on Github.
  We will have a look and if it is an issue with the node we will try to fix it. Be sure to include a proper description and screenshot(s) of the issue so we can easily understand the issue.

  ## Exact Online

  Exact Online is an ERP solution that is offered as a cloud service. Most companies that use exact use it as their main application and have all kinds of applications they use around that. Exact has been expanding over the years and they now offer Exact Online internationally.

  ## Install instructions

  The node can be installed with the community package feature. It can also be installed manually. 
  If you need more information on that, please refer to the n8n docs.

  Make sure to restart n8n when you have installed the node.
  > :warning: **Make sure to restart n8n when you have installed the node.**

  ## Setup instructions

  > :warning: **You need a HTTPS callback url for it to function. Exact Online does not allow you to use HTTP. Make sure you have this before starting the setup.**

  > **_NOTE:_**  Some of the documentation was rewritten because the production app setup is a bit different from the development app. That is also why some names and urls arent the same everywhere, I hope it is clear enough not to get you confused about changing names and such.

  To setup this node you will have to create an App in Exact online. Below there is a step by step guide on how to do this.
  In the future there might be a possibility to simply select it from the app store of Exact Online. I will be looking into getting it approved at a later date.

  The Images should be clear enough for you to follow along.

  Login into Exact Online by clicking on the marked button

  ![Login](https://github.com/bramkn/ExactOnline/blob/master/Images/login.png)

  Click on appcenter button to open the app center, this where you can connect apps.

  ![ManageApps](https://github.com/bramkn/ExactOnline/blob/master/Images/appcenterNormal.png)

  At this point it will forward you to all the apps you can browse. You probably need to click on login in the top right again to actually login on this page.

  After that you will see the manage apps button
  Click on the manage apps button

  ![ManageApps2](https://github.com/bramkn/ExactOnline/blob/master/Images/manageapps2.png)

  You will then see your apps. There is a choice between production and test. Click on register an app.
  If you do not have a choice simply click on the big + to register an app.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/Apps.png)

  Open a tab with n8n and go to the Exact Online Node, if you do not have it open already.
  Create a new credentials entry or modify an existing one in the app.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/credentials.png)

  You should see the credential information. You need to fill this in, but first you need the Callback URL to be filled in into the app setup in Exact Online.
  Copy the callback URL from n8n into Exact Online. 
  If you are registering a production app you will need to do this in this first screen that pops up. If it is a testing app this pop-up is skipped. (fill in the name and the callback url in the following screen if this step is skipped)

  ![prodRegister](https://github.com/bramkn/ExactOnline/blob/master/Images/registerappProd.png)

  Fill in the rest of the information in the credentials of n8n.
  Should look a bit like this:

  Exact Online:
  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/oauth2Exact2.png)

  n8n:
  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/Oauth2n8n2.png)

  After you can Click connect / reconnect and it might give you a pop-up to login to exact online if you aren't logged in yet or you need to confirm the connection / approve some terms.

  ## Features v1.0

  All posible API requests were scraped from the Exact Online docs. This was used to create a config file. some quality of life features were added and more will be added in the future.

  You can choose al Devisions your account has access to. And all data you have access to will be able to be retrieved.
  Somtimes you do not retrieve any data that is because there is non or you do not have access.

  you can use the dropdowns to select what you want to do.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/options1.png)

  when retrieving data you can add filters and choose what fields you want to include. You can both name field to be included and excluded. Some Api endpoints allow you to retrieve all fields when not selecting any and some require you to select the fields you want to include. By setting the slider to exclude the selected fields and not selecting any fields the node will automatically fetch all fields available.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/options3.png)


  when you want to create a new record or edit it, you will be able to add fields and select fields from a list of options for that specific resource.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/options2.png)

  ## Using the scraper

  - You do not need an account for the scraper.
  - Paste the JSON into an n8n workflow.
  - Set the Github Authorization
  - The first time you might want to set the Github node to create the file.
  - Start
  - Done -> make sure to format the output file as this will improve the readability ;-)

  ## More info on the API

  [Exact Online ref](https://start.exactonline.nl/docs/HlpRestAPIResources.aspx?SourceAction=10)

  ## License

  [ChickenDance](https://github.com/bramkn/ExactOnline/blob/master/n8n-nodes-exact-online/LICENSE.md)

ai_documentation_summary:
  {"purpose":"The Exact Online node enables users to interact with the Exact Online ERP platform via n8n, supporting CRUD operations (Create, Read, Update, Delete) on various modules and data entities using OAuth2 authentication.","capabilities":["Retrieve, create, update, and delete data from Exact Online","Filter data using custom filters and field selection","Select specific fields to include or exclude (with automatic fetch of all fields when excluding and no fields are selected)","Choose available divisions and data access based on account permissions","Support for both development and production environments via app registration"],"authentication":"OAuth2 with a required HTTPS callback URL (Exact Online does not support HTTP)","commonUseCases":["Automating data extraction from Exact Online for inventory, sales, or accounting reports","Syncing customer or vendor data between Exact Online and other systems","Triggering workflows based on changes in Exact Online records","Periodic data backups or audits using scheduled n8n workflows"],"limitations":["Node is free and unsupported; no official support or bug fixes provided by the developer","Only basic CRUD functionality implemented (v1.0); future updates may add features","Relies on scraped API documentation; may have inaccuracies or missing endpoints","Requires a valid HTTPS callback URL; HTTP connections are not allowed","Access to data is limited by user permissions; some data may not be retrievable"],"relatedNodes":["OAuth2","Database","Webhook","HTTP Request"]}


node_type: @woztell-sanuker/n8n-nodes-woztell-sanuker.woztellTrigger
package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
display_name: WOZTELL Trigger
description: Handle events via webhooks
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: krisatwoztell
author_github_url: https://github.com/Woztell/n8n-nodes-woztell-sanuker.git
npm_package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
npm_version: 0.1.12
community_fetched_at: 2026-01-07T20:08:16.110Z
ai_summary_generated_at: 2026-01-08 10:45:32
npm_readme:
  # n8n-nodes-woztell-sanuker

  Welcome to our WOZTELL n8n nodes, for easier [WOZTELL](https://woztell.com/) integration within your n8n workflows, please read:

  *  [Product Features](#product-features)
  *  [In case you don't have the n8n](#in-case-you-dont-have-the-n8n)
  *  [Sign up WOZTELL and WhatsApp Business API for Free](#sign-up-woztell-and-whatsapp-business-api-for-free)
  *  [Installation](#installation)
  *  [Credentials](#credentials)
  *  [Build automation with WOZTELL](#build-automation-with-woztell)
  *  [Triggers and Nodes](#triggers-and-nodes)
  *  [Contact](#contact)
  *  [About Us](#about-us)
  *  [Resources](#resources)


  ## Product Features

  * **Webhook**: Receive all WhatsApp, Facebook Messenger, Instagram, WebChat, and website messages in WOZTELL inbox in real time.

  * **Send Messages**: Send messages or approved message templates to target customers via WhatsApp Business API.

  * **Chatbot Forwarding**: Route customer conversations to WOZTELL chatbot for autoreply.

  * **Full WhatsApp Message Type Support**: Support all business message types and conversation categories available on WhatsApp and Facebook Messenger.

  * **Member Search**: Batch query WOZTELL user information using Member Tags.

  * **OpenAPI Information Query**: Directly query and update user profiles, conversation histories, and related data on WOZTELL platform via OpenAPI.


  ## In case you don't have the n8n

  Connect WOZTELL on n8n | Unlock AI-powered WhatsApp automation in just a few clicks. Easily build no-code workflows on WhatsApp, Messenger, Instagram, and WebChat by connecting WOZTELL with thousands of n8n integrations. Automate personalized broadcasts, conversations, and inbox management, fully powered by WOZTELL’s OpenAPI and GenAI engine.


  ## Sign up WOZTELL and WhatsApp Business API for Free

  You can now create a WOZTELL account and open up a WhatsApp Business API account, completely for free.

  1.  Go to the registration link: https://platform.woztell.com/signup?lang=en&utm_campaign=plugin-n8n&utm_medium=plugin-n8n&utm_source=N8N

  2.  Fill in personal and company details and verify your email.

      ![register2](https://store.sanuker.cn/nn/images/register2.png)

      ![register3](https://store.sanuker.cn/nn/images/register3.png)

  3.  Once you signed up, you will be directed to the platform homepage. There, you can register a WhatsApp Business API account for free following [https://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/](https://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/) or  use the buttons on the top right of the homepage to chat with our sales team or book a demo session.

      ![register4](https://store.sanuker.cn/nn/images/register4.png)

  ## Installation

  Install WOZTELL community node package in your n8n

  1.	Sign in to n8n with admin access
  2.	Go to **Settings** > **Community Nodes**
  3.	Select **Install**
  4.	Copy and paste the n8n package name @woztell-sanuker/n8n-nodes-woztell-sanuker

  ```
  @woztell-sanuker/n8n-nodes-woztell-sanuker
  ```

  <img src="https://store.sanuker.cn/nn/images/image-20250826180723230.png" alt="image-20250826180723230" style="zoom:50%;" />

  5.  Click **Install**. n8n will now download the package and you may return to n8n to use.

  Learn more about installation from  [https://docs.n8n.io/integrations/community-nodes/installation/gui-install/](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)



  ## Credentials

  Before you begin using our n8n plugin, you will need to obtain your API Credential information from the WOZTELL Platform. These credentials serve as the essential authentication keys for accessing the WOZTELL Product API. Please refer to the documentation linked below to acquire the appropriate credential according to the required permission level, and then enter this information into the WOZTELL n8n Credential configuration.

  1.  Open **Credential**

  ![image-20250829102707280](https://store.sanuker.cn/nn/images/image-20250829102707280.png)

  2.  Create credential by searching **WOZTELL**

  <img src="https://store.sanuker.cn/nn/images/image-20250829122336781.png" alt="image-20250829122336781" style="zoom:50%;" />

  3.  Login your WOZTELL account and open [**https://platform.woztell.com/settings/accesstokens?lang=en**](https://platform.woztell.com/settings/accesstokens?lang=en), and enable the **channel:list**, **botapi:sendResponses**, and **bot:redirectMemberToNode** permissions.

  4.  For more functions you need, please check the document [**https://doc.woztell.com/docs/documentations/settings/access-token/**](https://doc.woztell.com/docs/documentations/settings/access-token/)

  5.  Generate the access token

  6.  For more details on access token, please refer to this [https://doc.woztell.com/docs/documentations/settings/access-token](https://doc.woztell.com/docs/documentations/settings/access-token).

      ![image-20250829103010464](https://store.sanuker.cn/nn/images/image-20250829103010464.png)

  7.  Fill in access token and **Save**

      ![image-20250829103034574](https://store.sanuker.cn/nn/images/image-20250829103034574.png)

      

  ## Build automation with WOZTELL

  #### Create a n8n workflow

  ![image-20250829121753114](https://store.sanuker.cn/nn/images/image-20250829121753114.png)

  #### Open the nodes panel

  ![image-20250829121645155](https://store.sanuker.cn/nn/images/image-20250829121645155.png)

  #### Search WOZTELL

  <img src="https://store.sanuker.cn/nn/images/image-20250829121853114.png" alt="image-20250829121853114" style="zoom:50%;" />



  ## Triggers and Nodes

  #### Overview

  By searching the keyword **“WOZTELL”** in the sidebar, you can access the list of available n8n nodes and triggers.

  <img src="https://store.sanuker.cn/nn/images/image-20250829122639889.png" alt="image-20250829122639889" style="zoom:50%;" />

  Within this list, you will find all nodes and triggers developed by WOZTELL for n8n. You may directly drag and drop the required node or trigger into the workflow designer to make it part of your workflow.

  -  **Triggers**: These nodes enable you to receive all webhook message data coming from WOZTELL products.
  -  **BOT API Actions**: These nodes provide your workflow with the ability to send messages and perform data operations through WOZTELL products.
  -  **Member Actions**: These nodes allow you to efficiently manage all member information stored within WOZTELL products.



  #### Webhook: On WOZTELL Message received

  Through the **WOZTELL Trigger** node, you can receive webhook messages from any WOZTELL Channel, including various types such as *Inbound*, *Outbound*, and *Member Update*. Each message is delivered in JSON format and contains comprehensive data along with the associated event information.

  ![image-20250829122535949](https://store.sanuker.cn/nn/images/image-20250829122535949.png)

  Within this node, you can specify the corresponding **Webhook Path** and configure filtering options based on **Channel ID** and **Event Type**, ensuring that the information you receive is properly filtered and can be utilized effectively.

  Learn more from: [https://doc.woztell.com/docs/documentations/channels/channels-webhook](https://doc.woztell.com/docs/documentations/channels/channels-webhook)

  ![image-20250826184406024](https://store.sanuker.cn/nn/images/image-20250826184406024.png)



  #### Node: Send Response

  Using the **Send Response** node, you can directly send messages from your WhatsApp Business number to the target customer’s WhatsApp account via the WOZTELL BotAPI. All message content can be placed directly within the Response data.

  Once the message is sent, you will receive the corresponding API result, which allows subsequent nodes to continue processing the data.

  For more details, please refer to the official WOZTELL product documentation: [https://doc.woztell.com/docs/reference/bot-api-reference#send-responses](https://doc.woztell.com/docs/reference/bot-api-reference#send-responses)

  ![sendResponse](https://store.sanuker.cn/nn/images/sendResponse.png)



  #### Node: Redirect member to node

  With the **Redirect Member to Node** node, you no longer need to manually construct complex JSON data for sending messages. Instead, you simply pass the relevant WOZTELL information to a **Chatbot Tree** node, and the WOZTELL Chatbot will handle the subsequent actions for you — such as sending WhatsApp conversation message templates.

  This node can be understood as a memory pointer: it redirects the current operation to the WOZTELL Chatbot. You do not need to prepare complicated data structures; you only need to initiate a request to the BotAPI.

  For customers who already have chatbot designs running on the WOZTELL platform, this provides an excellent way to integrate with n8n.

  Learn more from: [https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node](https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node)

  ![redirectMemberToNode](https://store.sanuker.cn/nn/images/redirectMemberToNode.png)

  #### Node: Send WhatsApp Template message

  According to WhatsApp’s official business messaging guidelines, when contacting unfamiliar WhatsApp numbers or numbers outside the 24-hour session window, you must first send a **WhatsApp Template Message**.

  Our n8n plugin significantly simplifies the complexity of working with WhatsApp Template Messages. The current node can automatically generate the required message content based on templates that have already been created and approved. You only need to complete the corresponding form fields, and the Template Message can be sent directly.

  Learn more from: [https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template](https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template)

  ![image-20250826185818626](https://store.sanuker.cn/nn/images/image-20250826185818626.png)



  ## Contact

  We sincerely appreciate your strong support and understanding of our current n8n plugin. If you are interested in learning more about our products or services, you may also reach us through the following channels:

  *  WOZTELL product team: [https://woztell.com](https://woztell.com)
  *  Sanuker service team: [https://sanuker.com](https://sanuker.com)
  *  Email: [kris@woztell.com](mailto:kris@woztell.com)
  *  Email: [hello@woztell.com](mailto:hello@woztell.com)
  *  WOZTELL Customer Success WhatsApp: [https://wa.me/14157959796](https://wa.me/14157959796)
  *  Sanuker Service WhatsApp: [https://wa.me/85254432330](https://wa.me/85254432330)



  ## About Us

  **Sanuker**

  Sanuker is a leading AI Business Messaging Consulting firm, offering professional business messaging services and AI chatbot solutions tailored for enterprises. We distinguish ourselves in the market through our innovative approach to messaging designs and strategies, especially across Meta platforms - WhatsApp, Messenger, Instagram.

  As a trusted partners of AWS, HSBC Business Go, and Meta, we serve 10K+ clients across 25 countries through our WOZTELL Conversational Platform, empowering businesses to qualify leads and boost conversions.

  **WOZTELL**

  WOZTELL is your all-in-one platform to seamlessly create, manage, and deploy chatbots across WhatsApp, Messenger, Instagram, and Websites. Powered by cutting-edge GenAI engines, WOZTELL empowers you to execute personalized broadcasts, manage unlimited live chat agents, and integrate effortlessly with any third-party software via our robust OpenAPI.

  ## Resources

  - n8n Community Nodes, [https://docs.n8n.io/integrations/#community-nodes](https://docs.n8n.io/integrations/#community-nodes)
  - WOZTELL Platform documentation, [https://doc.woztell.com/](https://doc.woztell.com/)
  - WOZTELL Bot API, [https://doc.woztell.com/docs/reference/bot-api-reference](https://doc.woztell.com/docs/reference/bot-api-reference)
  - WOZTELL Open API, [https://doc.woztell.com/open-api-reference](https://doc.woztell.com/open-api-reference)
  - WOZTELL Webhook, [https://doc.woztell.com/docs/documentations/channels/channels-webhook](https://doc.woztell.com/docs/documentations/channels/channels-webhook)
  - WhatsApp Integration on Woztell: [https://doc.woztell.com/docs/integrations/whatsapp/wa-overview](https://doc.woztell.com/docs/integrations/whatsapp/wa-overview)
  - Facebook Messenger Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/facebook/fb-overview](https://doc.woztell.com/docs/integrations/facebook/fb-overview)
  - Instagram Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/instagram/ig-overview](https://doc.woztell.com/docs/integrations/instagram/ig-overview)
  - Webchat Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/web-chat/webchat-overview](https://doc.woztell.com/docs/integrations/web-chat/webchat-overview)

ai_documentation_summary:
  {"purpose":"The WOZTELL Trigger node enables real-time event handling by receiving incoming messages from WhatsApp, Facebook Messenger, Instagram, WebChat, and website channels via webhooks, allowing automation of customer interactions in n8n workflows.","capabilities":["Receive real-time messages from WhatsApp, Facebook Messenger, Instagram, WebChat, and website channels","Send messages or approved templates to customers via WhatsApp Business API","Route customer conversations to WOZTELL chatbot for autoreply","Support all message types and conversation categories available on WhatsApp and Facebook Messenger","Query user information using Member Tags","Query and update user profiles, conversation histories, and related data via OpenAPI"],"authentication":"API key (access token) required. The access token must be generated from the WOZTELL platform with specific permissions: channel:list, botapi:sendResponses, and bot:redirectMemberToNode.","commonUseCases":["Automate customer response workflows via WhatsApp and Messenger","Set up real-time message triggers for lead capture and follow-up","Integrate chatbot autoreplies for instant customer service","Batch search user data using member tags for targeted messaging","Sync conversation history and user profiles using OpenAPI"],"limitations":[],"relatedNodes":["WOZTELL Send Message","WOZTELL Chatbot Forwarding","WOZTELL Member Search","WOZTELL OpenAPI Query"]}


node_type: @apify/n8n-nodes-apify.apify
package_name: @apify/n8n-nodes-apify
display_name: Apify
description: Access Apify tools for web scraping, data extraction, and automation.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: mtrunkat
author_github_url: https://github.com/apify/n8n-nodes-apify.git
npm_package_name: @apify/n8n-nodes-apify
npm_version: 0.6.4
community_fetched_at: 2026-01-07T20:08:16.111Z
ai_summary_generated_at: 2026-01-08 10:45:31
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Actors",
      "options": [
        {
          "name": "Actor",
          "value": "Actors"
        },
        {
          "name": "Actor Task",
          "value": "Actor tasks"
        },
        {
          "name": "Actor Run",
          "value": "Actor runs"
        },
        {
          "name": "Dataset",
          "value": "Datasets"
        },
        {
          "name": "Key-Value Store",
          "value": "Key-Value Stores"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Run actor",
      "options": [
        {
          "name": "Run an Actor",
          "value": "Run actor",
          "action": "Run an Actor",
          "description": "Runs an Actor. You can override the Actor’s input configuration by providing a custom body, which will override the prefilled input values."
        },
        {
          "name": "Run an Actor and Get Dataset",
          "value": "Run actor and get dataset",
          "action": "Run an Actor and get dataset",
          "description": "Runs an Actor, waits for it to finish, and finally returns the dataset items"
        },
        {
          "name": "Scrape Single URL",
          "value": "Scrape single URL",
          "action": "Scrape single URL",
          "description": "Scrape a single URL using the Apify Website Content Crawler Actor and get its content as text, markdown, and HTML"
        },
        {
          "name": "Get Last Run",
          "value": "Get last run",
          "action": "Get last run",
          "description": "Retrieves the most recent run of an Actor. This endpoint is useful for quickly accessing the latest run details, including its status and storages, without needing to specify a run ID."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Actors"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Run task",
      "options": [
        {
          "name": "Run Task",
          "value": "Run task",
          "action": "Run task",
          "description": "Runs an Actor Task and return all associated details. You can optionally override the Actor’s input configuration by providing a custom body."
        },
        {
          "name": "Run Task and Get Dataset",
          "value": "Run task and get dataset",
          "action": "Run task and get dataset",
          "description": "Runs an Actor task, waits for it to finish, and finally returns the dataset items. You can optionally override the Actor’s input configuration by providing a custom body."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Actor tasks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get user runs list",
      "options": [
        {
          "name": "Get User Runs List",
          "value": "Get user runs list",
          "action": "Get user runs list",
          "description": "Gets a list of Actor runs for the user. This endpoint is useful for retrieving a history of runs, their statuses, and other data."
        },
        {
          "name": "Get run",
          "value": "Get run",
          "action": "Get run",
          "description": "Gets the details of a specific Actor run by its ID. This endpoint is useful for retrieving information about a run, such as its status, storages, and other metadata."
        },
        {
          "name": "Get runs",
          "value": "Get runs",
          "action": "Get runs",
          "description": "Gets a list of Actor runs. This endpoint is useful for retrieving a history of runs, their statuses, and other data."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Actor runs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get items",
      "options": [
        {
          "name": "Get Items",
          "value": "Get items",
          "action": "Get dataset items",
          "description": "Retrieves items from a dataset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Datasets"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Key-Value Store Record",
      "options": [
        {
          "name": "Get Key-Value Store Record",
          "value": "Get Key-Value Store Record",
          "action": "Get key-value store record",
          "description": "Gets a value stored in the key-value store under a specific key"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Key-Value Stores"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Run an Actor",
      "value": "Run actor",
      "action": "Run an Actor",
      "description": "Runs an Actor. You can override the Actor’s input configuration by providing a custom body, which will override the prefilled input values."
    },
    {
      "name": "Run an Actor and Get Dataset",
      "value": "Run actor and get dataset",
      "action": "Run an Actor and get dataset",
      "description": "Runs an Actor, waits for it to finish, and finally returns the dataset items"
    },
    {
      "name": "Scrape Single URL",
      "value": "Scrape single URL",
      "action": "Scrape single URL",
      "description": "Scrape a single URL using the Apify Website Content Crawler Actor and get its content as text, markdown, and HTML"
    },
    {
      "name": "Get Last Run",
      "value": "Get last run",
      "action": "Get last run",
      "description": "Retrieves the most recent run of an Actor. This endpoint is useful for quickly accessing the latest run details, including its status and storages, without needing to specify a run ID."
    },
    {
      "name": "Run Task",
      "value": "Run task",
      "action": "Run task",
      "description": "Runs an Actor Task and return all associated details. You can optionally override the Actor’s input configuration by providing a custom body."
    },
    {
      "name": "Run Task and Get Dataset",
      "value": "Run task and get dataset",
      "action": "Run task and get dataset",
      "description": "Runs an Actor task, waits for it to finish, and finally returns the dataset items. You can optionally override the Actor’s input configuration by providing a custom body."
    },
    {
      "name": "Get User Runs List",
      "value": "Get user runs list",
      "action": "Get user runs list",
      "description": "Gets a list of Actor runs for the user. This endpoint is useful for retrieving a history of runs, their statuses, and other data."
    },
    {
      "name": "Get run",
      "value": "Get run",
      "action": "Get run",
      "description": "Gets the details of a specific Actor run by its ID. This endpoint is useful for retrieving information about a run, such as its status, storages, and other metadata."
    },
    {
      "name": "Get runs",
      "value": "Get runs",
      "action": "Get runs",
      "description": "Gets a list of Actor runs. This endpoint is useful for retrieving a history of runs, their statuses, and other data."
    },
    {
      "name": "Get Items",
      "value": "Get items",
      "action": "Get dataset items",
      "description": "Retrieves items from a dataset"
    },
    {
      "name": "Get Key-Value Store Record",
      "value": "Get Key-Value Store Record",
      "action": "Get key-value store record",
      "description": "Gets a value stored in the key-value store under a specific key"
    }
  ]

npm_readme:
  # n8n Nodes - Apify integration

  This is an n8n community node that integrates [Apify](https://apify.com) with your n8n workflows, so you can run Apify Actors, extract structured data from websites, and automate complex web scraping tasks.

  [Apify](https://apify.com) is a platform for developers to build, deploy, and publish web automation tools, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) tool for AI workflow automation that allows you to connect various services.

  ## Table of contents

  - [Installation on self hosted instance](#installation-self-hosted)
  - [Installation on n8n cloud](#installation-n8n-cloud)
  - [Installation for development and contributing](#installation-development-and-contributing)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)
  - [Release](#releasing-a-new-version)
  - [Version History](#version-history)
  - [Troubleshooting](#troubleshooting)

  ## Installation (self-hosted)

  To install the Apify community node directly from the n8n Editor UI:

  1. Open your n8n instance.
  2. Go to **Settings > Community Nodes**
  3. Select **Install**.
  4. Enter the npm package name: `@apify/n8n-nodes-apify` to install the latest version. To install a specific version (e.g 0.4.4) enter `@apify/n8n-nodes-apify@0.4.4`. All versions are available [here](https://www.npmjs.com/package/@apify/n8n-nodes-apify?activeTab=versions)
  5. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes and select **Install**
  6. The node is now available to use in your workflows.

  ## Installation (n8n Cloud)

  If you’re using n8n Cloud, installing community nodes is even simpler:

  1. Go to the **Canvas** and open the **nodes panel**.
  2. Search for **Apify** in the community node registry.
  3. Click **Install node** to add the Apify node to your instance.


   > On n8n cloud users can choose not to show verified community nodes. Instance owners can toggle this in the Cloud Admin Panel. To install the Apify node, make sure the installation of verified community nodes is enabled. 


  ## Installation (development and contributing) 
  To contribute to our Apify node, you can install the node and link it to your n8n instance. Follow the steps below:

  ### ⚙️ Prerequisites

  - Node.js (recommended: v18.10+)
  - pnpm installed globally

  ---

  ### 1. Initialize n8n locally

  Begin by installing and running n8n to create the necessary configuration directory (`~/.n8n`):

  ```bash
  npm install -g n8n # Skip this step if you already have n8n installed globally
  n8n start # This will generate the ~/.n8n directory
  ```

  ### 2. Clone and build the Node Package

  Install dependencies and build the node:

  ```bash
  pnpm install
  pnpm run build
  ```

  ### 3. Link the custom node to n8n

  Create the `custom` directory inside `~/.n8n` (if it doesn't exist), then symlink your local node package:

  ```bash
  mkdir -p ~/.n8n/custom
  ln -s /full/path/to/n8n-nodes-apify ~/.n8n/custom/n8n-nodes-apify # replace full/path/to with the path to your n8n-nodes-apify directory
  ```

  > **Note:** Use the absolute path in the symlink for compatibility.

  ### 4. Restart n8n

  Now that your custom node is linked, start n8n again:

  ```bash
  n8n start
  ```

  ---

  ### 🔁 Making changes

  If you make any changes to your custom node locally, remember to rebuild and restart:

  ```bash
  pnpm run build
  n8n start
  ```

  ---

  ## Self-hosted n8n: Public webhook URL for triggers

  This configuration is required for our service's trigger functionality to work correctly.

  By default, when running locally n8n generates webhook URLs using `localhost`, which external services cannot reach. To fix this:

  1. **Set your webhook URL**  
  In the same shell or Docker environment where n8n runs, export the `WEBHOOK_URL` to a publicly-accessible address. For example:
    ```bash
    export WEBHOOK_URL="https://your-tunnel.local"
    ```
  2. **Restart n8n** 
    ```bash
    pnpm run build
    n8n start
    ```

  ## Operations

  ![operations](./docs/actions.png)

  This node supports a wide range of Apify operations, organized by resource type:

  ### Actors
  - **Run Actor**: Execute an Actor with optional input parameters
    - **Default behavior**: Uses predefined input values
    - **Custom input**: Provide JSON object to override any or all default parameters.
    - Configurable timeout and memory limits
    - Build version selection
  - **Run Actor and get dataset items**: Execute an Actor, waits for it to finish, and finally returns the dataset items
  - **Scrape Single URL**: Quick scraping of a single URL
  - **Get Last Run**: Retrieve information about the most recent Actor run

  ![actor run](./docs/run-actor.png)

  ### Actor tasks
  - **Run Task**: Execute a predefined Actor task
    - Supports custom input JSON
    - Configurable timeout
    - Task-specific settings
  - **Run task and get dataset items**: Execute a task, wait for it to finish, and return the dataset items

  ### Actor runs
  - **Get User Runs List**: List all runs for a user
    - Pagination support
    - Sorting options
    - Status filtering
  - **Get run**: Retrieve detailed information about a specific run

  ### Datasets
  - **Get Items**: Fetch items from a dataset

  ### Key-Value Stores
  - **Get Key-Value Store Record**: Retrieve a specific record by key

  ### Triggers
    Automatically start an n8n workflow whenever an Actor or task finishes execution
    - Can be configured to trigger on success, failure, abort, timeout or any combination of these states
    - Includes run metadata in the output
    - Available triggers: 
      - **Actor Run Finished**: Start a workflow when an Actor run completes
      - **Task Run Finished**: Start a workflow when a task run completes

  ![triggers](./docs/trigger.png)

  ### AI Tools

  All Apify node operations can be combined with n8n's AI tools to create powerful workflows.
  For example, you can scrape data from a website using an Actor and then use an AI model to analyze or summarize the extracted information.

  ## Credentials

  The node supports two authentication methods:

  1. **API key authentication**
     - Configure your Apify API key in the n8n credentials section under `apifyApi`

  2. **OAuth2 authentication** (available only in n8n cloud)
     - Configure OAuth2 credentials in the n8n credentials section under `apifyOAuth2Api`

  ![auth](./docs/auth.png)


  ## Compatibility

  This node has been tested with n8n version 1.57.0.

  ## Usage

  1. **Create an Actor**: Set up a new Actor on [Apify](https://apify.com).
  2. **Set up a workflow**: Create a new workflow in n8n.
  3. **Add the Apify node**: Insert the Apify node into your workflow.
  4. **Configure credentials**: Enter your Apify API key and Actor ID.
  5. **Select an operation**: Choose the desired operation for the node.
  6. **Execute the workflow**: Run the workflow to execute the Apify operation.

  ![workflow](./docs/workflow.png)

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Apify API Documentation](https://docs.apify.com)

  # Releasing a New Version

  This project uses a GitHub Actions workflow to automate the release process, including publishing to npm. Here's how to trigger a new release.

  **Prerequisites (for all methods):**

  * Ensure your target branch on GitHub is up-to-date with all changes you want to include in the release.
  * Decide on the new version number, following semantic versioning (e.g., `vX.Y.Z`).
  * Prepare your release notes detailing the changes.
  * If you're using CLI to release, make sure you have the [GitHub CLI (`gh`)](https://cli.github.com/) installed and authenticated (`gh auth login`).

  ---

  ## Method 1: Using the GitHub Web UI (Recommended for ease of use)

  1.  **Navigate to GitHub Releases:**
      * Go to your repository’s "Releases" tab

  2.  **Draft a New Release:**
      * Click the **“Draft a new release”** button.

  3.  **Create or Choose a Tag:**
      * In the “Choose a tag” dropdown:
          * **Type your new tag name** (e.g., `v1.2.3`).
          * If the tag doesn't exist, GitHub will prompt you with an option like **“Create new tag: v1.2.3 on publish.”** Click this.
          * Ensure the **target branch** selected for creating the new tag is correct. This tag will point to the latest commit on this target branch.

  4.  **Set Release Title and Notes:**
      * Set the "Release title" (e.g., `vX.Y.Z` or a more descriptive title).
      * For the release notes in the description field, you have a few options:
          * **Write your prepared release notes.**
          * **Click the "Generate release notes" button:** GitHub will attempt to automatically create release notes based on merged pull requests since the last release. You can then review and edit these auto-generated notes.

  5.  **Publish the Release:**
      * Click the **“Publish release”** button.

      *Upon publishing, GitHub creates the tag from your specified branch and then creates the release. This "published" release event triggers the automated workflow.*

  ---

  ## Method 2: Fully CLI-Driven Release

  This method uses the GitHub CLI (`gh`) for all steps, including tag creation.

  1.  **Ensure your local target branch is synced and changes are pushed:**
      ```bash
      git checkout master
      git pull origin master
      ```

  2.  **Create the Release (which also creates and pushes the tag):**
      Replace `vX.Y.Z` with your desired tag/version. The command will create this tag from the latest commit of your specified `--target` branch (defaults to repository's default branch, if `--target` is omitted and the branch is up to date).

      ```bash
      gh release create vX.Y.Z \
          --target master \
          --title "vX.Y.Z" \
          --notes "Your detailed release notes here.
          - Feature X
          - Bugfix Y"

      # Or, to use notes from a file:
      gh release create vX.Y.Z \
          --target master \
          --title "vX.Y.Z" \
          --notes-file ./RELEASE_NOTES.md

      # Or, to generate notes from pull requests (commits must follow conventional commit format for best results):
      gh release create vX.Y.Z \ 
          --target master \
          --title "vX.Y.Z" 
          --generate-notes
      ```
      
      * `vX.Y.Z`: The tag and release name.
      * `--target <branch>`: Specifies which branch the tag should be created from (e.g., `master`). If the tag `vX.Y.Z` doesn't exist, `gh` will create it based on the HEAD of this target branch and push it.
      * `--title "<title>"`: The title for your release.
      * `--notes "<notes>"` or `--notes-file <filepath>` or `--generate-notes`: Your release notes.

      *This command will create the tag, push it to GitHub, and then publish the release. This "published" release event triggers the automated workflow.*

  ---

  ## Post-Release: Automated Workflow & Verification (Common to all methods)

  Regardless of how you create and publish the GitHub Release:

  1.  **Automated Workflow Execution:**
      * The "Release & Publish" GitHub Actions workflow will automatically trigger.
      * It will perform:
          1.  Code checkout.
          2.  Version extraction (`X.Y.Z`) from the release tag.
          3.  Build and test processes.
          4.  Update `package.json` and `pnpm-lock.yaml` to version `X.Y.Z`.
          5.  Commit these version changes back to the branch the release was targeted from with a message like `chore(release): set version to X.Y.Z [skip ci]`.
          6.  Publish the package `@apify/n8n-nodes-apify@X.Y.Z` to npm.

  2.  **Verify the Package on npm:**
      After the workflow successfully completes (check the "Actions" tab in your GitHub repository):
      * Verify the new version on npm:
          ```bash
          pnpm view @apify/n8n-nodes-apify version
          ```
          This should print `X.Y.Z`.

  ## Version history

  Track changes and updates to the node here.

  ## Troubleshooting

  ### Common issues

  1. **Authentication errors**
     - Verify your API key is correct

  2. **Resource Not Found**
     - Verify the resource ID format
     - Check if the resource exists in your Apify account
     - Ensure you have access to the resource

  3. **Operation failures**
     - Check the input parameters
     - Verify resource limits (memory, timeout)
     - Review Apify Console for detailed error messages

  ### Getting help

  If you encounter issues:
  1. Check the [Apify API documentation](https://docs.apify.com)
  2. Review the [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in the [GitHub repository](https://github.com/apify/n8n-nodes-apify)

ai_documentation_summary:
  {"purpose":"The Apify node enables n8n users to integrate with Apify's web scraping and automation tools, allowing execution of Apify Actors, extraction of structured data, and automation of complex web scraping tasks through workflows.","capabilities":["Run Actors with custom input parameters and configurable timeout/memory limits","Run Actors and retrieve dataset items after completion","Scrape a single URL using Apify's scraping capabilities","Get information about the last Actor run","Run predefined Actor tasks with custom input and configurable timeout","Run tasks and retrieve dataset items upon completion","List user Actor runs with pagination, sorting, and status filtering","Retrieve specific run details","Fetch items from datasets","Retrieve key-value store records by key"],"authentication":"API key required (configured via credentials in n8n)","commonUseCases":["Automated web scraping of dynamic or large-scale websites","Extracting structured data from public or private websites","Running automated data processing workflows using Apify Actors","Monitoring and reacting to completed Actor or task runs via triggers","Managing and retrieving data from Apify datasets and key-value stores"],"limitations":["AI Tools section is truncated in the README, so full AI functionality may not be documented or available","Self-hosted instances require a public webhook URL (e.g., via tunneling) for trigger functionality to work","No explicit mention of rate limits, error handling, or data size constraints in the documentation"],"relatedNodes":["Web Scraping Nodes","Automation Triggers","Data Extraction Nodes","Workflow Triggers"]}


node_type: n8n-nodes-hedy.hedy
package_name: n8n-nodes-hedy
display_name: Hedy
description: Interact with Hedy API to retrieve meeting intelligence data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-01-07 20:08:16
author_name: julian-hedy
author_github_url: https://github.com/HedyAI/
npm_package_name: n8n-nodes-hedy
npm_version: 1.1.1
community_fetched_at: 2026-01-07T20:08:16.111Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "session",
      "options": [
        {
          "name": "Session",
          "value": "session",
          "description": "Meeting session operations"
        },
        {
          "name": "Highlight",
          "value": "highlight",
          "description": "Meeting highlight operations"
        },
        {
          "name": "Todo",
          "value": "todo",
          "description": "Todo item operations"
        },
        {
          "name": "Topic",
          "value": "topic",
          "description": "Topic operations for organizing sessions"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a session",
          "description": "Get a specific session by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many sessions",
          "description": "Get multiple sessions"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a highlight",
          "description": "Get a specific highlight by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many highlights",
          "description": "Get multiple highlights"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "highlight"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many todos",
          "description": "Get all todos"
        },
        {
          "name": "Get by Session",
          "value": "getBySession",
          "action": "Get todos by session",
          "description": "Get todos for a specific session"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "todo"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a topic",
          "description": "Get a specific topic by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many topics",
          "description": "Get all topics"
        },
        {
          "name": "Get Topic Sessions",
          "value": "getSessions",
          "action": "Get sessions by topic",
          "description": "Get all sessions for a specific topic"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "topic"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a session",
      "description": "Get a specific session by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many sessions",
      "description": "Get multiple sessions"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a highlight",
      "description": "Get a specific highlight by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many highlights",
      "description": "Get multiple highlights"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many todos",
      "description": "Get all todos"
    },
    {
      "name": "Get by Session",
      "value": "getBySession",
      "action": "Get todos by session",
      "description": "Get todos for a specific session"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a topic",
      "description": "Get a specific topic by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many topics",
      "description": "Get all topics"
    },
    {
      "name": "Get Topic Sessions",
      "value": "getSessions",
      "action": "Get sessions by topic",
      "description": "Get all sessions for a specific topic"
    }
  ]

npm_readme:
  # n8n-nodes-hedy

  [![npm version](https://badge.fury.io/js/n8n-nodes-hedy.svg)](https://www.npmjs.com/package/n8n-nodes-hedy)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![n8n Community Node](https://img.shields.io/badge/n8n-Community%20Node-orange)](https://n8n.io)

  This is an n8n community node that lets you integrate [Hedy](https://hedy.bot) - your AI-powered meeting intelligence assistant - into your n8n workflows.

  Hedy helps you be the brightest person in the room by providing real-time transcription, meeting summaries, action items, and intelligent insights from your meetings.

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

  ## 🚀 Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings** > **Community Nodes**
  2. Search for `n8n-nodes-hedy`
  3. Click **Install**

  ### Manual Installation

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

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

  ### Docker Installation

  Add the following to your docker-compose.yml:

  ```yaml
  n8n:
    image: n8nio/n8n
    environment:
      - N8N_CUSTOM_EXTENSIONS=n8n-nodes-hedy
  ```

  ## 🔑 Authentication

  1. Get your API key from [Hedy Dashboard](https://app.hedy.bot):
     - Navigate to Settings → API
     - Click "Generate New Key"
     - Copy the key (starts with `hedy_live_`)

  2. In n8n:
     - Go to Credentials
     - Create new "Hedy API" credential
     - Paste your API key
     - Click "Save"

  ## 📦 Nodes Included

  ### Hedy Trigger
  Receives real-time webhook notifications when events occur in Hedy:

  - **Session Created** - When a new meeting session starts
  - **Session Ended** - When a meeting session completes
  - **Highlight Created** - When a highlight is created during a meeting
  - **Todo Exported** - When a todo item is exported

  ### Hedy
  Performs actions and retrieves data from Hedy:

  - **Sessions**
    - Get Session - Retrieve detailed session information
    - Get Many Sessions - List multiple sessions with pagination
    
  - **Highlights**
    - Get Highlight - Retrieve specific highlight details
    - Get Many Highlights - List multiple highlights
    
  - **Todos**
    - Get Many Todos - List all todo items
    - Get Todos by Session - Get todos for a specific session

  ## 🎯 Example Workflows

  ### 1. Meeting Summary to Slack
  Send meeting summaries to Slack when sessions end:

  ```
  [Hedy Trigger: Session Ended]
      → [Hedy: Get Session Details]
      → [Slack: Send Message]
  ```

  ### 2. Highlight Collection to Notion
  Save important highlights to a Notion database:

  ```
  [Hedy Trigger: Highlight Created]
      → [Hedy: Get Highlight Details]
      → [Notion: Create Database Entry]
  ```

  ### 3. Todo Export to Project Management
  Export todos to your project management tool:

  ```
  [Hedy Trigger: Todo Exported]
      → [Jira/Trello/Asana: Create Task]
  ```

  ### 4. Daily Meeting Report
  Generate daily meeting reports:

  ```
  [Schedule Trigger: Daily at 5 PM]
      → [Hedy: Get Many Sessions (today)]
      → [Transform: Format Report]
      → [Email: Send Report]
  ```

  ## 📊 Data Structures

  ### Session Object
  ```json
  {
    "id": "sess_abc123",
    "title": "Team Standup",
    "startTime": "2024-01-10T10:00:00Z",
    "endTime": "2024-01-10T10:30:00Z",
    "duration": 1800,
    "transcript": "Full transcript...",
    "conversations": [...],
    "meeting_minutes": "Meeting notes...",
    "recap": "Summary...",
    "user_todos": [...],
    "topic": {...}
  }
  ```

  ### Highlight Object
  ```json
  {
    "id": "high_xyz789",
    "sessionId": "sess_abc123",
    "timestamp": "2024-01-10T10:15:00Z",
    "title": "Key Decision",
    "rawQuote": "Original quote...",
    "cleanedQuote": "Cleaned quote...",
    "mainIdea": "Core concept...",
    "aiInsights": "Analysis..."
  }
  ```

  ### Todo Object
  ```json
  {
    "id": "todo_123",
    "sessionId": "sess_abc123",
    "text": "Follow up with marketing team",
    "dueDate": "2024-01-15",
    "completed": false,
    "topic": {...}
  }
  ```

  ## ⚙️ Configuration

  ### Webhook Limits
  - Maximum of 10 webhooks per Hedy account
  - Webhooks must use HTTPS URLs
  - Each webhook receives a unique signing secret for security

  ### Pagination
  - Default page size: 50 items
  - Maximum page size: 100 items
  - Supports cursor-based pagination for large datasets

  ### Rate Limiting
  The API follows standard rate limiting practices. If you encounter rate limit errors, implement exponential backoff in your workflows.

  ## 🔒 Security

  ### Webhook Signature Verification
  All webhooks include an `X-Hedy-Signature` header for verification:

  1. The signature is an HMAC SHA-256 hash of the request body
  2. Each webhook has a unique signing secret
  3. Signature verification is enabled by default (recommended)

  ### API Key Security
  - Never share your API key publicly
  - Rotate keys regularly (every 90 days recommended)
  - Use n8n's built-in credential encryption
  - Keys can be revoked instantly from the Hedy dashboard

  ## 🐛 Troubleshooting

  ### Common Issues

  **Webhook Registration Fails**
  - Ensure your n8n instance uses HTTPS
  - Check you haven't exceeded the 10 webhook limit
  - Verify your API key has the necessary permissions

  **No Data Returned**
  - Verify the resource ID exists
  - Check your API key is valid
  - Ensure you have access to the requested resource

  **Signature Verification Fails**
  - Don't modify webhook payloads
  - Ensure signature verification is using the correct secret
  - Check for clock skew between servers

  ## 📚 Resources

  - [Hedy Website](https://hedy.bot)
  - [Hedy API Documentation](https://api.hedy.bot/docs)
  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community Forum](https://community.n8n.io)

  ## 💬 Support

  - **Hedy Support**: support@hedy.bot
  - **API Issues**: api@hedy.bot
  - **n8n Node Issues**: [GitHub Issues](https://github.com/HedyAI/n8n-nodes-hedy/issues)

  ## 🤝 Contributing

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

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

  ## 📄 License

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

  ## 🙏 Acknowledgments

  - Thanks to the n8n team for their excellent workflow automation platform
  - Thanks to the Hedy team for providing comprehensive API documentation
  - Thanks to all contributors and users of this node

  ## 📈 Version History

  See [CHANGELOG.md](CHANGELOG.md) for a list of changes in each version.

  ---

  Made with ❤️ by the Hedy team

ai_documentation_summary:
  {"purpose":"The Hedy node enables integration with Hedy's AI-powered meeting intelligence platform, allowing users to receive real-time event triggers (like session starts, highlights, or todos) and retrieve meeting data such as transcripts, summaries, action items, and insights directly within n8n workflows.","capabilities":["Trigger on session creation, session end, highlight creation, or todo export","Retrieve session details, list multiple sessions with pagination","Fetch highlight details and lists","Retrieve todo items and todos by session","Supports webhook-based real-time event notifications with HMAC signature verification"],"authentication":"API key required; obtain from Hedy Dashboard (Settings → API → Generate New Key), then save it in n8n under 'Credentials' as a 'Hedy API' credential","commonUseCases":["Send meeting summaries to Slack when sessions end","Save meeting highlights to Notion databases","Export todos to project management tools like Jira or Trello","Generate daily meeting reports via scheduled workflows"],"limitations":["Maximum of 10 webhooks per Hedy account","Webhooks must use HTTPS URLs","Rate limiting applies; exponential backoff recommended in workflows","Pagination limited to 50–100 items per page with cursor-based pagination","Signature verification requires correct secret and unmodified payloads; clock skew may cause failures"],"relatedNodes":["Slack","Notion","Jira","Trello","Asana"]}


node_type: n8n-nodes-anchorbrowser.anchorBrowser
package_name: n8n-nodes-anchorbrowser
display_name: Anchor Browser
description: Interact with Anchor Browser API for browser automation and control
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: gdanks-anchor
author_github_url: https://github.com/anchorbrowser/anchorbrowser-n8n-node.git
npm_package_name: n8n-nodes-anchorbrowser
npm_version: 0.1.10
community_fetched_at: 2026-01-07T20:08:16.112Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "session",
      "options": [
        {
          "name": "Browser Session",
          "value": "session"
        },
        {
          "name": "OS Level Control",
          "value": "osControl"
        },
        {
          "name": "Profile",
          "value": "profile"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Tool",
          "value": "tools"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Session",
          "value": "create",
          "action": "Create browser session",
          "description": "Start a new browser session"
        },
        {
          "name": "End All",
          "value": "endAll",
          "action": "End all browser sessions",
          "description": "End all browser sessions"
        },
        {
          "name": "End Session",
          "value": "end",
          "action": "End browser session",
          "description": "End a specific browser session"
        },
        {
          "name": "Get Downloads",
          "value": "getDownloads",
          "action": "Get session downloads",
          "description": "Get session downloads"
        },
        {
          "name": "Get Recordings",
          "value": "getRecordings",
          "action": "Get session recordings",
          "description": "Get session recordings"
        },
        {
          "name": "Get Session",
          "value": "get",
          "action": "Get browser session",
          "description": "Get details of a specific session"
        },
        {
          "name": "List All",
          "value": "listAll",
          "action": "List all browser sessions",
          "description": "List all browser sessions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete Profile",
          "value": "delete",
          "action": "Delete profile",
          "description": "Delete a profile"
        },
        {
          "name": "Get Profile",
          "value": "get",
          "action": "Get profile",
          "description": "Get details of a specific profile"
        },
        {
          "name": "List Profiles",
          "value": "list",
          "action": "List all profiles",
          "description": "List all profiles"
        },
        {
          "name": "Update Profile",
          "value": "update",
          "action": "Update profile",
          "description": "Update an existing profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchWebpage",
      "options": [
        {
          "name": "Fetch Webpage",
          "value": "fetchWebpage",
          "action": "Fetch webpage",
          "description": "Get webpage content as HTML or Markdown"
        },
        {
          "name": "Perform Web Task",
          "value": "performWebTask",
          "action": "Perform web task",
          "description": "Perform an AI-powered web task"
        },
        {
          "name": "Take Screenshot",
          "value": "screenshot",
          "action": "Take screenshot",
          "description": "Take a screenshot of a webpage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tools"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create Task",
          "value": "create",
          "action": "Create task",
          "description": "Create a new task or update existing task"
        },
        {
          "name": "Delete Task",
          "value": "delete",
          "action": "Delete task",
          "description": "Delete a task"
        },
        {
          "name": "Deploy Task",
          "value": "deploy",
          "action": "Deploy task",
          "description": "Deploy a task version"
        },
        {
          "name": "Get Execution",
          "value": "getExecution",
          "action": "Get execution result",
          "description": "Get a specific execution result by ID"
        },
        {
          "name": "List Executions",
          "value": "listExecutions",
          "action": "List task executions",
          "description": "List task execution results"
        },
        {
          "name": "List Tasks",
          "value": "list",
          "action": "List tasks",
          "description": "List all tasks"
        },
        {
          "name": "Run Task",
          "value": "run",
          "action": "Run task",
          "description": "Execute a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "mouseClick",
      "options": [
        {
          "name": "Copy Text",
          "value": "copyText",
          "action": "Copy text",
          "description": "Copy selected text"
        },
        {
          "name": "Drag and Drop",
          "value": "dragDrop",
          "action": "Drag and drop",
          "description": "Perform drag and drop"
        },
        {
          "name": "Get Clipboard",
          "value": "getClipboard",
          "action": "Get clipboard",
          "description": "Get clipboard content"
        },
        {
          "name": "Keyboard Shortcut",
          "value": "keyboardShortcut",
          "action": "Use keyboard shortcut",
          "description": "Perform keyboard shortcut"
        },
        {
          "name": "Mouse Click",
          "value": "mouseClick",
          "action": "Click mouse",
          "description": "Perform a mouse click"
        },
        {
          "name": "Mouse Double Click",
          "value": "mouseDoubleClick",
          "action": "Double click mouse",
          "description": "Perform a double click"
        },
        {
          "name": "Mouse Move",
          "value": "mouseMove",
          "action": "Move mouse",
          "description": "Move mouse cursor"
        },
        {
          "name": "Navigate to URL",
          "value": "navigate",
          "action": "Navigate to URL",
          "description": "Navigate to a URL"
        },
        {
          "name": "Paste Text",
          "value": "pasteText",
          "action": "Paste text"
        },
        {
          "name": "Scroll",
          "value": "scroll",
          "action": "Scroll page",
          "description": "Scroll the page"
        },
        {
          "name": "Set Clipboard",
          "value": "setClipboard",
          "action": "Set clipboard",
          "description": "Set clipboard content"
        },
        {
          "name": "Take Screenshot",
          "value": "screenshot",
          "action": "Take screenshot",
          "description": "Take a screenshot of current session"
        },
        {
          "name": "Type Text",
          "value": "typeText",
          "action": "Type text",
          "description": "Type text with keyboard"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "osControl"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Session",
      "value": "create",
      "action": "Create browser session",
      "description": "Start a new browser session"
    },
    {
      "name": "End All",
      "value": "endAll",
      "action": "End all browser sessions",
      "description": "End all browser sessions"
    },
    {
      "name": "End Session",
      "value": "end",
      "action": "End browser session",
      "description": "End a specific browser session"
    },
    {
      "name": "Get Downloads",
      "value": "getDownloads",
      "action": "Get session downloads",
      "description": "Get session downloads"
    },
    {
      "name": "Get Recordings",
      "value": "getRecordings",
      "action": "Get session recordings",
      "description": "Get session recordings"
    },
    {
      "name": "Get Session",
      "value": "get",
      "action": "Get browser session",
      "description": "Get details of a specific session"
    },
    {
      "name": "List All",
      "value": "listAll",
      "action": "List all browser sessions",
      "description": "List all browser sessions"
    },
    {
      "name": "Delete Profile",
      "value": "delete",
      "action": "Delete profile",
      "description": "Delete a profile"
    },
    {
      "name": "Get Profile",
      "value": "get",
      "action": "Get profile",
      "description": "Get details of a specific profile"
    },
    {
      "name": "List Profiles",
      "value": "list",
      "action": "List all profiles",
      "description": "List all profiles"
    },
    {
      "name": "Update Profile",
      "value": "update",
      "action": "Update profile",
      "description": "Update an existing profile"
    },
    {
      "name": "Fetch Webpage",
      "value": "fetchWebpage",
      "action": "Fetch webpage",
      "description": "Get webpage content as HTML or Markdown"
    },
    {
      "name": "Perform Web Task",
      "value": "performWebTask",
      "action": "Perform web task",
      "description": "Perform an AI-powered web task"
    },
    {
      "name": "Take Screenshot",
      "value": "screenshot",
      "action": "Take screenshot",
      "description": "Take a screenshot of a webpage"
    },
    {
      "name": "Create Task",
      "value": "create",
      "action": "Create task",
      "description": "Create a new task or update existing task"
    },
    {
      "name": "Delete Task",
      "value": "delete",
      "action": "Delete task",
      "description": "Delete a task"
    },
    {
      "name": "Deploy Task",
      "value": "deploy",
      "action": "Deploy task",
      "description": "Deploy a task version"
    },
    {
      "name": "Get Execution",
      "value": "getExecution",
      "action": "Get execution result",
      "description": "Get a specific execution result by ID"
    },
    {
      "name": "List Executions",
      "value": "listExecutions",
      "action": "List task executions",
      "description": "List task execution results"
    },
    {
      "name": "List Tasks",
      "value": "list",
      "action": "List tasks",
      "description": "List all tasks"
    },
    {
      "name": "Run Task",
      "value": "run",
      "action": "Run task",
      "description": "Execute a task"
    },
    {
      "name": "Copy Text",
      "value": "copyText",
      "action": "Copy text",
      "description": "Copy selected text"
    },
    {
      "name": "Drag and Drop",
      "value": "dragDrop",
      "action": "Drag and drop",
      "description": "Perform drag and drop"
    },
    {
      "name": "Get Clipboard",
      "value": "getClipboard",
      "action": "Get clipboard",
      "description": "Get clipboard content"
    },
    {
      "name": "Keyboard Shortcut",
      "value": "keyboardShortcut",
      "action": "Use keyboard shortcut",
      "description": "Perform keyboard shortcut"
    },
    {
      "name": "Mouse Click",
      "value": "mouseClick",
      "action": "Click mouse",
      "description": "Perform a mouse click"
    },
    {
      "name": "Mouse Double Click",
      "value": "mouseDoubleClick",
      "action": "Double click mouse",
      "description": "Perform a double click"
    },
    {
      "name": "Mouse Move",
      "value": "mouseMove",
      "action": "Move mouse",
      "description": "Move mouse cursor"
    },
    {
      "name": "Navigate to URL",
      "value": "navigate",
      "action": "Navigate to URL",
      "description": "Navigate to a URL"
    },
    {
      "name": "Paste Text",
      "value": "pasteText",
      "action": "Paste text"
    },
    {
      "name": "Scroll",
      "value": "scroll",
      "action": "Scroll page",
      "description": "Scroll the page"
    },
    {
      "name": "Set Clipboard",
      "value": "setClipboard",
      "action": "Set clipboard",
      "description": "Set clipboard content"
    },
    {
      "name": "Take Screenshot",
      "value": "screenshot",
      "action": "Take screenshot",
      "description": "Take a screenshot of current session"
    },
    {
      "name": "Type Text",
      "value": "typeText",
      "action": "Type text",
      "description": "Type text with keyboard"
    }
  ]

npm_readme:
  # n8n-nodes-anchorbrowser

  An n8n community node for integrating with the Anchor Browser API. This node provides comprehensive browser automation capabilities including session management, web scraping, AI-powered tasks, and OS-level control.

  ## Features

  ### Browser Sessions
  - **Create Session**: Start new browser sessions with customizable configurations
  - **Get Session**: Retrieve details of specific sessions
  - **List All Sessions**: Get status of all active sessions
  - **End Session**: Terminate specific sessions
  - **End All Sessions**: Terminate all active sessions
  - **Get Recordings**: Retrieve session recordings
  - **Get Downloads**: Get session downloads

  ### Profiles
  - **Get Profile**: Retrieve profile details
  - **List Profiles**: View all available profiles
  - **Update Profile**: Modify existing profiles (description only)
  - **Delete Profile**: Remove profiles

  ### Tools
  - **Fetch Webpage**: Get webpage content as HTML or Markdown (requires either Session ID or URL)
  - **Perform Web Task**: Execute AI-powered web tasks using various agents (requires either Session ID or URL)
  - **Take Screenshot**: Capture screenshots with customizable options (requires either Session ID or URL)

  > **Note**: Tools operations are flexible - you can either provide a Session ID to use an existing session, or provide a URL and let the system create a new session automatically. This makes the Tools operations perfect for quick, one-off tasks without needing to manage sessions manually.

  ### OS Level Control
  - **Mouse Actions**: Click, double-click, move, drag and drop (requires Session ID)
  - **Keyboard Input**: Type text, use shortcuts (requires Session ID)
  - **Scrolling**: Scroll pages with customizable parameters (requires Session ID)
  - **Clipboard**: Get/set clipboard content, copy/paste text (requires Session ID)
  - **Navigation**: Navigate to URLs (requires Session ID)
  - **Screenshots**: Capture current session screenshots (requires Session ID)

  ## Installation

  1. Install the node package:
  ```bash
  npm install n8n-nodes-anchorbrowser
  ```

  2. Or build from source:
  ```bash
  git clone https://github.com/anchorbrowser/n8n-nodes-anchorbrowser.git
  cd n8n-nodes-anchorbrowser
  npm install
  npm run build
  ```

  ## Configuration

  ### Credentials

  1. Get your API key from [Anchor Browser Dashboard](https://app.anchorbrowser.io?utm_source=n8n-node)
  2. In n8n, go to Credentials and create a new "Anchor Browser API" credential
  3. Enter your API key and base URL (default: https://api.anchorbrowser.io)

  ### Node Usage

  1. Add the "Anchor Browser" node to your workflow
  2. Select the resource type (Browser Session, Profile, Tools, etc.)
  3. Choose the operation you want to perform
  4. Configure the parameters as needed
  5. Connect the node to your workflow

  ## Examples

  ### Basic Web Scraping

  1. **Create Session**: Start a new browser session
  2. **Navigate**: Go to the target website using OS Control
  3. **Fetch Webpage**: Get the page content as HTML or Markdown
  4. **End Session**: Clean up the session

  ### AI-Powered Task Automation

  1. **Perform Web Task**: Use AI to complete tasks like form filling or data extraction (provides URL directly)
  2. **Get Results**: Retrieve the task results

  ### Session-Based Automation

  1. **Create Session**: Start a browser session
  2. **Navigate**: Go to target website using OS Control
  3. **Mouse Actions**: Click buttons, fill forms using OS Control
  4. **Take Screenshot**: Capture the result
  5. **End Session**: Clean up

  ### Profile Management

  1. **List Profiles**: View all available profiles
  2. **Get Profile**: Retrieve specific profile details
  3. **Update Profile**: Modify profile description
  4. **Delete Profile**: Remove unused profiles

  ## Configuration Options

  ### Session Configuration
  - **Initial URL**: Starting page for the browser
  - **Recording**: Enable/disable video recording
  - **Timeouts**: Set maximum duration and idle timeouts
  - **Live View**: Configure read-only viewing options

  ### Browser Configuration
  - **Profile Management**: Use existing profiles or create new ones
  - **Ad Blocking**: Enable/disable ad blocking
  - **Captcha Solving**: Configure AI-powered captcha solving
  - **Viewport**: Set browser window dimensions
  - **Headless Mode**: Run browser in headless or headful mode
  - **Web Security**: Disable web security features if needed

  ### Proxy Configuration
  - **Anchor Proxies**: Use Anchor's residential, mobile, or government proxies
  - **Custom Proxies**: Configure your own proxy servers
  - **Geographic Targeting**: Select specific countries, regions, or cities

  ### Tools Configuration
  - **Session ID**: Optional - if not provided, a new session will be created automatically
  - **URL**: Required for Tools operations if Session ID is not provided
  - **Format**: Choose between HTML and Markdown for webpage content
  - **AI Models**: Select from various AI providers (OpenAI, Groq, etc.)
  - **Screenshot Options**: Configure image quality, dimensions, and capture settings

  ## API Reference

  For detailed API documentation, visit [Anchor Browser API Docs](https://docs.anchorbrowser.io?utm_source=n8n-node).

  ## Support

  - **Documentation**: [https://docs.anchorbrowser.io?utm_source=n8n-node](https://docs.anchorbrowser.io?utm_source=n8n-node)
  - **Support**: [support@anchorbrowser.io](mailto:support@anchorbrowser.io)
  - **GitHub Issues**: [https://github.com/anchorbrowser/n8n-nodes-anchorbrowser/issues](https://github.com/anchorbrowser/n8n-nodes-anchorbrowser/issues)

  ## License

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

  ## Contributing

  Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) and submit pull requests to our [GitHub repository](https://github.com/anchorbrowser/n8n-nodes-anchorbrowser).

  ## Changelog

  ### v0.1.0
  - Initial release
  - Browser session management (create, get, list, end)
  - Profile management (get, list, update, delete)
  - Tools operations (fetch webpage, perform web task, screenshot)
  - OS-level control (mouse, keyboard, scrolling, clipboard, navigation)
  - Flexible session handling - Tools operations can work with or without existing sessions
  - Comprehensive parameter validation and error handling
  - Support for binary data (screenshots) with proper n8n formatting
  - AI-powered task execution with multiple provider support

ai_documentation_summary:
  {"purpose":"The Anchor Browser node enables browser automation and control via the Anchor Browser API, supporting session management, web scraping, AI-powered tasks, and OS-level interactions such as mouse/keyboard actions and screenshots.","capabilities":["Create, manage, and terminate browser sessions","Retrieve and update profile details","Fetch webpage content as HTML or Markdown","Execute AI-powered web tasks (e.g., form filling, data extraction)","Perform OS-level actions like clicking, typing, scrolling, and clipboard operations","Capture screenshots with customizable settings","Use proxies (residential, mobile, custom) and configure geographic targeting","Enable ad blocking, headless mode, and captcha solving via AI"],"authentication":"API key required; obtained from the Anchor Browser Dashboard (https://app.anchorbrowser.io)","commonUseCases":["Web scraping with automated navigation and content extraction","AI-driven form filling and data entry automation","Session-based browser automation for testing or monitoring","Profile management for consistent browser configurations","Automated screenshot capture and recording of web interactions"],"limitations":[],"relatedNodes":["Web Scraper","AI Node","OS Control","Session Management"]}


node_type: @directus/n8n-nodes-directus.directus
package_name: @directus/n8n-nodes-directus
display_name: Directus
description: Consume Directus API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: bryantgillespie
author_github_url: https://github.com/directus/n8n-nodes-directus.git
npm_package_name: @directus/n8n-nodes-directus
npm_version: 1.0.3
community_fetched_at: 2026-01-07T20:08:16.113Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "item",
      "options": [
        {
          "name": "Item",
          "value": "item"
        },
        {
          "name": "User",
          "value": "user"
        },
        {
          "name": "File",
          "value": "file"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an item",
          "description": "Create a new item"
        },
        {
          "name": "Create (Raw JSON)",
          "value": "createRaw",
          "action": "Create an item with raw JSON",
          "description": "Create a new item using raw JSON data"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an item",
          "description": "Delete an item"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an item",
          "description": "Get a single item"
        },
        {
          "name": "Get (Raw JSON)",
          "value": "getRaw",
          "action": "Get an item with raw JSON",
          "description": "Get a single item using raw JSON query parameters"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many items",
          "description": "Get many items from a collection"
        },
        {
          "name": "Get Many (Raw JSON)",
          "value": "getAllRaw",
          "action": "Get many items with raw JSON",
          "description": "Get many items using raw JSON query parameters"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an item",
          "description": "Update an existing item"
        },
        {
          "name": "Update (Raw JSON)",
          "value": "updateRaw",
          "action": "Update an item with raw JSON",
          "description": "Update an existing item using raw JSON data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "item"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "invite",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a user",
          "description": "Delete a user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Get a single user"
        },
        {
          "name": "Get (Raw JSON)",
          "value": "getRaw",
          "action": "Get a user with raw JSON",
          "description": "Get a single user using raw JSON query parameters"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "description": "Get many users"
        },
        {
          "name": "Get Many (Raw JSON)",
          "value": "getAllRaw",
          "action": "Get many users with raw JSON",
          "description": "Get many users using raw JSON query parameters"
        },
        {
          "name": "Invite User",
          "value": "invite",
          "action": "Invite a user",
          "description": "Invite a new user via email"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a user",
          "description": "Update an existing user"
        },
        {
          "name": "Update (Raw JSON)",
          "value": "updateRaw",
          "action": "Update a user with raw JSON",
          "description": "Update an existing user using raw JSON data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "import",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a file",
          "description": "Delete a file"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a file",
          "description": "Get a single file"
        },
        {
          "name": "Get (Raw JSON)",
          "value": "getRaw",
          "action": "Get a file with raw JSON",
          "description": "Get a single file using raw JSON query parameters"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many files",
          "description": "Get many files"
        },
        {
          "name": "Get Many (Raw JSON)",
          "value": "getAllRaw",
          "action": "Get many files with raw JSON",
          "description": "Get many files using raw JSON query parameters"
        },
        {
          "name": "Import a File",
          "value": "import",
          "action": "Import a file from URL",
          "description": "Import a file from a URL"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a file",
          "description": "Update file metadata"
        },
        {
          "name": "Update (Raw JSON)",
          "value": "updateRaw",
          "action": "Update a file with raw JSON",
          "description": "Update file metadata using raw JSON data"
        },
        {
          "name": "Upload a File",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a file using binary data from a previous node"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an item",
      "description": "Create a new item"
    },
    {
      "name": "Create (Raw JSON)",
      "value": "createRaw",
      "action": "Create an item with raw JSON",
      "description": "Create a new item using raw JSON data"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an item",
      "description": "Delete an item"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an item",
      "description": "Get a single item"
    },
    {
      "name": "Get (Raw JSON)",
      "value": "getRaw",
      "action": "Get an item with raw JSON",
      "description": "Get a single item using raw JSON query parameters"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many items",
      "description": "Get many items from a collection"
    },
    {
      "name": "Get Many (Raw JSON)",
      "value": "getAllRaw",
      "action": "Get many items with raw JSON",
      "description": "Get many items using raw JSON query parameters"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an item",
      "description": "Update an existing item"
    },
    {
      "name": "Update (Raw JSON)",
      "value": "updateRaw",
      "action": "Update an item with raw JSON",
      "description": "Update an existing item using raw JSON data"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a user",
      "description": "Delete a user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Get a single user"
    },
    {
      "name": "Get (Raw JSON)",
      "value": "getRaw",
      "action": "Get a user with raw JSON",
      "description": "Get a single user using raw JSON query parameters"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "description": "Get many users"
    },
    {
      "name": "Get Many (Raw JSON)",
      "value": "getAllRaw",
      "action": "Get many users with raw JSON",
      "description": "Get many users using raw JSON query parameters"
    },
    {
      "name": "Invite User",
      "value": "invite",
      "action": "Invite a user",
      "description": "Invite a new user via email"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a user",
      "description": "Update an existing user"
    },
    {
      "name": "Update (Raw JSON)",
      "value": "updateRaw",
      "action": "Update a user with raw JSON",
      "description": "Update an existing user using raw JSON data"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a file",
      "description": "Delete a file"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a file",
      "description": "Get a single file"
    },
    {
      "name": "Get (Raw JSON)",
      "value": "getRaw",
      "action": "Get a file with raw JSON",
      "description": "Get a single file using raw JSON query parameters"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many files",
      "description": "Get many files"
    },
    {
      "name": "Get Many (Raw JSON)",
      "value": "getAllRaw",
      "action": "Get many files with raw JSON",
      "description": "Get many files using raw JSON query parameters"
    },
    {
      "name": "Import a File",
      "value": "import",
      "action": "Import a file from URL",
      "description": "Import a file from a URL"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a file",
      "description": "Update file metadata"
    },
    {
      "name": "Update (Raw JSON)",
      "value": "updateRaw",
      "action": "Update a file with raw JSON",
      "description": "Update file metadata using raw JSON data"
    },
    {
      "name": "Upload a File",
      "value": "upload",
      "action": "Upload a file",
      "description": "Upload a file using binary data from a previous node"
    }
  ]

npm_readme:
  # n8n-nodes-directus

  A comprehensive n8n community node package for integrating with Directus CMS.

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

  ### Package Name

  The package is published as `@directus/n8n-nodes-directus` on npm.

  ### From npm (when published)

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

  ## Usage

  ### Getting Started

  1. **Install the package** (when published):

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

     # Or using pnpm
     pnpm add @directus/n8n-nodes-directus
     ```

  2. **Configure credentials** in n8n:
     - Add your Directus URL (e.g., `https://your-directus.app`)
     - Add your Directus API token with appropriate permissions

  3. **Use the nodes** in your workflows:
     - **Directus Node**: For CRUD operations on items, users, and files
     - **Directus Trigger Node**: For webhook-based automation

  ### Available Operations

  #### Directus Node

  - **Items**:
    - Create, Create (Raw JSON)
    - Get, Get (Raw JSON)
    - Get Many, Get Many (Raw JSON)
    - Update, Update (Raw JSON)
    - Delete
  - **Users**:
    - Invite
    - Get, Get (Raw JSON)
    - Get Many, Get Many (Raw JSON) with Simplify option
    - Update, Update (Raw JSON)
    - Delete
  - **Files**:
    - Upload a File (using binary data from a previous node)
    - Import a File (from a URL)
    - Get, Get (Raw JSON)
    - Get Many, Get Many (Raw JSON) with Simplify option
    - Update, Update (Raw JSON)
    - Delete

  #### Directus Trigger Node

  - **Item Events**: Trigger on create, update, delete operations in collections
  - **User Events**: Trigger on user creation, updates, and deletions
  - **File Events**: Trigger on file uploads and updates

  ## Features

  - **Dynamic Field Loading**: Automatically loads available collections and fields from your Directus instance
  - **Smart Field Processing**: Handles complex field types and relationships
  - **Simplify Option**: Returns essential fields only for Users and Files "Get Many" operations
  - **Raw JSON Operations**: Full support for raw JSON data/query parameters for advanced use cases (available for all CRUD operations)
  - **Robust Error Handling**: Comprehensive error handling with detailed error messages
  - **Webhook Management**: Automatic webhook creation and cleanup for trigger nodes
  - **Type Safety**: Full TypeScript support with proper type definitions
  - **UX Compliance**: Follows n8n community node UX guidelines with proper naming and placeholders

  ## Credentials

  ### Directus API

  Configure your Directus instance connection:

  - **Directus URL**: Your Directus instance URL (e.g., `https://your-directus.app`)
  - **Token**: Your Directus API token with appropriate permissions

  ## Compatibility

  - **Directus Cloud**: Fully supported
  - **Self-hosted Directus**: Fully supported
  - **Directus Versions**: Compatible with Directus 10.0+

  ## Development

  This project uses the official n8n-node CLI tool for development and follows n8n community node standards.

  ### Prerequisites

  - **Node.js 22+**
  - **npm 10+**
  - **Directus instance** for testing (cloud or self-hosted)
  - **ngrok** (for webhook testing) - install from [ngrok.com](https://ngrok.com/)

  ### Setup

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

  # Install dependencies
  npm install

  # Build the project
  npm run build
  ```

  ### Quick Start

  1. **Start n8n with your node loaded**:

     ```bash
     npm run dev:n8n
     ```

     This will:
     - Link your custom node to n8n
     - Start n8n development server
     - Make your Directus nodes available in n8n

  2. **Access n8n**: Open http://localhost:5678 in your browser

  3. **Configure credentials**:
     - Add your Directus API credentials
     - Test the connection

  4. **Create workflows**: Use the Directus nodes in your workflows

  ### Testing

  #### Webhook Testing (Requires ngrok)

  For testing the **Directus Trigger** node, you need to expose n8n via a public URL since Directus cannot reach localhost:

  1. **Install ngrok** (if not already installed):

     ```bash
     # macOS with Homebrew
     brew install ngrok

     # Or download from https://ngrok.com/
     ```

  2. **Start n8n** (in one terminal):

     ```bash
     npm run dev:n8n
     ```

  3. **Start ngrok** (in another terminal):

     ```bash
     ngrok http 5678
     ```

     This will give you a public URL like `https://abc123.ngrok-free.dev`

  4. **Create a webhook workflow**:
     - Add a **Directus Trigger** node
     - Configure the trigger (resource, event, collection)
     - Activate the workflow
     - Copy the webhook URL from n8n

  5. **Update Directus webhook**:
     - In Directus, go to **Settings → Flows**
     - Find the created flow and edit it
     - Replace `localhost:5678` with your ngrok URL
     - Save the flow

  6. **Test the webhook**:
     - Create/update items in Directus
     - Check if the webhook triggers in n8n

  **Note**: The manual URL replacement step is required because Directus cannot reach localhost URLs directly.

  ### Getting Help

  - Check the [GitHub Issues](https://github.com/directus/n8n-nodes-directus/issues) for known problems
  - Run `pnpm test` to verify everything works
  - Use `pnpm test:coverage` to see test coverage

  ## Contributing

  We welcome feedback and suggestions! Please help us improve this community node:

  ### Reporting Issues

  - **Bug Reports**: Use the [GitHub Issues](https://github.com/directus/n8n-nodes-directus/issues) page to report bugs
  - **Feature Requests**: Submit enhancement ideas through GitHub Issues
  - **Documentation**: Help improve our documentation by reporting unclear sections

  ### Issue Guidelines

  When reporting issues, please provide:

  - Detailed description of the problem or feature request
  - Steps to reproduce (for bugs)
  - Expected vs actual behavior
  - Your Directus version and n8n version
  - Any relevant error messages or logs

  ### Code Contributions

  While we appreciate community interest, we maintain this node internally to ensure:

  - Consistent code quality and style
  - Proper testing and validation
  - Alignment with Directus and n8n best practices
  - Timely maintenance and updates

  If you have specific code improvements or bug fixes, please:

  1. **Open an issue first** describing the problem or improvement
  2. **Wait for our team to review** and potentially implement the change
  3. **Provide detailed information** to help us understand the requirement

  This approach ensures the node remains reliable, well-tested, and follows n8n community node verification guidelines.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/installation/)
  - [Directus API Documentation](https://directus.io/docs/api)

  ## License

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

  ## Support

  For issues and questions:

  - [GitHub Issues](https://github.com/directus/n8n-nodes-directus/issues)
  - [Directus Community](https://community.directus.io/)
  - [n8n Community](https://community.n8n.io/)

ai_documentation_summary:
  {"purpose":"The Directus node enables full integration with Directus CMS by supporting CRUD operations on items, users, and files, as well as webhook-triggered automation through a trigger node.","capabilities":["Create, read, update, and delete items, users, and files","Support for raw JSON operations in all CRUD actions","Dynamic field loading from Directus instance","Simplify option for 'Get Many' operations on users and files","Webhook-based triggers for item, user, and file events","Automatic webhook creation and cleanup","Type safety with TypeScript support","Error handling with detailed messages"],"authentication":"API key (token) required with appropriate permissions; credentials include Directus URL and API token","commonUseCases":["Automate data synchronization between n8n and Directus collections","Trigger workflows on new item creation, user changes, or file uploads","Import or export data using raw JSON queries","Manage user access and invite users via Directus API","Upload and retrieve files from Directus storage"],"limitations":["Webhook testing requires ngrok or a public URL due to localhost restrictions","Manual webhook URL replacement in Directus is required during setup","No built-in support for Directus webhooks via internal routing (e.g., no auto-exposure)"],"relatedNodes":["Webhook Trigger Nodes","CRUD Operations Nodes","File Management Nodes","User Management Nodes"]}


node_type: @levelrmm/n8n-nodes-level.level
package_name: @levelrmm/n8n-nodes-level
display_name: Level
description: Interact with the Level API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: level-dev
author_github_url: https://github.com/levelrmm/n8n-nodes-level.git
npm_package_name: @levelrmm/n8n-nodes-level
npm_version: 0.2.8
community_fetched_at: 2026-01-07T20:08:16.113Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "devices",
      "options": [
        {
          "name": "Alert",
          "value": "alerts"
        },
        {
          "name": "Automation",
          "value": "automation"
        },
        {
          "name": "Device",
          "value": "devices"
        },
        {
          "name": "Group",
          "value": "groups"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an alert",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/alerts/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "List",
          "value": "list",
          "action": "List alerts",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/alerts",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "alerts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "triggerWebhook",
      "options": [
        {
          "name": "Trigger Webhook",
          "value": "triggerWebhook",
          "action": "Trigger a webhook automation",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/automations/webhooks/{{$parameter[\"token\"]}}",
              "method": "POST"
            }
          },
          "description": "Invoke a Level automation webhook by token"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "automation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List devices",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/devices",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a device",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/devices",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "devices"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a group",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/groups/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "List",
          "value": "list",
          "action": "List groups",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/groups",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "groups"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an alert",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/alerts/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      }
    },
    {
      "name": "List",
      "value": "list",
      "action": "List alerts",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/alerts",
          "method": "GET"
        }
      }
    },
    {
      "name": "Trigger Webhook",
      "value": "triggerWebhook",
      "action": "Trigger a webhook automation",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/automations/webhooks/{{$parameter[\"token\"]}}",
          "method": "POST"
        }
      },
      "description": "Invoke a Level automation webhook by token"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List devices",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/devices",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a device",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/devices",
          "method": "GET"
        }
      }
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a group",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/groups/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      }
    },
    {
      "name": "List",
      "value": "list",
      "action": "List groups",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/groups",
          "method": "GET"
        }
      }
    }
  ]

npm_readme:
  ![Level Logo](https://media.level.io/i/logo/logo-bg.jpg)
  # n8n-nodes-level

  Official [n8n](https://n8n.io) community nodes for [Level.io](https://level.io), the RMM and automation platform for modern MSPs. These nodes let you orchestrate Level alerts, devices, groups, automations, and webhook events directly from your n8n workflows.

  [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/) to add `n8n-nodes-level` to your n8n instance. Once installed, the Level nodes appear in the n8n editor under **Level**.

  ## Operations

  ### Level node

  | Resource | Operations |
  | --- | --- |
  | Alert | Get alert by ID, List alerts |
  | Automation | Trigger webhook |
  | Device | Get device by ID, List devices |
  | Group | Get group by ID, List groups |

  ### Level Trigger node

  The trigger node listens for signed webhook events from Level and emits them into your workflows. Supported event types include alert, device, group, and automation lifecycle notifications.

  ## Credentials

  Create the following credentials in n8n:

  - **Level API** – Generate an API key from the Level dashboard (**Settings → API Keys**) and store it in this credential. Assign it to the Level node (and to the trigger if you enrich incoming events with REST calls).
  - **Level Webhook Secret** – Copy the signing secret from **Settings → Webhooks** in Level and store it in this credential. Assign it to the Level Trigger node to verify incoming webhook signatures.

  ## Compatibility

  These nodes target `n8nNodesApiVersion` 1 and are developed against n8n v1.60.0 and later. Earlier releases of n8n might not expose all required node features.

  ## Usage

  1. **Add credentials** – In n8n, open *Settings → Credentials* and create both a **Level API** credential (API key) and a **Level Webhook Secret** credential (webhook signing secret).
  2. **Automate API calls** – Place the **Level** node in a workflow to query alerts, devices, or groups, or to invoke an automation webhook by token. Use the *Response Property Name* parameter to reshape the API response when needed.
  3. **React to webhooks** – Add the **Level Trigger** node, select the event types you want to handle, and copy the webhook URL generated by n8n. Configure this URL and the shared secret in Level so events flow into your workflow securely.
  4. **Chain actions** – Combine Level data with other n8n nodes to notify teams, update tickets, or enrich records in downstream systems.

  Refer to the [Level API reference](https://levelapi.readme.io/reference/getting-started-with-your-api) for endpoint details, pagination behavior, and payload schemas when building workflows.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Level API reference](https://levelapi.readme.io/reference/getting-started-with-your-api)
  - [Level help center](https://help.level.io/)

  ## Version history

  | Version | Changes |
  | --- | --- |
  | 0.1.0 | Initial release of the Level community nodes for n8n. |

ai_documentation_summary:
  {"purpose":"The Level node allows users to interact with the Level.io platform by querying alerts, devices, groups, and automations, or triggering automation webhooks, while the Level Trigger node listens for and processes signed webhook events from Level.","capabilities":["Get alert by ID","List alerts","Trigger automation webhook","Get device by ID","List devices","Get group by ID","List groups","Listen for webhook events (alert, device, group, automation lifecycle)"],"authentication":"API key and webhook signing secret required. API key is obtained from Level dashboard under Settings → API Keys. Webhook secret is obtained from Settings → Webhooks.","commonUseCases":["Monitor and retrieve device or alert data in real-time","Automate responses to Level events (e.g., device alerts or group changes)","Integrate Level webhook events with downstream systems like ticketing or notification tools","Enrich workflows with Level data using API calls"],"limitations":[],"relatedNodes":["Webhook Trigger","API Request","Response Property Name (for reshaping responses)"]}


node_type: n8n-nodes-apex.apex
package_name: n8n-nodes-apex
display_name: Apex
description: Manage your social media via Apex.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: xonack
author_github_url: https://github.com/xonack/
npm_package_name: n8n-nodes-apex
npm_version: 0.1.6
community_fetched_at: 2026-01-07T20:08:16.114Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "getTweet",
      "options": [
        {
          "name": "Generate Reply",
          "value": "generateReply"
        },
        {
          "name": "Get Tweet",
          "value": "getTweet"
        },
        {
          "name": "Post Reply",
          "value": "postReply"
        },
        {
          "name": "Post Tweet",
          "value": "postTweet"
        },
        {
          "name": "Search Tweet",
          "value": "searchTweets"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTweetById",
      "options": [
        {
          "name": "Get Tweet by ID",
          "value": "getTweetById",
          "action": "Get tweet by id",
          "routing": {
            "request": {
              "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/details",
              "method": "GET"
            }
          },
          "description": "Get tweet by ID (found in the URL)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "getTweet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "postTweet",
      "options": [
        {
          "name": "Tweet",
          "value": "postTweet",
          "action": "Post tweet",
          "routing": {
            "request": {
              "url": "=/apex/tweet",
              "method": "POST"
            }
          },
          "description": "Post tweet to your profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "postTweet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "postReply",
      "options": [
        {
          "name": "Post Reply",
          "value": "postReply",
          "action": "Post reply to tweet",
          "routing": {
            "request": {
              "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
              "method": "POST"
            }
          },
          "description": "Post reply to tweet (by ID)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "postReply"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateReplyToTweetId",
      "options": [
        {
          "name": "Generate Reply to Tweet",
          "value": "generateReplyToTweetId",
          "action": "Generate reply to tweet id",
          "routing": {
            "request": {
              "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
              "method": "GET"
            }
          },
          "description": "Generate reply to tweet ID"
        },
        {
          "name": "Generate Reply to Text",
          "value": "generateReplyToText",
          "action": "Generate reply to text string",
          "routing": {
            "request": {
              "url": "=/apex/reply",
              "method": "GET"
            }
          },
          "description": "Generate reply to text string"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "generateReply"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchTweets",
      "options": [
        {
          "name": "Search Tweets",
          "value": "searchTweets",
          "action": "Search tweets",
          "routing": {
            "request": {
              "url": "=/apex/tweet/search",
              "method": "GET"
            }
          },
          "description": "Search tweet based keywords (& filters)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "searchTweets"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Tweet by ID",
      "value": "getTweetById",
      "action": "Get tweet by id",
      "routing": {
        "request": {
          "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/details",
          "method": "GET"
        }
      },
      "description": "Get tweet by ID (found in the URL)"
    },
    {
      "name": "Tweet",
      "value": "postTweet",
      "action": "Post tweet",
      "routing": {
        "request": {
          "url": "=/apex/tweet",
          "method": "POST"
        }
      },
      "description": "Post tweet to your profile"
    },
    {
      "name": "Post Reply",
      "value": "postReply",
      "action": "Post reply to tweet",
      "routing": {
        "request": {
          "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
          "method": "POST"
        }
      },
      "description": "Post reply to tweet (by ID)"
    },
    {
      "name": "Generate Reply to Tweet",
      "value": "generateReplyToTweetId",
      "action": "Generate reply to tweet id",
      "routing": {
        "request": {
          "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
          "method": "GET"
        }
      },
      "description": "Generate reply to tweet ID"
    },
    {
      "name": "Generate Reply to Text",
      "value": "generateReplyToText",
      "action": "Generate reply to text string",
      "routing": {
        "request": {
          "url": "=/apex/reply",
          "method": "GET"
        }
      },
      "description": "Generate reply to text string"
    },
    {
      "name": "Search Tweets",
      "value": "searchTweets",
      "action": "Search tweets",
      "routing": {
        "request": {
          "url": "=/apex/tweet/search",
          "method": "GET"
        }
      },
      "description": "Search tweet based keywords (& filters)"
    }
  ]

npm_readme:
  # n8n-nodes-apex

  Apex provides social media infrastructure that lets you manage your X (Twitter) account fully with a single API Key.

  * Get unlimited data
  * Generate quality content
  * Post bangers

  This is an n8n community node for Apex, allowing you to manage X (Twitter) 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)
  [Compatibility](#compatibility)
  [Resources](#resources)  

  ## Installation

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

  ## Operations

  This node supports the following operations for X (Twitter):
  *   Get Tweet
  *   Search Tweets
  *   Generate Reply
  *   Post Tweet
  *   Post Reply

  ## Credentials

  To use this node, you need to authenticate with Apex.
  1.  Create an account at [Apex](https://apexagents.ai/).
  2.  Request an API Key from within your Apex account (support chat on bottom right).
  3.  Use this API Key in the Apex credentials configuration in n8n.

  ## Compatibility

  This node was built against n8n version `1.82.0` and should be compatible with n8n running Node.js version 20 or higher.

  ## Resources

  * [Apex API](https://apex-backend-435707161213.us-west1.run.app/)
  * [Apex Homepage](https://apexagents.ai/)
  * [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 Apex node allows users to manage their X (Twitter) account through n8n by enabling operations such as posting tweets, searching tweets, generating replies, and retrieving tweet data using a single API key.","capabilities":["Get Tweet","Search Tweets","Generate Reply","Post Tweet","Post Reply"],"authentication":"API key required; obtain it by creating an account at Apex and requesting an API key via the support chat.","commonUseCases":["Automated posting of content to X (Twitter)","Monitoring and searching for specific tweets","Automated reply generation and posting to engage with followers","Fetching and analyzing existing tweet data"],"limitations":[],"relatedNodes":["n8n-nodes-base","n8n-nodes-webhook"]}


node_type: @rogerrogerio/n8n-nodes-rogerroger.rogerRoger
package_name: @rogerrogerio/n8n-nodes-rogerroger
display_name: RogerRoger
description: Interact with RogerRoger API for Person, Organization and Task resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: royrr
author_github_url: https://github.com/RogerRogerHQ/n8n-nodes-rogerroger.git
npm_package_name: @rogerrogerio/n8n-nodes-rogerroger
npm_version: 1.10.0
community_fetched_at: 2026-01-07T20:08:16.115Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Person",
          "value": "person"
        },
        {
          "name": "Organization",
          "value": "organization"
        },
        {
          "name": "Task",
          "value": "task"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get person",
          "description": "Get person"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many persons",
          "description": "Get many persons"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create person",
          "description": "Create person"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update person",
          "description": "Update person"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete person",
          "description": "Delete person"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get organization",
          "description": "Get organization"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many organizations",
          "description": "Get many organizations"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create organization",
          "description": "Create organization"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update organization",
          "description": "Update organization"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete organization",
          "description": "Delete organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organization"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get task",
          "description": "Get task"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many tasks",
          "description": "Get many tasks"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create task",
          "description": "Create task"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update task",
          "description": "Update task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete task",
          "description": "Delete task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get tag",
          "description": "Get tag"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many tags",
          "description": "Get many tags"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create tag",
          "description": "Create tag"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update tag",
          "description": "Update tag"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete tag",
          "description": "Delete tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get segment",
          "description": "Get segment"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many segments",
          "description": "Get many segments"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create segment",
          "description": "Create segment"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update segment",
          "description": "Update segment"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete segment",
          "description": "Delete segment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "segment"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get person",
      "description": "Get person"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many persons",
      "description": "Get many persons"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create person",
      "description": "Create person"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update person",
      "description": "Update person"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete person",
      "description": "Delete person"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get organization",
      "description": "Get organization"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many organizations",
      "description": "Get many organizations"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create organization",
      "description": "Create organization"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update organization",
      "description": "Update organization"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete organization",
      "description": "Delete organization"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get task",
      "description": "Get task"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many tasks",
      "description": "Get many tasks"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create task",
      "description": "Create task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update task",
      "description": "Update task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete task",
      "description": "Delete task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get tag",
      "description": "Get tag"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many tags",
      "description": "Get many tags"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create tag",
      "description": "Create tag"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update tag",
      "description": "Update tag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete tag",
      "description": "Delete tag"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get segment",
      "description": "Get segment"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many segments",
      "description": "Get many segments"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create segment",
      "description": "Create segment"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update segment",
      "description": "Update segment"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete segment",
      "description": "Delete segment"
    }
  ]

npm_readme:
  # n8n-nodes-rogerroger

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

  RogerRoger is a collaborative task and communication platform designed to streamline workflows by turning emails and chats into actionable tasks for teams.

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

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

  ## Installation

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

  ## Operations

  The node supports the following operations:

  - Person
    - Get
    - Get many
    - Create
    - Update
    - Delete
  - Organization
    - Get
    - Get many
    - Create
    - Update
    - Delete
  - Task
    - Get
    - Get many
    - Create
    - Update
    - Delete

  ## Credentials

  The node supports the API Key authentication method that is required to authenticate with the RogerRoger API.

  ## Compatibility

  Tested against n8n version 1.95.3.

  ## Usage

  1. **Generate an API Key**: Visit the [RogerRoger API Admin](https://app.rogerroger.io/admin/api) to create your API key.

  2. **Set Up Credentials in n8n**:
     - Navigate to the RogerRoger node in your n8n workflow.
     - Create a new credential and enter the API key you generated.

  3. **Select a Resource**:
     - Choose one of the available resources you want to interact with: Person, Organization, or Task.

  4. **Choose an Operation**:
     - Select the operation you wish to perform (e.g., Get, Create, Update, Delete).
     - Provide the necessary data for the selected operation.

  5. **Execute the Node**:
     - Run the node to perform the selected operations on the RogerRoger platform.

  ## Resources

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

  ## Version history

  - 1.0.0: Initial release
  - 1.0.1: README updated
  - 1.0.2:
  	- Updated README
  	- Chore: Moved repository to public Github
  	- Text changes to improve consistancy between RogerRoger and N8N
  	- Add fields "dueDate" and "organizations" to task resource
  - 1.0.3:
  	- Wrong path specified for node in package.json
  - 1.0.4:
  	- Wrong path to credentials file specified in package.json 
  - 1.0.5:
  	- Add credential test code
  - 1.0.6:
  	- Fix X-API-KEY header
  - 1.0.7:
  	- Update test endpoint
  - 1.0.8:
  	- Provide rules for credential test
  - 1.0.9
  	- Bump version
  - 1.10.0
      - Added a resource locator to more easily find individual people, organizations, or tasks
      - Improved error reporting by using not only toast notifications but also the output window of n8n
      - Restructured and modularized the code to improve maintainability
      - Get many will now use "return all" and "limit" to provide a list of items

ai_documentation_summary:
  {"purpose":"The RogerRoger n8n node enables users to interact with the RogerRoger API to manage Person, Organization, and Task resources, allowing automation of task creation, updates, deletions, and retrievals within workflows.","capabilities":["Retrieve a single Person","Retrieve multiple Persons","Create a Person","Update a Person","Delete a Person","Retrieve a single Organization","Retrieve multiple Organizations","Create an Organization","Update an Organization","Delete an Organization"],"authentication":"API Key authentication is required; users must generate an API key from the RogerRoger API Admin panel and enter it in the node credentials.","commonUseCases":["Automatically creating tasks from incoming emails or chat messages","Syncing team member data (persons) and company data (organizations) across systems","Updating task due dates and assigning tasks to specific teams or individuals","Retrieving task lists for reporting or workflow monitoring"],"limitations":["No support for advanced filtering or pagination beyond the 'limit' parameter in 'Get many' operations","Resource locator functionality is available but may require additional configuration for complex queries","Error reporting is improved but may still depend on user visibility in n8n's output window"],"relatedNodes":["n8n core nodes for data transformation","n8n nodes for email or chat integration (to trigger task creation)"]}


node_type: @mookielianhd/n8n-nodes-instagram.instagram
package_name: @mookielianhd/n8n-nodes-instagram
display_name: Instagram
description: Publish media to Instagram using Facebook Graph API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: mookielian
author_github_url: https://github.com/MookieLian/n8n-nodes-instagram.git
npm_package_name: @mookielianhd/n8n-nodes-instagram
npm_version: 2.1.0
community_fetched_at: 2026-01-07T20:08:16.115Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Image",
          "value": "image",
          "description": "Publish an image post"
        },
        {
          "name": "Reels",
          "value": "reels",
          "description": "Publish a reel"
        },
        {
          "name": "Stories",
          "value": "stories",
          "description": "Publish a story"
        }
      ],
      "required": true,
      "description": "Select the Instagram media type to publish",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish",
          "description": "Publish media to Instagram"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image",
            "reels",
            "stories"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish",
      "description": "Publish media to Instagram"
    }
  ]

npm_readme:
  # @mookielianhd/n8n-nodes-instagram

  This package adds an Instagram Publishing node to n8n so you can send media to your Instagram Business accounts without leaving your workflow.

  Instagram Publishing is powered by the Facebook Graph API and allows programmatic upload of images, reels and stories to any Instagram Business or Creator account.

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

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

  ## Installation

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

  ## Operations

  The node exposes three resources that follow the same two-step publish flow (media container creation + media publish):

  | Resource | Description |
  | --- | --- |
  | `Image` | Publish a single image with an optional caption. |
  | `Reels` | Publish a reel video. Handles container polling until the video is processed. |
  | `Stories` | Publish a story video using the same logic as reels with `media_type=STORIES`. |

  ## Credentials

  Create an **Instagram API** credential that stores a long-lived Facebook Graph API user access token with `instagram_basic`, `pages_show_list`, `instagram_content_publish`, and `pages_read_engagement` permissions.  
  Steps:

  1. Make sure the Instagram account is a Business/Creator account connected to a Facebook Page.  
  2. Use Meta’s Graph Explorer or your own app to generate an access token that includes the scopes listed above.  
  3. Convert it to a long-lived token and paste it into the credential’s **Access Token** field.  
  4. The built-in credential test hits `https://graph.facebook.com/v22.0/me` to confirm the token works.

  ## Compatibility

  - Built against **n8n 1.120.4** (community-node CLI v0.16).  
  - Requires n8n `>=1.0` with community nodes enabled.  
  - Uses only built-in n8n dependencies, so it is Cloud-compatible.

  ## Usage

  1. Add the **Instagram** node to your workflow and select one of the resources (Image/Reels/Stories).  
  2. Provide the Instagram Business Account ID (the “Node” parameter), media URL and caption.  
  3. The node first creates the media container, polls Graph API until processing completes, then triggers `media_publish`.  
  4. Handle any errors returned by the API (rate limits, permissions) via the node’s error output or `Continue On Fail`.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)  
  * [Instagram Graph API - Publishing](https://developers.facebook.com/docs/instagram-api/reference/ig-user/media)  
  * [Video/Reels publishing guide](https://developers.facebook.com/docs/instagram-api/guides/content-publishing/reels/)

  ## Version history

  | Version | Notes |
  | --- | --- |
  | 0.1.0 | Initial release with Image, Reels and Stories publishing & built-in container polling. |

ai_documentation_summary:
  {"purpose":"The Instagram node allows users to publish images, reels, and stories to Instagram Business or Creator accounts using the Facebook Graph API, enabling programmatic content posting directly within n8n workflows.","capabilities":["Publish single images with optional captions","Publish reels videos with automatic container polling until processing completes","Publish stories videos using media_type=STORIES with the same polling logic as reels"],"authentication":"API key required: a long-lived Facebook Graph API user access token with permissions instagram_basic, pages_show_list, instagram_content_publish, and pages_read_engagement","commonUseCases":["Automating social media posting schedules","Publishing content from external sources (e.g., CRM, databases) to Instagram","Scheduling reels or stories based on triggers or events"],"limitations":["Only supports Instagram Business or Creator accounts linked to Facebook Pages","Requires manual setup of access token with specific permissions","No support for editing or deleting previously published content","Relies on Facebook Graph API rate limits and availability"],"relatedNodes":["Facebook","Media Upload","Schedule","Error Handling"]}


node_type: n8n-nodes-peek-pro.peekPro
package_name: n8n-nodes-peek-pro
display_name: Peek Pro
description: Build workflows with Peek Pro
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: peektravel
author_github_url: https://github.com/peek-travel/
npm_package_name: n8n-nodes-peek-pro
npm_version: 0.1.5
community_fetched_at: 2026-01-07T20:08:16.116Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "booking",
      "options": [
        {
          "name": "Booking",
          "value": "booking"
        },
        {
          "name": "Product",
          "value": "product"
        },
        {
          "name": "Timeslot",
          "value": "timeslot"
        },
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "User",
          "value": "user"
        },
        {
          "name": "Daily Note",
          "value": "dailyNote"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get: current account",
      "options": [
        {
          "name": "Get Current",
          "value": "get: current account",
          "action": "Get the current account information",
          "routing": {
            "request": {
              "url": "/accounts/current",
              "method": "GET"
            }
          },
          "description": "Get the current account information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: users",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: users",
          "action": "Get all users",
          "routing": {
            "request": {
              "url": "/users",
              "method": "GET"
            }
          },
          "description": "Get all users"
        },
        {
          "name": "Get One",
          "value": "get: user",
          "action": "Get the data of a user",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter.userId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany: bookings (dates)",
      "options": [
        {
          "name": "Get All for Time Range",
          "value": "getMany: bookings (dates)",
          "action": "Get bookings within time range",
          "routing": {
            "request": {
              "qs": {
                "end": "={{$parameter[\"endTime\"]}}",
                "email": "={{$parameter[\"email\"]}}",
                "start": "={{$parameter[\"startTime\"]}}",
                "searchBy": "={{$parameter[\"searchBy\"]}}",
                "productId": "={{$parameter[\"productId\"]}}"
              },
              "url": "/bookings",
              "method": "GET"
            }
          },
          "description": "Get all bookings for a given time range"
        },
        {
          "name": "Get All for Timeslot",
          "value": "getMany: bookings (timeslot)",
          "action": "Get bookings for a timeslot",
          "routing": {
            "request": {
              "qs": {
                "timeslotId": "={{$parameter[\"timeslotId\"]}}"
              },
              "url": "/bookings",
              "method": "GET"
            }
          },
          "description": "Get all bookings for a given timeslot"
        },
        {
          "name": "Get One",
          "value": "get: booking",
          "action": "Get one booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single booking"
        },
        {
          "name": "Get Guests",
          "value": "get: booking guests",
          "action": "Get the guests for a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/guests",
              "method": "GET"
            }
          },
          "description": "Get the guests for a single booking"
        },
        {
          "name": "Add Note",
          "value": "set: booking notes",
          "action": "Append a note to the booking notes",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/notes",
              "body": {
                "note": "={{$parameter[\"note\"]}}",
                "appendOrOverwrite": "={{$parameter[\"appendOrOverwrite\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Append a note to the booking notes"
        },
        {
          "name": "Update Checkin Status",
          "value": "set: booking checkin",
          "action": "Update the checkin status of a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/checkin",
              "body": {
                "checkedIn": "={{$parameter[\"checkedIn\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the checkin status of a single booking"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "booking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany: timeslots",
      "options": [
        {
          "name": "Get All for Date",
          "value": "getMany: timeslots",
          "action": "Get all timeslots on a date",
          "routing": {
            "request": {
              "qs": {
                "date": "={{$parameter[\"date\"]}}",
                "productId": "={{$parameter[\"productId\"]}}",
                "filterBookings": "={{$parameter[\"filterBookings\"]}}"
              },
              "url": "/timeslots",
              "method": "GET"
            }
          },
          "description": "Get all timeslots for a date and product"
        },
        {
          "name": "Get One",
          "value": "get: timeslot",
          "action": "Get a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single timeslot"
        },
        {
          "name": "Set Availability Status",
          "value": "set: timeslot availability",
          "action": "Set timeslot availability",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "body": {
                "status": "={{$parameter[\"status\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the availability of a timeslot"
        },
        {
          "name": "Set Notes",
          "value": "set: timeslot notes",
          "action": "Update the notes of a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "body": {
                "note": "={{$parameter[\"note\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the notes of a timeslot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "timeslot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: products",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: products",
          "action": "Get all products",
          "routing": {
            "request": {
              "url": "/products",
              "method": "GET"
            }
          },
          "description": "Get all products"
        },
        {
          "name": "Get One",
          "value": "get: product",
          "action": "Get the data of a product",
          "routing": {
            "request": {
              "url": "=/products/{{$parameter.productId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single product"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get: daily note",
      "options": [
        {
          "name": "Get Today's Daily Note",
          "value": "get: daily note",
          "action": "Get daily note for today",
          "routing": {
            "request": {
              "url": "/dailyNote/today",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Today's Daily Note",
          "value": "set: daily note",
          "action": "Update daily note for today",
          "routing": {
            "request": {
              "url": "/dailyNote/today",
              "body": {
                "note": "={{$parameter[\"note\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dailyNote"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Current",
      "value": "get: current account",
      "action": "Get the current account information",
      "routing": {
        "request": {
          "url": "/accounts/current",
          "method": "GET"
        }
      },
      "description": "Get the current account information"
    },
    {
      "name": "Get All",
      "value": "getAll: users",
      "action": "Get all users",
      "routing": {
        "request": {
          "url": "/users",
          "method": "GET"
        }
      },
      "description": "Get all users"
    },
    {
      "name": "Get One",
      "value": "get: user",
      "action": "Get the data of a user",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter.userId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single user"
    },
    {
      "name": "Get All for Time Range",
      "value": "getMany: bookings (dates)",
      "action": "Get bookings within time range",
      "routing": {
        "request": {
          "qs": {
            "end": "={{$parameter[\"endTime\"]}}",
            "email": "={{$parameter[\"email\"]}}",
            "start": "={{$parameter[\"startTime\"]}}",
            "searchBy": "={{$parameter[\"searchBy\"]}}",
            "productId": "={{$parameter[\"productId\"]}}"
          },
          "url": "/bookings",
          "method": "GET"
        }
      },
      "description": "Get all bookings for a given time range"
    },
    {
      "name": "Get All for Timeslot",
      "value": "getMany: bookings (timeslot)",
      "action": "Get bookings for a timeslot",
      "routing": {
        "request": {
          "qs": {
            "timeslotId": "={{$parameter[\"timeslotId\"]}}"
          },
          "url": "/bookings",
          "method": "GET"
        }
      },
      "description": "Get all bookings for a given timeslot"
    },
    {
      "name": "Get One",
      "value": "get: booking",
      "action": "Get one booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single booking"
    },
    {
      "name": "Get Guests",
      "value": "get: booking guests",
      "action": "Get the guests for a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/guests",
          "method": "GET"
        }
      },
      "description": "Get the guests for a single booking"
    },
    {
      "name": "Add Note",
      "value": "set: booking notes",
      "action": "Append a note to the booking notes",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/notes",
          "body": {
            "note": "={{$parameter[\"note\"]}}",
            "appendOrOverwrite": "={{$parameter[\"appendOrOverwrite\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Append a note to the booking notes"
    },
    {
      "name": "Update Checkin Status",
      "value": "set: booking checkin",
      "action": "Update the checkin status of a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/checkin",
          "body": {
            "checkedIn": "={{$parameter[\"checkedIn\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Update the checkin status of a single booking"
    },
    {
      "name": "Get All for Date",
      "value": "getMany: timeslots",
      "action": "Get all timeslots on a date",
      "routing": {
        "request": {
          "qs": {
            "date": "={{$parameter[\"date\"]}}",
            "productId": "={{$parameter[\"productId\"]}}",
            "filterBookings": "={{$parameter[\"filterBookings\"]}}"
          },
          "url": "/timeslots",
          "method": "GET"
        }
      },
      "description": "Get all timeslots for a date and product"
    },
    {
      "name": "Get One",
      "value": "get: timeslot",
      "action": "Get a timeslot",
      "routing": {
        "request": {
          "url": "=/timeslots/{{$parameter.timeslotId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single timeslot"
    },
    {
      "name": "Set Availability Status",
      "value": "set: timeslot availability",
      "action": "Set timeslot availability",
      "routing": {
        "request": {
          "url": "=/timeslots/{{$parameter.timeslotId}}",
          "body": {
            "status": "={{$parameter[\"status\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Update the availability of a timeslot"
    },
    {
      "name": "Set Notes",
      "value": "set: timeslot notes",
      "action": "Update the notes of a timeslot",
      "routing": {
        "request": {
          "url": "=/timeslots/{{$parameter.timeslotId}}",
          "body": {
            "note": "={{$parameter[\"note\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Update the notes of a timeslot"
    },
    {
      "name": "Get All",
      "value": "getAll: products",
      "action": "Get all products",
      "routing": {
        "request": {
          "url": "/products",
          "method": "GET"
        }
      },
      "description": "Get all products"
    },
    {
      "name": "Get One",
      "value": "get: product",
      "action": "Get the data of a product",
      "routing": {
        "request": {
          "url": "=/products/{{$parameter.productId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single product"
    },
    {
      "name": "Get Today's Daily Note",
      "value": "get: daily note",
      "action": "Get daily note for today",
      "routing": {
        "request": {
          "url": "/dailyNote/today",
          "method": "GET"
        }
      }
    },
    {
      "name": "Update Today's Daily Note",
      "value": "set: daily note",
      "action": "Update daily note for today",
      "routing": {
        "request": {
          "url": "/dailyNote/today",
          "body": {
            "note": "={{$parameter[\"note\"]}}"
          },
          "method": "POST"
        }
      }
    }
  ]

npm_readme:
  # n8n-nodes-peek-pro

  An n8n community node that allows interacting with the Peek Pro booking software.

  ## Installation

  In your n8n instance:

  1. Go to Settings → Community Nodes.
  2. Add the following package: `n8n-nodes-peek-pro`

  ## Credentials

  This node requires an API key.
  Peek Pro customers can obtain their API key from the Peek Pro n8n app.

  To configure it in n8n:

  1. Go to Credentials → New
  2. Select Peek Pro API
  3. Enter your API key
  4. Save

  ## Features

  This package supports:

  - Webhook-style triggers for new or updated bookings
  - Notification triggers for signed waivers
  - Pulling booking information
  - Accessing back-office calendar data
  - Retrieving guest information

  ## Usage

  1. Add a Peek Pro node to your workflow
  2. Select an operation such as booking retrieval or event subscription
  3. Choose or create your Peek Pro API credentials
  4. Configure the required fields
  5. Execute the node to verify everything is working

  ## Requirements

  - Available for all current Peek Pro customers
  - API key is available via the Peek Pro n8n app

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"The Peek Pro node enables integration with the Peek Pro booking software by allowing workflows to trigger on new or updated bookings, notify on signed waivers, retrieve booking and guest details, and access back-office calendar data.","capabilities":["Webhook-style triggers for new or updated bookings","Notification triggers for signed waivers","Pull booking information","Access back-office calendar data","Retrieve guest information"],"authentication":"API key required","commonUseCases":["Automatically updating customer records when a booking is made","Sending notifications when a guest signs a waiver","Syncing calendar events from Peek Pro to other systems","Retrieving guest details for customer service or marketing workflows"],"limitations":[],"relatedNodes":["Webhook triggers","Data retrieval nodes","Notification nodes"]}


node_type: @joai/n8n-nodes-joai.joai
package_name: @joai/n8n-nodes-joai
display_name: JoAi
description: Send messages as a JoAi agent
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: michavie
author_github_url: https://github.com/JoAiHQ/n8n-nodes.git
npm_package_name: @joai/n8n-nodes-joai
npm_version: 0.3.2
community_fetched_at: 2026-01-07T20:08:16.117Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessageAsUser",
      "options": [
        {
          "name": "Send Message as User",
          "value": "sendMessageAsUser",
          "action": "Send a message as a user to an agent",
          "description": "Send a message as a user to an agent"
        },
        {
          "name": "Send Message as Agent",
          "value": "sendMessageAsAgent",
          "action": "Send a message as an agent to a room",
          "description": "Send a message as an agent to a room"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": false
    }
  ]

operations:
  [
    {
      "name": "Send Message as User",
      "value": "sendMessageAsUser",
      "action": "Send a message as a user to an agent",
      "description": "Send a message as a user to an agent"
    },
    {
      "name": "Send Message as Agent",
      "value": "sendMessageAsAgent",
      "action": "Send a message as an agent to a room",
      "description": "Send a message as an agent to a room"
    }
  ]

npm_readme:
  # @joai/n8n-nodes-joai

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

  This is an n8n community node that provides integration with JoAi (AI Agent Platform). It allows you to send messages as AI agents and receive real-time webhooks for agent events.

  [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

  Install using npm:
  ```bash
  npm install @joai/n8n-nodes-joai
  ```

  Or via n8n's community nodes interface:
  1. Go to Settings > Community Nodes
  2. Install package: `@joai/n8n-nodes-joai`

  ## Operations

  ### JoAi Node
  - **Send Message**: Send a message as a JoAi agent to a specific room

  ### JoAi Trigger
  - **Webhook Events**: Receive real-time events from JoAi agents
    - Agent Actions
    - Agent Messages
    - User Messages

  ## Credentials

  This node requires JoAi API credentials. You need:

  1. **API Key**: Your JoAi API authentication key
  2. **Base URL**: The base URL for your JoAi API instance (e.g., `https://api.joai.ai`)

  ### Setting up credentials

  1. In n8n, go to **Settings > Credentials**.
  2. Select **Create New**.
  3. Search for **JoAi API** and select it.
  4. Enter your **API Key** and **Base URL**.
  5. Click **Save**.

  ## Compatibility

  - Minimum n8n version: 0.198.0
  - Tested with n8n version: 1.99.1

  ## Usage

  ### Basic Message Sending

  1. Add a **JoAi** node to your workflow
  2. Select **Send Message** operation
  3. Choose your JoAi credentials
  4. Configure the message parameters:
     - **Agent ID**: The UUID of the agent that will send the message
     - **Message**: The content to send
     - **Room** (optional): Room ID to send to
     - **Additional Fields** (optional): Message type and metadata
  5. Execute the workflow

  ### Setting up Webhooks (Automatic)

  1. Add a **JoAi Trigger** node to your workflow
  2. Configure your **JoAi API credentials** (API Key and Base URL)
  3. Enter the **Agent ID** you want to receive webhooks from
  4. Select the **event types** you want to trigger on (Agent Action, Agent Message, User Message)
  5. **Activate the workflow** - webhooks are automatically created in JoAi!
  6. **Test** by triggering an event in JoAi

  The trigger will automatically:
  - ✅ Create webhooks in JoAi when you activate the workflow
  - ✅ Delete webhooks when you deactivate the workflow
  - ✅ Pass all webhook data to the next node in your workflow

  No manual webhook configuration needed!

  ### Example Workflow

  Here's a simple workflow that logs webhook data:

  1. **JoAi Trigger** - Receives webhook from JoAi
  2. **Code Node** - Processes the webhook data:
     ```javascript
     // All webhook data is available in $input.item.json
     const webhookData = $input.item.json;

     return {
       json: {
         event: webhookData.event,
         data: webhookData.data,
         receivedAt: new Date().toISOString()
       }
     };
     ```
  3. **Add other nodes** as needed for your specific use case

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [JoAi API Documentation](https://docs.joai.ai)
  - [GitHub Repository](https://github.com/JoAiHQ/n8n-nodes)

  ## Version history

  ## Support

  If you encounter any issues or have questions:

  1. Check the [GitHub Issues](https://github.com/JoAiHQ/n8n-nodes/issues)
  2. Create a new issue if your problem isn't already reported
  3. Provide as much detail as possible including n8n version, node version, and error messages

  ## Contributing

  Contributions are welcome! Please read our contributing guidelines before submitting pull requests.

  ## License

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

ai_documentation_summary:
  {"purpose":"The JoAi node allows users to send messages as AI agents through the JoAi platform and receive real-time webhook events such as agent actions, messages, and user messages.","capabilities":["Send messages as a JoAi agent to a specific room","Receive real-time webhook events (Agent Actions, Agent Messages, User Messages)","Automatically create and delete webhooks in JoAi when workflows are activated or deactivated"],"authentication":"API key and Base URL required for authentication","commonUseCases":["Sending AI-generated messages to a designated chat room","Monitoring agent activities in real time via webhooks","Building automated responses or notifications based on agent or user actions"],"limitations":[],"relatedNodes":["Code Node","Webhook Trigger"]}


node_type: n8n-nodes-onenote.onenote
package_name: n8n-nodes-onenote
display_name: OneNote
description: Work with the Microsoft OneNote (Microsoft Graph) API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-01-07 20:08:16
author_name: weilchen
author_github_url: https://github.com/Elliotes/
npm_package_name: n8n-nodes-onenote
npm_version: 0.2.1
community_fetched_at: 2026-01-07T20:08:16.117Z
ai_summary_generated_at: 2026-01-08 10:45:32
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "page",
      "options": [
        {
          "name": "Page",
          "value": "page"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a page",
          "description": "Get a page"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many pages",
          "description": "Get many pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a page",
      "description": "Get a page"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many pages",
      "description": "Get many pages"
    }
  ]

npm_readme:
  # n8n-nodes-onenote

  This package provides nodes for **n8n** that enable full integration with **Microsoft OneNote** through the **Microsoft Graph API**.  
  It allows automation, integration, and orchestration of note-related operations directly within n8n workflows.

  ---

  ## About the Author

  This community node was created and shared by **Liam Chen** for the n8n community.  
  It was designed to simplify the complexity of using Microsoft Graph OneNote APIs by providing a clean and easy-to-use interface.

  ---

  ## Table of Contents

  - [Features](#features)
  - [Available Resources](#available-resources)
  - [Authentication Methods](#authentication-methods)
  - [Setting up the Application in Microsoft Entra ID (Azure AD)](#setting-up-the-application-in-microsoft-entra-id-azure-ad)
  - [Using the Node](#using-the-node)
  - [Limitations and Troubleshooting](#limitations-and-troubleshooting)
  - [Additional Resources](#additional-resources)
  - [License](#license)

  ---

  ## Features

  This package provides a simple **OneNote** node with flexible authentication and OneNote functionality.

  ### OneNote Node

  Comprehensive node supporting two authentication methods:

  1. **OAuth2 Authentication** – Secure connection through Microsoft Entra ID (formerly Azure AD).  
  2. **Bearer Token Authentication** – Direct token-based integration for advanced users.

  #### Available Features

  - Notebook, Section, and Page listing  
  - Page creation with plain text or HTML  
  - Retrieve page metadata and content  
  - Dynamic dropdowns for Notebook → Section → Page (list search with pagination)  
  - Optional support for multiple scopes (e.g., `/me`, `/users/{id}`, `/sites/{id}`)

  ---

  ## Available Resources

  ### Notebook Resources
  - **List Notebooks** – Retrieves all available notebooks for the authenticated user  
  - **Get Notebook Details** – Retrieves information about a specific notebook  

  ### Section Resources
  - **List Sections** – Retrieves all sections within a notebook  
  - **Get Section Details** – Retrieves metadata for a specific section  

  ### Page Resources
  - **List Pages** – Lists all pages within a section  
  - **Get Page** – Retrieves a specific page by ID  
  - **Create Page** – Creates a new page under the selected section  
  - **Get Page Content** – Retrieves the full HTML content of a page  

  ---

  ## Authentication Methods

  The OneNote node supports two authentication types:

  ### 1. OAuth2 Authentication

  **Use case:**  
  Recommended for most scenarios — enables secure, refreshable access via Microsoft Entra ID.

  **Credential type:**  
  `OneNote OAuth2 API`

  **Token management:**  
  Automatically refreshed when tokens expire.

  ### 2. Bearer Token Authentication

  **Use case:**  
  For advanced integrations or quick API testing.

  **Credential type:**  
  `OneNote API`

  **Token management:**  
  Manual — you must refresh the token periodically.

  ### Selecting Authentication Method

  1. In the node configuration, choose **Authentication** (OAuth2 or Bearer Token).  
  2. The appropriate credential type will automatically appear.  
  3. Fill in the corresponding credential fields.

  ---

  ## Setting up the Application in Microsoft Entra ID (Azure AD)

  To use OAuth2 authentication, you must register your application in **Microsoft Entra ID (Azure AD)**.

  ### 1. Register a New Application

  1. Go to the [Azure Portal](https://portal.azure.com).  
  2. Navigate to **Microsoft Entra ID → App registrations → New registration**.  
  3. Enter a name, e.g., `n8n OneNote Integration`.  
  4. Under **Supported account types**, choose your desired access scope (e.g., single organization).  
  5. Under **Redirect URI**, select **Web** and enter:  
     - For cloud-hosted n8n:  
       `https://your-n8n-domain/rest/oauth2-credential/callback`  
     - For local development:  
       `http://localhost:5678/rest/oauth2-credential/callback`  
  6. Click **Register**.

  ### 2. Configure API Permissions

  1. In your app’s menu, select **API Permissions → Add a permission → Microsoft Graph**.  
  2. Select **Delegated permissions**, then add:
     - `Notes.Read` or `Notes.ReadWrite` (required)
     - `offline_access`, `openid`, `profile` (recommended for OAuth2)
     - If you plan to access other users’ notebooks: `Sites.Read.All`, `Users.Read.All`
  3. Click **Add permissions**, and request **Admin consent** if necessary.

  ### 3. Create a Client Secret

  1. Go to **Certificates & secrets → New client secret**.  
  2. Add a description and choose an expiration period.  
  3. Click **Add**, and **copy the secret value immediately** (you cannot see it again).

  ### 4. Gather Required Values

  You’ll need the following for n8n configuration:

  - **Client ID** – Found under **Overview → Application (client) ID**  
  - **Client Secret** – The value you just copied  
  - **Tenant ID** – Found under **Overview → Directory (tenant) ID**

  ---

  #### For Bearer Token Authentication:
  - **Credential type:** OneNote API  
  - **Access Token:** Paste your Microsoft Graph access token manually.  
  - Select **Resource** (Notebook, Section, Page) and **Operation**.  
  - Configure operation-specific parameters (Notebook ID, Section ID, etc.).  
  - Execute the node and verify the output.

  ---

  ## Limitations and Troubleshooting

  ### Microsoft Graph OneNote API Limitations

  - **Rate limits:** Standard Graph API rate limits apply. Reduce frequency or use pagination for large queries.  
  - **Permissions:** Ensure your app has `Notes.ReadWrite` and admin consent if required.  
  - **HTML format requirements:** For `Create Page`, your content must include valid HTML (`<html><head>...</head><body>...</body></html>`).  
  - **Access scope:** To access shared notebooks or other users’ data, proper delegated permissions and consent are required.  
  - **Bearer Token expiry:** Tokens expire unless obtained via OAuth2 refresh flow.

  ---

  ## Additional Resources

  - [Microsoft Graph – OneNote API Overview](https://learn.microsoft.com/graph/onenote-concept-overview)  
  - [Microsoft Graph Explorer](https://developer.microsoft.com/graph/graph-explorer)  
  - [Microsoft Graph Permissions Reference](https://learn.microsoft.com/graph/permissions-reference)  
  - [n8n Custom Node Development Guide](https://docs.n8n.io/integrations/creating-nodes/)  

  ---

  ## License

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

ai_documentation_summary:
  {"purpose":"The OneNote node enables automation of Microsoft OneNote operations via the Microsoft Graph API, allowing users to list, create, retrieve, and manage notebooks, sections, and pages within n8n workflows.","capabilities":["List notebooks","Get notebook details","List sections within a notebook","Get section details","List pages within a section","Get page metadata and content","Create a new page with plain text or HTML content","Dynamic dropdowns for Notebook → Section → Page with pagination","Support for multiple scopes including /me, /users/{id}, /sites/{id}"],"authentication":"OAuth2 (recommended) or Bearer Token (manual token required)","commonUseCases":["Automatically create notes in OneNote based on incoming data","Fetch and process page content from specific sections or notebooks","Sync data between n8n and OneNote using dynamic workflows","Integrate with other services to generate structured notes in OneNote"],"limitations":["Rate limits apply as per Microsoft Graph API standards","HTML content for page creation must be properly formatted with <html><head>...</head><body>...</body></html>","Access to shared notebooks or other users' data requires appropriate delegated permissions and admin consent","Bearer token authentication requires manual token refresh and expires without renewal","Limited support for advanced permissions without admin consent"],"relatedNodes":["Microsoft Graph API nodes","Authentication nodes (OAuth2)","Data transformation nodes"]}


