# nodes

node_type: @socradar/n8n-nodes-socradar.socradar
package_name: @socradar/n8n-nodes-socradar
display_name: SOCRadar
description: Comprehensive SOCRadar API integration
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: ahmetkurukose
author_github_url: https://github.com/socradar-io/n8n-nodes-socradar.git
npm_package_name: @socradar/n8n-nodes-socradar
npm_version: 1.8.7
community_fetched_at: 2026-07-14T14:40:33.070Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "incident",
      "options": [
        {
          "name": "Incident",
          "value": "incident"
        },
        {
          "name": "Takedown",
          "value": "takedown"
        },
        {
          "name": "User Audit Logs",
          "value": "auditLogs"
        },
        {
          "name": "Digital Footprint",
          "value": "digitalFootprint"
        },
        {
          "name": "Dark Web Monitoring",
          "value": "darkWebMonitoring"
        },
        {
          "name": "DRP Fraud Protection",
          "value": "fraudProtection"
        },
        {
          "name": "Brand Protection",
          "value": "brandProtection"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all user audit logs",
          "description": "Get all user audit logs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "auditLogs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBrandProtection",
      "options": [
        {
          "name": "Get Brand Protection",
          "value": "getBrandProtection",
          "action": "Get brand protection data by type",
          "description": "Get brand protection data by type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "brandProtection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBotnetData",
      "options": [
        {
          "name": "Get Botnet Data",
          "value": "getBotnetData",
          "action": "Get botnet data",
          "description": "Get botnet data"
        },
        {
          "name": "Get Blackmarket Data",
          "value": "getBlackmarket",
          "action": "Get blackmarket data",
          "description": "Get blackmarket data"
        },
        {
          "name": "Get Suspicious Content",
          "value": "getSuspiciousContent",
          "action": "Get suspicious content",
          "description": "Get suspicious content"
        },
        {
          "name": "Get PII Exposure",
          "value": "getPiiExposure",
          "action": "Get PII exposure data",
          "description": "Get PII exposure data"
        },
        {
          "name": "Get IM Content",
          "value": "getImContent",
          "action": "Get IM content",
          "description": "Get IM content"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "darkWebMonitoring"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDigitalAssets",
      "options": [
        {
          "name": "Get Digital Assets",
          "value": "getDigitalAssets",
          "action": "Get all digital assets",
          "description": "Get all digital assets"
        },
        {
          "name": "Add Asset",
          "value": "addAsset",
          "action": "Add a new digital asset",
          "description": "Add a new digital asset"
        },
        {
          "name": "Mark False Positive",
          "value": "markFalsePositive",
          "action": "Mark an asset as false positive",
          "description": "Mark an asset as false positive"
        },
        {
          "name": "Toggle Monitoring",
          "value": "toggleMonitoring",
          "action": "Toggle monitoring for an asset",
          "description": "Toggle monitoring for an asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "digitalFootprint"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFraudProtection",
      "options": [
        {
          "name": "Get Fraud Protection",
          "value": "getFraudProtection",
          "action": "Get fraud protection data",
          "description": "Get fraud protection data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "fraudProtection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all incidents",
          "description": "Get all incidents"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a single incident",
          "description": "Get a single incident"
        },
        {
          "name": "Add Comment",
          "value": "addComment",
          "action": "Add a comment to an incident",
          "description": "Add a comment to an incident"
        },
        {
          "name": "Add Tag",
          "value": "addTag",
          "action": "Add a tag to an incident",
          "description": "Add a tag to an incident"
        },
        {
          "name": "Remove Tag",
          "value": "removeTag",
          "action": "Remove a tag from an incident",
          "description": "Remove a tag from an incident"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "incident"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createDomain",
      "options": [
        {
          "name": "Create Domain Takedown",
          "value": "createDomain",
          "action": "Create a domain takedown request",
          "description": "Create a domain takedown request"
        },
        {
          "name": "Create Social Media Takedown",
          "value": "createSocialMedia",
          "action": "Create a social media takedown request",
          "description": "Create a social media takedown request"
        },
        {
          "name": "Create Source Code Leak Takedown",
          "value": "createSourceCode",
          "action": "Create a source code leak takedown request",
          "description": "Create a source code leak takedown request"
        },
        {
          "name": "Get Progress",
          "value": "getProgress",
          "action": "Get takedown request progress",
          "description": "Get takedown request progress"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "takedown"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all user audit logs",
      "description": "Get all user audit logs",
      "resource": "auditLogs"
    },
    {
      "name": "Get Brand Protection",
      "value": "getBrandProtection",
      "action": "Get brand protection data by type",
      "description": "Get brand protection data by type",
      "resource": "brandProtection"
    },
    {
      "name": "Get Botnet Data",
      "value": "getBotnetData",
      "action": "Get botnet data",
      "description": "Get botnet data",
      "resource": "darkWebMonitoring"
    },
    {
      "name": "Get Blackmarket Data",
      "value": "getBlackmarket",
      "action": "Get blackmarket data",
      "description": "Get blackmarket data",
      "resource": "darkWebMonitoring"
    },
    {
      "name": "Get Suspicious Content",
      "value": "getSuspiciousContent",
      "action": "Get suspicious content",
      "description": "Get suspicious content",
      "resource": "darkWebMonitoring"
    },
    {
      "name": "Get PII Exposure",
      "value": "getPiiExposure",
      "action": "Get PII exposure data",
      "description": "Get PII exposure data",
      "resource": "darkWebMonitoring"
    },
    {
      "name": "Get IM Content",
      "value": "getImContent",
      "action": "Get IM content",
      "description": "Get IM content",
      "resource": "darkWebMonitoring"
    },
    {
      "name": "Get Digital Assets",
      "value": "getDigitalAssets",
      "action": "Get all digital assets",
      "description": "Get all digital assets",
      "resource": "digitalFootprint"
    },
    {
      "name": "Add Asset",
      "value": "addAsset",
      "action": "Add a new digital asset",
      "description": "Add a new digital asset",
      "resource": "digitalFootprint"
    },
    {
      "name": "Mark False Positive",
      "value": "markFalsePositive",
      "action": "Mark an asset as false positive",
      "description": "Mark an asset as false positive",
      "resource": "digitalFootprint"
    },
    {
      "name": "Toggle Monitoring",
      "value": "toggleMonitoring",
      "action": "Toggle monitoring for an asset",
      "description": "Toggle monitoring for an asset",
      "resource": "digitalFootprint"
    },
    {
      "name": "Get Fraud Protection",
      "value": "getFraudProtection",
      "action": "Get fraud protection data",
      "description": "Get fraud protection data",
      "resource": "fraudProtection"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all incidents",
      "description": "Get all incidents",
      "resource": "incident"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a single incident",
      "description": "Get a single incident",
      "resource": "incident"
    },
    {
      "name": "Add Comment",
      "value": "addComment",
      "action": "Add a comment to an incident",
      "description": "Add a comment to an incident",
      "resource": "incident"
    },
    {
      "name": "Add Tag",
      "value": "addTag",
      "action": "Add a tag to an incident",
      "description": "Add a tag to an incident",
      "resource": "incident"
    },
    {
      "name": "Remove Tag",
      "value": "removeTag",
      "action": "Remove a tag from an incident",
      "description": "Remove a tag from an incident",
      "resource": "incident"
    },
    {
      "name": "Create Domain Takedown",
      "value": "createDomain",
      "action": "Create a domain takedown request",
      "description": "Create a domain takedown request",
      "resource": "takedown"
    },
    {
      "name": "Create Social Media Takedown",
      "value": "createSocialMedia",
      "action": "Create a social media takedown request",
      "description": "Create a social media takedown request",
      "resource": "takedown"
    },
    {
      "name": "Create Source Code Leak Takedown",
      "value": "createSourceCode",
      "action": "Create a source code leak takedown request",
      "description": "Create a source code leak takedown request",
      "resource": "takedown"
    },
    {
      "name": "Get Progress",
      "value": "getProgress",
      "action": "Get takedown request progress",
      "description": "Get takedown request progress",
      "resource": "takedown"
    }
  ]

npm_readme:
  # n8n-nodes-socradar

  This is an n8n community node for integrating with the SOCRadar API. It provides a comprehensive node to interact with SOCRadar's services.

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

  [SOCRadar](https://socradar.io/) is a Digital Risk Protection Platform that provides threat intelligence, brand protection, attack surface management, and other cybersecurity services.

  ## SOCRadar n8n Integration

  This is a community node for n8n that integrates with SOCRadar's API. It provides access to SOCRadar's services

  ## Features

  ### Incident Management
  - **Comprehensive API Support**: Single consolidated node supporting all incident operations
  - **Advanced Filtering Options**:
    - Filter by status, severity, resolution state
    - Date range filtering
    - Sorting capabilities
    - Tag-based filtering
  - **Operations**:
    - Get All Incidents
    - Get Single Incident
    - Add Comment
    - Add Tag
    - Remove Tag

  ### Takedown Services
  - Create and manage takedown requests
  - Filter and retrieve takedown status
  - **Operations**:
    - Create Takedown Request
    - Get Single Takedown
    - Get All Takedowns
    - Update Takedown Status
    - Add Tags

  ### Digital Footprint
  - Discover and manage digital assets across your organization
  - Monitor cloud resources, domains, and other digital assets
  - **Advanced Filtering Options**:
    - Filter by asset type (Domain, IP, URL, Cloud Bucket)
    - Pagination support
    - Sorting capabilities
    - Status filtering
  - **Operations**:
    - Get Digital Assets
    - Get Cloud Buckets
    - Add Asset (Domain, Cloud Bucket)
    - Mark False Positive
    - Toggle Monitoring

  ### Brand Protection
  - Monitor and protect your brand across digital channels
  - **Advanced Detection**:
    - Impersonating Accounts
    - Impersonating Domains
    - Rogue Mobile Applications
    - Bad Reputation
    - Social Media Findings
  - **Operations**:
    - Get Brand Protection Data
    - Filter by Finding Type
    - Sort by Risk Score

  ### Fraud Protection
  - Detect and prevent digital fraud attempts
  - **Comprehensive Coverage**:
    - Phishing Detection
    - Scam Detection
    - Brand Abuse
    - Payment Fraud
  - **Operations**:
    - Get Fraud Protection Data
    - Filter by Risk Level
    - Sort by Detection Time

  ### Dark Web Monitoring
  - Monitor dark web for sensitive information
  - **Data Sources**:
    - Botnet Data
    - Blackmarket Data
    - Suspicious Content
    - PII Exposure
    - IM Content
  - **Operations**:
    - Get Dark Web Findings
    - Filter by Source Type
    - Sort by Relevance

  ### User Audit Logs
  - Retrieve user activity logs for compliance and security monitoring
  - **Advanced Filtering Options**:
    - Date range filtering
    - Limit number of records
    - Activity type filtering
  - **Operations**:
    - Get All User Audit Logs
    - Filter by Date Range
    - Filter by Activity Type

  ## Prerequisites

  - n8n v1.0.0 or later
  - SOCRadar API credentials

  ## Installation

  Follow these steps to install this custom node:

  ```bash
  # Install with npm
  npm install @socradar/n8n-nodes-socradar

  # Install with pnpm
  pnpm add @socradar/n8n-nodes-socradar

  # Alternatively, for n8n installed globally
  npm install -g @socradar/n8n-nodes-socradar
  ```

  For Docker-based n8n installations, you can use the [n8n-docker-custom](https://github.com/n8n-io/n8n-docker-custom) approach.

  ## Usage

  ### Authentication
  The SOCRadar node requires SOCRadar API credentials:
  1. API Key: Your SOCRadar API key
  2. Company ID: Your SOCRadar company identifier

  ### SOCRadar Node
  The consolidated SOCRadar node provides access to all SOCRadar Extended Threat Intelligence platform features:

  - **Resource**: Choose from:
    - Incident Management
    - Takedown Management
    - Digital Footprint
    - Brand Protection
    - Fraud Protection
    - Dark Web Monitoring
    - User Audit Logs
  - **Operation**: Select the specific operation to perform
  - **Parameters**: Configure operation-specific parameters

  ## Version History

  - **1.8.7**: Fix public github url
  - **1.8.6**: Added repository link and improved package structure for n8n compatibility
  - **1.8.5**: Removed external dependencies (axios, dotenv) in favor of n8n's built-in functionality
  - **1.8.4**: Fixed credential icon display issue
  - **1.8.2**: Fixed README.md with correct package name and latest features
  - **1.8.1**: Optimized build process and improved CI/CD pipeline
  - **1.8.0**: Enhanced Digital Footprint API integration with improved asset type handling
  - **1.7.0**: Added Brand Protection API V2 support with comprehensive filtering
  - **1.6.0**: Added Fraud Protection API V2 support
  - **1.5.0**: Added Dark Web Monitoring API V2 support
  - **1.4.0**: Added Digital Footprint API support
  - **1.3.0**: Added User Audit Logs API support
  - **1.2.0**: Consolidated all functionality into a single SOCRadar node
  - **1.1.0**: Added Takedown API support
  - **1.0.0**: Initial release with Incident API support

  ## Credentials

  You need to create a credentials entry with your SOCRadar API key:

  1. Go to **Credentials** in n8n
  2. Select **Create New**
  3. Search for "SOCRadar API"
  4. Enter your API key from the SOCRadar platform
  5. Save the credentials

  ## Support

  For issues, feature requests, or questions about this node package:
  - Contact SOCRadar support at support@socradar.io

  ## License

  This node package is released under the [MIT License](LICENSE.md).

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the SOCRadar API to provide comprehensive threat intelligence, brand protection, and cybersecurity services within workflow automation.","capabilities":["Incident Management (Get All/Single, Add/Remove Comments/Tags, Filter by Status/Severity/Tags)","Takedown Request Management (Create, Get, Update Status, Add Tags)","Digital Footprint Monitoring (Get Assets/Buckets, Add Assets, Mark False Positive, Toggle Monitoring)","Brand Protection (Detect Impersonating Accounts/Domains/Apps, Social Media Findings, Filter by Type)","Fraud Protection (Phishing/Scam Detection, Brand Abuse, Payment Fraud, Filter by Risk Level)","Dark Web Monitoring (Monitor Botnet/Blackmarket/PII/IM Content, Filter by Source)","User Audit Logs (Retrieve Activity Logs, Filter by Date Range/Activity Type)"],"authentication":"API Key and Company ID required via n8n Credentials entry","commonUseCases":["Automated incident tracking and response workflows","Brand reputation monitoring and protection","Digital asset discovery and threat detection","Fraud prevention and phishing detection","Compliance monitoring via user audit logs"],"limitations":["Requires n8n v1.0.0 or later","Single consolidated node may lack granular control over specific API versions compared to separate nodes","No built-in error handling or retry logic mentioned in README"],"relatedNodes":["SOCRadar API","n8n Credentials","n8n Community Nodes"]}


node_type: n8n-nodes-logsnag.LogSnag
package_name: n8n-nodes-logsnag
display_name: LogSnag
description: Send events and insights to LogSnag
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: joff
author_github_url: https://github.com/joffcom/
npm_package_name: n8n-nodes-logsnag
npm_version: 0.1.0
community_fetched_at: 2026-07-14T14:40:33.073Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "log",
      "options": [
        {
          "name": "Log",
          "value": "log"
        },
        {
          "name": "Insight",
          "value": "insight"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish an event to LogSnag",
          "routing": {
            "request": {
              "url": "/log",
              "method": "POST"
            }
          },
          "description": "Publish an event to LogSnag"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "log"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish an insight to LogSnag",
          "routing": {
            "request": {
              "url": "/insight",
              "method": "POST"
            }
          },
          "description": "Publish an insight to LogSnag"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "insight"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish an event to LogSnag",
      "routing": {
        "request": {
          "url": "/log",
          "method": "POST"
        }
      },
      "description": "Publish an event to LogSnag",
      "resource": "log"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "log"
    },
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish an insight to LogSnag",
      "routing": {
        "request": {
          "url": "/insight",
          "method": "POST"
        }
      },
      "description": "Publish an insight to LogSnag",
      "resource": "insight"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "insight"
    }
  ]

npm_readme:
  # n8n-nodes-logsnag

  This is an n8n community node for sending events and insights to [LogSnag](https://logsnag.com/)

  This trigger node will get any items that have a published date that is after the date of the last run of the trigger.

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

  [Installation](#installation)  
  [Version history](#version-history) 

  ## Installation

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

  ## Resources

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

  ## Version history

  0.1.0 - Initial Release

ai_documentation_summary:
  {"purpose":"A community node that sends events and insights to LogSnag, including a trigger node that captures items published after the last run.","capabilities":["Send events to LogSnag","Send insights to LogSnag","Trigger-based item capture based on published date"],"authentication":"API key required (implied by LogSnag integration)","commonUseCases":["Automated event logging to LogSnag","Monitoring workflow execution events","Capturing published items for tracking"],"limitations":["Community node (not official n8n node)","Trigger functionality limited to items with published dates after last run"],"relatedNodes":["n8n-nodes-base.Trigger","n8n-nodes-base.httpRequest"]}


node_type: n8n-nodes-shortio.Shortio
package_name: n8n-nodes-shortio
display_name: Short.io
description: Short.io Node for shortening and managing links
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: liammcgarrigle
author_github_url: https://github.com/liamdmcgarrigle/
npm_package_name: n8n-nodes-shortio
npm_version: 1.0.2
community_fetched_at: 2026-07-14T14:40:33.078Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Table of Contents

  - [Table of Contents](#table-of-contents)
  - [Overview of Community Short.io n8n Node](#overview-of-community-shortio-n8n-node)
  - [Bugs/Contributing/Feature Request](#bugscontributingfeature-request)
  - [Documentation](#documentation)
    - [Installation](#installation)
    - [Credentials](#credentials)
    - [Links](#links)
      - [List Links](#list-links)
      - [Get Link Info](#get-link-info)
      - [Create Link](#create-link)
      - [Update Existing Link](#update-existing-link)
      - [Delete Link](#delete-link)
      - [Generate QR For Link](#generate-qr-for-link)
    - [Statistics](#statistics)
      - [Get Link Statistics](#get-link-statistics)
      - [Get Domain Statistics](#get-domain-statistics)

  # Overview of Community Short.io n8n Node

  I have no affiliation with short.io beyond being a user. I work for n8n but this is not an official node.

  # Bugs/Contributing/Feature Request

  If you have a bug to report or a feature request, please [submit a GitHub issue](https://github.com/liamdmcgarrigle/n8n-nodes-shortio/issues/new) with as much detail as you're able to give.

  # Documentation

  ## Installation

  This is now available on cloud as a verified community node. Simply search for shortio in the node panel.

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

  ## Credentials

  To use this node you will need to set up short.io credentials with a key from short.io. You also will need an account and may need a paid account.

  1. Go to https://app.short.io/settings/integrations/api-key and click on "Create API Key"
     ![Screenshot1](/readme_files/step-1.jpeg)

  2. Add a description, pick the domain to use, and press "Create"
     ![Screenshot2](/readme_files/step-2.jpeg)

  3. Copy your new token. It will only be shown once

  4. Go to the credential page in n8n, in add credentials add "Short.io API", then paste in your token. Then add the domain you chose in the previous step and press save
     ![Screenshot3](/readme_files/step-3.png)

  ## Links

  ### List Links

  Get a list of your short links. These will only be links from the domain in your credential.

  You will need to choose how many results are returned. Anything over 150 is automatically paginationed.

  You can filter the results by adding:

  - **Before date**: returns links before the listed date
  - **After date**: returns links after the listed date
  - **Date Sort Order**: changes the order the links are in based on the date

  ### Get Link Info

  Get link details from the domain in your credential and the path.

  ### Create Link

  Create a link. There are many options available in the additional fields:

  - **Path**: Custom path for the short link
  - **Folder**: Assign the link to a folder (select from list or enter folder ID)
  - **Allow Duplicates**: Allow multiple links with the same original URL
  - **Title**: Title shown in the short.io admin panel
  - **Expiration settings**: Set expiry date and redirect URL for expired links
  - **Device-specific URLs**: Separate URLs for iPhone and Android users
  - **Cloaking**: Hide the original URL in the browser address bar
  - **Redirect Type**: Choose HTTP redirect code (301, 302, etc.)
  - **Password**: Password-protect the link (requires Personal plan)
  - **UTM Parameters**: Add tracking parameters (source, medium, campaign, term, content)
  - **Tags**: Add tags to organize your links

  ### Update Existing Link

  You can update an existing short link by using the path or the link `idString`.
  You can change anything about the link including the full long URL and folder assignment.

  ### Delete Link

  You can delete an existing short link by using the path or the link `idString`.

  ### Generate QR For Link

  Generate a QR code image for any short link. You can identify the link by path or `idString`.

  Options available:

  - **Color**: QR code foreground color
  - **Background Color**: QR code background color
  - **Size**: QR code size (1-99)
  - **Type**: Image format (PNG or SVG)

  The operation returns binary data that can be used with other n8n nodes (e.g., save to file, send via email, upload to cloud storage).

  ## Statistics

  Get detailed analytics for your links and domain.

  ### Get Link Statistics

  Get detailed statistics for a specific link. Identify the link by path or `idString`.

  **Period options:**

  - Today
  - Yesterday
  - Last 7 Days
  - Last 30 Days
  - Last Month
  - All Time
  - Custom (specify start and end dates)

  **Additional options:**

  - **Clicks Chart Interval**: Data granularity for the clicks chart (hour, day, week, month)
  - **Skip Top Records**: Skip top records like referer, browser, and country breakdowns

  Returns detailed statistics including total clicks, human clicks, click trends, and breakdowns by referer, browser, country, and more.

  ### Get Domain Statistics

  Get detailed statistics for your entire domain (as configured in your credentials).

  **Period options:**

  - Today
  - Yesterday
  - Last 7 Days
  - Last 30 Days
  - Last Month
  - All Time
  - Custom (specify start and end dates)

  **Additional options:**

  - **Clicks Chart Interval**: Data granularity for the clicks chart (hour, day, week, month)

  Returns domain-wide statistics including total clicks, link counts, clicks per link averages, and breakdowns by referer, browser, country, and more.

ai_documentation_summary:
  {"purpose":"The Short.io n8n node allows users to shorten URLs, manage link metadata, generate QR codes, and retrieve detailed analytics for links and domains.","capabilities":["List short links with date filtering and pagination","Get detailed information for a specific short link","Create new short links with custom paths, folders, and tracking parameters","Update existing short links (URL, folder, metadata)","Delete short links by path or ID","Generate QR codes for links with customizable colors, size, and format","Retrieve link statistics (clicks, trends, geographic data)","Retrieve domain-wide statistics","Support for UTM parameters, cloaking, password protection, and device-specific URLs"],"authentication":"API Key required (Short.io API Key)","commonUseCases":["Automating URL shortening in marketing campaigns","Tracking link performance and analytics in workflows","Generating QR codes for print materials or digital displays","Managing and organizing short links with folders and tags","Creating password-protected links for sensitive content"],"limitations":["Requires a Short.io account (paid plans may be needed for certain features like password protection)","List Links operation has a limit of 150 results per request (automatic pagination for larger datasets)","Not an official n8n node (community-maintained)","QR code generation returns binary data, requiring additional nodes for file saving or processing"],"relatedNodes":["n8n-nodes-core.binary","n8n-nodes-core.httpRequest","n8n-nodes-core.code","n8n-nodes-core.email","n8n-nodes-core.filesystem"]}


node_type: n8n-nodes-serpapi.serpApi
package_name: n8n-nodes-serpapi
display_name: SerpApi Official
description: Get live Google Search data and more from SerpApi's official node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: serpapi
author_github_url: https://github.com/alexbarron/
npm_package_name: n8n-nodes-serpapi
npm_version: 0.1.10
community_fetched_at: 2026-07-14T14:40:33.081Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "google",
      "options": [
        {
          "name": "Amazon Search",
          "value": "amazon",
          "action": "Search Amazon",
          "routing": {
            "request": {
              "qs": {
                "engine": "amazon"
              }
            }
          }
        },
        {
          "name": "Baidu Search",
          "value": "baidu",
          "action": "Search Baidu",
          "routing": {
            "request": {
              "qs": {
                "engine": "baidu"
              }
            }
          }
        },
        {
          "name": "Bing Images",
          "value": "bing_images",
          "action": "Search Bing Images",
          "routing": {
            "request": {
              "qs": {
                "engine": "bing_images"
              }
            }
          }
        },
        {
          "name": "Bing Search",
          "value": "bing",
          "action": "Search Bing",
          "routing": {
            "request": {
              "qs": {
                "engine": "bing"
              }
            }
          }
        },
        {
          "name": "DuckDuckGo Search",
          "value": "duckduckgo",
          "action": "Search DuckDuckGo",
          "routing": {
            "request": {
              "qs": {
                "engine": "duckduckgo"
              }
            }
          }
        },
        {
          "name": "eBay Search",
          "value": "ebay",
          "action": "Search eBay",
          "routing": {
            "request": {
              "qs": {
                "engine": "ebay"
              }
            }
          }
        },
        {
          "name": "Facebook Profile",
          "value": "facebook_profile",
          "action": "Search Facebook Profile",
          "routing": {
            "request": {
              "qs": {
                "engine": "facebook_profile"
              }
            }
          }
        },
        {
          "name": "Google AI Mode",
          "value": "google_ai_mode",
          "action": "Search Google AI Mode",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_ai_mode"
              }
            }
          }
        },
        {
          "name": "Google AI Overview",
          "value": "google_ai_overview",
          "action": "Search Google AI Overview",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_ai_overview"
              }
            }
          }
        },
        {
          "name": "Google Autocomplete",
          "value": "google_autocomplete",
          "action": "Search Google Autocomplete",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_autocomplete"
              }
            }
          }
        },
        {
          "name": "Google Finance",
          "value": "google_finance",
          "action": "Search Google Finance",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_finance"
              }
            }
          }
        },
        {
          "name": "Google Flights",
          "value": "google_flights",
          "action": "Search Google Flights",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_flights"
              }
            }
          }
        },
        {
          "name": "Google Hotels",
          "value": "google_hotels",
          "action": "Search Google Hotels",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_hotels"
              }
            }
          }
        },
        {
          "name": "Google Images",
          "value": "google_images",
          "action": "Search Google Images",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_images"
              }
            }
          }
        },
        {
          "name": "Google Images Light",
          "value": "google_images_light",
          "action": "Search Google Images Light",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_images_light"
              }
            }
          }
        },
        {
          "name": "Google Immersive Product",
          "value": "google_immersive_product",
          "action": "Search Google Immersive Product",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_immersive_product"
              }
            }
          }
        },
        {
          "name": "Google Jobs",
          "value": "google_jobs",
          "action": "Search Google Jobs",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_jobs"
              }
            }
          }
        },
        {
          "name": "Google Lens",
          "value": "google_lens",
          "action": "Search Google Lens",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_lens"
              }
            }
          }
        },
        {
          "name": "Google Light",
          "value": "google_light",
          "action": "Search Google Light",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_light"
              }
            }
          }
        },
        {
          "name": "Google Local",
          "value": "google_local",
          "action": "Search Google Local",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_local"
              }
            }
          }
        },
        {
          "name": "Google Maps",
          "value": "google_maps",
          "action": "Search Google Maps",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_maps"
              }
            }
          }
        },
        {
          "name": "Google Maps Directions",
          "value": "google_maps_directions",
          "action": "Search Google Maps Directions",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_maps_directions"
              }
            }
          }
        },
        {
          "name": "Google Maps Reviews",
          "value": "google_maps_reviews",
          "action": "Search Google Maps Reviews",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_maps_reviews"
              }
            }
          }
        },
        {
          "name": "Google News",
          "value": "google_news",
          "action": "Search Google News",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_news"
              }
            }
          }
        },
        {
          "name": "Google News Light",
          "value": "google_news_light",
          "action": "Search Google News Light",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_news_light"
              }
            }
          }
        },
        {
          "name": "Google Play Games",
          "value": "google_play_games",
          "action": "Search Google Play Games",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_play_games"
              }
            }
          }
        },
        {
          "name": "Google Play Product",
          "value": "google_play_product",
          "action": "Search Google Play Product",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_play_product"
              }
            }
          }
        },
        {
          "name": "Google Play Store",
          "value": "google_play",
          "action": "Search Google Play Store",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_play"
              }
            }
          }
        },
        {
          "name": "Google Product",
          "value": "google_product",
          "action": "Search Google Product",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_product"
              }
            }
          }
        },
        {
          "name": "Google Scholar",
          "value": "google_scholar",
          "action": "Search Google Scholar",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_scholar"
              }
            }
          }
        },
        {
          "name": "Google Search",
          "value": "google",
          "action": "Search Google",
          "routing": {
            "request": {
              "qs": {
                "engine": "google"
              }
            }
          }
        },
        {
          "name": "Google Shopping",
          "value": "google_shopping",
          "action": "Search Google Shopping",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_shopping"
              }
            }
          }
        },
        {
          "name": "Google Travel Explore",
          "value": "google_travel_explore",
          "action": "Search Google Travel Explore",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_travel_explore"
              }
            }
          }
        },
        {
          "name": "Google Trends",
          "value": "google_trends",
          "action": "Search Google Trends",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_trends"
              }
            }
          }
        },
        {
          "name": "Google Trends Trending Now",
          "value": "google_trends_trending_now",
          "action": "Search Google Trends Trending Now",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_trends_trending_now"
              }
            }
          }
        },
        {
          "name": "Google Videos",
          "value": "google_videos",
          "action": "Search Google Videos",
          "routing": {
            "request": {
              "qs": {
                "engine": "google_videos"
              }
            }
          }
        },
        {
          "name": "YouTube Search",
          "value": "youtube",
          "action": "Search YouTube",
          "routing": {
            "request": {
              "qs": {
                "engine": "youtube"
              }
            }
          }
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Amazon Search",
      "value": "amazon",
      "action": "Search Amazon",
      "routing": {
        "request": {
          "qs": {
            "engine": "amazon"
          }
        }
      }
    },
    {
      "name": "Baidu Search",
      "value": "baidu",
      "action": "Search Baidu",
      "routing": {
        "request": {
          "qs": {
            "engine": "baidu"
          }
        }
      }
    },
    {
      "name": "Bing Images",
      "value": "bing_images",
      "action": "Search Bing Images",
      "routing": {
        "request": {
          "qs": {
            "engine": "bing_images"
          }
        }
      }
    },
    {
      "name": "Bing Search",
      "value": "bing",
      "action": "Search Bing",
      "routing": {
        "request": {
          "qs": {
            "engine": "bing"
          }
        }
      }
    },
    {
      "name": "DuckDuckGo Search",
      "value": "duckduckgo",
      "action": "Search DuckDuckGo",
      "routing": {
        "request": {
          "qs": {
            "engine": "duckduckgo"
          }
        }
      }
    },
    {
      "name": "eBay Search",
      "value": "ebay",
      "action": "Search eBay",
      "routing": {
        "request": {
          "qs": {
            "engine": "ebay"
          }
        }
      }
    },
    {
      "name": "Facebook Profile",
      "value": "facebook_profile",
      "action": "Search Facebook Profile",
      "routing": {
        "request": {
          "qs": {
            "engine": "facebook_profile"
          }
        }
      }
    },
    {
      "name": "Google AI Mode",
      "value": "google_ai_mode",
      "action": "Search Google AI Mode",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_ai_mode"
          }
        }
      }
    },
    {
      "name": "Google AI Overview",
      "value": "google_ai_overview",
      "action": "Search Google AI Overview",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_ai_overview"
          }
        }
      }
    },
    {
      "name": "Google Autocomplete",
      "value": "google_autocomplete",
      "action": "Search Google Autocomplete",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_autocomplete"
          }
        }
      }
    },
    {
      "name": "Google Finance",
      "value": "google_finance",
      "action": "Search Google Finance",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_finance"
          }
        }
      }
    },
    {
      "name": "Google Flights",
      "value": "google_flights",
      "action": "Search Google Flights",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_flights"
          }
        }
      }
    },
    {
      "name": "Google Hotels",
      "value": "google_hotels",
      "action": "Search Google Hotels",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_hotels"
          }
        }
      }
    },
    {
      "name": "Google Images",
      "value": "google_images",
      "action": "Search Google Images",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_images"
          }
        }
      }
    },
    {
      "name": "Google Images Light",
      "value": "google_images_light",
      "action": "Search Google Images Light",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_images_light"
          }
        }
      }
    },
    {
      "name": "Google Immersive Product",
      "value": "google_immersive_product",
      "action": "Search Google Immersive Product",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_immersive_product"
          }
        }
      }
    },
    {
      "name": "Google Jobs",
      "value": "google_jobs",
      "action": "Search Google Jobs",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_jobs"
          }
        }
      }
    },
    {
      "name": "Google Lens",
      "value": "google_lens",
      "action": "Search Google Lens",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_lens"
          }
        }
      }
    },
    {
      "name": "Google Light",
      "value": "google_light",
      "action": "Search Google Light",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_light"
          }
        }
      }
    },
    {
      "name": "Google Local",
      "value": "google_local",
      "action": "Search Google Local",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_local"
          }
        }
      }
    },
    {
      "name": "Google Maps",
      "value": "google_maps",
      "action": "Search Google Maps",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_maps"
          }
        }
      }
    },
    {
      "name": "Google Maps Directions",
      "value": "google_maps_directions",
      "action": "Search Google Maps Directions",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_maps_directions"
          }
        }
      }
    },
    {
      "name": "Google Maps Reviews",
      "value": "google_maps_reviews",
      "action": "Search Google Maps Reviews",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_maps_reviews"
          }
        }
      }
    },
    {
      "name": "Google News",
      "value": "google_news",
      "action": "Search Google News",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_news"
          }
        }
      }
    },
    {
      "name": "Google News Light",
      "value": "google_news_light",
      "action": "Search Google News Light",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_news_light"
          }
        }
      }
    },
    {
      "name": "Google Play Games",
      "value": "google_play_games",
      "action": "Search Google Play Games",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_play_games"
          }
        }
      }
    },
    {
      "name": "Google Play Product",
      "value": "google_play_product",
      "action": "Search Google Play Product",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_play_product"
          }
        }
      }
    },
    {
      "name": "Google Play Store",
      "value": "google_play",
      "action": "Search Google Play Store",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_play"
          }
        }
      }
    },
    {
      "name": "Google Product",
      "value": "google_product",
      "action": "Search Google Product",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_product"
          }
        }
      }
    },
    {
      "name": "Google Scholar",
      "value": "google_scholar",
      "action": "Search Google Scholar",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_scholar"
          }
        }
      }
    },
    {
      "name": "Google Search",
      "value": "google",
      "action": "Search Google",
      "routing": {
        "request": {
          "qs": {
            "engine": "google"
          }
        }
      }
    },
    {
      "name": "Google Shopping",
      "value": "google_shopping",
      "action": "Search Google Shopping",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_shopping"
          }
        }
      }
    },
    {
      "name": "Google Travel Explore",
      "value": "google_travel_explore",
      "action": "Search Google Travel Explore",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_travel_explore"
          }
        }
      }
    },
    {
      "name": "Google Trends",
      "value": "google_trends",
      "action": "Search Google Trends",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_trends"
          }
        }
      }
    },
    {
      "name": "Google Trends Trending Now",
      "value": "google_trends_trending_now",
      "action": "Search Google Trends Trending Now",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_trends_trending_now"
          }
        }
      }
    },
    {
      "name": "Google Videos",
      "value": "google_videos",
      "action": "Search Google Videos",
      "routing": {
        "request": {
          "qs": {
            "engine": "google_videos"
          }
        }
      }
    },
    {
      "name": "YouTube Search",
      "value": "youtube",
      "action": "Search YouTube",
      "routing": {
        "request": {
          "qs": {
            "engine": "youtube"
          }
        }
      }
    }
  ]

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

  # n8n-nodes-serpapi

  This repo contains SerpApi's community node for n8n.

  ## Installation

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

  ## Credentials

  You must have a SerpApi API key to use this node. You can register for a free account to get an API key here:

  https://serpapi.com/users/sign_up

  Once registered, you can find your API key here:

  https://serpapi.com/manage-api-key

  Then you'll need to create a credential in n8n for SerpApi.

  ![Add Credentials](images/add-credentials.png)

  ## Usage

  Add SerpApi to a workflow.

  ![Add SerpApi to Workflow](images/workflow.png)

  Configure a basic query and hit "Test step" to try a search.

  ![Test a Google Search through SerpApi](images/test-google-search.png)

  ## API Resources / Search Engines

  This node currently only supports the most popular SerpApi APIs. If there's an API missing that you would like to use, please let us know at contact@serpapi.com

  In the meantime, you can also use the [generic HTTP Request node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) to construct your search.

  ## Related Resources

  SerpApi's complete API documentation is available here:

  https://serpapi.com/search-api

  You can also find n8n related tutorials on our blog here:

  https://serpapi.com/blog/tag/n8n/

  ## License

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

