# nodes

node_type: n8n-nodes-klicktipp.klicktippTrigger
package_name: n8n-nodes-klicktipp
display_name: KlickTipp Trigger
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: mchudesnov
author_github_url: https://github.com/klicktipp/n8n-community-node-klicktipp.git
npm_package_name: n8n-nodes-klicktipp
npm_version: 1.0.39
community_fetched_at: 2026-04-16T09:43:36.360Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Triggers when a webhook event occurs in KlickTipp, such as a tag being added, an email being opened or sent, a link clicked, an SMS sent, and more.

npm_readme:
  # n8n-nodes-klicktipp

  **KlickTipp n8n Community Node (npm: `n8n-nodes-klicktipp`)**

  **Same project, three surfaces:**
  - **npm package:** `n8n-nodes-klicktipp`
  - **GitHub repository:** `klicktipp/n8n-community-node-klicktipp`
  - **n8n integration page:** https://n8n.io/integrations/klicktipp/

  This repository contains the source code for the npm package **`n8n-nodes-klicktipp`**, which powers the official **KlickTipp n8n Community Node** listed on n8n.io.
  Note: The GitHub repository name and the npm package name differ. They refer to the same project.

  ## KlickTipp API Integration for n8n

  What is the KlickTipp Marketing Suite?

  <a href="https://www.klicktipp.com/de?source=n8n" title="E-Mail-Marketing" target="_blank" rel="noopener noreferrer">KlickTipp Marketing Suite</a> is a digital marketing platform that empowers creators and small businesses to generate leads and turn them into passionate customers. It boosts growth with GDPR-compliant tools for email and SMS marketing, marketing automation, landing pages, and conversion rate optimization.

  This package provides a set of nodes for interacting with the KlickTipp API, allowing you to manage contacts, tags, subscription processes, and more directly from n8n.
  For more detailed information on the KlickTipp API - covering functions for managing contacts, tags, fields, and more - please refer to the <a href="https://www.klicktipp.com/de/support/wissensdatenbank/application-programming-interface-api?source=n8n" target="_blank" rel="noopener" title="E-Mail-Marketing API">official KlickTipp API client documentation</a> and the <a href="https://www.klicktipp.com/support/knowledge-base/install-klicktipp-node-n8n?source=n8n" target="_blank" rel="noopener" title="Install KlickTipp Node for n8n">installation guide for the KlickTipp node in n8n</a>.

  ---

  ## Table of Contents

  - [Installation](#installation)
  - [Quickstart](#quickstart)
  - [Nodes Overview](#nodes-overview)
    - [Contact](#contact)
    - [Contact Tagging](#contact-tagging)
    - [Data Field](#data-field)
    - [Opt-In Process](#opt-in-process)
    - [Tag](#tag)
    - [Triggers](#triggers)
  - [Supported Resources and Operations](#supported-resources-and-operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [License](#license)
  - [Example Workflows](#example-workflows)
  - [Troubleshooting](#troubleshooting)

  ---

  ## Installation

  To install the package, run the following command in your n8n directory:

  ```bash
  npm install n8n-nodes-klicktipp
  ```

  ## Quickstart

  1. Install the package in your n8n instance: `npm install n8n-nodes-klicktipp`
  2. Restart n8n.
  3. In the n8n UI, add **KlickTipp** credentials (username + password).
  4. Add a KlickTipp node and choose a resource + operation (for example: Tag -> Create).
  5. Execute the workflow.

  ## Nodes Overview

  This package includes nodes to interact with various aspects of the KlickTipp API:

  ### Contact

  - **Nodes**:
    - `Add or update contact`
    - `Delete contact`
    - `Get contact`
    - `Search contact id`
    - `List contacts`
    - `Search tagged contacts`
    - `Unsubscribe contact`
    - `Update contact`
  - **Description**: Provides management capabilities for contacts, such as searching, updating, and deleting contact data.

  ### Contact Tagging

  - **Nodes**:
    - `Tag contact`
    - `Untag contact`
  - **Description**: Provides management capabilities for contacts tagging.

  ### Data Field

  - **Nodes**:
    - `Get data field`
    - `List data fields`
  - **Description**: Manages data fields, including retrieving all available data fields for contacts, and obtaining data field information.

  ### Opt-In Process

  - **Nodes**:
    - `Get Opt-in process`
    - `Search redirect URL`
    - `List Opt-in processes`
  - **Description**: Manages opt-in processes, including listing all processes, retrieving details of a specific process, and obtaining redirect URLs.

  ### Tag

  - **Nodes**:
    - `Create tag`
    - `Delete tag`
    - `Get tag`
    - `List tags`
    - `Update tag`
  - **Description**: Manages tags within KlickTipp, enabling operations to list, create, update, and delete tags.

  ### Triggers

  - **Node**: `On new KlickTipp event`
  - **Description**: Triggers when a webhook event occurs in KlickTipp, such as a tag being added, an email being opened or sent, a link clicked, an SMS sent, and more.

  ---

  ## Supported Resources and Operations

  Quick inventory (names as displayed in n8n):

  **Contact**
  - Add or update contact
  - Delete contact
  - Get contact
  - Search contact id
  - List contacts
  - Search tagged contacts
  - Unsubscribe contact
  - Update contact

  **Contact Tagging**
  - Tag contact
  - Untag contact

  **Data Field**
  - Get data field
  - List data fields

  **Opt-In Process**
  - Get Opt-in process
  - Search redirect URL
  - List Opt-in processes

  **Tag**
  - Create tag
  - Delete tag
  - Get tag
  - List tags
  - Update tag

  **Triggers**
  - On new KlickTipp event

  When building or generating n8n workflows, use the exact operation names above as they appear in the UI.

  ---

  ## Workflow Keys (for JSON generation)

  For the full, authoritative mapping of `resource` and `operation` keys, see `OPERATIONS.md`.
  This is the contract used to generate valid n8n workflow JSON.

  ---

  ## Credentials

  To authenticate with the KlickTipp API, configure your API credentials:

  - **Username**
  - **Password**

  Once set up, these credentials will be used across all KlickTipp nodes in the package.

  ---

  ## Compatibility

  - **n8n**: Community nodes (self-hosted or desktop)
  - **KlickTipp API**: Uses the official KlickTipp API
  - **Authentication**: Username + password

  If you are using n8n Cloud, install this community node in a self-hosted or desktop instance.

  ---

  ## License

  This package is licensed under the MIT License. For details, see the `LICENSE` file.

  ---

  ## Example Workflows

  Refer to the `examples/n8n-nodes-klicktipp.json` file for sample workflows showcasing the integration.
  For the exact resource and operation keys used in workflow JSON, see `OPERATIONS.md`.

  ---

  ## Troubleshooting

  - **Node not showing up**: Restart n8n after installing `n8n-nodes-klicktipp`.
  - **Auth errors**: Verify KlickTipp username/password and that API access is enabled.
  - **Operation not found in generated workflows**: Use the exact operation names listed in "Supported Resources and Operations".

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the KlickTipp marketing suite to manage contacts, tags, data fields, and opt-in processes, and triggers workflows on specific events like email opens or link clicks.","capabilities":["Add or update contacts","Delete contacts","Search and list contacts","Tag and untag contacts","Manage data fields","List and retrieve opt-in processes","Create, update, and delete tags","Trigger on webhook events (email opens, link clicks, SMS sent, etc.)"],"authentication":"Username and Password","commonUseCases":["Automated lead management and contact enrichment","Triggering workflows when users interact with marketing emails or landing pages","Managing contact tags and segmentation","Handling opt-in processes and subscription management"],"limitations":["Not compatible with n8n Cloud (requires self-hosted or desktop instance)","Requires manual installation via npm package","Authentication requires username and password (no API key mentioned)"],"relatedNodes":["n8n-nodes-klicktipp.klicktippContact","n8n-nodes-klicktipp.klicktippContactTagging","n8n-nodes-klicktipp.klicktippTag","n8n-nodes-klicktipp.klicktippDataField","n8n-nodes-klicktipp.klicktippOptInProcess"]}


node_type: @dropinblog/n8n-nodes-dropinblog.dropInBlog
package_name: @dropinblog/n8n-nodes-dropinblog
display_name: DropInBlog
description: Interact with DropInBlog
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: jason18505
author_github_url: https://github.com/DropInBlog/n8n-nodes-dropinblog.git
npm_package_name: @dropinblog/n8n-nodes-dropinblog
npm_version: 1.0.11
community_fetched_at: 2026-04-16T09:43:36.360Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post"
        }
      ],
      "description": "The resource to operate on",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a post",
          "description": "Create a new blog post"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a post",
          "description": "Get a post by ID or slug"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search posts",
          "description": "Search blog posts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a post",
      "description": "Create a new blog post",
      "resource": "post"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a post",
      "description": "Get a post by ID or slug",
      "resource": "post"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search posts",
      "description": "Search blog posts",
      "resource": "post"
    }
  ]

npm_readme:
  # n8n-nodes-dropinblog

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

  DropInBlog is an SEO-friendly blog solution that embeds into any website.

  [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

  ### DropInBlog Node

  - **Post**
    - **Create** - Create a new blog post with title, content, and optional fields:
      - Status
      - Slug
      - Featured image URL
      - SEO title and description
      - Keyword
      - Author name
      - Category names
    - **Get** - Retrieve a post by its numeric ID or slug
    - **Search** - Search blog posts with optional filters:
      - Status (Draft/Published)
      - Limit

  ### DropInBlog Trigger Node

  - **Post Published** - Triggers when a post is published in your DropInBlog

  ## Credentials

  This node uses OAuth2 authentication with DropInBlog. You'll need to:

  1. Contact [DropInBlog support](https://dropinblog.com/contact/) to request OAuth credentials for your account
  2. Configure the OAuth2 credentials in n8n with the Client ID and Client Secret provided
  3. Complete the OAuth authorization flow

  ## Compatibility

  Tested with n8n version 1.48.0 and above. Requires Node.js 18.10 or later.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [DropInBlog API documentation](https://dropinblog.readme.io/reference/api-reference)
  * [DropInBlog website](https://dropinblog.com)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with DropInBlog, an SEO-friendly blog solution, allowing users to create, retrieve, and search blog posts directly within n8n workflows.","capabilities":["Create new blog posts with title, content, status, slug, featured image, SEO metadata, keywords, author, and categories","Retrieve existing blog posts by numeric ID or slug","Search blog posts with optional filters for status and limit","Trigger workflow execution when a post is published in DropInBlog"],"authentication":"OAuth2","commonUseCases":["Automated blog post creation from external data sources","Real-time notifications for new blog posts via webhooks","Scheduling and managing blog content through n8n workflows"],"limitations":["Requires manual OAuth credential setup by contacting DropInBlog support","Limited to n8n versions 1.48.0 and above","Requires Node.js 18.10 or later"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Trigger All"]}


node_type: @quire-io/n8n-nodes-quire.quire
package_name: @quire-io/n8n-nodes-quire
display_name: Quire
description: Perform actions on Quire project management platform
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: izwhiter
author_github_url: https://github.com/quire-api/n8n-nodes-quire.git
npm_package_name: @quire-io/n8n-nodes-quire
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.361Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Comment",
          "value": "comment"
        },
        {
          "name": "Partner",
          "value": "partner"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Sublist",
          "value": "sublist"
        },
        {
          "name": "Tag",
          "value": "tag"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a new task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Get a task by ID"
        },
        {
          "name": "Get by OID",
          "value": "getByOid",
          "action": "Get task by OID",
          "description": "Get a task by OID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Get many tasks in a project"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "description": "Update an existing task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "description": "Get many accessible users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a comment",
          "description": "Create a new comment"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many comments",
          "description": "Get many comments for a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "comment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tags",
          "description": "Get many tags in a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many sublists",
          "description": "Get many sublists in a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sublist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many partners",
          "description": "Get many partners in an organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "partner"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findTaskInProject",
      "options": [
        {
          "name": "Find Task in Project",
          "value": "findTaskInProject",
          "action": "Find task in project",
          "description": "Find tasks in a project"
        },
        {
          "name": "Find User",
          "value": "findUser",
          "action": "Find user",
          "description": "Find a user by email or ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many projects",
          "description": "Get many accessible projects"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a new task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Get a task by ID",
      "resource": "task"
    },
    {
      "name": "Get by OID",
      "value": "getByOid",
      "action": "Get task by OID",
      "description": "Get a task by OID",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Get many tasks in a project",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "description": "Update an existing task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "description": "Get many accessible users",
      "resource": "user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a comment",
      "description": "Create a new comment",
      "resource": "comment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many comments",
      "description": "Get many comments for a task",
      "resource": "comment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tags",
      "description": "Get many tags in a project",
      "resource": "tag"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many sublists",
      "description": "Get many sublists in a project",
      "resource": "sublist"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many partners",
      "description": "Get many partners in an organization",
      "resource": "partner"
    },
    {
      "name": "Find Task in Project",
      "value": "findTaskInProject",
      "action": "Find task in project",
      "description": "Find tasks in a project",
      "resource": "search"
    },
    {
      "name": "Find User",
      "value": "findUser",
      "action": "Find user",
      "description": "Find a user by email or ID",
      "resource": "search"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many projects",
      "description": "Get many accessible projects",
      "resource": "project"
    }
  ]

npm_readme:
  # n8n-nodes-quire

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

  Quire is a project management applications that improve your productivity.

  [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

  ### Task
  - **Create**: Create a new task
  - **Get**: Get a task by ID
  - **Get by OID**: Get a task by OID
  - **Get Many**: Get all tasks in a project
  - **Update**: Update an existing task

  ### Comment
  - **Create**: Create a new comment for a task
  - **Get Many**: Get all comments for a task

  ### Project
  - **Get Many**: Get all accessible projects

  ### User
  - **Get Many**: Get all accessible users

  ### Tag
  - **Get Many**: Get all tags in a project

  ### Sublist
  - **Get Many**: Get all sublists in a project

  ### Partner
  - **Get Many**: Get all partners in an organization

  ### Search
  - **Find Task in Project**: Find tasks in a project
  - **Find User**: Find a user by email or ID

  ## Credentials

  To use this node, you need to set up OAuth2 credentials for Quire in n8n:

  1. Log in to Quire and create a Quire App to obtain your Client ID and Client Secret.
  2. In n8n, go to the **Credentials** page and add new credentials for **Quire OAuth2 API**.
  3. Enter your Quire App's Client ID and Client Secret in the corresponding fields.
  4. Copy the **OAuth Redirect URL** shown in n8n and add it to your Quire App's Redirect URI settings.
  5. Save the credentials, then click **Connect my account** and authorize access to your Quire projects.

  > Reference: [n8n credentials setup guide](https://docs.n8n.io/credentials/add-edit-credentials/)

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Quire App Directory](https://quire.io/apps)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows with the Quire project management platform by allowing users to perform CRUD operations on tasks, comments, projects, users, tags, sublists, and partners.","capabilities":["Create tasks","Get tasks by ID","Get tasks by OID","Retrieve all tasks in a project","Update existing tasks","Create comments for tasks","Retrieve all comments for a task","Get all accessible projects","Get all accessible users","Get all tags in a project"],"authentication":"OAuth2","commonUseCases":["Automating task creation and updates from external sources","Syncing project data between Quire and other tools","Retrieving project status or user lists for reporting","Searching for specific tasks or users within Quire"],"limitations":["Limited to community node status (fair-code licensed)","Does not support creating, updating, or deleting comments or projects","Requires manual setup of OAuth2 credentials and redirect URI configuration"],"relatedNodes":["n8n OAuth2 credential node","n8n HTTP Request node","n8n community nodes"]}


node_type: @cloudcli-ai/n8n-nodes-cloud-cli.cloudCli
package_name: @cloudcli-ai/n8n-nodes-cloud-cli
display_name: CloudCLI
description: Manage CloudCLI development environments and run AI agents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: simossiteboon
author_github_url: https://github.com/cloudcli-ai/n8n-nodes-cloud-cli.git
npm_package_name: @cloudcli-ai/n8n-nodes-cloud-cli
npm_version: 1.0.9
community_fetched_at: 2026-04-16T09:43:36.362Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "environment",
      "options": [
        {
          "name": "Environment",
          "value": "environment"
        },
        {
          "name": "Agent",
          "value": "agent"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an environment",
          "description": "Create a new development environment"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an environment",
          "description": "Delete an environment (must be stopped first)"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an environment",
          "description": "Get details of a specific environment"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "Get many environments",
          "description": "Retrieve a list of environments"
        },
        {
          "name": "Start",
          "value": "start",
          "action": "Start an environment",
          "description": "Start a stopped environment"
        },
        {
          "name": "Stop",
          "value": "stop",
          "action": "Stop an environment",
          "description": "Stop a running environment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "environment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "action": "Execute an agent",
          "description": "Send a message and execute Claude Code, Cursor, Codex or Gemini agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an environment",
      "description": "Create a new development environment",
      "resource": "environment"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an environment",
      "description": "Delete an environment (must be stopped first)",
      "resource": "environment"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an environment",
      "description": "Get details of a specific environment",
      "resource": "environment"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "Get many environments",
      "description": "Retrieve a list of environments",
      "resource": "environment"
    },
    {
      "name": "Start",
      "value": "start",
      "action": "Start an environment",
      "description": "Start a stopped environment",
      "resource": "environment"
    },
    {
      "name": "Stop",
      "value": "stop",
      "action": "Stop an environment",
      "description": "Stop a running environment",
      "resource": "environment"
    },
    {
      "name": "Execute",
      "value": "execute",
      "action": "Execute an agent",
      "description": "Send a message and execute Claude Code, Cursor, Codex or Gemini agent",
      "resource": "agent"
    }
  ]

npm_readme:
  # n8n-nodes-cloud-cli

  This is an n8n community node for [CloudCLI](https://cloudcli.ai). It lets you manage cloud development environments and run AI coding agents (Claude Code, Cursor, Codex) directly from your n8n workflows.

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

  ## Installation

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

  ## Operations

  ### Environment

  - **Create** - Create a new development environment
  - **Delete** - Delete an environment
  - **Get** - Get details of a specific environment
  - **Get Many** - Retrieve a list of environments
  - **Start** - Start a stopped environment
  - **Stop** - Stop a running environment

  ### Agent

  - **Execute** - Run Claude Code or Cursor agent or Codex on a running environment

  ## Credentials

  You need a CloudCLI API key to use this node. Get your API key from [cloudcli.ai/api-keys](https://cloudcli.ai/api-keys).

  ## Resources

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

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Manages CloudCLI development environments and executes AI coding agents (Claude Code, Cursor, Codex) within n8n workflows.","capabilities":["Create a new development environment","Delete an existing environment","Retrieve details of a specific environment","List all environments","Start a stopped environment","Stop a running environment","Execute Claude Code agent","Execute Cursor agent","Execute Codex agent"],"authentication":"API key required","commonUseCases":["Automate AI-assisted code generation in development workflows","Manage local development environments programmatically","Integrate AI coding agents into CI/CD pipelines"],"limitations":[],"relatedNodes":["n8n HTTP Request node","n8n Code node","n8n GitHub node","n8n Slack node"]}


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-04-16 09:43:36
author_name: andrew_io
author_github_url: https://github.com/parsioio/
npm_package_name: n8n-nodes-parsio
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:36.363Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "importFileSync",
      "options": [
        {
          "name": "Import File",
          "value": "importFileSync",
          "action": "Import a binary file into a mailbox and return extracted data immediately",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "description": "Import a binary file into a mailbox and return extracted data immediately"
        },
        {
          "name": "Import Text/HTML",
          "value": "importTextHtmlSync",
          "action": "Import a text or html document into a mailbox and return extracted data immediately",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "description": "Import a text or HTML document into a mailbox and return extracted data immediately"
        },
        {
          "name": "Import File (Async)",
          "value": "importFile",
          "action": "Import a binary file into a mailbox asynchronously and return the document ID",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "description": "Import a binary file into a mailbox asynchronously and return the document ID"
        },
        {
          "name": "Import Text/HTML (Async)",
          "value": "importTextHtml",
          "action": "Import a text or html document into a mailbox asynchronously and return the document ID",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "description": "Import a text or HTML document into a mailbox asynchronously and return the document ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Import File",
      "value": "importFileSync",
      "action": "Import a binary file into a mailbox and return extracted data immediately",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        }
      },
      "description": "Import a binary file into a mailbox and return extracted data immediately",
      "resource": "document"
    },
    {
      "name": "Import Text/HTML",
      "value": "importTextHtmlSync",
      "action": "Import a text or html document into a mailbox and return extracted data immediately",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        }
      },
      "description": "Import a text or HTML document into a mailbox and return extracted data immediately",
      "resource": "document"
    },
    {
      "name": "Import File (Async)",
      "value": "importFile",
      "action": "Import a binary file into a mailbox asynchronously and return the document ID",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        }
      },
      "description": "Import a binary file into a mailbox asynchronously and return the document ID",
      "resource": "document"
    },
    {
      "name": "Import Text/HTML (Async)",
      "value": "importTextHtml",
      "action": "Import a text or html document into a mailbox asynchronously and return the document ID",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        }
      },
      "description": "Import a text or HTML document into a mailbox asynchronously and return the document ID",
      "resource": "document"
    }
  ]

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 File**
    - Synchronous by default: uploads a binary file and returns parsed data in the same node execution
    - Use when you have a PDF, image, email attachment, or other binary file
    - Async variant is also available when you only need the created document ID

  - **Import Text/HTML**
    - Synchronous by default: uploads text or HTML content and returns parsed data in the same node execution
    - Use when you have HTML pages, email content, or plain text
    - Async variant is also available when you want the workflow to continue without waiting for parsing

  ### 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 **Mailbox** 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 mailbox, 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 File

  1. Select the **Import File** operation
  2. Choose a **Mailbox** 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

  1. Select the **Import Text/HTML** operation
  2. Choose a **Mailbox** 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":"This n8n node enables the extraction of structured data from emails, PDFs, images, and other documents using the Parsio AI document parsing service.","capabilities":["Import binary documents (PDFs, images, email attachments)","Import text or HTML content","Trigger workflows automatically when documents are parsed","Extract structured data for use in automation workflows"],"authentication":"API Key required","commonUseCases":["Email notifications based on parsed invoice data","Logging parsed data to databases or spreadsheets","Updating CRM records from processed documents","Automating approval workflows based on document content"],"limitations":[],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest","n8n-nodes-base.binaryFile"]}


node_type: n8n-nodes-supermetrics.supermetrics
package_name: n8n-nodes-supermetrics
display_name: Supermetrics
description: Query marketing data using Supermetrics
category: Community
development_style: declarative
version: 0.1.21
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dev-info-supermetrics
author_github_url: https://github.com/supermetrics-public/n8n_connector.git
npm_package_name: n8n-nodes-supermetrics
npm_version: 0.1.21
community_fetched_at: 2026-04-16T09:43:36.364Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Supermetrics node for n8n

  With Supermetrics, you can use data from 50+ sources like Facebook Ads or Google Analytics right inside your workflows (source list to be expanded to 200+ soon).

  - List Data Sources - Lists the sources available via Supermetrics. For example, LinkedIn Ads and YouTube are data sources.
  - List Fields - Lists the fields available for a data source. For example, some of the fields available for LinkedIn Ads are Campaign Name and Cost.
  - List Accounts - Lists the accounts you have access to within a data source. Eg. for LinkedIn Ads, this lists your advertising accounts.
  - Get Data - Runs a query for getting data fron the selected source, using your selection of accounts and fields, and possible other parameters such as the date range.

  ## Requirements

  - A valid Supermetrics API **license** and **API key**.
  - https://supermetrics.com/products/api
    https://supermetrics.com/docs/product-api-authentication

  ## Installation - n8n Cloud

  We are waiting for n8n to verify our node. Before then, it cannot be installed to the cloud version of n8n.

  ## Installation - Self-hosted n8n (GUI — easiest)

  If you run n8n yourself (local, desktop, server, or Docker) you can install the Supermetrics node in the UI:

  1. Open n8n → Settings → Community Nodes → Install.

  2. Enter the npm package name: "n8n-nodes-supermetrics" (Optionally pin a version, e.g. @1.2.3.)

  3. Confirm the risks prompt and click Install.

  4. Restart n8n if prompted.

  Note that installing from npm via the GUI is only available to self-hosted instance owners/admins.

  ## Installation - Self-hosted n8n (Docker/CLI — manual)

  Use this when the GUI isn’t available (e.g. queue mode) or for private/automated setups:

  Enter the container shell (replace n8n with your container name):

    ```bash
    docker exec -it n8n sh
    ```

  Create the nodes folder (if needed) and go there:

     ```bash
     mkdir -p ~/.n8n/nodes
     cd ~/.n8n/nodes
     ```


  Install the package from npm:

     ```bash
     npm i n8n-nodes-supermetrics
     ```

  Restart n8n so it loads the new node.

ai_documentation_summary:
  {"purpose":"This n8n node allows querying marketing data from 50+ sources (expanding to 200+) directly within workflows, including operations like listing data sources, fields, and accounts, as well as retrieving specific data.","capabilities":["List available data sources","List available fields for a data source","List accessible accounts for a data source","Query and retrieve data based on selected sources, accounts, fields, and date ranges"],"authentication":"API key required (valid Supermetrics API license and key needed)","commonUseCases":["Integrating Facebook Ads and Google Analytics data into n8n workflows","Automating marketing data retrieval with specific date ranges","Accessing LinkedIn Ads and YouTube advertising data"],"limitations":["Not available in n8n Cloud version (waiting for verification)","Limited to 50+ data sources currently (expanding to 200+)","Requires manual installation on self-hosted instances via npm or Docker"],"relatedNodes":[]}


node_type: n8n-nodes-tubelab.tubeLab
package_name: n8n-nodes-tubelab
display_name: TubeLab
description: Get trending YouTube channels and outlier videos data for any niche.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: antoniojps
author_github_url: https://github.com/antoniojps/
npm_package_name: n8n-nodes-tubelab
npm_version: 0.4.7
community_fetched_at: 2026-04-16T09:43:36.365Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Channel",
          "value": "channel"
        },
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Scan",
          "value": "scan"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchOutliers",
      "options": [
        {
          "name": "Search Channels",
          "value": "searchChannels",
          "action": "Search for channels",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/channels",
              "method": "GET"
            }
          },
          "description": "Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
        },
        {
          "name": "Search Similar Channels",
          "value": "searchChannelsRelated",
          "action": "Search for similar channels",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/channels/related",
              "method": "GET"
            }
          },
          "description": "Search for YouTube channels with related content to another channel"
        },
        {
          "name": "Search Outliers",
          "value": "searchOutliers",
          "action": "Search for outliers",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/outliers",
              "method": "GET"
            }
          },
          "description": "Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
        },
        {
          "name": "Search Similar Outliers",
          "value": "searchOutliersRelated",
          "action": "Search for similar outliers",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/outliers/related",
              "method": "GET"
            }
          },
          "description": "Search for YouTube outliers with related content to another outlier(s)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "postScan",
      "options": [
        {
          "name": "Start a Scan",
          "value": "postScan",
          "action": "Start a scan",
          "routing": {
            "request": {
              "url": "/v1/scan",
              "method": "POST"
            }
          },
          "description": "Start a TubeLab scan to search for fresh outliers and channels on any given topic"
        },
        {
          "name": "Get Scan",
          "value": "getScan",
          "action": "Get a scan",
          "routing": {
            "request": {
              "url": "=/v1/scan/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Get the status of a scan and used inputs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getVideoTranscript",
      "options": [
        {
          "name": "Details",
          "value": "getVideoDetails",
          "action": "Get details",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the details of a video"
        },
        {
          "name": "Transcript",
          "value": "getVideoTranscript",
          "action": "Get transcript",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/transcript/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetches the transcript of a video including timestamps"
        },
        {
          "name": "Comments",
          "value": "getVideoComments",
          "action": "Get comments",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/comments/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the first 100 comments of a video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getChannelVideos",
      "options": [
        {
          "name": "Get Videos",
          "value": "getChannelVideos",
          "action": "Get videos",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "item"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/channel/videos/{{$parameter[\"channelId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the videos of a channel and relevant metrics"
        },
        {
          "name": "Get Shorts",
          "value": "getChannelShorts",
          "action": "Get shorts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "item"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/channel/shorts/{{$parameter[\"channelId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetches the shorts of a channel and relevant metrics"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channel"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Channels",
      "value": "searchChannels",
      "action": "Search for channels",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/channels",
          "method": "GET"
        }
      },
      "description": "Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7.",
      "resource": "search"
    },
    {
      "name": "Search Similar Channels",
      "value": "searchChannelsRelated",
      "action": "Search for similar channels",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/channels/related",
          "method": "GET"
        }
      },
      "description": "Search for YouTube channels with related content to another channel",
      "resource": "search"
    },
    {
      "name": "Search Outliers",
      "value": "searchOutliers",
      "action": "Search for outliers",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/outliers",
          "method": "GET"
        }
      },
      "description": "Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7.",
      "resource": "search"
    },
    {
      "name": "Search Similar Outliers",
      "value": "searchOutliersRelated",
      "action": "Search for similar outliers",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/outliers/related",
          "method": "GET"
        }
      },
      "description": "Search for YouTube outliers with related content to another outlier(s)",
      "resource": "search"
    },
    {
      "name": "Start a Scan",
      "value": "postScan",
      "action": "Start a scan",
      "routing": {
        "request": {
          "url": "/v1/scan",
          "method": "POST"
        }
      },
      "description": "Start a TubeLab scan to search for fresh outliers and channels on any given topic",
      "resource": "scan"
    },
    {
      "name": "Get Scan",
      "value": "getScan",
      "action": "Get a scan",
      "routing": {
        "request": {
          "url": "=/v1/scan/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Get the status of a scan and used inputs",
      "resource": "scan"
    },
    {
      "name": "Details",
      "value": "getVideoDetails",
      "action": "Get details",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the details of a video",
      "resource": "video"
    },
    {
      "name": "Transcript",
      "value": "getVideoTranscript",
      "action": "Get transcript",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/transcript/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetches the transcript of a video including timestamps",
      "resource": "video"
    },
    {
      "name": "Comments",
      "value": "getVideoComments",
      "action": "Get comments",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/comments/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the first 100 comments of a video",
      "resource": "video"
    },
    {
      "name": "Get Videos",
      "value": "getChannelVideos",
      "action": "Get videos",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "item"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/channel/videos/{{$parameter[\"channelId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the videos of a channel and relevant metrics",
      "resource": "channel"
    },
    {
      "name": "Get Shorts",
      "value": "getChannelShorts",
      "action": "Get shorts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "item"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/channel/shorts/{{$parameter[\"channelId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetches the shorts of a channel and relevant metrics",
      "resource": "channel"
    }
  ]

npm_readme:
  # n8n-nodes-tubelab

  This is an n8n community node. It lets you get enhanced YouTube data - including 400K+ trending channels, 4M+ outliers and scan niches in real-time with [TubeLab](https://tubelab.ai).

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

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

  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 TubeLab operations:

  - **Search Outliers**: Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7.
  - **Search Similar Outliers**: Search for YouTube outliers with related content to another outlier(s)
  - **Search Channels**: Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7.
  - **Search Similar Channels**: Search for YouTube channels with related content to another channel
  - **Get Channel Videos**: Fetch the videos of a channel and relevant metrics (max 100 videos)
  - **Get Channel Shorts**: Fetch the shorts of a channel and relevant metrics (max 100 shorts)
  - **Get Video Details**: Fetch the details of a video
  - **Get Video Transcript**: Fetch the transcript & timestamps of a video
  - **Get Video Comments**: Fetch the first 100 comments of a video
  - **Start a Scan**: Start a TubeLab scan to search for fresh outliers and channels on any given topic
  - **Get a Scan**: Get the status of a scan and used inputs

  ## Credentials

  To use this node, you will need to authenticate with [TubeLab's API](https://tubelab.net/docs/api).

  1. Sign up for a [TubeLab](https://tubelab.net/) account
  2. Go to the [Developers Dashboard](https://tubelab.net/developers) and create an API key
  3. Create new credential in n8n
     - Use TubeLab's node
     - Under Credential to connect with, click Create New Credential
     - Paste API Key

  ## Compatibility

  This node was developed & tested with the `1.112.5` version.

  ## Usage

  Please refer to [TubeLab's Automation documentation](https://tubelab.net/docs/api/automation) with example templates on how to use this node.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [TubeLab's API Documentation](https://tubelab.net/docs/api)
  - [Sign up for a TubeLab API key](https://tubelab.net)
  - Contact support if you have any issues: [https://tubelab.net/support](https://tubelab.net/support)

  ## Version history

  - 0.4.7 - Remove deprecated `requestWithAuthentication` in favor of `httpRequestWithAuthentication`
  - 0.4.5 - Fix `/channel/videos` endpoint
  - 0.4.3 - Fix query params as expressions compiling
  - 0.4.0 - Add operations `Get Channel Videos`, `Get Channel Shorts`, `Get Video Details`, `Get Video Transcript`, `Get Video Comments`
  - 0.3.3 - Fix Start Scan `findBy` input
  - 0.3.2 - Add "publishedAtFrom" to Outliers Filters
  - 0.3.0 - Fix Webhooks Trigger
  - 0.2.0 - Fix API base URL
  - 0.1.1 - Fix package.json metadata details
  - 0.1.0 - Initial release

  ## Contribution Guidelines

  Refer to the [official documentation](https://docs.n8n.io/integrations/creating-nodes/build/n8n-node/#new).

  Requirements:

  - Node JS
  - Install `n8n-node`: `npm install --global @n8n/node-cli`
  - Run `npm run dev`

ai_documentation_summary:
  {"purpose":"This n8n community node retrieves enhanced YouTube data, including trending channels, outlier videos, and niche scans, using TubeLab's AI-powered analytics.","capabilities":["Search for outlier videos with 30+ filters","Search for similar outlier videos based on related content","Search for channels with 30+ filters","Search for similar channels based on related content","Fetch channel videos with metrics (max 100)","Fetch channel shorts with metrics (max 100)","Retrieve detailed video information","Fetch video transcripts and timestamps","Fetch up to 100 comments per video","Start real-time niche scans for fresh outliers and channels"],"authentication":"API key required (TubeLab API key)","commonUseCases":["Identifying trending YouTube channels in specific niches","Finding viral or outlier videos for content inspiration","Analyzing competitor channels and their performance metrics","Discovering new content opportunities through real-time niche scanning","Extracting video transcripts and comments for sentiment analysis"],"limitations":["Channel videos retrieval is limited to a maximum of 100 videos","Channel shorts retrieval is limited to a maximum of 100 shorts","Video comments retrieval is limited to the first 100 comments","Tested and compatible with n8n version 1.112.5"],"relatedNodes":["n8n-nodes-youtube","n8n-nodes-webhook","n8n-nodes-code"]}


node_type: n8n-nodes-deapi.deapi
package_name: n8n-nodes-deapi
display_name: deAPI
description: Generate images, videos, transcribe audio and boost prompts using deAPI AI models
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: deapi
author_github_url: https://github.com/deapi-ai/
npm_package_name: n8n-nodes-deapi
npm_version: 0.3.0
community_fetched_at: 2026-04-16T09:43:36.366Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Prompt",
          "value": "prompt"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Generates an image from a text prompt"
        },
        {
          "name": "Remove Background",
          "value": "removeBackground",
          "action": "Remove background",
          "description": "Remove the background from an image"
        },
        {
          "name": "Upscale an Image",
          "value": "upscale",
          "action": "Upscale an image",
          "description": "Increase an image resolution x4"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate a Video",
          "value": "generate",
          "action": "Generate a video",
          "description": "Generates a video from text prompt or image(s)"
        },
        {
          "name": "Generate From Audio",
          "value": "generateFromAudio",
          "action": "Generate from audio",
          "description": "Generates a video conditioned on an audio file and text prompt"
        },
        {
          "name": "Replace Person in Video",
          "value": "replace",
          "action": "Replace person in video",
          "description": "Replaces a person in a video with a character from a reference image"
        },
        {
          "name": "Transcribe a Video",
          "value": "transcribe",
          "action": "Transcribe a video",
          "description": "Transcribes audio from a video to text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "cloneVoice",
      "options": [
        {
          "name": "Clone a Voice",
          "value": "cloneVoice",
          "action": "Clone a voice",
          "description": "Clones a voice from a reference audio and generates speech"
        },
        {
          "name": "Generate a Speech",
          "value": "generateSpeech",
          "action": "Generate a speech",
          "description": "Converts text to speech audio"
        },
        {
          "name": "Transcribe an Audio",
          "value": "transcribe",
          "action": "Transcribe an audio",
          "description": "Transcribes an audio file to text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "boostImage",
      "options": [
        {
          "name": "Image Prompt Booster",
          "value": "boostImage",
          "action": "Image prompt booster",
          "description": "Optimizes a prompt for text-to-image generation"
        },
        {
          "name": "Video Prompt Booster",
          "value": "boostVideo",
          "action": "Video prompt booster",
          "description": "Optimizes a prompt for text-image-to-video generation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate an Image",
      "value": "generate",
      "action": "Generate an image",
      "description": "Generates an image from a text prompt",
      "resource": "image"
    },
    {
      "name": "Remove Background",
      "value": "removeBackground",
      "action": "Remove background",
      "description": "Remove the background from an image",
      "resource": "image"
    },
    {
      "name": "Upscale an Image",
      "value": "upscale",
      "action": "Upscale an image",
      "description": "Increase an image resolution x4",
      "resource": "image"
    },
    {
      "name": "Generate a Video",
      "value": "generate",
      "action": "Generate a video",
      "description": "Generates a video from text prompt or image(s)",
      "resource": "video"
    },
    {
      "name": "Generate From Audio",
      "value": "generateFromAudio",
      "action": "Generate from audio",
      "description": "Generates a video conditioned on an audio file and text prompt",
      "resource": "video"
    },
    {
      "name": "Replace Person in Video",
      "value": "replace",
      "action": "Replace person in video",
      "description": "Replaces a person in a video with a character from a reference image",
      "resource": "video"
    },
    {
      "name": "Transcribe a Video",
      "value": "transcribe",
      "action": "Transcribe a video",
      "description": "Transcribes audio from a video to text",
      "resource": "video"
    },
    {
      "name": "Clone a Voice",
      "value": "cloneVoice",
      "action": "Clone a voice",
      "description": "Clones a voice from a reference audio and generates speech",
      "resource": "audio"
    },
    {
      "name": "Generate a Speech",
      "value": "generateSpeech",
      "action": "Generate a speech",
      "description": "Converts text to speech audio",
      "resource": "audio"
    },
    {
      "name": "Transcribe an Audio",
      "value": "transcribe",
      "action": "Transcribe an audio",
      "description": "Transcribes an audio file to text",
      "resource": "audio"
    },
    {
      "name": "Image Prompt Booster",
      "value": "boostImage",
      "action": "Image prompt booster",
      "description": "Optimizes a prompt for text-to-image generation",
      "resource": "prompt"
    },
    {
      "name": "Video Prompt Booster",
      "value": "boostVideo",
      "action": "Video prompt booster",
      "description": "Optimizes a prompt for text-image-to-video generation",
      "resource": "prompt"
    }
  ]

npm_readme:
  ![Banner image](https://github.com/user-attachments/assets/398eeb5d-cbf7-452c-96ae-825850c32730)

  # n8n-nodes-deapi

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

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

  deAPI is a unified API platform providing instant access to open-source AI models (FLUX, LTX Video, Whisper and more) through a decentralized GPU network. One API key to access thousands of GPUs with up to 20x lower costs.

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

  ## Installation

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

  ## Credentials

  To use this node, you need to configure the following credentials:

  | Field | Description |
  |-------|-------------|
  | **API Key** | Your deAPI API key. Get it from the [deAPI Quickstart Guide](https://docs.deapi.ai/quickstart#2-obtain-your-api-key). |
  | **Webhook Secret** | Secret used to verify webhook signatures. Configure it at [deAPI Webhook Settings](https://deapi.ai/settings/webhooks). |

  ## Operations

  ### Image

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate an image from a text prompt | FLUX.1 Schnell, FLUX.2 Klein 4B, Z-Image Turbo |
  | **Remove Background** | Remove the background from an image | Ben2 |
  | **Upscale** | Increase image resolution by 4x | RealESRGAN x4 |

  ### Video

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate a video from text or image(s) | LTX-Video 0.9.8, LTX-2 19B, LTX-2.3 22B |
  | **Generate From Audio** | Generate a video conditioned on an audio file and text prompt | LTX-2 22B |
  | **Replace Person in Video** | Replace a person in a video with a character from a reference image | Wan2.2-Animate 14B |
  | **Transcribe** | Transcribe video to text (YouTube, Twitch, X, Kick URLs or file upload) | Whisper Large V3 |

  ### Audio

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Clone a Voice** | Clone a voice from a reference audio and generate speech | Qwen3 TTS VoiceClone |
  | **Generate a Speech** | Convert text to speech audio | Kokoro, Chatterbox, Qwen3 TTS Custom Voice, Qwen3 TTS Voice Design |
  | **Transcribe** | Transcribe audio file to text | Whisper Large V3 |

  ### Prompt

  | Operation | Description |
  |-----------|-------------|
  | **Image Prompt Booster** | Optimize a prompt for text-to-image generation |
  | **Video Prompt Booster** | Optimize a prompt for text/image-to-video generation |

  ## How It Works

  Generation operations (image, video, transcription) use a webhook-based waiting pattern:

  1. The node submits a generation request to deAPI with a webhook URL
  2. The workflow pauses while deAPI processes the request
  3. When deAPI completes the job, it sends a webhook notification
  4. The workflow resumes with the generated content (binary file or text)

  This approach ensures efficient resource usage - the workflow doesn't actively poll for results.

  ## Compatibility

  - Tested with n8n version 2.3.4
  - Webhook-based operations require n8n to be accessible via HTTPS

  ## Example Workflow

  An example n8n workflow demonstrating all available operations is included in [`examples/deAPI_guide.json`](examples/deAPI_guide.json). Import it into your n8n instance to get started quickly:

  1. Download [`deAPI_guide.json`](https://raw.githubusercontent.com/deapi-ai/n8n-nodes-deapi/main/examples/deAPI_guide.json) from the GitHub repository
  2. In n8n, go to **Workflows** > **Import from File**
  3. Select the downloaded `deAPI_guide.json`
  4. Set up your deAPI credentials (API Key + Webhook Secret)
  5. Explore the example nodes and sticky notes for usage instructions

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [deAPI Documentation](https://docs.deapi.ai/)
  - [deAPI Website](https://deapi.ai/)
  - [GitHub Repository](https://github.com/deapi-ai/n8n-nodes-deapi)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates deAPI AI models into workflows, enabling image/video generation, audio transcription, voice cloning, and prompt optimization.","capabilities":["Generate images from text prompts (FLUX.1, Z-Image Turbo)","Remove image backgrounds (Ben2)","Upscale images (RealESRGAN x4)","Generate videos from text or images (LTX-Video, LTX-2)","Generate videos from audio and text","Transcribe video to text (YouTube, Twitch, X, Kick, files)","Transcribe audio files to text","Clone voices for text-to-speech (Qwen3 TTS)","Generate speech from text (Kokoro, Chatterbox, Qwen3 TTS)","Boost image generation prompts"],"authentication":"API Key required (deAPI API key) and Webhook Secret (for webhook verification)","commonUseCases":["Automated content creation for social media","Video content generation from scripts or audio","Audio transcription for content analysis","Voice cloning for personalized audio","Image upscaling and background removal"],"limitations":["Requires n8n to be accessible via HTTPS for webhook-based operations","Uses webhook-based waiting pattern which pauses workflow during generation","Tested only with n8n version 2.3.4"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-binary.binary","n8n-nodes-webhook.webhook"]}


node_type: @noloco/n8n-nodes-noloco.noloco
package_name: @noloco/n8n-nodes-noloco
display_name: Noloco
description: Interact with Noloco records
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: darragh-noloco
author_github_url: https://github.com/noloco-io/n8n-nodes-noloco.git
npm_package_name: @noloco/n8n-nodes-noloco
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:36.367Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "record",
      "options": [
        {
          "name": "Record",
          "value": "record"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a record",
          "description": "Create a new record in a collection"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a record",
          "description": "Delete an existing record from a collection"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a record",
          "description": "Get a single record by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many records",
          "description": "Get many records from a collection"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search records",
          "description": "Search for records by field values"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a record",
          "description": "Update an existing record in a collection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "record"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a record",
      "description": "Create a new record in a collection",
      "resource": "record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a record",
      "description": "Delete an existing record from a collection",
      "resource": "record"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a record",
      "description": "Get a single record by ID",
      "resource": "record"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many records",
      "description": "Get many records from a collection",
      "resource": "record"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search records",
      "description": "Search for records by field values",
      "resource": "record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a record",
      "description": "Update an existing record in a collection",
      "resource": "record"
    }
  ]

npm_readme:
  # @noloco/n8n-nodes-noloco

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

  [Noloco](https://noloco.io) is a no-code platform for building internal tools and client portals. Connect your data sources and build custom applications without writing code.

  [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 package includes two nodes:

  ### Noloco (Action Node)

  Perform operations on Noloco records:

  - **Create**: Create a new record in a collection
  - **Delete**: Delete an existing record from a collection
  - **Get**: Get a single record by ID
  - **Get Many**: Get many records from a collection with optional filtering, sorting, and pagination
  - **Search**: Search for records by field values
  - **Update**: Update an existing record in a collection

  ### Noloco Trigger (Polling Trigger)

  Start workflows when records change:

  - **Record Created**: Triggers when a new record is created in a table
  - **Record Updated**: Triggers when an existing record is updated in a table

  ## Credentials

  To use this node, you need to configure Noloco API credentials with two API keys:

  ### Prerequisites

  1. You must have access to a Noloco app
  2. You need to generate API keys from your app's settings

  ### Setting Up Credentials

  1. In your Noloco app, go to **Settings** > **Integrations & API Keys**
  2. Copy the **Account API Key** - this authenticates your Noloco account
  3. Copy the **App API Key** - this authenticates access to the specific app
  4. In n8n, create new Noloco API credentials and paste both keys

  For more details, see the [Noloco API Keys Guide](https://guides.noloco.io/settings/integrations-and-api-keys#api-keys).

  ## Compatibility

  - Tested with n8n version 1.0+
  - Requires Noloco REST API v1

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Noloco Documentation](https://guides.noloco.io/)
  - [Noloco API Keys Guide](https://guides.noloco.io/settings/integrations-and-api-keys#api-keys)
  - [Noloco Website](https://noloco.io)

ai_documentation_summary:
  {"purpose":"An n8n community node that enables interaction with Noloco records through CRUD operations and triggers on data changes.","capabilities":["Create new records in a collection","Delete existing records from a collection","Retrieve a single record by ID","Retrieve multiple records with filtering, sorting, and pagination","Search records by field values","Update existing records in a collection","Trigger workflows on record creation","Trigger workflows on record updates"],"authentication":"API key required (two keys: Account API Key and App API Key)","commonUseCases":["Automating internal tool data synchronization","Building client portal integrations","Real-time workflow triggers based on Noloco data changes","Syncing Noloco records with external systems"],"limitations":["Requires Noloco REST API v1","Requires access to a Noloco app and generation of API keys","Limited to n8n version 1.0+"],"relatedNodes":["Noloco Trigger","Noloco Action","Community Nodes"]}


node_type: @zerobounce/n8n-nodes-zerobounce.zeroBounce
package_name: @zerobounce/n8n-nodes-zerobounce
display_name: ZeroBounce
description: Validate and verify emails using the ZeroBounce API.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: pja-zerobounce
author_github_url: https://github.com/zerobounce/n8n-nodes-zerobounce.git
npm_package_name: @zerobounce/n8n-nodes-zerobounce
npm_version: 1.1.2
community_fetched_at: 2026-04-16T09:43:36.368Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "validation",
      "options": [
        {
          "name": "Account",
          "value": "account",
          "description": "Retrieve details from your ZeroBounce account"
        },
        {
          "name": "Validation",
          "value": "validation",
          "description": "Email validation"
        },
        {
          "name": "A.I. Scoring",
          "value": "scoring",
          "description": "Email scoring"
        },
        {
          "name": "Email Finder",
          "value": "emailFinder",
          "description": "Email Finder allows you to search for new business email addresses using our proprietary technologies"
        },
        {
          "name": "Domain Search",
          "value": "domainSearch",
          "description": "Domain Search allows you to search for new business email formats using our proprietary technologies"
        },
        {
          "name": "Activity Data",
          "value": "activityData",
          "description": "Activity Data allows you to gather insights into your subscribers’ overall email engagement"
        }
      ],
      "required": true,
      "description": "Choose the ZeroBounce API you wish to use",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCredits",
      "options": [
        {
          "name": "Credits Balance",
          "value": "getCredits",
          "action": "Get credits balance",
          "description": "Tells you how many credits you have left on your account"
        },
        {
          "name": "API Usage",
          "value": "getApiUsage",
          "action": "Get API usage",
          "description": "Retrieves a summary of your API usage"
        },
        {
          "name": "List Filters",
          "value": "listFilters",
          "action": "List filters",
          "description": "Lists all the existing filter rules"
        },
        {
          "name": "Add Filter",
          "value": "addFilter",
          "action": "Add a filter",
          "description": "Adds or updates a filter rule"
        },
        {
          "name": "Delete Filter",
          "value": "deleteFilter",
          "action": "Delete a filter",
          "description": "Deletes a filter rule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "validate",
      "options": [
        {
          "name": "Validate Email",
          "value": "validate",
          "action": "Validate an email",
          "description": "Validate a single email address (real-time)"
        },
        {
          "name": "Validate Batch",
          "value": "batchValidate",
          "action": "Validate an email batch",
          "description": "Validates batches of up to 200 email addresses at a time. It is rate limited to 5 uses per minute, if you exceed the rate limit, you will be blocked for 10 minutes. If you're looking to do single email validations, please use our single email validator endpoint."
        },
        {
          "name": "Bulk Validate Send File",
          "value": "sendFile",
          "action": "Send validation file",
          "description": "Send a file to ZeroBounce for bulk validation"
        },
        {
          "name": "Bulk Validate Get File",
          "value": "getFile",
          "action": "Get validation results file",
          "description": "Get the results file for a submitted validation file"
        },
        {
          "name": "Bulk Validate File Status",
          "value": "fileStatus",
          "action": "Get validation file status",
          "description": "Get the status of a file submitted for validation"
        },
        {
          "name": "Bulk Validate Delete File",
          "value": "deleteFile",
          "action": "Delete validation file",
          "description": "Delete a previously submitted validation file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "validation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "score",
      "options": [
        {
          "name": "Score Email",
          "value": "score",
          "action": "Score an email",
          "description": "Score a single email address (real-time)"
        },
        {
          "name": "Bulk Scoring Send File",
          "value": "scoringSendFile",
          "action": "Send scoring file",
          "description": "Send a file to ZeroBounce for bulk scoring"
        },
        {
          "name": "Bulk Scoring Get File",
          "value": "scoringGetFile",
          "action": "Get scoring results file",
          "description": "Get the results file for a submitted scoring file"
        },
        {
          "name": "Bulk Scoring File Status",
          "value": "scoringFileStatus",
          "action": "Get scoring file status",
          "description": "Get the status of a file submitted for scoring"
        },
        {
          "name": "Bulk Scoring Delete File",
          "value": "scoringDeleteFile",
          "action": "Delete scoring file",
          "description": "Delete a previously submitted scoring file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scoring"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "find",
      "options": [
        {
          "name": "Find Email Address",
          "value": "find",
          "action": "Find email address",
          "description": "Uses a person’s first and last name and a domain or company name to test a variety of patterns and combinations in real time until it identifies a valid business email. It does not use or process customer data at any point to aid in this search. Privacy and Security Note – Email Finder API searches are performed in real time and do not use stored or processed customer data. Customer privacy and security are and will always remain our top priority."
        },
        {
          "name": "Bulk Email Finder Send File",
          "value": "emailFinderSendFile",
          "action": "Send email finder file",
          "description": "Send a file to ZeroBounce for bulk email finding"
        },
        {
          "name": "Bulk Email Finder Get File",
          "value": "emailFinderGetFile",
          "action": "Get email finder results file",
          "description": "Get the results file for a submitted email finder file"
        },
        {
          "name": "Bulk Email Finder File Status",
          "value": "emailFinderFileStatus",
          "action": "Get email finder file status",
          "description": "Get the status of a submitted email finder file"
        },
        {
          "name": "Bulk Email Finder Delete File",
          "value": "emailFinderDeleteFile",
          "action": "Delete email finder file",
          "description": "Delete a previously submitted email finder file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "emailFinder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search Domain",
          "value": "search",
          "action": "Search domain",
          "description": "Domain search is functionally similar to email address inquiry but instead attempts to detect possible patterns a specific company uses. You can use detected patterns to help you approximate the correct email for a specific person you’re attempting to contact at a business. Privacy and security note – Domain Search API searches are performed in real time and do not use stored or processed customer data. Customer privacy and security are and will always remain our top priority."
        },
        {
          "name": "Bulk Domain Search Send File",
          "value": "domainSearchSendFile",
          "action": "Send domain search file",
          "description": "Send a file to ZeroBounce for bulk domain searching"
        },
        {
          "name": "Bulk Domain Search Get File",
          "value": "domainSearchGetFile",
          "action": "Get domain search results file",
          "description": "Get the results file for a submitted domain search file"
        },
        {
          "name": "Bulk Domain Search File Status",
          "value": "domainSearchFileStatus",
          "action": "Get domain search file status",
          "description": "Get the status of a submitted domain search file"
        },
        {
          "name": "Bulk Domain Search Delete File",
          "value": "domainSearchDeleteFile",
          "action": "Delete domain search file",
          "description": "Delete a previously submitted domain search file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domainSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getActivityData",
      "options": [
        {
          "name": "Activity Data",
          "value": "getActivityData",
          "action": "Get activity data",
          "description": "Our Activity Data feature allows you to gather insights into your subscribers’ overall email engagement. The tool returns if the email inbox has been active in the past 30, 60, 90, 180, 365, or 365+ days. This indicates a potentially outdated contact, not recommended for cold emailing. Thus, you can improve your targeting and personalization and run more successful email campaigns."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "activityData"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Credits Balance",
      "value": "getCredits",
      "action": "Get credits balance",
      "description": "Tells you how many credits you have left on your account",
      "resource": "account"
    },
    {
      "name": "API Usage",
      "value": "getApiUsage",
      "action": "Get API usage",
      "description": "Retrieves a summary of your API usage",
      "resource": "account"
    },
    {
      "name": "List Filters",
      "value": "listFilters",
      "action": "List filters",
      "description": "Lists all the existing filter rules",
      "resource": "account"
    },
    {
      "name": "Add Filter",
      "value": "addFilter",
      "action": "Add a filter",
      "description": "Adds or updates a filter rule",
      "resource": "account"
    },
    {
      "name": "Delete Filter",
      "value": "deleteFilter",
      "action": "Delete a filter",
      "description": "Deletes a filter rule",
      "resource": "account"
    },
    {
      "name": "Validate Email",
      "value": "validate",
      "action": "Validate an email",
      "description": "Validate a single email address (real-time)",
      "resource": "validation"
    },
    {
      "name": "Validate Batch",
      "value": "batchValidate",
      "action": "Validate an email batch",
      "description": "Validates batches of up to 200 email addresses at a time. It is rate limited to 5 uses per minute, if you exceed the rate limit, you will be blocked for 10 minutes. If you're looking to do single email validations, please use our single email validator endpoint.",
      "resource": "validation"
    },
    {
      "name": "Bulk Validate Send File",
      "value": "sendFile",
      "action": "Send validation file",
      "description": "Send a file to ZeroBounce for bulk validation",
      "resource": "validation"
    },
    {
      "name": "Bulk Validate Get File",
      "value": "getFile",
      "action": "Get validation results file",
      "description": "Get the results file for a submitted validation file",
      "resource": "validation"
    },
    {
      "name": "Bulk Validate File Status",
      "value": "fileStatus",
      "action": "Get validation file status",
      "description": "Get the status of a file submitted for validation",
      "resource": "validation"
    },
    {
      "name": "Bulk Validate Delete File",
      "value": "deleteFile",
      "action": "Delete validation file",
      "description": "Delete a previously submitted validation file",
      "resource": "validation"
    },
    {
      "name": "Score Email",
      "value": "score",
      "action": "Score an email",
      "description": "Score a single email address (real-time)",
      "resource": "scoring"
    },
    {
      "name": "Bulk Scoring Send File",
      "value": "scoringSendFile",
      "action": "Send scoring file",
      "description": "Send a file to ZeroBounce for bulk scoring",
      "resource": "scoring"
    },
    {
      "name": "Bulk Scoring Get File",
      "value": "scoringGetFile",
      "action": "Get scoring results file",
      "description": "Get the results file for a submitted scoring file",
      "resource": "scoring"
    },
    {
      "name": "Bulk Scoring File Status",
      "value": "scoringFileStatus",
      "action": "Get scoring file status",
      "description": "Get the status of a file submitted for scoring",
      "resource": "scoring"
    },
    {
      "name": "Bulk Scoring Delete File",
      "value": "scoringDeleteFile",
      "action": "Delete scoring file",
      "description": "Delete a previously submitted scoring file",
      "resource": "scoring"
    },
    {
      "name": "Find Email Address",
      "value": "find",
      "action": "Find email address",
      "description": "Uses a person’s first and last name and a domain or company name to test a variety of patterns and combinations in real time until it identifies a valid business email. It does not use or process customer data at any point to aid in this search. Privacy and Security Note – Email Finder API searches are performed in real time and do not use stored or processed customer data. Customer privacy and security are and will always remain our top priority.",
      "resource": "emailFinder"
    },
    {
      "name": "Bulk Email Finder Send File",
      "value": "emailFinderSendFile",
      "action": "Send email finder file",
      "description": "Send a file to ZeroBounce for bulk email finding",
      "resource": "emailFinder"
    },
    {
      "name": "Bulk Email Finder Get File",
      "value": "emailFinderGetFile",
      "action": "Get email finder results file",
      "description": "Get the results file for a submitted email finder file",
      "resource": "emailFinder"
    },
    {
      "name": "Bulk Email Finder File Status",
      "value": "emailFinderFileStatus",
      "action": "Get email finder file status",
      "description": "Get the status of a submitted email finder file",
      "resource": "emailFinder"
    },
    {
      "name": "Bulk Email Finder Delete File",
      "value": "emailFinderDeleteFile",
      "action": "Delete email finder file",
      "description": "Delete a previously submitted email finder file",
      "resource": "emailFinder"
    },
    {
      "name": "Search Domain",
      "value": "search",
      "action": "Search domain",
      "description": "Domain search is functionally similar to email address inquiry but instead attempts to detect possible patterns a specific company uses. You can use detected patterns to help you approximate the correct email for a specific person you’re attempting to contact at a business. Privacy and security note – Domain Search API searches are performed in real time and do not use stored or processed customer data. Customer privacy and security are and will always remain our top priority.",
      "resource": "domainSearch"
    },
    {
      "name": "Bulk Domain Search Send File",
      "value": "domainSearchSendFile",
      "action": "Send domain search file",
      "description": "Send a file to ZeroBounce for bulk domain searching",
      "resource": "domainSearch"
    },
    {
      "name": "Bulk Domain Search Get File",
      "value": "domainSearchGetFile",
      "action": "Get domain search results file",
      "description": "Get the results file for a submitted domain search file",
      "resource": "domainSearch"
    },
    {
      "name": "Bulk Domain Search File Status",
      "value": "domainSearchFileStatus",
      "action": "Get domain search file status",
      "description": "Get the status of a submitted domain search file",
      "resource": "domainSearch"
    },
    {
      "name": "Bulk Domain Search Delete File",
      "value": "domainSearchDeleteFile",
      "action": "Delete domain search file",
      "description": "Delete a previously submitted domain search file",
      "resource": "domainSearch"
    },
    {
      "name": "Activity Data",
      "value": "getActivityData",
      "action": "Get activity data",
      "description": "Our Activity Data feature allows you to gather insights into your subscribers’ overall email engagement. The tool returns if the email inbox has been active in the past 30, 60, 90, 180, 365, or 365+ days. This indicates a potentially outdated contact, not recommended for cold emailing. Thus, you can improve your targeting and personalization and run more successful email campaigns.",
      "resource": "activityData"
    }
  ]

npm_readme:
  ![ZeroBounce Logo](https://raw.githubusercontent.com/zerobounce/n8n-nodes-zerobounce/main/icons/zb-logo-purple.svg)

  # n8n-nodes-zerobounce

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

  **This is the [Official ZeroBounce](https://n8n.io/integrations/zerobounce) n8n community node for use in your n8n
  workflows.**

  * [Key Features](#key-features)
  * [About](#about)
  * [Installation](#installation)
  * [Operations](#operations)
      * [Validation](#-validation)
      * [A.I. Scoring](#-ai-scoring)
      * [Email Finder](#-email-finder)
      * [Domain Search](#-domain-search)
      * [Activity Data](#-activity-data)
      * [Account](#-account)
  * [Credentials](#credentials)
  * [Usage](#usage)
      * [Workflow Testing](#-workflow-testing)
      * [Single Email Validation](#-single-email-validation)
      * [Bulk File Webhook Integration](#-bulk-file-webhook-integration-wait-node)
  * [Support](#support)
  * [Compatibility](#compatibility)
  * [Resources](#resources)

  ## 💡Key Features

  - 🛡️ **Validation:** Detect invalid, abuse, and spam trap addresses before they impact your sender reputation.
  - 🎯 **A.I. Scoring:** Go beyond validation with AI-driven deliverability scores, great for catch-all addresses.
  - 🔍 **Lead Discovery:** Integrated Email Finder and Domain Search tools to build and verify your outreach lists.
  - 📊 **Usage Analytics:** Monitor API usage and credit balances to ensure uninterrupted and efficient service.

  ---

  ## About

  Validate and score email addresses with the official **ZeroBounce** node to improve email deliverability and protect
  your domain reputation.

  ### About ZeroBounce

  **[ZeroBounce](https://www.zerobounce.net)** is an award-winning email verification and deliverability platform designed
  to help businesses maintain high-quality email lists and improve their inbox placement.

  Trusted by over 500,000 clients—including major brands like Samsung, Coca-Cola, and LinkedIn; we specialize in
  identifying risky email addresses to reduce bounce rates and increase engagement.

  #### Core Services & Features

  - **Email Validation:** Offers 99.6% accurate real-time and bulk email verification to identify invalid, disposable,
    abuse, and spam trap addresses.
  - **A.I. Email Scoring:** Uses artificial intelligence to analyze "catch-all" or valid addresses and assign a score (
    1–10) based on the likelihood of reaching a real person.
  - **Email Activity Data:** Provides insights into a subscriber’s recent behavior (opens, clicks, unsubscribes) to help
    with list segmentation.
  - **Deliverability Tools:** Includes DMARC monitoring, 24/7 blacklist monitoring, inbox placement testing, and email
    server testing.
  - **Email Finder & Warmup:** A B2B search tool to find professional contacts and an automated service to build or repair
    a domain’s sender reputation.

  #### Security & Performance

  ZeroBounce maintains high standards for security and reliability, featuring:

  - **Compliance:** The platform is SOC 2 Type 2 and ISO-27001 certified, and fully compliant with GDPR, HIPAA, and CCPA.
  - **Reliability:** Guarantees 99.99% API reliability with one of the industry's lowest "unknown" result rates (averaging
    1.69% in 2024).
  - **24/7 Support:** Provides round-the-clock live chat and email support with an average response time of under 20
    seconds for chat.

  ---

  ## Installation

  The ZeroBounce node can be found in the n8n nodes list.

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

  ---

  ## Operations

  ### 🛡️ Validation

  | Operation         | Description                                                  |
  |:------------------|:-------------------------------------------------------------|
  | Validate Email    | Check a single email for validity, sub-status, and metadata. |
  | Validate Batch    | Validate up to 200 email addresses in a single request.      |
  | Bulk: Send File   | Upload a CSV or TXT file for large-scale list cleaning.      |
  | Bulk: Get File    | Download the processed results of a bulk validation job.     |
  | Bulk: File Status | Monitor the real-time progress of a file being validated.    |
  | Bulk: Delete File | Permanently remove a processed file from ZeroBounce servers. |

  ### 🤖 A.I. Scoring

  | Operation         | Description                                                 |
  |:------------------|:------------------------------------------------------------|
  | Score Email       | Get an AI-driven quality score (1-10) for a single email.   |
  | Bulk: Send File   | Upload a file to score multiple "catch-all" or valid leads. |
  | Bulk: Get File    | Download the AI scoring results for your uploaded file.     |
  | Bulk: File Status | Check the percentage completion of an AI scoring job.       |
  | Bulk: Delete File | Delete an AI scoring file once processing is finished.      |

  ### 🔍 Email Finder

  | Operation          | Description                                                               |
  |:-------------------|:--------------------------------------------------------------------------|
  | Find Email Address | Discover professional emails using a person's name and domain or company. |
  | Bulk: Send File    | Upload a list of names and domains to find emails at scale.               |
  | Bulk: Get File     | Retrieve the results of a bulk email finder operation.                    |
  | Bulk: File Status  | Track the status of a bulk email finding request.                         |
  | Bulk: Delete File  | Remove a bulk email finder file from your dashboard.                      |

  ### 🌐 Domain Search

  | Operation         | Description                                                   |
  |:------------------|:--------------------------------------------------------------|
  | Domain Search     | Find email address formats associated with a specific domain. |
  | Bulk: Send File   | Submit a file of domains to perform a bulk search.            |
  | Bulk: Get File    | Download the results of a bulk domain search.                 |
  | Bulk: File Status | Monitor the progress of a bulk domain search job.             |
  | Bulk: Delete File | Clean up your domain search history by deleting files.        |

  ## 📊 Activity Data

  | Operation         | Description                                                   |
  |:------------------|:--------------------------------------------------------------|
  | Get Activity Data | Retrieve metadata regarding a user's recent email engagement. |

  ### 💳 Account

  | Operation       | Description                                                    |
  |:----------------|:---------------------------------------------------------------|
  | Credits Balance | Check the remaining credits in your ZeroBounce account.        |
  | API Usage       | Get a breakdown of your API usage over a specific time period. |
  | List Filters    | View all active allow/block filters.                           |
  | Add Filter      | Add a filter to your allow/block lists.                        |
  | Delete Filter   | Remove a filter from your allow/block lists.                   |

  ---

  ## Credentials

  You need a ZeroBounce API Key to use this node. Follow the steps below to generate one for free.

  ### 🔑 API Key

  1. Open your ZeroBounce API dashboard [ZeroBounce API](https://www.zerobounce.net/members/API).
  2. Click 'Create a new API Key'.
  3. Enter a descriptive name for your key in the API Key Name field, like 'n8n integration'.
  4. Set the key to active and optionally configure the IP address(es) it can be used from.
  5. Toggle the API Keys' visibility and copy the value shown.

  For more information, see [API Keys Management](https://www.zerobounce.net/docs/api-dashboard/#API_keys_management)

  ---

  ## Usage

  ### 🧪 Workflow Testing

  Use [API Sandbox Mode](https://www.zerobounce.net/docs/email-validation-api-quickstart/#sandbox_mode__v2__)
  data to test workflows without using your ZeroBounce credits.

  ---

  ### 🛡 Single Email Validation

  The Validate Email operation allows you to verify a single email address in real-time.
  This is ideal for cleaning leads from signup forms, chat interfaces, or individual CRM entries.

  #### 🛠️ Step-by-Step Setup

  1. **Add the Node:** Add the **ZeroBounce** node to your n8n canvas and select the **Validate** operation.
  2. **Enter Email:** In the Email field, provide the address you wish to check.
     Use an expression to pull data from a previous node (e.g., `{{ $json.email }}` or
     `{{ $('Shopify customer created').item.json.email }}`).
  3. **Add Options:** Use the `Add option` button to add optional fields
  4. **Execute:** Run the node to receive the validation results.

  #### ⚙️ Parameters

  While only the email address is required, you can refine your results using the following optional parameters found in
  the node's settings:

  | Parameter             | Optional | Description                                                                                                                                                                                                                                                                                |
  |:----------------------|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | Email                 |          | The email address you want to validate                                                                                                                                                                                                                                                     |
  | IP Address            | ✔️       | Provide the user's IP address (IPv4) to gain location metadata (Country, City, Zip) and check if the IP is associated with known proxy/VPN usage.                                                                                                                                          |
  | Include Activity Data | ✔️       | Provides metadata about the user's recent engagement, such as the last time they opened, clicked, or forwarded an email (e.g., within 30, 90, or 180 days).                                                                                                                                |
  | Verify+               | ✔️       | Read before enabling: [Verify+](https://www.zerobounce.net/docs/email-list-validation/verify-plus#Verify_Plus). Significantly reduces "Catch-all" results. It uses proprietary technology to provide a definitive valid or invalid status for many domains that normally return catch-all. |
  | Timeout (Seconds)     | ✔️       | Adjust the maximum time (in seconds) the node should wait for a response from the API. Default is typically sufficient for most workflows. When a request exceeds this timeout, the API will return unknown / greylisted.                                                                  |

  #### 📊 Understanding the Response

  A successful execution returns a JSON object with the following key fields:

  - **Status:** The core result (e.g., `valid`, `invalid`, `catch-all`, `spamtrap`, `abuse`, `do_not_mail`, `unknown`).
  - **Sub Status:** Detailed reasoning for the status (e.g., `mailbox_not_found`, `global_suppression`, `possible_trap`).
  - **Account / Domain:** Parsed components of the email address.
  - **Did You Mean:** A suggestion if the API detects a common typo (e.g., `john@gnail.com` suggests `john@gmail.com`).
  - **Flags:** Boolean flags for `free_email`, `disposable`, and `role_based` accounts.
  - **Metadata:** Information such as the domain's MX records, SMTP provider, and (if IP was provided) geographic data.

  ##### ✨ Example Response:

  ```json
  {
    "address": "support@zerobounce.net",
    "status": "do_not_mail",
    "sub_status": "role_based_catch_all",
    "free_email": false,
    "did_you_mean": null,
    "account": "support",
    "domain": "zerobounce.net",
    "domain_age_days": "3286",
    "smtp_provider": "g-suite",
    "mx_found": "true",
    "mx_record": "aspmx.l.google.com",
    "firstname": null,
    "lastname": null,
    "gender": null,
    "country": "United States",
    "region": "Florida",
    "city": "Boca Raton",
    "zipcode": "33428",
    "processed_at": "2026-01-23 14:50:00.159"
  }
  ```

  #### 💡 Pro Tip: Logic Routing

  After this node, use a Switch or If node to route your workflow:

  - **If Status = `valid`:** Route to your "Valid" path, e.g. create a CRM contact
  - **If Status = `catch-all`:** Route to the AI Scoring node for further vetting
  - **If Status = `invalid` (or fallback):** Route to "Rejected" path, e.g. add entry to a table for manual review

  As used in
  this [Example Template: Single Validation Lead Vetting](https://n8n.io/workflows/12601-vet-new-shopify-leads-with-zerobounce-and-sync-qualified-contacts-to-hubspot/)

  ---

  ### 🛡 Batch Email Validation

  The Batch Validate Email operation allows you to verify up to 200 email addresses in real-time.
  This is ideal for processing small lists of leads retrieved from a database, an API, or a previous n8n node without the
  overhead of file uploads.

  This request is rate limited,
  see [Batch Email Validation API Documentation](https://www.zerobounce.net/docs/email-validation-api-quickstart/v2-batch-validate-emails).

  #### 🛠️ Step-by-Step Setup

  1. **Add the Node:** Add the **ZeroBounce** node to your n8n canvas and select the **Validate Batch** operation.
  2. **Combine Items:** Enabled by default,
      - **Enabled (default):** Combines multiple input items into a single request.
      - **Disabled:** Handles each input item as a batch request. The data should already be batched.
  3. **Split Items:**
      - **Enabled (default):** Splits the response into individual items for individual processing.
      - **Disabled:** The response is returned as-is with an array of results and an array of errors.
  4. **Enter Data:** Data is intelligently extracted from one of the three **Item Input Types** (scanning for email and
     IP address fields, e.g. `email`, `email_address`, `ip`, `ip_address` etc.):
      - **Field Assignment:** Drag and drop fields from previous node outputs to map a field, object or array from input
        items which already contain the email/IP fields.
          - **Object/Field:** Use with 'Combine Items' enabled, an email from each item will be combined into an
            array in a single batch request.
          - **Array:** The values will be extracted from this array and sent in the batch request.If 'Combine Items'
            is enabled, arrays will be joined)
      - **JSON Input:** Freeform JSON to be used as the input. Useful when you already have JSON in the correct format.
          - **Expected format:** ```{ "data": [ {"email_address": "valid@example.com", "ip_address": "99.110.204.1" } ] }```
      - **Mapped:** Map individual email/IP fields from input items
          - With 'Combine Items' enabled the values from each input item will be combined into a single array in the batch
            request.
  5. **Add Options:** Use the `Add option` button to add optional fields
  6. **Execute:** Run the node to receive the validation results.

  #### ⚙️ Parameters

  While only the input data containing email addresses is required, you can refine your results using the following
  optional parameters found in
  the node's settings:

  | Parameter                  | Optional | Description                                                                                                                                                                                                                                                                                |
  |:---------------------------|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | Item Input: Email(s)       |          | The email address(es) you want to validate. This can be a field, object or array from your input items, optionally combined to create a single batch request.                                                                                                                              |
  | Item Input: IP Address(es) | ✔️       | Pair an email address with an IP address (IPv4) to gain location metadata (Country, City, Zip) and check if the IP is associated with known proxy/VPN usage.                                                                                                                               |
  | Include Activity Data      | ✔️       | Provides metadata about the user's recent engagement, such as the last time they opened, clicked, or forwarded an email (e.g., within 30, 90, or 180 days).                                                                                                                                |
  | Verify+                    | ✔️       | Read before enabling: [Verify+](https://www.zerobounce.net/docs/email-list-validation/verify-plus#Verify_Plus). Significantly reduces "Catch-all" results. It uses proprietary technology to provide a definitive valid or invalid status for many domains that normally return catch-all. |
  | Timeout (Seconds)          | ✔️       | Adjust the maximum time (3 - 60 seconds) the node should wait for a response from the API. Default is typically sufficient for most workflows. When a request exceeds this timeout, the API will return unknown / greylisted.                                                              |

  #### 📊 Understanding the Response

  A successful execution returns a JSON object with the following fields:

  - **Split Items Enabled (default):**
      - An output item per email containing validation results.
        See [Example Validation Response](#-example-response)
  - **Split Items Disabled:**
      - `email_batch`: An array of validation results.
        See [Example Validation Response](#-example-response)
      - `errors`: An array of errors

  #### 💡 Pro Tip: Handling Large Lists (> 200 items)

  If your workflow needs to validate more than 200 emails at once, you should implement a Looping & Merging pattern:

  - **Split into Batches:** Use the **Loop** node to chunk your data into batches of 200.
  - **Loop:** Connect the 'loop' output of the **Loop** node to the **Validate Email Batch** node.
  - **Validate:** Connect the **Validate Email Batch** node output to the **Loop** node input.
  - **Results:** Connect the 'done' output of the **Loop** node to the rest of your workflow.

  #### ⚡ Optional enhancement: Merge Validation Results

  - **Merge Results:** After the loop, you can use a **Merge** node to join the validation results with your original
    items using the email address as the unique identifier.
      - This enriches your original data with the new validation results for easier handling in the rest of your workflow.
      - Connect the output of the node before the loop to 'Input 1' of your **Merge** node.
      - Connect the 'done' output of the **Loop** node to 'Input 2' of your **Merge** node.
      - Configure the **Merge** node to 'Combine By: Matching Fields' and choose `email_address` for Input 1 and `address`
        for Input 2.

  ---

  ### ⏳ Bulk File Webhook Integration (Wait Node)

  See our
  [Example Template: Bulk Validation](https://n8n.io/workflows/11538-bulk-email-validation-and-ai-scoring-with-zerobounce/)

  To efficiently handle bulk files without manual polling:

  1. Add a [Wait node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/#on-webhook-call)
     to your workflow.
  2. Set it to 'On Webhook Call' with the HTTP Method set to 'POST'.
  3. Optional: Add a webhook suffix with the options dropdown e.g. `zerobounce`.
  4. In the **Send File** node, set the `Return URL` field to the auto-generated webhook URL e.g.
     `{{$execution.resumeUrl}}` or `{{$execution.resumeUrl}}/zerobounce`
  5. The workflow will pause and automatically resume when ZeroBounce sends the completion notification.
  6. Optional: The status of webhook calls can be viewed
     here [API Callback Status](https://www.zerobounce.net/members/API/status)

  #### ⚡ Optional enhancement: Add Timeout and Status Checks

  Adding a wait timeout and manual status check can prevent delayed or abandoned executions when there is an issue with a
  callback, e.g. network connectivity issues.

  1. Add a timeout to the **Wait** node (e.g. 5 minutes) using the `Limit Wait Time` field and `Limit Type` set to
     `After Time Interval`
  2. Add a **File Status** node to check on the processing status of the file
  3. Add a **Switch** node with 3 branches checking `{{ $json.file_status }}`:
      1. **`Complete`:** Completed, get the processed file
      2. **`Processing`:** In progress, loop back into your wait node
      3. **`Failed` (or fallback):** The file failed to process, exit and review the reason it failed

  ---

  ## Support

  If you encounter an issue with this node, please [Contact Us](https://www.zerobounce.net/contact-us/).

  ---

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ---

  ## Resources

  * [ZeroBounce Website](https://zerobounce.net)
  * [ZeroBounce API Developer Documentation](https://www.zerobounce.net/docs)
  * [ZeroBounce API Dashboard](https://www.zerobounce.net/members/API)
  * [ZeroBounce API Callback Status](https://www.zerobounce.net/members/API/status)
  * [Example Template: Bulk Validation](https://n8n.io/workflows/11538-bulk-email-validation-and-ai-scoring-with-zerobounce/)
  * [Example Template: Single Validation](https://n8n.io/workflows/11498-validate-and-score-email-addresses-with-zerobounce-ai/)
  * [Example Template: Single Validation Lead Vetting](https://n8n.io/workflows/12601-vet-new-shopify-leads-with-zerobounce-and-sync-qualified-contacts-to-hubspot/)
  * [Example Template: Validate & score leads with ZeroBounce AI before sending Gmail emails](https://n8n.io/workflows/11902-validate-and-score-leads-with-zerobounce-ai-before-sending-gmail-emails/)
  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/#community-nodes)

ai_documentation_summary:
  {"purpose":"Validates and verifies email addresses using the ZeroBounce API to improve deliverability and protect sender reputation, supporting single and bulk operations.","capabilities":["Single email validation","Batch email validation (up to 200)","Bulk file upload validation","AI-driven email scoring (1-10)","Bulk AI scoring","Email finder for professional contacts","Domain search","Activity data retrieval (opens, clicks, unsubscribes)","File status monitoring","Bulk file deletion"],"authentication":"API key required","commonUseCases":["Cleaning email lists before sending campaigns","Improving email deliverability scores","Identifying invalid, disposable, or spam trap addresses","Finding professional email addresses for outreach","Monitoring API usage and credit balances"],"limitations":["Batch validation is limited to 200 emails per request","Bulk operations require file upload/download workflow steps","AI scoring results are based on likelihood of reaching a real person"],"relatedNodes":["Wait Node","Function Node","Code Node","HTTP Request Node"]}


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

updated_at: 2026-04-16 09:43:36
author_name: dust-dev
author_github_url: https://github.com/dust-tt/dust-n8n-node.git
npm_package_name: n8n-nodes-dust
npm_version: 0.1.70
community_fetched_at: 2026-04-16T09:43:36.369Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "agent",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "talkToAssistant",
      "options": [
        {
          "name": "Talk To",
          "value": "talkToAssistant",
          "action": "Talk to an agent",
          "description": "Send a message to an agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadDocument",
      "options": [
        {
          "name": "Upload",
          "value": "uploadDocument",
          "action": "Upload a document",
          "description": "Upload a document to a data source"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Talk To",
      "value": "talkToAssistant",
      "action": "Talk to an agent",
      "description": "Send a message to an agent",
      "resource": "agent"
    },
    {
      "name": "Upload",
      "value": "uploadDocument",
      "action": "Upload a document",
      "description": "Upload a document to a data source",
      "resource": "document"
    }
  ]

npm_readme:
  # n8n-nodes-dust

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

  Dust is a platform for creating custom AI agents that combine leading AI models with company knowledge to help teams work better, leveraging RAG technology for accurate, contextual responses.

  [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)  
  [Example Workflow](#example-workflow)  
  [Authentication](#authentication)  
  [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

  - Talk to an Agent
  - Upload a Document

  ## Credentials

  - Dust Workspace ID
  - Dust API Key
  - Dust Region

  ## Compatibility

  - n8n 1.1.1

  ## Usage

  1. **Add the Dust node to your workflow.**
  2. **Select the operation:**
     - _Talk to an Agent_: Send a message to a Dust agent and receive a response.
     - _Upload a Document_: Upload a document to a Dust data source.
  3. **Configure the required parameters:**
     - For "Talk to an Agent": Provide the message and select the agent.
     - For "Upload a Document": Provide Space ID, Data Source Name, Document ID, and Document Content.
  4. **(Optional) Fill in additional fields** for more control (e.g., username, email, timezone, tags, etc.).
  5. **Execute the workflow** to interact with Dust.

  ## Example Workflow

  ### Talk to an Agent

  - **Operation:** Talk to an Agent
  - **Parameters:**
    - Message: `What is the latest update on project X?`
    - Agent: (Select from dropdown)
    - Additional Fields (optional): Username, Email, Timezone

  **Output:**

  ```
  {
    "agentMessage": "Project X is on track for delivery next week.",
    "conversationUrl": "https://dust.tt/w/{workspaceId}/assistant/{conversationId}",
    "userMessage": { ... }
  }
  ```

  ### Upload a Document

  - **Operation:** Upload a Document
  - **Parameters:**
    - Space ID: `your_space_id`
    - Data Source Name: `your_data_source`
    - Document ID: `doc-123`
    - Document Content: `This is the content of the document.`
    - Additional Fields (optional): Title, MIME Type, Source URL, Tags, Async, Light Document Output

  **Output:**

  ```
  {
    "documentId": "doc-123",
    "status": "uploaded"
  }
  ```

  ## Authentication

  To use this node, you need to set up Dust API credentials in n8n:

  - **API Key:** Get your API key from your [Dust account settings](https://dust.tt/settings/api).
  - **Workspace ID:** Find your workspace ID in the Dust dashboard URL or settings.
  - **Region:** Select `EU` or `US` depending on your workspace location.

  Add these credentials in n8n under the "Dust API" credential type and reference them in the node.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Dust API Documentation](https://docs.dust.tt/reference/api)

  ## Version history

  - 0.1.1
    - Add SkipToolsValidation + rename assitant to agent
  - 0.1.0
    - Initial release

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Dust AI agents, allowing users to send messages to agents and upload documents to Dust data sources.","capabilities":["Send messages to Dust agents and receive contextual responses","Upload documents to Dust data sources with RAG technology","Configure agent interactions with optional fields like username, email, timezone, and tags","Support for async document uploads and light document output"],"authentication":"API Key required (Dust API Key, Workspace ID, and Region)","commonUseCases":["Integrating custom AI agents with company knowledge into n8n workflows","Automating document ingestion into Dust for RAG-based responses","Creating chatbots that leverage specific organizational data"],"limitations":["Compatible only with n8n version 1.1.1","Community node status (not official n8n product)"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


node_type: n8n-nodes-octagon.octagonAgents
package_name: n8n-nodes-octagon
display_name: Octagon
description: Financial AI agents
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: octagonai
author_github_url: https://github.com/OctagonAI/
npm_package_name: n8n-nodes-octagon
npm_version: 1.0.8
community_fetched_at: 2026-04-16T09:43:36.370Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Octagon for n8n

  A professional n8n node that integrates with [Octagon's AI Agents API](https://docs.octagonagents.com/) for financial and market research. This node provides access to Octagon's specialized AI agents for analyzing SEC filings, earnings transcripts, stock data, private market intelligence, and more.

  ## Features

  - **🔄 Smart Router Agent**: Octagon Agent automatically routes queries to the most appropriate specialized agent
  - **15 Specialized Agents**: Access to all Octagon's AI agents for different research domains
  - **🔒 Secure Authentication**: Built-in credential management for API keys
  - **📊 Rich Output**: Returns analysis with source citations and metadata
  - **⚡ Simplified Interface**: Clean, professional UI with essential options only
  - **🛡️ Error Handling**: Graceful error handling with detailed error messages

  ## Available Agents

  ### 🔄 **Smart Router (Default)**

  - **Octagon Agent** (`octagon-agent`) - Intelligent router that automatically selects the best specialized agent for your query

  ### 📈 **Public Market Agents**

  - **SEC Filings Agent** (`octagon-sec-agent`) - Analyzes SEC filings data
  - **Transcripts Agent** (`octagon-transcripts-agent`) - Analyzes earnings call transcripts
  - **Stock Data Agent** (`octagon-stock-data-agent`) - Analyzes stock market data
  - **Financials Agent** (`octagon-financials-agent`) - Analyzes financial statements
  - **Holdings Agent** (`octagon-holdings-agent`) - Analyzes institutional ownership and holdings
  - **Crypto Agent** (`octagon-crypto-agent`) - Analyzes cryptocurrency market data

  ### 🏢 **Private Market Agents**

  - **Companies Agent** (`octagon-companies-agent`) - Provides private company information
  - **Funding Agent** (`octagon-funding-agent`) - Analyzes private company funding data
  - **Funds Agent** (`octagon-funds-agent`) - Analyzes private funds
  - **Deals Agent** (`octagon-deals-agent`) - Analyzes M&A and IPO data
  - **Investors Agent** (`octagon-investors-agent`) - Provides investor information
  - **Debts Agent** (`octagon-debts-agent`) - Analyzes private debts, borrowers, and lenders

  ### 🔍 **Research Agents**

  - **Scraper Agent** (`octagon-scraper-agent`) - Extracts data from websites
  - **Deep Research Agent** (`octagon-deep-research-agent`) - Conducts in-depth research

  ## Installation

  ### Prerequisites

  1. **Octagon API Key**: Get your free API key from [Octagon](https://octagonagents.com)
     - Sign up for an account
     - Go to Settings → API Keys
     - Create a new API key

  2. **n8n Installation**: This node requires n8n v0.198.0 or higher

  ### Install in n8n Cloud

  > **Note**: Only the n8n instance owner can install and manage community nodes. The instance owner is the person who sets up and manages user management. All members of an n8n instance can use already installed community nodes in their workflows.

  #### Install a verified community node

  To install the Octagon community node:

  1. **Access the nodes panel**: Go to the Canvas and open the nodes panel (either by selecting '+' or pressing Tab).

  2. **Search for Octagon**: Search for "Octagon" in the node search. If there is a matching verified community node, you will see a **More from the community** section at the bottom of the nodes panel.

  3. **Select the node**: Select the Octagon node you want to install. This takes you to a detailed view of the node, showing all the supported actions.

  4. **Install**: Select **Install**. This will install the node for your instance and enable all members to use it in their workflows.

  5. **Start using**: You can now add the Octagon node to your workflows.

  #### Alternative installation method

  If the node doesn't appear in the Canvas search:

  1. **Go to Settings**: Navigate to **Settings** → **Community nodes**.
  2. **Install a community node**: Click **Install a community node**.
  3. **Enter package name**: Enter the npm package name: `n8n-nodes-octagon`
  4. **Install**: Click **Install** and wait for the installation to complete.
  5. **Verify**: Go to your workflow editor and search for "Octagon" in the nodes panel.

  > **Important**: Community nodes in n8n Cloud are sandboxed and reviewed for security. Installation may take a few minutes to complete.

  #### Uninstall a community node

  To uninstall the Octagon community node:

  1. **Go to Settings**: Navigate to **Settings** → **Community nodes**.
  2. **Find the node**: Locate the Octagon node in your installed community nodes.
  3. **Open options**: Select **Options** (three dots menu) on the node.
  4. **Uninstall**: Select **Uninstall package**.
  5. **Confirm**: Select **Uninstall Package** in the confirmation modal.

  ## Usage

  ### Quick Start

  1. **Add Node**: Search for "Octagon" in n8n workflow
  2. **Configure**:
     - **Add Credentials**: Go to Credentials → "Octagon API"
     - **Agent**: Use "Octagon Agent (Router)" for automatic routing (default)
     - **Query**: Enter your financial research question
  3. **Execute**: Run the workflow to get AI-powered analysis with citations

  ### Node Configuration

  The node interface is clean and simple:

  - **🎯 Agent**: Select from router or 14 specialized agents
  - **💬 Query**: Your research question (supports complex queries)
  - **⚙️ Additional Options**:
    - Include Token Usage (optional)

  ### Example Queries

  #### Universal Queries (using Octagon Agent Router)

  ```
  Tell me about Apple's latest earnings performance
  What's happening with Tesla's stock price?
  Analyze SpaceX's latest funding round
  Compare Microsoft vs Google revenue growth
  ```

  #### Specialized Agent Queries

  ```
  # SEC Filings Agent
  What were Apple's revenue numbers in Q3 2023?
  Analyze Tesla's latest 10-K filing for risk factors

  # Transcripts Agent
  What did Apple's CEO say about iPhone sales in the latest earnings call?
  Analyze management guidance from Tesla's Q4 2023 earnings call

  # Stock Data Agent
  What's the 52-week high and low for AAPL?
  Compare Tesla's stock performance to the S&P 500 this year

  # Companies Agent (Private Market)
  Tell me about Stripe's latest funding round
  What is the current valuation of SpaceX?
  ```

  ### Output Format

  The node returns a JSON object with the following structure:

  ```json
  {
  	"agent": "octagon-agent",
  	"query": "Tell me about Apple's latest earnings",
  	"analysis": "Apple reported strong Q4 2023 results with revenue of $89.5 billion...",
  	"sources": [
  		{
  			"order": 1,
  			"name": "Apple Inc. (10-Q) - 2023-Q4, Page: 10",
  			"url": "https://octagon-sec-filings.s3.amazonaws.com/..."
  		}
  	],
  	"metadata": {
  		"apiType": "responses",
  		"timestamp": "2024-01-15T10:30:00.000Z"
  	},
  	"usage": {
  		"prompt_tokens": 150,
  		"completion_tokens": 800,
  		"total_tokens": 950
  	}
  }
  ```

  ## Best Practices

  1. **🎯 Use the Router**: Start with "Octagon Agent (Router)" - it automatically selects the best specialized agent
  2. **📝 Be Specific**: The more specific your query, the more accurate the response
  3. **🔄 One Task Per Query**: Focus each query on a single analytical task for best results
  4. **📅 Provide Context**: Include relevant context like time periods, specific metrics, or companies
  5. **🔗 Follow Citations**: Always check the source citations for verification

  ## Error Handling

  The node includes comprehensive error handling:

  - **🔑 Authentication Errors**: Invalid API keys, expired tokens
  - **🌐 Network Errors**: Connection issues, timeouts, rate limits
  - **📝 Query Errors**: Malformed or empty queries
  - **🤖 Agent Errors**: Agent-specific errors or limitations

  Errors are returned in a structured format:

  ```json
  {
  	"error": true,
  	"message": "Authentication failed. Please check your API key.",
  	"query": "Your original query",
  	"agent": "octagon-agent",
  	"timestamp": "2024-01-15T10:30:00.000Z"
  }
  ```

  ## Troubleshooting

  ### Common Issues

  1. **Node not appearing**: Restart n8n after installation
  2. **Icon not loading**: Clear browser cache
  3. **Authentication errors**: Verify API key in credentials
  4. **Rate limiting**: Check your Octagon plan limits

  ### Support Channels

  - **📚 Documentation**: [Octagon API Documentation](https://docs.octagonagents.com/)
  - **🐛 Issues**: [GitHub Issues](https://github.com/octagon/octagon-n8n-node/issues)
  - **💬 Support**: Contact Octagon support for API-related questions
  - **📧 Email**: support@octagonagents.com

  ## License

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

  ## Contributing

  Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting pull requests.

  ## Changelog

  See [CHANGELOG.md](CHANGELOG.md) for release history.

  ---

  **⚠️ Note**: This node requires an active Octagon API subscription. Some agents may have usage limits or require premium access. Get started with a free API key at [octagonagents.com](https://octagonagents.com).

ai_documentation_summary:
  {"purpose":"This n8n node integrates with Octagon's AI Agents API to perform financial and market research by routing queries to specialized agents for analyzing SEC filings, earnings transcripts, stock data, private market intelligence, and more.","capabilities":["Automatic query routing to specialized agents via Smart Router","Analysis of SEC filings and 10-K documents","Analysis of earnings call transcripts","Stock market data and financial statement analysis","Private company information and funding analysis","Cryptocurrency market data analysis","M&A and IPO deal analysis","Website data scraping","In-depth research capabilities","Source citations and metadata in output"],"authentication":"API key required (stored in n8n credentials)","commonUseCases":["Analyzing company financial performance and earnings","Researching private market deals and funding rounds","Extracting data from SEC filings and earnings calls","Comparing stock performance and market trends","Investigating institutional ownership and holdings"],"limitations":["Requires n8n v0.198.0 or higher","Requires Octagon API key access","Community node installation may take time in n8n Cloud","Only instance owners can install community nodes in n8n Cloud"],"relatedNodes":["n8n-nodes-octagon.octagonAgents","n8n-nodes-octagon.octagonAgentsRouter","n8n-nodes-octagon.octagonSecAgent","n8n-nodes-octagon.octagonTranscriptsAgent","n8n-nodes-octagon.octagonStockDataAgent"]}


node_type: n8n-nodes-zarmoney.zarmoney
package_name: n8n-nodes-zarmoney
display_name: ZarMoney
description: Consume ZarMoney API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: zarmoney
author_github_url: https://github.com/zarmoneyaccounting/
npm_package_name: n8n-nodes-zarmoney
npm_version: 0.1.5
community_fetched_at: 2026-04-16T09:43:36.372Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "estimate",
      "options": [
        {
          "name": "Estimate",
          "value": "estimate"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        },
        {
          "name": "Sales Order",
          "value": "salesOrder"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Returns a single user by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "description": "Returns many users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an estimate",
          "description": "Returns a single estimate by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many estimates",
          "description": "Returns many estimates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "estimate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an invoice",
          "description": "Returns a single invoice by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many invoices",
          "description": "Returns many invoices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a sales order",
          "description": "Returns a single sales order by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many sales orders",
          "description": "Returns many sales orders"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "salesOrder"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Returns a single user by ID",
      "resource": "user"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "description": "Returns many users",
      "resource": "user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an estimate",
      "description": "Returns a single estimate by ID",
      "resource": "estimate"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many estimates",
      "description": "Returns many estimates",
      "resource": "estimate"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an invoice",
      "description": "Returns a single invoice by ID",
      "resource": "invoice"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many invoices",
      "description": "Returns many invoices",
      "resource": "invoice"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a sales order",
      "description": "Returns a single sales order by ID",
      "resource": "salesOrder"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many sales orders",
      "description": "Returns many sales orders",
      "resource": "salesOrder"
    }
  ]

npm_readme:
  # n8n-nodes-zarmoney

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

  [ZarMoney](https://www.zarmoney.com) is the most powerful all-in-one accounting, invoicing & inventory solution.

  [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)  
  - [License](#license)  

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

  ## Operations
  - Get one or more estimates
  - Get one or more invoices
  - Get one or more sales orders
  - Get one or more users

  ## Triggers
  - Create, update, and delete triggers for customers, estimates, invoices and sales orders.

  ## Credentials
  To use this node, you need to have a [ZarMoney](https://www.zarmoney.com) account and set up a new OAuth2.0 app under the development section of your ZarMoney account:

  - Go to the [ZarMoney Developer](https://accounts.zarmoney.com/Developers/Dashboard/) section.
  - Click on the "Create a new app" link, and follow the instructions.
  - The "Redirect URI" can be obtained from the connection popup of "n8n".
  - Copy and paste the Client ID and Secret from your ZarMoney app to the n8n connection settings.

  ## Compatibility
  The `n8n-nodes-zarmoney` has been tested with n8n `v1.115.3`.

  ## License
  [MIT](LICENSE.md)


node_type: @contaazul/n8n-nodes-contaazul.contaAzul
package_name: @contaazul/n8n-nodes-contaazul
display_name: Conta Azul API
description: Allows making requests to the Conta Azul API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: contaazul-admin
author_github_url: https://github.com/ContaAzul/n8n-nodes-contaazul.git
npm_package_name: @contaazul/n8n-nodes-contaazul
npm_version: 0.3.22
community_fetched_at: 2026-04-16T09:43:36.373Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getAllServices",
      "options": [
        {
          "name": "Create Person",
          "value": "createPerson"
        },
        {
          "name": "Create Product",
          "value": "createProduct"
        },
        {
          "name": "Create Sale",
          "value": "createSale"
        },
        {
          "name": "Create Service",
          "value": "createService"
        },
        {
          "name": "Search Categories",
          "value": "getCategories"
        },
        {
          "name": "Search Cost Centers",
          "value": "getCostCenters"
        },
        {
          "name": "Search Expenses By Filter",
          "value": "getExpensesByFilter"
        },
        {
          "name": "Search Financial Accounts",
          "value": "getFinancialAccounts"
        },
        {
          "name": "Search Installment By ID",
          "value": "getInstallmentById"
        },
        {
          "name": "Search Person By ID",
          "value": "getPersonById"
        },
        {
          "name": "Search Persons By Filter",
          "value": "getPersonsByFilter"
        },
        {
          "name": "Search Product By ID",
          "value": "getProductById"
        },
        {
          "name": "Search Products By Filter",
          "value": "getProductsByFilter"
        },
        {
          "name": "Search Revenues By Filter",
          "value": "getRevenuesByFilter"
        },
        {
          "name": "Search Sale By ID",
          "value": "getSaleById"
        },
        {
          "name": "Search Sales By Filter",
          "value": "getSalesByFilter"
        },
        {
          "name": "Search Service By ID",
          "value": "getServiceById"
        },
        {
          "name": "Search Services By Filter",
          "value": "getAllServices"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Person",
      "value": "createPerson"
    },
    {
      "name": "Create Product",
      "value": "createProduct"
    },
    {
      "name": "Create Sale",
      "value": "createSale"
    },
    {
      "name": "Create Service",
      "value": "createService"
    },
    {
      "name": "Search Categories",
      "value": "getCategories"
    },
    {
      "name": "Search Cost Centers",
      "value": "getCostCenters"
    },
    {
      "name": "Search Expenses By Filter",
      "value": "getExpensesByFilter"
    },
    {
      "name": "Search Financial Accounts",
      "value": "getFinancialAccounts"
    },
    {
      "name": "Search Installment By ID",
      "value": "getInstallmentById"
    },
    {
      "name": "Search Person By ID",
      "value": "getPersonById"
    },
    {
      "name": "Search Persons By Filter",
      "value": "getPersonsByFilter"
    },
    {
      "name": "Search Product By ID",
      "value": "getProductById"
    },
    {
      "name": "Search Products By Filter",
      "value": "getProductsByFilter"
    },
    {
      "name": "Search Revenues By Filter",
      "value": "getRevenuesByFilter"
    },
    {
      "name": "Search Sale By ID",
      "value": "getSaleById"
    },
    {
      "name": "Search Sales By Filter",
      "value": "getSalesByFilter"
    },
    {
      "name": "Search Service By ID",
      "value": "getServiceById"
    },
    {
      "name": "Search Services By Filter",
      "value": "getAllServices"
    }
  ]

npm_readme:
  # n8n-nodes-contaazul

  This is an n8n community node that allows integration with the Conta Azul API in your workflows.

  Conta Azul is a business management platform that offers solutions for financial control, sales, products, services, and customer management. This node allows you to automate operations such as sales searches, product creation, customer management, and financial queries.

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

  [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

  ### Services

  - **Search service by filter**: Lists services with text search filters and pagination
  - **Search service by ID**: Gets details of a specific service
  - **Create service**: Creates a new service

  ### Sales

  - **Search sale by filter**: Lists sales with text search filters and pagination
  - **Search sale by ID**: Gets details of a specific sale
  - **Create sale**: Creates a new sale with items, customer, and payment method

  ### People - Customers/Suppliers

  - **Search people by filter**: Lists customer/supplier people with search filters
  - **Search person by ID**: Gets details of a specific person
  - **Create person**: Creates a new customer/supplier person

  ### Products

  - **Search products by filter**: Lists products with search filters
  - **Search product by id** : Get details of a specific product
  - **Create product**: Creates a new product

  ### Financial

  - **Search financial accounts**: Lists all financial accounts
  - **Search revenues by filter**: Lists revenues with filters
  - **Search expenses by filter**: Lists expenses with filters
  - **Search installment by ID**: Gets details of a specific installment
  - **Search categories**: Lists all available categories
  - **Search cost centers**: Lists all cost centers

  ## Credentials

  To use this node, you need a Conta Azul account and configure OAuth2 credentials.

  ### Prerequisites

  1. Have an active Conta Azul account
  2. Access the Conta Azul developer panel
  3. Create an application to get the Client ID and Client Secret

  ### Credential Configuration

  1. In n8n, go to **Settings** > **Credentials**
  2. Click **Add Credential**
  3. Select **Conta Azul OAuth2 API**
  4. Fill in the fields:
     - **Client ID**: Your Conta Azul Client ID
     - **Client Secret**: Your Conta Azul Client Secret
     - **Scope**: `openid profile aws.cognito.signin.user.admin` (default)
     - **Auth URL**: `https://auth.contaazul.com/oauth2/authorize` (default)
     - **Token URL**: `https://auth.contaazul.com/oauth2/token` (default)
  5. Click **Save** and authorize the application

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested versions**: 1.0.0, 1.1.0, 1.2.0
  - **Node.js**: >=20.15

  ## Usage

  ### Example: Search Recent Sales

  1. Add the **Conta Azul** node to your workflow
  2. Configure credentials
  3. Select the **Search sale by filter** operation
  4. Configure search parameters (optional)
  5. Execute the workflow

  ### Example: Create a New Sale

  1. Add the **Conta Azul** node to your workflow
  2. Configure credentials
  3. Select the **Create sale** operation
  4. Fill in required data:
     - Customer ID
     - Payment method
     - Sale items
  5. Execute the workflow

  ### Example: Sync Products

  1. Use the **Conta Azul** node with **Search products by filter** operation
  2. Connect with other nodes to process data
  3. Use webhooks for automatic synchronization

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Conta Azul API Documentation](https://developers.contaazul.com/guide)
  - [Conta Azul Developer Portal](https://developers-portal.contaazul.com)
  - [Try n8n](https://docs.n8n.io/try-it-out/)

  ## Version History

  ### v0.3.2

  - Fixed n8n-workflow dependency configuration
  - Removed postinstall script
  - Removed resolutions and overrides
  - Updated to latest n8n-workflow version

  ### v0.3.1

  - Initial implementation of the node
  - Support for basic operations: search services, sales, people, products, categories, cost centers, and financial
  - Integration with Conta Azul OAuth2

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of financial and business operations by connecting to the Conta Azul API for managing sales, customers, products, and financial data.","capabilities":["Search services by filter or ID","Create new services","Search sales by filter or ID","Create new sales with items, customer, and payment method","Search customers/suppliers by filter or ID","Create new customer/supplier records","Search products by filter or ID","Create new products","Search financial accounts","Search revenues and expenses by filter"],"authentication":"OAuth2","commonUseCases":["Automating sales data retrieval and creation","Managing customer and supplier records","Synchronizing product catalogs","Tracking financial accounts, revenues, and expenses","Automating financial reporting workflows"],"limitations":["Requires an active Conta Azul account and developer panel access","Requires manual configuration of OAuth2 credentials (Client ID and Secret)","Minimum n8n version requirement is 1.0.0"],"relatedNodes":["HTTP Request","Webhook","Function Item"]}


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

updated_at: 2026-04-16 09:43:36
author_name: bcharleson
author_github_url: https://github.com/Instantly-ai/
npm_package_name: n8n-nodes-instantly
npm_version: 0.1.7543
community_fetched_at: 2026-04-16T09:43:36.374Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Analytics",
          "value": "analytics"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Lead",
          "value": "lead"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a campaign",
          "description": "Create a campaign"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a campaign",
          "description": "Delete a campaign"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a campaign",
          "description": "Get a campaign"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many campaigns",
          "description": "Get many campaigns"
        },
        {
          "name": "Launch",
          "value": "launch",
          "action": "Launch a campaign",
          "description": "Launch (activate) a campaign"
        },
        {
          "name": "Pause",
          "value": "pause",
          "action": "Pause a campaign",
          "description": "Pause a campaign"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a campaign",
          "description": "Update a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Lead to Campaign",
          "value": "addToCampaign",
          "action": "Add lead to campaign",
          "description": "Create a lead and add to campaign"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a lead",
          "description": "Create a lead"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "description": "Delete a lead"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a lead",
          "description": "Get a lead"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many leads",
          "description": "Get many leads"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a lead",
          "description": "Update a lead"
        },
        {
          "name": "Update Interest Status",
          "value": "updateInterestStatus",
          "action": "Update lead interest status",
          "description": "Update lead interest status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many Accounts",
          "value": "getMany",
          "action": "Get many email accounts",
          "description": "Get many email accounts"
        },
        {
          "name": "Get Single Account",
          "value": "get",
          "action": "Get a single email account",
          "description": "Get a single email account by email address"
        },
        {
          "name": "Pause Account",
          "value": "pause",
          "action": "Pause an email account",
          "description": "Pause an email account to stop sending"
        },
        {
          "name": "Resume Account",
          "value": "resume",
          "action": "Resume an email account",
          "description": "Resume a paused email account"
        },
        {
          "name": "Create Account",
          "value": "create",
          "action": "Create an email account",
          "description": "Create a new email account"
        },
        {
          "name": "Delete Account",
          "value": "deleteAccount",
          "action": "Delete an email account",
          "description": "Delete an email account"
        },
        {
          "name": "Enable Warmup",
          "value": "enableWarmup",
          "action": "Enable account warmup",
          "description": "Enable warmup for an email account"
        },
        {
          "name": "Disable Warmup",
          "value": "disableWarmup",
          "action": "Disable account warmup",
          "description": "Disable warmup for an email account"
        },
        {
          "name": "Update Account",
          "value": "update",
          "action": "Update an email account",
          "description": "Update account settings and details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCampaignAnalytics",
      "options": [
        {
          "name": "Get Campaign Analytics",
          "value": "getCampaignAnalytics",
          "action": "Get campaign analytics",
          "description": "Get analytics for a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "analytics"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a campaign",
      "description": "Create a campaign",
      "resource": "campaign"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a campaign",
      "description": "Delete a campaign",
      "resource": "campaign"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a campaign",
      "description": "Get a campaign",
      "resource": "campaign"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many campaigns",
      "description": "Get many campaigns",
      "resource": "campaign"
    },
    {
      "name": "Launch",
      "value": "launch",
      "action": "Launch a campaign",
      "description": "Launch (activate) a campaign",
      "resource": "campaign"
    },
    {
      "name": "Pause",
      "value": "pause",
      "action": "Pause a campaign",
      "description": "Pause a campaign",
      "resource": "campaign"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a campaign",
      "description": "Update a campaign",
      "resource": "campaign"
    },
    {
      "name": "Add Lead to Campaign",
      "value": "addToCampaign",
      "action": "Add lead to campaign",
      "description": "Create a lead and add to campaign",
      "resource": "lead"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a lead",
      "description": "Create a lead",
      "resource": "lead"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "description": "Delete a lead",
      "resource": "lead"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a lead",
      "description": "Get a lead",
      "resource": "lead"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many leads",
      "description": "Get many leads",
      "resource": "lead"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a lead",
      "description": "Update a lead",
      "resource": "lead"
    },
    {
      "name": "Update Interest Status",
      "value": "updateInterestStatus",
      "action": "Update lead interest status",
      "description": "Update lead interest status",
      "resource": "lead"
    },
    {
      "name": "Get Many Accounts",
      "value": "getMany",
      "action": "Get many email accounts",
      "description": "Get many email accounts",
      "resource": "account"
    },
    {
      "name": "Get Single Account",
      "value": "get",
      "action": "Get a single email account",
      "description": "Get a single email account by email address",
      "resource": "account"
    },
    {
      "name": "Pause Account",
      "value": "pause",
      "action": "Pause an email account",
      "description": "Pause an email account to stop sending",
      "resource": "account"
    },
    {
      "name": "Resume Account",
      "value": "resume",
      "action": "Resume an email account",
      "description": "Resume a paused email account",
      "resource": "account"
    },
    {
      "name": "Create Account",
      "value": "create",
      "action": "Create an email account",
      "description": "Create a new email account",
      "resource": "account"
    },
    {
      "name": "Delete Account",
      "value": "deleteAccount",
      "action": "Delete an email account",
      "description": "Delete an email account",
      "resource": "account"
    },
    {
      "name": "Enable Warmup",
      "value": "enableWarmup",
      "action": "Enable account warmup",
      "description": "Enable warmup for an email account",
      "resource": "account"
    },
    {
      "name": "Disable Warmup",
      "value": "disableWarmup",
      "action": "Disable account warmup",
      "description": "Disable warmup for an email account",
      "resource": "account"
    },
    {
      "name": "Update Account",
      "value": "update",
      "action": "Update an email account",
      "description": "Update account settings and details",
      "resource": "account"
    },
    {
      "name": "Get Campaign Analytics",
      "value": "getCampaignAnalytics",
      "action": "Get campaign analytics",
      "description": "Get analytics for a campaign",
      "resource": "analytics"
    }
  ]

npm_readme:
  # n8n-nodes-instantly

  This is an n8n community node for integrating with the [Instantly](https://instantly.ai) API v2. It provides comprehensive access to Instantly's email outreach platform, allowing you to manage campaigns, accounts, leads, and analytics directly from n8n workflows.

  ## Installation

  ### Community Nodes (Recommended)

  For users on n8n v0.187.0+, install directly through the n8n interface:

  1. Go to **Settings > Community Nodes**
  2. Click **Install**
  3. Enter `n8n-nodes-instantly`
  4. Click **Download**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-instantly
  ```

  ## Quick Setup

  1. **Get API Key**: Go to [Instantly Dashboard](https://app.instantly.ai) → Settings → Integrations → API
  2. **Add Node**: In n8n, search for "Instantly" in the node palette
  3. **Configure Credentials**: Enter your Instantly API key
  4. **Select Operation**: Choose from the available resources and operations below

  ## Usage Examples

  ### Create and Launch a Campaign
  1. **Create Campaign**: Set up your email sequences and targeting
  2. **Add Leads**: Import or create leads for your campaign
  3. **Launch Campaign**: Activate your campaign to start sending emails

  ### Account Management Workflow
  1. **Create Account**: Add new email accounts with SMTP settings
  2. **Enable Warmup**: Start the warmup process for new accounts
  3. **Monitor Status**: Check account health and sending limits
  4. **Pause/Resume**: Control account activity as needed

  ### Lead Management Process
  1. **Import Leads**: Create leads with custom variables
  2. **Assign to Campaigns**: Add leads to specific email campaigns
  3. **Track Engagement**: Monitor lead responses and interest levels
  4. **Update Status**: Manage lead lifecycle and follow-up actions

  ## Supported Operations

  ### 📧 **Campaign Management**
  - **Create Campaign**: Create new email campaigns with sequences and variants
  - **Get Campaign**: Retrieve campaign details by ID
  - **Get Many Campaigns**: List all campaigns with pagination
  - **Update Campaign**: Modify campaign settings and content
  - **Delete Campaign**: Remove campaigns
  - **Launch Campaign**: Start campaign execution
  - **Pause Campaign**: Pause running campaigns

  ### 👤 **Account Management**
  - **Create Account**: Add new email accounts with SMTP configuration
  - **Get Account**: Retrieve account details by email
  - **Get Many Accounts**: List all email accounts
  - **Update Account**: Modify account settings and limits
  - **Delete Account**: Remove email accounts
  - **Pause Account**: Stop account from sending emails
  - **Resume Account**: Reactivate paused accounts
  - **Enable Warmup**: Start email warmup process ✨
  - **Disable Warmup**: Stop email warmup process ✨

  ### 🎯 **Lead Management**
  - **Create Lead**: Add new leads with custom variables and data
  - **Get Lead**: Retrieve detailed lead information by ID
  - **Get Many Leads**: List leads with advanced filtering and pagination
  - **Update Lead**: Modify lead details, status, and custom variables
  - **Delete Lead**: Remove leads from your database
  - **Add Lead to Campaign**: Create and assign leads to specific campaigns
  - **Update Interest Status**: Manage lead engagement and interest levels

  ### 📊 **Analytics & Reporting**
  - **Get Campaign Analytics**: Retrieve comprehensive campaign performance metrics and statistics

  ### 📬 **Unibox Email Management**
  - **Get Many Unibox Messages**: List inbox messages with advanced filtering (search, campaign, account, read status, email type, lead, sort)
  - **Get Unibox Message**: Retrieve single message details by ID
  - **Update Unibox Message**: Modify message properties and metadata
  - **Delete Unibox Message**: Remove messages from inbox
  - **Get Unread Count**: Count unread messages in inbox
  - **Mark Thread as Read**: Mark entire email thread as read
  - **Reply to Unibox Message**: Send email replies directly from n8n

  ## Key Features

  🚀 **Full API v2 Support**: Complete integration with Instantly's latest API
  📊 **Comprehensive Operations**: 31 operations across campaigns, accounts, leads, analytics, and email management
  ⚡ **Advanced Account Management**: Full warmup control and SMTP configuration
  🎯 **Campaign Control**: Launch, pause, and manage email campaigns with precision
  📈 **Lead Management**: Complete lead lifecycle management and campaign assignment
  📬 **Email Management**: Unified inbox with thread management, filtering, and reply capabilities
  🔄 **Pagination Support**: Handle large datasets efficiently with built-in pagination
  ⚡ **Robust Error Handling**: Detailed error feedback and validation
  🎯 **Resource Locators**: Intuitive account and campaign selection interface
  📊 **Bulk Operations**: Manage multiple accounts and leads simultaneously
  🔒 **Secure Integration**: API key-based authentication with proper credential management

  ## Requirements

  - n8n v0.187.0 or higher
  - Instantly account with API access (Hypergrowth plan or above)
  - Valid Instantly API key

  ## Resources

  - [Instantly API Documentation](https://developer.instantly.ai/api/v2)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [GitHub Repository](https://github.com/Instantly-ai/n8n-nodes-instantly)

  ## Support

  - **GitHub Issues**: [Report bugs or request features](https://github.com/Instantly-ai/n8n-nodes-instantly/issues)
  - **Email**: brandon@instantly.ai

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables full integration with the Instantly API v2 to manage email outreach campaigns, accounts, leads, and inbox messages directly from n8n workflows.","capabilities":["Create, retrieve, update, delete, and launch email campaigns","Manage email accounts including SMTP configuration and warmup control","Create, filter, update, and assign leads to campaigns","Track campaign analytics and performance metrics","Access and manage Unibox inbox messages with filtering and reply capabilities","Support for pagination in list operations","Robust error handling and validation"],"authentication":"API key required","commonUseCases":["Automating cold email outreach campaigns","Managing email account warmup processes","Tracking lead engagement and campaign performance","Handling email replies from an automated inbox"],"limitations":["Requires Instantly account with Hypergrowth plan or above","Requires n8n version 0.187.0 or higher","Requires manual installation for versions prior to 0.187.0"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-gls.gls
package_name: n8n-nodes-gls
display_name: GLS
description: Returns the nearest GLS Points when given latitude, longitude and limit.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: gls-it-service
author_github_url: https://github.com/GLS-IT-Service/
npm_package_name: n8n-nodes-gls
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.375Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "psm",
      "options": [
        {
          "name": "GLS Point",
          "value": "psm"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getByGeoCoordinates",
      "options": [
        {
          "name": "Get GLS Points by Geo Coordinates",
          "value": "getByGeoCoordinates",
          "action": "Get gls points by geo coordinates",
          "description": "Get GLS Points by latitude, longitude and country code"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "psm"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get GLS Points by Geo Coordinates",
      "value": "getByGeoCoordinates",
      "action": "Get gls points by geo coordinates",
      "description": "Get GLS Points by latitude, longitude and country code",
      "resource": "psm"
    }
  ]

npm_readme:
  # 📦 n8n-nodes-gls: GLS Points Finder Node

  [![NPM version][npm-version-image]][npm-url]
  [![License][license-image]][license-url]

  This repository contains a custom n8n node that helps you find the nearest GLS Points based on a given Geo Coordinates and limit. The node integrates with the official GLS Parcel Shop Management API.

  ## 🚀 Features

  - Find nearby GLS Points based on Geo Coordinates
  - Limit the number of results returned
  - Easy integration with your n8n workflows

  ## 📋 Prerequisites

  - [Node.js](https://nodejs.org/en/) (>= 16.0.0)
  - [n8n](https://n8n.io/) (>= 0.214.0)
  - [npm](https://www.npmjs.com/) or [pnpm](https://pnpm.io/)

  ## 🔧 Installation

  ### Setting Up Node.js with NVM

  Since n8n is built on Node.js, we'll need to have the correct version installed. n8n requires Node.js version 22.15.0, and the most flexible way to manage Node.js versions is through NVM (Node Version Manager).

  NVM allows us to install and switch between different Node.js versions effortlessly. To install NVM, we can use the following command:

  ```bash
  curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
  ```

  After installing NVM, we can install and use the specific Node.js version that n8n requires. This approach is particularly useful if we work with multiple Node.js projects that require different versions.

  ```bash
  nvm install v22.15.0
  nvm use v22.15.0
  ```

  ### Local Installation: Direct Integration

  For developers who prefer direct installation or want to integrate n8n into an existing Node.js environment, we can install n8n globally using npm:

  ```bash
  npm install n8n -g
  npm install -g pnpm@latest-10
  npx only-allow pnpm
  ```

  ### Clone the Repository

  ```bash
  # Clone the repository
  git clone https://github.com/GLS-IT-Service/n8n-nodes-gls.git n8n-nodes-gls

  # Navigate to the project directory
  cd n8n-nodes-gls

  # Install dependencies
  pnpm install
  ```

  ## 📁 Project Structure

  The project is organized as follows:

  ```
  n8n-nodes-gls/
  ├── credentials/
  │   └── PsmApi.credentials.ts   # API credentials configuration
  ├── nodes/
  │   └── Gls/
  │       ├── Gls.node.ts         # Main node implementation
  │       ├── GenericFunctions.ts # Shared utility functions
  │       └── gls.png             # Node icon
  ├── index.ts                    # Main entry point
  ├── package.json                # Project metadata and dependencies
  └── tsconfig.json               # TypeScript configuration
  ```

  ## 🛠️ Development

  ### Building the Node

  To build the node, run:

  ```bash
  # Build the node
  pnpm run build
  ```

  This compiles the TypeScript code and copies the icon files to the `dist` directory.

  ### Running Tests (not implemented)

  ```bash
  pnpm test
  ```

  ## 📦 Deployment

  n8n supports custom nodes through the custom extensions directory. To deploy your node:

  ### 1. Create a Custom Extensions Directory

  ```bash
  mkdir -p ~/.n8n/custom/n8n-nodes-gls
  ```

  ### 2. Copy the Built Node

  ```bash
  cp -R dist/* ~/.n8n/custom/n8n-nodes-gls
  ```

  ### 3. Configure n8n

  ```bash
  # Set environment variables for n8n
  export N8N_CUSTOM_EXTENSIONS="~/.n8n/custom"
  # For development purposes only
  export N8N_SECURE_COOKIE=false
  ```

  ```bash
  # Link your node to n8n
  pnpm link

  # In your n8n installation directory (~/.n8n/custom)
  pnpm link n8n-nodes-gls
  ```

   ### 4.Restart n8n

  Restart your n8n instance for the changes to take effect.

  ## 🔌 Usage

  1. In your n8n workflow, add a new node and search for "GLS Point"
  2. Configure the node with your API credentials
  3. Enter the required parameters (address, country code, results limit)
  4. Execute the workflow to retrieve nearby GLS Points

  ## 📄 License

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

  ## 👥 Contributing

  Contributions are welcome! Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing to the project.

  [npm-url]: https://www.npmjs.com/package/n8n-nodes-gls
  [npm-version-image]: https://img.shields.io/npm/v/n8n-nodes-gls.svg
  [license-image]: https://img.shields.io/npm/l/n8n-nodes-gls.svg
  [license-url]: LICENSE.md

ai_documentation_summary:
  {"purpose":"Finds the nearest GLS Parcel Shop Points based on provided latitude, longitude coordinates and a result limit by integrating with the GLS Parcel Shop Management API.","capabilities":["Search for nearby GLS Points using Geo Coordinates","Filter results by a specified limit","Integrate with GLS official API"],"authentication":"API key required (via credentials configuration)","commonUseCases":["Locating nearest parcel drop-off points","Planning delivery routes","Finding service locations for customers"],"limitations":["Requires Node.js version 22.15.0 or higher","Requires custom node installation via n8n custom extensions directory","Requires manual deployment and configuration of API credentials"],"relatedNodes":["Custom n8n nodes","GLS API integration nodes"]}


node_type: n8n-nodes-llmlayer.llmLayer
package_name: n8n-nodes-llmlayer
display_name: LLMLayer
description: Search and answer questions using LLMLayer API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: yassine.khazzan
author_github_url: https://github.com/YassKhazzan/
npm_package_name: n8n-nodes-llmlayer
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:36.376Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "answer",
      "options": [
        {
          "name": "Answer",
          "value": "answer",
          "description": "Search and generate AI answers"
        },
        {
          "name": "Web Search",
          "value": "webSearch",
          "description": "Search the web for information"
        },
        {
          "name": "Scrape",
          "value": "scrape",
          "description": "Scrape content from a URL"
        },
        {
          "name": "YouTube",
          "value": "youtube",
          "description": "Get YouTube video transcript"
        },
        {
          "name": "PDF",
          "value": "pdf",
          "description": "Extract content from PDF"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate an answer",
          "description": "Generate an answer based on search results"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search the web",
          "description": "Search the web"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeUrl",
      "options": [
        {
          "name": "Scrape URL",
          "value": "scrapeUrl",
          "action": "Scrape content from URL",
          "description": "Scrape content from a URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTranscript",
      "options": [
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get YouTube transcript",
          "description": "Get YouTube video transcript"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtube"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "extractContent",
      "options": [
        {
          "name": "Extract Content",
          "value": "extractContent",
          "action": "Extract PDF content",
          "description": "Extract text from PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate an answer",
      "description": "Generate an answer based on search results",
      "resource": "answer"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search the web",
      "description": "Search the web",
      "resource": "webSearch"
    },
    {
      "name": "Scrape URL",
      "value": "scrapeUrl",
      "action": "Scrape content from URL",
      "description": "Scrape content from a URL",
      "resource": "scrape"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get YouTube transcript",
      "description": "Get YouTube video transcript",
      "resource": "youtube"
    },
    {
      "name": "Extract Content",
      "value": "extractContent",
      "action": "Extract PDF content",
      "description": "Extract text from PDF",
      "resource": "pdf"
    }
  ]

npm_readme:
  # n8n-nodes-llmlayer

  An n8n **Community Node** for [LLMLayer](https://llmlayer.ai) — a Search & Answer API that combines web search with AI-generated, source-grounded responses.

  ---

  ## Features

  * **AI‑Powered Answers**: Generate comprehensive answers using popular models (GPT‑4o, Claude 3.5, Gemini, etc.).
  * **Web Search**: General, news, shopping, videos, images, and scholar search types.
  * **Content Extraction**: Scrape public pages and return Markdown/HTML, or request PDFs/screenshots.
  * **YouTube Transcripts**: Retrieve transcripts from YouTube videos.
  * **PDF Text**: Extract text and metadata from PDFs.

  > Availability of specific models/features depends on your LLMLayer account and current API support.

  ---

  ## Compatibility

  * **n8n**: 1.68+ recommended
  * **Node.js**: 20+ recommended (align with n8n’s LTS baseline)

  ---

  ## Installation

  ### A) n8n Cloud / In‑Editor Browse

  If/when this package is **verified by n8n**, you can install it directly from the editor:

  1. **Settings → Community Nodes → Browse**
  2. Search for `LLMLayer` or `n8n-nodes-llmlayer`
  3. Click **Install**

  > If it’s not yet verified, use the self‑hosted options below.

  ### B) Self‑Hosted n8n

  **From the UI**

  1. **Settings → Community Nodes → Install**
  2. Enter `n8n-nodes-llmlayer`
  3. Install and restart n8n if prompted

  **Using npm inside your instance**

  ```bash
  npm install n8n-nodes-llmlayer
  ```

  **Using Docker (inside the container)**

  ```bash
  docker exec -it <n8n-container> npm install n8n-nodes-llmlayer
  ```

  Then restart your container.

  **Via environment variable (install at startup)**

  ```bash
  # Add to your n8n environment
  N8N_COMMUNITY_PACKAGES=n8n-nodes-llmlayer
  ```

  ---

  ## Authentication

  1. Sign up at **[https://app.llmlayer.ai](https://app.llmlayer.ai)** and create an API key.
  2. In n8n, go to **Credentials → New → LLMLayer**.
  3. Paste your API key and **Save**.

  > This node sends your queries/URLs to LLMLayer; review your privacy and data‑handling requirements before production use.

  ---

  ## Node Overview

  The node exposes the following **resources**:

  ### 1) Answer

  Generate AI answers grounded in real‑time search.

  * **Query** — Question/prompt
  * **Model** — Pick from supported models
  * **Answer Type** — `markdown` | `html` | `json`
  * **Search Type** — `general` | `news`
  * **System Prompt** — Optional instructions
  * **Location / Date Filter / Recency** — Tune search context
  * **Citations / Return Sources** — Include sources and documents
  * **Temperature / Max Tokens** — Output control

  ### 2) Web Search

  Perform targeted searches.

  * **Search Type** — `general`, `news`, `shopping`, `videos`, `images`, `scholar`
  * **Query**, **Location**, **Recency**
  * **Domain Filters** — Include/exclude specific domains

  ### 3) Scrape

  Extract content from public web pages.

  * **URL**
  * **Format** — `markdown`, `html`, `pdf`, `screenshot`
  * **Include Images / Links**

  ### 4) YouTube

  Fetch video transcripts.

  * **URL**
  * **Language** (optional)

  ### 5) PDF

  Extract text from a PDF URL.

  * **URL**

  ---

  ## Usage Examples

  ### Answer (Markdown)

  ```json
  {
    "resource": "answer",
    "query": "What are the latest developments in AI?",
    "model": "openai/gpt-4o-mini",
    "answer_type": "markdown",
    "citations": true,
    "return_sources": true
  }
  ```

  ### News Search (Past Week, US)

  ```json
  {
    "resource": "webSearch",
    "query": "artificial intelligence breakthroughs",
    "search_type": "news",
    "recency": "week",
    "location": "us"
  }
  ```

  ### Structured JSON Answer

  ```json
  {
    "resource": "answer",
    "query": "List top 5 programming languages",
    "model": "anthropic/claude-3-5-sonnet-latest",
    "answer_type": "json",
    "json_schema": {
      "type": "object",
      "properties": {
        "languages": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {"type": "string"},
              "rank": {"type": "number"},
              "use_cases": {"type": "array"}
            },
            "required": ["name", "rank"]
          }
        }
      },
      "required": ["languages"]
    }
  }
  ```

  ---

  ## Error Handling & Tips

  * Enable **Continue On Fail** to keep workflows running on non‑critical errors.
  * Common issues:

      * **401/403** → Invalid/expired API key
      * **429** → Rate limit exceeded (add a Wait node or retry)
      * **Network timeouts** → Increase node timeout or add retries
      * **Access‑restricted pages** (Scrape) → Paywalls/blocks/dynamic content may limit extraction

  ---

  ## Support

  * **Docs**: [https://docs.llmlayer.ai](https://docs.llmlayer.ai)
  * **Issues**: [https://github.com/YassKhazzan/n8n-nodes-llmlayer/issues](https://github.com/YassKhazzan/n8n-nodes-llmlayer/issues)
  * **Email**: [support@llmlayer.ai](mailto:support@llmlayer.ai)

  ---

  ## License

  MIT

  ---

  ## Author

  Yassine Khazzan — [LLMLayer](https://llmlayer.ai)

  ---

  ## Changelog

  ### 1.0.2

  * Polish: README, metadata, minor fixes

  ### 1.0.1

  * Passed security scan

  ### 1.0.0

  * Initial release with Answer, Web Search, Scrape, YouTube, PDF

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with the LLMLayer API to perform web search, scrape content, extract PDFs, and generate AI-powered answers grounded in real-time sources.","capabilities":["Generate AI answers with citations and source grounding","Perform web searches across multiple types (general, news, shopping, videos, images, scholar)","Scrape public web pages and extract content in Markdown, HTML, PDF, or screenshot formats","Retrieve YouTube video transcripts","Extract text and metadata from PDF URLs","Configure output formats (Markdown, HTML, JSON) with custom schemas","Filter search results by location, date, and domain","Control AI generation via temperature and token limits"],"authentication":"API key required (configured via n8n Credentials)","commonUseCases":["Researching current events with source citations","Extracting structured data from web pages","Analyzing YouTube content via transcripts","Processing PDF documents for text extraction","Generating grounded answers for RAG workflows"],"limitations":["Availability of specific models and features depends on the user's LLMLayer account and API support","Scraping may be limited by paywalls, access restrictions, or dynamic content on target pages","Rate limits may require retry logic or wait nodes to prevent 429 errors","Not yet verified by n8n for direct installation in n8n Cloud (may require self-hosted installation)"],"relatedNodes":["n8n-nodes-webhook.webhook","n8n-nodes-http.request","n8n-nodes.wait.wait","n8n-nodes.code.code"]}


node_type: n8n-nodes-deapi.deapiTrigger
package_name: n8n-nodes-deapi
display_name: deAPI Trigger
description: Triggers workflows based on the status of the generation job from deAPI.
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: deapi
author_github_url: https://github.com/deapi-ai/
npm_package_name: n8n-nodes-deapi
npm_version: 0.3.0
community_fetched_at: 2026-04-16T09:43:36.377Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  ![Banner image](https://github.com/user-attachments/assets/398eeb5d-cbf7-452c-96ae-825850c32730)

  # n8n-nodes-deapi

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

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

  deAPI is a unified API platform providing instant access to open-source AI models (FLUX, LTX Video, Whisper and more) through a decentralized GPU network. One API key to access thousands of GPUs with up to 20x lower costs.

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

  ## Installation

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

  ## Credentials

  To use this node, you need to configure the following credentials:

  | Field | Description |
  |-------|-------------|
  | **API Key** | Your deAPI API key. Get it from the [deAPI Quickstart Guide](https://docs.deapi.ai/quickstart#2-obtain-your-api-key). |
  | **Webhook Secret** | Secret used to verify webhook signatures. Configure it at [deAPI Webhook Settings](https://deapi.ai/settings/webhooks). |

  ## Operations

  ### Image

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate an image from a text prompt | FLUX.1 Schnell, FLUX.2 Klein 4B, Z-Image Turbo |
  | **Remove Background** | Remove the background from an image | Ben2 |
  | **Upscale** | Increase image resolution by 4x | RealESRGAN x4 |

  ### Video

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate a video from text or image(s) | LTX-Video 0.9.8, LTX-2 19B, LTX-2.3 22B |
  | **Generate From Audio** | Generate a video conditioned on an audio file and text prompt | LTX-2 22B |
  | **Replace Person in Video** | Replace a person in a video with a character from a reference image | Wan2.2-Animate 14B |
  | **Transcribe** | Transcribe video to text (YouTube, Twitch, X, Kick URLs or file upload) | Whisper Large V3 |

  ### Audio

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Clone a Voice** | Clone a voice from a reference audio and generate speech | Qwen3 TTS VoiceClone |
  | **Generate a Speech** | Convert text to speech audio | Kokoro, Chatterbox, Qwen3 TTS Custom Voice, Qwen3 TTS Voice Design |
  | **Transcribe** | Transcribe audio file to text | Whisper Large V3 |

  ### Prompt

  | Operation | Description |
  |-----------|-------------|
  | **Image Prompt Booster** | Optimize a prompt for text-to-image generation |
  | **Video Prompt Booster** | Optimize a prompt for text/image-to-video generation |

  ## How It Works

  Generation operations (image, video, transcription) use a webhook-based waiting pattern:

  1. The node submits a generation request to deAPI with a webhook URL
  2. The workflow pauses while deAPI processes the request
  3. When deAPI completes the job, it sends a webhook notification
  4. The workflow resumes with the generated content (binary file or text)

  This approach ensures efficient resource usage - the workflow doesn't actively poll for results.

  ## Compatibility

  - Tested with n8n version 2.3.4
  - Webhook-based operations require n8n to be accessible via HTTPS

  ## Example Workflow

  An example n8n workflow demonstrating all available operations is included in [`examples/deAPI_guide.json`](examples/deAPI_guide.json). Import it into your n8n instance to get started quickly:

  1. Download [`deAPI_guide.json`](https://raw.githubusercontent.com/deapi-ai/n8n-nodes-deapi/main/examples/deAPI_guide.json) from the GitHub repository
  2. In n8n, go to **Workflows** > **Import from File**
  3. Select the downloaded `deAPI_guide.json`
  4. Set up your deAPI credentials (API Key + Webhook Secret)
  5. Explore the example nodes and sticky notes for usage instructions

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [deAPI Documentation](https://docs.deapi.ai/)
  - [deAPI Website](https://deapi.ai/)
  - [GitHub Repository](https://github.com/deapi-ai/n8n-nodes-deapi)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows based on the completion status of generation jobs (image, video, audio) submitted to the deAPI platform.","capabilities":["Image generation (FLUX models, Z-Image Turbo)","Background removal (Ben2)","Image upscaling (RealESRGAN x4)","Video generation from text or images (LTX-Video, LTX-2)","Video generation from audio and text (LTX-2)","Audio transcription from video URLs or files (Whisper)","Voice cloning for speech generation (Qwen3 TTS)","Text-to-speech generation (Kokoro, Chatterbox, Qwen3 TTS)","Audio transcription from files (Whisper)","Image prompt optimization"],"authentication":"API key required (deAPI API Key) and Webhook Secret","commonUseCases":["Automated content creation workflows using open-source AI models","Cost-effective image and video generation pipelines","Audio transcription and voice cloning automation","Prompt optimization for better AI generation results"],"limitations":["Requires n8n to be accessible via HTTPS for webhook-based operations","Tested only with n8n version 2.3.4","Webhook-based waiting pattern may introduce latency during job processing"],"relatedNodes":["n8n-nodes-deapi.deapiImage","n8n-nodes-deapi.deapiVideo","n8n-nodes-deapi.deapiAudio","n8n-nodes-deapi.deapiPrompt"]}


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

updated_at: 2026-04-16 09:43:36
author_name: zebi15
author_github_url: https://github.com/Zebi15/n8n-autocalls.git
npm_package_name: n8n-nodes-autocalls
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:36.378Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Assistant",
          "value": "assistant"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "make",
      "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"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistant"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Make",
      "value": "make",
      "action": "Make a phone call",
      "description": "Make a phone call using an AI assistant",
      "resource": "call"
    },
    {
      "name": "Get Assistants",
      "value": "getAssistants",
      "action": "Get assistants",
      "description": "Get all assistants from your account",
      "resource": "assistant"
    }
  ]

npm_readme:
  # n8n-nodes-autocalls

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

  Autocalls is an AI-powered calling platform that enables you to automate phone calls using intelligent virtual assistants.

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

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

  ## Installation

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

  ## Operations

  This package provides the Autocalls node with a unified interface for both actions and triggers:

  ### Autocalls Node

  When you add the **Autocalls** node to your workflow, n8n will present you with a submenu to choose between:

  #### Actions (Regular Node)
  - **Call**: Make phone calls using AI assistants
    - **Make**: Initiate phone calls using AI assistants
      - Select an assistant from your Autocalls account (outbound assistants only)
      - Specify the phone number to call
      - Add variables with name/value pairs to customize the conversation

  - **Assistant**: Manage assistants
    - **Get Assistants**: Retrieve assistants from your Autocalls account
      - Fetches all assistants from your account
      - Returns each assistant as a separate item with details like name, ID, status, etc.
      - Regular action that can be used in any workflow

  #### Triggers (Trigger Node)
  - **Call**: Monitor phone call events
    - **Call Ended**: Receive notifications when phone calls end
      - Select an assistant to monitor
      - Receives call details including duration, status, and transcript
      - Gets extracted variables from the conversation
      - Provides input variables that were used
      - Real-time webhook notifications

  ## Credentials

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

  1. Sign up for an account at [Autocalls](https://app.autocalls.ai/)
  2. Generate an API key from your account settings
  3. In n8n, create new credentials of type "Autocalls API"
  4. Enter your API key

  The credentials are automatically validated when you save them.

  ## Compatibility

  - Minimum n8n version: 0.36.1
  - Tested with n8n version: 1.0.0+

  ## Usage

  ### Adding the Autocalls Node

  1. Add the **Autocalls** node to your workflow
  2. n8n will present you with a submenu to choose between **Action** and **Trigger**
  3. Select the type you need:
     - **Action**: For making phone calls (requires input connection)
     - **Trigger**: For receiving events or fetching data (no input connection needed)

  ### Using Actions

  #### Making Phone Calls

  1. Choose **Action** from the submenu
  2. Select **Resource**: Call, **Operation**: Make
  3. Choose an outbound assistant from the dropdown (assistants are loaded from your Autocalls account)
  4. Enter the phone number to call
  5. Add variables using the name/value interface to personalize the conversation (e.g., Name: "customer_name", Value: "John")

  #### Getting Assistants

  1. Choose **Action** from the submenu
  2. Select **Resource**: Assistant, **Operation**: Get Assistants
  3. The action will fetch all assistants from your account
  4. Each assistant will be returned as a separate item with details like name, ID, status, etc.
  5. Can be used like any regular action in your workflows

  ### Using Triggers

  The **Autocalls Call Ended Trigger** receives webhook notifications when phone calls are completed. This trigger provides real-time data about call outcomes, extracted variables, and conversation transcripts.

  #### What Data You Receive

  When a call ends, the trigger receives a webhook with the following information:

  - **Call Details**: ID, duration, status
  - **Phone Numbers**: Customer and assistant phone numbers
  - **Extracted Variables**: AI-extracted data from the conversation
  - **Input Variables**: Variables passed to the assistant before the call
  - **Transcript**: Full conversation transcript
  - **Recording URL**: Link to call recording (if enabled)
  - **Timestamps**: When the call started and ended
  - **Lead Information**: Lead and campaign details (for campaign calls)

  #### Setting Up the Trigger

  1. Choose **Trigger** from the submenu
  2. Select an assistant to monitor from the dropdown
  3. The trigger will automatically generate a webhook URL
  4. **Important**: You must manually register this webhook URL in your Autocalls assistant settings
  5. Go to your assistant settings in Autocalls dashboard
  6. Add the webhook URL ,enable webhook status and save the configuration

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Autocalls Documentation](https://docs.autocalls.ai/)
  * [Autocalls API Reference](https://docs.autocalls.ai/api-reference/)
  * [Autocalls Platform](https://app.autocalls.ai/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of phone calls using AI assistants from the Autocalls platform, supporting both initiating calls and receiving real-time call event notifications.","capabilities":["Initiate outbound phone calls using AI assistants","Personalize conversations via custom variables","Retrieve and manage assistant configurations","Monitor call events and receive real-time webhook notifications","Access call details including duration, status, and transcript","Extract variables from conversation transcripts"],"authentication":"API key required","commonUseCases":["Automated customer outreach and sales calls","Appointment scheduling via AI voice assistants","Lead generation through campaign-based calling","Post-call analysis and data extraction"],"limitations":["Requires manual registration of webhook URLs in the Autocalls dashboard for triggers","Only outbound assistants can be selected for making calls","Requires separate Autocalls account setup and API key generation"],"relatedNodes":["Webhook","HTTP Request","Split In Batches","Set"]}


node_type: @orq-ai/n8n-nodes-orq.orqDeployment
package_name: @orq-ai/n8n-nodes-orq
display_name: Orq Deployment
description: Invoke Orq AI deployment
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: sohrabhosseini
author_github_url: https://github.com/orq-ai/orqkit.git
npm_package_name: @orq-ai/n8n-nodes-orq
npm_version: 1.1.0
community_fetched_at: 2026-04-16T09:43:36.379Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # @orq-ai/n8n-nodes-orq

  Community nodes for integrating [Orq AI](https://orq.ai) with n8n workflows. These nodes provide seamless access to Orq AI's deployment and knowledge base capabilities within your automation workflows.

  ## Features

  - **Deployment Invocation**: Execute Orq AI deployments with messages, context, and inputs
  - **Knowledge Base Search**: Search and retrieve content from Orq knowledge bases
  - **Dynamic Configuration**: Automatically load available deployments and knowledge bases
  - **Multi-modal Support**: Send text and image content to vision-capable models
  - **Metadata Filtering**: Advanced filtering options for knowledge base searches
  - **Error Handling**: Built-in error handling with continue-on-fail support

  ## Installation

  ### Community Node Installation

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

  ### Manual Installation

  ```bash
  bun add @orq-ai/n8n-nodes-orq
  ```

  ### Docker Installation

  If using n8n with Docker, set the environment variable:

  ```bash
  N8N_COMMUNITY_NODE_PACKAGES=@orq-ai/n8n-nodes-orq
  ```

  ### Local Development Installation

  For local development and testing with n8n:

  1. Clone and navigate to the package:
  ```bash
  git clone https://github.com/orq-ai/orqkit.git
  cd orqkit/packages/n8n-nodes-orq
  ```

  2. Install dependencies:
  ```bash
  bun install
  ```

  3. Build the nodes:
  ```bash
  bunx nx build n8n-nodes-orq
  ```

  4. Start n8n with custom nodes:
  ```bash
  N8N_CUSTOM_EXTENSIONS="$(pwd)" n8n start
  ```

  The nodes will appear as "OrqDeployment" and "OrqKnowledgeBaseSearch" in the n8n node panel.

  ## Authentication

  1. Sign up or log in at [Orq AI](https://orq.ai)
  2. Navigate to your account settings to generate an API key
  3. In n8n, create new credentials:
     - Go to **Credentials** → **New**
     - Select **Orq API**
     - Enter your API key
     - Save the credentials

  ## Available Nodes

  ### Orq Deployment

  Invoke Orq AI deployments to process messages with AI models.

  #### Configuration

  - **Deployment Key**: Select from your available deployments or specify via expression
  - **Messages**: Add conversation messages with roles (User, System, Assistant)
  - **Context**: Set key-value pairs for deployment routing
  - **Inputs**: Provide values for prompt template variables

  #### Message Types

  - **Text Messages**: Standard text content for all roles
  - **Image Messages**: For User role only, supporting:
    - Image URLs
    - Base64 encoded images
    - Optional text descriptions with images

  #### Example Use Cases

  - Generate content based on templates
  - Process customer inquiries
  - Analyze images with vision models
  - Chain multiple AI operations

  ### Orq Knowledge Base Search

  Search and retrieve relevant content from your Orq knowledge bases.

  #### Configuration

  - **Knowledge Base**: Select from your available knowledge bases
  - **Query**: Search query to find relevant content
  - **Metadata Filters**: Optional filtering with AND/OR conditions or custom JSON

  #### Filter Types

  - **None**: No filtering, return all matching results
  - **AND**: All filter conditions must match
  - **OR**: Any filter condition must match
  - **Custom JSON**: Advanced recursive filter structures

  #### Example Use Cases

  - Semantic search across documents
  - Context retrieval for RAG applications
  - Content discovery and recommendations
  - Metadata-based filtering

  ## Workflow Examples

  ### Basic Text Generation

  ```yaml
  1. Trigger (e.g., Webhook)
  2. Orq Deployment
     - Deployment: "content-generator"
     - Input: { topic: "{{$json.topic}}" }
     - Message: "Generate an article"
  3. Output (e.g., Google Sheets)
  ```

  ### Knowledge-Enhanced Response

  ```yaml
  1. Trigger (e.g., Form submission)
  2. Orq Knowledge Base Search
     - Query: "{{$json.question}}"
     - Knowledge Base: "product-docs"
  3. Orq Deployment
     - Context from search results
     - Generate informed response
  4. Send response (e.g., Email)
  ```

  ### Image Analysis Pipeline

  ```yaml
  1. Image input (e.g., S3 trigger)
  2. Orq Deployment
     - Vision model deployment
     - Image URL from trigger
     - Analyze and extract data
  3. Store results (e.g., Database)
  ```

  ## Development

  ```bash
  # Build the package
  bunx nx build n8n-nodes-orq

  # Run development mode
  bunx nx dev n8n-nodes-orq

  # Test locally with n8n
  bun run test:local
  ```

  ## Resources

  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
  - [Orq AI Documentation](https://docs.orq.ai)
  - [Orq AI Platform](https://orq.ai)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Orq AI by allowing workflow execution of AI deployments and searching knowledge bases with support for multi-modal inputs.","capabilities":["Invoke Orq AI deployments with messages, context, and inputs","Search and retrieve content from Orq knowledge bases","Support for text and image content (vision models)","Advanced metadata filtering for knowledge base searches","Dynamic configuration of deployments and knowledge bases","Built-in error handling with continue-on-fail support"],"authentication":"API key required (via Orq API credentials in n8n)","commonUseCases":["Generate content based on templates","Process customer inquiries","Analyze images with vision models","Semantic search across documents for RAG applications","Chain multiple AI operations in a workflow"],"limitations":[],"relatedNodes":["Orq Knowledge Base Search","Webhook Trigger","Google Sheets Output","Database Store"]}


node_type: n8n-nodes-extruct.extruct
package_name: n8n-nodes-extruct
display_name: Extruct AI
description: Add companies to Extruct tables and run enrichment
category: Community
development_style: declarative
version: 3
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: zodackwand
author_github_url: https://github.com/extruct-ai/
npm_package_name: n8n-nodes-extruct
npm_version: 2.1.0
community_fetched_at: 2026-04-16T09:43:36.380Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-extruct

  ![Extruct AI Banner](icons/banner.png)

  **n8n community node for Extruct AI**

  This node lets you enrich and fetch company data from Extruct AI, right inside your n8n workflows.
  Define your own table structure, add any custom columns, and get exactly the data you need.

  ### Instant preview

  Suppose you want to enrich a company by website and get its funding, team size, recent news headline, patent count, and head of HR LinkedIn profile.


  ```json
  {
    "company_name": {
      "value": {
        "answer": "Stripe",
        "source": [
          "https://en.wikipedia.org/wiki/Stripe,_Inc."
        ],
        "explanation": "Full company name as listed on the Stripe Wikipedia page."
      }
    },
    "company_website": {
      "value": {
        "answer": "https://stripe.com/",
        "source": [
          "https://en.wikipedia.org/wiki/Stripe,_Inc.",
          "https://stripe.com"
        ],
        "explanation": "Canonical homepage confirmed on Wikipedia and the stripe.com domain."
      }
    },
    "recent_news_headline": {
      "value": {
        "answer": "Stripe’s first employee, the founder of fintech Increase, sort of bought a bank",
        "source": [
          "https://techcrunch.com/2025/07/03/stripes-first-employee-the-founder-of-fintech-increase-sort-of-bought-a-bank"
        ],
        "explanation": "Headline from a TechCrunch article published July 3, 2025, as the latest news about Stripe."
      }
    },
    "team_size": {
      "value": {
        "answer": "8550",
        "source": [
          "https://techcrunch.com/2025/01/21/stripe-is-laying-off-300-people-but-says-it-still-plans-to-hire-in-2025"
        ],
        "explanation": "About 8,550 employees after a January 2025 layoff of 300 people, per TechCrunch."
      }
    },
    "patent_count": {
      "value": {
        "answer": "247",
        "source": [
          "https://insights.greyb.com/stripe-patents"
        ],
        "explanation": "Total of 247 patents held globally by Stripe, according to GreyB Insights."
      }
    },
    "funding_amount": {
      "value": {
        "answer": "$9.81B",
        "source": [
          "https://tracxn.com/d/companies/stripe/__uahG_IGnVgsUsOG-f8otYHLkOkliWg7YFhJ5ZkNIkpI/funding-and-investors",
          "https://www.crunchbase.com/organization/stripe/company_financials"
        ],
        "explanation": "Raised $9.81 B over 24 rounds, including a $6.87 B round in March 2023, per Tracxn and Crunchbase."
      }
    },
    "head_of_hr_linkedin": {
      "value": {
        "answer": "https://www.linkedin.com/in/maiaj",
        "source": [
          "https://www.comparably.com/companies/stripe/maia-josebachvili",
          "https://www.linkedin.com/in/maiaj"
        ],
        "explanation": "Confirmed as Head of People at Stripe via Comparably and LinkedIn."
      }
    }
  }
  ```



  ## What is Extruct AI?

  **Extruct AI** is a data enrichment platform that lets you create custom tables with any columns you want, and then enrich them with company data from the web and public sources.  

  - **Any info you want:** Define your own columns — get emails, social links, funding, tech stack, or anything else.
  - **No limits:** Works for any company, in any country, any industry.
  - **Built for automation:** Integrate with CRMs, lead gen, analytics, and more.



  ## Features

  - Add a company to your Extruct table and trigger enrichment
  - Poll for enrichment completion automatically
  - Instantly fetch the enriched row with all your custom columns
  - Use in any n8n workflow



  ## Installation

  Follow the [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/) for installing custom nodes.



  ## Usage

  1. **Create an Extruct table:**
     - You can start from a template table or create your own from scratch at [Extruct AI](https://extruct.ai).
     - Add any custom columns you need — you have full control over the table structure and fields.
  2. **Get your Table ID:**
     - After creating the table, copy its Table ID from the Extruct dashboard, or simply grab it from the table page URL.
  3. **Use in n8n:**
     - In the Extruct node, paste your Table ID.
     - Enter the company name or website you want to enrich:
       - You can type it manually in the node field,
       - Or pass it dynamically from a Form Trigger,
       - Or from any other node in your workflow — just connect it to the Extruct node.
     - Run the workflow — the node will add the company, trigger enrichment, and return the enriched data for your custom columns.

  ## Quick Demo

  ![n8n node demo](https://github.com/zodackwand/extruct_screenshots/blob/main/demo.gif?raw=true)


  ## Operations

  ### Enrich Company Info

  - **Input:**  
    - Table ID (your Extruct table)
    - Company Input (website or name)
  - **Output:**  
    - Returns a fully enriched row with all your custom columns as clean JSON, ready to use in your n8n workflow.

  **How it works:**  
  1. Adds a company to your Extruct table  
  2. Triggers enrichment  
  3. Waits for completion  
  4. Returns the enriched row (with all your custom fields)



  ## Output
  The node returns clean JSON with all enriched fields for the company, matching your custom table columns.



  ## Extruct Table Templates
  Use these ready-to-go table templates for your n8n workflows:

  - [Sales and Business Development](https://app.extruct.ai/tables/shared/jlcBdFwKXrC8uw21)  
    *Track leads, enrich company profiles, and automate sales research.*

  - [Complete Startup Overview](https://app.extruct.ai/tables/shared/gQlqQK4pQgPDmk81)  
    *Get a 360° view of startups with funding, team, and product data.*

  - [Social Enrichment](https://app.extruct.ai/tables/shared/VfGemEC1BujAIJx8)  
    *Enrich companies with social profiles, Twitter, LinkedIn, and more.*

  Open a template, get the Table ID, and use it in your node.



  ## Credentials

  - **Extruct API Token**  
    - Sign up at [extruct.ai](https://extruct.ai)
    - Get your API token from the dashboard
    - Add it as a credential in n8n



  ## Resources

  - [Extruct AI website](https://extruct.ai)
  - [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Extruct AI API Docs](https://www.extruct.ai/docs/extruct-ai/product)



  ## Compatibility

  - **n8n:** Tested with n8n v1.100.0

ai_documentation_summary:
  {"purpose":"This n8n community node enriches company data by adding companies to a custom Extruct AI table, triggering automated enrichment, and returning structured JSON with custom columns like funding, team size, and social profiles.","capabilities":["Add companies to custom Extruct AI tables","Trigger automated data enrichment","Poll for enrichment completion status","Return enriched data as clean JSON","Support custom table structures with any columns","Fetch company data from multiple web sources","Integrate with n8n workflows via dynamic inputs"],"authentication":"Extruct API Token (requires manual entry in n8n credentials)","commonUseCases":["Sales lead enrichment","Startup research and analysis","CRM data population","Competitor intelligence gathering","Automated social profile extraction"],"limitations":["Requires manual setup of Extruct AI account and API token","Enrichment results depend on data availability in Extruct's sources","Custom table structure must be defined in Extruct AI dashboard before use","May require waiting for enrichment completion before data is returned"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n Form Trigger","n8n Webhook"]}


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

updated_at: 2026-04-16 09:43:36
author_name: recram
author_github_url: https://github.com/therecram/
npm_package_name: n8n-nodes-recram
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.380Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "form",
      "options": [
        {
          "name": "Form",
          "value": "form"
        },
        {
          "name": "Response",
          "value": "response"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all forms",
          "description": "List all forms"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a form",
          "description": "Get a form by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "form"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all responses",
          "description": "List all responses"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a response",
          "description": "Get a response by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "response"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all forms",
      "description": "List all forms",
      "resource": "form"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a form",
      "description": "Get a form by ID",
      "resource": "form"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all responses",
      "description": "List all responses",
      "resource": "response"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a response",
      "description": "Get a response by ID",
      "resource": "response"
    }
  ]

npm_readme:
  # n8n-nodes-recram

  This is an n8n community node for [RecRam](https://recram.com) — the AI-powered video survey platform.

  ## Features

  ### RecRam Trigger
  Starts a workflow when a RecRam event occurs:
  - **Form Response Completed** — Triggered after all video processing and AI analysis
  - **Form Response Submitted** — Triggered immediately on submission

  ### RecRam (Actions)
  Interact with the RecRam API:
  - **Forms**: List all, Get by ID
  - **Responses**: List all, Get by ID

  ## Setup

  1. In RecRam, go to **Settings → API Keys** and create a new key with `webhooks:read`, `webhooks:write`, `forms:read`, `answers:read` scopes
  2. In n8n, add **RecRam API** credentials with your API key
  3. Add a **RecRam Trigger** node and select the event type
  4. Activate the workflow — webhook is automatically registered

  ## Installation

  ### Community Nodes (recommended)

  1. Go to **Settings → Community Nodes**
  2. Select **Install a community node**
  3. Enter `n8n-nodes-recram`
  4. Agree to the risks and install

  ### Manual

  ```bash
  cd ~/.n8n/nodes
  npm install n8n-nodes-recram
  ```

  ## Resources

  - [RecRam Website](https://recram.com)
  - [RecRam Help Center](https://recram.com/help)

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community n8n node that allows users to interact with the RecRam API for video survey data, including triggering workflows on form events and managing forms/responses.","capabilities":["Trigger workflow on Form Response Completed event","Trigger workflow on Form Response Submitted event","List all forms","Get a form by ID","List all responses","Get a response by ID"],"authentication":"API key required (with webhooks:read, webhooks:write, forms:read, answers:read scopes)","commonUseCases":["Automate video survey data collection workflows","Process AI-analyzed video responses immediately upon submission","Retrieve and analyze survey form data programmatically"],"limitations":["Community node (may have fewer updates or support than official nodes)","Requires specific API scopes to be granted in RecRam settings"],"relatedNodes":["RecRam API","RecRam Trigger"]}


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

updated_at: 2026-04-16 09:43:36
author_name: thanks-io
author_github_url: https://github.com/thanks-io/
npm_package_name: n8n-nodes-thanks-io
npm_version: 0.1.7
community_fetched_at: 2026-04-16T09:43:36.381Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "recipient",
      "options": [
        {
          "name": "Recipient",
          "value": "recipient"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create recipient",
          "description": "Add recipient to mailing list"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "recipient"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create recipient",
      "description": "Add recipient to mailing list",
      "resource": "recipient"
    }
  ]

npm_readme:
  # n8n-nodes-thanks-io

  This repository contains the official thanks.io community node for n8n.

  [thanks.io](https://www.thanks.io) provides everything you need for direct mail success, including AI-realistic handwritten postcards, letters, and notecards; QR tracking; delivery notifications; and powerful automation— all at super competitive pricing.

  ## Installation

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

  ## Credentials

  You must have a thanks.io API key to use this node. You can register for a free account and obtain an API key here:

  - https://www.thanks.io

  Once registered, generate a Personal Access Token in thanks.io:

  - Dashboard → Settings → API Access  
    https://dashboard.thanks.io/profile/api

  ![Generate thanks.io Token](images/token-create.png)

  Then in n8n, create a credential named **“Thanks.io API”** and paste in your token.


  ![Enter thanks.io Token](images/credentials-setup.png)

  ## Operations / Usage

  ### Add Recipient to Existing Mailing List 
    Easily add recipients to a mailing list and trigger thanks.io’s campaign automation. Campaigns can be created and edited in the [thanks.io Dashboard](https://dashboard.thanks.io/).

  ![Add Recipient to Existing Mailing Lis](images/new-recipient-setup.png)

  ## Compatibility

  Tested against n8n version **2.2.1**

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [thanks.io technical documentation](https://docs.thanks.io)
  - [thanks.io product documentation](https://help.thanks.io)

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the thanks.io API to manage direct mail campaigns, including adding recipients to mailing lists and triggering automation workflows.","capabilities":["Add recipients to existing mailing lists","Trigger thanks.io campaign automation","Manage direct mail campaigns via API"],"authentication":"API key required (Personal Access Token from thanks.io dashboard)","commonUseCases":["Automating thank-you note distribution","Integrating mailing list management into n8n workflows","Triggering delivery notifications for direct mail campaigns"],"limitations":["Campaign creation and editing must be done manually in the thanks.io dashboard","Node tested against n8n version 2.2.1"],"relatedNodes":["n8n-nodes-thanks-io.thanksIo"]}


node_type: @lnkbio/n8n-nodes-lnkbio.lnkBio
package_name: @lnkbio/n8n-nodes-lnkbio
display_name: Lnk.Bio
description: Create and manage links on Lnk.Bio
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: lnkbiodevs
author_github_url: https://github.com/gimucco/n8n-nodes-lnkbio.git
npm_package_name: @lnkbio/n8n-nodes-lnkbio
npm_version: 0.2.2
community_fetched_at: 2026-04-16T09:43:36.382Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Link",
          "value": "create",
          "action": "Create a new link",
          "description": "Create a new Lnk"
        },
        {
          "name": "Delete Link",
          "value": "delete",
          "action": "Delete an existing link",
          "description": "Delete an existing Lnk"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Link",
      "value": "create",
      "action": "Create a new link",
      "description": "Create a new Lnk"
    },
    {
      "name": "Delete Link",
      "value": "delete",
      "action": "Delete an existing link",
      "description": "Delete an existing Lnk"
    }
  ]

npm_readme:
  # n8n-nodes-lnkbio

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

  Lnk.Bio is a linkinbio service used by more than 1.5M creators to manage their social media links.

  [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)  
  [Version history](#version-history)

  ## Installation

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

  ## Operations

  Lnk.Bio only support 2 Actions: Create a Lnk, and Delete a Lnk.

  There are no triggers, as Lnk.Bio is considered output-only when it comes to automation services.

  ## Credentials

  You need a Client ID and Client Secret from Lnk.Bio to correctly authenticate your API calls.

  1. Register a free account from https://lnk.bio/signup
  2. Verify your email
  3. Navigate to Tools => Developers/API
  4. Create a new Public App to retrieve the Client ID and Client Secret.

  Do note that if you're only looking to automate your own Lnk.Bio account, you won't need to go through app review.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Lnk.Bio help site](https://help.lnk.bio)
  * [Lnk.Bio API specs](https://api.lnk.bio)

  ## Version history

  * 0.2.2 - Added scheduled_from and scheduled_to parameters to align with the latest version of the Lnk.Bio APIs. The new parameters allow users to schedule links in advance and/or set an expiration date.

  * 0.1.9 - Add pairedItem to response handling in LnkBio node

  * 0.1.7 - Updated deprecated requestOAuth2 to httpRequestWithAuthentication; Implemented continueOnFail(); Removed includeCredentialsOnAuthorization and bodyFormat;

  * 0.1.5 - Credentials fix

  * 0.1.3 - Credentials fix

  * 0.1.2 - Lint Fixes

  * 0.1.0 - initial version

ai_documentation_summary:
  {"purpose":"A community node for creating and managing social media links on Lnk.Bio within n8n workflows.","capabilities":["Create new Lnk.Bio links","Delete existing Lnk.Bio links","Schedule links in advance","Set expiration dates for links"],"authentication":"OAuth2 (Client ID and Client Secret required)","commonUseCases":["Automating link-in-bio profile updates","Managing creator social media links","Scheduling temporary link campaigns"],"limitations":["Only supports create and delete actions (no triggers)","Output-only integration type","Requires manual app registration for automation"],"relatedNodes":["n8n HTTP Request node","n8n Schedule node"]}


node_type: n8n-nodes-htmlcsstopdf.htmlcsstopdf
package_name: n8n-nodes-htmlcsstopdf
display_name: HTML to PDF
description: Convert HTML to PDF, Parse PDF, Extract Data, and Manage PDF Security
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: htmlcsstoimage
author_github_url: https://github.com/PdfMunk/n8n-nodes-htmltopdf.git
npm_package_name: n8n-nodes-htmlcsstopdf
npm_version: 3.2.3
community_fetched_at: 2026-04-16T09:43:36.383Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "pdfCreation",
      "options": [
        {
          "name": "PDF Creation",
          "value": "pdfCreation",
          "description": "Create PDF documents from various sources"
        },
        {
          "name": "PDF Manipulation",
          "value": "pdfManipulation",
          "description": "Merge, split, or compress PDF documents"
        },
        {
          "name": "PDF Security",
          "value": "pdfSecurity",
          "description": "Lock and unlock password-protected PDFs"
        },
        {
          "name": "PDF Extraction & Parsing",
          "value": "pdfParsing",
          "description": "Parse PDFs into structured JSON data"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "htmlToPdf",
      "options": [
        {
          "name": "HTML to PDF",
          "value": "htmlToPdf",
          "action": "Convert HTML to PDF",
          "description": "Generate PDF from HTML/CSS"
        },
        {
          "name": "URL to PDF",
          "value": "urlToPdf",
          "action": "Capture a screenshot of a website in PDF format",
          "description": "Capture Website Screenshot to PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfCreation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "mergePdfs",
      "options": [
        {
          "name": "Compress PDF",
          "value": "compressPdf",
          "action": "Compress PDF",
          "description": "Compress a PDF to reduce file size"
        },
        {
          "name": "Convert Image to PDF",
          "value": "convertImageToPdf",
          "action": "Convert image to PDF",
          "description": "Convert one or more images into a PDF"
        },
        {
          "name": "Convert PDF to Image",
          "value": "convertPdfToImage",
          "action": "Convert PDF to image",
          "description": "Convert PDF pages into image files"
        },
        {
          "name": "Merge PDFs",
          "value": "mergePdfs",
          "action": "Merge multiple PDFS into one",
          "description": "Merge multiple PDF files into one"
        },
        {
          "name": "Split PDF",
          "value": "splitPdf",
          "action": "Split PDF",
          "description": "Split or extract pages from a PDF"
        },
        {
          "name": "Watermark PDF",
          "value": "watermarkPdf",
          "action": "Watermark PDF",
          "description": "Add a text watermark to a PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfManipulation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "lockPdf",
      "options": [
        {
          "name": "Lock PDF",
          "value": "lockPdf",
          "action": "Lock PDF with password",
          "description": "Add password protection to a PDF"
        },
        {
          "name": "Unlock PDF",
          "value": "unlockPdf",
          "action": "Unlock password protected PDF",
          "description": "Remove password protection from a PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfSecurity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parsePdf",
      "options": [
        {
          "name": "Parse PDF",
          "value": "parsePdf",
          "action": "Parse PDF to JSON",
          "description": "Extract structured data from text-based PDF"
        },
        {
          "name": "Parse PDF with OCR",
          "value": "parsePdfOcr",
          "action": "Parse PDF with OCR",
          "description": "Extract text using ocr from scanned pdf pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfParsing"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "HTML to PDF",
      "value": "htmlToPdf",
      "action": "Convert HTML to PDF",
      "description": "Generate PDF from HTML/CSS",
      "resource": "pdfCreation"
    },
    {
      "name": "URL to PDF",
      "value": "urlToPdf",
      "action": "Capture a screenshot of a website in PDF format",
      "description": "Capture Website Screenshot to PDF",
      "resource": "pdfCreation"
    },
    {
      "name": "Compress PDF",
      "value": "compressPdf",
      "action": "Compress PDF",
      "description": "Compress a PDF to reduce file size",
      "resource": "pdfManipulation"
    },
    {
      "name": "Convert Image to PDF",
      "value": "convertImageToPdf",
      "action": "Convert image to PDF",
      "description": "Convert one or more images into a PDF",
      "resource": "pdfManipulation"
    },
    {
      "name": "Convert PDF to Image",
      "value": "convertPdfToImage",
      "action": "Convert PDF to image",
      "description": "Convert PDF pages into image files",
      "resource": "pdfManipulation"
    },
    {
      "name": "Merge PDFs",
      "value": "mergePdfs",
      "action": "Merge multiple PDFS into one",
      "description": "Merge multiple PDF files into one",
      "resource": "pdfManipulation"
    },
    {
      "name": "Split PDF",
      "value": "splitPdf",
      "action": "Split PDF",
      "description": "Split or extract pages from a PDF",
      "resource": "pdfManipulation"
    },
    {
      "name": "Watermark PDF",
      "value": "watermarkPdf",
      "action": "Watermark PDF",
      "description": "Add a text watermark to a PDF",
      "resource": "pdfManipulation"
    },
    {
      "name": "Lock PDF",
      "value": "lockPdf",
      "action": "Lock PDF with password",
      "description": "Add password protection to a PDF",
      "resource": "pdfSecurity"
    },
    {
      "name": "Unlock PDF",
      "value": "unlockPdf",
      "action": "Unlock password protected PDF",
      "description": "Remove password protection from a PDF",
      "resource": "pdfSecurity"
    },
    {
      "name": "Parse PDF",
      "value": "parsePdf",
      "action": "Parse PDF to JSON",
      "description": "Extract structured data from text-based PDF",
      "resource": "pdfParsing"
    },
    {
      "name": "Parse PDF with OCR",
      "value": "parsePdfOcr",
      "action": "Parse PDF with OCR",
      "description": "Extract text using ocr from scanned pdf pages",
      "resource": "pdfParsing"
    }
  ]

npm_readme:
  # n8n-nodes-htmlcsstopdf

  [![PDFMunk Banner](images/pdfmunkbanner.png)](https://pdfmunk.com/)

  **Get your api key from** [https://pdfmunk.com](https://pdfmunk.com)

  **For PDF Split/Merge and other powerful PDF features**, try our new product [PDFAPIHub](https://pdfapihub.com)

  An n8n community node for creating PDFs from HTML/CSS or URLs, manipulating PDFs (merge/split/compress), securing PDFs (lock/unlock), and parsing PDFs to structured JSON — powered by the PDFMunk API.

  ## Features

  - **PDF Creation**
    - **HTML to PDF**: Render HTML + optional CSS into a PDF
    - **URL to PDF**: Capture a website as a PDF (full-page support)
    - **Dynamic Params**: Template placeholder replacement for HTML generation
    - **Viewport Control**: Configure viewport width/height
    - **Flexible Output**: Return a direct URL or a binary PDF file
    - **Output Filename**: Set the resulting PDF filename
    - **Configurable Timeout**: Increase timeouts for large/slow renders
  - **PDF Manipulation**
    - **Merge PDFs**: Merge 2–15 PDFs from URLs or multiple binary PDF inputs
    - **Split PDF**: Extract specific pages, split each page, or split into chunks
    - **Compress PDF**: Reduce file size with selectable compression levels
    - **Watermark PDF**: Add text watermark with angle/opacity/font controls
    - **Convert PDF to Image**: Convert selected pages to PNG/JPG/JPEG/WEBP
    - **Convert Image to PDF**: Merge one or multiple images into a PDF
  - **PDF Security**
    - **Lock PDF**: Add password protection (optionally provide input password for already-encrypted PDFs), via URL or file input
    - **Unlock PDF**: Remove password protection, via URL or file input
  - **PDF Extraction & Parsing**
    - **Parse PDF to JSON**: Extract text/layout/tables/full extraction with page selection, via URL or file input
    - **Parse PDF with OCR**: OCR parse scanned PDFs with language/PSM/OEM settings

  ## 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** in your n8n instance
  2. Click **Install a community node**
  3. Enter `n8n-nodes-htmlcsstopdf`
  4. Click **Install**

  ### Manual Installation

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

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

  ### Docker

  Add the package to your n8n Docker container:

  ```dockerfile
  FROM n8nio/n8n:latest
  USER root
  RUN npm install -g n8n-nodes-htmlcsstopdf
  USER node
  ```

  ## Getting Your PDFMunk API Key

  1. **Sign Up**: Visit [PDFMunk.com](https://pdfmunk.com) and create an account
  2. **Verify Email**: Check your email and verify your account
  3. **Access Dashboard**: Log in to your PDFMunk dashboard
  4. **Generate API Key**: 
     - Navigate to the "API Keys" section
     - Click "Generate New API Key"
     - Copy your API key securely
  5. **Choose Plan**: Select a plan based on your usage needs (see PDFMunk pricing for current limits).

  ## Configuration

  ### Setting Up Credentials

  1. In n8n, go to **Credentials**
  2. Click **+ Add Credential**
  3. Search for "HtmlCssToPdf API"
  4. Enter your PDFMunk API key
  5. Test the connection
  6. Save the credential

  ## Operations

  The node exposes operations grouped by **Resource**.

  ### PDF Creation

  #### HTML to PDF
  Generate a PDF from custom HTML and optional CSS.

  **Parameters:**
  - **HTML Content** (`html_content`)
  - **CSS Content** (`css_content`, optional)
  - **Dynamic Params** (`dynamic_params`, optional key/value pairs for templating)
  - **Viewport Width/Height** (`viewPortWidth`, `viewPortHeight`)
  - **Output Format** (`output_format`: `url` or `file`)
  - **Output Filename** (`output_filename`, without `.pdf`)
  - **Timeout (in Seconds)** (`timeout`, default: 300)

  #### URL to PDF
  Generate a PDF from a website URL.

  **Parameters:**
  - **URL** (`url`)
  - **Full Page** (`full_page`, default: `true`)
  - **Wait Till** (`wait_till`, milliseconds to wait before capture)
  - **Viewport Width/Height** (`viewPortWidth`, `viewPortHeight`)
  - **Output Format** (`output_format`: `url` or `file`)
  - **Output Filename** (`output_filename`, without `.pdf`)
  - **Timeout (in Seconds)** (`timeout`, default: 300)

  ### PDF Manipulation

  #### Merge PDFs
  Merge multiple PDFs into one document.

  **Parameters:**
  - **Input Type** (`merge_input_type`: `url` or `file`)
  - **PDF URLs** (`pdf_urls`, comma-separated; minimum 2, maximum 15; URL mode)
  - **File Binary Property Name (CSV)** (`merge_file_binary_properties`, file mode)
  - **Output Type** (`merge_output`: `url`, `file`, or `base64`)

  #### Split PDF
  Split or extract pages from a PDF.

  **Parameters:**
  - **Input Type** (`split_input_type`: `url` or `file`)
  - **PDF URL** (`split_url`, URL mode)
  - **File Binary Property** (`split_file_binary_property`, file mode)
  - **Split Mode** (`split_mode`)
    - `pages`: extract a page range/list via **Page Range** (`pages`)
    - `each`: split each page into its own PDF
    - `chunks`: split into **Number of Chunks** (`chunks`)
  - **Output Type** (`split_output`: `url`, `file`, or `base64`)

  #### Compress PDF
  Compress a PDF to reduce file size.

  **Parameters:**
  - **Input Type** (`compress_input_type`: `url` or `file`)
  - **PDF URL** (`compress_url`, max 10MB, URL mode)
  - **File Binary Property** (`compress_file_binary_property`, file mode)
  - **Compression Level** (`compression`: `low`, `medium`, `high`, `max`)
  - **Output Type** (`compress_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`compress_output_name`, e.g. `compressed.pdf`)

  #### Watermark PDF
  Add text watermark to a PDF.

  **Parameters:**
  - **Input Type** (`watermark_input_type`: `url` or `file`)
  - **PDF URL** (`watermark_file_url`, URL mode)
  - **File Binary Property** (`watermark_file_binary_property`, file mode)
  - **Output Format** (`watermark_output_format`: `file`, `url`, `base64`, or `both`)
  - **Watermark Text** (`watermark_text`)
  - **Opacity** (`watermark_opacity`)
  - **Angle** (`watermark_angle`)
  - **Font Size** (`watermark_font_size`, optional)

  #### Convert PDF to Image
  Convert one or more PDF pages to images.

  **Parameters:**
  - **Input Type** (`convert_pdf_image_input_type`: `url` or `file`)
  - **PDF URL** (`convert_pdf_image_url`, URL mode)
  - **File Binary Property** (`convert_pdf_image_file_binary_property`, file mode)
  - **Page** (`convert_pdf_image_page`, used when `Pages` is empty)
  - **Pages** (`convert_pdf_image_pages`, e.g. `1-3` or `1,3,5`)
  - **Image Format** (`convert_pdf_image_format`: `png`, `jpg`, `jpeg`, `webp`)
  - **DPI** (`convert_pdf_image_dpi`)
  - **Quality** (`convert_pdf_image_quality`)
  - **Output Type** (`convert_pdf_image_output`: `url`, `base64`, `both`, or `file`)

  #### Convert Image to PDF
  Convert one or multiple image URLs into a PDF.

  **Parameters:**
  - **Image URLs** (`convert_image_pdf_urls`, comma-separated)
  - **Output Type** (`convert_image_pdf_output`: `url`, `base64`, `both`, or `file`)
  - **Output Filename** (`convert_image_pdf_filename`)

  ### PDF Security

  #### Lock PDF
  Add password protection to a PDF.

  **Parameters:**
  - **Input Type** (`lock_input_type`: `url` or `file`)
  - **PDF URL** (`lock_url`, max 10MB, URL mode)
  - **File Binary Property** (`lock_file_binary_property`, file mode)
  - **Password** (`lock_password`)
  - **Input Password** (`lock_input_password`, optional)
  - **Output Type** (`lock_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`lock_output_name`, e.g. `locked.pdf`)

  #### Unlock PDF
  Remove password protection from a PDF.

  **Parameters:**
  - **Input Type** (`unlock_input_type`: `url` or `file`)
  - **PDF URL** (`unlock_url`, max 10MB, URL mode)
  - **File Binary Property** (`unlock_file_binary_property`, file mode)
  - **Password** (`unlock_password`)
  - **Output Type** (`unlock_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`unlock_output_name`, e.g. `unlocked.pdf`)

  ### PDF Extraction & Parsing

  #### Parse PDF
  Parse a PDF into structured JSON.

  **Parameters:**
  - **Input Type** (`parse_input_type`: `url` or `file`)
  - **PDF URL** (`parse_url`, URL mode)
  - **File Binary Property** (`parse_file_binary_property`, file mode)
  - **Parse Mode** (`parse_mode`: `text`, `layout`, `tables`, `full`)
  - **Pages** (`parse_pages`: `all` or ranges like `1-3`)

  #### Parse PDF with OCR
  Parse scanned PDFs using OCR.

  **Parameters:**
  - **Input Type** (`parse_input_type`: `url` or `file`)
  - **PDF URL** (`parse_url`, URL mode)
  - **File Binary Property** (`parse_file_binary_property`, file mode)
  - **Language** (`lang`, e.g. `eng` or `eng+hin`)
  - **Pages** (`parse_pages`: `all` or ranges like `1-3`)
  - **DPI** (`dpi`)
  - **PSM** (`psm`)
  - **OEM** (`oem`)

  ## Usage

  ### Basic HTML to PDF Conversion

  ```json
  {
    "operation": "htmlToPdf",
    "html_content": "<h1>Hello World</h1><p>This is a test document.</p>",
    "css_content": "h1 { color: blue; } p { font-size: 14px; }",
    "viewPortWidth": 1080,
    "viewPortHeight": 720,
    "output_format": "file",
    "output_filename": "hello-world",
    "timeout": 300
  }
  ```

  ### Advanced Usage Examples

  #### 1. Invoice Generation
  ```html
  <!DOCTYPE html>
  <html>
  <head>
      <style>
          .invoice { font-family: Arial, sans-serif; }
          .header { background-color: #f0f0f0; padding: 20px; }
          .total { font-weight: bold; font-size: 18px; }
      </style>
  </head>
  <body>
      <div class="invoice">
          <div class="header">
              <h1>Invoice #12345</h1>
          </div>
          <div class="total">Total: $299.99</div>
      </div>
  </body>
  </html>
  ```

  #### 2. Report Generation
  ```html
  <div class="report">
      <h1>Monthly Report</h1>
      <table border="1">
          <tr><th>Metric</th><th>Value</th></tr>
          <tr><td>Sales</td><td>$50,000</td></tr>
          <tr><td>Growth</td><td>15%</td></tr>
      </table>
  </div>
  ```

  #### 3. Certificate Generation
  ```html
  <div class="certificate">
      <h1>Certificate of Completion</h1>
      <p>This certifies that <strong>John Doe</strong> has completed the course.</p>
      <div class="signature">Authorized Signature</div>
  </div>
  ```

  ### PDF Manipulation Examples

  #### Merge PDFs
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "mergePdfs",
    "merge_input_type": "url",
    "pdf_urls": "https://example.com/a.pdf, https://example.com/b.pdf",
    "merge_output": "url"
  }
  ```

  #### Merge PDFs (File input)
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "mergePdfs",
    "merge_input_type": "file",
    "merge_file_binary_properties": "data1,data2",
    "merge_output": "file"
  }
  ```

  #### Split PDF (extract pages)
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "splitPdf",
    "split_input_type": "url",
    "split_url": "https://example.com/document.pdf",
    "split_mode": "pages",
    "pages": "1-3",
    "split_output": "url"
  }
  ```

  #### Compress PDF
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "compressPdf",
    "compress_input_type": "url",
    "compress_url": "https://example.com/document.pdf",
    "compression": "high",
    "compress_output": "file",
    "compress_output_name": "compressed.pdf"
  }
  ```

  #### Watermark PDF
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "watermarkPdf",
    "watermark_input_type": "url",
    "watermark_file_url": "https://example.com/document.pdf",
    "watermark_output_format": "file",
    "watermark_text": "CONFIDENTIAL",
    "watermark_opacity": 0.15,
    "watermark_angle": 30
  }
  ```

  #### Convert PDF to Image
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "convertPdfToImage",
    "convert_pdf_image_input_type": "url",
    "convert_pdf_image_url": "https://example.com/document.pdf",
    "convert_pdf_image_pages": "1-3",
    "convert_pdf_image_format": "png",
    "convert_pdf_image_output": "url"
  }
  ```

  #### Convert Image to PDF
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "convertImageToPdf",
    "convert_image_pdf_urls": "https://example.com/a.png, https://example.com/b.jpg",
    "convert_image_pdf_output": "file",
    "convert_image_pdf_filename": "combined-images.pdf"
  }
  ```

  ### PDF Security Examples

  #### Lock PDF
  ```json
  {
    "resource": "pdfSecurity",
    "operation": "lockPdf",
    "lock_input_type": "url",
    "lock_url": "https://example.com/document.pdf",
    "lock_password": "your-password",
    "lock_output": "file",
    "lock_output_name": "locked.pdf"
  }
  ```

  #### Unlock PDF
  ```json
  {
    "resource": "pdfSecurity",
    "operation": "unlockPdf",
    "unlock_input_type": "url",
    "unlock_url": "https://example.com/locked.pdf",
    "unlock_password": "your-password",
    "unlock_output": "file",
    "unlock_output_name": "unlocked.pdf"
  }
  ```

  ### PDF Parsing Example

  #### Parse PDF to JSON
  ```json
  {
    "resource": "pdfParsing",
    "operation": "parsePdf",
    "parse_input_type": "url",
    "parse_url": "https://example.com/document.pdf",
    "parse_mode": "full",
    "parse_pages": "all"
  }
  ```

  #### Parse PDF with OCR
  ```json
  {
    "resource": "pdfParsing",
    "operation": "parsePdfOcr",
    "parse_input_type": "url",
    "parse_url": "https://example.com/scanned.pdf",
    "lang": "eng",
    "parse_pages": "all",
    "dpi": 200,
    "psm": 3,
    "oem": 3
  }
  ```

  ## Use Cases

  ### Business Applications
  - **Invoice Generation**: Automatically generate invoices from order data
  - **Report Creation**: Convert analytics data into professional PDF reports
  - **Contract Generation**: Create contracts from templates with dynamic data
  - **Certificate Issuance**: Generate certificates for course completions
  - **Receipt Creation**: Convert transaction data into PDF receipts

  ### Content Management
  - **Document Archival**: Convert web pages to PDF for archival purposes
  - **Newsletter PDFs**: Transform HTML newsletters into PDF format
  - **eBook Creation**: Generate PDF books from HTML content
  - **Documentation**: Convert online docs to downloadable PDFs

  ### Marketing & Sales
  - **Proposal Generation**: Create branded proposals from CRM data
  - **Brochure Creation**: Generate marketing materials dynamically
  - **Price Lists**: Convert product catalogs to PDF format
  - **Quotation PDFs**: Transform quotes into professional PDFs

  ## Workflow Examples

  ### Example 1: E-commerce Invoice
  ```json
  {
    "nodes": [
      {
        "name": "Order Webhook",
        "type": "n8n-nodes-base.webhook"
      },
      {
        "name": "Generate Invoice HTML",
        "type": "n8n-nodes-base.function"
      },
      {
        "name": "Convert to PDF",
        "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
      },
      {
        "name": "Email PDF",
        "type": "n8n-nodes-base.emailSend"
      }
    ]
  }
  ```

  ### Example 2: Scheduled Reports
  ```json
  {
    "nodes": [
      {
        "name": "Schedule Trigger",
        "type": "n8n-nodes-base.cron"
      },
      {
        "name": "Fetch Analytics Data",
        "type": "n8n-nodes-base.httpRequest"
      },
      {
        "name": "Build Report HTML",
        "type": "n8n-nodes-base.function"
      },
      {
        "name": "Generate PDF Report",
        "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
      },
      {
        "name": "Save to Google Drive",
        "type": "n8n-nodes-base.googleDrive"
      }
    ]
  }
  ```

  ## Output

  The node returns:
  - **URL output**: A direct link (or URL(s), depending on operation)
  - **File output**: Binary PDF file data in n8n (usable by "Write Binary File", email attachments, etc.)
  - **Base64 output** (where available): Base64-encoded result in the JSON response

  ## Error Handling

  The node provides detailed error messages for common issues:

  - **Invalid API Key**: Check your PDFMunk credentials
  - **HTML Parse Error**: Validate your HTML syntax
  - **CSS Error**: Check your CSS for syntax errors
  - **Rate Limit**: Upgrade your PDFMunk plan or wait for reset
  - **Network Error**: Check your internet connection
  - **Timeout Error**: Increase the timeout setting for large PDFs (default: 300 seconds)

  ## FAQ

  **Q: Is there a free tier?**  
  A: PDFMunk may offer trial/free usage depending on current plans. Check the PDFMunk dashboard/pricing for the latest limits.

  **Q: What HTML features are supported?**  
  A: Most modern HTML5 and CSS3 features are supported, including flexbox, grid, and media queries.

  **Q: Can I use external images?**  
  A: Yes, images accessible via URL will be included in the PDF.

  **Q: What's the maximum file size?**  
  A: Some operations in this node expect PDFs up to 10MB (as indicated in the node parameters). Check PDFMunk documentation for current limits and plan-specific constraints.

  **Q: How do I generate large PDFs (100+ pages)?**  
  A: Increase the timeout setting in the node configuration. For large PDFs, set timeout to 600-900 seconds (10-15 minutes).

  **Q: What should I do if I get a gateway timeout error?**  
  A: Increase the timeout parameter in the node settings. The default is 300 seconds (5 minutes), but large PDFs may need 600-900 seconds.

  ## Compatibility

  - **n8n version**: 0.187.0+
  - **Node.js**: 18.0.0+
  - **Supported formats**: HTML, CSS, PDF

  ## Resources

  ### PDF Creation

  - [PDFMunk](https://pdfmunk.com/)
  - [PDFMunk API Documentation](https://pdfmunk.com/api-docs)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n workflow examples](https://n8n.io/workflows)

  ## Support

  For questions or support, please contact us at: **support@pdfmunk.com**

  You can also join the [n8n community forum](https://community.n8n.io/) for general n8n-related discussions.

  ## Contributing

  Contributions are welcome! Please read our contributing guidelines and submit pull requests for any improvements.

  ## License

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

  ## Changelog

  ### v2.1.1
  - Added configurable timeout parameter for large PDF generation
  - Improved error handling for gateway timeouts
  - Updated documentation with timeout troubleshooting

  ### v2.0.2
  - Improved error handling
  - Performance optimizations

  ### v2.0.1
  - Bug fixes and stability improvements

  ### v2.0.0
  - Complete rewrite with new PDFMunk API
  - Enhanced CSS support
  - Better error messages

  ---

  Built with ❤️ for the n8n community

ai_documentation_summary:
  {"purpose":"Converts HTML/CSS or URLs to PDF, manipulates existing PDFs (merge, split, compress, watermark), secures PDFs with passwords, and extracts structured data from PDFs.","capabilities":["HTML to PDF generation with custom CSS","URL to PDF capture with full-page support","Template parameter replacement in HTML","Viewport width and height configuration","PDF merging (2-15 files)","PDF splitting (page range, per-page, or chunks)","PDF compression with adjustable levels","Watermark addition with angle/opacity/font controls","PDF to image conversion (PNG/JPG/WEBP)","Image to PDF conversion"],"authentication":"API key required (via n8n Credentials node)","commonUseCases":["Generating PDF reports from HTML templates","Archiving websites as PDFs","Combining multiple PDF documents","Protecting sensitive PDF documents","Extracting text data from PDFs for analysis"],"limitations":["Requires external PDFMunk API subscription and API key","Merge operation limited to 2-15 PDFs","Compress operation limited to 10MB files in URL mode","Node is a community node and may not be maintained by n8n core team"],"relatedNodes":["Webhook","Binary File","HTTP Request","JSON","Code"]}


node_type: n8n-nodes-pdfmonkey.pdfMonkey
package_name: n8n-nodes-pdfmonkey
display_name: PDFMonkey
description: Generate PDFs using PDFMonkey API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: tiny-monkey
author_github_url: https://github.com/pdfmonkey/
npm_package_name: n8n-nodes-pdfmonkey
npm_version: 0.4.0
community_fetched_at: 2026-04-16T09:43:36.385Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "generateDocument",
      "options": [
        {
          "name": "Generate Document",
          "value": "generateDocument",
          "action": "Create a new PDF using a template",
          "description": "Create a new PDF using a template"
        },
        {
          "name": "Get Document",
          "value": "getDocument",
          "action": "Get document details and status",
          "description": "Get document details and status"
        },
        {
          "name": "Download File",
          "value": "downloadFile",
          "action": "Download a generated PDF or image",
          "description": "Download a generated PDF or Image"
        },
        {
          "name": "Delete Document",
          "value": "deleteDocument",
          "action": "Delete an existing PDF document",
          "description": "Delete an existing PDF document"
        }
      ],
      "description": "Choose what you want to do with PDFMonkey",
      "displayName": "Actions",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Document",
      "value": "generateDocument",
      "action": "Create a new PDF using a template",
      "description": "Create a new PDF using a template"
    },
    {
      "name": "Get Document",
      "value": "getDocument",
      "action": "Get document details and status",
      "description": "Get document details and status"
    },
    {
      "name": "Download File",
      "value": "downloadFile",
      "action": "Download a generated PDF or image",
      "description": "Download a generated PDF or Image"
    },
    {
      "name": "Delete Document",
      "value": "deleteDocument",
      "action": "Delete an existing PDF document",
      "description": "Delete an existing PDF document"
    }
  ]

npm_readme:
  ![PDFMonkey for n8n](./images/n8n-nodes-pdfmonkey.webp)

  # n8n-nodes-pdfmonkey

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

  [PDFMonkey](https://www.pdfmonkey.io/) is a service that allows you to generate PDFs from HTML templates with dynamic data.

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

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

  ## Installation

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

  ## Operations

  ### PDFMonkey Node

  The PDFMonkey node provides the following operations:

  - **Generate Document**: Create a new PDF document using a template and dynamic data
    - Supports custom metadata and filename customization
    - Optional auto-polling for document completion (controlled by "Wait For Completion" option)
    - Uses a simple 2-second interval between status checks when polling
    - Downloads the PDF automatically if generation is successful and auto-polling is enabled
  - **Get Document**: Get document details and check its generation status
  - **Download File**: Download a generated PDF or image document and save it as a binary file
  - **Delete Document**: Delete a previously generated PDF document from PDFMonkey

  ### PDFMonkey Trigger Node

  The PDFMonkey Trigger node listens for webhooks from PDFMonkey and processes them:

  - **Webhook Receiver**: Triggers when PDFMonkey sends a webhook notification
  - **Automatic File Download**: Automatically downloads the PDF or image when the document generation is successful
  - **Intelligent Filename Handling**: Extracts the filename from metadata
  - **Complete Response Data**: Returns all document properties from the PDFMonkey API in the JSON output

  ## Credentials

  To use the PDFMonkey nodes, you need to have a PDFMonkey account and API key.

  1. Sign up for PDFMonkey at [https://www.pdfmonkey.io/](https://www.pdfmonkey.io/)
  2. In your PDFMonkey dashboard, navigate to the API section
  3. Copy your API key
  4. In n8n, create new credentials of type 'PDFMonkey API' and paste your API key

  ## Compatibility

  This node has been tested with n8n version 1.0.0 and later.

  ## Usage

  ### Flexible Payload Input

  The Generate Document operation supports two methods for providing template data:

  1. **JSON Format**:

     - Enter your entire payload as a JSON object
     - Ideal for complex data structures or when copying from another source
     - Example:
       ```json
       {
       	"invoiceNumber": "INV-2023-001",
       	"customerName": "Acme Inc.",
       	"items": [
       		{ "name": "Widget", "quantity": 5, "price": 10.99 },
       		{ "name": "Gadget", "quantity": 2, "price": 24.99 }
       	],
       	"total": 104.93
       }
       ```

  2. **Key-Value Pairs**:
     - Add fields individually with key-value pairs
     - More visual and easier to manage for simple templates
     - Supports complex data structures:
       - JSON objects/arrays: Values starting with `{` or `[` are automatically parsed as JSON
       - Arrays from other nodes: The node automatically handles n8n's special array format `[Array: [...]]`
       - Direct objects: When passing data from other nodes that return objects, they are used directly

  ### Enhanced Object Handling

  The node intelligently processes different value types in key-value pairs:

  - **Direct Objects**: Objects passed directly from other nodes are preserved intact
  - **JSON Strings**: Strings that look like JSON (starting with `{` or `[`) are parsed automatically
  - **Special Array Format**: The n8n array format `[Array: [...]]` is detected and parsed
  - **Regular Values**: Simple strings, numbers, and booleans are handled appropriately

  This makes it easy to pass complex data from other nodes to PDFMonkey without manual conversion.

  #### Example: Processing Arrays from n8n

  When you map data from other nodes (like Function or HTTP Request nodes), arrays often come in this special format:

  ```
  [Array: [{"name":"Mouse","quantity":3,"price":88.92},{"name":"Headphones","quantity":5,"price":14.99},{"name":"Keyboard","quantity":3,"price":48.28}]]
  ```

  The PDFMonkey node will automatically detect this format, extract the array content, and properly parse it as a JSON array. This is especially useful for templating tables or lists in your PDFs where you need to pass complex structured data.

  ### Generate Document with Auto-Polling

  The Generate Document operation includes a "Wait For Completion" option that controls whether the node waits for the document to finish generating before continuing the workflow:

  1. When **enabled** (default):

     - The node checks the document status every 2 seconds until it reaches a final state (success or failure)
     - If successful, it automatically downloads the PDF or image and returns it as a binary file
     - Simple, straightforward polling mechanism with minimal overhead
     - Progress is logged with status updates during polling

  2. When **disabled**:
     - The node returns immediately after creating the document
     - The response includes the document ID and initial pending status
     - You can later use the Get Document or Download File operations to check status and retrieve the document

  This feature is especially useful for smaller documents that generate quickly, providing a simpler workflow without needing separate Get Document and Download File steps. For larger documents that take longer to generate, you may want to disable this option and use a separate Get Document or Download File operation later.

  ### Custom Filenames

  You can set a custom filename for your generated PDF or image using the dedicated `Custom Filename` field in the Generate Document operation

  If the field is left empty, the node will use the default generated filename.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables the creation of PDF documents from HTML templates using dynamic data via the PDFMonkey API, supporting both manual generation and webhook-triggered workflows.","capabilities":["Generate PDF documents from HTML templates with dynamic data","Download generated PDFs or images as binary files","Check document generation status and retrieve details","Delete previously generated documents","Receive webhook notifications for document generation events","Support auto-polling for document completion status","Handle complex data structures including JSON objects and arrays","Customize output filenames"],"authentication":"API key required","commonUseCases":["Automated invoice generation from order data","Creating personalized marketing materials from customer databases","Generating reports from database queries or API responses","Automated document creation triggered by form submissions or webhooks"],"limitations":["Requires a paid PDFMonkey account with API access","Auto-polling uses a fixed 2-second interval between status checks","No built-in support for custom HTML templates beyond PDFMonkey's template system","Limited to PDF and image formats only"],"relatedNodes":["HTTP Request","Function","Webhook","Binary File","Wait Until"]}


node_type: n8n-nodes-screenshotone.screenshotOne
package_name: n8n-nodes-screenshotone
display_name: ScreenshotOne
description: Render PDFs, screenshots, scrolling screenshots, and short videos using ScreenshotOne
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: screenshotonedev
author_github_url: https://github.com/screenshotone/
npm_package_name: n8n-nodes-screenshotone
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.385Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "screenshot",
      "options": [
        {
          "name": "Full Page Screenshot",
          "value": "full_page"
        },
        {
          "name": "PDF",
          "value": "pdf"
        },
        {
          "name": "Record Short Video",
          "value": "short_video"
        },
        {
          "name": "Screenshot",
          "value": "screenshot"
        },
        {
          "name": "Scrolling Screenshot",
          "value": "scrolling_screenshot"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Full Page Screenshot",
      "value": "full_page"
    },
    {
      "name": "PDF",
      "value": "pdf"
    },
    {
      "name": "Record Short Video",
      "value": "short_video"
    },
    {
      "name": "Screenshot",
      "value": "screenshot"
    },
    {
      "name": "Scrolling Screenshot",
      "value": "scrolling_screenshot"
    }
  ]

npm_readme:
  # n8n-nodes-screenshotone

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

  `n8n-nodes-screenshotone` is an n8n community node. It lets you use [ScreenshotOne](https://screenshotone.com/) in your n8n workflows.

  ScreenshotOne is a service that allows you to take screenshots of web pages, generate PDFs, convert HTML or Markdown to images and more.

  [![testimonials](./assets/testimonials.png)](https://screenshotone.com/customers/)

  Check out what [ScreenshotOne customers say about the API](https://screenshotone.com/customers/) and why it is considered one of the best screenshot APIs.

  [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)
  - [Development](#development)
  - [Version history](#version-history)
  - [ScreenshotOne](#screenshotone)
    - [Use cases](#use-cases)
    - [Customers](#customers)
  - [License](#license)

  ## Installation

  ### Community Nodes

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

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

  ![Install](./assets/install.png)

  ## Operations

  1. **Screenshot** any website, HTML or Markdown. Returns result as image.
  2. **Full Page Screenshot** is the same as **Screenshot**, but returns the full page as an image.
  3. **PDF** from rendering PDFs from URLs, HTML or Markdown. Returns result as PDF.
  4. **Scrolling Screenshot** it is a [scrolling screenshot feature from ScreenshotOne](https://screenshotone.com/scrolling-screenshots/). Results as video or GIF.
  5. **Record Short Video** is to record a short video of a website, HTML or Markdown. Results as video or GIF.

  For scrolling screenshots and video check out the [ScreenshotOne documentation](https://screenshotone.com/docs/animated-screenshots/).

  ## Credentials

  To use ScreenshotOne node, you will need to authenticate with the ScreenshotOne API.

  1. [Sign up for or sign in to a ScreenshotOne account](https://dash.screenshotone.com/).
  2. [Create if needed and copy the API (access) key](https://dash.screenshotone.com/access).
  3. Create new credentials in n8n:
     3.1. Add and use the ScreenshotOne node in your workflow.
     3.2. Under "Credential to connect with", click "Create New Credential".
     3.3. Paste the API (access) key you copied in step 2.

  Test the credentials and make sure it works:

  ![Credentials](./assets/credentials.png)

  ## Compatibility

  The node was created and tested with n8n version `1.98.2`. But there is no reason it won't work with older and newer versions.

  ## Usage

  If you use n8n for the first time, check out the ["try it out" documentation ](https://docs.n8n.io/try-it-out/) to get started.

  ### Response types

  ScreenshotOne may return the response in different formats based on the request options:

  - `json` - for JSON responses, e.g. for PDF or screenshot with URLs.
  - `text` - for text responses, e.g. raw HTML.
  - `base64` - for image responses.

  Examples:

  ```json
  {
  	"content_type": "application/json",
  	"type": "json",
  	"response": {
  		"cache_url": "https://<URL of the screenshot in cache>"
  	}
  }
  ```

  Or:

  ```json
  {
  	"content_type": "text/html",
  	"type": "text",
  	"response": "<HTML body>"
  }
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [ScreenshotOne API documentation](https://screenshotone.com/docs/)
  - [ScreenshotOne](https://screenshotone.com/)
  - [ScreenshotOne Dashboard](https://dash.screenshotone.com/)

  ## Version history

  - 0.1.2 - Initial release of the ScreenshotOne node for n8n 🥳

  ## Development

  Check out [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building and developing the node.

  0. Install dependencies:

  ```bash
  npm install
  ```

  1. Build the node

  ```bash
  npm run build
  ```

  2. Link the node to n8n from the node directory

  ```bash
  npm link
  ```

  3. In your `~/.n8n/nodes` directory, link the node:

  ```bash
  npm link n8n-nodes-screenshotone
  ```

  4. Run n8n:

  ```bash
  n8n start
  ```

  Once the node is linked, you need to only rebuild and restart n8n to see the changes.

  ## ScreenshotOne

  ### Use cases

  You can find [all the use cases on the ScreenshotOne official website](https://screenshotone.com/use-cases/), including but not limited to:

  - [Automating Open Graph image generation](https://screenshotone.com/use-cases/open-graph-images/)
  - [Generating personalized videos](https://screenshotone.com/use-cases/automate-personalized-videos/)
  - [Generating marketing content](https://screenshotone.com/use-cases/generate-advertising-content/)

  And [many more](https://screenshotone.com/use-cases/).

  ### Customers

  [![testimonials](./assets/testimonials.png)](https://screenshotone.com/customers/)

  Check out what [ScreenshotOne customers say about the API](https://screenshotone.com/customers/) and why it is considered one of the best screenshot APIs.

  ## License

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

  ## License

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

ai_documentation_summary:
  {"purpose":"A n8n community node that integrates with ScreenshotOne to render PDFs, capture website screenshots (including full-page and scrolling), and generate short videos from web content.","capabilities":["Take screenshots of websites, HTML, or Markdown","Capture full-page screenshots","Generate PDFs from URLs, HTML, or Markdown","Create scrolling screenshots (results as video or GIF)","Record short videos of websites, HTML, or Markdown","Convert HTML or Markdown to images","Return responses in JSON, text, or base64 formats"],"authentication":"API key required (ScreenshotOne access key)","commonUseCases":["Automating Open Graph image generation","Generating personalized videos","Creating marketing and advertising content","Capturing full-page website layouts","Creating animated scrolling videos or GIFs"],"limitations":["Community node (requires accepting risks of using community nodes)","Requires external ScreenshotOne account and API key","Response formats depend on request options (JSON, text, or base64)"],"relatedNodes":["HTTP Request","Code","PDF","Image"]}


node_type: @cloudsway-ai/n8n-nodes-cloudsway.smartSearch
package_name: @cloudsway-ai/n8n-nodes-cloudsway
display_name: SmartSearch
description: Performs web searches using SmartSearch API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: cloudsway-ai
author_github_url: https://github.com/Cloudsway-AI/n8n-nodes-cloudsway.git
npm_package_name: @cloudsway-ai/n8n-nodes-cloudsway
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.386Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "smartSearch",
      "options": [
        {
          "name": "Smart Search",
          "value": "smartSearch",
          "action": "Perform a web search using smart search",
          "routing": {
            "request": {
              "url": "/smart",
              "method": "GET"
            }
          },
          "description": "Perform a web search using SmartSearch"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Smart Search",
      "value": "smartSearch",
      "action": "Perform a web search using smart search",
      "routing": {
        "request": {
          "url": "/smart",
          "method": "GET"
        }
      },
      "description": "Perform a web search using SmartSearch"
    }
  ]

npm_readme:
  # n8n-nodes-cloudsway

  This is an n8n community node. It lets you use Cloudsway SmartSearch API in your n8n workflows.

  SmartSearch is a web search API service that provides search functionality with options for pagination, language settings, freshness filtering, and site restrictions.

  ## Features

  ### SmartSearch

  This node performs web searches using the Cloudsway SmartSearch API with the following options:

  - **Smart Search**: Performs a web search and returns results in JSON format

  ### Parameters

  - **Query**: (Required) The search query string (cannot be empty)
  - **Count**: (Optional) Number of results to return (default: 10, options: 10, 20, 30, 40, 50, max: 50)
  - **Offset**: (Optional) Zero-based offset for pagination (default: 0)
  - **Language**: (Optional) Language code for results (recommended 4-letter codes like en-US, default: 'en')
  - **Freshness**: (Optional) Time filter for search results (options: Day, Week, Month)
  - **Sites**: (Optional) Restrict results to a specific host (e.g., github.com)

  ## Credentials

  To use the SmartSearch node, you need to authenticate with the Cloudsway API:

  1. Log in to www.cloudsway.ai or contact info@cloudsway.com to get your Endpoint and API Key
  2. In n8n, create new credentials for "SmartSearch API"
  3. Enter your Endpoint and API Key in the respective fields

  The credential configuration requires:
  - **Endpoint**: Your SmartSearch endpoint name
  - **API Key**: Your private API key (stored securely)

  ## Usage

  1. Add the SmartSearch node to your workflow
  2. Configure the credentials
  3. Enter your search query
  4. Optionally configure additional parameters:
     - Adjust the count to control the number of results (10, 20, 30, 40, or 50)
     - Set an offset for pagination
     - Choose a language code (recommended 4-letter codes like en-US)
     - Select a freshness filter (Day, Week, or Month)
     - Restrict results to specific sites (e.g., github.com)

  The node returns search results that can be used in subsequent nodes.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Cloudsway SmartSearch API documentation](https://docs.cloudsway.net/IntelliSearch/api-reference/smartsearch/)
  * For support, contact info@cloudsway.com

ai_documentation_summary:
  {"purpose":"Performs web searches using the Cloudsway SmartSearch API with support for pagination, language filtering, freshness options, and site restrictions.","capabilities":["Web search execution","Pagination support (count and offset)","Language filtering (4-letter codes)","Freshness filtering (Day, Week, Month)","Site restriction filtering","JSON formatted results output"],"authentication":"API Key required (Endpoint and API Key in credentials)","commonUseCases":["Real-time web information retrieval","Multi-language search queries","Time-sensitive search results","Targeted search within specific domains"],"limitations":["Count parameter limited to maximum 50 results","Requires separate credential setup in n8n","Language codes must be 4-letter format"],"relatedNodes":["HTTP Request","JSON Response","Code"]}


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-04-16 09:43:36
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.5
community_fetched_at: 2026-04-16T09:43:36.387Z
ai_summary_generated_at: 2026-03-25 22:47:20
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.",
      "resource": "Actors"
    },
    {
      "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",
      "resource": "Actors"
    },
    {
      "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",
      "resource": "Actors"
    },
    {
      "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.",
      "resource": "Actors"
    },
    {
      "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.",
      "resource": "Actor tasks"
    },
    {
      "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.",
      "resource": "Actor tasks"
    },
    {
      "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.",
      "resource": "Actor runs"
    },
    {
      "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.",
      "resource": "Actor runs"
    },
    {
      "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.",
      "resource": "Actor runs"
    },
    {
      "name": "Get Items",
      "value": "Get items",
      "action": "Get dataset items",
      "description": "Retrieves items from a dataset",
      "resource": "Datasets"
    },
    {
      "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",
      "resource": "Key-Value Stores"
    }
  ]

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.6.4) enter `@apify/n8n-nodes-apify@0.6.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)

  ### ⚙️ Prerequisites

  - **Node.js**: 22.x or higher (required)
  - **npm**: 10.8.2 or higher (required)

  Verify your versions:

  ```bash
  node --version  # Should be v22.x.x or higher
  npm --version   # Should be 10.8.2 or higher
  ```

  If you use `nvm`, the project includes a `.nvmrc` file. Simply run:

  ```bash
  nvm use
  ```

  ### 1. Clone and Install Dependencies

  Clone the repository and install dependencies:

  ```bash
  git clone https://github.com/apify/n8n-nodes-apify.git
  cd n8n-nodes-apify
  npm install
  ```

  ### 2. Build the Node Package

  ```bash
  npm run build
  ```

  ### 3. Start Development Server

  Start the n8n development server with your node linked:

  ```bash
  npm run dev
  ```

  ---

  ### 🔁 Making changes

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

  ```bash
  npm run build
  ```

  ---

  ## 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
  npm run dev
  ```

  ## Operations

  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, wait for it to finish, and return the dataset items
  - **Scrape Single URL**: Quick scraping of a single URL
  - **Get Last Run**: Retrieve information about the most recent Actor run

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

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

  - **n8n**: Version 1.57.0 and higher
  - **Node.js**: 22.x or higher
  - **npm**: 10.8.2 or higher

  ## 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 `package-lock.json` 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
  npm 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":"This n8n community node integrates Apify for web scraping, data extraction, and automation by allowing users to run Apify Actors, manage datasets, and trigger workflows on completion.","capabilities":["Run Apify Actors with custom input parameters","Execute predefined Actor tasks","Scrape single URLs","Retrieve dataset items","Access Key-Value Store records","List and retrieve Actor run information","Trigger workflows on Actor or task completion (success, failure, abort, timeout)","Support pagination and sorting for run lists","Combine with n8n AI tools for data analysis"],"authentication":"API key required (apifyApi) or OAuth2 (apifyOAuth2Api, n8n Cloud only)","commonUseCases":["Automated web scraping and data extraction","Building data pipelines from external websites","Triggering n8n workflows based on external actor execution status","Integrating AI models with scraped data"],"limitations":["Requires Node.js 22.x or higher","Requires npm 10.8.2 or higher","n8n version 1.57.0 or higher required","OAuth2 authentication only available in n8n Cloud","Self-hosted instances require public WEBHOOK_URL configuration for triggers"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n AI Model","n8n Webhook"]}


node_type: n8n-nodes-zohoteaminbox.zohoTeamInbox
package_name: n8n-nodes-zohoteaminbox
display_name: Zoho TeamInbox
description: Consume Zoho TeamInbox API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: zohomail
author_github_url: https://github.com/zohomail/zoho_teaminbox_n8n.git
npm_package_name: n8n-nodes-zohoteaminbox
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:36.393Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Contact",
          "value": "contact"
        }
      ],
      "required": true,
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendemail",
      "options": [
        {
          "name": "Send Email",
          "value": "sendemail",
          "action": "Send Email",
          "description": "Create and send a new email."
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createcontact",
      "options": [
        {
          "name": "Create Contact",
          "value": "createcontact",
          "action": "Create Contact",
          "description": "Creates a new contact"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Email",
      "value": "sendemail",
      "action": "Send Email",
      "description": "Create and send a new email.",
      "resource": "message"
    },
    {
      "name": "Create Contact",
      "value": "createcontact",
      "action": "Create Contact",
      "description": "Creates a new contact",
      "resource": "contact"
    }
  ]

npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)
  # Zoho TeamInbox integration with n8n
  Zoho TeamInbox is a multichannel shared inbox platform that enables teams to manage conversations from business WhatsApp, Telegram, Facebook, Instagram DMs, and emails—all in one shared space that enhance collaboration and transparency.
  With n8n’s integration, you can align Zoho TeamInbox with your business processes by custom-designing workflows using triggers and actions to automate your operations.
  To learn more about n8n
  [n8n homepage](https://n8n.io/).
  To learn more about Zoho TeamInbox
  [Zoho Calendar homepage]( https://www.zoho.com/teaminbox/ )
  In case of any technical queries 
  [Contact sales]( https://www.zoho.com/teaminbox/contact.html )
  ## Pre-requisites
  - n8n admin login account (https://app.n8n.cloud/login)
  - TeamInbox account
  - Verified domain added to TeamInbox
  ## Installation 
  You can install the nodes for n8n via [npm]( https://www.npmjs.com/ ) with the package name as "n8n-nodes-zohoteaminbox".
  - To install :
    - Log in to your n8n account.
    - Navigate to more options->Settings->Community nodes->Install.
    - Enter the package name (n8n-nodes-zohoteaminbox)
    - The node will be installed successfully.

  ## Configuration 
  Follow the steps below to integrate Zoho TeamInbox from n8n.
  - Log in to your n8n account.
  - Select Create Credential -> Add Credential dialog box -> Enter Zoho TeamInbox OAuth2 API -> Click Continue.
  - Copy the Authorized Redirection URL from the connection page.
  - Access the [Zoho Developer Console](https://api-console.zoho.com/) to create a new Client ID and Client Secret to establish the connection between n8n and Zoho TeamInbox.
  - Click on Get Started if you have no existing Client. If you have an existing client, click on Add Client in the top-right corner. Select Server-based Applications in the Client Type window.
  - Provide the appropriate Client Name and your domain in the Homepage URL along with the Authorized Redirect URL copied from the Connection page.
  - Click Create to generate the Client ID and Client Secret.
  - Enter the Client ID and Client secret in the Connection Page and click Connect my account.
  - Now, the connection between n8n and Zoho TeamInbox is established, and the next step is to create your workflow.
  - Click Create Workflow -> Add first step -> search and select Zoho TeamInbox on the right pane.
  - Build your desired workflow with the list of actions (Send an email or Create contact).
  - Once the workflow is created, you can test it by selecting the Test Workflow option.
  ## Troubleshooting 
  Write to us in case of any queries
  [Contact support]( support@zohoteaminbox.com )

  ### Description
  This page explains the integration of Zoho TeamInbox with n8n. n8n is a powerful, open-source workflow automation software that allows you to connect with different apps and automate tasks with ease.

  For more information on Zoho TeamInbox: https://www.zoho.com/teaminbox/
    
  ### Required :
  - Zoho TeamInbox account and n8n admin account.
  - Module installation and configuration
  - Information on how the integration between Zoho TeamInbox and n8n can be made is found in this Readme file.
  - For further queries, visit :  https://www.zoho.com/teaminbox/contact.html  

ai_documentation_summary:
  {"purpose":"This n8n node enables automation of Zoho TeamInbox workflows by consuming the Zoho TeamInbox API to manage multichannel conversations from platforms like WhatsApp, Telegram, Facebook, Instagram DMs, and email.","capabilities":["Trigger on new messages from multiple channels","Send emails via TeamInbox","Create contacts in TeamInbox","Align TeamInbox with business processes through custom workflows"],"authentication":"OAuth2 API","commonUseCases":["Automating responses to customer inquiries across social media and messaging apps","Centralizing team collaboration on shared conversations","Integrating TeamInbox data into other business workflows"],"limitations":["Requires a verified domain added to the TeamInbox account","Requires manual setup of Client ID and Client Secret in Zoho Developer Console before OAuth2 flow"],"relatedNodes":["Zoho Calendar","Generic Email nodes","Contact Management nodes"]}


node_type: n8n-nodes-authentica.authentica
package_name: n8n-nodes-authentica
display_name: Authentica
description: OTP and account balance via Authentica
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: authenticasa
author_github_url: https://github.com/AuthenticaSA/n8n-node-authentica.git
npm_package_name: n8n-nodes-authentica
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.395Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "otp",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "OTP",
          "value": "otp"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send an OTP",
          "description": "Send an OTP"
        },
        {
          "name": "Verify",
          "value": "verify",
          "action": "Verify an OTP",
          "description": "Verify an OTP"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "otp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBalance",
      "options": [
        {
          "name": "Get Balance",
          "value": "getBalance",
          "action": "Get balance"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send an OTP",
      "description": "Send an OTP",
      "resource": "otp"
    },
    {
      "name": "Verify",
      "value": "verify",
      "action": "Verify an OTP",
      "description": "Verify an OTP",
      "resource": "otp"
    },
    {
      "name": "Get Balance",
      "value": "getBalance",
      "action": "Get balance",
      "resource": "account"
    }
  ]

npm_readme:
  <p align="center">
    <img src="nodes/Authentica/authentica.svg" alt="Authentica" width="120" />
  </p>

  <h1 align="center">Authentica for n8n</h1>

  <p align="center">
    Saudi identity & communications APIs for OTP and balance — packaged as an n8n Community Node.
  </p>

  ---

  ## ✨ What’s included in v0.1.0

  This first release focuses on the essentials:

  * **Account → Get Balance**
  * **OTP → Send** (SMS / WhatsApp / Email)
  * **OTP → Verify**


  ---

  ## 🧰 Requirements

  * n8n **v1.x** (self‑hosted or desktop)
  * Node.js **>= 20** (for local development)
  * An **Authentica API key** (header: `X-Authorization`)

  ---

  ## 🚀 Install

  ### Install from the n8n editor (Community Nodes)

  1. Open the n8n editor → **Settings → Community Nodes → Install**.
  2. Search for **Authentica** (package **`n8n-nodes-authentica`**).
  3. Click **Install** and confirm the warning screen.
  4. n8n downloads the package from npm and reloads. You’ll now see **Authentica** in the Nodes panel.

  ### Update / Uninstall

  * **Update:** Settings → Community Nodes → find *Authentica* → **Update**.
  * **Uninstall:** Settings → Community Nodes → find *Authentica* → **Uninstall**.

  ### Offline / Self‑hosted without Community Nodes

  If Community Nodes is disabled in your environment, install via npm on the host that runs n8n and point the extensions path:

  ```bash
  npm i n8n-nodes-authentica
  export N8N_CUSTOM_EXTENSIONS="/absolute/path/to/node_modules/n8n-nodes-authentica"
  n8n start
  ```

  ---

  ## 🔐 Credentials — *Authentica API*

  Create a new credential in **Credentials → New → Authentica API**.

  **Fields**

  * **API Key** *(required)*: your Authentica key (sent as `X-Authorization`) 
  * **Base URL** *(optional)*: defaults to `https://api.authentica.sa`

  **Test**

  * Click **Test** to call `/api/v2/balance` — you should see **Success**.

  ---

  ## 🧩 Node usage

  ### 1) Account → Get Balance

  * **Resource:** `Account`
  * **Operation:** `Get Balance`
  * **Output:** `{ balance: number }`

  ### 2) OTP → Send

  * **Resource:** `OTP`
  * **Operation:** `Send`
  * **Channel:** `SMS` | `WhatsApp` | `Email`
  * **Phone** *(required for SMS/WhatsApp)*: **E.164** format, e.g. `+9665XXXXXXX`
  * **Email** *(required for Email)*: valid email
  * **Optional:** message/template fields as supported by your Authentica app

  **Output (example)**

  ```json
  {
  	"success": true,
  	"data": null,
  	"message": "OTP send successfully"
  }
  ```

  ### 3) OTP → Verify

  * **Resource:** `OTP`
  * **Operation:** `Verify`
  * **Verify With:** `Phone` or `Email`
  * **Code:** the OTP the user received

  **Output (example)**

  ```json
  {
  	"status": true,
  	"message": "OTP verified successfully"
  }
  ```

  > **Validation built‑in:**
  >
  > * Phone must be E.164 (`+<country><number>`). Example KSA mobile: `+9665…`
  > * Email must be a well‑formed address.

  ---

  ## 🐞 Troubleshooting

  * **401 Unauthorized** → API key missing/invalid. Recheck the *Authentica API* credential, header `X-Authorization`.
  * **422 Unprocessable Entity** → A required field is missing or invalid (e.g., non‑E.164 phone). Fix inputs and retry.
  * **Rate limiting** → If you expect bursts, add a **Wait** or **Rate Limit** node before the Authentica node.
  * **Large execution data** → Run with the top‑bar **Execute workflow** button, or enable on‑disk binaries.

  ---

  ## 📦 Build locally (contributors)

  ```bash
  npm ci
  npm run lint
  npm run build
  # local load
  export N8N_CUSTOM_EXTENSIONS="$PWD"
  n8n start
  ```


  ---

  ## 🔒 Security & privacy

  * Keep API keys in **Credentials** (never hardcode in workflows).
  * Use **E.164** phones and never log sensitive PII in plaintext nodes.

  ---


  ## 🙌 Thanks

  Built by the **Authentica** team to help developers verify users and reduce fraud in Saudi Arabia.

  * Website: [https://authentica.sa](https://authentica.sa)
  * Issues / Feedback: [Support Email](mailto:support@authentica.sa)

  ---

  ## 📄 License (MIT)

  ```
  MIT License

  Copyright (c) 2025 Authentica

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

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

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

  ```

  ---

  ### File layout (what gets published)

  ```
  .
  ├─ dist/                               # compiled node + credentials + svg
  ├─ README.md                           # this file
  ├─ LICENSE
  ├─ CHANGELOG.md
  └─ package.json
  ```

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Authentica API to manage Saudi identity communications, specifically handling account balance checks and One-Time Password (OTP) verification via SMS, WhatsApp, or Email.","capabilities":["Retrieve account balance","Send OTP via SMS","Send OTP via WhatsApp","Send OTP via Email","Verify OTP via Phone","Verify OTP via Email","Input validation for E.164 phone numbers and email addresses"],"authentication":"API key required (sent as header 'X-Authorization')","commonUseCases":["User registration and verification flows","Two-factor authentication (2FA) implementation","Account balance monitoring for Saudi users","Secure communication channels for user onboarding"],"limitations":["Requires n8n v1.x or higher","Requires Node.js >= 20 for local development","Limited to Saudi Arabia identity services","Rate limiting may require additional workflow nodes for burst handling"],"relatedNodes":["Wait node","Rate Limit node","Execute Workflow node"]}


node_type: @zohomail/n8n-nodes-zohocalendar.zohoCalendar
package_name: @zohomail/n8n-nodes-zohocalendar
display_name: Zoho Calendar
description: Consume Zoho Calendar API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: zohomail
author_github_url: https://github.com/zohomail/zoho_calendar_n8n.git
npm_package_name: @zohomail/n8n-nodes-zohocalendar
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:36.396Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "event",
      "options": [
        {
          "name": "Event",
          "value": "event"
        }
      ],
      "required": true,
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create an Event",
          "value": "create",
          "action": "Create New Event",
          "description": "Creates an event in the specified calendar."
        },
        {
          "name": "Update an Event",
          "value": "update",
          "action": "Update Event",
          "description": "Updates an event in the specified calendar."
        },
        {
          "name": "Delete an Event",
          "value": "delete",
          "action": "Delete Event",
          "description": "Deletes an event from the specified calendar."
        },
        {
          "name": "Quick Add an Event",
          "value": "quick_event",
          "action": "Quick Add Event",
          "description": "Creates an event from a piece of text."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create an Event",
      "value": "create",
      "action": "Create New Event",
      "description": "Creates an event in the specified calendar.",
      "resource": "event"
    },
    {
      "name": "Update an Event",
      "value": "update",
      "action": "Update Event",
      "description": "Updates an event in the specified calendar.",
      "resource": "event"
    },
    {
      "name": "Delete an Event",
      "value": "delete",
      "action": "Delete Event",
      "description": "Deletes an event from the specified calendar.",
      "resource": "event"
    },
    {
      "name": "Quick Add an Event",
      "value": "quick_event",
      "action": "Quick Add Event",
      "description": "Creates an event from a piece of text.",
      "resource": "event"
    }
  ]

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

  # Zoho Calendar integration with n8n
  Zoho Calendar is an efficient workplace tool that helps you stay on track with your schedules, meetings, and events. n8n's integration with Zoho Calendar helps you to align with your business processes. You can custom-design your workflow by applying triggers and actions to automate your business needs.
  To learn more about n8n
  [n8n homepage](https://n8n.io/).
  To learn more about Zoho Calendar
  [Zoho Calendar homepage](https://calendar.zoho.com/).
  In case of any technical queries 
  [Contact sales](https://www.zoho.com/calendar/contact.html)
  ## Pre-requisites
  - n8n admin login account (https://app.n8n.cloud/login)
  - Zoho Mail account
  - A Verified domain added to the Zoho Mail account
  ## Installation 
  You can install the nodes for n8n via [npm](https://www.npmjs.com/) with the package name as n8n-nodes-zohocalendar.
  - To install :
     - Log in to your n8n account.
     - Navigate to more options->Settings->Community nodes->Install.
     - Enter the package name (n8n-nodes-zohocalendar)

  ## Configuration 
  Follow the steps below to integrate Zoho Calendar from n8n.
  - Log in to your n8n account.
  - Select Create Credential -> Add Credential dialog box -> Enter Zoho CalendarOAuth2 API -> Click Continue.
  - Copy the Authorized Redirection URL from the connection page.
  - Access the [Zoho Developer Console](https://api-console.zoho.com/) to create a new Client ID and Client Secret to establish the connection between n8n and Zoho Calendar.
  - Click on Get Started if you have no existing Client. If you have an existing client, click on Add Client in the top-right corner. 
  Select Server-based Applications in the Client Type window.
  - Provide the appropriate Client Name and your domain in the Homepage URL along with the Authorized Redirect URL copied from the Connection page.
  - Click Create to generate the Client ID and Client Secret.
  - Enter the Client ID and Client secret in the Connection Page and click Connect my account.
  - Now, the connection between n8n and Zoho Calendar is established, and the next step is to create your workflow.
  - Click Create Workflow -> Add first step -> search and select Zoho calendar on the right pane.
  - Build your desired workflow with the list of actions (Create, Delete, Quick add, or Update an event) and triggers (Event Created, Event Deleted, or Event Updated).
  - Once the workflow is created, you can test it by selecting the Test Workflow option.
  ## Troubleshooting 
  Write to us in case of any queries
  [Contact support](support@zohocalendar.com)
  ### Description
  This page explains the integration of Zoho Calendar with n8n. n8n is a powerful, open-source workflow automation software that allows you to connect with different apps and automate tasks with ease.

  For more information on Zoho Calendar : https://www.zoho.com/calendar/
  ### Required
  - Zoho Calendar account and n8n admin account.
  - Module installation and configuration:
  - Information on how the integration between Zoho Calendar and n8n can be made is found in this Readme file.
  - For further queries, visit : https://www.zoho.com/calendar/contact.html

ai_documentation_summary:
  {"purpose":"This n8n node enables automation of Zoho Calendar events by allowing users to create, delete, update, and trigger workflows based on calendar events.","capabilities":["Create calendar events","Delete calendar events","Update existing calendar events","Quick add events","Trigger on event creation","Trigger on event deletion","Trigger on event updates"],"authentication":"OAuth2 (Client ID and Client Secret required via Zoho Developer Console)","commonUseCases":["Automate meeting reminders from Zoho Calendar","Sync calendar events with other business tools","Automate event notifications or follow-ups","Centralize scheduling workflows"],"limitations":["Requires a Zoho Mail account with a verified domain","Requires n8n admin login account","Requires manual setup of OAuth2 credentials via Zoho Developer Console"],"relatedNodes":["Zoho Mail","Zoho CRM","Generic Calendar nodes"]}


node_type: n8n-nodes-zenlayer.zenlayer
package_name: n8n-nodes-zenlayer
display_name: Zenlayer
description: For advanced usage with an AI Gateway from Zenlayer
category: AI
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: gaoyaming
author_github_url: https://github.com/gwraith/
npm_package_name: n8n-nodes-zenlayer
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.397Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Analyze images and get descriptions or insights"
        },
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Send messages to a language model and receive responses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Analyze Image",
      "value": "analyze",
      "action": "Analyze image",
      "description": "Analyze images and get descriptions or insights",
      "resource": "image"
    },
    {
      "name": "Generate an Image",
      "value": "generate",
      "action": "Generate an image",
      "description": "Creates an image from a text prompt",
      "resource": "image"
    },
    {
      "name": "Message a Model",
      "value": "message",
      "action": "Message a model",
      "description": "Send messages to a language model and receive responses",
      "resource": "text"
    }
  ]

npm_readme:
  # 介绍
  Zenlayer AI Gateway提供全球领先的 AI 大模型推理服务，依托 Zenlayer 的全球私有网络与分布式边缘架构，为用户带来超低时延、高可靠性的使用体验。平台支持多种主流与前沿 AI 模型，覆盖文本、图像、音频、视频等多模态任务，并集成了业界最受欢迎的模型生态。开发者无需深入理解底层机器学习或基础设施架构，即可轻松使用最先进的 AI 能力，快速构建智能化应用。

  ## 创建 Zenlayer 账户并获取 API Key
  1.前往 ZenlayerAI 控制台创建并管理 API Key (入口见 https://console.zenlayer.com/aigw/aigateway).

  2.点击 [产品]-[创建AI网关]
  ![img1.png](icons/img1.png)

  3.点击 [创建AI网关] 生成新的API Key
  ![img2.png](icons/img2.png)

  4.请注意：API Key 只会在生成时展示一次。请务必复制并妥善保存，以确保未来能够持续使用

  5.在 n8n 中配置 Zenlayer AI Gateway 节点，填写 API Key 以完成集成。
  ![img3.png](icons/img3.png)

  ## 主要功能
  ### 全球加速的模型访问能力
  基于 Zenlayer 的全球私有网络，在全球范围内提供低延迟的模型推理服务，无论用户身在何处都能获得一致稳定的体验。

  ### 丰富的 AI 模型生态
  - 支持多领域多模态 AI 模型，包括但不限于：
  - 大语言模型（LLM）
  - 文本生成与文本理解
  - 图像、音频、视频生成与处理模型

  ### 分布式边缘推理加速
  依托 Zenlayer 的边缘节点网络，实现更快的响应速度与更高吞吐能力，为实时性（如对话、音视频处理）场景提供强劲支持。

  ### 开发者友好与易集成
  只需简单的 API 调用即可接入，无需复杂部署；灵活的配置可满足不同规模应用的接入需求。

  ### 高性价比的 AI 推理服务
  提供灵活的计费方式，适用于创业团队、中小企业乃至大型分布式应用，确保成本可控且性能卓越。

ai_documentation_summary:
  {"purpose":"This n8n node enables integration with Zenlayer AI Gateway for accessing global AI model inference services with low latency and high reliability.","capabilities":["Access large language models (LLM)","Text generation and text understanding","Image generation and processing","Audio generation and processing","Video generation and processing","Multi-modal AI tasks","Global edge-based inference acceleration"],"authentication":"API Key required","commonUseCases":["Integrating AI models into n8n workflows","Building multi-modal AI applications","Reducing latency for global AI inference","Cost-effective AI deployment for businesses"],"limitations":["API Key is displayed only once during generation and must be saved securely","Requires manual configuration of API Key in n8n node settings"],"relatedNodes":["HTTP Request","Function","Code"]}


node_type: @port-labs/n8n-nodes-portio-experimental.portApiAi
package_name: @port-labs/n8n-nodes-portio-experimental
display_name: Port API AI
description: Invoke Port AI agents, call general AI interactions, and fetch invocation results
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: roiport
author_github_url: https://github.com/port-labs/port-n8n-nodes.git
npm_package_name: @port-labs/n8n-nodes-portio-experimental
npm_version: 1.0.0
community_fetched_at: 2026-04-16T09:43:36.398Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "agent",
      "options": [
        {
          "name": "Agent",
          "value": "agent",
          "description": "Interact with Port AI agents"
        },
        {
          "name": "AI Interaction",
          "value": "aiInteraction",
          "description": "General-purpose AI interactions and invocation results"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "invokeAgent",
      "options": [
        {
          "name": "Invoke",
          "value": "invokeAgent",
          "action": "Invoke an agent",
          "description": "Invoke a specific agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generalInvoke",
      "options": [
        {
          "name": "Invoke",
          "value": "generalInvoke",
          "action": "Invoke AI interaction",
          "description": "General-purpose AI interaction"
        },
        {
          "name": "Get Result",
          "value": "getInvocation",
          "action": "Get invocation result",
          "description": "Get invocation result"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiInteraction"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Invoke",
      "value": "invokeAgent",
      "action": "Invoke an agent",
      "description": "Invoke a specific agent",
      "resource": "agent"
    },
    {
      "name": "Invoke",
      "value": "generalInvoke",
      "action": "Invoke AI interaction",
      "description": "General-purpose AI interaction",
      "resource": "aiInteraction"
    },
    {
      "name": "Get Result",
      "value": "getInvocation",
      "action": "Get invocation result",
      "description": "Get invocation result",
      "resource": "aiInteraction"
    }
  ]

npm_readme:
  # 🧩 @port-labs/n8n-nodes-portio-experimental

  > **Port.io** n8n custom nodes for interacting with [Port](https://www.port.io/) via n8n workflows.

  As of **November 2025**, the focus of this package is on **AI interactions** through Port’s AI APIs. Future releases will expand to additional REST integrations and workflow automations, enabling n8n and Port users to connect multiple tools seamlessly. **This is an experimental package, no support can be provided
  in relation to your use of this package, if you've found a bug or need a feature currently not supported, open a GitHub issue**,

  ---

  ## 🚀 Installation

  ### Option 1 — Install via npm (recommended)

  You can install the package directly from npm:

  ```bash
  npm install @port-labs/n8n-nodes-portio-experimental
  ```

  or using **pnpm**:

  ```bash
  pnpm add @port-labs/n8n-nodes-portio-experimental
  ```

  > **Note:**
  > When installed this way, the nodes will be available in your n8n instance once you configure n8n to load community nodes. To enable this you must set the environment variable `N8N_COMMUNITY_PACKAGES_ENABLED=true` and install the npm packages in N8N_HOME.

  ---

  ### Option 2 — Local installation (development or custom build)

  #### Prerequisites

  - 🧱 A working **n8n** instance (see [this quick-start guide](https://medium.com/@learning.by.playing.2023/getting-started-n8n-with-dockercompose-eb602aaed5c0) for setup via Docker Compose)
  - 📦 `pnpm` installed globally (`npm install -g pnpm`)

  #### Steps

  1. Clone this repository inside your n8n custom nodes directory:

     ```bash
     mkdir -p ./n8n-data/custom
     cd ./n8n-data/custom
     git clone https://github.com/port-labs/n8n-nodes-portio-experimental.git
     cd n8n-nodes-portio-experimental
     ```

  2. Install dependencies and build the TypeScript source:

     ```bash
     pnpm install
     pnpm build
     ```

  3. If the build completes successfully, you’ll see a new `dist` directory containing the compiled nodes.

  ---

  ## 🧭 Quick Start

  ### Adding a Port node in n8n

  1. Create a new workflow in your running n8n instance.  
     ![Create workflow](docs/images/adding_node/1_create_workflow.png)

  2. Set the trigger to **“Manual Trigger”** so you can execute it by clicking.  
     ![Trigger workflow](docs/images/adding_node/2_trigger.png)

  3. Add a new node (`+` button) and search for `port`.  
     ![Search for port](docs/images/adding_node/3_search.png)

  4. Select the **Port.io** node and choose **“General Purpose AI Interaction”**.  
     ![Select node](docs/images/adding_node/4_general.png)

  5. Connect the trigger node to the Port node.  
     ![Connect nodes](docs/images/adding_node/5_connect.png)

  🎉 You’ve just deployed your first Port n8n node!

  ---

  ## 🔐 Adding Your Port Account

  You can store multiple Port credentials in n8n, but we’ll start with one.

  ### Requirements

  - A **Port.io** account with **AI features enabled**
  - Your **Client ID** and **Client Secret** (see [Port API guide](https://docs.port.io/build-your-software-catalog/custom-integration/api/))

  ### Steps

  1. Double-click your Port node.  
  2. Under **“Credential to connect with”**, choose “Create new credential.”  
     ![Create credential](docs/images/adding_credentials/1_create.png)
  3. Enter your Port `client_id` and `client_secret`, then click **Save**.  
     ![Save credential](docs/images/adding_credentials/2_save.png)

  > **Note:**
  > JWT authentication is currently not supported because it’s unsuitable for long-term credential storage. OAuth2 credentials are the recommended method.

  ---

  ## 🧠 Running the Node

  Before execution, ensure:

  - You have a **Manual Trigger** connected to a **Port node**  
  - Credentials are saved  
  - Your Port account has **AI features enabled**

  Then:

  1. Open your AI node and configure the parameters (for example, set a user prompt).  
     ![Parameters](docs/images/first_prompt/1_params.png)

  2. Execute the workflow manually and inspect the node output.  
     ![Result](docs/images/first_prompt/2_result.png)

  ✅ If successful, you’ll see an AI response from Port ready to be passed to subsequent nodes.

  ---

  ## ⚙️ API Endpoints Implemented

  > **Note:**
  > As of November 2025, only **AI prompt** endpoints are supported. Contributions for additional API paths are welcome.

  | Method | Path | Purpose | Path Params | Body (required) | Optional Params | Notes | Success Response |
  |---|---|---|---|---|---|---|---|
  | `POST` | `/v1/agent/:agentIdentifier/invoke` | Invoke a specific agent | `agentIdentifier` | — | `context`, `prompt`, `labels`, `provider`, `model` | Providers: `openai` \| `azure-openai` \| `anthropic` \| `bedrock` \| `port` <br> Models: `gpt-5` \| `claude-sonnet-4-20250514` | JSON agent result |
  | `POST` | `/v1/ai/invoke` | General-purpose AI interaction | — | `invocation_identifier`, `userPrompt`, `tools` | `labels`, `provider`, `model`, `systemPrompt`, `executionMode` | Execution mode: `Automatic` \| `Approval Required` | JSON result |
  | `GET` | `/v1/ai/invoke/:invocation_identifier` | Fetch invocation result | `invocation_identifier` | — | — | — | `{ ok: boolean, result: object }` |

  ---

  ## 🤝 Contributing

  Contributions are welcome!

  1. Fork the repo  
  2. Create a new branch (`feat/awesome-thing`)  
  3. Make your changes  
  4. Submit a PR with a clear description of your update  

  Please include tests and examples when possible.

  ---

  ## 🪪 License

  MIT © [Port Labs](https://www.port.io)

  ---

  ## 📦 Example Usage (code)

  ```javascript
  // Example: Calling a Port AI node programmatically via n8n API

  const axios = require('axios');

  const res = await axios.post('https://n8n.local/api/v1/workflows/1/execute', {
    userPrompt: 'Summarize this README for me!',
    provider: 'openai',
    model: 'gpt-5'
  });

  console.log(res.data);
  ```

  ---

  ## 🏷️ Metadata

  | Field | Value |
  |---|---|
  | **Package name** | `@port-labs/n8n-nodes-portio-experimental` |
  | **Version** | `1.0.0-alpha.5` (experimental release) |
  | **Node type** | Custom n8n nodes |
  | **Focus** | Port AI integrations |
  | **Status** | Experimental / early access |

ai_documentation_summary:
  {"purpose":"This n8n node enables users to invoke Port AI agents, perform general AI interactions, and fetch results from Port's AI APIs within n8n workflows.","capabilities":["Invoke specific Port AI agents by identifier","Perform general-purpose AI interactions with user prompts","Fetch results for previously invoked AI requests","Support multiple AI providers (OpenAI, Azure OpenAI, Anthropic, Bedrock, Port)","Support multiple AI models (gpt-5, claude-sonnet-4-20250514)","Configure execution modes (Automatic, Approval Required)"],"authentication":"API Key (Client ID and Client Secret required; OAuth2 recommended, JWT not supported)","commonUseCases":["Automated customer support responses via Port AI","Integrating AI-driven email drafting or summarization into workflows","Connecting n8n to Port's AI capabilities for business automation"],"limitations":["Only AI prompt endpoints are currently supported; additional REST integrations are planned for future releases","This is an experimental package with no official support for bugs or missing features","JWT authentication is not supported for long-term credential storage"],"relatedNodes":["Port API","Port Agent","Port AI Interaction"]}


node_type: n8n-nodes-twittershots.twitterShots
package_name: n8n-nodes-twittershots
display_name: TwitterShots
description: Get Tweet screenshots from TwitterShots API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  {
  "type": "main",
  "required": true
  }
  ]

updated_at: 2026-04-16 09:43:36
author_name: wuxinhua
author_github_url: https://github.com/0xinhua/
npm_package_name: n8n-nodes-twittershots
npm_version: 0.3.0
community_fetched_at: 2026-04-16T09:43:36.399Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "tweetScreenshot",
      "options": [
        {
          "name": "Tweet Screenshot",
          "value": "tweetScreenshot"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a tweet screenshot",
          "description": "Get a screenshot of a tweet"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tweetScreenshot"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a tweet screenshot",
      "description": "Get a screenshot of a tweet",
      "resource": "tweetScreenshot"
    }
  ]

npm_readme:
  ![n8n TwitterShots node image](./n8n-TwitterShots-node.png)

  # n8n-nodes-twittershots

  A n8n node lets you easily screenshot X (Twitter) posts in your workflows with TwitterShots API.

  - [TwitterShots](https://twittershots.com/) is professional X/Tweet screenshot generator.
  - [n8n](https://n8n.io/) is a fair-code licensed workflow automation platform.

  ## Features

  - Multiple output formats (SVG, PNG, HTML)
  - Light/Dark theme support
  - Customizable logo options (X, bluebird, or none)
  - Configurable display options (full text, timestamp, view count, statistics)
  - Simple API integration

  ## Authentication

  Before using the node, you need to set up TwitterShots API credentials:

  1. Visit [TwitterShots account](https://twittershots.com/account/settings) to get your API key
  2. Add your API key to n8n credentials

  For detailed information about API credentials and parameters, please refer to the [API Documentation](https://twittershots.com/docs/api).

  ## Usage

  1. Search TwitterShots and add TwitterShots node to your workflow
  2. Select "Tweet Screenshot" resource
  3. Select "Get a tweet screenshot" action
  4. Create TwitterShots API credentials
  5. Select Tweet Screenshot Resource
  6. Enter the tweet ID and configure output format and display options
  7. Run the workflow to get your screenshot

  ## Dev and test node local

  ### Prerequisites

  You need the following installed on your development machine:

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

  1.Clone your new repo

    ```
    git clone https://github.com/0xinhua/n8n-nodes-twittershots
    ```

  2.When you are ready to test your node, publish it locally

  ```
  # In your n8n-nodes-twittershots directory
  npm i
  npm run build
  npm link
  ```

  3. Install the node into your local n8n instance:

  ```
  ~/.n8n/custom/

  # In the nodes directory within your n8n installation
  npm link n8n-nodes-twittershots
  ```

  4.Start n8n:

  ```
  n8n start
  ```

  5.Open n8n in your browser. You should see TwitterShots nodes when you search for them in the nodes panel.

  Checkout full docs [test n8n node](https://docs.n8n.io/integrations/creating-nodes/build/declarative-style-node/#test-your-node).

  ### Issues

  If you need help or have any questions:

  - Check the [API Documentation](https://twittershots.com/docs/api)
  - Email us at support@twittershots.com
  - Create an issue on [GitHub Issues](https://github.com/0xinhua/n8n-nodes-twittershots/issues)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Generates screenshots of X (Twitter) posts using the TwitterShots API within n8n workflows.","capabilities":["Generate screenshots in SVG, PNG, or HTML formats","Support light and dark themes","Customize logo options (X, bluebird, or none)","Configure display options (full text, timestamp, view count, statistics)","Retrieve tweet ID from workflow parameters"],"authentication":"API key required","commonUseCases":["Automated social media monitoring","Content archiving and backup","Social media analytics visualization","Automated reporting workflows"],"limitations":["Requires external API key from TwitterShots service","Dependent on TwitterShots API availability and rate limits","No built-in error handling for API failures mentioned in README"],"relatedNodes":["n8n Twitter node","n8n HTTP Request node","n8n Code node"]}


node_type: n8n-nodes-emailvalidation.emailValidation
package_name: n8n-nodes-emailvalidation
display_name: EmailValidation
description: Validate email addresses via emailvalidation.io API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: everapi-user
author_github_url: https://github.com/everapihq/
npm_package_name: n8n-nodes-emailvalidation
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.403Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "validateEmail",
      "options": [
        {
          "name": "Validate Email",
          "value": "validateEmail",
          "action": "Validate email address",
          "routing": {
            "request": {
              "qs": {
                "email": "={{$parameter[\"email\"]}}",
                "catch_all": "={{$parameter[\"catchAll\"] ? 1 : undefined}}"
              },
              "url": "/info",
              "method": "GET"
            }
          },
          "description": "Retrieve information about an email address"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Validate Email",
      "value": "validateEmail",
      "action": "Validate email address",
      "routing": {
        "request": {
          "qs": {
            "email": "={{$parameter[\"email\"]}}",
            "catch_all": "={{$parameter[\"catchAll\"] ? 1 : undefined}}"
          },
          "url": "/info",
          "method": "GET"
        }
      },
      "description": "Retrieve information about an email address"
    }
  ]

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

  # n8n-nodes-emailvalidation

  This package provides the EmailValidation community node for [n8n](https://n8n.io). It integrates the [emailvalidation.io API](https://emailvalidation.io) to validate and verify email addresses.

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

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

  ## Prerequisites

  You need the following installed on your development machine:

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

  ## Using this starter

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

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

  ## More information

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

  ## EmailValidation Node

  Validate and verify email addresses using the `emailvalidation.io` API.

  ### Credentials

  - Create credentials of type `EmailValidation API`.
  - Fields:
    - API Key (stored securely)
    - Base URL: defaults to `https://api.emailvalidation.io/v1`

  Authentication is sent via query parameter `apikey` (the API also supports header-based auth). See docs: [`https://emailvalidation.io/docs/`](https://emailvalidation.io/docs/).

  ### Operation

  - Validate Email
    - Email (required) — the email address to validate
    - Catch All (optional) — when enabled, sets `catch_all=1` to perform catch-all detection (paid plans)

  Per endpoint docs: [`https://emailvalidation.io/docs/info`](https://emailvalidation.io/docs/info)

  The node performs a `GET /v1/info` with `email`, optional `catch_all`, and `apikey` query parameters. Example request:

  ```bash
  curl -G "https://api.emailvalidation.io/v1/info" \
    --data-urlencode "email=support@emailvalidation.io" \
    --data-urlencode "apikey=YOUR-API-KEY"
  ```

  ### Example Output

  ```json
  {
    "email": "[email protected]",
    "user": "support",
    "tag": "",
    "domain": "emailvalidation.io",
    "smtp_check": true,
    "mx_found": true,
    "did_you_mean": "",
    "role": true,
    "disposable": false,
    "score": 0.64,
    "state": "deliverable",
    "reason": "valid_mailbox",
    "free": false,
    "format_valid": true,
    "catch_all": null
  }
  ```

  See documentation for field meanings and state/reason descriptions: [`https://emailvalidation.io/docs/info`](https://emailvalidation.io/docs/info)

  ## License

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

ai_documentation_summary:
  {"purpose":"Validates and verifies email addresses using the emailvalidation.io API to check deliverability, format, and other email quality metrics.","capabilities":["Validate email address format and deliverability","Detect disposable email addresses","Identify catch-all domains","Check if email is a role-based address","Verify MX records exist","Perform SMTP checks","Provide validation score and state"],"authentication":"API Key required (sent via query parameter 'apikey' or supported via header-based auth)","commonUseCases":["Email verification before sending campaigns","Cleaning email lists to remove invalid addresses","Preventing bounce rates in email marketing","Validating user email addresses during registration"],"limitations":["Catch-all detection requires paid plans","Requires valid API key from emailvalidation.io","May have rate limits based on API plan"],"relatedNodes":["EmailSend","EmailTemplates","HTTP Request"]}


node_type: n8n-nodes-roam.roam
package_name: n8n-nodes-roam
display_name: Roam
description: Interact with Roam
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: robfigroam
author_github_url: https://github.com/WonderInventions/
npm_package_name: n8n-nodes-roam
npm_version: 0.1.10
community_fetched_at: 2026-04-16T09:43:36.405Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Meeting",
          "value": "meeting"
        },
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Transcript",
          "value": "transcript"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send Message",
          "value": "send",
          "action": "Send a message",
          "description": "Send a message to a Roam group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Meeting Link",
          "value": "create",
          "action": "Create a meeting link",
          "description": "Create a meeting link"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "meeting"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Transcript Info",
          "value": "info",
          "action": "Get transcript info",
          "description": "Get detailed information about a specific transcript"
        },
        {
          "name": "List Transcripts",
          "value": "list",
          "action": "List transcripts",
          "description": "List transcripts with optional date filtering"
        },
        {
          "name": "Prompt Transcript",
          "value": "prompt",
          "action": "Prompt a transcript",
          "description": "Ask a question about a transcript using AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transcript"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Message",
      "value": "send",
      "action": "Send a message",
      "description": "Send a message to a Roam group",
      "resource": "message"
    },
    {
      "name": "Create Meeting Link",
      "value": "create",
      "action": "Create a meeting link",
      "description": "Create a meeting link",
      "resource": "meeting"
    },
    {
      "name": "Get Transcript Info",
      "value": "info",
      "action": "Get transcript info",
      "description": "Get detailed information about a specific transcript",
      "resource": "transcript"
    },
    {
      "name": "List Transcripts",
      "value": "list",
      "action": "List transcripts",
      "description": "List transcripts with optional date filtering",
      "resource": "transcript"
    },
    {
      "name": "Prompt Transcript",
      "value": "prompt",
      "action": "Prompt a transcript",
      "description": "Ask a question about a transcript using AI",
      "resource": "transcript"
    }
  ]

npm_readme:
  # n8n-nodes-roam

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

  Roam is a video conferencing and messaging platform that enables teams to connect, collaborate, and communicate effectively through video meetings, messaging, 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)  
  [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

  ### Roam Node
  - **Send Message**: Send messages to Roam groups
  - **Create Meeting Link**: Create new video meeting links

  ### Roam Trigger Node
  - **Webhook Events**: Trigger workflows when webhook events are received from Roam

  ## Credentials

  To use this node, you need to authenticate with Roam's API using OAuth2.

  1. Go to your Roam developer account at [developer.ro.am](https://developer.ro.am)
  2. Create an API Key application
  3. Enable permissions corresponding to what you want it to do: 
    - Actions
      - Send chat message: `chat:send_message`, `groups:read`
      - Create meeting link: `meetinglink:write`
    - Webhooks: `webhook:write`
      - New Recording: `recordings:read`
      - New Transcript: `transcript:read`
  3. In n8n, create a new credential of type "Roam API Key"
  4. Fill in your secret key

  ## Compatibility

  - n8n version: 1.0.0+
  - Node.js version: 18.0.0+
  - Tested with n8n versions: 1.0.x, 1.1.x

  ## Usage

  ### Basic Setup
  1. Install the community node
  2. Set up your Roam OAuth2 credentials
  3. Use the Roam node to send messages or create meetings
  4. Use the Roam Trigger node to respond to webhook events

  ### Example Workflow
  1. **Trigger**: HTTP Request (when a form is submitted)
  2. **Action**: Roam - Send Message (notify team about the submission)
  3. **Action**: Roam - Create Meeting Link (schedule a follow-up meeting)

  ## Development

  To run n8n locally: 

  - Run `ngrok http 5678` to support incoming webhooks. Set `WEBHOOK_URL` to the ngrok URL.
  - Run `npm run dev`

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Roam API Documentation](https://developer.ro.am/)
  * [Roam Developer Portal](https://developer.ro.am)

  ## Version history

  ### 0.1.1
  - Initial release
  - Roam node with meeting and messaging operations
  - Roam Trigger node for webhook events
  - Basic transport layer for API communication
  - OAuth2 authentication

ai_documentation_summary:
  {"purpose":"A community node that enables n8n workflows to interact with Roam, a video conferencing and messaging platform, for sending messages and creating meeting links.","capabilities":["Send messages to Roam groups","Create new video meeting links","Trigger workflows on webhook events (new recordings, new transcripts)","Read recordings and transcripts via webhooks"],"authentication":"OAuth2","commonUseCases":["Notifying teams about form submissions via group messages","Scheduling follow-up meetings automatically after events","Automated responses to new Roam recordings or transcripts"],"limitations":["Community node (not official n8n node)","Requires manual setup of OAuth2 credentials via Roam developer portal","Requires n8n version 1.0.0+ and Node.js 18.0.0+"],"relatedNodes":["HTTP Request","Webhook"]}


node_type: n8n-nodes-blooio.blooioMessaging
package_name: n8n-nodes-blooio
display_name: Blooio Messaging
description: Send messages via the Blooio API (v3)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dave_xt
author_github_url: https://github.com/blooio/
npm_package_name: n8n-nodes-blooio
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.406Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send a message",
          "routing": {
            "request": {
              "url": "=/v1/api/messages",
              "method": "POST",
              "headers": {
                "Idempotency-Key": "={{$parameter[\"idempotencyKey\"]}}"
              }
            }
          },
          "description": "Send a single text or attachment message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send a message",
      "routing": {
        "request": {
          "url": "=/v1/api/messages",
          "method": "POST",
          "headers": {
            "Idempotency-Key": "={{$parameter[\"idempotencyKey\"]}}"
          }
        }
      },
      "description": "Send a single text or attachment message",
      "resource": "message"
    }
  ]

npm_readme:
  # n8n-nodes-blooio

  This is an n8n community node for [Blooio](https://blooio.com). It lets you send and receive iMessages, RCS, SMS, and more through the Blooio API in your n8n workflows.

  [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

  ### Messages

  - **Send Message** - Send text messages and attachments via iMessage/SMS/RCS
  - **Get Message** - Retrieve complete message details including delivery status
  - **Get Message Status** - Check the delivery status of a message
  - **Cancel Message** - Cancel a queued or scheduled message

  ### Contacts

  - **Check Capabilities** - Check if a phone number or email supports iMessage, SMS, or RCS

  ### Webhooks

  - **Get Webhook** - Get the currently configured webhook URL
  - **Set Webhook** - Configure webhook URL for receiving inbound messages and delivery notifications

  ## Credentials

  ### API Key Authentication

  1. Sign up for a Blooio account at [https://blooio.com](https://blooio.com)
  2. Navigate to your Dashboard
  3. Go to Settings > API Keys
  4. Create a new API key or copy an existing one
  5. In n8n, create a new Blooio credential:
     - Select "API Key" as the authentication method
     - Paste your API key
     - Save the credential

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Blooio API Documentation](https://docs.blooio.com)
  - [Blooio Dashboard](https://dashboard.blooio.com)
  - [Support](mailto:support@blooio.com)

ai_documentation_summary:
  {"purpose":"A community n8n node that enables sending and receiving iMessages, RCS, and SMS through the Blooio API v3.","capabilities":["Send text messages with attachments via iMessage/SMS/RCS","Retrieve complete message details including delivery status","Check delivery status of specific messages","Cancel queued or scheduled messages","Check phone number or email capabilities for iMessage, SMS, or RCS support","Configure inbound message and delivery notification webhooks"],"authentication":"API Key","commonUseCases":["Automated customer communication via SMS or RCS","Two-way messaging workflows with delivery confirmation","Checking recipient device capabilities before sending","Scheduling and managing message delivery"],"limitations":["Requires a separate Blooio account and API key","Compatible only with n8n version 1.60.0 or later"],"relatedNodes":["HTTP Request","Webhook"]}


node_type: n8n-nodes-pdfvector.pdfVector
package_name: n8n-nodes-pdfvector
display_name: PDF Vector
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: phuctm97
author_github_url: https://github.com/phuctm97/
npm_package_name: n8n-nodes-pdfvector
npm_version: 2.0.5
community_fetched_at: 2026-04-16T09:43:36.407Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Convert PDFs, Word, Excel documents, and images to clean markdown, extract structured data with AI, process invoices with specialized parsing, and search millions of academic papers across PubMed, ArXiv, Google Scholar, and more.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Academic",
          "value": "academic"
        },
        {
          "name": "Bank Statement",
          "value": "bankStatement"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Identity Document",
          "value": "identity"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse a document",
          "description": "Extract text and page count from a document"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask about a document",
          "description": "Ask a question about a document and get an AI answer"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract from a document",
          "description": "Extract structured data from a document using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse a identity document",
          "description": "Extract text and page count from a identity document"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask about a identity document",
          "description": "Ask a question about a identity document and get an AI answer"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract from a identity document",
          "description": "Extract structured data from a identity document using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "identity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse a invoice",
          "description": "Extract text and page count from a invoice"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask about a invoice",
          "description": "Ask a question about a invoice and get an AI answer"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract from a invoice",
          "description": "Extract structured data from a invoice using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parse",
      "options": [
        {
          "name": "Parse",
          "value": "parse",
          "action": "Parse a bank statement",
          "description": "Extract text and page count from a bank statement"
        },
        {
          "name": "Ask",
          "value": "ask",
          "action": "Ask about a bank statement",
          "description": "Ask a question about a bank statement and get an AI answer"
        },
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract from a bank statement",
          "description": "Extract structured data from a bank statement using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bankStatement"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search academic papers",
          "description": "Search for academic papers across multiple databases"
        },
        {
          "name": "Fetch",
          "value": "fetch",
          "action": "Fetch papers by ID",
          "description": "Fetch specific papers by DOI, PubMed ID, ArXiv ID, etc"
        },
        {
          "name": "Find Citations",
          "value": "findCitations",
          "action": "Find citations for text",
          "description": "Find relevant academic citations for a paragraph of text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "academic"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse a document",
      "description": "Extract text and page count from a document",
      "resource": "document"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask about a document",
      "description": "Ask a question about a document and get an AI answer",
      "resource": "document"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract from a document",
      "description": "Extract structured data from a document using JSON Schema",
      "resource": "document"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse a identity document",
      "description": "Extract text and page count from a identity document",
      "resource": "identity"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask about a identity document",
      "description": "Ask a question about a identity document and get an AI answer",
      "resource": "identity"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract from a identity document",
      "description": "Extract structured data from a identity document using JSON Schema",
      "resource": "identity"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse a invoice",
      "description": "Extract text and page count from a invoice",
      "resource": "invoice"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask about a invoice",
      "description": "Ask a question about a invoice and get an AI answer",
      "resource": "invoice"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract from a invoice",
      "description": "Extract structured data from a invoice using JSON Schema",
      "resource": "invoice"
    },
    {
      "name": "Parse",
      "value": "parse",
      "action": "Parse a bank statement",
      "description": "Extract text and page count from a bank statement",
      "resource": "bankStatement"
    },
    {
      "name": "Ask",
      "value": "ask",
      "action": "Ask about a bank statement",
      "description": "Ask a question about a bank statement and get an AI answer",
      "resource": "bankStatement"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract from a bank statement",
      "description": "Extract structured data from a bank statement using JSON Schema",
      "resource": "bankStatement"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search academic papers",
      "description": "Search for academic papers across multiple databases",
      "resource": "academic"
    },
    {
      "name": "Fetch",
      "value": "fetch",
      "action": "Fetch papers by ID",
      "description": "Fetch specific papers by DOI, PubMed ID, ArXiv ID, etc",
      "resource": "academic"
    },
    {
      "name": "Find Citations",
      "value": "findCitations",
      "action": "Find citations for text",
      "description": "Find relevant academic citations for a paragraph of text",
      "resource": "academic"
    }
  ]

npm_readme:
  # n8n-nodes-pdfvector

  [n8n](https://n8n.io/) community node for [PDF Vector](https://www.pdfvector.com) — parse PDF, Word, Excel, and image documents to structured markdown, ask AI questions about documents, extract structured data with JSON Schema, and search academic papers across multiple databases.

  ## Installation

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

  In n8n, go to **Settings > Community Nodes** and install:

  ```
  n8n-nodes-pdfvector
  ```

  ## Credentials

  1. Sign up at [app.pdfvector.com](https://app.pdfvector.com)
  2. Go to **Settings** to get your API key
  3. In n8n, create a new **PDF Vector API** credential and paste your API key

  **Custom instance:** If you have a custom PDF Vector instance, enter your instance domain in the credential's Domain field. Otherwise, leave it as `global.pdfvector.com`.

  ## Operations

  ### Document

  Parse, ask, and extract from generic documents (PDF, Word, Excel, CSV, Image).

  | Operation | Description |
  |-----------|-------------|
  | **Parse** | Extract text content and page count |
  | **Ask** | Ask a question about the document and get an AI answer |
  | **Extract** | Extract structured data using a JSON Schema |

  ### Identity Document

  Parse, ask, and extract from identity documents (passports, driver's licenses, ID cards).

  | Operation | Description |
  |-----------|-------------|
  | **Parse** | Extract text from identity documents (Pro/Max models only) |
  | **Ask** | Ask a question about the identity document |
  | **Extract** | Extract structured fields (name, DOB, document number, etc.) |

  ### Invoice

  Parse, ask, and extract from invoices.

  | Operation | Description |
  |-----------|-------------|
  | **Parse** | Extract text from invoices (Pro/Max models only) |
  | **Ask** | Ask a question about the invoice |
  | **Extract** | Extract structured invoice data (number, date, items, totals) |

  ### Bank Statement

  Parse, ask, and extract from bank statements.

  | Operation | Description |
  |-----------|-------------|
  | **Parse** | Extract text from bank statements (Pro/Max models only) |
  | **Ask** | Ask a question about the bank statement |
  | **Extract** | Extract structured bank statement data |

  ### Academic

  Search, fetch, and find citations across academic databases.

  | Operation | Description |
  |-----------|-------------|
  | **Search** | Search for papers across 7 academic databases |
  | **Fetch** | Fetch specific papers by DOI, PubMed ID, ArXiv ID, etc. |
  | **Find Citations** | Find relevant citations for a paragraph of text |

  **Supported providers:** Semantic Scholar, PubMed, ArXiv, Google Scholar, OpenAlex, ERIC, Europe PMC.

  ## Model Tiers

  All document operations support model selection:

  | Tier | Best for | Max pages | Max size |
  |------|----------|-----------|----------|
  | **Auto** | Automatic selection (default) | 1000 | 500MB |
  | **Nano** | Simple text documents | 30 | 10MB |
  | **Mini** | Tables, structured content | 30 | 10MB |
  | **Pro** | Complex docs, images, handwriting | 30 | 40MB |
  | **Max** | Large docs, full capabilities + HTML | 1000 | 500MB |

  Identity, Invoice, and Bank Statement **parse** operations only support Auto, Pro, and Max.

  ## Document ID Tracking

  All document operations (except Academic) support an optional **Document ID** field for usage tracking. The ID is returned in the response and saved in your usage records.

  ## Compatibility

  - **n8n version:** 1.0+
  - **Node.js version for local development and CI:** 22+

  ## Resources

  - [PDF Vector API Reference](https://global.pdfvector.com/api/reference)
  - [PDF Vector Dashboard](https://app.pdfvector.com)
  - [PDF Vector Website](https://www.pdfvector.com)
  - [Report Issues](https://github.com/phuctm97/n8n-nodes-pdfvector/issues)

  ## Version History

  - **2.x:** Unified PDF Vector node with document, identity, invoice, bank statement, and academic operations
  - **1.x:** Earlier PDF Vector integration releases

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"Converts PDF and Word documents to clean Markdown, extracts structured data via AI, and searches academic publications across multiple databases like PubMed and ArXiv.","capabilities":["Parse PDF and Word documents into Markdown","Ask AI-powered questions about document content","Search academic publications across PubMed, Semantic Scholar, Google Scholar, ArXiv, and ERIC","Fetch specific publications by DOI, PubMed ID, ArXiv ID, Semantic Scholar ID, or ERIC ID","Support configurable LLM usage (auto, never, always) for document parsing","Filter academic search results by year range"],"authentication":"API key required (PDF Vector API key)","commonUseCases":["Convert research papers to Markdown for further processing","Extract structured data from invoices or reports","Search academic literature across multiple databases","Analyze document content with AI to answer specific questions"],"limitations":["Requires external API key from PDF Vector service","Credit-based pricing model (1-2 credits per page for parsing, 3 credits per ask, 2 credits per search)","Minimum n8n version 0.202.0 and Node.js 20.15 or later required","Document URL must be publicly accessible for parsing operations"],"relatedNodes":["n8n-nodes-webhook.webhook","n8n-nodes-function.function","n8n-nodes-http.request"]}


node_type: @videodb/n8n-nodes-videodb.videoDb
package_name: @videodb/n8n-nodes-videodb
display_name: VideoDB
description: Interact with the VideoDB API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: videodb-admin
author_github_url: https://github.com/video-db/n8n-nodes-videodb.git
npm_package_name: @videodb/n8n-nodes-videodb
npm_version: 1.1.1
community_fetched_at: 2026-04-16T09:43:36.409Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "fetchVideos",
      "options": [
        {
          "name": "Index Spoken Words",
          "value": "indexSpokenWords",
          "action": "Index spoken words",
          "description": "Perform semantic indexing on the spoken words in a video"
        },
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get Transcript",
          "description": "Get transcript for a video"
        },
        {
          "name": "Search in a Video",
          "value": "searchInVideo",
          "action": "Search in a Video",
          "description": "Search for a query within a video"
        },
        {
          "name": "Generate Stream",
          "value": "generateStream",
          "action": "Generate a video stream",
          "description": "Generates a stream URL for the video"
        },
        {
          "name": "Index Scenes",
          "value": "indexScenes",
          "action": "Index scenes",
          "description": "Indexes the scenes of the video"
        },
        {
          "name": "List Scene Indexes",
          "value": "listSceneIndexes",
          "action": "List scene indexes",
          "description": "Lists all the scene indexes for the video"
        },
        {
          "name": "Get Scene Index",
          "value": "getSceneIndex",
          "action": "Get scene index",
          "description": "Retrieves a specific scene index"
        },
        {
          "name": "Delete Scene Index",
          "value": "deleteSceneIndex",
          "action": "Delete scene index",
          "description": "Deletes a specific scene index"
        },
        {
          "name": "Add Subtitle",
          "value": "addSubtitle",
          "action": "Add subtitles",
          "description": "Adds subtitles to the video"
        },
        {
          "name": "Translate Transcript",
          "value": "translateTranscript",
          "action": "Translate transcript",
          "description": "Translate transcript of a video to a given language"
        },
        {
          "name": "Generate Audio URL",
          "value": "generateAudioUrl",
          "action": "Generate Audio URL",
          "description": "Generates a temporary, signed URL to access the audio file"
        },
        {
          "name": "Generate Image URL",
          "value": "generateImageUrl",
          "action": "Generate Image URL",
          "description": "Generates a temporary, signed URL to access the image file"
        },
        {
          "name": "Create Collection",
          "value": "createCollection",
          "action": "Create Collection",
          "description": "Creates a new collection"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download",
          "description": "Requests a download URL for a given stream link"
        },
        {
          "name": "Get Collection",
          "value": "getCollection",
          "action": "Get Collection",
          "description": "Fetches a single collection by its ID"
        },
        {
          "name": "Get Collections",
          "value": "getCollections",
          "action": "Get Collections",
          "description": "Fetches all collections for the user"
        },
        {
          "name": "Update Collection",
          "value": "updateCollection",
          "action": "Update Collection",
          "description": "Updates a collection's name or description"
        },
        {
          "name": "YouTube Search",
          "value": "youtubeSearch",
          "action": "YouTube Search",
          "description": "Performs a YouTube search within a collection"
        },
        {
          "name": "Delete Audio",
          "value": "deleteAudio",
          "action": "Delete Audio",
          "description": "Deletes a specific audio asset by its ID from a collection"
        },
        {
          "name": "Delete Image",
          "value": "deleteImage",
          "action": "Delete Image",
          "description": "Deletes a specific image by its ID from a collection"
        },
        {
          "name": "Delete Video",
          "value": "deleteVideo",
          "action": "Delete Video",
          "description": "Deletes a specific video by its ID from a collection"
        },
        {
          "name": "Delete Collection",
          "value": "deleteCollection",
          "action": "Delete Collection",
          "description": "Deletes a collection and all its assets"
        },
        {
          "name": "Dub Video",
          "value": "dubVideo",
          "action": "Dub Video",
          "description": "Dubs a video into a different language"
        },
        {
          "name": "Generate Image",
          "value": "generateImage",
          "action": "Generate Image",
          "description": "Generates an image from a text prompt"
        },
        {
          "name": "Generate Music",
          "value": "generateMusic",
          "action": "Generate Music",
          "description": "Generates music from a text prompt"
        },
        {
          "name": "Generate Sound Effect",
          "value": "generateSoundEffect",
          "action": "Generate Sound Effect",
          "description": "Generates a sound effect from a text prompt"
        },
        {
          "name": "Generate Voice",
          "value": "generateVoice",
          "action": "Generate Voice",
          "description": "Generates voice from text"
        },
        {
          "name": "Generate Video",
          "value": "generateVideo",
          "action": "Generate Video",
          "description": "Generates a video from a text prompt"
        },
        {
          "name": "Generate Text",
          "value": "generateText",
          "action": "Generate Text",
          "description": "Generates text from a prompt using AI models"
        },
        {
          "name": "Get Audio",
          "value": "getAudio",
          "action": "Get Audio",
          "description": "Retrieves a specific audio asset by its ID from a collection"
        },
        {
          "name": "Get Audios",
          "value": "getAudios",
          "action": "Get Audios",
          "description": "Retrieves a list of all audio assets within a collection"
        },
        {
          "name": "Get Image",
          "value": "getImage",
          "action": "Get Image",
          "description": "Retrieves a specific image by its ID from a collection"
        },
        {
          "name": "Get Images",
          "value": "getImages",
          "action": "Get Images",
          "description": "Retrieves a list of all images within a collection"
        },
        {
          "name": "Get Video",
          "value": "getVideo",
          "action": "Get Video",
          "description": "Retrieves a specific video by its ID from a collection"
        },
        {
          "name": "Get Videos",
          "value": "getVideos",
          "action": "Get Videos",
          "description": "Retrieves a list of all videos within a collection"
        },
        {
          "name": "Search in a Collection",
          "value": "search",
          "action": "Search in a Collection",
          "description": "Performs a search query across the collection"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload",
          "description": "Uploads a media file (video, audio, or image) from a URL"
        },
        {
          "name": "Record Meeting",
          "value": "recordMeeting",
          "action": "Record Meeting",
          "description": "Records a meeting using a bot and saves it to the collection"
        },
        {
          "name": "Get Meeting",
          "value": "getMeeting",
          "action": "Get Meeting",
          "description": "Retrieves a specific meeting recording by its ID from a collection"
        },
        {
          "name": "Compile Timeline (VideoDB's Video Editor)",
          "value": "compileTimeline",
          "action": "Compile Timeline (VideoDB's Video Editor)",
          "description": "VideoDB's Video Editor - Build a multi-track timeline (video + overlays) and get a stream/player URL"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Index Spoken Words",
      "value": "indexSpokenWords",
      "action": "Index spoken words",
      "description": "Perform semantic indexing on the spoken words in a video"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get Transcript",
      "description": "Get transcript for a video"
    },
    {
      "name": "Search in a Video",
      "value": "searchInVideo",
      "action": "Search in a Video",
      "description": "Search for a query within a video"
    },
    {
      "name": "Generate Stream",
      "value": "generateStream",
      "action": "Generate a video stream",
      "description": "Generates a stream URL for the video"
    },
    {
      "name": "Index Scenes",
      "value": "indexScenes",
      "action": "Index scenes",
      "description": "Indexes the scenes of the video"
    },
    {
      "name": "List Scene Indexes",
      "value": "listSceneIndexes",
      "action": "List scene indexes",
      "description": "Lists all the scene indexes for the video"
    },
    {
      "name": "Get Scene Index",
      "value": "getSceneIndex",
      "action": "Get scene index",
      "description": "Retrieves a specific scene index"
    },
    {
      "name": "Delete Scene Index",
      "value": "deleteSceneIndex",
      "action": "Delete scene index",
      "description": "Deletes a specific scene index"
    },
    {
      "name": "Add Subtitle",
      "value": "addSubtitle",
      "action": "Add subtitles",
      "description": "Adds subtitles to the video"
    },
    {
      "name": "Translate Transcript",
      "value": "translateTranscript",
      "action": "Translate transcript",
      "description": "Translate transcript of a video to a given language"
    },
    {
      "name": "Generate Audio URL",
      "value": "generateAudioUrl",
      "action": "Generate Audio URL",
      "description": "Generates a temporary, signed URL to access the audio file"
    },
    {
      "name": "Generate Image URL",
      "value": "generateImageUrl",
      "action": "Generate Image URL",
      "description": "Generates a temporary, signed URL to access the image file"
    },
    {
      "name": "Create Collection",
      "value": "createCollection",
      "action": "Create Collection",
      "description": "Creates a new collection"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download",
      "description": "Requests a download URL for a given stream link"
    },
    {
      "name": "Get Collection",
      "value": "getCollection",
      "action": "Get Collection",
      "description": "Fetches a single collection by its ID"
    },
    {
      "name": "Get Collections",
      "value": "getCollections",
      "action": "Get Collections",
      "description": "Fetches all collections for the user"
    },
    {
      "name": "Update Collection",
      "value": "updateCollection",
      "action": "Update Collection",
      "description": "Updates a collection's name or description"
    },
    {
      "name": "YouTube Search",
      "value": "youtubeSearch",
      "action": "YouTube Search",
      "description": "Performs a YouTube search within a collection"
    },
    {
      "name": "Delete Audio",
      "value": "deleteAudio",
      "action": "Delete Audio",
      "description": "Deletes a specific audio asset by its ID from a collection"
    },
    {
      "name": "Delete Image",
      "value": "deleteImage",
      "action": "Delete Image",
      "description": "Deletes a specific image by its ID from a collection"
    },
    {
      "name": "Delete Video",
      "value": "deleteVideo",
      "action": "Delete Video",
      "description": "Deletes a specific video by its ID from a collection"
    },
    {
      "name": "Delete Collection",
      "value": "deleteCollection",
      "action": "Delete Collection",
      "description": "Deletes a collection and all its assets"
    },
    {
      "name": "Dub Video",
      "value": "dubVideo",
      "action": "Dub Video",
      "description": "Dubs a video into a different language"
    },
    {
      "name": "Generate Image",
      "value": "generateImage",
      "action": "Generate Image",
      "description": "Generates an image from a text prompt"
    },
    {
      "name": "Generate Music",
      "value": "generateMusic",
      "action": "Generate Music",
      "description": "Generates music from a text prompt"
    },
    {
      "name": "Generate Sound Effect",
      "value": "generateSoundEffect",
      "action": "Generate Sound Effect",
      "description": "Generates a sound effect from a text prompt"
    },
    {
      "name": "Generate Voice",
      "value": "generateVoice",
      "action": "Generate Voice",
      "description": "Generates voice from text"
    },
    {
      "name": "Generate Video",
      "value": "generateVideo",
      "action": "Generate Video",
      "description": "Generates a video from a text prompt"
    },
    {
      "name": "Generate Text",
      "value": "generateText",
      "action": "Generate Text",
      "description": "Generates text from a prompt using AI models"
    },
    {
      "name": "Get Audio",
      "value": "getAudio",
      "action": "Get Audio",
      "description": "Retrieves a specific audio asset by its ID from a collection"
    },
    {
      "name": "Get Audios",
      "value": "getAudios",
      "action": "Get Audios",
      "description": "Retrieves a list of all audio assets within a collection"
    },
    {
      "name": "Get Image",
      "value": "getImage",
      "action": "Get Image",
      "description": "Retrieves a specific image by its ID from a collection"
    },
    {
      "name": "Get Images",
      "value": "getImages",
      "action": "Get Images",
      "description": "Retrieves a list of all images within a collection"
    },
    {
      "name": "Get Video",
      "value": "getVideo",
      "action": "Get Video",
      "description": "Retrieves a specific video by its ID from a collection"
    },
    {
      "name": "Get Videos",
      "value": "getVideos",
      "action": "Get Videos",
      "description": "Retrieves a list of all videos within a collection"
    },
    {
      "name": "Search in a Collection",
      "value": "search",
      "action": "Search in a Collection",
      "description": "Performs a search query across the collection"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload",
      "description": "Uploads a media file (video, audio, or image) from a URL"
    },
    {
      "name": "Record Meeting",
      "value": "recordMeeting",
      "action": "Record Meeting",
      "description": "Records a meeting using a bot and saves it to the collection"
    },
    {
      "name": "Get Meeting",
      "value": "getMeeting",
      "action": "Get Meeting",
      "description": "Retrieves a specific meeting recording by its ID from a collection"
    },
    {
      "name": "Compile Timeline (VideoDB's Video Editor)",
      "value": "compileTimeline",
      "action": "Compile Timeline (VideoDB's Video Editor)",
      "description": "VideoDB's Video Editor - Build a multi-track timeline (video + overlays) and get a stream/player URL"
    }
  ]

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

  # n8n-nodes-videodb

  This is an n8n community node. It lets you use the [VideoDB](https://videodb.com) in your n8n workflows.

  Power your video and media automation with VideoDB. Access advanced video indexing, search, and management features. Get started at https://console.videodb.io

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

  ## Table of Contents

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

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

  **Video**
  - Fetch, upload, index, search, and manage videos
  - Get transcripts and generate streams
  - Translate transcripts to any language
  - Scene extraction and indexing
  - Add subtitles

  **Timeline Editor**
  - Compile multi-track timelines with inline videos
  - Overlay images, audio, and text with custom styling

  **Audio & Images**
  - Upload and manage audio/image assets
  - Generate voice and URLs

  **Collections**
  - Create, list, and manage collections

  ## Credentials

  An API key is required in order to issue calls to the VideoDB API. Sign up to retrieve your API key at https://console.videodb.io.

  ## Compatibility

  Tested locally against n8n v1.93.0.

  ## Usage

  You should familiarize yourself with the various response objects, to understand what data is provided by the API, and how to access individual insights. Response object formats are available in the VideoDB API documentation.

  ## Resources

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

  ## Development

  To streamline and accelerate the development process, follow these steps:

  1. Install _n8n_ globally (`npm add -g n8n`).
  2. Set the `N8N_CUSTOM_EXTENSIONS` environment variable to the `/dist` directory of this repository.
  3. Enable hot reloading by setting the `N8N_DEV_RELOAD` environment variable to `true`.
  4. Run `npm run dev` to watch for changes and automatically rebuild the node as you develop.
  5. Start n8n with `n8n start` to launch the editor UI.
  6. Open the n8n editor UI in your browser.

  You should now be able to search for and use the VideoDB node in your n8n workflows.

  > **Note:** When launching n8n locally for the first time, you will be prompted to create a user account. If you forget your credentials, you can reset n8n to its initial state by running `n8n user-management:reset`.

  ## Version history

  - 1.1.1 - Updated `x-videodb-client` header to use dynamic version
  - 1.1.0 - Added `Translate Transcript` operation for videos
  - 1.0.9 - Fixed timeline overlay text style parsing; added helpful notice in credentials and UTM tracking
  - 1.0.8 - Explicitly pass `error` message in JSON output when `continueOnFail` is enabled
  - 1.0.7 - Added `pairedItem` item linking and robust error handling with `continueOnFail` and `NodeOperationError`
  - 1.0.6 - `generateVoice` now sends `audio_type: voice`
  - 1.0.5 - Added the `Create Timeline (VideoDB's Video Editor)` action
  - 1.0.4 - README update
  - 1.0.3 - Dropdowns for `collection`, `image`, `audio` and `video` IDs along with minor bug fixes
  - 1.0.2 - Filtered nodes to most useful ones
  - 1.0.1 - Filtered nodes to most useful ones
  - 1.0.0 — Initial release of the VideoDB API n8n node

ai_documentation_summary:
  {"purpose":"The VideoDB n8n node enables automation of video and media workflows by interacting with the VideoDB API for indexing, search, and management tasks.","capabilities":["Fetch, upload, index, search, and manage videos","Get transcripts and generate streams","Translate transcripts to any language","Scene extraction and indexing","Add subtitles","Compile multi-track timelines with inline videos","Overlay images, audio, and text with custom styling","Upload and manage audio/image assets","Generate voice and URLs","Create, list, and manage collections"],"authentication":"API key required","commonUseCases":["Automated video content indexing and search","Multi-language transcript translation","Video timeline editing and compilation","Media asset management and organization"],"limitations":["Community node (not official n8n node)","Requires separate VideoDB account and API key"],"relatedNodes":["Community Nodes","Video Processing Nodes","Media Management Nodes"]}