ai_documentation_summary:
  {"purpose":"Retrieves live Google Search data and other search results from SerpApi's APIs within n8n workflows.","capabilities":["Google Search queries","Image Search","News Search","Video Search","Shopping Search","Local Business Search","Weather Search","Stock Market Search","News Article Search","Image Search with filters"],"authentication":"API key required (SerpApi API key)","commonUseCases":["Real-time Google search integration","Competitor research","Market trend analysis","News aggregation","Product price monitoring"],"limitations":["Only supports popular SerpApi APIs (custom APIs require contacting support)","Requires SerpApi account registration and API key"],"relatedNodes":["HTTP Request node"]}


node_type: @elevenlabs/n8n-nodes-elevenlabs.elevenLabs
package_name: @elevenlabs/n8n-nodes-elevenlabs
display_name: ElevenLabs
description: Interact with ElevenLabs API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: gmrchk
author_github_url: https://github.com/elevenlabs/elevenlabs-n8n.git
npm_package_name: @elevenlabs/n8n-nodes-elevenlabs
npm_version: 0.2.2
community_fetched_at: 2026-07-14T14:40:33.084Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "voice",
      "options": [
        {
          "name": "Voice",
          "value": "voice"
        },
        {
          "name": "Speech",
          "value": "speech"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a voice",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "enabled": "={{$parameter[\"simplify\"]}}",
                  "properties": {
                    "name": "={{$responseItem.name}}",
                    "labels": "={{$responseItem.labels}}",
                    "category": "={{$responseItem.category}}",
                    "voice_id": "={{$responseItem.voice_id}}",
                    "description": "={{$responseItem.description}}",
                    "preview_url": "={{$responseItem.preview_url}}"
                  }
                }
              ]
            },
            "request": {
              "url": "={{\"/voices/\"  + $parameter[\"voice\"] }}",
              "method": "GET"
            }
          },
          "description": "Returns metadata about a specific voice"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many voices",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "voices"
                  }
                },
                {
                  "type": "setKeyValue",
                  "enabled": "={{$parameter[\"simplify\"]}}",
                  "properties": {
                    "name": "={{$responseItem.name}}",
                    "labels": "={{$responseItem.labels}}",
                    "category": "={{$responseItem.category}}",
                    "voice_id": "={{$responseItem.voice_id}}",
                    "description": "={{$responseItem.description}}",
                    "preview_url": "={{$responseItem.preview_url}}"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "page_size": "={{$parameter[\"limit\"]}}"
              },
              "url": "/voices",
              "method": "GET"
            }
          },
          "description": "Returns metadata about all voices"
        },
        {
          "name": "Create Clone",
          "value": "createClone",
          "action": "Create a voice clone",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/voices/add",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              },
              "returnFullResponse": true
            }
          },
          "description": "Create a voice clone from audio files"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a voice",
          "routing": {
            "request": {
              "url": "={{\"/voices/\" + $parameter[\"voice\"]}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a specific voice"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "textToSpeech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/text-to-speech/\"+$parameter[\"voice\"]}}",
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Converts text into speech and returns audio"
        },
        {
          "name": "Speech to Text",
          "value": "speechToText",
          "action": "Transcribe audio or video",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/speech-to-text",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              }
            }
          },
          "description": "Transcribe an audio or video file"
        },
        {
          "name": "Speech to Speech",
          "value": "speechToSpeech",
          "action": "Change a voice",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/speech-to-speech/\"+$parameter[\"voice\"]}}",
              "headers": {
                "Content-Type": "multipart/form-data"
              },
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Transform audio from one voice to another"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a voice",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "enabled": "={{$parameter[\"simplify\"]}}",
              "properties": {
                "name": "={{$responseItem.name}}",
                "labels": "={{$responseItem.labels}}",
                "category": "={{$responseItem.category}}",
                "voice_id": "={{$responseItem.voice_id}}",
                "description": "={{$responseItem.description}}",
                "preview_url": "={{$responseItem.preview_url}}"
              }
            }
          ]
        },
        "request": {
          "url": "={{\"/voices/\"  + $parameter[\"voice\"] }}",
          "method": "GET"
        }
      },
      "description": "Returns metadata about a specific voice",
      "resource": "voice"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many voices",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "voices"
              }
            },
            {
              "type": "setKeyValue",
              "enabled": "={{$parameter[\"simplify\"]}}",
              "properties": {
                "name": "={{$responseItem.name}}",
                "labels": "={{$responseItem.labels}}",
                "category": "={{$responseItem.category}}",
                "voice_id": "={{$responseItem.voice_id}}",
                "description": "={{$responseItem.description}}",
                "preview_url": "={{$responseItem.preview_url}}"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "page_size": "={{$parameter[\"limit\"]}}"
          },
          "url": "/voices",
          "method": "GET"
        }
      },
      "description": "Returns metadata about all voices",
      "resource": "voice"
    },
    {
      "name": "Create Clone",
      "value": "createClone",
      "action": "Create a voice clone",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/voices/add",
          "method": "POST",
          "headers": {
            "Content-Type": "multipart/form-data"
          },
          "returnFullResponse": true
        }
      },
      "description": "Create a voice clone from audio files",
      "resource": "voice"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a voice",
      "routing": {
        "request": {
          "url": "={{\"/voices/\" + $parameter[\"voice\"]}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a specific voice",
      "resource": "voice"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "voice"
    },
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Convert text to speech",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/text-to-speech/\"+$parameter[\"voice\"]}}",
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Converts text into speech and returns audio",
      "resource": "speech"
    },
    {
      "name": "Speech to Text",
      "value": "speechToText",
      "action": "Transcribe audio or video",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/speech-to-text",
          "method": "POST",
          "headers": {
            "Content-Type": "multipart/form-data"
          }
        }
      },
      "description": "Transcribe an audio or video file",
      "resource": "speech"
    },
    {
      "name": "Speech to Speech",
      "value": "speechToSpeech",
      "action": "Change a voice",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "={{\"/speech-to-speech/\"+$parameter[\"voice\"]}}",
          "headers": {
            "Content-Type": "multipart/form-data"
          },
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Transform audio from one voice to another",
      "resource": "speech"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "speech"
    }
  ]

npm_readme:
  # @elevenlabs/n8n-nodes-elevenlabs

  This is the official ElevenLabs n8n community node.

  [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)  <!-- delete if not using this section -->  
  [Resources](#resources)  

  ## Installation

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

  ## Operations

  ### Speech
  - Text to Speech
  - Speech to Text
  - Speech to Speech

  ### Voice
  - Get
  - Get Many
  - Create Clone
  - Delete

  ## Credentials

  This node requires an API Key from ElevenLabs, You can generate one by going to your [Dashboard](https://elevenlabs.io/app/settings/api-keys).

  ## Compatibility

  This node has been tested with n8n 1.94.0

  ## Usage

  [To be completed]

  ## Resources

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

ai_documentation_summary:
  {"purpose":"Interact with the ElevenLabs API to perform text-to-speech, speech-to-text, voice cloning, and voice management tasks within n8n workflows.","capabilities":["Text to Speech","Speech to Text","Speech to Speech","Get Voice","Get Many Voices","Create Voice Clone","Delete Voice Clone"],"authentication":"API key required","commonUseCases":["Automated voiceovers for content generation","Transcription of audio files","Voice cloning for personalized AI voices","Voice conversion between different speakers"],"limitations":["Node requires n8n version 1.94.0 or higher for compatibility","Usage documentation section is incomplete"],"relatedNodes":["n8n Community Nodes","ElevenLabs API"]}


node_type: n8n-nodes-signifycrm.signifyCrm
package_name: n8n-nodes-signifycrm
display_name: SignifyCRM
description: Consume SignifyCRM API
category: Communication
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: signifycrm
author_github_url: https://github.com/serveradmin-git/
npm_package_name: n8n-nodes-signifycrm
npm_version: 0.1.3
community_fetched_at: 2026-07-14T14:40:33.092Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Case",
          "value": "case"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Opportunity",
          "value": "opportunity"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact",
          "description": "Create a contact"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a contact",
          "description": "Delete a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contact",
          "description": "Get a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many contacts",
          "description": "Get many contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact",
          "description": "Update a contact"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an account",
          "description": "Create an account"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an account",
          "description": "Delete an account"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an account",
          "description": "Get an account"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounts",
          "description": "Get many accounts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an account",
          "description": "Update an account"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "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": "getAll",
          "action": "Get many leads",
          "description": "Get many leads"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a lead",
          "description": "Update a lead"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a opportunity",
          "description": "Create a opportunity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a opportunity",
          "description": "Delete a opportunity"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a opportunity",
          "description": "Get a opportunity"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many opportunities",
          "description": "Get many opportunities"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a opportunity",
          "description": "Update a opportunity"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a case",
          "description": "Create a case"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a case",
          "description": "Delete a case"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a case",
          "description": "Get a case"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cases",
          "description": "Get many cases"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a case",
          "description": "Update a case"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "case"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "description": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Get a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Get many tasks"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "description": "Update a task"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact",
      "description": "Create a contact",
      "resource": "contact"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a contact",
      "description": "Delete a contact",
      "resource": "contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contact",
      "description": "Get a contact",
      "resource": "contact"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many contacts",
      "description": "Get many contacts",
      "resource": "contact"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact",
      "description": "Update a contact",
      "resource": "contact"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "contact"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an account",
      "description": "Create an account",
      "resource": "account"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an account",
      "description": "Delete an account",
      "resource": "account"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an account",
      "description": "Get an account",
      "resource": "account"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounts",
      "description": "Get many accounts",
      "resource": "account"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an account",
      "description": "Update an account",
      "resource": "account"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "account"
    },
    {
      "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": "getAll",
      "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": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "lead"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a opportunity",
      "description": "Create a opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a opportunity",
      "description": "Delete a opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a opportunity",
      "description": "Get a opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many opportunities",
      "description": "Get many opportunities",
      "resource": "opportunity"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a opportunity",
      "description": "Update a opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "opportunity"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a case",
      "description": "Create a case",
      "resource": "case"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a case",
      "description": "Delete a case",
      "resource": "case"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a case",
      "description": "Get a case",
      "resource": "case"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cases",
      "description": "Get many cases",
      "resource": "case"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a case",
      "description": "Update a case",
      "resource": "case"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "case"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "description": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Get a task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Get many tasks",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "description": "Update a task",
      "resource": "task"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "task"
    }
  ]

npm_readme:
  # n8n-nodes-signifycrm

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

  SignifyCRM is a powerful CRM platform serving APAC businesses since 2006, helping teams automate sales pipelines, manage marketing campaigns, and streamline customer support.

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

  ```bash
  npm install n8n-nodes-signifycrm
  ```

  ## Operations

  The SignifyCRM node supports the following **resources** and **operations**:

  ### Account
  - **create**: Create a new Account record  
  - **get**: Retrieve an Account by ID  
  - **getAll**: Retrieve multiple Accounts
  - **update**: Update an existing Account  
  - **delete**: Soft-delete an Account  

  ### Contact
  - **create**: Create a new Contact record  
  - **get**: Retrieve a Contact by ID  
  - **getAll**: Retrieve multiple Contacts  
  - **update**: Update an existing Contact  
  - **delete**: Soft-delete a Contact  

  ### Lead
  - **create**: Create a new Lead record  
  - **get**: Retrieve a Lead by ID  
  - **getAll**: Retrieve multiple Leads  
  - **update**: Update an existing Lead  
  - **delete**: Soft-delete a Lead  

  ### Opportunity
  - **create**: Create a new Opportunity record  
  - **get**: Retrieve an Opportunity by ID  
  - **getAll**: Retrieve multiple Opportunities  
  - **update**: Update an existing Opportunity  
  - **delete**: Soft-delete an Opportunity  

  ### Case
  - **create**: Create a new Case record  
  - **get**: Retrieve a Case by ID  
  - **getAll**: Retrieve multiple Cases  
  - **update**: Update an existing Case  
  - **delete**: Soft-delete a Case  

  ### Task
  - **create**: Create a new Task record  
  - **get**: Retrieve a Task by ID  
  - **getAll**: Retrieve multiple Tasks  
  - **update**: Update an existing Task  
  - **delete**: Soft-delete a Task  

  ## Credentials

  To connect your workflows to SignifyCRM, you must create a **SignifyCRM API** credential in n8n.

  ### Prerequisites
  - An active SignifyCRM account (contact your administrator if you don’t have one).  
  - Your SignifyCRM instance URL (e.g. `https://example.signifycrm.com`).  
  - A valid **API Key** issued by your SignifyCRM administrator.  
  - Your SignifyCRM **Username** and **Password**.

  ### Authentication Method
  This node uses SignifyCRM’s REST-API login endpoint (`POST /rest_api/v1/rest/login`) to authenticate on every request. Your API key is sent in the request body along with your login credentials.

  ### How to set up in n8n
  1. In n8n, go to **Settings → Credentials**.  
  2. Click **New Credential** and choose **SignifyCRM API**.  
  3. Enter the following fields:  
     - **Site URL**  
       - The full base URL of your SignifyCRM instance (e.g. `https://example.signifycrm.com`).  
     - **API Key**  
       - Your SignifyCRM API key.  
     - **Username**  
       - Your SignifyCRM username.  
     - **Password**  
       - Your SignifyCRM login password.  
  4. Click **Save**.  
  5. n8n will automatically send a test request to `/rest_api/v1/rest/login`. If the test succeeds, your credential is ready to use.

  For more details on SignifyCRM authentication, refer to the [SignifyCRM API docs](https://support.signifycrm.net/service/api_v1/docs/).

  ## Compatibility

  This node was developed and tested with latest stable n8n release and SignifyCRM API v1.

  ## Usage

  If you’re new to n8n, check out the [Try it out guide](https://docs.n8n.io/try-it-out/) first.

  1. **Add the node**  
     On your workflow canvas click the “+” button and search for **SignifyCRM**.

  2. **Select your credential**  
     In the node’s **Credentials** dropdown, pick the **SignifyCRM API** you created.

  3. **Choose a resource & operation**  
     - **Resource**: e.g. Account, Contact, Lead, Opportunity, Case, or Task  
     - **Operation**: e.g. create, get, getAll, update, delete  

  4. **Fill in the parameters**  
     - Required fields will be marked in red  
     - You can expand **Additional Fields** to set any optional properties  

  5. **Connect to other nodes**  
     - Use an **HTTP Request**, **Set**, or **Function** node before/after to pass data in or handle results  

  6. **Execute the workflow**  
     - Click **Execute Node** (or run the whole workflow) to test  
     - Inspect the output in the node’s **Output** panel

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [SignifyCRM API v1 documentation](https://support.signifycrm.net/service/api_v1/docs/)  
  * [GitHub repository & README](https://github.com/serveradmin-git/n8n-nodes-signifycrm#readme)  

  ## Version history

  - **1.0.0**
    - Initial release  
    - Resources: Account, Contact, Lead, Opportunity, Case, Task  
    - Operations: create · get · getAll · update · delete  
    - Built and tested against n8n latest and SignifyCRM API v1

  ## License

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

ai_documentation_summary:
  {"purpose":"A community n8n node that enables automation workflows to interact with the SignifyCRM API for managing CRM records.","capabilities":["Create new Account, Contact, Lead, Opportunity, Case, and Task records","Retrieve single or multiple records for Account, Contact, Lead, Opportunity, Case, and Task","Update existing records for Account, Contact, Lead, Opportunity, Case, and Task","Soft-delete records for Account, Contact, Lead, Opportunity, Case, and Task"],"authentication":"API Key required (sent in request body with username and password)","commonUseCases":["Automating customer data entry from forms or other systems","Syncing CRM data between different platforms","Triggering sales pipeline updates based on external events","Managing support cases and tasks automatically"],"limitations":["Only supports SignifyCRM API v1","Soft-delete operations do not permanently remove data","Requires a separate SignifyCRM API credential setup in n8n"],"relatedNodes":["HTTP Request","Set","Function"]}


node_type: @brightdata/n8n-nodes-brightdata.brightData
package_name: @brightdata/n8n-nodes-brightdata
display_name: BrightData
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: brd-cholpon
author_github_url: https://github.com/brightdata-com/n8n-nodes-brightdata.git
npm_package_name: @brightdata/n8n-nodes-brightdata
npm_version: 1.1.1
community_fetched_at: 2026-07-14T14:40:33.094Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Interact with Bright Data to scrape websites or use existing datasets from the marketplace to generate adapted snapshots

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "webUnlocker",
      "options": [
        {
          "name": "Marketplace Dataset",
          "value": "marketplaceDataset"
        },
        {
          "name": "Web Scraper",
          "value": "webScrapper"
        },
        {
          "name": "Web Unlocker",
          "value": "webUnlocker"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "request",
      "options": [
        {
          "name": "Web Search",
          "value": "WebSearch",
          "action": "Search the web and get serp results",
          "routing": {
            "request": {
              "url": "/request",
              "body": {
                "url": "={{`https://www.google.com/search?q=${encodeURIComponent($parameter[\"query\"])}&start=${(($parameter[\"page\"] || 1) - 1) * 10}&brd_json=1`}}",
                "zone": "={{$parameter[\"zone\"]}}",
                "format": "raw",
                "country": "={{$parameter[\"country\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Send a Request",
          "value": "request",
          "action": "Access and extract data from a specific URL",
          "routing": {
            "request": {
              "url": "/request",
              "body": {
                "url": "={{$parameter[\"url\"]}}",
                "zone": "={{$parameter[\"zone\"]}}",
                "format": "={{$parameter[\"data_format\"] === \"markdown\" ? \"raw\" : $parameter[\"format\"]}}",
                "method": "={{$parameter[\"method\"]}}",
                "country": "={{$parameter[\"country\"]}}",
                "data_format": "={{$parameter[\"data_format\"] || undefined}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webUnlocker"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listDatasets",
      "options": [
        {
          "name": "Deliver Snapshot",
          "value": "deliverSnapshot",
          "action": "Deliver a snapshot to specified storage",
          "routing": {
            "request": {
              "url": "/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/deliver",
              "method": "POST"
            }
          }
        },
        {
          "name": "Filter Dataset",
          "value": "filterDataset",
          "action": "Filter a dataset to create a snapshot",
          "routing": {
            "request": {
              "url": "/datasets/filter",
              "body": "={{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"dataset_id\": $parameter[\"dataset_id\"].value || $parameter[\"dataset_id\"],\n\t\t\t\t\t\t\t\t\"records_limit\": $parameter[\"records_limit\"],\n\t\t\t\t\t\t\t\t\"filter\": $parameter[\"filter_type\"] === \"filter_single\" \n\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\"name\": $parameter[\"field_name\"],\n\t\t\t\t\t\t\t\t\t\t\"operator\": $parameter[\"field_operator\"], \n\t\t\t\t\t\t\t\t\t\t\"value\": $parameter[\"field_value\"]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t: $parameter[\"filter_type\"] === \"filters_group\"\n\t\t\t\t\t\t\t\t\t? JSON.parse($parameter[\"filters_group\"])\n\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Dataset Metadata",
          "value": "getDatasetMetadata",
          "action": "Retrieve metadata for a specific dataset by dataset id",
          "routing": {
            "request": {
              "url": "=/datasets/{{$parameter[\"dataset_id\"]}}/metadata",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshot Content",
          "value": "getSnapshotContent",
          "action": "Retrieve data by snapshot id",
          "routing": {
            "request": {
              "qs": {
                "part": "={{$parameter[\"part\"]}}",
                "format": "={{$parameter[\"format\"]}}",
                "compress": "={{$parameter[\"compress\"] || false}}",
                "batch_size": "={{$parameter[\"batch_size\"]}}"
              },
              "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshot Metadata",
          "value": "getSnapshotMetadata",
          "action": "Get metadata for a selected snapshot by snapshot id",
          "routing": {
            "request": {
              "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshot Parts",
          "value": "getSnapshotParts",
          "action": "Split snapshot data to parts by snapshot id",
          "routing": {
            "request": {
              "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/parts",
              "method": "GET"
            }
          }
        },
        {
          "name": "List Datasets",
          "value": "listDatasets",
          "action": "List available datasets",
          "routing": {
            "request": {
              "url": "/datasets/list",
              "method": "GET"
            }
          }
        },
        {
          "name": "List Snapshots",
          "value": "listSnapshots",
          "action": "List all your snapshot ids",
          "routing": {
            "request": {
              "url": "/datasets/snapshots",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "marketplaceDataset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeByUrl",
      "options": [
        {
          "name": "Deliver Snapshot",
          "value": "deliverSnapshot",
          "action": "Deliver a snapshot to specified storage",
          "routing": {
            "request": {
              "url": "/datasets/v3/deliver/{{$parameter[\"snapshot_id\"]}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Download Snapshot",
          "value": "downloadSnapshot",
          "action": "Download the snapshot content",
          "routing": {
            "request": {
              "url": "=/datasets/v3/snapshot/{{$parameter[\"snapshot_id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Snapshots",
          "value": "getSnapshots",
          "action": "Get filtered snapshots",
          "routing": {
            "request": {
              "qs": {
                "skip": "={{$parameter[\"skip\"]}}",
                "limit": "={{$parameter[\"limit\"]}}",
                "status": "={{$parameter[\"status\"]}}",
                "to_date": "={{$parameter[\"to_date\"]}}",
                "from_date": "={{$parameter[\"from_date\"]}}",
                "dataset_id": "={{$parameter[\"dataset_id\"]}}"
              },
              "url": "/datasets/v3/snapshots",
              "method": "GET"
            }
          }
        },
        {
          "name": "Monitor Progress Snapshot",
          "value": "monitorProgressSnapshot",
          "action": "Check the status of a batch extraction",
          "routing": {
            "request": {
              "url": "=/datasets/v3/progress/{{$parameter[\"snapshot_id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Scrape By URL",
          "value": "scrapeByUrl",
          "action": "Extract structured data from a single URL",
          "routing": {
            "request": {
              "qs": {
                "format": "={{$parameter[\"format\"]}}",
                "dataset_id": "={{$parameter[\"dataset_id\"]}}",
                "include_errors": "={{$parameter[\"include_errors\"]}}"
              },
              "url": "/datasets/v3/scrape",
              "body": "={{JSON.parse($parameter[\"urls\"])}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Trigger Collection By URL",
          "value": "triggerCollectionByUrl",
          "action": "Initiate batch extraction from URL",
          "routing": {
            "request": {
              "qs": {
                "notify": "={{$parameter[\"notify\"]}}",
                "endpoint": "={{$parameter[\"endpoint\"]}}",
                "dataset_id": "={{$parameter[\"dataset_id\"]}}"
              },
              "url": "/datasets/v3/trigger",
              "body": "={{JSON.parse($parameter[\"urls\"])}}",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webScrapper"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Web Search",
      "value": "WebSearch",
      "action": "Search the web and get serp results",
      "routing": {
        "request": {
          "url": "/request",
          "body": {
            "url": "={{`https://www.google.com/search?q=${encodeURIComponent($parameter[\"query\"])}&start=${(($parameter[\"page\"] || 1) - 1) * 10}&brd_json=1`}}",
            "zone": "={{$parameter[\"zone\"]}}",
            "format": "raw",
            "country": "={{$parameter[\"country\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "webUnlocker"
    },
    {
      "name": "Send a Request",
      "value": "request",
      "action": "Access and extract data from a specific URL",
      "routing": {
        "request": {
          "url": "/request",
          "body": {
            "url": "={{$parameter[\"url\"]}}",
            "zone": "={{$parameter[\"zone\"]}}",
            "format": "={{$parameter[\"data_format\"] === \"markdown\" ? \"raw\" : $parameter[\"format\"]}}",
            "method": "={{$parameter[\"method\"]}}",
            "country": "={{$parameter[\"country\"]}}",
            "data_format": "={{$parameter[\"data_format\"] || undefined}}"
          },
          "method": "POST"
        }
      },
      "resource": "webUnlocker"
    },
    {
      "name": "Deliver Snapshot",
      "value": "deliverSnapshot",
      "action": "Deliver a snapshot to specified storage",
      "routing": {
        "request": {
          "url": "/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/deliver",
          "method": "POST"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Filter Dataset",
      "value": "filterDataset",
      "action": "Filter a dataset to create a snapshot",
      "routing": {
        "request": {
          "url": "/datasets/filter",
          "body": "={{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"dataset_id\": $parameter[\"dataset_id\"].value || $parameter[\"dataset_id\"],\n\t\t\t\t\t\t\t\t\"records_limit\": $parameter[\"records_limit\"],\n\t\t\t\t\t\t\t\t\"filter\": $parameter[\"filter_type\"] === \"filter_single\" \n\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\"name\": $parameter[\"field_name\"],\n\t\t\t\t\t\t\t\t\t\t\"operator\": $parameter[\"field_operator\"], \n\t\t\t\t\t\t\t\t\t\t\"value\": $parameter[\"field_value\"]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t: $parameter[\"filter_type\"] === \"filters_group\"\n\t\t\t\t\t\t\t\t\t? JSON.parse($parameter[\"filters_group\"])\n\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}",
          "method": "POST"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Dataset Metadata",
      "value": "getDatasetMetadata",
      "action": "Retrieve metadata for a specific dataset by dataset id",
      "routing": {
        "request": {
          "url": "=/datasets/{{$parameter[\"dataset_id\"]}}/metadata",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Snapshot Content",
      "value": "getSnapshotContent",
      "action": "Retrieve data by snapshot id",
      "routing": {
        "request": {
          "qs": {
            "part": "={{$parameter[\"part\"]}}",
            "format": "={{$parameter[\"format\"]}}",
            "compress": "={{$parameter[\"compress\"] || false}}",
            "batch_size": "={{$parameter[\"batch_size\"]}}"
          },
          "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/download",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Snapshot Metadata",
      "value": "getSnapshotMetadata",
      "action": "Get metadata for a selected snapshot by snapshot id",
      "routing": {
        "request": {
          "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Get Snapshot Parts",
      "value": "getSnapshotParts",
      "action": "Split snapshot data to parts by snapshot id",
      "routing": {
        "request": {
          "url": "=/datasets/snapshots/{{$parameter[\"snapshot_id\"]}}/parts",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "List Datasets",
      "value": "listDatasets",
      "action": "List available datasets",
      "routing": {
        "request": {
          "url": "/datasets/list",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "List Snapshots",
      "value": "listSnapshots",
      "action": "List all your snapshot ids",
      "routing": {
        "request": {
          "url": "/datasets/snapshots",
          "method": "GET"
        }
      },
      "resource": "marketplaceDataset"
    },
    {
      "name": "Deliver Snapshot",
      "value": "deliverSnapshot",
      "action": "Deliver a snapshot to specified storage",
      "routing": {
        "request": {
          "url": "/datasets/v3/deliver/{{$parameter[\"snapshot_id\"]}}",
          "method": "POST"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Download Snapshot",
      "value": "downloadSnapshot",
      "action": "Download the snapshot content",
      "routing": {
        "request": {
          "url": "=/datasets/v3/snapshot/{{$parameter[\"snapshot_id\"]}}",
          "method": "GET"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Get Snapshots",
      "value": "getSnapshots",
      "action": "Get filtered snapshots",
      "routing": {
        "request": {
          "qs": {
            "skip": "={{$parameter[\"skip\"]}}",
            "limit": "={{$parameter[\"limit\"]}}",
            "status": "={{$parameter[\"status\"]}}",
            "to_date": "={{$parameter[\"to_date\"]}}",
            "from_date": "={{$parameter[\"from_date\"]}}",
            "dataset_id": "={{$parameter[\"dataset_id\"]}}"
          },
          "url": "/datasets/v3/snapshots",
          "method": "GET"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Monitor Progress Snapshot",
      "value": "monitorProgressSnapshot",
      "action": "Check the status of a batch extraction",
      "routing": {
        "request": {
          "url": "=/datasets/v3/progress/{{$parameter[\"snapshot_id\"]}}",
          "method": "GET"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Scrape By URL",
      "value": "scrapeByUrl",
      "action": "Extract structured data from a single URL",
      "routing": {
        "request": {
          "qs": {
            "format": "={{$parameter[\"format\"]}}",
            "dataset_id": "={{$parameter[\"dataset_id\"]}}",
            "include_errors": "={{$parameter[\"include_errors\"]}}"
          },
          "url": "/datasets/v3/scrape",
          "body": "={{JSON.parse($parameter[\"urls\"])}}",
          "method": "POST"
        }
      },
      "resource": "webScrapper"
    },
    {
      "name": "Trigger Collection By URL",
      "value": "triggerCollectionByUrl",
      "action": "Initiate batch extraction from URL",
      "routing": {
        "request": {
          "qs": {
            "notify": "={{$parameter[\"notify\"]}}",
            "endpoint": "={{$parameter[\"endpoint\"]}}",
            "dataset_id": "={{$parameter[\"dataset_id\"]}}"
          },
          "url": "/datasets/v3/trigger",
          "body": "={{JSON.parse($parameter[\"urls\"])}}",
          "method": "POST"
        }
      },
      "resource": "webScrapper"
    }
  ]

npm_readme:
  ![Banner image](images/n8n-and-n8nhackers.png)

  # n8n-nodes-brightdata

  This is an n8n community node. It helps you to use [Bright Data APIs](https://docs.brightdata.com/scraping-automation/introduction) from n8n.

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

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

  ## Installation

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

  ## Compatibility

  This node was developed and tested with n8n version 1.81.4

  ## Resources

  This node currently supports the next Resources:

  ### Marketplace Dataset

  Bright Data’s Marketplace DataSet API allows access to a centralized platform providing regularly updated, ethically sourced datasets from multiple domains, offering flexible solutions for data customization and acquisition.

  The next operations are available:

  - Deliver Snapshot
  - Filter Dataset
  - Get Dataset Metadata
  - Get Snapshot Content
  - Get Snapshot Metadata
  - Get Snapshot Parts
  - List Datasets

  Ideal for:

  - Access to datasets across 120+ domains.
  - High-quality, ethically sourced data ensuring accuracy and compliance.
  - Regular updates from publicly available information.
  - Ready-to-use and on-demand solutions.
  - Flexible purchase options with comprehensive customization.
  - Suitable for various fields like social media, real estate, B2B data, and AI training.

  ### Web Unlocker

  Bright Data’s Web Unlocker API makes data collection easy by managing proxies and avoiding blocks.

  Just send an API request with the target website, and get clean HTML/JSON responses.

  The Web Unlocker handles:

  - Optimal proxy selection
  - Custom headers
  - Fingerprinting
  - CAPTCHAs

  Ideal for:

  - Scraping any website without blocks
  - Emulating real-user behavior
  - Teams without proxy infrastructure
  - Paying only for successful requests
  - [Premium domains](https://docs.brightdata.com/scraping-automation/web-unlocker/features#current-list-of-premium-domains) hard to be scraped (MediaMarkt, Hermes... )

  Please, follow [documentation](https://docs.brightdata.com/scraping-automation/web-unlocker/introduction) to setup this API.

  #### Usage

  - Resource: choose Unlocker API
    - Operation: choose "Send a Request".
      - Properties:
        - zone: Choose between your existing zone names.
        - url: The target URL you wish to access via Web Unlocker API.
        - method: The method to call the target URL.
        - format: Defines the response format. Use raw to receive the raw response from the target site. JSON is simpler for managing the output.
        - country: The country you will use to access the target URL.

  ### TL;DR - WebUnlocker

  ![Get deals of the day](images/workflow-sample.png?raw=true "Get deals of the day")

  Don't want to read? Install n8n-nodes-brightdata in your n8n from Settings / Community nodes. Copy the URL of [Get deals of the day](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/workflow-sample.json "Get deals of the day") and paste into "Import for URL" submenu at n8n.

  This n8n workflow automates the process of collecting and delivering the "Deals of the Day" from MediaMarkt, specifically tailored to user preferences, and sends those deals via email.

  This workflow is useful for automating product deal recommendations based on user input and sending personalized emails with the best deals available.

  #### Workflow Overview:

  1. **User Interaction via Form**:
     - The user submits a form where they can select categories (such as appliances, cell phones, etc.) and provide their email address. This triggers the workflow to gather personalized deals based on their input.
  2. **Data Extraction**:
     - Once the form is submitted, the workflow calls **Bright Data** community node to scrape data from the MediaMarkt website (`https://www.mediamarkt.es/es/campaign/campanas-y-ofertas`) using a proxy service. The data is retrieved in JSON format.
  3. **HTML Content Extraction**:
     - The raw HTML content from the website is extracted, focusing on the title and body, which are key to processing the content for recommendation.
  4. **Recommendation Generation using OpenAI**:
     - The extracted data is processed through **OpenAI** (GPT-4o-mini) to generate a list of recommended deals. This involves categorizing deals based on the user-selected categories, and filtering or translating content if necessary. The deal list includes properties like name, description, price, and a link.
  5. **Data Structuring**:
     - The generated list of deals is split into individual deal items using **SplitOut**.
  6. **Document Creation**:
     - Using **[Document Generator](https://www.npmjs.com/package/n8n-nodes-document-generator)** community node, an HTML template is populated with the recommended deals and structured into a user-friendly format.
  7. **Email Delivery**:
     - The document containing the recommended deals is sent to the user's email via **SMTP email send** with a personalized message that includes the list of deals.

  #### Workflow Connections:

  1. **Form Submission** → **Bright Data (Scrape Deals)**: The form triggers the request to scrape the MediaMarkt deals page.
  2. **Bright Data** → **HTML Extraction**: The scraped content is processed to extract key page data.
  3. **HTML Extraction** → **OpenAI (Deal Generation)**: The extracted content is used as input for GPT-4o-mini to generate deal recommendations.
  4. **OpenAI** → **SplitOut**: The results are split into individual deal items.
  5. **SplitOut** → **DocumentGenerator**: The items are formatted into an HTML document.
  6. **DocumentGenerator** → **Send Email**: The document is emailed to the user.

  #### Final Output:

  - The user receives an email with a personalized list of the best deals based on their selected categories.

  #### Credentials Used:

  - **Bright Data API**: For scraping data from MediaMarkt.
  - **OpenAI API**: To generate the list of recommended deals using GPT-4o-mini.
  - **SMTP**: For sending the email with the deals.

  #### External nodes Used:

  - **[Bright Data](https://www.npmjs.com/package/n8n-nodes-brightdata)**: For scrapping data from MediaMarkt.
  - **[Document Generator](https://www.npmjs.com/package/n8n-nodes-document-generator)**: For generating html output using templates.

  ### TL;DR - Marketplace Dataset

  ![Marketplace Datasets](images/marketplace-dataset-workflow-sample.png?raw=true "Marketplace Datasets")

  New Marketplace Dataset API allows to create custom snapshots by filtering existing Bright Data datasets (more than [160 datasets](https://docs.brightdata.com/datasets/introduction)).

  Datasets are updated by Bright Data, so you don't have to scrape anything.

  Your can get a list of records from the full dataset without scrapping the records by yourself. This is faster and cheaper than adquiring data from zero.
  You can use datasets to build custom AI Agents like:

  - Real Estate Agent to search houses to buy
  - Candidates Agent to search future workers

  Current existing datasets allow to get data from:

  - LinkedIn
  - Instagram
  - Facebook
  - Airbnb
  - Crunchbase
  - And many more (use operation 'List Datasets' to get all)

  Install n8n-nodes-brightdata in your n8n from Settings / Community nodes. Copy the URL of [Get Marketplace Functions](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/marketplace-dataset-workflow-sample.json) and paste into "Import for URL" submenu at n8n.

  ### TL;DR - More samples

  You can also use the next ready-to-use samples for your n8n (self-hosted version):

  - [Update LinkedIn Profiles one by one with Bright Data and Google Sheets with no scrapping](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/Update_LinkedIn_Profiles_one_by_one_with_Bright_Data_and_Google_Sheets_with_no_scrapping.json)![Update LinkedIn Profiles](images/Update_LinkedIn_Profiles_one_by_one_with_Bright_Data_and_Google_Sheets_with_no_scrapping.png?raw=true "Update LinkedIn Profiles")
  - [Create a Prospect list for Commercial purposes with Google Search and Bright Data on-demand](https://raw.githubusercontent.com/n8nhackers/n8n-nodes-brightdata/refs/heads/main/use-cases/Create_a_Prospect_list_for_Commercial_purposes_with_Google_Search_and_Bright_Data_on_demand.json)![Create a Prospect List](images/Create_a_Prospect_list_for_Commercial_purposes_with_Google_Search_and_Bright_Data_on_demand.png?raw=true "Create a Prospect List")

  # Changelog

  Here you can find the list of changes applied to this node:

  - 0.1.33: Add samples for WebScrapper/Scrape By URL and WebScrapper/Create Snapshot
  - 0.1.32: Fix equals on MarketplaceDataset/filterSnapshot
  - 0.1.31: Add webScrapper/downloadSnapshot
  - 0.1.30: Add webScrapper/deliverSnapshot + Fix webScrapper/getSnapshots
  - 0.1.29: Fix error on Marketplace/Get Snapshot Content
  - 0.1.28: Fix errors on webScrapper resource
  - 0.1.25: Create Resource for WebScrapper API
  - 0.1.24: Return listDatasets in items output property
  - 0.1.23: Add notify webhook to "Marketplace Dataset API/Trigger Snapshot by URL"
  - 0.1.22: Return clear messages on API errors + improve filter Dataset
  - 0.1.21: Add getSnapshots + Trigger snapshots to generate snapshots on demand
  - 0.1.20: Added support to use Bright Data as an AI Agent tool
  - 0.1.19: Added support for Marketplace DataSet endpoints
  - 0.1.11: Added support for using this node as tool from an Agent

  # Contribution

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

  You can test this node following the next instructions:

  ```sh
  git clone git@github.com:n8nhackers/n8n-nodes-brightdata.git
  cd n8n-nodes-brightdata
  nvm use
  npm install -g n8n
  yarn install
  npm run build
  npm link
  mkdir ~/.n8n/custom/
  cd ~/.n8n/custom/
  npm link n8n-nodes-brightdata
  cd ..
  n8n start
  ```

  # Issues

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

  # About

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

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

  # License

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

ai_documentation_summary:
  {"purpose":"A community n8n node that enables interaction with Bright Data APIs to scrape websites using the Web Unlocker or access and manipulate datasets from the Bright Data Marketplace.","capabilities":["Web scraping via Web Unlocker API with proxy management","Access to 120+ domains through Marketplace Datasets","Filtering and customizing dataset content","Retrieving dataset metadata and snapshot parts","Handling CAPTCHAs and fingerprinting","Supporting custom headers and optimal proxy selection","Returning responses in raw or JSON format"],"authentication":"API key required (Bright Data credentials)","commonUseCases":["Scraping protected websites without IP blocks","Automating data collection for e-commerce deal tracking","Accessing ethically sourced B2B or social media datasets","Generating personalized content based on scraped data"],"limitations":["Community node (may lack official support)","Compatible with n8n version 1.81.4","Requires Bright Data API access and potential subscription for premium domains"],"relatedNodes":["HTTP Request","OpenAI","SplitInArray","SplitInFields","Document Generator"]}


node_type: n8n-nodes-vikunja.vikunjaTrigger
package_name: n8n-nodes-vikunja
display_name: Vikunja Trigger
description: Starts the workflow when Vikunja events occur
category: Productivity
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: kolaente
author_github_url: https://github.com/go-vikunja/n8n-vikunja-nodes.git
npm_package_name: n8n-nodes-vikunja
npm_version: 0.4.1
community_fetched_at: 2026-07-14T14:40:33.096Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-vikunja

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

  Vikunja is an open-source, self-hostable to-do and productivity application.
  Check out [our website](https://vikunja.io/) for more information.

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

  ## Installation

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

  ## Operations

  This node supports all operations supported by Vikunja API tokens.
  You can see a full list of possible actions when creating a token in Vikunja.

  It also allows you to trigger n8n workflows by Vikunja webhooks.

  ## Credentials

  The only supported authentication method for this node are API tokens.
  On your Vikunja instance, head over to *Settings > API Tokens* and create a new token.

  In n8n, create credentials as you usually would.
  Enter the API token created previously and the API url.

  ## Compatibility

  Tested with n8n Version 1.91.3.

  ## Development

  You need npm and NodeJS installed.

  * Install dependencies with `npm i`
  * Build the node with `npm run build`
  * Check for lint errors with `npm run lint` and fix them with `npm run lintfix`
  * To release a new version in the npm registry, run `npm publish`
  * To test the node, build the node with `npm run build`, then while in the project directory run `export N8N_CUSTOM_EXTENSIONS=$PWD` and start n8n with the `n8n` command. You should now be able to find the node when searching for it.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Vikunja n8n Docs](https://vikunja.io/docs/n8n)
  * [Vikunja General Docs](https://vikunja.io/docs/)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when Vikunja events occur and enables automation using Vikunja API tokens.","capabilities":["Trigger workflows on Vikunja events","Execute Vikunja API operations","Use Vikunja webhooks"],"authentication":"API token required (API URL and token)","commonUseCases":["Automate task management in Vikunja","Sync tasks between Vikunja and other services","Execute workflows upon task creation or updates"],"limitations":["Limited to Vikunja API token operations","Community node (not official n8n node)"],"relatedNodes":["Vikunja Task","Vikunja List","Vikunja User"]}


node_type: n8n-nodes-vikunja.vikunja
package_name: n8n-nodes-vikunja
display_name: Vikunja
description: Get data from Vikunja's API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: kolaente
author_github_url: https://github.com/go-vikunja/n8n-vikunja-nodes.git
npm_package_name: n8n-nodes-vikunja
npm_version: 0.4.1
community_fetched_at: 2026-07-14T14:40:33.098Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Label",
          "value": "label"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Team",
          "value": "team"
        },
        {
          "name": "Webhook",
          "value": "webhook"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add a Comment",
          "value": "addComment",
          "action": "Add a comment",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments",
              "method": "PUT"
            }
          },
          "description": "Add a comment to a task"
        },
        {
          "name": "Add a Label",
          "value": "addLabel",
          "action": "Add a label",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/labels",
              "method": "PUT"
            }
          },
          "description": "Add a label to a task"
        },
        {
          "name": "Add a Reaction",
          "value": "addReaction",
          "action": "Add a reaction",
          "routing": {
            "request": {
              "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions",
              "method": "PUT"
            }
          },
          "description": "Add a reaction to a task or comment"
        },
        {
          "name": "Add a Relation",
          "value": "addRelation",
          "action": "Add a relation",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/relations",
              "method": "PUT"
            }
          },
          "description": "Add a relation to a task"
        },
        {
          "name": "Assign a User to a Task",
          "value": "assignUser",
          "action": "Assign a user",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/assignees",
              "method": "PUT"
            }
          }
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.taskProject}}/tasks",
              "method": "PUT"
            }
          },
          "description": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a task"
        },
        {
          "name": "Delete a Comment",
          "value": "deleteComment",
          "action": "Delete a comment",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete an existing comment on a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "GET"
            }
          },
          "description": "Get a task"
        },
        {
          "name": "Get All Comments",
          "value": "getAllComments",
          "action": "Get all comments",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments",
              "method": "GET"
            }
          },
          "description": "Fetch all comments on a task"
        },
        {
          "name": "Get All Labels",
          "value": "getAllLabelsOnTask",
          "action": "Get all labels",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/labels",
              "method": "GET"
            }
          },
          "description": "Fetch all labels on a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.taskProject}}/tasks",
              "method": "GET"
            }
          },
          "description": "Get many tasks"
        },
        {
          "name": "Remove a Label From a Task",
          "value": "removeLabel",
          "action": "Remove a label",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/labels/{{$parameter.taskLabel}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Remove a Reaction",
          "value": "removeReaction",
          "action": "Remove a reaction",
          "routing": {
            "request": {
              "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions/delete",
              "method": "POST"
            }
          },
          "description": "Remove a reaction from a task or comment"
        },
        {
          "name": "Remove a Relation",
          "value": "removeRelation",
          "action": "Remove a relation",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/relations/{{$parameter.relationKind}}/{{$parameter.otherTaskId}}",
              "method": "DELETE"
            }
          },
          "description": "Remove an existing relation on a task"
        },
        {
          "name": "Remove an Assigned User From a Task",
          "value": "unassignUser",
          "action": "Unassign a user",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/assignees/{{$parameter.userId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}",
              "method": "POST"
            }
          },
          "description": "Update a task"
        },
        {
          "name": "Update a Comment",
          "value": "updateComment",
          "action": "Update a comment",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
              "method": "POST"
            }
          },
          "description": "Update an existing comment on a task"
        },
        {
          "name": "Update Task Position",
          "value": "updateTaskPosition",
          "action": "Update the task position",
          "routing": {
            "request": {
              "url": "=/tasks/{{$parameter.taskId}}/position",
              "method": "POST"
            }
          },
          "description": "Update the position of a task on a view"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add a Team",
          "value": "addTeam",
          "action": "Add a team",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams",
              "method": "PUT"
            }
          },
          "description": "Add a team to a project"
        },
        {
          "name": "Add a User",
          "value": "addUser",
          "action": "Add a user",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users",
              "method": "PUT"
            }
          },
          "description": "Add a user to a project"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project",
          "routing": {
            "request": {
              "url": "=/projects",
              "method": "PUT"
            }
          },
          "description": "Create a project"
        },
        {
          "name": "Create a Kanban Bucket",
          "value": "createBucket",
          "action": "Create a bucket",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets",
              "method": "PUT"
            }
          },
          "description": "Create a kanban bucket for a view"
        },
        {
          "name": "Create a Link Share",
          "value": "createLinkShare",
          "action": "Create a link share",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/shares",
              "method": "PUT"
            }
          },
          "description": "Create Link Share for a project"
        },
        {
          "name": "Create a Project View",
          "value": "createProjectView",
          "action": "Create a project view",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views",
              "method": "PUT"
            }
          },
          "description": "Create a view in a project"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a project"
        },
        {
          "name": "Delete a Kanban Bucket",
          "value": "deleteBucket",
          "action": "Delete a bucket",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a kanban bucket from a view"
        },
        {
          "name": "Delete a Link Share",
          "value": "deleteLinkShare",
          "action": "Delete a link share",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/shares/{{$parameter.linkShareId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a link share from a project"
        },
        {
          "name": "Delete a Project View",
          "value": "deleteProjectView",
          "action": "Delete a project view",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a project view from a project"
        },
        {
          "name": "Duplicate",
          "value": "duplicate",
          "action": "Duplicate a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/duplicate",
              "method": "PUT"
            }
          },
          "description": "Duplicate a project"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}",
              "method": "GET"
            }
          },
          "description": "Get a project"
        },
        {
          "name": "Get All Link Shares",
          "value": "getAllLinkShares",
          "action": "Get all link shares",
          "routing": {
            "request": {
              "url": "=/project/{{$parameter.project}}/shares",
              "method": "GET"
            }
          },
          "description": "Fetch all linkShares on a project"
        },
        {
          "name": "Get All Project Views",
          "value": "getAllProjectViews",
          "action": "Get all views",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views",
              "method": "GET"
            }
          },
          "description": "Fetch all views which are associated to this project"
        },
        {
          "name": "Get All Teams",
          "value": "getAllTeams",
          "action": "Get all teams",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams",
              "method": "GET"
            }
          },
          "description": "Fetch all teams who have access to a project"
        },
        {
          "name": "Get All Users",
          "value": "getAllUsers",
          "action": "Get all users",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users",
              "method": "GET"
            }
          },
          "description": "Fetch all users who have access to a project"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many projects",
          "routing": {
            "request": {
              "url": "=/projects",
              "method": "GET"
            }
          },
          "description": "Get many projects"
        },
        {
          "name": "Remove a Team From a Project",
          "value": "removeTeam",
          "action": "Remove a team",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Remove a User From a Project",
          "value": "removeUser",
          "action": "Remove a user",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}",
              "method": "POST"
            }
          },
          "description": "Update a project"
        },
        {
          "name": "Update a Kanban Bucket",
          "value": "updateBucket",
          "action": "Update a bucket",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
              "method": "POST"
            }
          },
          "description": "Update a kanban bucket in a view"
        },
        {
          "name": "Update a Project View",
          "value": "updateProjectView",
          "action": "Update a project view",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update a Team's Permissions on a Project",
          "value": "updateTeam",
          "action": "Update a team s permissions on a project a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update a User's Permissions on a Project",
          "value": "updateUser",
          "action": "Update a user s permissions on a project a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
              "method": "POST"
            }
          }
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a label",
          "routing": {
            "request": {
              "url": "=/labels",
              "method": "PUT"
            }
          },
          "description": "Create a label"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter.label}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a label"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter.label}}",
              "method": "GET"
            }
          },
          "description": "Get a label"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many labels",
          "routing": {
            "request": {
              "url": "=/labels",
              "method": "GET"
            }
          },
          "description": "Get many labels"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter.label}}",
              "method": "POST"
            }
          },
          "description": "Update a label"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
              "method": "PUT"
            }
          },
          "description": "Create a webhook"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a webhook"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many webhooks",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
              "method": "GET"
            }
          },
          "description": "Get many webhooks"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a webhook",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
              "method": "POST"
            }
          },
          "description": "Update a webhook"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add a User",
          "value": "addUser",
          "action": "Add a user",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}/members",
              "method": "PUT"
            }
          },
          "description": "Add a user to a team"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a team",
          "routing": {
            "request": {
              "url": "=/teams",
              "method": "PUT"
            }
          },
          "description": "Create a team"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a team",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a team"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a team",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}",
              "method": "GET"
            }
          },
          "description": "Get a team"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many teams",
          "routing": {
            "request": {
              "url": "=/teams",
              "method": "GET"
            }
          },
          "description": "Get many teams"
        },
        {
          "name": "Remove a User From a Team",
          "value": "removeUser",
          "action": "Remove a user",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Toggle a User's Admin Status in a Team",
          "value": "updateUser",
          "action": "Toggle admin status",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a team",
          "routing": {
            "request": {
              "url": "=/teams/{{$parameter.team}}",
              "method": "POST"
            }
          },
          "description": "Update a team"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add a Comment",
      "value": "addComment",
      "action": "Add a comment",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments",
          "method": "PUT"
        }
      },
      "description": "Add a comment to a task",
      "resource": "task"
    },
    {
      "name": "Add a Label",
      "value": "addLabel",
      "action": "Add a label",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/labels",
          "method": "PUT"
        }
      },
      "description": "Add a label to a task",
      "resource": "task"
    },
    {
      "name": "Add a Reaction",
      "value": "addReaction",
      "action": "Add a reaction",
      "routing": {
        "request": {
          "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions",
          "method": "PUT"
        }
      },
      "description": "Add a reaction to a task or comment",
      "resource": "task"
    },
    {
      "name": "Add a Relation",
      "value": "addRelation",
      "action": "Add a relation",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/relations",
          "method": "PUT"
        }
      },
      "description": "Add a relation to a task",
      "resource": "task"
    },
    {
      "name": "Assign a User to a Task",
      "value": "assignUser",
      "action": "Assign a user",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/assignees",
          "method": "PUT"
        }
      },
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.taskProject}}/tasks",
          "method": "PUT"
        }
      },
      "description": "Create a task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Delete a Comment",
      "value": "deleteComment",
      "action": "Delete a comment",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete an existing comment on a task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "GET"
        }
      },
      "description": "Get a task",
      "resource": "task"
    },
    {
      "name": "Get All Comments",
      "value": "getAllComments",
      "action": "Get all comments",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments",
          "method": "GET"
        }
      },
      "description": "Fetch all comments on a task",
      "resource": "task"
    },
    {
      "name": "Get All Labels",
      "value": "getAllLabelsOnTask",
      "action": "Get all labels",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/labels",
          "method": "GET"
        }
      },
      "description": "Fetch all labels on a task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.taskProject}}/tasks",
          "method": "GET"
        }
      },
      "description": "Get many tasks",
      "resource": "task"
    },
    {
      "name": "Remove a Label From a Task",
      "value": "removeLabel",
      "action": "Remove a label",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/labels/{{$parameter.taskLabel}}",
          "method": "DELETE"
        }
      },
      "resource": "task"
    },
    {
      "name": "Remove a Reaction",
      "value": "removeReaction",
      "action": "Remove a reaction",
      "routing": {
        "request": {
          "url": "=/{{$parameter.reactionKind}}/{{$parameter.reactionEntityID}}/reactions/delete",
          "method": "POST"
        }
      },
      "description": "Remove a reaction from a task or comment",
      "resource": "task"
    },
    {
      "name": "Remove a Relation",
      "value": "removeRelation",
      "action": "Remove a relation",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/relations/{{$parameter.relationKind}}/{{$parameter.otherTaskId}}",
          "method": "DELETE"
        }
      },
      "description": "Remove an existing relation on a task",
      "resource": "task"
    },
    {
      "name": "Remove an Assigned User From a Task",
      "value": "unassignUser",
      "action": "Unassign a user",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/assignees/{{$parameter.userId}}",
          "method": "DELETE"
        }
      },
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}",
          "method": "POST"
        }
      },
      "description": "Update a task",
      "resource": "task"
    },
    {
      "name": "Update a Comment",
      "value": "updateComment",
      "action": "Update a comment",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/comments/{{$parameter.commentId}}",
          "method": "POST"
        }
      },
      "description": "Update an existing comment on a task",
      "resource": "task"
    },
    {
      "name": "Update Task Position",
      "value": "updateTaskPosition",
      "action": "Update the task position",
      "routing": {
        "request": {
          "url": "=/tasks/{{$parameter.taskId}}/position",
          "method": "POST"
        }
      },
      "description": "Update the position of a task on a view",
      "resource": "task"
    },
    {
      "name": "Add a Team",
      "value": "addTeam",
      "action": "Add a team",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams",
          "method": "PUT"
        }
      },
      "description": "Add a team to a project",
      "resource": "project"
    },
    {
      "name": "Add a User",
      "value": "addUser",
      "action": "Add a user",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users",
          "method": "PUT"
        }
      },
      "description": "Add a user to a project",
      "resource": "project"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project",
      "routing": {
        "request": {
          "url": "=/projects",
          "method": "PUT"
        }
      },
      "description": "Create a project",
      "resource": "project"
    },
    {
      "name": "Create a Kanban Bucket",
      "value": "createBucket",
      "action": "Create a bucket",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets",
          "method": "PUT"
        }
      },
      "description": "Create a kanban bucket for a view",
      "resource": "project"
    },
    {
      "name": "Create a Link Share",
      "value": "createLinkShare",
      "action": "Create a link share",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/shares",
          "method": "PUT"
        }
      },
      "description": "Create Link Share for a project",
      "resource": "project"
    },
    {
      "name": "Create a Project View",
      "value": "createProjectView",
      "action": "Create a project view",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views",
          "method": "PUT"
        }
      },
      "description": "Create a view in a project",
      "resource": "project"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a project",
      "resource": "project"
    },
    {
      "name": "Delete a Kanban Bucket",
      "value": "deleteBucket",
      "action": "Delete a bucket",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a kanban bucket from a view",
      "resource": "project"
    },
    {
      "name": "Delete a Link Share",
      "value": "deleteLinkShare",
      "action": "Delete a link share",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/shares/{{$parameter.linkShareId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a link share from a project",
      "resource": "project"
    },
    {
      "name": "Delete a Project View",
      "value": "deleteProjectView",
      "action": "Delete a project view",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a project view from a project",
      "resource": "project"
    },
    {
      "name": "Duplicate",
      "value": "duplicate",
      "action": "Duplicate a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/duplicate",
          "method": "PUT"
        }
      },
      "description": "Duplicate a project",
      "resource": "project"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}",
          "method": "GET"
        }
      },
      "description": "Get a project",
      "resource": "project"
    },
    {
      "name": "Get All Link Shares",
      "value": "getAllLinkShares",
      "action": "Get all link shares",
      "routing": {
        "request": {
          "url": "=/project/{{$parameter.project}}/shares",
          "method": "GET"
        }
      },
      "description": "Fetch all linkShares on a project",
      "resource": "project"
    },
    {
      "name": "Get All Project Views",
      "value": "getAllProjectViews",
      "action": "Get all views",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views",
          "method": "GET"
        }
      },
      "description": "Fetch all views which are associated to this project",
      "resource": "project"
    },
    {
      "name": "Get All Teams",
      "value": "getAllTeams",
      "action": "Get all teams",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams",
          "method": "GET"
        }
      },
      "description": "Fetch all teams who have access to a project",
      "resource": "project"
    },
    {
      "name": "Get All Users",
      "value": "getAllUsers",
      "action": "Get all users",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users",
          "method": "GET"
        }
      },
      "description": "Fetch all users who have access to a project",
      "resource": "project"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many projects",
      "routing": {
        "request": {
          "url": "=/projects",
          "method": "GET"
        }
      },
      "description": "Get many projects",
      "resource": "project"
    },
    {
      "name": "Remove a Team From a Project",
      "value": "removeTeam",
      "action": "Remove a team",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
          "method": "DELETE"
        }
      },
      "resource": "project"
    },
    {
      "name": "Remove a User From a Project",
      "value": "removeUser",
      "action": "Remove a user",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
          "method": "DELETE"
        }
      },
      "resource": "project"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}",
          "method": "POST"
        }
      },
      "description": "Update a project",
      "resource": "project"
    },
    {
      "name": "Update a Kanban Bucket",
      "value": "updateBucket",
      "action": "Update a bucket",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}/buckets/{{$parameter.bucketId}}",
          "method": "POST"
        }
      },
      "description": "Update a kanban bucket in a view",
      "resource": "project"
    },
    {
      "name": "Update a Project View",
      "value": "updateProjectView",
      "action": "Update a project view",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/views/{{$parameter.view}}",
          "method": "POST"
        }
      },
      "resource": "project"
    },
    {
      "name": "Update a Team's Permissions on a Project",
      "value": "updateTeam",
      "action": "Update a team s permissions on a project a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/teams/{{$parameter.teamId}}",
          "method": "POST"
        }
      },
      "resource": "project"
    },
    {
      "name": "Update a User's Permissions on a Project",
      "value": "updateUser",
      "action": "Update a user s permissions on a project a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.project}}/users/{{$parameter.userId}}",
          "method": "POST"
        }
      },
      "resource": "project"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a label",
      "routing": {
        "request": {
          "url": "=/labels",
          "method": "PUT"
        }
      },
      "description": "Create a label",
      "resource": "label"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter.label}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a label",
      "resource": "label"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter.label}}",
          "method": "GET"
        }
      },
      "description": "Get a label",
      "resource": "label"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many labels",
      "routing": {
        "request": {
          "url": "=/labels",
          "method": "GET"
        }
      },
      "description": "Get many labels",
      "resource": "label"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter.label}}",
          "method": "POST"
        }
      },
      "description": "Update a label",
      "resource": "label"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
          "method": "PUT"
        }
      },
      "description": "Create a webhook",
      "resource": "webhook"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a webhook",
      "resource": "webhook"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many webhooks",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks",
          "method": "GET"
        }
      },
      "description": "Get many webhooks",
      "resource": "webhook"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a webhook",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.webhookProject}}/webhooks/{{$parameter.webhook}}",
          "method": "POST"
        }
      },
      "description": "Update a webhook",
      "resource": "webhook"
    },
    {
      "name": "Add a User",
      "value": "addUser",
      "action": "Add a user",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}/members",
          "method": "PUT"
        }
      },
      "description": "Add a user to a team",
      "resource": "team"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a team",
      "routing": {
        "request": {
          "url": "=/teams",
          "method": "PUT"
        }
      },
      "description": "Create a team",
      "resource": "team"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a team",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a team",
      "resource": "team"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a team",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}",
          "method": "GET"
        }
      },
      "description": "Get a team",
      "resource": "team"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many teams",
      "routing": {
        "request": {
          "url": "=/teams",
          "method": "GET"
        }
      },
      "description": "Get many teams",
      "resource": "team"
    },
    {
      "name": "Remove a User From a Team",
      "value": "removeUser",
      "action": "Remove a user",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
          "method": "DELETE"
        }
      },
      "resource": "team"
    },
    {
      "name": "Toggle a User's Admin Status in a Team",
      "value": "updateUser",
      "action": "Toggle admin status",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}/members/{{$parameter.userId}}",
          "method": "POST"
        }
      },
      "resource": "team"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a team",
      "routing": {
        "request": {
          "url": "=/teams/{{$parameter.team}}",
          "method": "POST"
        }
      },
      "description": "Update a team",
      "resource": "team"
    }
  ]

npm_readme:
  # n8n-nodes-vikunja

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

  Vikunja is an open-source, self-hostable to-do and productivity application.
  Check out [our website](https://vikunja.io/) for more information.

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

  ## Installation

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

  ## Operations

  This node supports all operations supported by Vikunja API tokens.
  You can see a full list of possible actions when creating a token in Vikunja.

  It also allows you to trigger n8n workflows by Vikunja webhooks.

  ## Credentials

  The only supported authentication method for this node are API tokens.
  On your Vikunja instance, head over to *Settings > API Tokens* and create a new token.

  In n8n, create credentials as you usually would.
  Enter the API token created previously and the API url.

  ## Compatibility

  Tested with n8n Version 1.91.3.

  ## Development

  You need npm and NodeJS installed.

  * Install dependencies with `npm i`
  * Build the node with `npm run build`
  * Check for lint errors with `npm run lint` and fix them with `npm run lintfix`
  * To release a new version in the npm registry, run `npm publish`
  * To test the node, build the node with `npm run build`, then while in the project directory run `export N8N_CUSTOM_EXTENSIONS=$PWD` and start n8n with the `n8n` command. You should now be able to find the node when searching for it.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Vikunja n8n Docs](https://vikunja.io/docs/n8n)
  * [Vikunja General Docs](https://vikunja.io/docs/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Vikunja, an open-source self-hostable to-do and productivity application, by allowing data retrieval and workflow triggers via its API.","capabilities":["Retrieve data from Vikunja API","Trigger n8n workflows via Vikunja webhooks","Support all operations available in Vikunja API tokens"],"authentication":"API token required (configured via Credentials with API token and API URL)","commonUseCases":["Automating task management in n8n workflows","Syncing to-do items between Vikunja and other services","Triggering n8n workflows based on Vikunja events"],"limitations":["Limited to API token authentication method only","Community node (may lack official support or updates)"],"relatedNodes":["Vikunja API node","Webhook node","General API node"]}


node_type: n8n-nodes-klicktipp.klicktipp
package_name: n8n-nodes-klicktipp
display_name: KlickTipp
description: Interact with KlickTipp API
category: Community
development_style: declarative
version: 3
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
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.41
community_fetched_at: 2026-07-14T14:40:33.100Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "tag",
      "options": [
        {
          "name": "Contact",
          "value": "subscriber"
        },
        {
          "name": "Contact Tagging",
          "value": "contact-tagging"
        },
        {
          "name": "Data Field",
          "value": "field"
        },
        {
          "name": "Opt-In Process",
          "value": "opt-in"
        },
        {
          "name": "Tag",
          "value": "tag"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Create Tag",
          "value": "create",
          "action": "Create tag",
          "description": "Creates a new manual tag"
        },
        {
          "name": "Delete Tag",
          "value": "delete",
          "action": "Delete tag",
          "description": "Deletes a tag and removes it from all contacts"
        },
        {
          "name": "Get Tag",
          "value": "get",
          "action": "Get tag",
          "description": "Returns the name and description of a tag"
        },
        {
          "name": "List Tags",
          "value": "index",
          "action": "List tags",
          "description": "Lists the IDs and names of all tags"
        },
        {
          "name": "Update Tag",
          "value": "update",
          "action": "Update tag",
          "description": "Updates a tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Get Opt-in Process",
          "value": "get",
          "action": "Get opt in process",
          "description": "Returns the complete data of an opt-in process"
        },
        {
          "name": "Search Redirect URL",
          "value": "getRedirect",
          "action": "Search redirect url",
          "description": "Search the redirection URL for a specific opt-in process"
        },
        {
          "name": "List Opt-in Processes",
          "value": "index",
          "action": "List opt in processes",
          "description": "Lists the IDs and names of all opt-in processes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "opt-in"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Add or Update Contact",
          "value": "subscribe",
          "action": "Add or update contact",
          "description": "Adds a new contact. If a contact with the same email already exists, it will be updated."
        },
        {
          "name": "Delete Contact",
          "value": "delete",
          "action": "Delete contact",
          "description": "Deletes a contact"
        },
        {
          "name": "Get Contact",
          "value": "get",
          "action": "Get contact",
          "description": "Returns the complete data of a contact"
        },
        {
          "name": "List Contacts",
          "value": "index",
          "action": "List contacts",
          "description": "Lists the IDs of all active contacts"
        },
        {
          "name": "Search Contact ID",
          "value": "search",
          "action": "Search contact id",
          "description": "Returns the contact ID for an email address"
        },
        {
          "name": "Search Tagged Contacts",
          "value": "tagged",
          "action": "Search tagged contacts",
          "description": "Returns the IDs and tagging timestamps of all tagged contacts"
        },
        {
          "name": "Unsubscribe Contact",
          "value": "unsubscribe",
          "action": "Unsubscribe contact",
          "description": "Unsubscribes a contact, preventing further communication"
        },
        {
          "name": "Update Contact",
          "value": "update",
          "action": "Update contact",
          "description": "Updates a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subscriber"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Get Data Field",
          "value": "get",
          "action": "Get data field",
          "description": "Gets the ID and the name of a data field"
        },
        {
          "name": "List Data Fields",
          "value": "index",
          "action": "List data fields",
          "description": "Lists the IDs and names of all data fields"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "field"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "tag",
      "options": [
        {
          "name": "Tag Contact",
          "value": "tag",
          "action": "Tag contact",
          "description": "Adds one or more tags to a contact"
        },
        {
          "name": "Untag Contact",
          "value": "untag",
          "action": "Untag contact",
          "description": "Removes a tag from a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact-tagging"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Tag",
      "value": "create",
      "action": "Create tag",
      "description": "Creates a new manual tag",
      "resource": "tag"
    },
    {
      "name": "Delete Tag",
      "value": "delete",
      "action": "Delete tag",
      "description": "Deletes a tag and removes it from all contacts",
      "resource": "tag"
    },
    {
      "name": "Get Tag",
      "value": "get",
      "action": "Get tag",
      "description": "Returns the name and description of a tag",
      "resource": "tag"
    },
    {
      "name": "List Tags",
      "value": "index",
      "action": "List tags",
      "description": "Lists the IDs and names of all tags",
      "resource": "tag"
    },
    {
      "name": "Update Tag",
      "value": "update",
      "action": "Update tag",
      "description": "Updates a tag",
      "resource": "tag"
    },
    {
      "name": "Get Opt-in Process",
      "value": "get",
      "action": "Get opt in process",
      "description": "Returns the complete data of an opt-in process",
      "resource": "opt-in"
    },
    {
      "name": "Search Redirect URL",
      "value": "getRedirect",
      "action": "Search redirect url",
      "description": "Search the redirection URL for a specific opt-in process",
      "resource": "opt-in"
    },
    {
      "name": "List Opt-in Processes",
      "value": "index",
      "action": "List opt in processes",
      "description": "Lists the IDs and names of all opt-in processes",
      "resource": "opt-in"
    },
    {
      "name": "Add or Update Contact",
      "value": "subscribe",
      "action": "Add or update contact",
      "description": "Adds a new contact. If a contact with the same email already exists, it will be updated.",
      "resource": "subscriber"
    },
    {
      "name": "Delete Contact",
      "value": "delete",
      "action": "Delete contact",
      "description": "Deletes a contact",
      "resource": "subscriber"
    },
    {
      "name": "Get Contact",
      "value": "get",
      "action": "Get contact",
      "description": "Returns the complete data of a contact",
      "resource": "subscriber"
    },
    {
      "name": "List Contacts",
      "value": "index",
      "action": "List contacts",
      "description": "Lists the IDs of all active contacts",
      "resource": "subscriber"
    },
    {
      "name": "Search Contact ID",
      "value": "search",
      "action": "Search contact id",
      "description": "Returns the contact ID for an email address",
      "resource": "subscriber"
    },
    {
      "name": "Search Tagged Contacts",
      "value": "tagged",
      "action": "Search tagged contacts",
      "description": "Returns the IDs and tagging timestamps of all tagged contacts",
      "resource": "subscriber"
    },
    {
      "name": "Unsubscribe Contact",
      "value": "unsubscribe",
      "action": "Unsubscribe contact",
      "description": "Unsubscribes a contact, preventing further communication",
      "resource": "subscriber"
    },
    {
      "name": "Update Contact",
      "value": "update",
      "action": "Update contact",
      "description": "Updates a contact",
      "resource": "subscriber"
    },
    {
      "name": "Get Data Field",
      "value": "get",
      "action": "Get data field",
      "description": "Gets the ID and the name of a data field",
      "resource": "field"
    },
    {
      "name": "List Data Fields",
      "value": "index",
      "action": "List data fields",
      "description": "Lists the IDs and names of all data fields",
      "resource": "field"
    },
    {
      "name": "Tag Contact",
      "value": "tag",
      "action": "Tag contact",
      "description": "Adds one or more tags to a contact",
      "resource": "contact-tagging"
    },
    {
      "name": "Untag Contact",
      "value": "untag",
      "action": "Untag contact",
      "description": "Removes a tag from a contact",
      "resource": "contact-tagging"
    }
  ]

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.

  For the **KlickTipp Trigger**, you can also optionally configure body authentication directly in the node:

  - **Authentication**
    Default: `No`
    Choose `Yes` only if your KlickTipp webhook sends auth in the POST body as a static parameter. Choose `No` if no auth is required.
  - **Parameter Key**
    Default: `Authorization`
    Enter the exact body parameter key configured in KlickTipp. Usually: `Authorization`.
  - **Parameter Value**
    Default: empty
    Paste the webhook token exactly as stored in KlickTipp. Do not add `Bearer`, quotes, or extra spaces.

  Info:
  In KlickTipp, create or edit your webhook, set the HTTP method to `POST`, enable `Add static value`, and add the same key-value pair as a static POST body parameter. If this is missing, body authentication will fail.

  `Parameter Key`, `Parameter Value`, and the info box are shown only when `Authentication` is set to `Yes`.

  When `Authentication` is set to `Yes`, the trigger validates the incoming webhook body before the workflow starts. If the field is missing or the value does not match, the request is rejected and the workflow does not run.

  ---

  ## 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 enables interaction with the KlickTipp Marketing Suite API to manage email marketing campaigns, contacts, tags, and data fields.","capabilities":["Add or update contacts","Delete contacts","Search and list contacts","Tag and untag contacts","Manage data fields","Create, list, update, and delete tags","Manage opt-in processes and redirect URLs","Subscribe and unsubscribe contacts","Trigger on new KlickTipp events (webhooks)"],"authentication":"Username and Password","commonUseCases":["Automating contact management in email marketing workflows","Segmenting audiences using tags","Handling opt-in and opt-out processes","Receiving real-time event notifications from KlickTipp"],"limitations":["Not compatible with n8n Cloud (requires self-hosted or desktop instance)","Requires manual installation via npm package"],"relatedNodes":["HTTP Request","Credentials","Webhook"]}


node_type: @easysoftware/n8n-nodes-easy-redmine.easyRedmine
package_name: @easysoftware/n8n-nodes-easy-redmine
display_name: Easy Redmine
description: Easy Redmine Operations
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: martinnovak
author_github_url: https://github.com/easysoftware/n8n-nodes-easy-redmine.git
npm_package_name: @easysoftware/n8n-nodes-easy-redmine
npm_version: 0.5.3
community_fetched_at: 2026-07-14T14:40:33.102Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "issues",
      "options": [
        {
          "name": "Issue",
          "value": "issues"
        },
        {
          "name": "Lead",
          "value": "easy_leads"
        },
        {
          "name": "Opportunity",
          "value": "easy_crm_cases"
        },
        {
          "name": "Project",
          "value": "projects"
        },
        {
          "name": "Account",
          "value": "easy_contacts"
        },
        {
          "name": "Attendance",
          "value": "easy_attendances"
        },
        {
          "name": "Personal Contact",
          "value": "easy_personal_contacts"
        },
        {
          "name": "Time Entry",
          "value": "time_entries"
        },
        {
          "name": "User",
          "value": "users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single entity"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple entities"
        },
        {
          "name": "Add Comment",
          "value": "add-comment",
          "action": "Add comment",
          "description": "Add a comment to entity"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create entity"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "easy_leads",
            "issues",
            "easy_crm_cases",
            "easy_contacts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single attendance entity"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple attendance entities"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create attendance entity"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update attendance entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "easy_attendances"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single project"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple projects"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single personal contact"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple personal contacts"
        },
        {
          "name": "Add Comment",
          "value": "add-comment",
          "action": "Add comment",
          "description": "Add comment to personal contact"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create personal contact"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update personal contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "easy_personal_contacts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single entity"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple entities"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create entity"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "time_entries"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single user"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple user"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create user"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single entity",
      "resource": "easy_leads"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple entities",
      "resource": "easy_leads"
    },
    {
      "name": "Add Comment",
      "value": "add-comment",
      "action": "Add comment",
      "description": "Add a comment to entity",
      "resource": "easy_leads"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create entity",
      "resource": "easy_leads"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update entity",
      "resource": "easy_leads"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single attendance entity",
      "resource": "easy_attendances"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple attendance entities",
      "resource": "easy_attendances"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create attendance entity",
      "resource": "easy_attendances"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update attendance entity",
      "resource": "easy_attendances"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single project",
      "resource": "projects"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple projects",
      "resource": "projects"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple personal contacts",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Add Comment",
      "value": "add-comment",
      "action": "Add comment",
      "description": "Add comment to personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single entity",
      "resource": "time_entries"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple entities",
      "resource": "time_entries"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create entity",
      "resource": "time_entries"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update entity",
      "resource": "time_entries"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single user",
      "resource": "users"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple user",
      "resource": "users"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create user",
      "resource": "users"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update user",
      "resource": "users"
    }
  ]

npm_readme:
  # Easy Redmine credentials and node for n8n

  This repo contains n8n node for communication with Easy Redmine.

  ## How to install

  ### ⚙️ Requirements

  To use our community node, you need to have the following requirements:

  - n8n 1.54.4 or newer

  ### 🛠️ Installation in n8n

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

  ### 🔑 Setup credentials

  You need to set up credentials for the Easy Redmine node.
  You can do this by going to the credentials section in n8n and adding a new credential of type "Easy Redmine".

  In the newly created credential, you need to fill in domain, and user api key.

  The domain should be, for example, `https://instance.easyproject.com`.

  To find the API key, go to your Easy Redmine instance, click on your profile in the top right corner.

  ![Go to profile](images/cred-guide-1.png)

  Your profile window will open. Click on the "Edit" button.

  ![Profile window](images/cred-guide-2.png)

  Your profile edit page will open. Scroll down to the Preferences section. Here just copy the API access key.

  ![Preferences section with API key](images/cred-guide-3.png)

  Now, your credentials are ready to use.

  # Easy Redmine node

  The custom node is created to handle all aspects of Easy Redmine integration with n8n.
  Currently available operations and resources are:

  ## Easy Redmine Entities

  A list of all available entities in Easy Redmine node.

  - Accounts
  - Issues
  - Leads
  - Opportunities
  - Personal contacts
  - Users

  ## Accounts

  Account entity is used to manage company contacts. It has identifier `easy_contacts`

  **Operations**

  - **Get one** - returns a detailed view of a single entity. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the entity.
  - **Create** - creates a new account.
    - Custom fields
    - Industry ID
    - Name (known as `firstname` in the entity schema)
    - Type ID
    - Account Manager ID
    - External Account Manager ID
    - Account Status ID
    - Account Level ID
    - Author ID
    - Account Opened
    - Account Closed
    - Customer Left Reason ID
    - Primary Billing Information (see below)
    - Contact Information (see below)
  - **Update** - updates some fields of the entity.
    - Custom fields
    - Industry ID
    - Name (known as `firstname` in the entity schema)
    - Type ID
    - Account Manager ID
    - External Account Manager ID
    - Account Status ID
    - Account Level ID
    - Author ID
    - Account Opened
    - Account Closed
    - Customer Left Reason ID
    - Primary Billing Information (see below)
    - Contact Information (see below)

  ### Primary Billing and Contact Information

  This is a complex field that contains information about the account's billing and contact details. The structure
  is the same for both cases.

  - Company Name
  - Street
  - City
  - Country Code
  - Country Division
  - Postal Code
  - Email
  - Telephone
  - VAT Number
  - VAT Rate
  - Bank Account Number
  - IBAN
  - Variable Symbol
  - SWIFT
  - BIC

  ## Attendance

  Attendance is used to track user attendance. The entity name is `easy_attendance`.

  **Operations**

  - **Get one** - returns a detailed view of a single attendance record. The entity is specified by its ID.
  - **Get many** - returns a list of attendance records. You should use easy query id to specify the filter.
  - **Create** - creates a new attendance record.
    - Arrival (required)
    - Departure
    - Description
    - Activity ID
  - **Update** - updates some fields of the attendance record.
    - Arrival
    - Departure
    - Description
    - Activity ID

  ## Issues

  Issues are mostly Redmine issues. The identifier is `issue`.

  **Operations**

  - **Get one** - returns a detailed view of a single entity. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the entity.
  - **Create** - creates a new issue.
    - Subject (required)
    - Project ID (required)
    - Assigned To ID
    - Custom fields
    - Description
    - Done Ratio
    - Due Date
    - Estimated Hours
    - Is Private
    - Parent Issue ID
    - Priority ID
    - Start Date
    - Status ID
    - Tracker ID
  - **Update** - updates some fields of the entity.
    - Assigned To ID
    - Custom fields
    - Description
    - Done Ratio
    - Due Date
    - Estimated Hours
    - Is Private
    - Parent Issue ID
    - Priority ID
    - Project ID
    - Start Date
    - Subject
    - Tracker ID
    - Status ID
  - **Add Comment** - adds a comment to the issue.
    - Comment (required)
    - Private Note

  ## Leads

  Leads are CRM entities that refer to potential custom.
  The identifier is `easy_lead`.

  **Operations**

  - **Get one** - returns a detailed view of a single lead. The entity is specified by its ID.
  - **Get many** - returns a list of leads. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the lead.
  - **Create** - creates a new lead.
    - Company Name
    - Description
    - Custom fields
  - **Update** - updates some fields of the leads.
    - Company Name
    - Description
    - Custom fields

  ## Opportunities

  Opportunities are CRM entities that represent a potential sale. The entity name is `easy_crm_case`.

  **Operations**

  - **Get one** - returns a detailed view of a single opportunity. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the opportunity.
  - **Create** - creates a new opportunity.
    - Name (required)
    - Project ID (required)
    - Account ID (required)
    - Status ID
    - Assigned To ID
    - External Assigned To ID
    - Price
    - Contract Date
    - Custom fields
  - **Update** - updates some fields of the opportunity.
    - Name
    - Description
    - Project ID
    - Status ID
    - Assigned To ID
    - External Assigned To ID
    - Price
    - Contract Date
    - Custom fields

  ## Personal contacts

  Personal contacts are CRM entities that represent a person. The entity name is `easy_personal_contacts`.

  **Operations**

  - **Get one** - returns a detailed view of a single personal contact. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Create** - creates a new personal contact.
    - Account ID (required or partner ID)
    - Partner ID (required or account ID)
    - First name (required)
    - Last name (required)
    - Email (required)
    - Job title
    - Custom fields
  - **Update** - updates some fields of the personal contact.
    - Account ID
    - Partner ID
    - First name
    - Last name
    - Email
    - Job title
    - Custom fields

  ## Projects

  Projects are used to manage project tasks. The entity name is `project`.

  **Operations**

  - **Get one** - returns a detailed view of a single project. The entity is specified by its ID.
  - **Get many** - returns a list of projects. You should use easy query id to specify the filter.

  ## Time entries

  Time entries are used to track time spent on issues. The entity name is `time_entry`.

  **Operations**

  - **Get one** - returns a detailed view of a single time entry. The entity is specified by its ID.
  - **Get many** - returns a list of time entries. You should use easy query id to specify the filter.
  - **Create** - creates a new time entry.
    - Hours (required)
    - Activity ID
    - Comment
    - Project ID
    - Spent On
    - User ID
    - Custom Fields
  - **Update** - updates some fields of the time entry.
    - Activity ID
    - Comment
    - Hours
    - Project ID
    - Spent On
    - User ID
    - Custom Fields

  ## Users

  Users are Easy Redmine users. The entity name is `user`.

  **Operations**

  - **Get one** - returns a detailed view of a single user. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Create** - creates a new user
    - Login (required)
    - First name (required)
    - Last name (required)
    - Email (required)
    - Phone
    - Custom fields
  - **Update** - updates some fields of the user.
    - ID (required)
    - Login
    - First name
    - Last name
    - Email
    - Phone
    - Custom Fields

ai_documentation_summary:
  {"purpose":"The Easy Redmine node enables n8n workflows to interact with Easy Redmine instances, supporting CRUD operations on entities like accounts, issues, leads, opportunities, personal contacts, and users.","capabilities":["Retrieve single or multiple records for Accounts, Issues, Leads, Opportunities, Personal Contacts, and Users","Create new records for Accounts, Attendance, Issues, Leads, and Opportunities","Update existing records for Accounts, Attendance, Issues, Leads, and Opportunities","Add comments to Accounts, Issues, Leads, and Opportunities","Manage attendance records with arrival, departure, description, and activity fields","Handle complex billing and contact information fields for accounts","Filter records using 'easy query id' parameter"],"authentication":"API key required (Domain and User API Key)","commonUseCases":["Automating issue tracking and status updates in Redmine projects","Managing CRM leads and opportunities within n8n workflows","Tracking employee attendance and activity records","Synchronizing account and contact information between systems"],"limitations":["Requires n8n version 1.54.4 or newer","Personal contacts section details are truncated in the provided README"],"relatedNodes":["n8n HTTP Request","n8n Redmine (if available)","n8n CRM nodes"]}


node_type: n8n-nodes-swiftgum-trigger.swiftgumTrigger
package_name: n8n-nodes-swiftgum-trigger
display_name: Swiftgum Trigger
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-07-14 14:40:33
author_name: arthurbk
author_github_url: https://github.com/Swiftgum/n8n-nodes-swiftgum.git
npm_package_name: n8n-nodes-swiftgum-trigger
npm_version: 0.1.7
community_fetched_at: 2026-07-14T14:40:33.103Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Listen for Swiftgum PDF extraction webhooks, filtered by schema. To test, upload a PDF in your Swiftgum workspace — this node will emit the extracted data once processed.

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

  # n8n-nodes-swiftgum-trigger

  A custom [n8n](https://n8n.io) trigger node built by Swiftgum.

  This node allows you to trigger workflows from Swiftgum-related events or integrations.

  ---

  ## 🚀 Features

  - Custom trigger node for Swiftgum-specific events
  - Built for compatibility with the latest n8n versions
  - Ready to use in your local or cloud-hosted n8n instance

  ---

  ## 📚 How to Use the Swiftgum Trigger Node

  ### 1. Add the Swiftgum Trigger to Your Workflow
  - Search for `Swiftgum Trigger` in the n8n node selector.
  - Add it as the starting node of your workflow.

  ### 2. Set Up Credentials  
  - Go to **Credentials** in n8n and create new credentials with your Swiftgum API Key.  
  - Click **Test Credentials** to ensure your API key is valid (it performs a call to `/schemas`).

  ### 3. (Optional) Filter by Schemas  
  - In the node configuration, select one or more **Schema Names or IDs** to only trigger on events matching these schemas.
  - Leave it blank to receive all events (`job.processed`).

  ### 4. Trigger Events
  - Upload a PDF document in your Swiftgum workspace.
  - Once the document is processed, the node will emit structured data extracted from the document.

  ---

  ### 📦 Example Event Payload

  ```json
  {
    "id": "file-123",
    "name": "document.pdf",
    "createdAt": "2024-06-01T12:00:00.000Z",
    "receivedAt": "2024-06-01T12:00:00.000Z",
    "updatedAt": "2024-06-01T12:05:00.000Z",
    "job": {
      "id": "job-123",
      "status": "completed",
      "schema": {
        "type": "object",
        "properties": {
          "fieldA": { "type": "number", "title": "Surface" }
        }
      },
      "result": { "fieldA": 350 }
    }
  }
  ```

  ---

  ### 🔐 Webhook Security

  - Each webhook subscription generates a **signing secret** (`secret`) when created.
  - Verify the authenticity of incoming events using the `X-Swiftgum-Signature` header.
  - The signature is an HMAC-SHA256 hash of the raw body using your secret.

  Example verification (in Node.js):

  ```ts
  const crypto = require('crypto');
  const expectedSignature = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex');

  if (receivedSignature !== expectedSignature) {
    throw new Error('Invalid signature');
  }
  ```

  ---

  ## 🧰 Installation

  You can install this package directly via the n8n UI or CLI.

  ### Via n8n UI

  Paste this URL into the **Install from npm** input:

  ```
  https://www.npmjs.com/package/n8n-nodes-swiftgum-trigger
  ```

  ### Via CLI (inside your custom n8n setup)

  ```bash
  pnpm add n8n-nodes-swiftgum-trigger
  ```

  ---

  ## 🧪 Local Development

  To test this node locally:

  ```bash
  pnpm install
  pnpm build
  ```

  You can also use our internal dev environment with Docker:

  ```bash
  ./fetch-node.sh
  docker compose up --build
  ```

  ---

  ## 🗂 File Structure

  ```
  n8n-nodes-swiftgum-trigger/
  ├── credentials/           # Custom credential classes
  ├── nodes/                 # Swiftgum Trigger node definition
  ├── dist/                  # Compiled output
  ├── gulpfile.js            # Icon handling
  ├── tsconfig.json
  ├── package.json
  └── README.md
  ```

  ---

  ## 🧑‍💻 Contributing

  Pull requests and contributions are welcome! Please:
  - Follow the code structure in `nodes/` and `credentials/`
  - Run `pnpm lint` before submitting
  - Build locally and test in a running n8n instance

  ---

  ## 🚀 Publishing

  If you're making changes to this node and want to publish them to npm:

  1. Bump the version:
     ```bash
     pnpm version patch   # or minor / major
     ```

  2. Publish to npm:
     ```bash
     pnpm publish --access public
     ```

  > 📦 npm does not allow publishing the same version twice. Always increment the version before running `pnpm publish`.

  ---

  ## 📄 License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A custom n8n trigger node that listens for Swiftgum PDF extraction webhooks and emits structured data once documents are processed.","capabilities":["Listen for Swiftgum PDF extraction events","Filter incoming events by specific Schema Names or IDs","Emit structured JSON data containing document metadata and extraction results","Support HMAC-SHA256 signature verification for webhook security"],"authentication":"API Key required (Swiftgum API Key)","commonUseCases":["Automate workflows triggered by PDF document processing in Swiftgum","Extract and route structured data from PDFs to other nodes or services","Monitor document processing status and results"],"limitations":["Requires Swiftgum workspace and API key setup","Signature verification requires manual implementation in downstream nodes (Node.js example provided)"],"relatedNodes":["n8n HTTP Request","n8n Set","n8n Function"]}


node_type: n8n-nodes-aiscraper.aiScraper
package_name: n8n-nodes-aiscraper
display_name: AI Scraper
description: Scrape any Website with just a URL and Data Description using Parsera API (10K+ downloads)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: raznem
author_github_url: https://github.com/parsera-labs/n8n-parsera.git
npm_package_name: n8n-nodes-aiscraper
npm_version: 0.3.1
community_fetched_at: 2026-07-14T14:40:33.120Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "url-extractor",
      "options": [
        {
          "name": "Extractor",
          "value": "url-extractor"
        },
        {
          "name": "Scraping Agent",
          "value": "scraping-agent"
        },
        {
          "name": "Reusable Scraper",
          "value": "reusable-scrapers"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeUrl",
      "options": [
        {
          "name": "Extract URL",
          "value": "scrapeUrl",
          "action": "Extract from URL",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/extract",
              "body": {
                "url": "={{$parameter[\"url\"]}}",
                "mode": "={{$parameter[\"mode\"]}}",
                "proxy_country": "={{$parameter[\"proxyCountry\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Provide URL and Data Description"
        },
        {
          "name": "Parse HTML",
          "value": "parseHtml",
          "action": "Parse HTML",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/parse",
              "body": {
                "mode": "={{$parameter[\"mode\"]}}",
                "content": "={{$parameter[\"content\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Provide HTML content and Data Description"
        },
        {
          "name": "Extract Markdown",
          "value": "extractMarkdown",
          "action": "Extract markdown from URL",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/extract_markdown",
              "body": {
                "url": "={{$parameter[\"url\"]}}",
                "proxy_country": "={{$parameter[\"proxyCountry\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Convert a URL to clean markdown text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "url-extractor"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "agentExtract",
      "options": [
        {
          "name": "Interact and Extract",
          "value": "agentExtract",
          "action": "Navigate interact and extract any data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/agent/extract",
              "body": {
                "url": "={{$parameter[\"url\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Use AI agent to navigate, interact with and extract data from a webpage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scraping-agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "runScraper",
      "options": [
        {
          "name": "Run Configured Scraper",
          "value": "runScraper",
          "action": "Run scraper configured on parsera org",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/scrapers/run_async",
              "body": {
                "url": "={{$parameter[\"url\"] || undefined}}",
                "name": "={{$parameter[\"existingScraperName\"]}}",
                "proxy_country": "={{$parameter[\"proxyCountry\"]}}"
              },
              "method": "POST",
              "baseURL": "https://api.parsera.org/v1"
            }
          },
          "description": "Run a scraper configured on parsera.org"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reusable-scrapers"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract URL",
      "value": "scrapeUrl",
      "action": "Extract from URL",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/extract",
          "body": {
            "url": "={{$parameter[\"url\"]}}",
            "mode": "={{$parameter[\"mode\"]}}",
            "proxy_country": "={{$parameter[\"proxyCountry\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Provide URL and Data Description",
      "resource": "url-extractor"
    },
    {
      "name": "Parse HTML",
      "value": "parseHtml",
      "action": "Parse HTML",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/parse",
          "body": {
            "mode": "={{$parameter[\"mode\"]}}",
            "content": "={{$parameter[\"content\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Provide HTML content and Data Description",
      "resource": "url-extractor"
    },
    {
      "name": "Extract Markdown",
      "value": "extractMarkdown",
      "action": "Extract markdown from URL",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/extract_markdown",
          "body": {
            "url": "={{$parameter[\"url\"]}}",
            "proxy_country": "={{$parameter[\"proxyCountry\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Convert a URL to clean markdown text",
      "resource": "url-extractor"
    },
    {
      "name": "Interact and Extract",
      "value": "agentExtract",
      "action": "Navigate interact and extract any data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/agent/extract",
          "body": {
            "url": "={{$parameter[\"url\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Use AI agent to navigate, interact with and extract data from a webpage",
      "resource": "scraping-agent"
    },
    {
      "name": "Run Configured Scraper",
      "value": "runScraper",
      "action": "Run scraper configured on parsera org",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/scrapers/run_async",
          "body": {
            "url": "={{$parameter[\"url\"] || undefined}}",
            "name": "={{$parameter[\"existingScraperName\"]}}",
            "proxy_country": "={{$parameter[\"proxyCountry\"]}}"
          },
          "method": "POST",
          "baseURL": "https://api.parsera.org/v1"
        }
      },
      "description": "Run a scraper configured on parsera.org",
      "resource": "reusable-scrapers"
    }
  ]

npm_readme:
  # n8n-nodes-aiscraper

  This is an n8n community node. It lets you use the Parsera AI Scraper API in your n8n workflows.

  ## Quickstart
  [![Quickstart Video](https://img.youtube.com/vi/VUzKFRuqvGM/0.jpg)](https://www.youtube.com/watch?v=VUzKFRuqvGM)

  Parsera AI Scraper is a service that uses AI to extract structured data from web pages, either by providing a URL or raw HTML content. It simplifies web scraping by allowing users to define data fields through natural language descriptions or by using pre-configured scraping agents.

  [https://parsera.org](https://parsera.org)

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

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

  ## Installation

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

  ## Operations

  The Parsera AI Scraper node supports the following operations:

  *   **Extractor:**
      *   **Extract URL:** Provide a URL, and Parsera will fetch the content and extract structured data based on your defined columns. Supports proxy usage and sending cookies.
      *   **Parse HTML:** Provide raw HTML content, and Parsera will parse it to extract structured data based on your defined columns.
      *   **Extract Markdown:** Convert a URL to clean markdown text. Supports proxy usage.
  *   **Scraping Agent:**
      *   **Interact and Extract:** Use an AI agent that can navigate, interact with, and extract data from a webpage. Provide a URL and a prompt describing what data to extract. Optionally define an output schema to structure the results.
  *   **Reusable Scraper:**
      *   **Run Configured Scraper:** Run a scraper that has been pre-configured on the [Parsera platform](https://parsera.org). Select from your existing scrapers, optionally override the URL, and use proxy/cookies. **Note:** Scrapers must be created separately via the Parsera application or API before they can be used here.

  ## Credentials

  To use this node, you need to create AI Scraper credentials within n8n. This requires an API Key from Parsera.

  1.  Sign up for an account at [https://parsera.org](https://parsera.org).
  2.  Once logged in, navigate to your API settings to find your API Key.
  3.  In n8n, create new credentials of type "AI Scraper API".
  4.  Enter the API Key obtained from Parsera into the API Key field in the n8n credential configuration.

  ## Compatibility

  *   **Minimum n8n Version:** While the node might work with earlier versions, it has been developed and tested primarily on **n8n version 1.19.3**.

  ## Usage

  This node allows you to extract structured data from websites.

  **Key Parameters:**

  *   **Resource:** Choose between "Extractor" (for direct URL/HTML/markdown extraction), "Scraping Agent" (for AI-driven navigation and extraction), or "Reusable Scraper" (for running pre-configured scrapers).
  *   **Operation:** Select the specific action based on the chosen resource.
  *   **URL/Content:** Provide the target URL or raw HTML content, depending on the operation.
  *   **Prompt:** Provide context and general instructions to the scraper (Extractor), or describe what data to extract (Scraping Agent).
  *   **Columns Input Mode (for Extractor and Scraping Agent):**
      *   **Fields:** Define columns using a user-friendly interface with separate fields for Name, Type, and Column Prompt. This is the default and recommended for most UI-based configurations.
      *   **JSON:** Define columns as a single JSON object. This mode is powerful for programmatic use, AI tool integration, or complex schemas. The expected format is `{"your_field_name": {"description": "What to extract", "type": "string"}}`.
  *   **Columns:** Depending on the selected input mode, you will either fill out individual fields or provide a JSON object.
      *   **Name:** The key for the extracted data in the output (e.g., `productName`, `price`).
      *   **Type:** The expected data type (`any`, `string`, `integer`, `number`, `bool`, `list`).
      *   **Column Prompt:** A natural language instruction telling the AI what data to look for (e.g., "The main title of the product page").
  *   **Mode (for Extractor):**
      *   **Standard:** Balanced approach for speed and accuracy.
      *   **Precision:** Extract data hidden inside HTML structures with higher accuracy.
  *   **Proxy Country:** Optionally route your request through a proxy in a specific country to access geo-restricted content.
  *   **Cookies:** Optionally provide cookies as a JSON array to be sent with the request (e.g., for authenticated sessions). Format: `[{"name": "cookieName", "value": "cookieValue", "domain": ".example.com"}]`.
  *   **Scraper Name (for Reusable Scraper):** Select a pre-configured scraper from your Parsera account. Must be created beforehand via the Parsera application or API.

  The output of the node will be a list of items containing the extracted data.

  For more detailed examples and advanced usage, refer to the [Parsera API documentation](https://docs.parsera.org/api/getting-started/).
  If you are new to n8n, you might find the [Try it out](https://docs.n8n.io/try-it-out/) documentation helpful to get started with the platform.

  ## Resources

  *   [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  *   [Parsera Website](https://parsera.org)
  *   [Parsera API Documentation](https://docs.parsera.org/api/getting-started/)

  ## Version history

  *   **0.3.0** — Added Extract Markdown operation, Scraping Agent (Interact and Extract) resource, renamed old scraping agents to Reusable Scrapers, restructured resources, URL validation, polished operation names.
  *   **0.2.1** — Unified API, simplified scraper interface.
  *   **0.2.0** — Added templates, load available agents from API, rearranged actions.
  *   **0.1.6** — Documentation updates and naming tweaks.
  *   **0.1.5** — Fixed broken extractor URL, refactored to separate files.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automated web scraping by extracting structured data from websites using the Parsera AI Scraper API, supporting both direct URL/HTML parsing and pre-configured scraping agents.","capabilities":["Extract data from a URL using AI-based parsing","Parse raw HTML content to extract structured data","Utilize pre-configured scraping agents from the Parsera platform","Define extraction attributes via natural language descriptions or JSON schema","Support proxy usage for geo-restricted content access","Send custom cookies for authenticated sessions","Configure extraction mode (Standard or Precision) for speed vs. accuracy trade-offs"],"authentication":"API Key required (Parsera API Key)","commonUseCases":["Automated data collection from e-commerce product pages","Competitor price monitoring","Extracting structured data from dynamic web applications","Parsing HTML content from internal or external sources"],"limitations":["Requires separate creation of scraping agents via Parsera platform before use","Minimum tested n8n version is 1.19.3","Community node status may indicate less official support compared to official nodes"],"relatedNodes":["HTTP Request","Code","JSON"]}


node_type: n8n-nodes-beyondpresence.beyondPresence
package_name: n8n-nodes-beyondpresence
display_name: Beyond Presence
description: Deploy video agents with Beyond Presence
category: Marketing & Content
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: nicolabeyondpresence
author_github_url: https://github.com/bey-dev/
npm_package_name: n8n-nodes-beyondpresence
npm_version: 0.4.0
community_fetched_at: 2026-07-14T14:40:33.122Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "agent",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Avatar",
          "value": "avatar"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new agent",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "setKeyValue",
                  "properties": {
                    "id": "={{ $responseItem.id }}",
                    "call_link": "=https://bey.chat/{{ $responseItem.id }}"
                  }
                }
              ]
            },
            "request": {
              "url": "/agent",
              "body": {
                "name": "={{ $parameter.name }}",
                "greeting": "={{ $parameter.greeting }}",
                "language": "={{ $parameter.language }}",
                "avatar_id": "={{ $parameter.avatarId }}",
                "capabilities": "={{ $parameter.capabilities }}",
                "system_prompt": "={{ $parameter.systemPrompt }}",
                "max_session_length_minutes": "={{ $parameter.maxSessionLengthMinutes }}"
              },
              "method": "POST"
            }
          },
          "description": "Deploy a new agent with configuration"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get the available avatars",
          "routing": {
            "request": {
              "url": "/avatar",
              "method": "GET"
            }
          },
          "description": "Get the available Avatars"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "avatar"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new agent",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "setKeyValue",
              "properties": {
                "id": "={{ $responseItem.id }}",
                "call_link": "=https://bey.chat/{{ $responseItem.id }}"
              }
            }
          ]
        },
        "request": {
          "url": "/agent",
          "body": {
            "name": "={{ $parameter.name }}",
            "greeting": "={{ $parameter.greeting }}",
            "language": "={{ $parameter.language }}",
            "avatar_id": "={{ $parameter.avatarId }}",
            "capabilities": "={{ $parameter.capabilities }}",
            "system_prompt": "={{ $parameter.systemPrompt }}",
            "max_session_length_minutes": "={{ $parameter.maxSessionLengthMinutes }}"
          },
          "method": "POST"
        }
      },
      "description": "Deploy a new agent with configuration",
      "resource": "agent"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "agent"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get the available avatars",
      "routing": {
        "request": {
          "url": "/avatar",
          "method": "GET"
        }
      },
      "description": "Get the available Avatars",
      "resource": "avatar"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "avatar"
    }
  ]

npm_readme:
  # n8n-nodes-beyondpresence

  > **Currently in BETA and under active development.**

  This is an n8n community node for integrating [Beyond Presence](https://docs.bey.dev) — deploy and manage AI-driven video agents directly from your workflows.

  ## Features

  - **Process webhook**: Handle and filter webhook events from Beyond Presence.
  - **Create agent**: Create a video agent and get a ready-to-use call link.
  - **Get available avatars**: Fetch available avatars for use.

  More resources and operations coming soon.

  ## Installation

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

  ## Credentials

  [Create an API key](https://docs.bey.dev/api-key) and configure it in the node credentials.

  ## Compatibility

  Requires n8n v1.39.1 or higher.

  ## Resources

  - [Beyond Presence webhook n8n integration](https://docs.bey.dev/webhooks/n8n)
  - [Beyond Presence API docs](https://docs.bey.dev)
  - [n8n community nodes docs](https://docs.n8n.io/integrations)

ai_documentation_summary:
  {"purpose":"This node enables users to deploy and manage AI-driven video agents from Beyond Presence directly within n8n workflows.","capabilities":["Process and filter webhook events from Beyond Presence","Create video agents and generate call links","Fetch available avatars for agent customization"],"authentication":"API key required","commonUseCases":["Automating video agent deployment in marketing campaigns","Integrating AI video agents into customer support workflows","Managing agent configurations and avatar selections programmatically"],"limitations":["Currently in BETA and under active development","Limited feature set with more operations planned for future releases"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request"]}


node_type: n8n-nodes-lavatop.lavatop
package_name: n8n-nodes-lavatop
display_name: LavaTop
description: Sends data to LavaTop
category: Payments
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: zdadco
author_github_url: https://github.com/zdadco/
npm_package_name: n8n-nodes-lavatop
npm_version: 1.0.2
community_fetched_at: 2026-07-14T14:40:33.123Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "product",
      "options": [
        {
          "name": "Product",
          "value": "product"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        },
        {
          "name": "Report",
          "value": "report"
        },
        {
          "name": "Subscription",
          "value": "subscription"
        },
        {
          "name": "Donate",
          "value": "donate"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Products",
          "value": "getAll",
          "action": "Get products",
          "description": "Get all products"
        },
        {
          "name": "Update Product",
          "value": "update",
          "action": "Update product",
          "description": "Update product by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get invoices",
          "description": "Get all invoices"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get invoice",
          "description": "Get invoice by ID"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create invoice",
          "description": "Create invoice"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllSales",
      "options": [
        {
          "name": "Get All Sales",
          "value": "getAllSales",
          "action": "Get sales"
        },
        {
          "name": "Get Sales by Product",
          "value": "getAllSalesByProduct",
          "action": "Get sales by product",
          "description": "Get sales by product ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "delete",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a subscription",
          "description": "Delete a subscription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subscription"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a donation link",
          "description": "Get link for donation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "donate"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Products",
      "value": "getAll",
      "action": "Get products",
      "description": "Get all products",
      "resource": "product"
    },
    {
      "name": "Update Product",
      "value": "update",
      "action": "Update product",
      "description": "Update product by ID",
      "resource": "product"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get invoices",
      "description": "Get all invoices",
      "resource": "invoice"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get invoice",
      "description": "Get invoice by ID",
      "resource": "invoice"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create invoice",
      "description": "Create invoice",
      "resource": "invoice"
    },
    {
      "name": "Get All Sales",
      "value": "getAllSales",
      "action": "Get sales",
      "resource": "report"
    },
    {
      "name": "Get Sales by Product",
      "value": "getAllSalesByProduct",
      "action": "Get sales by product",
      "description": "Get sales by product ID",
      "resource": "report"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a subscription",
      "description": "Delete a subscription",
      "resource": "subscription"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a donation link",
      "description": "Get link for donation",
      "resource": "donate"
    }
  ]

npm_readme:
  [![npm](https://img.shields.io/npm/dm/n8n-nodes-lavatop?color=blue&label=downloads)](https://www.npmjs.com/package/n8n-nodes-lavatop)
  [![npm version](https://img.shields.io/npm/v/n8n-nodes-lavatop)](https://www.npmjs.com/package/n8n-nodes-lavatop)
  [![license](https://img.shields.io/npm/l/n8n-nodes-lavatop)](https://github.com/zdadco/n8n-nodes-lavatop/blob/main/LICENSE)
  [![GitHub stars](https://img.shields.io/github/stars/zdadco/n8n-nodes-lavatop)](https://github.com/zdadco/n8n-nodes-lavatop/stargazers)

  # n8n-nodes-lavatop

  This is a n8n community node that provides integration with LavaTop platform for digital product sales and subscriptions.

  [LavaTop](https://app.lava.top/) is a platform for creators to sell digital products, courses, and subscriptions with built-in payment processing and analytics.

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


  ## Installation

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

  ## Operations

  ### Invoice Operations
  - **Create Invoice:** Generate new payment invoices
  - **Get Invoice:** Retrieve invoice details by ID 
  - **Get All Invoices:** List all invoices with filtering options

  ### Product Operations
  - **Get Products:** List available products
  - **Update Product:** Modify product details and pricing

  ### Report Operations
  - **Get All Sales:** Retrieve complete sales reports
  - **Get Sales by Product:** Get sales data for specific products

  ### Subscription Operations
  - **Delete Subscription:** Cancel existing subscriptions

  ### Donate Operations
  - **Get Donate Link:** Generate donation links for creators

  ## Credentials

  To use this node, you need to configure API credentials:
  1. Go to your LavaTop Account Settings 
  2. Generate a new API key 
  3. In n8n:
     1. Add LavaTop credentials 
     2. Enter your API key

  ## Compatibility

  n8n version - 1.86.1

  ## Resources

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

  ## Version history

  ### 1.0.0
  - Basic operations for invoices, products, and subscriptions
  - Support for all LavaTop payment methods

  ### 1.0.2
  - Refactoring logs
  - Change credentials 'apiKey' display name

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with LavaTop to manage digital product sales, subscriptions, invoices, and donations for creators.","capabilities":["Create payment invoices","Retrieve invoice details by ID","List all invoices with filtering","List available products","Update product details and pricing","Retrieve complete sales reports","Get sales data for specific products","Cancel existing subscriptions","Generate donation links"],"authentication":"API key required","commonUseCases":["Automating digital product sales workflows","Managing creator subscription cancellations","Generating donation links for content creators","Tracking sales performance and revenue"],"limitations":["Compatible only with n8n version 1.86.1"],"relatedNodes":["n8n-nodes-lavatop.lavatop"]}


node_type: n8n-nodes-straker-verify.strakerVerify
package_name: n8n-nodes-straker-verify
display_name: Straker Verify
description: Interact with Straker Verify API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: strakergroup
author_github_url: https://github.com/strakergroup/int-n8n-verify.git
npm_package_name: n8n-nodes-straker-verify
npm_version: 0.1.31
community_fetched_at: 2026-07-14T14:40:33.124Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Project",
          "value": "project"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new project",
          "description": "Create a new Verify project"
        },
        {
          "name": "Download Files",
          "value": "downloadFiles",
          "action": "Download translated files",
          "description": "Download translated files for a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new project",
      "description": "Create a new Verify project",
      "resource": "project"
    },
    {
      "name": "Download Files",
      "value": "downloadFiles",
      "action": "Download translated files",
      "description": "Download translated files for a project",
      "resource": "project"
    }
  ]

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

  # n8n-nodes-straker-verify

  This is an n8n community node. It lets you use the Straker Verify API in your n8n workflows.

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

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

  ## Installation

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

  ### Quick Installation

  1. Open your n8n instance
  2. Go to **Settings > Community Nodes**
  3. Select **Install**
  4. Enter `n8n-nodes-straker-verify` in **Enter npm package name**
  5. Agree to the risks of using community nodes: select **I understand the risks of installing unverified code from a third party**
  6. Select **Install**

  ## Operations

  ### Project Resource

  * **Create**: Create a new project with files for translation
  * **Download Files**: Download translated files for a completed project

  ## Credentials

  To use this node, you'll need to create an API key from the Straker Verify platform.

  1. Log in to your Straker Verify account
  2. Navigate to API Keys section
  3. Create a new API key
  4. Use the generated key in your n8n credentials for this node

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Straker Verify API Documentation](https://api-verify.straker.ai/docs#/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Straker Verify API to manage translation projects, including creating new projects and downloading translated files.","capabilities":["Create new translation projects","Download translated files from completed projects","Interact with Straker Verify API endpoints"],"authentication":"API key required (generated from Straker Verify platform)","commonUseCases":["Automating translation project workflows","Retrieving translated documents in n8n","Integrating Straker Verify services into business processes"],"limitations":["Community node (unverified code from third party)","Requires manual API key creation outside of n8n"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-straker-strakerVerify"]}


node_type: n8n-nodes-chat-data.chatData
package_name: n8n-nodes-chat-data
display_name: Chat Data
description: Basic Chat Data Node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: chatdata
author_github_url: https://github.com/chat-data-llc/
npm_package_name: n8n-nodes-chat-data
npm_version: 1.2.1
community_fetched_at: 2026-07-14T14:40:33.125Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "action",
      "options": [
        {
          "name": "Action",
          "value": "action"
        },
        {
          "name": "Chatbot",
          "value": "chatbot"
        }
      ],
      "description": "Choose a resource",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send a Message",
          "value": "sendMessage",
          "action": "Send a message to a chat",
          "description": "Send a message to a chat"
        },
        {
          "name": "Get Leads",
          "value": "getLeads",
          "action": "Get leads",
          "description": "Retrieve leads/customers from a chatbot"
        },
        {
          "name": "Get Conversations",
          "value": "getConversations",
          "action": "Get conversations",
          "description": "Retrieve conversation history from a chatbot"
        },
        {
          "name": "Append a Message",
          "value": "appendMessage",
          "action": "Append a message to an existing conversation",
          "description": "Append a message to an existing conversation as a human agent or assistant"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "action"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createChatbot",
      "options": [
        {
          "name": "Create Chatbot",
          "value": "createChatbot",
          "action": "Create a chatbot",
          "description": "Create a new chatbot"
        },
        {
          "name": "Retrain Chatbot",
          "value": "retrainChatbot",
          "action": "Retrain a chatbot",
          "description": "Retrain a chatbot with new data"
        },
        {
          "name": "Update Base Prompt",
          "value": "updateBasePrompt",
          "action": "Update a base prompt",
          "description": "Update a chatbot's base prompt"
        },
        {
          "name": "Get Chatbot Training Status",
          "value": "getChatbotStatus",
          "action": "Get chatbot training status",
          "description": "Retrieve the training status of a chatbot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chatbot"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send a Message",
      "value": "sendMessage",
      "action": "Send a message to a chat",
      "description": "Send a message to a chat",
      "resource": "action"
    },
    {
      "name": "Get Leads",
      "value": "getLeads",
      "action": "Get leads",
      "description": "Retrieve leads/customers from a chatbot",
      "resource": "action"
    },
    {
      "name": "Get Conversations",
      "value": "getConversations",
      "action": "Get conversations",
      "description": "Retrieve conversation history from a chatbot",
      "resource": "action"
    },
    {
      "name": "Append a Message",
      "value": "appendMessage",
      "action": "Append a message to an existing conversation",
      "description": "Append a message to an existing conversation as a human agent or assistant",
      "resource": "action"
    },
    {
      "name": "Create Chatbot",
      "value": "createChatbot",
      "action": "Create a chatbot",
      "description": "Create a new chatbot",
      "resource": "chatbot"
    },
    {
      "name": "Retrain Chatbot",
      "value": "retrainChatbot",
      "action": "Retrain a chatbot",
      "description": "Retrain a chatbot with new data",
      "resource": "chatbot"
    },
    {
      "name": "Update Base Prompt",
      "value": "updateBasePrompt",
      "action": "Update a base prompt",
      "description": "Update a chatbot's base prompt",
      "resource": "chatbot"
    },
    {
      "name": "Get Chatbot Training Status",
      "value": "getChatbotStatus",
      "action": "Get chatbot training status",
      "description": "Retrieve the training status of a chatbot",
      "resource": "chatbot"
    }
  ]

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

  # n8n-nodes-chat-data

  This is the official n8n integration for [Chat Data](https://chat-data.com). It provides nodes to interact with the ChatData platform, allowing you to manage chatbots, send messages, retrieve leads, and more.

  ## Prerequisites

  To use the ChatData integration, you must have:

  - A paid ChatData account. You can create an account at [chat-data.com](https://chat-data.com).
  - Your ChatData API key, which you can obtain from your account settings.

  ## Installation

  Follow these steps to install this node in your n8n instance:

  ```bash
  npm install n8n-nodes-chat-data
  ```

  For n8n desktop app/local installation:

  ```bash
  n8n-node-dev --install n8n-nodes-chat-data
  ```

  ## Node Reference

  ### Chat Data

  This node can be found in the 'Action' category in n8n.

  #### Operations

  The operations in this node are organized into the following categories:

  ##### Action

  - **Send a Message**: Send a chat message to a chatbot
  - **Get Leads**: Retrieve customer leads from a chatbot
  - **Get Conversations**: Retrieve conversation history from a chatbot
  - **Append a Message**: Send a message to an existing conversation as a human agent or bot

  ##### Chatbot

  - **Create Chatbot**: Set up a new AI-powered chatbot
  - **Retrain Chatbot**: Update a chatbot with new data
  - **Update Base Prompt**: Modify a chatbot's base prompt
  - **Get Chatbot Training Status**: Check the status of a chatbot's training

  ##### Other

  - **Make API Call**: Make a custom request to any Chat Data API endpoint

  ---

  ### Chat Data Trigger

  This node is used to receive real-time events from Chat Data via webhooks. You can find it in the 'Trigger' category in n8n.

  #### Available Triggers

  - **On New Message**: Triggered when a new chat message is received
  - **On Lead Submission**: Triggered when a customer submits lead information
  - **On Live Chat Escalation**: Triggered when a chat is escalated to a human agent

  1. After setting up the trigger, you'll see webhook registration details in the execution output
  2. When a webhook event is received, the node logs detailed information about:
     - Raw webhook payload
     - Parsed event data
     - Event type matching
     - Chatbot ID verification

  > **Note:** If your webhook isn't triggering as expected, check the n8n logs for messages starting with "Webhook triggered" to see detailed information about incoming data.

  > **Important:** For webhook testing, ensure the `chatbot_id` in your trigger configuration matches the `chatbot_id` field in the incoming webhook payload.

  ---

  ## Authentication

  This node requires an API Key for authentication. To set this up:

  1. Create an API key in your ChatData account:
     - Log in to your ChatData account
     - In the top right corner, click your Username > Account Settings
     - In the API Keys section, click Create a new secret key
     - Copy the API key value

  2. In n8n, create a new credential:
     - Choose "ChatDataApi" as the credential type
     - Enter your API key in the API Key field
     - Enter your Chat Data instance URL (usually https://app.chat-data.com)
     - Save the credential

  ## Further Information

  - [ChatData Website](https://chat-data.com)
  - [ChatData API Documentation](https://docs.chat-data.com/api)
  - [ChatData Pricing](https://chat-data.com/pricing)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the ChatData platform to manage chatbots, send messages, retrieve leads, and access conversation history.","capabilities":["Send messages to chatbots","Retrieve customer leads","Retrieve conversation history","Append messages to existing conversations","Create new AI-powered chatbots","Retrain chatbots with new data","Update chatbot base prompts","Check chatbot training status","Make custom API calls to ChatData endpoints","Receive real-time webhook events for new messages, lead submissions, and chat escalations"],"authentication":"API Key required via ChatDataApi credential type","commonUseCases":["Automated lead generation from chat interactions","Monitoring and retrieving chat conversation history","Creating and managing custom AI chatbots","Real-time notification of new leads or chat escalations","Custom API integrations with ChatData platform"],"limitations":["Requires a paid ChatData account","Webhook triggers require matching chatbot_id in configuration to incoming payload","Webhook testing requires careful log monitoring for trigger verification"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest"]}


node_type: n8n-nodes-scrapegraphai.scrapegraphAi
package_name: n8n-nodes-scrapegraphai
display_name: ScrapegraphAI
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: vikrantgg
author_github_url: https://github.com/Vikrant-Khedkar/
npm_package_name: n8n-nodes-scrapegraphai
npm_version: 1.1.0
community_fetched_at: 2026-07-14T14:40:33.126Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Turn any webpage into usable data with the ScrapeGraphAI v2 API — scrape, extract, search, crawl, monitor, history, credits.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Credit",
          "value": "credits"
        },
        {
          "name": "Crawl",
          "value": "crawl"
        },
        {
          "name": "Extract",
          "value": "extract"
        },
        {
          "name": "History",
          "value": "history"
        },
        {
          "name": "Monitor",
          "value": "monitor"
        },
        {
          "name": "Scrape",
          "value": "scrape"
        },
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape a page in one or more formats",
          "description": "Fetch a URL and return any combination of markdown, HTML, links, images, summary, JSON, branding, or screenshot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "extract",
      "options": [
        {
          "name": "Extract",
          "value": "extract",
          "action": "Extract structured data with an LLM prompt",
          "description": "Run an AI extraction over a URL, raw HTML, or markdown"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "extract"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Run a web search and fetch the top results",
          "description": "Returns top pages with content inline; optional AI rollup across all results"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "start",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a crawl permanently",
          "description": "Permanently remove a crawl record and its stored pages"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Retrieve a crawl job",
          "description": "Poll a crawl job for progress and per-page results"
        },
        {
          "name": "Resume",
          "value": "resume",
          "action": "Resume a stopped crawl",
          "description": "Continue a stopped crawl from its last frontier"
        },
        {
          "name": "Start",
          "value": "start",
          "action": "Start an async multi page crawl",
          "description": "Kick off a new crawl job and return its ID"
        },
        {
          "name": "Stop",
          "value": "stop",
          "action": "Stop a crawl in progress",
          "description": "Halt an in-flight crawl; already-fetched pages remain available"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "crawl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a monitor",
          "description": "Schedule a recurring fetch with change detection"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a monitor permanently",
          "description": "Remove a monitor and its tick history"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Retrieve a monitor",
          "description": "Fetch one monitor by ID"
        },
        {
          "name": "Get Activity",
          "value": "activity",
          "action": "Retrieve tick history for a monitor",
          "description": "Return recent ticks with diff flags"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "List monitors",
          "description": "Retrieve a list of monitors"
        },
        {
          "name": "Pause",
          "value": "pause",
          "action": "Pause a monitor",
          "description": "Halt future ticks while keeping the monitor record"
        },
        {
          "name": "Resume",
          "value": "resume",
          "action": "Resume a paused monitor",
          "description": "Re-arm a paused monitor and put it back on schedule"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a monitor",
          "description": "Modify schedule, formats, webhook, or fetch options"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "monitor"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Retrieve credit balance and quotas",
          "description": "Return remaining credits, plan name, and crawl/monitor job quotas"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "credits"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Retrieve a history entry",
          "description": "Fetch one entry by ID, including the full result payload (e.g. crawled page content via scrapeRefId)"
        },
        {
          "name": "Get Many",
          "value": "list",
          "action": "List history entries",
          "description": "Retrieve a paginated list of past requests, optionally filtered by service"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "history"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scrape",
      "value": "scrape",
      "action": "Scrape a page in one or more formats",
      "description": "Fetch a URL and return any combination of markdown, HTML, links, images, summary, JSON, branding, or screenshot",
      "resource": "scrape"
    },
    {
      "name": "Extract",
      "value": "extract",
      "action": "Extract structured data with an LLM prompt",
      "description": "Run an AI extraction over a URL, raw HTML, or markdown",
      "resource": "extract"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Run a web search and fetch the top results",
      "description": "Returns top pages with content inline; optional AI rollup across all results",
      "resource": "search"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a crawl permanently",
      "description": "Permanently remove a crawl record and its stored pages",
      "resource": "crawl"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Retrieve a crawl job",
      "description": "Poll a crawl job for progress and per-page results",
      "resource": "crawl"
    },
    {
      "name": "Resume",
      "value": "resume",
      "action": "Resume a stopped crawl",
      "description": "Continue a stopped crawl from its last frontier",
      "resource": "crawl"
    },
    {
      "name": "Start",
      "value": "start",
      "action": "Start an async multi page crawl",
      "description": "Kick off a new crawl job and return its ID",
      "resource": "crawl"
    },
    {
      "name": "Stop",
      "value": "stop",
      "action": "Stop a crawl in progress",
      "description": "Halt an in-flight crawl; already-fetched pages remain available",
      "resource": "crawl"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a monitor",
      "description": "Schedule a recurring fetch with change detection",
      "resource": "monitor"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a monitor permanently",
      "description": "Remove a monitor and its tick history",
      "resource": "monitor"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Retrieve a monitor",
      "description": "Fetch one monitor by ID",
      "resource": "monitor"
    },
    {
      "name": "Get Activity",
      "value": "activity",
      "action": "Retrieve tick history for a monitor",
      "description": "Return recent ticks with diff flags",
      "resource": "monitor"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "List monitors",
      "description": "Retrieve a list of monitors",
      "resource": "monitor"
    },
    {
      "name": "Pause",
      "value": "pause",
      "action": "Pause a monitor",
      "description": "Halt future ticks while keeping the monitor record",
      "resource": "monitor"
    },
    {
      "name": "Resume",
      "value": "resume",
      "action": "Resume a paused monitor",
      "description": "Re-arm a paused monitor and put it back on schedule",
      "resource": "monitor"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a monitor",
      "description": "Modify schedule, formats, webhook, or fetch options",
      "resource": "monitor"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Retrieve credit balance and quotas",
      "description": "Return remaining credits, plan name, and crawl/monitor job quotas",
      "resource": "credits"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Retrieve a history entry",
      "description": "Fetch one entry by ID, including the full result payload (e.g. crawled page content via scrapeRefId)",
      "resource": "history"
    },
    {
      "name": "Get Many",
      "value": "list",
      "action": "List history entries",
      "description": "Retrieve a paginated list of past requests, optionally filtered by service",
      "resource": "history"
    }
  ]

npm_readme:
  # n8n-nodes-scrapegraphai

  <p align="center">
    <img src="./nodes/scrapegraphAI.svg" width="250" alt="ScrapegraphAI Logo">
  </p>

  The official [ScrapeGraphAI](https://scrapegraphai.com) node for n8n. Hits the v2 API at `https://v2-api.scrapegraphai.com/api`.

  > **1.0.0 is a breaking release.** v1 endpoints (`/v1/smartscraper`, `/v1/markdownify`, `/v1/agentic-scrapper`, `/v1/toonify`) are gone. See **Migrating from 0.x** below.

  ## Installation

  1. In n8n, go to **Settings → Community Nodes → Install**
  2. Enter `n8n-nodes-scrapegraphai`
  3. Click **Install**

  ## Credentials

  1. Sign up at [scrapegraphai.com](https://scrapegraphai.com) and grab a key from the [dashboard](https://scrapegraphai.com/dashboard).
  2. In n8n, create a new **ScrapegraphAI API** credential and paste the key.
  3. n8n will validate the key against `GET /api/credits` — a green check means it's good.

  ## Resources

  | Resource | Operations | What it does |
  |----------|------------|--------------|
  | **Scrape** | Scrape | Fetch a URL in any combination of formats: markdown, HTML, links, images, summary, JSON extraction, branding, or screenshot. |
  | **Extract** | Extract | LLM-powered structured extraction from a URL, raw HTML, or markdown. Optional JSON schema. |
  | **Search** | Search | Web search with content fetched inline. Optional AI rollup across all results. |
  | **Crawl** | Start, Get Status, Stop, Resume, Delete | Async multi-page crawl with include/exclude URL patterns. |
  | **Monitor** | Create, Get, Get Many, Get Activity, Update, Pause, Resume, Delete | Cron-scheduled fetches with change detection and webhooks. |
  | **History** | Get, Get Many | Look up past requests by ID — including the formatted content of crawled pages via each `scrapeRefId`. |
  | **Credit** | Get | Remaining credits, plan, and crawl/monitor quotas. |

  Every fetch-based resource shares the same **Fetch Config** options: `mode` (auto / fast / js), `stealth`, `scrolls`, `wait`, `timeout`, `country`, custom `headers`, custom `cookies`.

  ## Migrating from 0.x

  Three resources were removed in v2 — the API endpoints behind them are gone:

  | Removed in 1.0.0 | Replacement |
  |------------------|-------------|
  | Markdownify | **Scrape** with format `markdown` |
  | Agentic Scraper | **Extract** with `Fetch Config → Mode = JS` and `Stealth = true` for hard pages, or **Crawl** for multi-page flows |
  | Toonify | The open-source [`toonify`](https://github.com/ScrapeGraphAI/toonify) package — TOON is no longer an API endpoint |

  Field renames (top-level → v2):

  | 0.x field | 1.0.0 location |
  |-----------|----------------|
  | `website_url` | `url` |
  | `user_prompt` | `prompt` (extract) / `query` (search) |
  | `output_schema` | `schema` |
  | `render_heavy_js` | `Fetch Config → Mode = JS` |
  | `stealth` | `Fetch Config → Stealth` |
  | `wait_ms` | `Fetch Config → Wait (Ms)` |
  | `number_of_scrolls` | `Fetch Config → Scrolls` |
  | `country_code` | `Fetch Config → Country` (most) / `Location (Country Code)` (search) |
  | `time_range` | `Time Range` (search) |

  Removed without replacement:

  - `total_pages` — use the **Crawl** resource for multi-page work.
  - `mock` — gone in v2; mock at the n8n / HTTP layer if you need it.
  - `cache_website`, `same_domain_only`, `breadth` (crawl) — use `includePatterns` / `excludePatterns` / `maxLinksPerPage` / `maxDepth` instead.

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node enables web scraping and data extraction by integrating with ScrapegraphAI, allowing users to convert webpages to markdown or extract specific data from websites and search results.","capabilities":["Markdownify - Convert webpages to markdown format","Smart Scraper - Extract specific data from webpages using extraction rules","Search Scraper - Extract data from search engine results"],"authentication":"API key required","commonUseCases":["Extracting structured data from dynamic websites","Converting web content to markdown for documentation","Scraping data from search engine results pages"],"limitations":[],"relatedNodes":[]}


node_type: @tavily/n8n-nodes-tavily.tavily
package_name: @tavily/n8n-nodes-tavily
display_name: Tavily
description: Tavily API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs: "={{['main']}}"
updated_at: 2026-07-14 14:40:33
author_name: konstantintzt
author_github_url: https://github.com/tavily-ai/tavily-n8n-node.git
npm_package_name: @tavily/n8n-nodes-tavily
npm_version: 0.5.1
community_fetched_at: 2026-07-14T14:40:33.127Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Crawl",
          "value": "crawl"
        },
        {
          "name": "Extract",
          "value": "extract"
        },
        {
          "name": "Map",
          "value": "map"
        },
        {
          "name": "Research",
          "value": "research"
        },
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "urls",
      "options": [
        {
          "name": "URLs",
          "value": "urls",
          "action": "Extract",
          "description": "Extract raw content from URLs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "extract"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "query",
      "options": [
        {
          "name": "Query",
          "value": "query",
          "action": "Search",
          "description": "Search query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "URL",
          "value": "url",
          "action": "Crawl",
          "description": "The root URL to begin the crawl"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "crawl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "URL",
          "value": "url",
          "action": "Map",
          "description": "Discover all internal links starting from a base URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "map"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Research Task",
          "value": "create",
          "action": "Create research task",
          "description": "Initiate a comprehensive research task on a given topic"
        },
        {
          "name": "Get Research Status",
          "value": "status",
          "action": "Get research status",
          "description": "Retrieve the status and results of a research task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "research"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "URLs",
      "value": "urls",
      "action": "Extract",
      "description": "Extract raw content from URLs",
      "resource": "extract"
    },
    {
      "name": "Query",
      "value": "query",
      "action": "Search",
      "description": "Search query",
      "resource": "search"
    },
    {
      "name": "URL",
      "value": "url",
      "action": "Crawl",
      "description": "The root URL to begin the crawl",
      "resource": "crawl"
    },
    {
      "name": "URL",
      "value": "url",
      "action": "Map",
      "description": "Discover all internal links starting from a base URL",
      "resource": "map"
    },
    {
      "name": "Create Research Task",
      "value": "create",
      "action": "Create research task",
      "description": "Initiate a comprehensive research task on a given topic",
      "resource": "research"
    },
    {
      "name": "Get Research Status",
      "value": "status",
      "action": "Get research status",
      "description": "Retrieve the status and results of a research task",
      "resource": "research"
    }
  ]

npm_readme:
  # @tavily/n8n-nodes-tavily

  @tavily/n8n-nodes-tavily is a node for n8n that integrates the Tavily API, enabling powerful web search and content extraction within your no-code automation workflows.

  ## Features

  ### Tavily Search
  Tavily Search allows you to query the web with powerful filtering capabilities, including options to refine results by topic, time range, and specific domains to include or exclude. You can choose to retrieve a generated answer, raw content, or even related images, depending on your workflow needs. It also supports different search depths—basic or advanced. 

  ### Tavily Extract
   Tavily Extract allows you to effortlessly retrieve raw content from a list of websites, making it ideal for data collection, content analysis, and research. You can also combine Tavily Extract with our Search method: first, obtain a list of relevant documents, then perform further processing on selected links to gather additional information and use it as context for your research tasks.

  ### Tavily Crawl
  Tavily Crawl allows you to intelligently crawl a website from a starting URL to discover and extract content across multiple pages. Control depth, breadth, and apply filters to tailor your crawl for comprehensive analysis and content aggregation.

  ### Tavily Map
  Tavily Map allows you to discover and map out all the URLs within a website starting from a root URL. Unlike Crawl, which extracts content, Map focuses on efficiently building a comprehensive sitemap of a website's structure. This is ideal for understanding site architecture, planning content extraction, or identifying specific pages for further processing.

  ### Tavily Research
  Tavily Research performs comprehensive research on a given topic by conducting multiple searches, analyzing sources, and generating a detailed research report. Choose between different models (Mini for targeted research, Pro for comprehensive multi-angle analysis) and customize the output format with citation styles and structured schemas.

  ## Getting a Tavily API Key

  1. Go to the [Tavily website](https://tavily.com) and create an account
  2. Navigate to the [Tavily dashboard](https://app.tavily.com/home) to get your API key

  ## Configuring Credentials in n8n

  1. In your n8n instance, go to the "Credentials" section
  2. Click "Create Credential"
  3. Search for or select "Tavily API"
  4. Enter your Tavily API key in the appropriate field
  5. Save the credential

  ## Usage

  ### Tavily Search

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node in your workflow
  3. Click on 'Search'
  4. In the node's settings:
     - Select your Tavily API
     - Enter your search query
     - Configure any other desired search parameters (topic, search depth, etc.)
  5. Run the workflow to execute the search

  ### Tavily Extract

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Extract'
  4. In the node's settings:
     - Select your Tavily API credential
     - Enter the URLs you want to extract content from
     - Configure any other extraction parameters (include images, extract depth)
  5. Run the workflow to extract the content

  ### Tavily Crawl

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Crawl'
  4. In the node's settings:
     - Select your Tavily API credential
     - Enter the root URL to begin the crawl
     - Configure crawl parameters (max depth, limit, etc.)
  5. Run the workflow to crawl the website and extract content

  ### Tavily Map

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Map'
  4. In the node's settings:
     - Select your Tavily API credential
     - Enter the root URL to begin mapping
     - Configure map parameters (max depth, limit, filters, etc.)
  5. Run the workflow to map the website's URL structure

  ### Tavily Research

  #### Create Research Task

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Research'
  4. Select 'Create Research Task' operation
  5. In the node's settings:
     - Select your Tavily API credential
     - Enter your research task or question
     - Configure model (Auto, Mini, or Pro) and other options
  6. Run the workflow to initiate the research task
  7. The response will include a `request_id` to check the status later

  #### Get Research Status

  1. Add the "Tavily" node to your n8n workflow
  2. Connect it to the preceding node
  3. Click on 'Research'
  4. Select 'Get Research Status' operation
  5. In the node's settings:
     - Select your Tavily API credential
     - Enter the `request_id` from the create research task response
  6. Run the workflow to get the research status and results

  ## Parameters

  ### Tavily Search Parameters

  | Parameter | Description |
  |-----------|-------------|
  | Query | The search query to execute |
  | Topic | The category of the search (General, News, or Finance) |
  | Search Depth | The depth of the search (Basic or Advanced) |
  | Chunks Per Source (Advanced Search only) | Number of content chunks to retrieve from each source (1-3) |
  | Max Results | Maximum number of search results to return (1-20) |
  | Time Range | Time range filter for results (day, week, month, year) |
  | Days (News Only) | Number of days back from the current date to include (for News topic) |
  | Include Answer | Include an LLM-generated answer in the response (Basic or Advanced) |
  | Include Raw Content | Include cleaned and parsed HTML content of each search result |
  | Include Images | Perform an image search and include the results in the response |
  | Include Image Descriptions | When including images, also add a descriptive text for each image |
  | Include Domains | A list of domains to specifically include in the search results |
  | Exclude Domains | A list of domains to specifically exclude from the search results |
  | Include Favicon | Include the favicon URL for each result |
  | Include Usage | Whether to include credit usage information in the response. |
  | Country | Boost search results from a specific country. |
  | Auto Parameters | When enabled, Tavily automatically configures search parameters based on your query's content and intent |
  | Start Date | Will return all results after the specified start date (publish date). Required to be written in the format YYYY-MM-DD |
  | End Date | Will return all results before the specified end date (publish date). Required to be written in the format YYYY-MM-DD |

  ### Tavily Extract Parameters

  | Parameter | Description |
  |-----------|-------------|
  | URLs | One or more URLs to extract content from |
  | Include Images | Include a list of images extracted from each URL |
  | Extract Depth | How deeply to parse each URL (Basic or Advanced) |
  | Format | Format of the extracted web page content (Markdown or Text) |
  | Include Favicon | Include the favicon URL for each result |
  | Include Usage | Whether to include credit usage information in the response. NOTE:The value may be 0 if the total successful URL extractions has not yet reached 5 calls. See our [Credits & Pricing documentation](https://docs.tavily.com/documentation/api-credits) for details. |

  ### Tavily Crawl Parameters

  | Parameter | Description |
  |-----------|-------------|
  | URL | The root URL to begin the crawl |
  | Instructions | Natural language instructions for the crawler |
  | Max Depth | Maximum depth of the crawl (≥ 1) |
  | Max Breadth | Maximum number of links to follow per level (≥ 1) |
  | Limit | Maximum number of results to return (≥ 1) |
  | Select Paths | Regex patterns to select only URLs with specific path patterns |
  | Select Domains | Regex patterns to select crawling to specific domains or subdomains |
  | Exclude Paths | Regex patterns to exclude URLs with specific path patterns |
  | Exclude Domains | Regex patterns to exclude specific domains or subdomains from crawling |
  | Allow External | Whether to allow following links that go to external domains |
  | Include Images | Whether to include images in the crawl results |
  | Extract Depth | Extraction depth (Basic or Advanced) |
  | Format | Format of the extracted web page content (Markdown or Text) |
  | Include Favicon | Include the favicon URL for each result |
  | Include Usage | Whether to include credit usage information in the response. NOTE:The value may be 0 if the total use of /extract and /map calls has not yet reached minimum needed. See our [Credits & Pricing documentation](https://docs.tavily.com/documentation/api-credits) for details. |

  ### Tavily Map Parameters

  | Parameter | Description |
  |-----------|-------------|
  | URL | The root URL to begin mapping |
  | Instructions | Natural language instructions guiding the mapping process |
  | Max Depth | Defines how far from the base URL the crawler can explore (≥ 1) |
  | Max Breadth | Maximum number of links to follow per level of the tree (≥ 1) |
  | Limit | Total number of links the crawler will process before stopping (≥ 1) |
  | Select Paths | Regex patterns to select only URLs with specific path patterns |
  | Select Domains | Regex patterns to select crawling to specific domains or subdomains |
  | Exclude Paths | Regex patterns to exclude URLs with specific path patterns |
  | Exclude Domains | Regex patterns to exclude specific domains or subdomains from crawling |
  | Allow External | Whether to include external domain links in the final results list |
  | Timeout | Maximum time in seconds to wait for the map operation (10-150) |

  ### Tavily Research Parameters

  #### Create Research Task

  | Parameter | Description |
  |-----------|-------------|
  | Input | The research task or question to investigate |
  | Model | The model used by the research agent (Auto, Mini, or Pro). Mini is optimized for targeted research, Pro provides comprehensive multi-angle research |
  | Citation Format | The format for citations in the research report (Numbered, MLA, APA, or Chicago) |
  | Output Schema | A JSON Schema object that defines the structure of the research output |
  | Stream | Whether to stream research results in real-time as Server-Sent Events (SSE) with progress updates and incremental results |

  #### Get Research Status

  | Parameter | Description |
  |-----------|-------------|
  | Request ID | The unique identifier of the research task returned from the Create Research Task operation |

  ## Troubleshooting

  ### Error Codes

  | Error Code | Description | Solution |
  |------------|-------------|----------|
  | 400 Bad Request | Invalid request parameters or unsupported values | Check all parameters and their formats |
  | 401 Unauthorized | Missing or invalid API key | Verify API key or generate a new one |
  | 429 Too Many Requests | Rate limit exceeded | Reduce request frequency or implement backoff |
  | 432 Plan Limit Exceeded | Exceeds plan limits | Upgrade your plan via [Tavily Dashboard](https://app.tavily.com/billing) |
  | 433 Pay-As-You-Go Limit Exceeded | Exceeds pay-as-you-go limit | Increase limit via [Tavily Dashboard](https://app.tavily.com/billing) |
  | 500 Internal Server Error | Server-side issue | Retry request after a few minutes |

  ## Cost

  Head to the [API Credits Overview](https://docs.tavily.com/documentation/api-credits) in our documentation to learn more about how many API Credits each request costs.

  ## License

  This project is licensed under the terms of the MIT license.

  ## Contact

  If you are encountering issues while using Tavily, please email us at support@tavily.com. We'll be happy to help you.

  If you want to stay updated on the latest Tavily news and releases, head to our [Developer Community](https://community.tavily.com) to learn more!

ai_documentation_summary:
  {"purpose":"This n8n node integrates the Tavily API to perform web search, content extraction, website crawling, site mapping, and comprehensive research within no-code automation workflows.","capabilities":["Web search with filtering by topic, time range, and domains","Content extraction from specific URLs","Website crawling with configurable depth and breadth","Website URL mapping and sitemap generation","Automated research with multiple search iterations and source analysis","Support for different search depths (basic/advanced)","Support for different research models (Mini/Pro)","Image retrieval in search results"],"authentication":"API key required","commonUseCases":["Market research and competitor analysis","Data collection from multiple sources","Content aggregation and summarization","Website structure analysis","Automated fact-checking and verification"],"limitations":["Research tasks require a separate request_id to check status","Some advanced features may depend on specific Tavily API plan tiers","Crawl and Map operations are limited by API rate limits"],"relatedNodes":["HTTP Request","Code","Function","Wait Until","Split In Batches"]}


node_type: n8n-nodes-mallabe-barcodes.mallabeBarcodes
package_name: n8n-nodes-mallabe-barcodes
display_name: Mallabe Barcodes
category: Barcodes
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: dinbrca
author_github_url: https://github.com/mallabe/
npm_package_name: n8n-nodes-mallabe-barcodes
npm_version: 0.1.3
community_fetched_at: 2026-07-14T14:40:33.128Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Mallabe Barcodes is a utility tool that allows the generation & scanning of different barcodes, such as the popular QR code, UPC, EAN & others.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "barcode",
      "options": [
        {
          "name": "Barcode",
          "value": "barcode"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateQrCode",
      "options": [
        {
          "name": "Generate Barcode",
          "value": "generateBarcode",
          "action": "Generate barcode",
          "description": "Generate a barcode of different types such as UPC, EAN, and more"
        },
        {
          "name": "Generate QR Code",
          "value": "generateQrCode",
          "action": "Generate a qr code",
          "description": "Generate a QR code"
        },
        {
          "name": "Scan Barcode",
          "value": "scanBarcode",
          "action": "Scan barcode",
          "description": "Scan a QR code or barcode"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "barcode"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Barcode",
      "value": "generateBarcode",
      "action": "Generate barcode",
      "description": "Generate a barcode of different types such as UPC, EAN, and more",
      "resource": "barcode"
    },
    {
      "name": "Generate QR Code",
      "value": "generateQrCode",
      "action": "Generate a qr code",
      "description": "Generate a QR code",
      "resource": "barcode"
    },
    {
      "name": "Scan Barcode",
      "value": "scanBarcode",
      "action": "Scan barcode",
      "description": "Scan a QR code or barcode",
      "resource": "barcode"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "barcode"
    }
  ]

npm_readme:
  ![Mallabe Logo](/docs/mallabe-logo.png)

  # n8n-nodes-mallabe-barcodes

  This is an n8n community node for [Mallabe Barcodes](https://www.mallabe.com/).

  It allows you to manipulate images using different operations.

  For more information, refer to the [Mallabe website](https://www.mallabe.com/).

  Current supported operations:
  - Generate Barcode
  - Generate QR Code
  - Scan Barcode / QR Code

  ## License

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

  ## Development
  ### Running Locally (Summary)
  1. Install n8n globally using https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/
  2. Run `nvm use` to use the correct node version in the node folder.
  3. Run `pnpm install` in the node folder.
  4. Run `pnpm link --global` to register as package.
  5. Run `pnpm run build` whenever you make changes to the node.
  6. Run `cd ~/.n8n`
  7. Stop n8n if it was already running.
  8. Run `pnpm link --global n8n-nodes-mallabe-barcodes` in n8n `custom` folder.
  9. Run `n8n start`

  Note: if you like to watch the development instead of rebuilding every time, use `npm run dev`.

ai_documentation_summary:
  {"purpose":"A community node for generating and scanning various barcode types including QR codes, UPC, and EAN.","capabilities":["Generate standard barcodes","Generate QR codes","Scan barcodes","Scan QR codes"],"authentication":"None","commonUseCases":["Creating product labels with UPC or EAN codes","Generating QR codes for links or data","Scanning barcodes from images or files in a workflow"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-mallabe-images.mallabeImages
package_name: n8n-nodes-mallabe-images
display_name: Mallabe Images
category: Images
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: dinbrca
author_github_url: https://github.com/mallabe/
npm_package_name: n8n-nodes-mallabe-images
npm_version: 0.1.7
community_fetched_at: 2026-07-14T14:40:33.129Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Mallabe Images is an automation toolchain that allows you to process images, resize, crop and apply other manipulations on images on the fly.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "resize",
      "options": [
        {
          "name": "Blur Image",
          "value": "blur",
          "action": "Blur image",
          "description": "Blur images and send the new image to another integration"
        },
        {
          "name": "Compress Image",
          "value": "compress",
          "action": "Compress image",
          "description": "Compress images and drive the new image to another integration.Note: if a given URL isn't an image file (png, jpg/jpeg, etc..) - the file will not convert. Note: some Zapier integrations give URLs that are protected - these can't be used & compressed."
        },
        {
          "name": "Crop Image",
          "value": "crop",
          "action": "Crop image",
          "description": "Crop images and send the new image to another integration. Note: If a given URL isn't an image file (e.g., png, jpg/jpeg, gif), the file will not convert. Also, some Zapier integrations provide protected URLs that cannot be cropped."
        },
        {
          "name": "Extract Image Metadata",
          "value": "metadata",
          "action": "Extract image metadata",
          "description": "Extract image metadata. Note: some integrations give URLs that are protected - these can't be used & resized."
        },
        {
          "name": "Flip Image",
          "value": "flip",
          "action": "Flip image",
          "description": "Flip images and send the new image to another integration"
        },
        {
          "name": "Greyscale Image",
          "value": "greyscale",
          "action": "Greyscale image",
          "description": "Greyscale images and send the new image to another integration"
        },
        {
          "name": "Join/Combine Images",
          "value": "join",
          "action": "Join combine images",
          "description": "Join images into one image and send the new image to another integration"
        },
        {
          "name": "Resize Image",
          "value": "resize",
          "action": "Resize image",
          "description": "Resize or Scale images and drive the new image to another integration. Note: if a given URL isn't an image file (png, jpg/jpeg, gif, etc..) - the file will not convert.Note: some Zapier integrations give URLs that are protected - these can't be used & resized."
        },
        {
          "name": "Rotate Image",
          "value": "rotate",
          "action": "Rotate image",
          "description": "Rotate images and send the new image to another integration"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Blur Image",
      "value": "blur",
      "action": "Blur image",
      "description": "Blur images and send the new image to another integration",
      "resource": "image"
    },
    {
      "name": "Compress Image",
      "value": "compress",
      "action": "Compress image",
      "description": "Compress images and drive the new image to another integration.Note: if a given URL isn't an image file (png, jpg/jpeg, etc..) - the file will not convert. Note: some Zapier integrations give URLs that are protected - these can't be used & compressed.",
      "resource": "image"
    },
    {
      "name": "Crop Image",
      "value": "crop",
      "action": "Crop image",
      "description": "Crop images and send the new image to another integration. Note: If a given URL isn't an image file (e.g., png, jpg/jpeg, gif), the file will not convert. Also, some Zapier integrations provide protected URLs that cannot be cropped.",
      "resource": "image"
    },
    {
      "name": "Extract Image Metadata",
      "value": "metadata",
      "action": "Extract image metadata",
      "description": "Extract image metadata. Note: some integrations give URLs that are protected - these can't be used & resized.",
      "resource": "image"
    },
    {
      "name": "Flip Image",
      "value": "flip",
      "action": "Flip image",
      "description": "Flip images and send the new image to another integration",
      "resource": "image"
    },
    {
      "name": "Greyscale Image",
      "value": "greyscale",
      "action": "Greyscale image",
      "description": "Greyscale images and send the new image to another integration",
      "resource": "image"
    },
    {
      "name": "Join/Combine Images",
      "value": "join",
      "action": "Join combine images",
      "description": "Join images into one image and send the new image to another integration",
      "resource": "image"
    },
    {
      "name": "Resize Image",
      "value": "resize",
      "action": "Resize image",
      "description": "Resize or Scale images and drive the new image to another integration. Note: if a given URL isn't an image file (png, jpg/jpeg, gif, etc..) - the file will not convert.Note: some Zapier integrations give URLs that are protected - these can't be used & resized.",
      "resource": "image"
    },
    {
      "name": "Rotate Image",
      "value": "rotate",
      "action": "Rotate image",
      "description": "Rotate images and send the new image to another integration",
      "resource": "image"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "image"
    }
  ]

npm_readme:
  ![Mallabe Logo](/docs/mallabe-logo.png)

  # n8n-nodes-mallabe-images

  This is an n8n community node for [Mallabe Images](https://www.mallabe.com/).

  It allows you to manipulate images using different operations.

  For more information, refer to the [Mallabe website](https://www.mallabe.com/).

  Current supported operations:
  - Resize Image
  - Compress Image
  - Get Image Metadata
  - Crop Image
  - Rotate Image
  - Flip / Flop Image
  - Greyscale Image
  - Join 2 Images

  ## License

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

  ## Development
  ### Running Locally (Summary)
  1. Install n8n globally using https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/
  2. Run `nvm use` to use the correct node version in the node folder.
  3. Run `pnpm install` in the node folder.
  4. Run `pnpm link --global` to register as package.
  5. Run `pnpm run build` whenever you make changes to the node.
  6. Run `cd ~/.n8n`
  7. Stop n8n if it was already running.
  8. Run `pnpm link --global n8n-nodes-mallabe-images` in n8n `custom` folder.
  9. Run `n8n start`

  Note: if you like to watch the development instead of rebuilding every time, use `npm run dev`.

ai_documentation_summary:
  {"purpose":"This n8n community node enables real-time image manipulation by processing images through operations like resizing, cropping, and applying filters.","capabilities":["Resize images","Compress images","Get image metadata","Crop images","Rotate images","Flip/Flop images","Convert to greyscale","Join two images"],"authentication":"API key required (implied by external service integration)","commonUseCases":["Automating image preprocessing for e-commerce listings","Batch image optimization for web performance","Applying consistent filters or crops to image sets","Generating image thumbnails dynamically"],"limitations":["Limited to operations supported by the external Mallabe service","Requires external API access to Mallabe Images service"],"relatedNodes":["HTTP Request","Code","Wait Until"]}


node_type: n8n-nodes-pdforge.pdforge
package_name: n8n-nodes-pdforge
display_name: PDF Noodle
description: Generate PDF from HTML or reusable templates with PDF Noodle (previously pdforge).
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: mabreum
author_github_url: https://github.com/pdforge/
npm_package_name: n8n-nodes-pdforge
npm_version: 2.3.3
community_fetched_at: 2026-07-14T14:40:33.131Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "pdf",
      "options": [
        {
          "name": "Generate PDF",
          "value": "pdf"
        },
        {
          "name": "Generate Image",
          "value": "image"
        },
        {
          "name": "Convert HTML to PDF",
          "value": "html-to-pdf"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sync",
      "options": [
        {
          "name": "Generate Syncronously",
          "value": "sync",
          "action": "Generate PDF syncronously",
          "description": "Generate PDF syncronously"
        },
        {
          "name": "Generate Asynchronously",
          "value": "async",
          "action": "Generate PDF asynchronously",
          "description": "Generate PDF asynchronously"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sync",
      "options": [
        {
          "name": "Generate Syncronously",
          "value": "sync",
          "action": "Generate image syncronously",
          "description": "Generate Image syncronously"
        },
        {
          "name": "Generate Asynchronously",
          "value": "async",
          "action": "Generate image asynchronously",
          "description": "Generate Image asynchronously"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sync",
      "options": [
        {
          "name": "Convert HTML to PDF Syncronously",
          "value": "sync",
          "action": "Convert syncronously",
          "description": "Convert your HTML data into a PDF file syncronously"
        },
        {
          "name": "Convert HTML to PDF Asynchronously",
          "value": "async",
          "action": "Convert asynchronously",
          "description": "Convert your HTML data into a PDF file asynchronously"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "html-to-pdf"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Syncronously",
      "value": "sync",
      "action": "Generate PDF syncronously",
      "description": "Generate PDF syncronously",
      "resource": "pdf"
    },
    {
      "name": "Generate Asynchronously",
      "value": "async",
      "action": "Generate PDF asynchronously",
      "description": "Generate PDF asynchronously",
      "resource": "pdf"
    },
    {
      "name": "Generate Syncronously",
      "value": "sync",
      "action": "Generate image syncronously",
      "description": "Generate Image syncronously",
      "resource": "image"
    },
    {
      "name": "Generate Asynchronously",
      "value": "async",
      "action": "Generate image asynchronously",
      "description": "Generate Image asynchronously",
      "resource": "image"
    },
    {
      "name": "Convert HTML to PDF Syncronously",
      "value": "sync",
      "action": "Convert syncronously",
      "description": "Convert your HTML data into a PDF file syncronously",
      "resource": "html-to-pdf"
    },
    {
      "name": "Convert HTML to PDF Asynchronously",
      "value": "async",
      "action": "Convert asynchronously",
      "description": "Convert your HTML data into a PDF file asynchronously",
      "resource": "html-to-pdf"
    }
  ]

npm_readme:
  # n8n-nodes-pdforge

  This is an n8n node. It lets you use [pdf noodle](https://pdfnoodle.com) (previously pdforge) in your n8n workflows.

  **pdf noodle automates PDF Generation in minutes using AI**.

  Create custom PDF templates in seconds using our AI Agents, fine tune the design with our pDF builder and automate the PDF delivery with our native pdf noodle node inside n8n. No code or design experience needed.

  [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

  With pdf noodle you can create pdfs from html or reusable templates (or convert them to images), both synchronously or asynchronously. Here are the operations you can use:

  | Name                      | Operation           | Description                                                                                                                  | Documentation Link                                                          |
  | ------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
  | Generate Pdf Sync         | `pdf:sync`          | Creates a PDF file with JSON data and your template.                                                                         | [Link](https://docs.pdforge.com/pdfs/synchronous-request)                   |
  | Generate Pdf Async        | `pdf:async`         | Creates a PDF file asynchronously with JSON data and your template. The API returns immediately, and will retry for 3 times. | [Link](https://docs.pdforge.com/pdfs/asynchronous-request)                  |
  | Generate Image Sync       | `image:sync`        | Creates a PNG file with JSON data and your template.                                                                         | [Link](https://docs.pdforge.com/images/how-render-png-instead-of-pdf)       |
  | Generate Image Async      | `image:async`       | Creates a PNG file asynchronously with JSON data and your template. The API returns immediately, and will retry for 3 times. | [Link](https://docs.pdforge.com/images/how-render-png-instead-of-pdf)       |
  | Convert HTML to PDF Sync  | `html-to-pdf:sync`  | Creates a PDF file using the HTML data and PDF params sent.                                                                  | [Link](https://docs.pdforge.com/html-to-pdf-conversion/synchronous-request) |
  | Convert HTML to PDF Async | `html-to-pdf:async` | Creates a PDF file asynchronously using the HTML data and PDF params sent.                                                   | [Link](https://docs.pdforge.com/html-to-pdf-conversion/synchronous-request) |

  ## Credentials

  You only need a pdf noodle API Key to integrate to start generating pdfs. You can get it using our [web portal](https://app.pdfnoodle.com/auth/sign-up) and choosing any plan to subscribe to.

  - [pdf noodle Auth Documentation](https://docs.pdforge.com/getting-started/authentication)

  ## Compatibility

  This package was developed & tested with n8n > 1.97.1

  ## Usage

  Please check out the [pdf noodle API Reference](https://docs.pdforge.com/) for more information on how to use the integration.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [pdf noodle API Reference](https://docs.pdforge.com/)
  - [pdf noodle Knowledge Base](https://docs.pdforge.com/knowledge-base)

  ## Version history

  | Version | Changes                                                                                                           |
  | ------- | ----------------------------------------------------------------------------------------------------------------- |
  | 2.3.3   | Updating repository to pdfnoodle                                                                                  |
  | 2.3.2   | Fix on package json to make integration update work on n8n instances                                              |
  | 2.3.1   | Adjusting names so it doesn't break existing pdforge installs on n8n                                              |
  | 2.3.0   | Rebranding changing the name from pdforge to pdf noodle (everything else stays the same)                          |
  | 2.2.1   | Added debug option so you have additional information such as rendered HTML and variables validation              |
  | 2.1.1   | Changed description and treated Print Params not being properly converted into objects                            |
  | 2.1.0   | Added `hasCover` option to include a cover page in generated PDFs to automatically hide footer and header content |
  | 2.0.0   | Added support for HTML to PDF conversion operations and custom s3 bucket configuration                            |
  | 1.0.0   | Initial release with PDF and Image generation capabilities                                                        |

ai_documentation_summary:
  {"purpose":"This n8n node enables the generation of PDFs from HTML or reusable templates, as well as the conversion of HTML to PDF, using the PDF Noodle (formerly pdforge) service.","capabilities":["Synchronous PDF generation from JSON data and templates","Asynchronous PDF generation with automatic retry logic","Synchronous PNG image generation from templates","Asynchronous PNG image generation from templates","HTML to PDF conversion with custom parameters","HTML to PDF conversion asynchronously","Custom template creation via AI agents","Support for cover pages and footer/header customization","Configuration for custom S3 buckets"],"authentication":"API Key required","commonUseCases":["Automated invoice or receipt generation","Document templating for marketing materials","Converting web pages or HTML content to PDF format","Batch processing of documents with dynamic data"],"limitations":["Requires a subscription to PDF Noodle service","Asynchronous operations may have a delay before completion","Minimum n8n version 1.97.1 required for compatibility"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-s3.s3","n8n-nodes-code.executeCode"]}


node_type: n8n-nodes-browserflow.browserflow
package_name: n8n-nodes-browserflow
display_name: Browserflow for LinkedIn
description: Automate LinkedIn actions with Browserflow for LinkedIn
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: browserflow
author_github_url: https://github.com/Browserflow-io/browserflow-n8n.git
npm_package_name: n8n-nodes-browserflow
npm_version: 1.0.6
community_fetched_at: 2026-07-14T14:40:33.132Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "linkedin",
      "options": [
        {
          "name": "",
          "value": "linkedin"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "checkConnection",
      "options": [
        {
          "name": "Check if a Person Is a Connection",
          "value": "checkConnection",
          "action": "Check if a person is a connection"
        },
        {
          "name": "Export LinkedIn Chat History",
          "value": "getChatHistory",
          "action": "Export linked in chat history"
        },
        {
          "name": "Get Data From A Linkedin Profile",
          "value": "getProfileData",
          "action": "Get data from a linkedin profile"
        },
        {
          "name": "Get Job Result",
          "value": "getJobResult",
          "action": "Get the result of a job"
        },
        {
          "name": "Invite Connections to Follow a LinkedIn Page",
          "value": "inviteToFollowPage",
          "action": "Invite connections to follow a linkedin page"
        },
        {
          "name": "List LinkedIn Connections",
          "value": "listConnections",
          "action": "List your linkedin connections"
        },
        {
          "name": "Scrape LinkedIn Posts",
          "value": "scrapePosts",
          "action": "Scrape linkedin posts"
        },
        {
          "name": "Scrape Profiles From A LinkedIn Post",
          "value": "scrapeProfilesFromPostComments",
          "action": "Scrape profiles from a linkedin post"
        },
        {
          "name": "Scrape Profiles From A LinkedIn Search",
          "value": "scrapeProfilesFromSearch",
          "action": "Scrape profiles from a linkedin search"
        },
        {
          "name": "Send A LinkedIn Connection Invite",
          "value": "sendConnectionInvite",
          "action": "Send a linked in connection invite"
        },
        {
          "name": "Send A LinkedIn Message",
          "value": "sendMessage",
          "action": "Send a linkedin message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedin"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Check if a Person Is a Connection",
      "value": "checkConnection",
      "action": "Check if a person is a connection",
      "resource": "linkedin"
    },
    {
      "name": "Export LinkedIn Chat History",
      "value": "getChatHistory",
      "action": "Export linked in chat history",
      "resource": "linkedin"
    },
    {
      "name": "Get Data From A Linkedin Profile",
      "value": "getProfileData",
      "action": "Get data from a linkedin profile",
      "resource": "linkedin"
    },
    {
      "name": "Get Job Result",
      "value": "getJobResult",
      "action": "Get the result of a job",
      "resource": "linkedin"
    },
    {
      "name": "Invite Connections to Follow a LinkedIn Page",
      "value": "inviteToFollowPage",
      "action": "Invite connections to follow a linkedin page",
      "resource": "linkedin"
    },
    {
      "name": "List LinkedIn Connections",
      "value": "listConnections",
      "action": "List your linkedin connections",
      "resource": "linkedin"
    },
    {
      "name": "Scrape LinkedIn Posts",
      "value": "scrapePosts",
      "action": "Scrape linkedin posts",
      "resource": "linkedin"
    },
    {
      "name": "Scrape Profiles From A LinkedIn Post",
      "value": "scrapeProfilesFromPostComments",
      "action": "Scrape profiles from a linkedin post",
      "resource": "linkedin"
    },
    {
      "name": "Scrape Profiles From A LinkedIn Search",
      "value": "scrapeProfilesFromSearch",
      "action": "Scrape profiles from a linkedin search",
      "resource": "linkedin"
    },
    {
      "name": "Send A LinkedIn Connection Invite",
      "value": "sendConnectionInvite",
      "action": "Send a linked in connection invite",
      "resource": "linkedin"
    },
    {
      "name": "Send A LinkedIn Message",
      "value": "sendMessage",
      "action": "Send a linkedin message",
      "resource": "linkedin"
    }
  ]

npm_readme:
  ![Browserflow Logo](https://s3-eu-west-1.amazonaws.com/tpd/logos/675a07be8d2cf551a4f539e0/0x0.png)

  # Browserflow for n8n

  Browserflow for n8n includes two Browserflow nodes:

  - **Browserflow V2** for endpoint-based Browserflow automations in n8n workflows.
  - **Browserflow for LinkedIn** for the existing LinkedIn-focused Browserflow action set.

  See the latest platform update at [browserflow.io](https://browserflow.io/). Questions? Contact `hello@browserflow.io`.

  ---

  ## Release Notes

  ### 2.0.1

  - Split the public README into separate sections for Browserflow V2 and Browserflow for LinkedIn.
  - Updated the public package description to reflect Browserflow's broader web automation direction.
  - Kept the Browserflow for LinkedIn functionality and positioning available for existing workflows.

  ### 2.0.0

  - Introduced the new major-version baseline for the Browserflow n8n package.

  ---

  ## Browserflow V2

  Browserflow V2 connects Browserflow endpoint-based automations to n8n workflows.

  Browserflow is evolving beyond LinkedIn automation into a broader web automation platform designed to work well with third-party workflows. This node is the Browserflow V2 path for that direction inside n8n.

  ### Runtime Behavior

  - The node invokes endpoint runs with `wait_for_completion=false`.
  - Metadata discovery uses the same Browserflow user API key as invoke; the node sends `X-Browserflow-Api-Key` on both `/metadata` and invoke requests.
  - While a run is active, the node polls the same endpoint using `flow_run_id`, so it reuses the same run instead of starting duplicates.
  - Polling treats additional transitional statuses as active (`pending`, `processing`, `in_progress`) and keeps polling unknown non-terminal statuses too.
  - Polling supports numeric and string run identifiers, so run tracking still works when an API returns non-numeric IDs.
  - For terminal success-like statuses (`success`, `completed`, `ok`, `done`), the node can keep polling a bit longer when output is still empty, to avoid early empty responses.
  - Polling stops when the run reaches a terminal state with usable output, or when the max wait window is reached.
  - Per node you can configure `Max Wait Seconds` and `Poll Interval Seconds` to make `Execute` return sooner or wait longer.
  - If `max_results`/`max_pages` are present in Input Values, the node also sends them top-level to the endpoint runtime controls.
  - Node output is compact/sanitized: each item returns `{run_id, flow_run_id, session_id, status, output}` and internal debug fields are not exposed in `output`.

  Environment knobs:

  - `BROWSERFLOW_EXECUTE_REQUEST_TIMEOUT_MS` (default `20000`)
  - `BROWSERFLOW_EXECUTE_POLL_INTERVAL_MS` (default `3000`)
  - `BROWSERFLOW_EXECUTE_MAX_WAIT_MS` (default `90000`)
  - `BROWSERFLOW_METADATA_TIMEOUT_MS` (default `12000`)
  - `BROWSERFLOW_LOCALHOST_ALIAS` (default `host.docker.internal`, useful when n8n runs in Docker)

  ---

  ### Example Workflow

  1. Add the **Browserflow V2** node to your workflow.
  2. Configure your Browserflow credentials and endpoint URL.
  3. Load the available input fields from the endpoint metadata.
  4. Map your input values in n8n.
  5. Execute the workflow to run the Browserflow automation.

  ---

  ## Browserflow for LinkedIn

  The **Browserflow Node** allows you to automate LinkedIn interactions using the Browserflow API. This node provides a variety of operations to interact with LinkedIn profiles, scrape data, send connection invites, and more.

  ### Features

  - **Check Connection**: Check the connection status of a LinkedIn profile.
  - **Get Profile Data**: Retrieve data from a LinkedIn profile.
  - **Send Connection Invite**: Send a connection invite to a LinkedIn profile (with an optional message).
  - **Get Chat History**: Retrieve chat history from a LinkedIn conversation.
  - **Scrape Profiles from Search**: Scrape LinkedIn profiles based on search criteria (e.g., category, search term, location).
  - **Scrape Profiles from Post Comments**: Scrape profiles from LinkedIn post comments and reactions.
  - **Send Message**: Send a direct message to a LinkedIn profile (with a mandatory message).

  ---

  ### Node Operations

  #### 1. Check Connection
  - **LinkedIn URL**: The LinkedIn profile URL to check the connection status.
  - **Endpoint**: `/linkedin-check-connection-status`

  #### 2. Get Profile Data
  - **LinkedIn URL**: The LinkedIn profile URL to retrieve data.
  - **Endpoint**: `/linkedin-profile-data`

  #### 3. Send Connection Invite
  - **LinkedIn URL**: The LinkedIn profile URL to send a connection invite.
  - **Add Message**: Toggle to include a custom message.
  - **Message**: Optional message to include in the invite.
  - **Endpoint**: `/linkedin-connection-invite`

  #### 4. Get Chat History
  - **LinkedIn URL**: The LinkedIn profile URL to retrieve chat history.
  - **Endpoint**: `/linkedin-get-chat-history`

  #### 5. Scrape Profiles from Search
  - **Category**: The category to scrape (persons or companies).
  - **Search Term**: The search term to use for scraping.
  - **Number of Pages**: The number of pages to scrape.
  - **City**: The city to filter the search results.
  - **Country**: The country to filter the search results.
  - **Endpoint**: `/linkedin-scrape-profiles-from-search`

  #### 6. Scrape Profiles from Post Comments
  - **Post URL**: The URL of the LinkedIn post to scrape profiles from.
  - **Add Comments**: Toggle to include comments in the scrape results.
  - **Comments Offset**: The number of comments to skip.
  - **Comments Limit**: The maximum number of comments to scrape.
  - **Add Reactions**: Toggle to include reactions in the scrape results.
  - **Reactions Offset**: The number of reactions to skip.
  - **Reactions Limit**: The maximum number of reactions to scrape.
  - **Endpoint**: `/linkedin-scrape-profiles-from-post-comments`

  #### 7. Send Message
  - **LinkedIn URL**: The LinkedIn profile URL to send a message.
  - **Message**: The message to send (mandatory).
  - **Endpoint**: `/linkedin-send-message`

  ---

  ### Example Workflows

  #### Example 1: Send a Connection Invite
  1. Add the **Browserflow Node** to your workflow.
  2. Set the operation to **Send Connection Invite**.
  3. Provide the LinkedIn profile URL.
  4. Optionally, enable **Add Message** and provide a custom message.
  5. Execute the workflow to send the connection invite.

  #### Example 2: Scrape Profiles from Search
  1. Add the **Browserflow Node** to your workflow.
  2. Set the operation to **Scrape Profiles from Search**.
  3. Provide the search criteria (e.g., category, search term, location).
  4. Execute the workflow to scrape profiles based on the search criteria.

  #### Example 3: Send a Direct Message
  1. Add the **Browserflow Node** to your workflow.
  2. Set the operation to **Send Message**.
  3. Provide the LinkedIn profile URL and the message.
  4. Execute the workflow to send the message.

  ---

  ## Local n8n Startup for Node Testing

  When testing this custom node locally, always use the project scripts so the node is auto-registered and verified:

  ```bash
  ./scripts/start-local-n8n.sh
  ./scripts/healthcheck-local-n8n.sh
  ```

  What this guarantees:

  - symlink registration: `~/.n8n/custom/browserflow-n8n -> <repo>/browserflow-n8n/dist`
  - n8n health endpoint responds
  - both custom nodes are loaded: `CUSTOM.browserflow` and `CUSTOM.browserflowV2`

  Optional override:

  ```bash
  ./scripts/healthcheck-local-n8n.sh http://localhost:5678
  ```

  ---

ai_documentation_summary:
  {"purpose":"Automates LinkedIn interactions including profile data retrieval, connection management, messaging, and profile scraping via the Browserflow API.","capabilities":["Check connection status of a LinkedIn profile","Retrieve profile data from a LinkedIn URL","Send connection invites with optional custom messages","Retrieve chat history from LinkedIn conversations","Scrape profiles based on search criteria (category, location, search term)","Scrape profiles from LinkedIn post comments and reactions","Send direct messages to LinkedIn profiles"],"authentication":"API key required (obtained via registration at browserflow.io/n8n)","commonUseCases":["Automated lead generation through profile scraping","Automated networking via connection invites","Retrieving employee or contact data from LinkedIn","Monitoring LinkedIn conversations and chat histories"],"limitations":["Requires registration and API key generation from Browserflow","Some operations like sending messages may be subject to LinkedIn's rate limits or terms of service"],"relatedNodes":["n8n-nodes-browserflow.browserflow"]}


node_type: n8n-nodes-digital-ocean.digitalOcean
package_name: n8n-nodes-digital-ocean
display_name: Digital Ocean
description: Digital Ocean
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: joff
author_github_url: https://github.com/joffcom/
npm_package_name: n8n-nodes-digital-ocean
npm_version: 0.4.1
community_fetched_at: 2026-07-14T14:40:33.133Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "account",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Domain",
          "value": "domain"
        },
        {
          "name": "Droplet",
          "value": "droplet"
        },
        {
          "name": "Event",
          "value": "event"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get account information",
          "description": "Get account information"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get event information",
          "description": "Get event information"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about many events",
          "description": "Get information about many events"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a domain",
          "description": "Create a domain"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get domain information",
          "description": "Get domain information"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about many domains",
          "description": "Get information about many domains"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a domain",
          "description": "Delete a domain"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Action",
          "value": "action",
          "action": "Perform an action on a droplet",
          "description": "Perform an action on a droplet"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new droplet",
          "description": "Create a new droplet"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a droplet",
          "description": "Delete a droplet"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get information about a droplet",
          "description": "Get information about a droplet"
        },
        {
          "name": "Get Backups",
          "value": "getBackups",
          "action": "Get all backups for a droplet",
          "description": "Get all backups for a droplet"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about all droplets",
          "description": "Get information about many droplets"
        },
        {
          "name": "Get Snapshots",
          "value": "getSnapshots",
          "action": "Get all snapshots for a droplet",
          "description": "Get all snapshots for a droplet"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "droplet"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get account information",
      "description": "Get account information",
      "resource": "account"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "account"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get event information",
      "description": "Get event information",
      "resource": "event"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about many events",
      "description": "Get information about many events",
      "resource": "event"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "event"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a domain",
      "description": "Create a domain",
      "resource": "domain"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get domain information",
      "description": "Get domain information",
      "resource": "domain"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about many domains",
      "description": "Get information about many domains",
      "resource": "domain"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a domain",
      "description": "Delete a domain",
      "resource": "domain"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "domain"
    },
    {
      "name": "Action",
      "value": "action",
      "action": "Perform an action on a droplet",
      "description": "Perform an action on a droplet",
      "resource": "droplet"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new droplet",
      "description": "Create a new droplet",
      "resource": "droplet"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a droplet",
      "description": "Delete a droplet",
      "resource": "droplet"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get information about a droplet",
      "description": "Get information about a droplet",
      "resource": "droplet"
    },
    {
      "name": "Get Backups",
      "value": "getBackups",
      "action": "Get all backups for a droplet",
      "description": "Get all backups for a droplet",
      "resource": "droplet"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about all droplets",
      "description": "Get information about many droplets",
      "resource": "droplet"
    },
    {
      "name": "Get Snapshots",
      "value": "getSnapshots",
      "action": "Get all snapshots for a droplet",
      "description": "Get all snapshots for a droplet",
      "resource": "droplet"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "droplet"
    }
  ]

npm_readme:
  # n8n-nodes-digital-ocean

  This is an n8n community node for connecting to Digital Oceans API to manage your droplets.

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

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

  ## Installation

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

  ## Operations
  - Account
  	- Get
  - Domain
  	- Create
  	- Get
  	- Get Many
  	- Delete
  - Droplet
  	- Get
  	- Get Many
  	- Create
  	- Delete
  - Event 
  	- Get
  	- Get Many

  ## Credentials

  This node supports both OAuth2 and Access Key.

  [OAuth 2](https://docs.digitalocean.com/reference/api/oauth/)
  [Access Key](https://docs.digitalocean.com/reference/api/create-personal-access-token/)

  ## Compatibility

  This node will work with any version of n8n after `1.62.1`

  ## Usage

  ### Authentication
  1. Create new credentials in n8n and select "Digital Ocean API"
  2. Choose either OAuth2 or Access Key authentication:
     - For OAuth2: Click the "Connect" button and authorize n8n
     - For Access Key: Generate a [personal access token](https://cloud.digitalocean.com/account/api/tokens) and paste it in

  ### Working with Droplets
  - To get information about a specific droplet:
    1. Add the Digital Ocean node
    2. Select "Droplet" as Resource
    3. Choose "Get" as Operation
    4. Enter the Droplet ID

  - To create a new droplet:
    1. Add the Digital Ocean node
    2. Select "Droplet" as Resource
    3. Choose "Create" as Operation
    4. Configure required fields:
       - Name
       - Region
       - Size
       - Image

  ### Managing Domains
  - To create a new domain:
    1. Add the Digital Ocean node
    2. Select "Domain" as Resource
    3. Choose "Create" as Operation
    4. Enter the domain name
    5. Optionally configure IP address

  ### Monitoring Events
  - To track operations on your account:
    1. Add the Digital Ocean node
    2. Select "Event" as Resource
    3. Choose "Get Many" as Operation
    4. Optionally filter by event type

  ## Resources

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

  ## Version history

  **0.4.1** \
  Fix descriptions

  **0.4.0** \
  Add support for AI tools
  Update documentation

  **0.3.0** \
  Prevent node from loading n8n again

  **0.2.0** \
  Add support for Application images  
  Add support for Actions as Events  
  Add support for Domains  
  Add support for Droplet actions  
  Add option to get Droplet Snapshots and Backups  

  **0.1.0** \
  Initial Release

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the DigitalOcean API for managing cloud infrastructure resources like droplets, domains, and events.","capabilities":["Get account information","Create, retrieve, and delete domains","Create, retrieve, and delete droplets","Retrieve account events and activity logs","Manage droplet snapshots and backups","Support for AI tools integration"],"authentication":"OAuth2 or Access Key (Personal Access Token)","commonUseCases":["Automated server provisioning and management","Cloud infrastructure monitoring and event tracking","Domain registration and management workflows","Automated droplet lifecycle management"],"limitations":["Community node (not official n8n node)","Requires n8n version 1.62.1 or higher"],"relatedNodes":["DigitalOcean API","Cloud provider nodes","Server management nodes"]}


node_type: n8n-nodes-pdfco.PDFco Api
package_name: n8n-nodes-pdfco
display_name: PDF.co API
category: Community
development_style: declarative
version: 1.1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: artifex-dev
author_github_url: https://github.com/pdfdotco/
npm_package_name: n8n-nodes-pdfco
npm_version: 1.0.10
community_fetched_at: 2026-07-14T14:40:33.134Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Generate PDF, extract data from PDF, split PDF, merge PDF, convert PDF. Fill PDF forms, add text and images to pdf and much more with pdf.co!

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "AI Invoice Parser",
      "options": [
        {
          "name": "AI Invoice Parser",
          "value": "AI Invoice Parser",
          "action": "AI Invoice Parser",
          "description": "Transform your invoice processing with our advanced AI. Enjoy quick, accurate data extraction that eliminates manual effort and saves you valuable time."
        },
        {
          "name": "URL/HTML to PDF",
          "value": "URL/HTML to PDF",
          "action": "URL/HTML to PDF",
          "description": "Convert HTML or URL to PDF with advanced options (e.g. layout, orientation). Supports HTML templates (Handlebar and Mustache)."
        },
        {
          "name": "Merge PDF",
          "value": "Merge PDF",
          "action": "Merge PDF",
          "description": "Combine multiple document formats into a single PDF. Supported formats include PDF, DOC, DOCX, XLS, JPG, PNG, and more."
        },
        {
          "name": "Split PDF",
          "value": "Split PDF",
          "action": "Split PDF",
          "description": "PDF Splitter that takes PDF file and splits into multiple PDF files using page index, page range, text search or barcode search"
        },
        {
          "name": "Convert To PDF",
          "value": "Convert to PDF",
          "action": "Convert to PDF",
          "description": "Convert a variety of formats such as URLs, HTML code, documents, spreadsheets, presentations, images, and more into PDF"
        },
        {
          "name": "Convert From PDF",
          "value": "Convert from PDF",
          "action": "Convert from PDF",
          "description": "Convert PDF pages to structured CSV, XML, JSON, Plain Text, Convert PDF to JPG, PDF to PNG, PDF to TIFF, and more"
        },
        {
          "name": "Add Text/Images to PDF",
          "value": "Add Text/Images to PDF",
          "action": "Add Text/Images to PDF",
          "description": "Add text, images, and annotations to PDF documents with precise positioning and styling options"
        },
        {
          "name": "Fill a PDF Form",
          "value": "Fill a PDF Form",
          "action": "Fill a PDF Form",
          "description": "Fill interactive PDF forms with text, checkboxes, and other form elements"
        },
        {
          "name": "PDF Information & Form Fields",
          "value": "PDF Information & Form Fields",
          "action": "PDF Information & Form Fields",
          "description": "Extract metadata and form field information from PDF documents"
        },
        {
          "name": "Compress PDF",
          "value": "Compress PDF",
          "action": "Compress PDF",
          "description": "Reduce PDF file size while maintaining quality"
        },
        {
          "name": "PDF Security",
          "value": "PDF Security",
          "action": "PDF Security",
          "description": "Add or remove password protection and security features from PDF documents"
        },
        {
          "name": "Rotate PDF Pages",
          "value": "Rotate PDF Pages",
          "action": "Rotate PDF Pages",
          "description": "Rotate PDF pages manually or automatically detect and fix rotation based on text analysis"
        },
        {
          "name": "Delete PDF Pages",
          "value": "Delete PDF Pages",
          "action": "Delete PDF Pages",
          "description": "Remove specific pages from a PDF document"
        },
        {
          "name": "Search in PDF",
          "value": "Search in PDF",
          "action": "Search in PDF",
          "description": "Search for specific text within PDF documents or scanned images"
        },
        {
          "name": "Search & Replace Text or Delete",
          "value": "Search & Replace Text or Delete",
          "description": "Search and delete text, replace text, or replace text with images in PDF documents"
        },
        {
          "name": "Barcode Reader",
          "value": "Barcode Reader",
          "description": "Decode barcodes from images or PDF documents swiftly and accurately"
        },
        {
          "name": "Barcode Generator",
          "value": "Barcode Generator",
          "description": "Generate various types of barcodes including QR codes, Code 128, Code 39, and more"
        },
        {
          "name": "Make PDF Searchable or Unsearchable",
          "value": "Make PDF Searchable or Unsearchable",
          "description": "Convert scanned PDF or image files into text-searchable PDFs using OCR or make them unsearchable/scanned"
        },
        {
          "name": "Upload File",
          "value": "Upload File to PDF.co",
          "action": "Upload File to PDF.co",
          "description": "Upload a file to PDF.co and get a URL"
        }
      ],
      "displayName": "Action",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "AI Invoice Parser",
      "value": "AI Invoice Parser",
      "action": "AI Invoice Parser",
      "description": "Transform your invoice processing with our advanced AI. Enjoy quick, accurate data extraction that eliminates manual effort and saves you valuable time."
    },
    {
      "name": "URL/HTML to PDF",
      "value": "URL/HTML to PDF",
      "action": "URL/HTML to PDF",
      "description": "Convert HTML or URL to PDF with advanced options (e.g. layout, orientation). Supports HTML templates (Handlebar and Mustache)."
    },
    {
      "name": "Merge PDF",
      "value": "Merge PDF",
      "action": "Merge PDF",
      "description": "Combine multiple document formats into a single PDF. Supported formats include PDF, DOC, DOCX, XLS, JPG, PNG, and more."
    },
    {
      "name": "Split PDF",
      "value": "Split PDF",
      "action": "Split PDF",
      "description": "PDF Splitter that takes PDF file and splits into multiple PDF files using page index, page range, text search or barcode search"
    },
    {
      "name": "Convert To PDF",
      "value": "Convert to PDF",
      "action": "Convert to PDF",
      "description": "Convert a variety of formats such as URLs, HTML code, documents, spreadsheets, presentations, images, and more into PDF"
    },
    {
      "name": "Convert From PDF",
      "value": "Convert from PDF",
      "action": "Convert from PDF",
      "description": "Convert PDF pages to structured CSV, XML, JSON, Plain Text, Convert PDF to JPG, PDF to PNG, PDF to TIFF, and more"
    },
    {
      "name": "Add Text/Images to PDF",
      "value": "Add Text/Images to PDF",
      "action": "Add Text/Images to PDF",
      "description": "Add text, images, and annotations to PDF documents with precise positioning and styling options"
    },
    {
      "name": "Fill a PDF Form",
      "value": "Fill a PDF Form",
      "action": "Fill a PDF Form",
      "description": "Fill interactive PDF forms with text, checkboxes, and other form elements"
    },
    {
      "name": "PDF Information & Form Fields",
      "value": "PDF Information & Form Fields",
      "action": "PDF Information & Form Fields",
      "description": "Extract metadata and form field information from PDF documents"
    },
    {
      "name": "Compress PDF",
      "value": "Compress PDF",
      "action": "Compress PDF",
      "description": "Reduce PDF file size while maintaining quality"
    },
    {
      "name": "PDF Security",
      "value": "PDF Security",
      "action": "PDF Security",
      "description": "Add or remove password protection and security features from PDF documents"
    },
    {
      "name": "Rotate PDF Pages",
      "value": "Rotate PDF Pages",
      "action": "Rotate PDF Pages",
      "description": "Rotate PDF pages manually or automatically detect and fix rotation based on text analysis"
    },
    {
      "name": "Delete PDF Pages",
      "value": "Delete PDF Pages",
      "action": "Delete PDF Pages",
      "description": "Remove specific pages from a PDF document"
    },
    {
      "name": "Search in PDF",
      "value": "Search in PDF",
      "action": "Search in PDF",
      "description": "Search for specific text within PDF documents or scanned images"
    },
    {
      "name": "Search & Replace Text or Delete",
      "value": "Search & Replace Text or Delete",
      "description": "Search and delete text, replace text, or replace text with images in PDF documents"
    },
    {
      "name": "Barcode Reader",
      "value": "Barcode Reader",
      "description": "Decode barcodes from images or PDF documents swiftly and accurately"
    },
    {
      "name": "Barcode Generator",
      "value": "Barcode Generator",
      "description": "Generate various types of barcodes including QR codes, Code 128, Code 39, and more"
    },
    {
      "name": "Make PDF Searchable or Unsearchable",
      "value": "Make PDF Searchable or Unsearchable",
      "description": "Convert scanned PDF or image files into text-searchable PDFs using OCR or make them unsearchable/scanned"
    },
    {
      "name": "Upload File",
      "value": "Upload File to PDF.co",
      "action": "Upload File to PDF.co",
      "description": "Upload a file to PDF.co and get a URL"
    }
  ]

npm_readme:
  # n8n-nodes-pdfco

  This is an n8n community node that enables you to integrate PDF.co's powerful PDF processing capabilities into your n8n workflows. PDF.co is a comprehensive PDF processing API that allows you to convert, merge, split, and manipulate PDF documents programmatically.

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

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

  ## Installation
  ### Community Nodes (Recommended)
  For users on n8n v0.187+, you can install this node directly from the n8n Community Nodes panel in the n8n editor:

  1. Open your n8n editor
  2. Go to Settings > Community Nodes
  3. Search for "n8n-nodes-pdfco"
  4. Click Install
  5. Reload the editor

  ### Manual Installation
  You can also install this node manually:

  1. Navigate to your n8n installation directory
  2. Run the following command:
  ```bash
  npm install n8n-nodes-pdfco
  ```
  3. Restart your n8n server


  ## Operations

  This node provides comprehensive PDF processing capabilities through PDF.co's API. Here are the available features:

  ### 1. AI-Powered Document Processing
  - AI Invoice Parser: Extract data from invoices using AI-powered parsing

  ### 2. URL/HTML to PDF Conversion
  - URL to PDF
  - HTML to PDF
  - HTML Template to PDF

  ### 3. PDF Merging
  - Merge multiple PDFs into one
  - Support for merging from different file formats (merge2)

  ### 4. PDF Splitting
  - Split by page number
  - Split by search text
  - Split by barcode

  ### 5. Document to PDF Conversion
  - Document to PDF (RTF, DOC, DOCX, TXT)
  - Spreadsheet to PDF (CSV, XLS, XLSX, TXT Spreadsheet)
  - Image to PDF (JPG, PNG, TIFF)
  - Email to PDF (MSG or EML)

  ### 6. PDF to Other Formats
  - PDF to CSV
  - PDF to HTML
  - PDF to Images (JPG, PNG, TIFF, WEBP)
  - PDF to JSON
  - PDF to Text
  - PDF to Excel (XLS/XLSX)
  - PDF to XML

  ### 7. PDF Modification
  - Add text annotations
  - Add images to PDF documents
  - Fill interactive PDF forms with data
  - Extract PDF metadata
  - Get form field information

  ### 8. PDF Optimization
  - Compress PDF files
  - Optimize PDF for web or storage
  - Remove password protection
  - Add password protection
  - Rotate pages in PDF documents
  - Remove specific pages from PDF

  ### 9. PDF Search and Text Operations
  - Search for text within PDF documents
  - Search and delete text
  - Search and replace text
  - Search and replace with image

  ### 10. Barcode Operations
  - Extract barcode data from PDFs
  - Generate barcodes in PDFs

  ### 11. PDF OCR and Searchability
  - Make scanned PDF searchable (OCR)
  - Make searchable PDF unsearchable

  ### 12. File Management
  - Standard file upload
  - Create file URL from input text/content
  - Upload from Base64 encoded data

  ## Credentials

  To use this node, you need a PDF.co API key. Here's how to get started:

  1. Sign up for a PDF.co account at [https://pdf.co](https://pdf.co)
  2. Navigate to your dashboard and obtain your API key
  3. In n8n, add your PDF.co credentials by providing your API key

  ## Usage

  This node allows you to automate PDF processing tasks in your n8n workflows. Here are some common use cases:

  - Process invoices using AI-powered parsing
  - Automatically convert HTML reports to PDF
  - Merge multiple PDF documents into a single file
  - Extract text from PDF documents for data processing
  - Add watermarks to PDF documents
  - Compress PDF files to reduce size
  - Secure PDFs with password protection
  - Convert various document formats to PDF
  - Extract data from PDFs to other formats
  - Manage and modify PDF documents programmatically

  ### Example: Get PDF information from a public URL

  This example creates a simple workflow that reads metadata from a PDF file and returns the PDF.co result URL and extracted metadata.

  1. Add a **Manual Trigger** node.
  2. Add the **PDF.co API** node after the trigger.
  3. In the PDF.co node, configure:
     - **Authentication**: `API Key`
     - **Credential**: select your PDF.co API key credential
     - **Action**: `PDF Information & Form Fields`
     - **PDF URL**: `https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf`
     - **Extract Fillable Fields**: `false`
  4. Execute the workflow.

  The node sends the URL to PDF.co and returns a JSON item similar to:

  ```json
  {
    "url": "https://pdf-temp-files.s3.amazonaws.com/.../result.json",
    "body": {
      "PageCount": 1,
      "Encrypted": false,
      "PasswordProtected": false,
      "Title": "Dummy PDF file"
    },
    "duration": 123
  }
  ```

  You can use the same pattern for other operations: choose the required **Action**, provide the source file URL or uploaded file URL, then pass the returned JSON fields to the next n8n node.

  For detailed examples and workflow templates, visit our [documentation](https://docs.pdf.co).

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [PDF.co API Documentation](https://docs.pdf.co)
  * [PDF.co Pricing](https://app.pdf.co/subscriptions)

  ## Version history

  ### 1.0.0
  - Initial release with comprehensive PDF processing capabilities
  - Full integration with PDF.co API services
  - Support for all core PDF operations including conversion, merging, and modification

  ### 1.0.1
  - Enhanced documentation with improved installation and usage instructions

  ### 1.0.2
  - Improved code stability and performance
  - Enhanced error handling and response management

  ### 1.0.3
  - Improved code stability and performance

  ### 1.0.4
  - AI Invoice Parser: Added support for custom field extraction, enabling more flexible and tailored data parsing. 
  - Added user-friendly descriptions for all PDF.co modules to help users better understand each feature's capabilities

  ### 1.0.5
  - Search PDF/Convert From PDF: Added support for the Inline option, enabling direct file output
  - Barcode Generator: Resolved an issue affecting barcode generation functionality.
  - Updated description links to point to new dedicated documentation

  ### 1.0.6
  - AI Invoice Parser: Clearer field descriptions and helpful usage hints

  ### 1.0.7
  - Added n8n Connect support by moving the PDF.co API base URL into credentials, allowing n8n to inject a proxied base URL at runtime
  - Added a hidden credentials `baseUrl` field that defaults to `https://api.pdf.co`
  - Updated credential testing to use the credentials-provided base URL
  - Bumped the node `typeVersion` to 1.1 for fresh installs while preserving compatibility with existing typeVersion 1 nodes

  ### 1.0.8
  - Fixed n8n verification metadata

  ### 1.0.9
  - Added PDF.co OAuth2 authentication support alongside the existing API key authentication
  - Registered the OAuth2 credential type in the n8n package metadata
  - Removed the `preinstall` lifecycle script to avoid blocking n8n package verification with package-manager enforcement
  - Replaced deprecated `this.helpers.request()` calls with `this.helpers.httpRequest()`
  - Updated the node label from `PDF.co Api` to `PDF.co API`
  - Normalized Split PDF option descriptions to sentence case
  - Improved PDF.co job polling by using local polling delay instead of the `/v1/delay` API endpoint and adding a 30-minute timeout
  - Removed SSL certificate validation bypass from presigned upload requests

  ### 1.0.10
  - Updated PDF.co API requests to use n8n authenticated HTTP helpers instead of deprecated or manually authenticated request helpers
  - Replaced the deprecated OAuth2 request helper with `httpRequestWithAuthentication()` for OAuth user info lookups
  - Switched job polling delay to n8n-workflow's `sleep` utility to avoid restricted globals
  - Wrapped inline secondary download errors in `NodeApiError` so n8n shows node-aware error context
  - Added an end-to-end Usage example for the PDF Information & Form Fields operation
  - Simplified the API key credential field label

ai_documentation_summary:
  {"purpose":"This n8n community node integrates PDF.co's API to enable comprehensive PDF processing tasks including conversion, merging, splitting, data extraction, and document manipulation within automated workflows.","capabilities":["AI-powered invoice parsing and data extraction","Convert URLs, HTML, and various document formats to PDF","Merge multiple PDFs into a single document","Split PDFs by page number, search text, or barcode","Convert PDFs to CSV, HTML, images, JSON, text, Excel, and XML","Add text annotations and images to PDFs","Fill interactive PDF forms","Compress and optimize PDF files","Add or remove password protection","Rotate and delete specific pages"],"authentication":"API key required","commonUseCases":["Automated invoice data extraction","Converting HTML reports to PDF format","Consolidating multiple PDF documents","Extracting text from PDFs for database processing","Securing PDFs with password protection"],"limitations":["Requires a paid PDF.co API subscription","Limited to PDF.co's API rate limits and service availability"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-httpRequest","n8n-nodes-file"]}


node_type: @firefliesai/n8n-nodes-fireflies.fireflies
package_name: @firefliesai/n8n-nodes-fireflies
display_name: Fireflies
description: Interact with the Fireflies.ai API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: sudotong
author_github_url: https://github.com/firefliesai/n8n-nodes-fireflies.git
npm_package_name: @firefliesai/n8n-nodes-fireflies
npm_version: 2.2.0
community_fetched_at: 2026-07-14T14:40:33.135Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "transcript",
      "options": [
        {
          "name": "AI App",
          "value": "aiApp"
        },
        {
          "name": "AskFred",
          "value": "askfred"
        },
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Bite",
          "value": "bite"
        },
        {
          "name": "Channel",
          "value": "channel"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Meeting",
          "value": "meeting"
        },
        {
          "name": "Team Analytics",
          "value": "teamAnalytics"
        },
        {
          "name": "Transcript",
          "value": "transcript"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAIAppOutputs",
      "options": [
        {
          "name": "Get Outputs",
          "value": "getAIAppOutputs",
          "action": "Get outputs of an AI app",
          "description": "Retrieve AI app outputs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiApp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getThreads",
      "options": [
        {
          "name": "Continue Thread",
          "value": "continueThread",
          "action": "Continue an existing ask fred thread",
          "description": "Continue an existing conversation thread with a follow-up question"
        },
        {
          "name": "Create Thread",
          "value": "createThread",
          "action": "Create a new ask fred thread",
          "description": "Create a new conversation thread with a question about meetings"
        },
        {
          "name": "Delete Thread",
          "value": "deleteThread",
          "action": "Delete an ask fred thread",
          "description": "Delete a conversation thread and all its messages"
        },
        {
          "name": "Get Thread",
          "value": "getThread",
          "action": "Get an ask fred thread",
          "description": "Get a specific thread with all its messages"
        },
        {
          "name": "Get Threads",
          "value": "getThreads",
          "action": "Get ask fred threads",
          "description": "Get a list of all conversation threads"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "askfred"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadAudio",
      "options": [
        {
          "name": "Upload",
          "value": "uploadAudio",
          "action": "Upload audio",
          "description": "Upload an audio file for transcription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBites",
      "options": [
        {
          "name": "Create",
          "value": "createBite",
          "action": "Create a bite",
          "description": "Create a new bite clip from a transcript"
        },
        {
          "name": "Get",
          "value": "getBite",
          "action": "Get a bite",
          "description": "Get details of a specific bite"
        },
        {
          "name": "Get List",
          "value": "getBites",
          "action": "Get a list of bites",
          "description": "Get a list of bite clips"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bite"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getChannels",
      "options": [
        {
          "name": "Get",
          "value": "getChannel",
          "action": "Get a channel",
          "description": "Get details of a specific channel"
        },
        {
          "name": "Get List",
          "value": "getChannels",
          "action": "Get a list of channels",
          "description": "Get all channels in the workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channel"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContacts",
      "options": [
        {
          "name": "Get List",
          "value": "getContacts",
          "action": "Get a list of contacts",
          "description": "Get all contacts in the workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getActiveMeetings",
      "options": [
        {
          "name": "Add to Live Meeting",
          "value": "addToLiveMeeting",
          "action": "Add fred to a live meeting",
          "description": "Add the Fireflies bot to an active meeting"
        },
        {
          "name": "Get Active Meetings",
          "value": "getActiveMeetings",
          "action": "Get active meetings",
          "description": "Get a list of currently active meetings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "meeting"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTeamAnalytics",
      "options": [
        {
          "name": "Get Team Analytics",
          "value": "getTeamAnalytics",
          "action": "Get team analytics",
          "description": "Get analytics for the entire team. Requires admin privileges."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "teamAnalytics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTranscript",
      "options": [
        {
          "name": "Delete",
          "value": "deleteTranscript",
          "action": "Delete a transcript",
          "description": "Permanently delete a transcript"
        },
        {
          "name": "Get",
          "value": "getTranscript",
          "action": "Get a transcript",
          "description": "Get transcript details"
        },
        {
          "name": "Get Analytics",
          "value": "getTranscriptAnalytics",
          "action": "Get analytics of a transcript",
          "description": "Get analytics for a transcript"
        },
        {
          "name": "Get Audio URL",
          "value": "getTranscriptAudioUrl",
          "action": "Get audio URL of a transcript",
          "description": "Get the audio URL for a transcript"
        },
        {
          "name": "Get List",
          "value": "getTranscriptsList",
          "action": "Get a list of transcripts",
          "description": "Get a list of transcripts with optional filters"
        },
        {
          "name": "Get Summary",
          "value": "getTranscriptSummary",
          "action": "Get a summary of a transcript",
          "description": "Get a summary of a transcript"
        },
        {
          "name": "Get Video URL",
          "value": "getTranscriptVideoUrl",
          "action": "Get video URL of a transcript",
          "description": "Get the video URL for a transcript"
        },
        {
          "name": "Revoke Shared Access",
          "value": "revokeSharedMeetingAccess",
          "action": "Revoke shared meeting access",
          "description": "Revoke shared access to a meeting"
        },
        {
          "name": "Share",
          "value": "shareMeeting",
          "action": "Share a meeting",
          "description": "Share a meeting with other users"
        },
        {
          "name": "Update Channel",
          "value": "updateMeetingChannel",
          "action": "Update meeting channel",
          "description": "Move a meeting to a different channel"
        },
        {
          "name": "Update Privacy",
          "value": "updateMeetingPrivacy",
          "action": "Update meeting privacy",
          "description": "Change the privacy setting of a meeting"
        },
        {
          "name": "Update Title",
          "value": "updateMeetingTitle",
          "action": "Update meeting title",
          "description": "Update the title of a meeting"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transcript"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCurrentUser",
      "options": [
        {
          "name": "Get Current",
          "value": "getCurrentUser",
          "action": "Get current user",
          "description": "Get information about the current user"
        },
        {
          "name": "Get Groups",
          "value": "getUserGroups",
          "action": "Get user groups",
          "description": "Get a list of user groups in the workspace"
        },
        {
          "name": "Get List",
          "value": "getUsers",
          "action": "Get a list of users",
          "description": "Get a list of users"
        },
        {
          "name": "Set Role",
          "value": "setUserRole",
          "action": "Set user role",
          "description": "Change the role of a user in the workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Outputs",
      "value": "getAIAppOutputs",
      "action": "Get outputs of an AI app",
      "description": "Retrieve AI app outputs",
      "resource": "aiApp"
    },
    {
      "name": "Continue Thread",
      "value": "continueThread",
      "action": "Continue an existing ask fred thread",
      "description": "Continue an existing conversation thread with a follow-up question",
      "resource": "askfred"
    },
    {
      "name": "Create Thread",
      "value": "createThread",
      "action": "Create a new ask fred thread",
      "description": "Create a new conversation thread with a question about meetings",
      "resource": "askfred"
    },
    {
      "name": "Delete Thread",
      "value": "deleteThread",
      "action": "Delete an ask fred thread",
      "description": "Delete a conversation thread and all its messages",
      "resource": "askfred"
    },
    {
      "name": "Get Thread",
      "value": "getThread",
      "action": "Get an ask fred thread",
      "description": "Get a specific thread with all its messages",
      "resource": "askfred"
    },
    {
      "name": "Get Threads",
      "value": "getThreads",
      "action": "Get ask fred threads",
      "description": "Get a list of all conversation threads",
      "resource": "askfred"
    },
    {
      "name": "Upload",
      "value": "uploadAudio",
      "action": "Upload audio",
      "description": "Upload an audio file for transcription",
      "resource": "audio"
    },
    {
      "name": "Create",
      "value": "createBite",
      "action": "Create a bite",
      "description": "Create a new bite clip from a transcript",
      "resource": "bite"
    },
    {
      "name": "Get",
      "value": "getBite",
      "action": "Get a bite",
      "description": "Get details of a specific bite",
      "resource": "bite"
    },
    {
      "name": "Get List",
      "value": "getBites",
      "action": "Get a list of bites",
      "description": "Get a list of bite clips",
      "resource": "bite"
    },
    {
      "name": "Get",
      "value": "getChannel",
      "action": "Get a channel",
      "description": "Get details of a specific channel",
      "resource": "channel"
    },
    {
      "name": "Get List",
      "value": "getChannels",
      "action": "Get a list of channels",
      "description": "Get all channels in the workspace",
      "resource": "channel"
    },
    {
      "name": "Get List",
      "value": "getContacts",
      "action": "Get a list of contacts",
      "description": "Get all contacts in the workspace",
      "resource": "contact"
    },
    {
      "name": "Add to Live Meeting",
      "value": "addToLiveMeeting",
      "action": "Add fred to a live meeting",
      "description": "Add the Fireflies bot to an active meeting",
      "resource": "meeting"
    },
    {
      "name": "Get Active Meetings",
      "value": "getActiveMeetings",
      "action": "Get active meetings",
      "description": "Get a list of currently active meetings",
      "resource": "meeting"
    },
    {
      "name": "Get Team Analytics",
      "value": "getTeamAnalytics",
      "action": "Get team analytics",
      "description": "Get analytics for the entire team. Requires admin privileges.",
      "resource": "teamAnalytics"
    },
    {
      "name": "Delete",
      "value": "deleteTranscript",
      "action": "Delete a transcript",
      "description": "Permanently delete a transcript",
      "resource": "transcript"
    },
    {
      "name": "Get",
      "value": "getTranscript",
      "action": "Get a transcript",
      "description": "Get transcript details",
      "resource": "transcript"
    },
    {
      "name": "Get Analytics",
      "value": "getTranscriptAnalytics",
      "action": "Get analytics of a transcript",
      "description": "Get analytics for a transcript",
      "resource": "transcript"
    },
    {
      "name": "Get Audio URL",
      "value": "getTranscriptAudioUrl",
      "action": "Get audio URL of a transcript",
      "description": "Get the audio URL for a transcript",
      "resource": "transcript"
    },
    {
      "name": "Get List",
      "value": "getTranscriptsList",
      "action": "Get a list of transcripts",
      "description": "Get a list of transcripts with optional filters",
      "resource": "transcript"
    },
    {
      "name": "Get Summary",
      "value": "getTranscriptSummary",
      "action": "Get a summary of a transcript",
      "description": "Get a summary of a transcript",
      "resource": "transcript"
    },
    {
      "name": "Get Video URL",
      "value": "getTranscriptVideoUrl",
      "action": "Get video URL of a transcript",
      "description": "Get the video URL for a transcript",
      "resource": "transcript"
    },
    {
      "name": "Revoke Shared Access",
      "value": "revokeSharedMeetingAccess",
      "action": "Revoke shared meeting access",
      "description": "Revoke shared access to a meeting",
      "resource": "transcript"
    },
    {
      "name": "Share",
      "value": "shareMeeting",
      "action": "Share a meeting",
      "description": "Share a meeting with other users",
      "resource": "transcript"
    },
    {
      "name": "Update Channel",
      "value": "updateMeetingChannel",
      "action": "Update meeting channel",
      "description": "Move a meeting to a different channel",
      "resource": "transcript"
    },
    {
      "name": "Update Privacy",
      "value": "updateMeetingPrivacy",
      "action": "Update meeting privacy",
      "description": "Change the privacy setting of a meeting",
      "resource": "transcript"
    },
    {
      "name": "Update Title",
      "value": "updateMeetingTitle",
      "action": "Update meeting title",
      "description": "Update the title of a meeting",
      "resource": "transcript"
    },
    {
      "name": "Get Current",
      "value": "getCurrentUser",
      "action": "Get current user",
      "description": "Get information about the current user",
      "resource": "user"
    },
    {
      "name": "Get Groups",
      "value": "getUserGroups",
      "action": "Get user groups",
      "description": "Get a list of user groups in the workspace",
      "resource": "user"
    },
    {
      "name": "Get List",
      "value": "getUsers",
      "action": "Get a list of users",
      "description": "Get a list of users",
      "resource": "user"
    },
    {
      "name": "Set Role",
      "value": "setUserRole",
      "action": "Set user role",
      "description": "Change the role of a user in the workspace",
      "resource": "user"
    }
  ]

npm_readme:
  # n8n-nodes-fireflies

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

  Fireflies is an AI meeting assistant that automatically records, transcribes, and analyzes your meetings. It integrates with popular video conferencing platforms to help teams capture and search through important meeting content.

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

  [Installation](#installation)  
  [Operations](#operations)
  [Usage](#usage)
  [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

  The **Fireflies** node supports 10 resources and 32 operations via the [Fireflies.ai API](https://docs.fireflies.ai).

  ### AI App

  - **Get AI App Outputs** — retrieve results from AI apps installed in the workspace; optional filters: `appId`, `transcriptId`, `skip`, `limit`

  ### AskFred

  AskFred is Fireflies' AI assistant for querying your meetings in natural language.

  - **Get Threads** — list all AskFred conversation threads; optional filter: `transcriptId`
  - **Get Thread** — get a specific thread with all its messages
  - **Create Thread** — start a new conversation; supports meeting filters (`dateRange`, `participants`, `organizers`, `channels`, `transcriptIds`) and response options (`language`, `format`)
  - **Continue Thread** — add a follow-up question to an existing thread
  - **Delete Thread** — remove a thread and all its messages

  ### Audio

  - **Upload Audio** — upload an audio file for transcription; optional: `webhook`, `customLanguage`, `saveVideo`, `bypass_size_check`, `download_auth` (bearer/basic), `attendees`, `client_reference_id`

  ### Bite

  Bites are short video or audio clips created from a transcript.

  - **Get List** — list bite clips; optional filters: `mine`, `transcriptId`, `myTeam`, `limit`, `skip`
  - **Get** — get a specific bite by ID
  - **Create** — create a bite from a transcript; requires `transcriptId`, `startTime`, `endTime`; optional: `name`, `mediaType`, `privacies`

  ### Channel

  - **Get List** — list all channels in the workspace
  - **Get** — get a specific channel by ID

  ### Contact

  - **Get List** — list all contacts in the workspace

  ### Meeting

  - **Get Active Meetings** — list currently active/live meetings
  - **Add to Live Meeting** — add the Fireflies bot to an active meeting; requires `meetingLink`; optional: `title`, `meetingPassword`, `duration`, `language`

  ### Team Analytics

  - **Get Team Analytics** — get analytics for the entire team; requires admin privileges; optional: `startTime`, `endTime` (ISO date strings)

  ### Transcript

  - **Get** — get the full transcript by ID
  - **Get List** — list transcripts with optional filters: `limit`, `skip`, `title`, `fromDate`, `toDate`, `hostEmail`, `organizerEmail`, `participantEmail`, `userId`, `mine`, `keyword`, `scope`, `organizers`, `participants`, `channelId`
  - **Get Summary** — get the AI-generated summary for a transcript
  - **Get Analytics** — get analytics (sentiment, topics, engagement) for a transcript
  - **Get Audio URL** — get the audio download URL for a transcript
  - **Get Video URL** — get the video download URL for a transcript
  - **Delete** — permanently delete a transcript
  - **Share** — share a meeting with email addresses; optional: `expiresAt`
  - **Revoke Shared Access** — revoke shared access from specified email addresses
  - **Update Title** — update the meeting title
  - **Update Privacy** — change the privacy setting (`link` / `owner` / `participants` / `teammates` / `teammatesandparticipants`)
  - **Update Channel** — move a meeting to a different channel

  ### User

  - **Get Current User** — get the profile of the authenticated user
  - **Get List** — list all users in the workspace
  - **Get Groups** — list user groups; optional filter: `mine`
  - **Set Role** — change a user's role (`admin` / `user`); requires admin privileges

  ---

  ## Usage

  ### Fetching and Chaining Transcripts

  The **Get List** operation under Transcript retrieves a paginated list of meetings based on optional filters:

  - `hostEmail`, `organizerEmail`, `participantEmail`
  - `title`, `userId`, `mine`
  - `fromDate` / `toDate`
  - `keyword`, `scope`
  - `organizers`, `participants` (comma-separated)
  - `channelId`

  This is often the first step in a workflow. Iterate over the returned transcript IDs and pass them into:

  - **Get** — fetch the full transcript content
  - **Get Summary** — retrieve [summary](https://docs.fireflies.ai/schema/summary) and key takeaways
  - **Get Analytics** — access [analytics](https://docs.fireflies.ai/schema/analytics) like sentiment, topic extraction, and more

  These operations chain naturally for reporting, insights, or downstream automation.

  📘 For a full reference of transcript fields and response structure, see the [Fireflies Transcript Schema](https://docs.fireflies.ai/schema/transcript).

  ### Working with Bites

  Bites are short clips cut from a transcript. Use **Create** to clip a specific time range from a meeting by providing `transcriptId`, `startTime`, and `endTime`. You can set a `name`, choose `mediaType` (audio or video), and control visibility with `privacies`.

  Use **Get List** to browse existing bites, optionally filtering to your own clips (`mine`) or your team's (`myTeam`).

  ### Live Meetings

  Use **Get Active Meetings** to see which meetings are currently in progress. Once you have a meeting link, **Add to Live Meeting** sends the Fireflies bot to join and record it. You can pass an optional `title`, `meetingPassword`, expected `duration`, and transcription `language`.

  ### Team Analytics

  **Get Team Analytics** returns workspace-wide analytics and requires admin privileges. Pass `startTime` and `endTime` as ISO date strings to scope the report to a specific period.

  ## Credentials

  To use the Fireflies node, you need to authenticate with your Fireflies API key.

  1. Log in to your [Fireflies.ai](https://fireflies.ai) account
  2. Go to Settings > Developer Settings
  3. Generate or copy your existing API key
  4. Use this API key in your n8n credentials for the Fireflies node

  The node uses API Key authentication to securely connect to the Fireflies.ai API.

  ## Resources

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

  ## Version history

  ### 2.2.0

  - ✨ **New Resources**: Meeting, Channel, Bite, Contact, Team Analytics
  - 🆕 **New Operations**:
    - **Transcript**: `Delete`, `Share`, `Revoke Shared Access`, `Update Title`, `Update Privacy`, `Update Channel`
    - **User**: `Get Groups`, `Set Role`
    - **Meeting**: `Get Active Meetings`, `Add to Live Meeting`
    - **Channel**: `Get`, `Get List`
    - **Bite**: `Get`, `Get List`, `Create`
    - **Contact**: `Get List`
    - **Team Analytics**: `Get Team Analytics` (requires admin privileges)
  - 🔍 **Extended Filters**: `Get Transcripts List` now supports filtering by keyword, scope, organizers, participants, and channel ID
  - 🔧 **Audio Enhancements**: `Upload Audio` now supports `bypass_size_check` and `download_auth` (bearer/basic) for authenticated downloads

  ### 2.1.0

  - ✨ **New Resource**: Added AskFred resource for AI-powered meeting Q&A
  - 🆕 **New Operations**:
    - `Get Threads`: List all AskFred conversation threads
    - `Get Thread`: Retrieve a specific thread with all messages
    - `Create Thread`: Start a new conversation with AskFred
    - `Continue Thread`: Add follow-up questions to existing threads
    - `Delete Thread`: Remove threads and their messages
  - 🔍 **Meeting Filters**: Create Thread supports filtering by date range, participants, organizers, channels, and transcript IDs
  - 🌐 **Response Options**: Configurable response language and format mode (markdown/plaintext)

  ### 2.0.0

  - ✨ **New Operations**: Added `GetTranscriptVideoUrl` and `GetTranscriptAudioUrl` operations for direct media access
  - 🔧 **Enhanced Error Handling**: Comprehensive GraphQL error detection with detailed error codes and correlation IDs
  - 🏗️ **Architecture Improvements**: Implemented generic error handling system for consistent error responses across all operations
  - 📚 **Code Quality**: Refactored codebase for better maintainability and reduced duplication
  - ⚠️ **Breaking Changes**: Removed `audio_url` and `video_url` from `GetTranscript` operation due to GraphQL API's partial data response behavior

  ### 1.0.7

  - Fixed nodeParameter handling for all operations

  ### 1.0.6

  - Removed unsupported field from getAiAppOutput operation

  ### 1.0.5

  - Fixes bug in handling input data

  ### 1.0.4

  - Major refactor to separate code into resources and operations

  ### 1.0.3

  - Bump version due to inconsistent build

  ### 1.0.2

  - Refactored Fireflies Node implementation
  - Replaced axios with http helper
  - Added test for credentials

  ### 1.0.1

  - Fixed bugs in array responses

  ### 1.0.0

  - Added operations Get AI App Outputs, Get Meeting Analytics, Get Meeting Summary, Get Transcript, Get Transcripts List, Get Users, and Upload Audio
  - Initial release of the Fireflies.ai node for n8n

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Fireflies.ai API for recording, transcribing, and analyzing meetings from video conferencing platforms.","capabilities":["Retrieve AI app outputs and transcripts with filtering","Query meetings using AskFred natural language assistant","Upload audio files for transcription","Create and manage bite clips from transcripts","List and manage meeting channels","View and manage workspace contacts","Join and monitor live meetings","Access team-wide analytics (admin only)","Retrieve transcript summaries and detailed analytics","Download audio and video URLs from transcripts"],"authentication":"API Key required","commonUseCases":["Automated meeting summarization and reporting","Extracting action items from meeting transcripts","Creating bite-sized clips from long meetings","Monitoring active meetings in real-time","Generating team analytics and sentiment reports"],"limitations":["Team Analytics and user role management require admin privileges","Some operations like transcript deletion are permanent","Live meeting joining requires a valid meeting link"],"relatedNodes":["HTTP Request","Code","Split In Batches","Wait Until"]}


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

updated_at: 2026-07-14 14:40:33
author_name: joff
author_github_url: https://github.com/joffcom/
npm_package_name: n8n-nodes-hookdeck
npm_version: 1.0.1
community_fetched_at: 2026-07-14T14:40:33.136Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "attempts",
      "options": [
        {
          "name": "Attempts",
          "value": "attempts"
        },
        {
          "name": "Events",
          "value": "events"
        },
        {
          "name": "Issues",
          "value": "issues"
        },
        {
          "name": "Requests",
          "value": "requests"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an attempt",
          "routing": {
            "request": {
              "url": "={{\"/attempts/\" + $parameter.attemptId }}",
              "method": "GET"
            }
          },
          "description": "Get an attempt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "attempts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an event",
          "routing": {
            "request": {
              "url": "={{\"/events/\" + $parameter.eventId }}",
              "method": "GET"
            }
          },
          "description": "Get an event"
        },
        {
          "name": "Mute",
          "value": "mute",
          "action": "Mute an event",
          "routing": {
            "request": {
              "url": "={{\"/events/\" + $parameter.eventId + \"/mute\" }}",
              "method": "PUT"
            }
          },
          "description": "Mute an event"
        },
        {
          "name": "Retry",
          "value": "retry",
          "action": "Retry an event",
          "routing": {
            "request": {
              "url": "={{\"/events/\" + $parameter.eventId + \"/retry\" }}",
              "method": "POST"
            }
          },
          "description": "Retry an event"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "events"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Dismiss",
          "value": "dismiss",
          "action": "Dismiss an issue",
          "routing": {
            "request": {
              "url": "={{\"/issues/\" + $parameter.issueId }}",
              "method": "DELETE"
            }
          },
          "description": "Dismiss an issue"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an issue",
          "routing": {
            "request": {
              "url": "={{\"/issues/\" + $parameter.issueId }}",
              "method": "GET"
            }
          },
          "description": "Get an issue"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an issue",
          "routing": {
            "request": {
              "url": "={{\"/issues/\" + $parameter.issueId }}",
              "method": "PUT"
            }
          },
          "description": "Update an issue"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "issues"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a request",
          "routing": {
            "request": {
              "url": "={{\"/requests/\" + $parameter.requestId }}",
              "method": "GET"
            }
          },
          "description": "Get a request"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "requests"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an attempt",
      "routing": {
        "request": {
          "url": "={{\"/attempts/\" + $parameter.attemptId }}",
          "method": "GET"
        }
      },
      "description": "Get an attempt",
      "resource": "attempts"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an event",
      "routing": {
        "request": {
          "url": "={{\"/events/\" + $parameter.eventId }}",
          "method": "GET"
        }
      },
      "description": "Get an event",
      "resource": "events"
    },
    {
      "name": "Mute",
      "value": "mute",
      "action": "Mute an event",
      "routing": {
        "request": {
          "url": "={{\"/events/\" + $parameter.eventId + \"/mute\" }}",
          "method": "PUT"
        }
      },
      "description": "Mute an event",
      "resource": "events"
    },
    {
      "name": "Retry",
      "value": "retry",
      "action": "Retry an event",
      "routing": {
        "request": {
          "url": "={{\"/events/\" + $parameter.eventId + \"/retry\" }}",
          "method": "POST"
        }
      },
      "description": "Retry an event",
      "resource": "events"
    },
    {
      "name": "Dismiss",
      "value": "dismiss",
      "action": "Dismiss an issue",
      "routing": {
        "request": {
          "url": "={{\"/issues/\" + $parameter.issueId }}",
          "method": "DELETE"
        }
      },
      "description": "Dismiss an issue",
      "resource": "issues"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an issue",
      "routing": {
        "request": {
          "url": "={{\"/issues/\" + $parameter.issueId }}",
          "method": "GET"
        }
      },
      "description": "Get an issue",
      "resource": "issues"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an issue",
      "routing": {
        "request": {
          "url": "={{\"/issues/\" + $parameter.issueId }}",
          "method": "PUT"
        }
      },
      "description": "Update an issue",
      "resource": "issues"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a request",
      "routing": {
        "request": {
          "url": "={{\"/requests/\" + $parameter.requestId }}",
          "method": "GET"
        }
      },
      "description": "Get a request",
      "resource": "requests"
    }
  ]

npm_readme:
  # n8n-nodes-hookdeck

  This is an n8n community node. It lets you use the hookdeck api in your n8n workflows.

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

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

  - Attempts
  	- Get
  - Events
  	- Get
  	- Mute
  	- Retry
  - Issues
  	- Dismiss
  	- Get
  	- Update
  - Requests
  	- Get

  ## Resources

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

  ## Version history

  0.1.0 - Initial Release

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Hookdeck API to manage webhooks, events, issues, and requests within automated workflows.","capabilities":["Get webhook attempts","Get webhook events","Mute webhook events","Retry webhook events","Dismiss issues","Get issues","Update issues","Get webhook requests"],"authentication":"API key required (standard for Hookdeck integration)","commonUseCases":["Automating webhook event management in n8n","Handling webhook retry logic","Managing issue tracking via webhooks","Monitoring webhook attempts and requests"],"limitations":["Community node (not official n8n node)","Requires external Hookdeck API access"],"relatedNodes":["HTTP Request","Webhook","Generic Code"]}


