# nodes

node_type: @seclore/n8n-nodes-seclore.secloreProtect
package_name: @seclore/n8n-nodes-seclore
display_name: Seclore
description: Protect files using Seclore DRM
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: seclore_admin
author_github_url: https://github.com/seclore-tech/n8n-nodes-seclore.git
npm_package_name: @seclore/n8n-nodes-seclore
npm_version: 1.0.8
community_fetched_at: 2026-04-16T09:43:36.214Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "drmProtection",
      "options": [
        {
          "name": "DRM Protection",
          "value": "drmProtection",
          "description": "DRM file protection operations"
        },
        {
          "name": "DRM Unprotection",
          "value": "drmUnprotection",
          "description": "DRM file unprotection operations"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "protectWithHotFolder",
      "options": [
        {
          "name": "Protect Using Policy",
          "value": "protectWithHotFolder",
          "action": "Protect file using policy",
          "description": "Protect a file using HotFolder ID configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "drmProtection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "unprotect",
      "options": [
        {
          "name": "Unprotect",
          "value": "unprotect",
          "action": "Unprotect file",
          "description": "Unprotect a protected file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "drmUnprotection"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Protect Using Policy",
      "value": "protectWithHotFolder",
      "action": "Protect file using policy",
      "description": "Protect a file using HotFolder ID configuration",
      "resource": "drmProtection"
    },
    {
      "name": "Unprotect",
      "value": "unprotect",
      "action": "Unprotect file",
      "description": "Unprotect a protected file",
      "resource": "drmUnprotection"
    }
  ]

npm_readme:
  # n8n-nodes-seclore

  This is an n8n community node. It lets you use Seclore DRM Server in your n8n workflows.

  [Seclore](https://www.seclore.com) is a leading data-centric security platform that provides enterprise-grade Digital Rights Management (DRM) capabilities to protect sensitive files and documents throughout their lifecycle.

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

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

  ## Installation

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

  Use `n8n-nodes-seclore` as the package name.

  ## Operations

  This node supports the following operations with Seclore DRM Server:

  ### DRM Protection
  #### Protect using Policy
  - **Description**: Protects files using Seclore's HotFolder ID configuration and policy-based protection
  - **Required Parameters**:
    - **HotFolder ID**: The ID of the HotFolder configuration to use for protection
    - **Input Binary Property**: Name of the binary property containing the file to protect (default: 'data')
  - **Output**: Protected file with DRM protection applied according to the specified policy


  ### DRM Unprotection
  #### Unprotect
  - **Description**: Removes DRM protection from Seclore-protected files
  - **Required Parameters**:
    - **Input Binary Property**: Name of the binary property containing the protected file (default: 'data')
  - **Output**: Unprotected original file content


  ## Credentials

  To use this node, you need to authenticate with your Seclore DRM Server. The following credentials are required:

  ### Prerequisites
  - Access to a Seclore DRM Server instance
  - Valid tenant credentials (Tenant ID and Tenant Secret)
  - Appropriate permissions for file protection/unprotection operations

  ### Authentication Setup
  1. **Base URL**: The base URL of your Seclore DRM Server (e.g., `https://api.seclore.com`)
  2. **Tenant ID**: Your unique Seclore tenant identifier
  3. **Tenant Secret**: Your tenant's secret key for API authentication

  ### Configuration Steps
  1. In n8n, go to **Credentials** → **Create New**
  2. Search for "Seclore API" and select it
  3. Fill in your Seclore DRM Server details:
     - **Base URL**: Enter your Seclore DRM Server base URL
     - **Tenant ID**: Provide your unique tenant identifier
     - **Tenant Secret**: Enter your tenant's secret key (will be masked for security)
  4. Test the connection to ensure credentials are valid (tests against `/seclore/drm/1.0/auth/login` endpoint)
  5. Save the credentials for use in your workflows

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with n8n versions**: 1.0.0+
  - **Node.js version**: 18.x or higher
  - **Seclore API version**: Compatible with Seclore DRM API v1.0

  ## Usage

  ### Basic Workflow Examples

  #### Protecting Files with Policy
  1. Use a trigger node to receive files (HTTP Request, File Trigger, etc.)
  2. Add the **Seclore** node to your workflow
  3. Configure the node:
     - **Resource**: Select "DRM Protection"
     - **Operation**: Select "Protect using Policy"
     - **HotFolder ID**: Enter your HotFolder configuration ID
     - **Input Binary Property**: Specify the binary property name (default: 'data')
  4. Configure your Seclore API credentials
  5. The node will return the protected file with DRM encryption applied according to your policy

  #### Unprotecting Files
  1. Receive protected Seclore files in your workflow
  2. Add the **Seclore** node to your workflow
  3. Configure the node:
     - **Resource**: Select "DRM Unprotection"
     - **Operation**: Select "Unprotect"
     - **Input Binary Property**: Specify the binary property containing the protected file (default: 'data')
  4. Configure your Seclore API credentials
  5. The node will return the original unprotected file content

  ### Important Notes
  - Ensure your Seclore DRM Server is accessible from your n8n instance
  - File operations may take time depending on file size and server performance
  - Always handle errors appropriately in your workflows
  - Protected files can only be unprotected by authorized users with proper credentials
  - HotFolder ID must be configured in your Seclore Policy Server before using protection operations
  - The node supports binary data processing for both input and output files

  ### Error Handling
  The node includes comprehensive error handling and logging:
  - Connection failures to Seclore server
  - Authentication errors
  - File processing errors
  - Automatic cleanup of temporary files

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Seclore Official Documentation](https://docs.seclore.com/)
  * [Seclore Support](https://support.seclore.com/)

  ## License

  Refer the [LICENSE.md](LICENSE.md) file for details.

  ## Support

  For issues related to this n8n node:
  - Create an issue in this repository
  - Contact: support@seclore.com

  For Seclore platform support:
  - Visit [Seclore Support Portal](https://support.seclore.com/)
  - Check [Seclore Documentation](https://docs.seclore.com/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables protection and unprotection of files using Seclore DRM Server, allowing secure handling of sensitive documents within automated workflows.","capabilities":["Protect files using Seclore DRM with policy-based HotFolder configuration","Unprotect files to retrieve original content from Seclore-protected files","Process binary data for input and output files","Authenticate with Seclore DRM Server via Base URL, Tenant ID, and Tenant Secret","Handle errors including connection failures, authentication errors, and file processing issues"],"authentication":"API key required (Tenant ID and Tenant Secret)","commonUseCases":["Securing sensitive documents in automated workflows","Protecting files before distribution or storage","Removing DRM restrictions from previously protected files","Integrating with file-based triggers or HTTP requests for secure file handling"],"limitations":["Requires access to a Seclore DRM Server instance","HotFolder ID must be pre-configured in the Seclore Policy Server","Protected files can only be unprotected by authorized users with proper credentials","File operations may experience latency based on file size and server performance","Requires n8n version 1.0.0+ and Node.js 18.x or higher"],"relatedNodes":["HTTP Request","File Trigger","Binary File"]}


node_type: @hasdata/n8n-nodes-hasdata.hasData
package_name: @hasdata/n8n-nodes-hasdata
display_name: HasData
description: Scrape data from various websites
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: rmilyushkevich
author_github_url: https://github.com/hasdata/n8n-nodes-hasdata.git
npm_package_name: @hasdata/n8n-nodes-hasdata
npm_version: 1.0.2
community_fetched_at: 2026-04-16T09:43:36.215Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "google_serp",
      "options": [
        {
          "name": "Google SERP",
          "value": "google_serp"
        },
        {
          "name": "Google Map",
          "value": "google_maps"
        },
        {
          "name": "Zillow",
          "value": "zillow"
        },
        {
          "name": "Amazon",
          "value": "amazon"
        },
        {
          "name": "Yellow Page",
          "value": "yellowpages"
        },
        {
          "name": "Web Scraping",
          "value": "web_scraping"
        },
        {
          "name": "Glassdoor",
          "value": "glassdoor"
        },
        {
          "name": "Indeed",
          "value": "indeed"
        },
        {
          "name": "Instagram",
          "value": "instagram"
        },
        {
          "name": "Airbnb",
          "value": "airbnb"
        },
        {
          "name": "Google Image",
          "value": "google_images"
        },
        {
          "name": "Google Travel",
          "value": "google_travel"
        },
        {
          "name": "Google Trend",
          "value": "google_trends"
        },
        {
          "name": "Shopify",
          "value": "shopify"
        },
        {
          "name": "Redfin",
          "value": "redfin"
        },
        {
          "name": "Yelp",
          "value": "yelp"
        },
        {
          "name": "Bing",
          "value": "bing"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "serp",
      "options": [
        {
          "name": "Get Google Search Results",
          "value": "serp",
          "action": "Get Google Search Results",
          "description": "Retrieves structured Google search results for specified search terms and parameters."
        },
        {
          "name": "Get Google Light Search Results",
          "value": "serp_light",
          "action": "Get Google Light Search Results",
          "description": "Retrieves structured Google search results for specified search terms and parameters."
        },
        {
          "name": "Get Shopping Search Results",
          "value": "shopping",
          "action": "Get Shopping Search Results",
          "description": "Retrieves structured Google Shopping results for specified search terms and parameters."
        },
        {
          "name": "Get Google News Results",
          "value": "news",
          "action": "Get Google News Results",
          "description": "Returns structured Google News results based on query, topic, publisher, or story tokens."
        },
        {
          "name": "Get Short Videos Search Results",
          "value": "short_videos",
          "action": "Get Short Videos Search Results",
          "description": "Retrieves structured Google short videos search results based on specified search terms and advanced filters."
        },
        {
          "name": "Get Google Events Results",
          "value": "events",
          "action": "Get Google Events Results",
          "description": "Retrieves information about events from Google based on specified search terms, locations, and filters."
        },
        {
          "name": "Get AI Mode SERP Results",
          "value": "ai_mode",
          "action": "Get AI Mode SERP Results",
          "description": "Retrieves structured Google AI Mode response for specified search terms and parameters."
        },
        {
          "name": "Get AI Overview Results",
          "value": "ai_overview",
          "action": "Get AI Overview Results",
          "description": "Retrieves AI Overview result using a pageToken from Google SERP API."
        },
        {
          "name": "Get Immersive Product Information",
          "value": "immersive_product",
          "action": "Get Immersive Product Information",
          "description": "Retrieves information about immersive product from Google based on page token."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "google_serp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get Google Maps Search Results",
          "value": "search",
          "action": "Get Google Maps Search Results",
          "description": "Allows users to search for specific locations on Google Maps using various criteria such as keyword, coordinates, and filters."
        },
        {
          "name": "Get Map Reviews",
          "value": "reviews",
          "action": "Get Map Reviews",
          "description": "Retrieves reviews from Google Maps based on specified parameters such as data ID, language, and sorting options."
        },
        {
          "name": "Get Place Details",
          "value": "place",
          "action": "Get Place Details",
          "description": "Fetches detailed information about a specific place using the unique Google Maps `placeId`. Optional parameters allow setting the domain and language."
        },
        {
          "name": "Get Place Photos",
          "value": "photos",
          "action": "Get Place Photos",
          "description": "Retrieves photos from Google Maps using dataId or placeId with optional filters."
        },
        {
          "name": "Get Map Contributor Reviews",
          "value": "contributor_reviews",
          "action": "Get Map Contributor Reviews",
          "description": "Retrieves reviews from Google Maps user based on specified parameters such as contributor ID."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "google_maps"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listing",
      "options": [
        {
          "name": "Get Zillow Real Estate Listings",
          "value": "listing",
          "action": "Get Zillow Real Estate Listings",
          "description": "Retrieves real estate listings from Zillow based on various search parameters."
        },
        {
          "name": "Get Zillow Property Details",
          "value": "property",
          "action": "Get Zillow Property Details",
          "description": "Retrieves detailed information about a specific property from Zillow using the property's URL."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "zillow"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "product",
      "options": [
        {
          "name": "Get Amazon Product Details",
          "value": "product",
          "action": "Get Amazon Product Details",
          "description": "Retrieves product details from Amazon based on the specified ASIN and domain."
        },
        {
          "name": "Get Amazon Search Results",
          "value": "search",
          "action": "Get Amazon Search Results",
          "description": "Retrieves search results from Amazon based on the specified query and domain."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "amazon"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listing",
      "options": [
        {
          "name": "Get Airbnb Listings",
          "value": "listing",
          "action": "Get Airbnb Listings",
          "description": "Retrieves Airbnb listings based on location and check-in/check-out dates."
        },
        {
          "name": "Get Airbnb Property Details",
          "value": "property",
          "action": "Get Airbnb Property Details",
          "description": "Retrieves detailed information about a specific Airbnb listing using the listing's URL."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "airbnb"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "job",
      "options": [
        {
          "name": "Get GlassDoor Job Details",
          "value": "job",
          "action": "Get GlassDoor Job Details",
          "description": "Retrieves detailed information about a specific job listing based on the provided vacancy URL."
        },
        {
          "name": "Get GlassDoor Job Listings",
          "value": "listing",
          "action": "Get GlassDoor Job Listings",
          "description": "Retrieves job listings from Glassdoor based on various search parameters."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "glassdoor"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "web_scraping",
      "options": [
        {
          "name": "Scrape Web Page",
          "value": "web_scraping",
          "action": "Scrape Web Page",
          "description": "Send a web page URL to scrape along with various optional parameters to customize the scraping process.\n"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "web_scraping"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "place",
      "options": [
        {
          "name": "Get Yellow Pages Place Details",
          "value": "place",
          "action": "Get Yellow Pages Place Details",
          "description": "Retrieves detailed information about a specific place from YellowPages."
        },
        {
          "name": "Get YellowPages Search Results",
          "value": "search",
          "action": "Get YellowPages Search Results",
          "description": "Retrieves search results from YellowPages based on the specified keyword and location."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "yellowpages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "place",
      "options": [
        {
          "name": "Get Yelp Place Details",
          "value": "place",
          "action": "Get Yelp Place Details",
          "description": "Retrieves detailed information about a specific place from Yelp using the place's Yelp ID or Yelp Alias."
        },
        {
          "name": "Get Yelp Search Results",
          "value": "search",
          "action": "Get Yelp Search Results",
          "description": "Retrieves search results from Yelp based on the specified keyword and location."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "yelp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "profile",
      "options": [
        {
          "name": "Get Instagram Profile",
          "value": "profile",
          "action": "Get Instagram Profile",
          "description": "Retrieves public profile details for a specific Instagram account using its handle."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "instagram"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "images",
      "options": [
        {
          "name": "Get Image Search Results",
          "value": "images",
          "action": "Get Image Search Results",
          "description": "Retrieves structured Google image search results based on specified search terms and advanced filters."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "google_images"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "flights",
      "options": [
        {
          "name": "Get Google Flights Results",
          "value": "flights",
          "action": "Get Google Flights Results",
          "description": "Retrieves structured flight results from Google's flight search based on the provided parameters. Supports multiple flight types, advanced filters, and localization settings.\n"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "google_travel"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get Google Trends Data",
          "value": "search",
          "action": "Get Google Trends Data",
          "description": "Retrieves Google Trends data for specified search terms and parameters."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "google_trends"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "job",
      "options": [
        {
          "name": "Get Indeed Job Details",
          "value": "job",
          "action": "Get Indeed Job Details",
          "description": "Retrieves detailed information about a specific job listing based on the provided vacancy URL."
        },
        {
          "name": "Get Indeed Job Listings",
          "value": "listing",
          "action": "Get Indeed Job Listings",
          "description": "Retrieves job listings from Indeed based on various search parameters."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "indeed"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listing",
      "options": [
        {
          "name": "Get Redfin Real Estate Listings",
          "value": "listing",
          "action": "Get Redfin Real Estate Listings",
          "description": "Retrieves real estate listings from Redfin based on various search parameters."
        },
        {
          "name": "Get Redfin Property Details",
          "value": "property",
          "action": "Get Redfin Property Details",
          "description": "Retrieves detailed information about a specific property from Redfin using the property's URL."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "redfin"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "collections",
      "options": [
        {
          "name": "Get Shopify Store Collections",
          "value": "collections",
          "action": "Get Shopify Store Collections",
          "description": "Retrieves a list of collections along with their details from a Shopify store."
        },
        {
          "name": "Get Shopify Store Products",
          "value": "products",
          "action": "Get Shopify Store Products",
          "description": "Retrieves product information from a Shopify store with optional limits and collection filtering."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "shopify"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "serp",
      "options": [
        {
          "name": "Get Bing Search Results",
          "value": "serp",
          "action": "Get Bing Search Results",
          "description": "Retrieves structured Bing search results for specified search terms and parameters."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bing"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Google Search Results",
      "value": "serp",
      "action": "Get Google Search Results",
      "description": "Retrieves structured Google search results for specified search terms and parameters.",
      "resource": "google_serp"
    },
    {
      "name": "Get Google Light Search Results",
      "value": "serp_light",
      "action": "Get Google Light Search Results",
      "description": "Retrieves structured Google search results for specified search terms and parameters.",
      "resource": "google_serp"
    },
    {
      "name": "Get Shopping Search Results",
      "value": "shopping",
      "action": "Get Shopping Search Results",
      "description": "Retrieves structured Google Shopping results for specified search terms and parameters.",
      "resource": "google_serp"
    },
    {
      "name": "Get Google News Results",
      "value": "news",
      "action": "Get Google News Results",
      "description": "Returns structured Google News results based on query, topic, publisher, or story tokens.",
      "resource": "google_serp"
    },
    {
      "name": "Get Short Videos Search Results",
      "value": "short_videos",
      "action": "Get Short Videos Search Results",
      "description": "Retrieves structured Google short videos search results based on specified search terms and advanced filters.",
      "resource": "google_serp"
    },
    {
      "name": "Get Google Events Results",
      "value": "events",
      "action": "Get Google Events Results",
      "description": "Retrieves information about events from Google based on specified search terms, locations, and filters.",
      "resource": "google_serp"
    },
    {
      "name": "Get AI Mode SERP Results",
      "value": "ai_mode",
      "action": "Get AI Mode SERP Results",
      "description": "Retrieves structured Google AI Mode response for specified search terms and parameters.",
      "resource": "google_serp"
    },
    {
      "name": "Get AI Overview Results",
      "value": "ai_overview",
      "action": "Get AI Overview Results",
      "description": "Retrieves AI Overview result using a pageToken from Google SERP API.",
      "resource": "google_serp"
    },
    {
      "name": "Get Immersive Product Information",
      "value": "immersive_product",
      "action": "Get Immersive Product Information",
      "description": "Retrieves information about immersive product from Google based on page token.",
      "resource": "google_serp"
    },
    {
      "name": "Get Google Maps Search Results",
      "value": "search",
      "action": "Get Google Maps Search Results",
      "description": "Allows users to search for specific locations on Google Maps using various criteria such as keyword, coordinates, and filters.",
      "resource": "google_maps"
    },
    {
      "name": "Get Map Reviews",
      "value": "reviews",
      "action": "Get Map Reviews",
      "description": "Retrieves reviews from Google Maps based on specified parameters such as data ID, language, and sorting options.",
      "resource": "google_maps"
    },
    {
      "name": "Get Place Details",
      "value": "place",
      "action": "Get Place Details",
      "description": "Fetches detailed information about a specific place using the unique Google Maps `placeId`. Optional parameters allow setting the domain and language.",
      "resource": "google_maps"
    },
    {
      "name": "Get Place Photos",
      "value": "photos",
      "action": "Get Place Photos",
      "description": "Retrieves photos from Google Maps using dataId or placeId with optional filters.",
      "resource": "google_maps"
    },
    {
      "name": "Get Map Contributor Reviews",
      "value": "contributor_reviews",
      "action": "Get Map Contributor Reviews",
      "description": "Retrieves reviews from Google Maps user based on specified parameters such as contributor ID.",
      "resource": "google_maps"
    },
    {
      "name": "Get Zillow Real Estate Listings",
      "value": "listing",
      "action": "Get Zillow Real Estate Listings",
      "description": "Retrieves real estate listings from Zillow based on various search parameters.",
      "resource": "zillow"
    },
    {
      "name": "Get Zillow Property Details",
      "value": "property",
      "action": "Get Zillow Property Details",
      "description": "Retrieves detailed information about a specific property from Zillow using the property's URL.",
      "resource": "zillow"
    },
    {
      "name": "Get Amazon Product Details",
      "value": "product",
      "action": "Get Amazon Product Details",
      "description": "Retrieves product details from Amazon based on the specified ASIN and domain.",
      "resource": "amazon"
    },
    {
      "name": "Get Amazon Search Results",
      "value": "search",
      "action": "Get Amazon Search Results",
      "description": "Retrieves search results from Amazon based on the specified query and domain.",
      "resource": "amazon"
    },
    {
      "name": "Get Airbnb Listings",
      "value": "listing",
      "action": "Get Airbnb Listings",
      "description": "Retrieves Airbnb listings based on location and check-in/check-out dates.",
      "resource": "airbnb"
    },
    {
      "name": "Get Airbnb Property Details",
      "value": "property",
      "action": "Get Airbnb Property Details",
      "description": "Retrieves detailed information about a specific Airbnb listing using the listing's URL.",
      "resource": "airbnb"
    },
    {
      "name": "Get GlassDoor Job Details",
      "value": "job",
      "action": "Get GlassDoor Job Details",
      "description": "Retrieves detailed information about a specific job listing based on the provided vacancy URL.",
      "resource": "glassdoor"
    },
    {
      "name": "Get GlassDoor Job Listings",
      "value": "listing",
      "action": "Get GlassDoor Job Listings",
      "description": "Retrieves job listings from Glassdoor based on various search parameters.",
      "resource": "glassdoor"
    },
    {
      "name": "Scrape Web Page",
      "value": "web_scraping",
      "action": "Scrape Web Page",
      "description": "Send a web page URL to scrape along with various optional parameters to customize the scraping process.\n",
      "resource": "web_scraping"
    },
    {
      "name": "Get Yellow Pages Place Details",
      "value": "place",
      "action": "Get Yellow Pages Place Details",
      "description": "Retrieves detailed information about a specific place from YellowPages.",
      "resource": "yellowpages"
    },
    {
      "name": "Get YellowPages Search Results",
      "value": "search",
      "action": "Get YellowPages Search Results",
      "description": "Retrieves search results from YellowPages based on the specified keyword and location.",
      "resource": "yellowpages"
    },
    {
      "name": "Get Yelp Place Details",
      "value": "place",
      "action": "Get Yelp Place Details",
      "description": "Retrieves detailed information about a specific place from Yelp using the place's Yelp ID or Yelp Alias.",
      "resource": "yelp"
    },
    {
      "name": "Get Yelp Search Results",
      "value": "search",
      "action": "Get Yelp Search Results",
      "description": "Retrieves search results from Yelp based on the specified keyword and location.",
      "resource": "yelp"
    },
    {
      "name": "Get Instagram Profile",
      "value": "profile",
      "action": "Get Instagram Profile",
      "description": "Retrieves public profile details for a specific Instagram account using its handle.",
      "resource": "instagram"
    },
    {
      "name": "Get Image Search Results",
      "value": "images",
      "action": "Get Image Search Results",
      "description": "Retrieves structured Google image search results based on specified search terms and advanced filters.",
      "resource": "google_images"
    },
    {
      "name": "Get Google Flights Results",
      "value": "flights",
      "action": "Get Google Flights Results",
      "description": "Retrieves structured flight results from Google's flight search based on the provided parameters. Supports multiple flight types, advanced filters, and localization settings.\n",
      "resource": "google_travel"
    },
    {
      "name": "Get Google Trends Data",
      "value": "search",
      "action": "Get Google Trends Data",
      "description": "Retrieves Google Trends data for specified search terms and parameters.",
      "resource": "google_trends"
    },
    {
      "name": "Get Indeed Job Details",
      "value": "job",
      "action": "Get Indeed Job Details",
      "description": "Retrieves detailed information about a specific job listing based on the provided vacancy URL.",
      "resource": "indeed"
    },
    {
      "name": "Get Indeed Job Listings",
      "value": "listing",
      "action": "Get Indeed Job Listings",
      "description": "Retrieves job listings from Indeed based on various search parameters.",
      "resource": "indeed"
    },
    {
      "name": "Get Redfin Real Estate Listings",
      "value": "listing",
      "action": "Get Redfin Real Estate Listings",
      "description": "Retrieves real estate listings from Redfin based on various search parameters.",
      "resource": "redfin"
    },
    {
      "name": "Get Redfin Property Details",
      "value": "property",
      "action": "Get Redfin Property Details",
      "description": "Retrieves detailed information about a specific property from Redfin using the property's URL.",
      "resource": "redfin"
    },
    {
      "name": "Get Shopify Store Collections",
      "value": "collections",
      "action": "Get Shopify Store Collections",
      "description": "Retrieves a list of collections along with their details from a Shopify store.",
      "resource": "shopify"
    },
    {
      "name": "Get Shopify Store Products",
      "value": "products",
      "action": "Get Shopify Store Products",
      "description": "Retrieves product information from a Shopify store with optional limits and collection filtering.",
      "resource": "shopify"
    },
    {
      "name": "Get Bing Search Results",
      "value": "serp",
      "action": "Get Bing Search Results",
      "description": "Retrieves structured Bing search results for specified search terms and parameters.",
      "resource": "bing"
    }
  ]

npm_readme:
  # n8n-nodes-hasdata

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

  HasData is a powerful web scraping API that provides access to various search engines and website data through easy-to-use endpoints. It handles proxies, browsers, and CAPTCHAs so you can focus on the data you need.

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

  ## Installation

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

  ## Operations

  This node supports a wide range of web scraping operations across various platforms:

  * **Google SERP**: Get search results, light results, shopping, news, short videos, events, AI mode, and AI overview.
  * **Google Maps**: Search for places, get place details, photos, reviews, and contributor reviews.
  * **Amazon**: Search products and get product details.
  * **Web Scraping**: Scrape any web page with customizable parameters (JS rendering, premium proxies, etc.).
  * **Social Media**: Instagram (profile).
  * **Real Estate**: Zillow, Redfin.
  * **Jobs**: Indeed, Glassdoor.
  * **Business Directories**: Yellow Pages, Yelp.
  * **E-commerce**: Shopify.
  * **Other**: Google Images, Google Travel, Google Trends, Bing Search, Airbnb.

  ## Credentials

  To use this node, you'll need a **HasData API Key**.

  1.  Sign up for an account at [HasData](https://hasdata.com).
  2.  Go to your [Dashboard](https://app.hasdata.com) to find your API Key.
  3.  In n8n, add a new credential of type **HasData API** and paste your key.

  ## Compatibility

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

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [HasData API Documentation](https://docs.hasdata.com)
  * [HasData Homepage](https://hasdata.com)


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

updated_at: 2026-04-16 09:43:36
author_name: genielaboratories
author_github_url: https://github.com/genielaboratories/
npm_package_name: n8n-nodes-clipboardgenie
npm_version: 0.1.7
community_fetched_at: 2026-04-16T09:43:36.216Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Integrate n8n with the ClipboardGenie app to send and receive clipboard data between your desktop and workflows.

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

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

npm_readme:
  ﻿# n8n-nodes-clipboardgenie

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

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


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


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

  ---

  ## Installation

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

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

  After installation, restart n8n to load the new node.

  ---

  ## Operations

  This node provides two resources:

  ### 🗂️ Resource: Item

  **Operation: Create Text Item**

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

  #### Parameters

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

  ---

  ### 🔔 Resource: Notification

  **Operation: Show**

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

  #### Parameters

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

  ---

  ## Credentials

  ### 🔑 API Key Authentication

  Clipboard Genie uses API key authentication for all n8n integrations.

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

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

  ---

  ## Compatibility

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

  ---

  ## Usage

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

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

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

  ---

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

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

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

  ---

  ## Resources

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

  ---

  ## Version history

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

  ---

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Clipboard Genie Windows app to send text items to pinboards and trigger desktop notifications from workflows.","capabilities":["Create text items in Clipboard Genie pinboards","Display items on the main board","Attach URLs, file paths, or commands to clipboard items","Trigger desktop notifications with custom titles and messages","Automatically close notifications after a delay"],"authentication":"None","commonUseCases":["Automatically save copied text to organized pinboards","Send workflow-generated links or files to the clipboard for quick access","Notify users of workflow completion via desktop alerts","Integrate clipboard management into automated desktop workflows"],"limitations":["Windows-only compatibility (requires Clipboard Genie desktop app)","Community-contributed node not maintained by n8n GmbH","Requires manual installation via npm"],"relatedNodes":[]}


node_type: n8n-nodes-zohozeptomail.zohoZeptomail
package_name: n8n-nodes-zohozeptomail
display_name: Zoho Zeptomail
description: Consume Zoho ZeptoMail API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: zohomail
author_github_url: https://github.com/zohomail/zoho_zeptomail_n8n.git
npm_package_name: n8n-nodes-zohozeptomail
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:36.217Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "required": true,
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendmail",
      "options": [
        {
          "name": "Send Mail",
          "value": "sendmail",
          "action": "Send Mail",
          "description": "This action will send an email."
        },
        {
          "name": "Send Template Mail",
          "value": "sendtemplatemail",
          "action": "Send Template Mail",
          "description": "Send custom Template Mail."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Mail",
      "value": "sendmail",
      "action": "Send Mail",
      "description": "This action will send an email.",
      "resource": "message"
    },
    {
      "name": "Send Template Mail",
      "value": "sendtemplatemail",
      "action": "Send Template Mail",
      "description": "Send custom Template Mail.",
      "resource": "message"
    }
  ]

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

  # ZeptoMail integration with N8N

  ## About ZeptoMail
  [ZeptoMail](https://www.zoho.com/zeptomail/) is a dedicated email service built specifically for user-triggered transactional emails. Businesses can integrated with ZeptoMail to deliver time sensitive emails like OTPs, password reset emails, welcome emails and more. The [N8N](https://n8n.io/) integration with ZeptoMail allows applications to create workflows to automatically send transactional emails for set triggers. 

  ## Pre-requisites

  - N8n admin account (https://app.n8n.cloud/login)
  - ZeptoMail account
  - Verified domain added to ZeptoMail

  ## Installation
  You can install the n8n ZeptoMail node through the npm package "n8n-nodes-zohozeptomail"
  - Follow the steps below to install:
     - Login to your npm account.
     - Navigate to the settings section.
     - In the community nodes section -> Install community node.
     - Enter the npm package name: n8n-nodes-zohozeptomail.
     - The node will be installed successfully.

  ## Configuration
  Once you install the package, you should integrate with n8n to start sending emails:
  - Login to your n8n account.
  - Click the down-arrow next to the <b>Create workflow</b> button and click Create credentials.
  - In the Add credentials dialogue box, choose the appropriate authorization and access token URL.
  - Go to the [Zoho developer console](https://api-console.zoho.com/) to generate a new client id and client secret. These parameters will connect ZeptoMail and n8n.
  - Click Get started if you do not have any new client. If you have an existing client, click Add client.
  - Select Server-based applications in the client type window.
  - Provide an appropriate client name, your domain value in the homepage URL field, and the redirect URL copied from the Add credentials dialog box.
  - Click Create to generate the client id and client secret.
  - Copy the generated values and paste them in the Add credentials dialog box.
  - The connection is established. You can now create workflows to send emails.

  ## Create workflows
  - Click the <b>Create workflow</b> button.
  - Select the appropriate trigger for which you wish to send emails.
  - Click the Action in App option and lookup ZeptoMail from the list.
  - Choose the type of action you wish to perform - send email, send template email.
  - You can test your configuration by selecting the Test workflow button.

ai_documentation_summary:
  {"purpose":"This n8n node enables the creation of automated workflows to send transactional emails (such as OTPs, password resets, and welcome emails) via the Zoho ZeptoMail API.","capabilities":["Send transactional emails","Send template emails","Integrate with Zoho ZeptoMail API","Automate time-sensitive email delivery"],"authentication":"OAuth2 via Zoho Developer Console (Client ID and Client Secret)","commonUseCases":["Automated OTP delivery","Password reset notifications","Welcome email automation","Invoice delivery"],"limitations":["Requires a verified domain added to ZeptoMail before use","Requires a separate ZeptoMail account"],"relatedNodes":["n8n-nodes-zoho.zoho","n8n-nodes-zoho.zohoEmail","n8n-nodes-zoho.zohoCRM"]}


node_type: n8n-nodes-kipps.kippsAiChatbot
package_name: n8n-nodes-kipps
display_name: Kipps.AI Chatbot
description: Interact with a Kipps.AI Chatbot to send and receive messages.
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: kipps.ai
author_github_url: https://github.com/KIPPS-AI/
npm_package_name: n8n-nodes-kipps
npm_version: 0.0.7
community_fetched_at: 2026-04-16T09:43:36.218Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n Nodes for Kipps.AI

  This repository contains n8n nodes for interacting with the Kipps.AI platform. These nodes allow you to integrate your Kipps.AI chatbots and voicebots into your n8n workflows.

  ## Nodes

  This package includes the following nodes:

  - **Kipps.AI Chatbot**: Interact with a Kipps.AI chatbot.
  - **Kipps.AI Voicebot**: Initiate, interact with, and end calls with a Kipps.AI voicebot.

  ## Installation

  ### Docker

  1.  **Clone this repository:**
      ```bash
      git clone https://github.com/KIPPS-AI/n8n-nodes-kipps.git
      ```
  2.  **Navigate to the cloned directory:**
      ```bash
      cd n8n-nodes-kipps
      ```
  3.  **Build the package:**

      ```bash
      npm install
      npm run build

      ```

  4.  **Run the Docker container:**

      ```bash
      docker run -it --rm -p 5678:5678 `
      -v "${env:USERPROFILE}\.n8n:/home/node/.n8n" `
      -v "${PWD}:/home/node/.n8n/custom" `  -e N8N_CUSTOM_EXTENSIONS_MODE=paths`
      -e N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom `
      n8nio/n8n
      ```

      On Linux/macOS, use:

      ```bash
      docker run -it --rm -p 5678:5678 \
      -v "$HOME/.n8n:/home/node/.n8n" \
      -v "$(pwd):/home/node/.n8n/custom" \
      -e N8N_CUSTOM_EXTENSIONS_MODE=paths \
      -e N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom \
      n8nio/n8n
      ```

  ### npm (Bare-metal or Custom Node.js install)

  1.  **Install the package:**
      ```bash
      npm install n8n-nodes-kipps
      ```
  2.  **Restart your n8n instance.**

  ### Mount Instructions

  If you are running n8n in a Docker container, you can mount the nodes into your container.

  1.  **Clone this repository:**
      ```bash
      git clone https://github.com/KIPPS-AI/n8n-nodes-kipps.git
      ```
  2.  **Add the following to your `docker-compose.yml` file:**
      ```yaml
      volumes:
        - ./n8n-nodes-kipps:/root/.n8n/custom
      ```
  3.  **Restart your n8n container.**

  ## Authentication

  To use these nodes, you will need a Kipps.AI API key.

  1.  **Obtain your API Key:**
      - Log in to your Kipps.AI account at [https://app.kipps.ai/](https://app.kipps.ai/).
      - Navigate to the API settings page (you might find it under "Developers" section).
      - Generate a new API key.

  2.  **Add the Kipps.AI Credential in n8n:**
      - In your n8n instance, go to the "Credentials" section.
      - Click on "Add credential".
      - Search for "Kipps AI API" and select it.
      - Enter your API key in the credential configuration.
      - Save the credential.

  ## Node Parameters

  ### Kipps.AI Chatbot

  - **Agent ID**: The ID of the chatbot agent to use.
  - **Message**: The message to send to the chatbot.
  - **Session ID**: Optional Conversation ID for context management.

  ### Kipps.AI Voicebot

  - **Action**: The action to perform.
    - **Start Call**: Initiates a call.
    - **Send Audio/Text**: Sends audio or text to the call.
    - **End Call**: Ends the call.
  - **Voicebot ID**: The ID of the voicebot to use.
  - **Phone Number**: The phone number to call (required for `Start Call`).
  - **Room Name**: The room name of the call to interact with.
  - **Input Type**: The type of input to send (`Text` or `Audio`).
  - **Text Input**: The text to send to the voicebot.
  - **Audio Input**: The path to the audio file to send.

  ## Usage Examples

  ### Kipps.AI Chatbot

  This example shows how to send a message to a Kipps.AI chatbot and receive a response.

  1.  **Add the Kipps.AI Chatbot node to your workflow.**
  2.  **Configure the node with your Agent ID and the message you want to send.**
  3.  **Execute the workflow.**

  The node will output the chatbot's response.

  ### Kipps.AI Voicebot

  This example shows how to initiate a call, send a message, and end the call with a Kipps.AI voicebot.

  1.  **Start a call:**
      - Add the Kipps.AI Voicebot node to your workflow.
      - Set the **Action** to `Start Call`.
      - Provide the **Voicebot ID** and the **Phone Number** to call.
  2.  **Send a message:**
      - Add another Kipps.AI Voicebot node.
      - Set the **Action** to `Send Audio/Text`.
      - Provide the **Room Name** from the previous step.
      - Set the **Input Type** to `Text` and enter your message.
  3.  **End the call:**
      - Add a final Kipps.AI Voicebot node.
      - Set the **Action** to `End Call`.
      - Provide the **Room Name**.

  ## Troubleshooting

  - **401 Unauthorized**: Make sure your API key is correct and has the necessary permissions.
  - **404 Not Found**: Double-check the Agent ID or Voicebot ID.
  - **Network Errors**: Ensure that your n8n instance can reach the Kipps.AI API (`https://backend.kipps.ai`).
  - **Credential Mistakes**: Verify that you have created a Kipps.AI API credential and selected it in the node.

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with Kipps.AI chatbots and voicebots by sending messages, initiating calls, and managing conversation sessions within n8n workflows.","capabilities":["Send and receive text messages to a Kipps.AI chatbot","Manage conversation context using Session IDs","Initiate voice calls to a Kipps.AI voicebot","Send audio or text messages during an active voice call","End voice calls","Integrate with Kipps.AI API via OAuth2 or API key credentials"],"authentication":"API key required (configured via n8n Credentials section)","commonUseCases":["Automated customer support chatbots","Voice-based customer service interactions","Multi-step conversational workflows","Integration of AI agents into business processes"],"limitations":["Requires manual installation via npm or Docker for custom n8n instances","Audio input requires a local file path for the audio file","Voicebot call actions depend on specific Room Name and Phone Number configuration"],"relatedNodes":["n8n-nodes-kipps.kippsAiVoicebot","n8n-nodes-kipps.kippsAiChatbot"]}


node_type: @razorpay/n8n-nodes-razorpay.razorpay
package_name: @razorpay/n8n-nodes-razorpay
display_name: Razorpay
description: Interact with Razorpay payment gateway API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: razorpay-dev
author_github_url: https://github.com/razorpay/n8n-nodes-razorpay.git
npm_package_name: @razorpay/n8n-nodes-razorpay
npm_version: 0.3.0
community_fetched_at: 2026-04-16T09:43:36.219Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Order",
          "value": "order",
          "description": "Work with Razorpay Orders"
        },
        {
          "name": "Payment Link",
          "value": "paymentLink",
          "description": "Work with Razorpay Payment Links"
        },
        {
          "name": "Payment",
          "value": "payment",
          "description": "Work with Razorpay Payments"
        },
        {
          "name": "Refund",
          "value": "refund",
          "description": "Work with Razorpay Refunds"
        },
        {
          "name": "Settlement",
          "value": "settlement",
          "description": "Work with Razorpay Settlements"
        },
        {
          "name": "Invoice",
          "value": "invoice",
          "description": "Work with Razorpay Invoices"
        },
        {
          "name": "Dispute",
          "value": "dispute",
          "description": "Work with Razorpay Disputes"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "cre",
      "options": [
        {
          "name": "Fetch All",
          "value": "fetchAllOrders",
          "action": "Fetch all orders",
          "description": "Retrieve details of all orders with optional filters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "order"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createPaymentLink",
      "options": [
        {
          "name": "Create",
          "value": "createPaymentLink",
          "action": "Create a payment link",
          "description": "Create a payment link for customers"
        },
        {
          "name": "Fetch",
          "value": "fetchPaymentLink",
          "action": "Fetch a payment link",
          "description": "Fetch payment link details by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "paymentLink"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchPayment",
      "options": [
        {
          "name": "Fetch Payment",
          "value": "fetchPayment",
          "action": "Fetch a payment",
          "description": "Fetch payment details by payment ID"
        },
        {
          "name": "Fetch All",
          "value": "fetchAllPayments",
          "action": "Fetch all payments",
          "description": "Retrieve details of all payments with optional filters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "payment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchAllRefunds",
      "options": [
        {
          "name": "Fetch All",
          "value": "fetchAllRefunds",
          "action": "Fetch all refunds",
          "description": "Retrieve details of all refunds with optional filters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "refund"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Fetch Settlement",
          "value": "fetchSettlement",
          "action": "Fetch a settlement",
          "description": "Fetch settlement details by settlement ID"
        },
        {
          "name": "Fetch All",
          "value": "fetchAllSettlements",
          "action": "Fetch all settlements",
          "description": "Retrieve details of all settlements with optional filters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "settlement"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchInvoicesForSubscription",
      "options": [
        {
          "name": "Fetch Invoices for Subscription",
          "value": "fetchInvoicesForSubscription",
          "action": "Fetch invoices for a subscription",
          "description": "Retrieve all invoices of a subscription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchAllDisputes",
      "options": [
        {
          "name": "Fetch All",
          "value": "fetchAllDisputes",
          "action": "Fetch all disputes",
          "description": "Retrieve all disputes raised by customers"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dispute"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Fetch All",
      "value": "fetchAllOrders",
      "action": "Fetch all orders",
      "description": "Retrieve details of all orders with optional filters",
      "resource": "order"
    },
    {
      "name": "Create",
      "value": "createPaymentLink",
      "action": "Create a payment link",
      "description": "Create a payment link for customers",
      "resource": "paymentLink"
    },
    {
      "name": "Fetch",
      "value": "fetchPaymentLink",
      "action": "Fetch a payment link",
      "description": "Fetch payment link details by ID",
      "resource": "paymentLink"
    },
    {
      "name": "Fetch Payment",
      "value": "fetchPayment",
      "action": "Fetch a payment",
      "description": "Fetch payment details by payment ID",
      "resource": "payment"
    },
    {
      "name": "Fetch All",
      "value": "fetchAllPayments",
      "action": "Fetch all payments",
      "description": "Retrieve details of all payments with optional filters",
      "resource": "payment"
    },
    {
      "name": "Fetch All",
      "value": "fetchAllRefunds",
      "action": "Fetch all refunds",
      "description": "Retrieve details of all refunds with optional filters",
      "resource": "refund"
    },
    {
      "name": "Fetch Settlement",
      "value": "fetchSettlement",
      "action": "Fetch a settlement",
      "description": "Fetch settlement details by settlement ID",
      "resource": "settlement"
    },
    {
      "name": "Fetch All",
      "value": "fetchAllSettlements",
      "action": "Fetch all settlements",
      "description": "Retrieve details of all settlements with optional filters",
      "resource": "settlement"
    },
    {
      "name": "Fetch Invoices for Subscription",
      "value": "fetchInvoicesForSubscription",
      "action": "Fetch invoices for a subscription",
      "description": "Retrieve all invoices of a subscription",
      "resource": "invoice"
    },
    {
      "name": "Fetch All",
      "value": "fetchAllDisputes",
      "action": "Fetch all disputes",
      "description": "Retrieve all disputes raised by customers",
      "resource": "dispute"
    }
  ]

npm_readme:
  # n8n-nodes-razorpay

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

  Razorpay is a comprehensive payment solution that allows businesses to accept, process and disburse payments with its product suite. It gives you access to all payment modes including credit card, debit card, netbanking, UPI and popular wallets including JioMoney, Mobikwik, Airtel Money, FreeCharge, Ola Money and PayZapp.

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

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

  ## Installation

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

  ## Operations

  This node supports the following operations across different Razorpay resources:

  ### Orders
  - **Fetch All Orders** - Retrieve details of all orders with optional filters (authorization status, date range, receipt number, etc.)

  ### Payment Links
  - **Create Payment Link** - Create a payment link for customers with customizable options (amount, currency, customer details, expiry, etc.)
  - **Fetch Payment Link** - Fetch payment link details by ID

  ### Payments
  - **Fetch Payment** - Fetch payment details by payment ID with optional expansion of card, EMI, offer, and UPI details
  - **Fetch All Payments** - Retrieve details of all payments with optional filters (date range, pagination)

  ### Refunds
  - **Fetch All Refunds** - Retrieve details of all refunds with optional filters (date range, pagination)

  ### Settlements
  - **Fetch Settlement** - Fetch settlement details by settlement ID
  - **Fetch All Settlements** - Retrieve details of all settlements with optional filters (date range, pagination)

  ### Invoices
  - **Fetch Invoices for Subscription** - Retrieve all invoices of a subscription

  ### Disputes
  - **Fetch All Disputes** - Retrieve all disputes raised by customers with optional expansion of payment and settlement details

  ## Credentials

  To use this node, you need to authenticate with Razorpay using your API credentials.

  ### Prerequisites

  1. **Sign up for a Razorpay account**: If you don't have one already, create an account at [razorpay.com](https://razorpay.com)
  2. **Complete your KYC**: Ensure your account is activated and KYC is completed to access live mode

  ### Getting Your API Credentials

  1. Log in to your Razorpay Dashboard at [https://dashboard.razorpay.com](https://dashboard.razorpay.com)
  2. Navigate to **Settings** → **API Keys** or directly visit [https://dashboard.razorpay.com/#/app/keys](https://dashboard.razorpay.com/#/app/keys)
  3. You'll find two types of keys:
     - **Test Keys**: For testing and development (starts with `rzp_test_`)
     - **Live Keys**: For production use (starts with `rzp_live_`)

  ### Setting up Credentials in n8n

  1. In n8n, create a new **Razorpay API** credential
  2. Enter your credentials:
     - **Key ID**: Your Razorpay Key ID (e.g., `rzp_test_1234567890` or `rzp_live_1234567890`)
     - **Key Secret**: Your Razorpay Key Secret
  3. **Test the connection** to ensure your credentials are working correctly


  ### Authentication Methods

  This node supports the standard Razorpay API authentication method using:
  - **Key ID and Key Secret**: The primary authentication method for most API operations

  ## Compatibility

  Tested locally against n8n v1.104.2.

  ## Usage

  ### Installing the Razorpay Community Node in n8n

  There are several ways to install this community node in your n8n instance:

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

  1. **Open n8n**: Access your n8n instance
  2. **Go to Settings**: Click on "Settings" in the left sidebar
  3. **Navigate to Community Nodes**: Click on "Community Nodes" in the settings menu
  4. **Install the Node**: 
     - Click "Install a community node"
     - Enter the package name: `@razorpay/n8n-nodes-razorpay`
     - Click "Install"
  5. **Restart n8n**: The node will be available after n8n restarts

  #### Method 2: Install via npm (Self-hosted)

  If you're running n8n in a self-hosted environment:

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

  # Install the community node
  npm install @razorpay/n8n-nodes-razorpay

  # Restart your n8n instance
  ```

  #### Method 3: Install via Docker

  If you're using n8n with Docker, add the package to your Docker setup:

  ```dockerfile
  # In your Dockerfile or docker-compose.yml
  FROM n8nio/n8n:latest
  USER root
  RUN npm install -g @razorpay/n8n-nodes-razorpay
  USER node
  ```

  ### Using the Razorpay Node

  Once installed:

  1. **Create a new workflow** or open an existing one
  2. **Add the Razorpay node**: Search for "Razorpay" in the node panel and drag it into your workflow
  3. **Configure credentials**: Set up your Razorpay API credentials (see [Credentials](#credentials) section)
  4. **Select operation**: Choose the operation you want to perform (Create Order, Fetch Payment, etc.)
  5. **Configure parameters**: Fill in the required parameters for your selected operation
  6. **Test and execute**: Test your workflow to ensure everything works correctly

  ### Getting Started Tips

  - **Start with Test Mode**: Always use test credentials when setting up and testing your workflows
  - **Check API Documentation**: Refer to [Razorpay's API documentation](https://docs.razorpay.com) for detailed parameter information
  - **Use Webhooks**: Consider setting up Razorpay webhooks for real-time payment updates in your workflows

  If you're new to n8n, check out the [Try it out](https://docs.n8n.io/try-it-out/) documentation to help you get started with workflow automation.

  ## Resources

  * [Razorpay API Documentation](https://docs.razorpay.com)
  * [Razorpay Dashboard](https://dashboard.razorpay.com)
  * [Getting Started with Razorpay](https://docs.razorpay.com/docs/getting-started)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Razorpay payment gateway API to manage orders, payments, refunds, settlements, invoices, disputes, and payment links.","capabilities":["Fetch all orders with optional filters","Create payment links with customizable options","Fetch payment link details by ID","Fetch payment details by payment ID","Fetch all payments with optional filters","Fetch all refunds with optional filters","Fetch settlement details by ID","Fetch all settlements with optional filters","Fetch invoices for a subscription","Fetch all disputes with optional expansions"],"authentication":"API Key (Key ID and Key Secret)","commonUseCases":["Retrieve order history for accounting","Generate dynamic payment links for customers","Monitor payment status and fetch transaction details","Process refunds and track settlement status","Manage subscription invoices and disputes"],"limitations":["Requires Razorpay account with completed KYC for live mode","Test mode keys start with 'rzp_test_' and live keys start with 'rzp_live_'","Must restart n8n after installation via npm or Docker methods"],"relatedNodes":["Webhook node","HTTP Request node","Code node"]}


node_type: n8n-nodes-referral-factory.referralFactory
package_name: n8n-nodes-referral-factory
display_name: Referral Factory
description: Get data from Referral Factory API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: referral-factory
author_github_url: https://github.com/referralfactory/
npm_package_name: n8n-nodes-referral-factory
npm_version: 0.2.14
community_fetched_at: 2026-04-16T09:43:36.220Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "create_user",
      "options": [
        {
          "name": "Add New User",
          "value": "create_user",
          "action": "Add new user",
          "routing": {
            "request": {
              "url": "/users",
              "body": {
                "email": "={{$parameter[\"email\"]}}",
                "first_name": "={{$parameter[\"first_name\"]}}",
                "campaign_id": "={{$parameter[\"campaign_id\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Add new user in Referral Factory"
        },
        {
          "name": "Qualify a User",
          "value": "qualify_user",
          "action": "Qualify a user",
          "description": "Qualify a user in Referral Factory"
        }
      ],
      "displayName": "Action",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add New User",
      "value": "create_user",
      "action": "Add new user",
      "routing": {
        "request": {
          "url": "/users",
          "body": {
            "email": "={{$parameter[\"email\"]}}",
            "first_name": "={{$parameter[\"first_name\"]}}",
            "campaign_id": "={{$parameter[\"campaign_id\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Add new user in Referral Factory"
    },
    {
      "name": "Qualify a User",
      "value": "qualify_user",
      "action": "Qualify a user",
      "description": "Qualify a user in Referral Factory"
    }
  ]

npm_readme:
  # n8n-nodes-referral-factory

  🔗 A community-built [n8n](https://n8n.io) integration for [Referral Factory](https://referral-factory.com), enabling automation of your referral marketing campaigns.

  This package provides both **trigger** and **action** nodes to interact with the Referral Factory API—ideal for managing users, issuing rewards, and reacting to referral events like user joins or conversions.

  ---

  ## ✨ Features

  - 🧠 Trigger workflows from Referral Factory events (e.g., user joined, reward issued)
  - 🧾 Create new users or qualify referred users
  - 📡 Webhook-based event handling
  - 🔐 API Key authentication

  ---

  ## 📦 Installation

  ### In self-hosted n8n

  ```bash
  npm install n8n-nodes-referral-factory

ai_documentation_summary:
  {"purpose":"A community-built n8n node that enables automation of referral marketing campaigns by interacting with the Referral Factory API to manage users, issue rewards, and handle referral events.","capabilities":["Trigger workflows from Referral Factory events (e.g., user joined, reward issued)","Create new users","Qualify referred users","Handle webhook-based events","Interact with Referral Factory API"],"authentication":"API Key authentication","commonUseCases":["Automating referral marketing campaigns","Managing user referrals and rewards","Reacting to referral events like user joins or conversions"],"limitations":[],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook.webhook"]}


node_type: n8n-nodes-ikas.ikas
package_name: n8n-nodes-ikas
display_name: IKAS
description: Consume IKAS e-commerce platform API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: actuallyzefe
author_github_url: https://github.com/actuallyzefe/n8n-ikas.git
npm_package_name: n8n-nodes-ikas
npm_version: 2.0.5
community_fetched_at: 2026-04-16T09:43:36.221Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "product",
      "options": [
        {
          "name": "Order",
          "value": "order",
          "description": "Work with orders in your IKAS store"
        },
        {
          "name": "Product",
          "value": "product",
          "description": "Work with products in your IKAS store"
        },
        {
          "name": "Webhook",
          "value": "webhook",
          "description": "Manage webhooks for your IKAS store"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a product",
          "description": "Create a new product"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete products",
          "description": "Delete multiple products"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many products",
          "description": "Get multiple products"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search products",
          "description": "Search products with filters"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a product",
          "description": "Update an existing product"
        },
        {
          "name": "Upload Image",
          "value": "uploadImage",
          "action": "Upload image to product",
          "description": "Upload image to product variants"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many orders",
          "description": "Get multiple orders"
        },
        {
          "name": "Fulfill",
          "value": "fulfill",
          "action": "Fulfill an order",
          "description": "Fulfill order lines"
        },
        {
          "name": "Update Package Status",
          "value": "updatePackageStatus",
          "action": "Update package status",
          "description": "Update order package status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "order"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a webhook",
          "description": "Create a new webhook"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete webhooks",
          "description": "Delete webhooks by scope"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many webhooks",
          "description": "List all webhooks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a product",
      "description": "Create a new product",
      "resource": "product"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete products",
      "description": "Delete multiple products",
      "resource": "product"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many products",
      "description": "Get multiple products",
      "resource": "product"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search products",
      "description": "Search products with filters",
      "resource": "product"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a product",
      "description": "Update an existing product",
      "resource": "product"
    },
    {
      "name": "Upload Image",
      "value": "uploadImage",
      "action": "Upload image to product",
      "description": "Upload image to product variants",
      "resource": "product"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many orders",
      "description": "Get multiple orders",
      "resource": "order"
    },
    {
      "name": "Fulfill",
      "value": "fulfill",
      "action": "Fulfill an order",
      "description": "Fulfill order lines",
      "resource": "order"
    },
    {
      "name": "Update Package Status",
      "value": "updatePackageStatus",
      "action": "Update package status",
      "description": "Update order package status",
      "resource": "order"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a webhook",
      "description": "Create a new webhook",
      "resource": "webhook"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete webhooks",
      "description": "Delete webhooks by scope",
      "resource": "webhook"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many webhooks",
      "description": "List all webhooks",
      "resource": "webhook"
    }
  ]

npm_readme:
  # n8n-nodes-ikas

  <div align="center">
    <img src="https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png" alt="n8n" width="120" height="120">
    <span style="font-size: 50px; margin: 0 20px;">+</span>
    <img src="https://ikas.com/favicon.ico" alt="IKAS" width="120" height="120">
  </div>

  <div align="center">
    
  ![n8n.io - IKAS](https://img.shields.io/badge/n8n.io-IKAS-blue.svg)
  ![Version](https://img.shields.io/npm/v/n8n-nodes-ikas.svg)
  ![Downloads](https://img.shields.io/npm/dt/n8n-nodes-ikas.svg)
  ![License](https://img.shields.io/npm/l/n8n-nodes-ikas.svg)

  </div>

  This is an n8n community node that lets you integrate the [IKAS e-commerce platform](https://ikas.com) into your n8n workflows. Automate your e-commerce operations with comprehensive product management, order processing, and inventory control.

  ## What is IKAS?

  IKAS is a comprehensive e-commerce platform that provides merchants with tools to create, manage, and grow their online stores. This node enables seamless integration with IKAS's GraphQL API for automating e-commerce operations including:

  - Product catalog management
  - Order processing and fulfillment
  - Inventory and stock management
  - Customer data handling
  - Sales analytics and reporting

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

  ## Table of Contents

  - [Installation](#installation)
  - [Credentials](#credentials)
  - [Operations](#operations)
  - [Usage Examples](#usage-examples)
  - [Compatibility](#compatibility)
  - [Contributing](#contributing)
  - [Development Setup](#development-setup)
  - [Resources](#resources)
  - [Version History](#version-history)
  - [License](#license)

  ## Installation

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

  Use the package name: `n8n-nodes-ikas`

  ## Operations

  This node supports the following operations:

  ### Products

  - **Get Many**: Retrieve multiple products from your IKAS store
  - **Search**: Search products with advanced filters and pagination including:
    - Search by name, description, or other text fields
    - Filter by product IDs, SKUs, or barcodes
    - Pagination support with customizable page size
  - **Create**: Create new products in your store with:
    - Simple product structure support
    - Automatic variant creation
    - Stock location assignment
    - Pricing configuration (sell price, buy price, discount price)
  - **Update**: Update existing product information including all product fields

  ### Orders

  - **Get Many**: Retrieve orders from your IKAS store with advanced filtering:
    - Filter by customer email or customer ID
    - Filter by order number or sales channel
    - Filter by order status (Created, Confirmed, Fulfilled, etc.)
    - Filter by payment status (Paid, Pending, Refunded, etc.)
    - Filter by package status (Preparing, Shipped, Delivered, etc.)
  - **Fulfill**: Fulfill order line items with:
    - Multiple line item fulfillment
    - Quantity specification per line item
    - Optional marking as ready for shipment
    - Customer notification settings
    - Tracking information (tracking number, cargo company, barcode, etc.)
  - **Update Package Status**: Update order package statuses with:
    - Multiple package status updates in one operation
    - Comprehensive status options (Fulfilled, Shipped, Delivered, Cancelled, etc.)
    - Tracking information updates
    - Error message handling

  ### Stock Management

  - **Stock Location Retrieval**: Get stock locations by name or filters
  - **Stock Assignment**: Automatically assign stock to locations during product creation

  ### Available GraphQL Operations

  - **Queries**:
    - `GetProducts` - Fetch product data with full product information
    - `SearchProducts` - Advanced product search with filters and pagination
    - `GetOrders` - Retrieve order information with comprehensive filtering
  - **Mutations**:
    - `SaveProduct` - Create or update products with full product structure
    - `FulfillOrder` - Fulfill order line items with tracking
    - `UpdateOrderPackageStatus` - Update package statuses with tracking info

  ## Credentials

  To use this node, you need to authenticate with IKAS using OAuth2 credentials. Here's how to set it up:

  ### Prerequisites

  1. You must have an IKAS store
  2. Create a Private App in your IKAS admin panel to get API credentials

  ### Authentication Setup

  1. In your IKAS admin panel, navigate to Apps & Integrations
  2. Create a new Private App
  3. Note down your:
     - **Store Name** (your store subdomain without .myikas.com)
     - **Client ID**
     - **Client Secret**

  ### Credential Configuration

  When setting up the IKAS API credentials in n8n:

  - **Store Name**: Your IKAS store name (e.g., "mystore" for mystore.myikas.com)
  - **Client ID**: The Client ID from your Private App
  - **Client Secret**: The Client Secret from your Private App

  The node will automatically handle OAuth2 authentication and session token management.

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Node version**: 1.0
  - **Tested with**: n8n 1.x
  - **Node.js**: >=22.16

  This node uses the IKAS GraphQL API v1 and should be compatible with all current IKAS store configurations.

  ## Usage Examples

  ### Quick Start

  1. Install the node using n8n's community node installation process
  2. Set up your IKAS API credentials
  3. Create a new workflow and add the IKAS node
  4. Configure your desired operation (Product or Order management)

  ### Workflow Examples

  #### Example 1: Sync Products from External Source

  ```
  Webhook → Data Processing → IKAS (Create Product) → Email Notification
  ```

  This workflow listens for new product data, processes it, creates the product in IKAS, and sends a confirmation email.

  #### Example 2: Order Fulfillment Automation

  ```
  IKAS (Get Orders) → Filter (Paid Orders) → IKAS (Fulfill Order) → Send Tracking Email
  ```

  This workflow automatically fulfills paid orders and sends tracking information to customers.

  #### Example 3: Inventory Management

  ```
  Schedule Trigger → IKAS (Get Products) → Check Stock Levels → IKAS (Update Product) → Slack Notification
  ```

  This workflow runs daily to check stock levels and update products with low inventory alerts.

  ### Product Operations

  **Get Products**: Select "Product" as resource and "Get Many" as operation to fetch all products from your store with complete product information.

  **Search Products**: Use advanced filtering to find specific products:

  - Search by text query across product names and descriptions
  - Filter by specific product IDs, SKUs, or barcodes (comma-separated lists)
  - Use pagination controls to manage large result sets
  - Return all results or limit to specific page sizes

  **Create Products**: Create new products with comprehensive configuration:

  - Set product name, type (Physical, Digital, Bundle, Membership), and structure
  - Configure pricing (sell price, buy price, discount price)
  - Add descriptions, weight, and quantity limits
  - Assign to sales channels
  - Set initial stock counts and assign to stock locations
  - Add additional attributes, translations, and metadata

  **Update Products**: Modify existing products using the same configuration options as creation, plus the ability to update all product fields.

  ### Order Management

  **Get Orders**: Retrieve orders with powerful filtering capabilities:

  - Filter by customer information (email, customer ID)
  - Filter by order details (order number, sales channel)
  - Filter by order status (Created, Confirmed, Fulfilled, Cancelled, etc.)
  - Filter by payment status (Paid, Pending, Refunded, Partially Paid, etc.)
  - Filter by package status (Preparing, Shipped, Delivered, Returned, etc.)

  **Fulfill Orders**: Process order fulfillment with detailed control:

  - Fulfill specific line items with custom quantities
  - Add tracking information (tracking number, cargo company, barcode)
  - Configure shipment notifications to customers
  - Mark orders as ready for shipment
  - Link to source packages for inventory tracking

  **Update Package Status**: Manage package lifecycle with comprehensive status updates:

  - Update multiple packages in a single operation
  - Set detailed package statuses (Fulfilled, Ready for Shipment, Shipped, Delivered, Cancelled, Error, etc.)
  - Add or update tracking information per package
  - Handle error states with custom error messages
  - Include source IDs for external system integration

  ## Contributing

  We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

  ### How to Contribute

  1. **Fork the Repository**: Click the "Fork" button on GitHub to create your own copy
  2. **Clone Your Fork**: `git clone https://github.com/YOUR_USERNAME/n8n-ikas.git`
  3. **Create a Branch**: `git checkout -b feature/your-feature-name`
  4. **Make Your Changes**: Implement your feature or fix
  5. **Test Your Changes**: Ensure everything works correctly
  6. **Commit Your Changes**: `git commit -am 'Add some feature'`
  7. **Push to Your Branch**: `git push origin feature/your-feature-name`
  8. **Create a Pull Request**: Submit your changes for review

  ### Code Standards

  - Follow the existing TypeScript code style
  - Use meaningful variable and function names
  - Add JSDoc comments for new functions
  - Ensure all new code is properly typed

  ### Reporting Issues

  Found a bug or have a feature request? Please check existing issues first, then create a new issue with:

  - Clear description of the problem or request
  - Steps to reproduce (for bugs)
  - Expected vs actual behavior
  - Your environment details (n8n version, Node.js version, etc.)

  ## Development Setup

  ### Prerequisites

  - Node.js >=22.16
  - n8n (for testing)
  - Ikas Credentials (Client ID - Client Secret)

  ### Setup Instructions

  1. **Clone the Repository**

     ```bash
     git clone https://github.com/actuallyzefe/n8n-ikas.git
     cd n8n-ikas
     ```

  2. **Install Dependencies**

     ```bash
     npm install
     ```

  3. **Build the Project**

     ```bash
     npm run build
     ```

  4. **Linting and Formatting**
     ```bash
     npm run lint        # Check for linting issues
     npm run lintfix     # Fix auto-fixable issues
     npm run format      # Format code with prettier
     ```

  ### Project Structure

  ```
  ├── credentials/           # Authentication credential definitions
  ├── nodes/
  │   └── Ikas/
  │       ├── Ikas.node.ts  # Main node implementation
  │       ├── GenericFunctions.ts # Shared utilities
  │       ├── graphql/      # GraphQL queries and mutations
  │       ├── node-definition/ # Node property definitions
  │       ├── operations/   # Operation implementations
  │       └── types/        # TypeScript type definitions
  ├── gulpfile.js          # Build configuration
  └── package.json         # Project configuration
  ```

  ### Testing Your Changes

  1. Build the project: `npm run build`
  2. Link to n8n: Follow [n8n's community node development guide](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally//)
  3. Test your changes in n8n workflows
  4. Verify all operations work as expected

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [n8n Node Development Guide](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally//)
  - [IKAS API Documentation](https://ikas.dev/docs/intro)
  - [IKAS Authentication Guide](https://ikas.dev/docs/api/getting-started/authentication)
  - [IKAS Developer Portal](https://ikas.dev/)
  - [GraphQL Best Practices](https://graphql.org/learn/best-practices/)

  ## License

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

  ## Acknowledgments

  - Thanks to the [n8n team](https://n8n.io/) for creating an amazing workflow automation platform
  - Thanks to [IKAS](https://ikas.com) for providing a comprehensive e-commerce platform
  - Thanks to all contributors who help improve this node

  ---

  **Need Help?**

  - Check out the [Issues](https://github.com/actuallyzefe/n8n-ikas/issues) for common problems
  - Create a new issue if you can't find a solution
  - Join the [n8n community](https://community.n8n.io/) for general n8n support

ai_documentation_summary:
  {"purpose":"An n8n community node that integrates with the IKAS e-commerce platform's GraphQL API to automate product management, order processing, inventory control, and customer data handling.","capabilities":["Retrieve multiple products with pagination","Search products by name, description, SKU, or barcode with filters","Create new products with variants and pricing configuration","Update existing product information","Retrieve orders with advanced filtering by customer, status, and payment","Fulfill order line items with tracking information","Update order package statuses (Fulfilled, Shipped, Delivered, Cancelled)","Retrieve stock locations by name or filters","Assign stock to locations during product creation","Handle customer data and sales analytics"],"authentication":"OAuth2 (requires IKAS Private App credentials: Store Name, Client ID, Client Secret)","commonUseCases":["Automated product catalog synchronization from external sources","Order fulfillment automation for paid orders","Inventory and stock management workflows","Customer order processing and tracking notifications","Sales analytics and reporting automation"],"limitations":["Requires an existing IKAS store with a Private App configured","Minimum n8n version 1.0.0 required","Requires Node.js >=22.16","Limited to IKAS GraphQL API v1"],"relatedNodes":["n8n-nodes.webhook","n8n-nodes.filter","n8n-nodes.email"]}


node_type: @cryptolens/n8n-nodes-devolens.cryptolensDevolens
package_name: @cryptolens/n8n-nodes-devolens
display_name: Cryptolens Devolens
description: Interact with the Cryptolens Devolens API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: artemlos
author_github_url: https://github.com/Cryptolens/n8n-node.git
npm_package_name: @cryptolens/n8n-nodes-devolens
npm_version: 0.2.4
community_fetched_at: 2026-04-16T09:43:36.222Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "key",
      "options": [
        {
          "name": "Key",
          "value": "key"
        },
        {
          "name": "AI",
          "value": "ai"
        },
        {
          "name": "Product",
          "value": "product"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Feature",
          "value": "addFeature",
          "action": "Add a feature to a license",
          "routing": {
            "request": {
              "url": "/key/AddFeature",
              "method": "GET"
            }
          },
          "description": "Set a feature flag to true on a key"
        },
        {
          "name": "Block",
          "value": "block",
          "action": "Block a license",
          "routing": {
            "request": {
              "url": "/key/BlockKey",
              "method": "GET"
            }
          },
          "description": "Block an existing Cryptolens key"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a license key",
          "routing": {
            "request": {
              "url": "/key/CreateKey",
              "method": "GET"
            }
          },
          "description": "Create a new Cryptolens key"
        },
        {
          "name": "Extend License",
          "value": "extendLicense",
          "action": "Extend a license",
          "routing": {
            "request": {
              "url": "/key/ExtendLicense",
              "method": "GET"
            }
          },
          "description": "Extend an existing Cryptolens key"
        },
        {
          "name": "Remove Feature",
          "value": "removeFeature",
          "action": "Remove a feature from a license",
          "routing": {
            "request": {
              "url": "/key/RemoveFeature",
              "method": "GET"
            }
          },
          "description": "Set a feature flag to false on a key"
        },
        {
          "name": "Unblock",
          "value": "unblock",
          "action": "Unblock a license",
          "routing": {
            "request": {
              "url": "/key/UnblockKey",
              "method": "GET"
            }
          },
          "description": "Unblock an existing Cryptolens key"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "key"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getWebApiLog",
      "options": [
        {
          "name": "Get Web API Log",
          "value": "getWebApiLog",
          "action": "Get web API log events",
          "routing": {
            "request": {
              "url": "/ai/GetWebAPILog",
              "method": "GET"
            }
          },
          "description": "Get logs of Web API requests"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getProducts",
      "options": [
        {
          "name": "Get Keys",
          "value": "getKeys",
          "action": "Get keys",
          "routing": {
            "request": {
              "url": "/product/GetKeys",
              "method": "GET"
            }
          },
          "description": "Get license keys for a product"
        },
        {
          "name": "Get Products",
          "value": "getProducts",
          "action": "Get products",
          "routing": {
            "request": {
              "url": "/product/GetProducts",
              "method": "GET"
            }
          },
          "description": "Get all products"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Feature",
      "value": "addFeature",
      "action": "Add a feature to a license",
      "routing": {
        "request": {
          "url": "/key/AddFeature",
          "method": "GET"
        }
      },
      "description": "Set a feature flag to true on a key",
      "resource": "key"
    },
    {
      "name": "Block",
      "value": "block",
      "action": "Block a license",
      "routing": {
        "request": {
          "url": "/key/BlockKey",
          "method": "GET"
        }
      },
      "description": "Block an existing Cryptolens key",
      "resource": "key"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a license key",
      "routing": {
        "request": {
          "url": "/key/CreateKey",
          "method": "GET"
        }
      },
      "description": "Create a new Cryptolens key",
      "resource": "key"
    },
    {
      "name": "Extend License",
      "value": "extendLicense",
      "action": "Extend a license",
      "routing": {
        "request": {
          "url": "/key/ExtendLicense",
          "method": "GET"
        }
      },
      "description": "Extend an existing Cryptolens key",
      "resource": "key"
    },
    {
      "name": "Remove Feature",
      "value": "removeFeature",
      "action": "Remove a feature from a license",
      "routing": {
        "request": {
          "url": "/key/RemoveFeature",
          "method": "GET"
        }
      },
      "description": "Set a feature flag to false on a key",
      "resource": "key"
    },
    {
      "name": "Unblock",
      "value": "unblock",
      "action": "Unblock a license",
      "routing": {
        "request": {
          "url": "/key/UnblockKey",
          "method": "GET"
        }
      },
      "description": "Unblock an existing Cryptolens key",
      "resource": "key"
    },
    {
      "name": "Get Web API Log",
      "value": "getWebApiLog",
      "action": "Get web API log events",
      "routing": {
        "request": {
          "url": "/ai/GetWebAPILog",
          "method": "GET"
        }
      },
      "description": "Get logs of Web API requests",
      "resource": "ai"
    },
    {
      "name": "Get Keys",
      "value": "getKeys",
      "action": "Get keys",
      "routing": {
        "request": {
          "url": "/product/GetKeys",
          "method": "GET"
        }
      },
      "description": "Get license keys for a product",
      "resource": "product"
    },
    {
      "name": "Get Products",
      "value": "getProducts",
      "action": "Get products",
      "routing": {
        "request": {
          "url": "/product/GetProducts",
          "method": "GET"
        }
      },
      "description": "Get all products",
      "resource": "product"
    }
  ]

npm_readme:
  ﻿# @cryptolens/n8n-nodes-devolens

  This is an n8n community node for Cryptolens. It lets you use Cryptolens Web API v3 in your n8n workflows.

  [Cryptolens](https://cryptolens.io/) is a software licensing and entitlement platform.

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

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

  ## Installation

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

  ## Operations

  ### Key
  - Create Key (`/key/CreateKey`)
  - Extend License (`/key/ExtendLicense`)
  - Block Key (`/key/BlockKey`)
  - Unblock Key (`/key/UnblockKey`)
  - Add Feature (`/key/AddFeature`)
  - Remove Feature (`/key/RemoveFeature`)

  ### AI
  - Get Web API Log (`/ai/GetWebAPILog`)

  ### Product
  - Get Products (`/product/GetProducts`)
  - Get Keys (`/product/GetKeys`)

  ## Credentials

  Create a Cryptolens Access Token in your Cryptolens account and add it in n8n as the credential type `Cryptolens Devolens API`.

  Credential field:
  - `Access Token` 
  - Source file: [`credentials/CryptolensDevolensApi.credentials.ts`](https://github.com/Cryptolens/n8n-node/blob/main/%40cryptolens/n8n-nodes-devolens/credentials/CryptolensDevolensApi.credentials.ts)

  This node sends the token as:
  - `token` header
  - `token` query parameter

  Base URL used by the node:
  - `https://api.cryptolens.io/api`

  ## Compatibility

  Built with the n8n community node tooling (`@n8n/node-cli`) and Node API version 1.

  Test this node against your target n8n version before production use.

  ## Usage

  1. Add the `Cryptolens Devolens` node to your workflow.
  2. Select a resource (`Key`, `AI`, or `Product`).
  3. Select an operation.
  4. Configure the operation fields.
  5. Execute the node.

  Notes:
  - Most endpoints in this node are `GET` and map fields to query parameters.
  - Some operations include an optional method version parameter `v`.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Cryptolens Web API v3 docs](https://app.cryptolens.io/docs/api/v3/)
  * [Project repository](https://github.com/Cryptolens/n8n-node/tree/main/%40cryptolens/n8n-nodes-devolens)

  ## Version history

  ### 0.1.0
  - Initial public version.

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Cryptolens Devolens Web API v3 for software licensing and entitlement management within n8n workflows.","capabilities":["Create new license keys","Extend existing license keys","Block license keys","Unblock license keys","Add features to license keys","Remove features from license keys","Retrieve web API logs","Get available products","Get license keys"],"authentication":"API Token (Access Token) required, sent via 'token' header or 'token' query parameter","commonUseCases":["Automating license key generation and management","Managing software entitlements in workflow automation","Monitoring web API usage through logs","Controlling feature access for different products"],"limitations":["Most endpoints are GET requests mapping fields to query parameters","Some operations require an optional method version parameter 'v'","Requires manual token configuration in n8n credentials"],"relatedNodes":["Cryptolens Devolens API","n8n HTTP Request node","n8n Webhook node"]}


node_type: n8n-nodes-chainstream.chainstream
package_name: n8n-nodes-chainstream
display_name: Chainstream
description: Consume Chainstream API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-04-16 09:43:36
author_name: quantum01io
author_github_url: https://github.com/chainstream-io/
npm_package_name: n8n-nodes-chainstream
npm_version: 0.0.92
community_fetched_at: 2026-04-16T09:43:36.223Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "token",
      "options": [
        {
          "name": "Token",
          "value": "token"
        },
        {
          "name": "Wallet",
          "value": "wallet"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Candles",
          "value": "candles",
          "action": "Get token price candles",
          "description": "Get token price candles"
        },
        {
          "name": "Creation",
          "value": "creation",
          "action": "Get token creation information",
          "description": "Get token creation information"
        },
        {
          "name": "Detail",
          "value": "detail",
          "action": "Get detail of token",
          "description": "Get detail of token"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a token",
          "description": "Get a token"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many tokens",
          "description": "Get many tokens"
        },
        {
          "name": "Holders",
          "value": "holders",
          "action": "Get holders of a token",
          "description": "Get holders of a token"
        },
        {
          "name": "Liquidity",
          "value": "liquidity",
          "action": "Get all pools containing this token",
          "description": "Get all pools containing this token"
        },
        {
          "name": "Market Data",
          "value": "marketData",
          "action": "Get token market data",
          "description": "Get token market data"
        },
        {
          "name": "Metadata",
          "value": "metadata",
          "action": "Get metadata of token",
          "description": "Get metadata of token"
        },
        {
          "name": "Mint And Burn",
          "value": "mintAndBurn",
          "action": "Get mint and burn information for a token",
          "description": "Get mint and burn information for a token"
        },
        {
          "name": "Price by Time",
          "value": "price",
          "action": "Get token price at a specific timestamp",
          "description": "Get token price at a specific timestamp"
        },
        {
          "name": "Prices",
          "value": "prices",
          "action": "Get historical price data for a token",
          "description": "Get historical price data for a token"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search token informaton by criteria",
          "description": "Search token information by criteria"
        },
        {
          "name": "Security",
          "value": "security",
          "action": "Get token security information",
          "description": "Get token security information"
        },
        {
          "name": "Stats",
          "value": "stats",
          "action": "Get token statistics",
          "description": "Get token statistics"
        },
        {
          "name": "Top Holders",
          "value": "topHolders",
          "action": "Get the top 20 holders for a token",
          "description": "Get the top 20 holders for a token"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "token"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "balance",
      "options": [
        {
          "name": "Balance",
          "value": "balance",
          "action": "Get wallet balance",
          "description": "Get wallet balance"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "wallet"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Candles",
      "value": "candles",
      "action": "Get token price candles",
      "description": "Get token price candles",
      "resource": "token"
    },
    {
      "name": "Creation",
      "value": "creation",
      "action": "Get token creation information",
      "description": "Get token creation information",
      "resource": "token"
    },
    {
      "name": "Detail",
      "value": "detail",
      "action": "Get detail of token",
      "description": "Get detail of token",
      "resource": "token"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a token",
      "description": "Get a token",
      "resource": "token"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many tokens",
      "description": "Get many tokens",
      "resource": "token"
    },
    {
      "name": "Holders",
      "value": "holders",
      "action": "Get holders of a token",
      "description": "Get holders of a token",
      "resource": "token"
    },
    {
      "name": "Liquidity",
      "value": "liquidity",
      "action": "Get all pools containing this token",
      "description": "Get all pools containing this token",
      "resource": "token"
    },
    {
      "name": "Market Data",
      "value": "marketData",
      "action": "Get token market data",
      "description": "Get token market data",
      "resource": "token"
    },
    {
      "name": "Metadata",
      "value": "metadata",
      "action": "Get metadata of token",
      "description": "Get metadata of token",
      "resource": "token"
    },
    {
      "name": "Mint And Burn",
      "value": "mintAndBurn",
      "action": "Get mint and burn information for a token",
      "description": "Get mint and burn information for a token",
      "resource": "token"
    },
    {
      "name": "Price by Time",
      "value": "price",
      "action": "Get token price at a specific timestamp",
      "description": "Get token price at a specific timestamp",
      "resource": "token"
    },
    {
      "name": "Prices",
      "value": "prices",
      "action": "Get historical price data for a token",
      "description": "Get historical price data for a token",
      "resource": "token"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search token informaton by criteria",
      "description": "Search token information by criteria",
      "resource": "token"
    },
    {
      "name": "Security",
      "value": "security",
      "action": "Get token security information",
      "description": "Get token security information",
      "resource": "token"
    },
    {
      "name": "Stats",
      "value": "stats",
      "action": "Get token statistics",
      "description": "Get token statistics",
      "resource": "token"
    },
    {
      "name": "Top Holders",
      "value": "topHolders",
      "action": "Get the top 20 holders for a token",
      "description": "Get the top 20 holders for a token",
      "resource": "token"
    },
    {
      "name": "Balance",
      "value": "balance",
      "action": "Get wallet balance",
      "description": "Get wallet balance",
      "resource": "wallet"
    }
  ]

npm_readme:
  **Version:** 0.0.92
  **Status:** Submitted to Creator Portal, awaiting approval  
  **Compatible with:** n8n v1.0.0+ (tested on v1.113.0)

  # n8n-nodes-chainstream

  [![Verified on MseeP](https://mseep.ai/badge.svg)](https://mseep.ai/app/bd76f121-1c8f-4f5d-9c65-1eac5d81b6af)

  `n8n-nodes-chainstream` is an n8n community node that enables workflows to access real-time blockchain data via [Chainstream](https://chainstream.io). It supports token, wallet, and trade queries across multiple chains, and is designed for reuse, easy extension, and straightforward review.

  ---

  ## 🚀 Installation

  ```bash
  npm install n8n-nodes-chainstream
  ```

  - Restart n8n to load the new community node.
  - Add the Chainstream node to your workflow and configure credentials.

  ---

  ## 🔐 Credentials

  Create a new credential in n8n:

  - **API Client ID** — Chainstream public key
  - **API Client Secret** — Chainstream private key

  ⚠️ Do not commit real keys to your repository or exported workflows. Use placeholders in templates and bind credentials after import.

  ---

  ## ⚡ Quickstart

  1. Go to **Workflows → Import** in n8n and upload `/templates/workflow.json` from this repo.
  2. Run:

     ```bash
     npm install n8n-nodes-chainstream
     ```

  3. Create and bind your Chainstream credential.
  4. Configure a trigger (e.g., Telegram, webhook, cron).
  5. Run the workflow and inspect the Chainstream node output.

  > Note: `/templates/workflow.json` uses credential placeholders. Replace them after import.

  ---

  ## 🧪 Example Node Configuration

  **Node:** Chainstream

  - **Credentials:** ChainstreamApi
  - **Resource:** token
  - **Operation:** get
  - **Chain ID:** 137
  - **Token Address:** `0x1234...abcd`
  - **Options:** (leave default)

  **Example output:**

  ```json
  {
  	"symbol": "ABC",
  	"name": "Token ABC",
  	"decimals": 18,
  	"address": "0x..."
  }
  ```

  For batch runs, use expressions or upstream nodes to supply dynamic parameters.

  ---

  ## 📚 Supported Resources

  Short summary of supported resources (full mapping in `DEVELOPER.md`):

  - **token** — metadata, prices, holders, liquidity, security, mint/burn
  - **trade** — listings, activities, leaderboards
  - **wallet** — balance queries

  ---

  ## 🧑‍💻 Developer Notes

  The `execute` method builds requests dynamically:

  1. Reads `resource` and `operation` per item
  2. Calls `buildRequest()` to map to `{ method, path, qs }`
  3. Sends request via `chainstreamApiRequest()`
  4. Wraps response with `constructExecutionMetaData()`
  5. Handles errors via `NodeOperationError`, respects `continueOnFail`

  Full handler mapping and endpoint patterns are in `DEVELOPER.md`.

  ---

  ## 🛠️ Troubleshooting

  - **Invalid resource/operation** → check for typos
  - **Bad parameters** → test with single item before batching
  - **API errors** → inspect node output, verify credentials
  - **Batch runs** → enable `Continue On Fail` to capture per-item errors

  Debug tips:

  - Use **Executions** view to inspect inputs/outputs
  - Add a **Set** node to test static parameters
  - Start with one item to simplify debugging

  ---

  ## 🧪 Contributing & CI

  ```bash
  npm run build   # Compile TypeScript
  npm run lint    # Run ESLint
  npm run test    # Run Jest tests
  ```

  - `prepublishOnly` runs build + lint before publishing
  - Use GitHub Actions to automate lint/build/test
  - Keep TypeScript strict and ESLint green

  To add a new operation:

  1. Add handler in `buildRequest()`
  2. Extract parameters via `getNodeParameter(..., i)`
  3. Return `{ method, path, qs? }`
  4. Add tests and update `DEVELOPER.md`

  ---

  ## 📦 Templates & Reviewer Guidance

  - `/templates/workflow.json` — example workflow
  - `/templates/README-template.md` — import instructions
  - If reviewers lack production keys, provide:
    - mock API
    - test account
    - recorded executions

  When submitting:

  - Include repo link, npm package name/version
  - Provide install steps and sample outputs
  - Add screenshots if possible

  ---

  ## 📬 Contact & Support

  - Maintainer: Chainstream Team – [ai@chainstream.io](mailto:ai@chainstream.io)
  - Issues & PRs: [GitHub Issues](https://github.com/chainstream-io/n8n-nodes-chainstream/issues)

  ---

  ## 📄 License

  MIT

  ---

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflows to consume the Chainstream API for real-time blockchain data, supporting queries for tokens, wallets, and trades across multiple chains.","capabilities":["Token metadata retrieval (prices, holders, liquidity, security, mint/burn)","Trade activity queries (listings, activities, leaderboards)","Wallet balance queries","Multi-chain support","Batch processing with error continuation"],"authentication":"API key required (API Client ID and API Client Secret)","commonUseCases":["Real-time token price monitoring","Wallet balance tracking across chains","Trade activity and leaderboard analysis","Liquidity and security monitoring for DeFi tokens"],"limitations":["Node status is awaiting approval in the Creator Portal","Requires manual credential binding after import","Full endpoint mapping documentation is in a separate DEVELOPER.md file"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.set","n8n-nodes-base.code"]}


node_type: n8n-nodes-seo-content-machine.seoContentMachine
package_name: n8n-nodes-seo-content-machine
display_name: SEO Content Machine
description: SEO Content Machine node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: seocontentmachine
author_github_url: https://github.com/gitTerebi/
npm_package_name: n8n-nodes-seo-content-machine
npm_version: 0.1.20
community_fetched_at: 2026-04-16T09:43:36.224Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Other",
          "value": "other"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "start",
      "options": [
        {
          "name": "Abort",
          "value": "abort",
          "action": "Abort a task",
          "description": "Abort a running task"
        },
        {
          "name": "Content",
          "value": "content",
          "action": "Get content from task",
          "description": "Gets content created by a task"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a new task"
        },
        {
          "name": "Data",
          "value": "data",
          "action": "Get task data",
          "description": "Get task data"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "description": "Delete a task"
        },
        {
          "name": "Duplicate",
          "value": "duplicate",
          "action": "Duplicate a task",
          "description": "Duplicate a task"
        },
        {
          "name": "Find",
          "value": "find",
          "action": "Find tasks",
          "description": "Find tasks"
        },
        {
          "name": "Start",
          "value": "start",
          "action": "Start a task",
          "description": "Start a task"
        },
        {
          "name": "Status",
          "value": "status",
          "action": "Get task status",
          "description": "Get task status"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update task data",
          "description": "Update task data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "spin",
      "options": [
        {
          "name": "About Me",
          "value": "about",
          "action": "Generate about me",
          "description": "Generate about me"
        },
        {
          "name": "Spin",
          "value": "spin",
          "action": "Spin text",
          "description": "Spin/Rewrite text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "other"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Abort",
      "value": "abort",
      "action": "Abort a task",
      "description": "Abort a running task",
      "resource": "task"
    },
    {
      "name": "Content",
      "value": "content",
      "action": "Get content from task",
      "description": "Gets content created by a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a new task",
      "resource": "task"
    },
    {
      "name": "Data",
      "value": "data",
      "action": "Get task data",
      "description": "Get task data",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "description": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Duplicate",
      "value": "duplicate",
      "action": "Duplicate a task",
      "description": "Duplicate a task",
      "resource": "task"
    },
    {
      "name": "Find",
      "value": "find",
      "action": "Find tasks",
      "description": "Find tasks",
      "resource": "task"
    },
    {
      "name": "Start",
      "value": "start",
      "action": "Start a task",
      "description": "Start a task",
      "resource": "task"
    },
    {
      "name": "Status",
      "value": "status",
      "action": "Get task status",
      "description": "Get task status",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update task data",
      "description": "Update task data",
      "resource": "task"
    },
    {
      "name": "About Me",
      "value": "about",
      "action": "Generate about me",
      "description": "Generate about me",
      "resource": "other"
    },
    {
      "name": "Spin",
      "value": "spin",
      "action": "Spin text",
      "description": "Spin/Rewrite text",
      "resource": "other"
    }
  ]

npm_readme:
  # n8n-nodes-seo-content-machine

  This is a n8n community node. It lets you use SEO Content Machine in your n8n workflows.

  SEO Content Machine (https://seocontentmachine.com)  is a scraper and AI content generator desktop tool.

  [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 [official SCM n8n node install guide](https://forum.seocontentmachine.com/t/how-to-install-and-configure-scm-n8n-node/831) on the SCM forum.

  For generic n8n help check out the [n8n community node guide](https://docs.n8n.io/integrations/community-nodes/installation/).

  ## Operations

  Task, Other

  ## Credentials

  You need the SCM API url and port that is displayed on the SCM desktop app.

  ## Resources

  *	[Official SCM n8n node install guide](https://forum.seocontentmachine.com/t/how-to-install-and-configure-scm-n8n-node/831)
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

ai_documentation_summary:
  {"purpose":"Integrates the SEO Content Machine desktop tool into n8n workflows to perform SEO scraping and AI content generation.","capabilities":["SEO content scraping","AI content generation","Desktop tool integration","Workflow automation"],"authentication":"API URL and port from SCM desktop app","commonUseCases":["Automated SEO content creation","Web scraping for keyword research","Content generation workflows"],"limitations":["Requires separate desktop application installation","Configuration depends on SCM desktop app settings"],"relatedNodes":["n8n-nodes-seo-content-machine.seoContentMachine"]}


node_type: n8n-nodes-diviup-connect.diviUpConnect
package_name: n8n-nodes-diviup-connect
display_name: DiviUp Connect
description: Interact with DiviUp Connect API to manage runs and execute agents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: kdowns22
author_github_url: https://github.com/ParrotLab/
npm_package_name: n8n-nodes-diviup-connect
npm_version: 1.2.2
community_fetched_at: 2026-04-16T09:43:36.224Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run"
        },
        {
          "name": "Agent",
          "value": "agent"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new run",
          "description": "Create a new run container"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a run",
          "description": "Retrieve a run by ID"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a run",
          "description": "Update an existing run status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "run"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "start",
      "options": [
        {
          "name": "Start",
          "value": "start",
          "action": "Start an agent",
          "description": "Execute an agent/module with provided inputs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new run",
      "description": "Create a new run container",
      "resource": "run"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a run",
      "description": "Retrieve a run by ID",
      "resource": "run"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a run",
      "description": "Update an existing run status",
      "resource": "run"
    },
    {
      "name": "Start",
      "value": "start",
      "action": "Start an agent",
      "description": "Execute an agent/module with provided inputs",
      "resource": "agent"
    }
  ]

npm_readme:
  # n8n-nodes-diviup-connect

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

  [DiviUp Connect](https://diviupconnect.com) is a workflow automation platform for managing runs and executing agents.

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

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

  ## Installation

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

  ## Operations

  ### Run
  - **Create** - Create a new run container with optional playbook association and variables
  - **Update** - Update an existing run's status

  ### Agent
  - **Start** - Execute an agent/module with provided inputs (supports sync and async modes)

  ## Credentials

  You need a DiviUp Connect API key to use this node.

  ### Getting your API Key

  1. Log in to your DiviUp Connect account
  2. Navigate to Settings > API Keys
  3. Create a new API key
  4. Copy the key (it starts with `pk_`)

  ### Setting up in n8n

  1. In n8n, create new credentials for "DiviUp Connect API"
  2. Paste your API key in the API Key field
  3. Save the credentials

  ## Compatibility

  Compatible with n8n@1.60.0 or later.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [DiviUp Connect API documentation](https://diviupconnect.com/docs/api)

ai_documentation_summary:
  {"purpose":"A community node that connects n8n workflows to the DiviUp Connect API for managing automation runs and executing agents.","capabilities":["Create new run containers with optional playbook association and variables","Update existing run status","Execute agents/modules in sync mode","Execute agents/modules in async mode"],"authentication":"API key required","commonUseCases":["Automating workflow runs via n8n","Triggering agent execution based on workflow conditions","Managing run status updates programmatically"],"limitations":["Requires DiviUp Connect account and API key","Compatible only with n8n version 1.60.0 or later"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.credentialManager"]}


node_type: @lusha-org/n8n-nodes-lusha.lusha
package_name: @lusha-org/n8n-nodes-lusha
display_name: Lusha
description: Lusha API integration for contact and company enrichment with prospecting
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: lusha-oss
author_github_url: https://github.com/lusha-oss/n8n-nodes-lusha.git
npm_package_name: @lusha-org/n8n-nodes-lusha
npm_version: 1.0.10
community_fetched_at: 2026-04-16T09:43:36.225Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Company",
          "value": "company"
        }
      ],
      "description": "The resource to operate on",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "enrichSingle",
      "options": [
        {
          "name": "Enrich Single",
          "value": "enrichSingle",
          "action": "Enrich a single contact",
          "description": "Enrich a single contact with additional information"
        },
        {
          "name": "Enrich Bulk",
          "value": "enrichBulk",
          "action": "Enrich contacts in bulk",
          "description": "Enrich multiple contacts with additional information"
        },
        {
          "name": "Search Contacts",
          "value": "searchContacts",
          "action": "Search for contacts",
          "description": "Search and discover new contacts based on criteria"
        },
        {
          "name": "Enrich from Search",
          "value": "enrichFromSearch",
          "action": "Enrich contacts from search results",
          "description": "Enrich contacts found through a previous search"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "enrichSingle",
      "options": [
        {
          "name": "Enrich Single",
          "value": "enrichSingle",
          "action": "Enrich a single company",
          "description": "Enrich a single company with additional information"
        },
        {
          "name": "Enrich Bulk",
          "value": "enrichBulk",
          "action": "Enrich companies in bulk",
          "description": "Enrich multiple companies with additional information"
        },
        {
          "name": "Search Companies",
          "value": "searchCompanies",
          "action": "Search for companies",
          "description": "Search and discover new companies based on criteria"
        },
        {
          "name": "Enrich from Search",
          "value": "enrichFromSearch",
          "action": "Enrich companies from search results",
          "description": "Enrich companies found through a previous search"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Enrich Single",
      "value": "enrichSingle",
      "action": "Enrich a single contact",
      "description": "Enrich a single contact with additional information",
      "resource": "contact"
    },
    {
      "name": "Enrich Bulk",
      "value": "enrichBulk",
      "action": "Enrich contacts in bulk",
      "description": "Enrich multiple contacts with additional information",
      "resource": "contact"
    },
    {
      "name": "Search Contacts",
      "value": "searchContacts",
      "action": "Search for contacts",
      "description": "Search and discover new contacts based on criteria",
      "resource": "contact"
    },
    {
      "name": "Enrich from Search",
      "value": "enrichFromSearch",
      "action": "Enrich contacts from search results",
      "description": "Enrich contacts found through a previous search",
      "resource": "contact"
    },
    {
      "name": "Enrich Single",
      "value": "enrichSingle",
      "action": "Enrich a single company",
      "description": "Enrich a single company with additional information",
      "resource": "company"
    },
    {
      "name": "Enrich Bulk",
      "value": "enrichBulk",
      "action": "Enrich companies in bulk",
      "description": "Enrich multiple companies with additional information",
      "resource": "company"
    },
    {
      "name": "Search Companies",
      "value": "searchCompanies",
      "action": "Search for companies",
      "description": "Search and discover new companies based on criteria",
      "resource": "company"
    },
    {
      "name": "Enrich from Search",
      "value": "enrichFromSearch",
      "action": "Enrich companies from search results",
      "description": "Enrich companies found through a previous search",
      "resource": "company"
    }
  ]

npm_readme:
  # n8n-nodes-lusha

  This is an n8n community node that integrates [Lusha](https://www.lusha.com/) with n8n, enabling contact and company data enrichment directly in your workflows.

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

  ## Features

  This node provides comprehensive access to Lusha's API capabilities:

  ### 🧑‍💼 Contact Operations

  - **Single Contact Enrichment** - Find contact details using name & company, email, or LinkedIn URL
  - **Bulk Contact Enrichment** - Enrich up to 100 contacts in a single operation
  - **Contact Prospecting** - Search for contacts with advanced filters
  - **Smart Enrichment** - Enrich all, new, or specific contacts from search results

  ### 🏢 Company Operations

  - **Single Company Enrichment** - Get company details using domain or company name
  - **Bulk Company Enrichment** - Enrich up to 100 companies at once
  - **Company Prospecting** - Search for companies with comprehensive filters
  - **Flexible Selection** - Enrich all or specific companies from search results

  ### 🔍 Advanced Filtering

  - **Contact Filters**: Departments, seniority levels, job titles, locations, existing data points
  - **Company Filters**: Industries, sub-industries, employee count, revenue ranges, technologies, locations, SIC/NAICS codes
  - **Smart Pagination**: Navigate through large result sets efficiently

  ## Installation

  ### Community Node (Recommended)

  In your n8n instance:

  1. Go to **Settings** > **Community Nodes**
  2. Click **Install a community node**
  3. Enter: `n8n-nodes-lusha`
  4. Click **Install**

  ### Manual Installation

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

  # Clone this repository
  git clone https://github.com/lusha-oss/n8n-nodes-lusha.git

  # Install dependencies
  cd n8n-nodes-lusha
  npm install

  # Build the node
  npm run build

  # Restart n8n
  ```

  ## Credentials

  To use this node, you'll need a Lusha API key:

  1. Sign up for a [Lusha account](https://www.lusha.com/)
  2. Navigate to Settings > API
  3. Generate your API key
  4. In n8n, add new Lusha credentials with your API key

  ## Usage Examples

  ### Example 1: Enrich Single Contact

  Find contact information using a person's name and company:

  - **Resource**: Contact
  - **Operation**: Enrich Single
  - **Search By**: Name and Company
  - **First Name**: John
  - **Last Name**: Doe
  - **Company Name**: Acme Corp

  ### Example 2: Bulk Company Enrichment

  Enrich multiple companies from a spreadsheet:

  - **Resource**: Company
  - **Operation**: Enrich Bulk
  - **Companies JSON**: Connect from previous node or provide JSON array

  ### Example 3: Contact Prospecting

  Search for sales leaders in technology companies:

  - **Resource**: Prospecting
  - **Operation**: Search Contacts
  - **Departments**: Sales
  - **Seniority**: Director, Vice President, C-Suite
  - **Industries**: Technology

  ### Example 4: Enrich Search Results

  After running a prospecting search:

  - **Resource**: Prospecting
  - **Operation**: Enrich Contacts
  - **Selection Type**: All Contacts
  - **Request ID**: (automatically passed from search)

  ## Parameters

  ### Contact Enrichment

  - **Search Methods**: Name & Company, Email, LinkedIn URL
  - **Filter Options**: All data, emails only, phones only

  ### Company Enrichment

  - **Search Methods**: Domain, Company Name
  - **Bulk Format**: JSON array with company identifiers

  ### Prospecting Filters

  #### Contact Filters

  - **Job Titles**: Free text, comma-separated
  - **Departments**: Dropdown selection (Sales, Marketing, IT, etc.)
  - **Seniority**: Levels from Intern to Founder
  - **Locations**: Countries, states, cities
  - **Data Points**: Filter by available contact information

  #### Company Filters

  - **Industries**: Main industry categories
  - **Sub-Industries**: Specific industry segments
  - **Employee Count**: Size ranges from 1-10 to 10,000+
  - **Revenue**: Min/Max revenue selection
  - **Locations**: Company headquarters
  - **Technologies**: Tech stack used
  - **Codes**: SIC and NAICS classifications

  ## Error Handling

  The node includes comprehensive error handling:

  - Invalid API credentials
  - Rate limiting responses
  - Invalid input data
  - Empty results handling
  - Network timeouts

  ## Rate Limits

  Please be aware of Lusha's API rate limits:

  - Check your plan's specific limits
  - The node handles responses appropriately
  - Consider adding delays for large bulk operations

  ## Support

  - **Issues**: [GitHub Issues](https://github.com/yourusername/n8n-nodes-lusha/issues)
  - **n8n Community**: [n8n Community Forum](https://community.n8n.io)
  - **Lusha API Docs**: [Lusha API Documentation](https://docs.lusha.com/apis)

  ## License

  [MIT](LICENSE.md)

  ## Contributing

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

  ## Version History

  ### 1.0.0

  - Initial release
  - Full contact and company enrichment
  - Prospecting search and enrichment
  - Bulk operations support
  - Advanced filtering options

  ## Credits

  Created by [Your Name]
  Based on the Lusha API v2

ai_documentation_summary:
  {"purpose":"Integrates Lusha API with n8n to enrich contact and company data, perform prospecting searches, and filter results for sales and marketing workflows.","capabilities":["Single contact enrichment by name, company, email, or LinkedIn URL","Bulk contact enrichment (up to 100 contacts)","Contact prospecting with advanced filters","Smart enrichment of search results (all or specific)","Single company enrichment by domain or name","Bulk company enrichment (up to 100 companies)","Company prospecting with comprehensive filters","Filtering by job titles, departments, seniority, locations, industries, employee count, revenue, and technologies","Smart pagination for large result sets"],"authentication":"API key required","commonUseCases":["Sales prospecting by finding decision-makers in target companies","Enriching lead lists with email addresses and phone numbers","Validating existing contact data for accuracy","Finding contacts in specific departments (e.g., Sales, Marketing) at target companies","Bulk updating company details for a database"],"limitations":["Bulk operations are limited to 100 items per request","Subject to Lusha API rate limits","Requires a paid Lusha account for API access","Manual installation requires npm build step"],"relatedNodes":["Spreadsheet","JSON","Delay","HTTP Request","Split In Batches"]}


node_type: n8n-nodes-tazzoai.tazzoAi
package_name: n8n-nodes-tazzoai
display_name: Tazzo.ai
description: Trigger a call via Tazzo.ai voice agent
category: Community
development_style: declarative
version: 1
operations:
  [
  {
  "name": "Trigger",
  "value": "trigger",
  "action": "Start a call"
  }
  ]

credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: np_tazzo
author_github_url: https://github.com/TazzoAI/
npm_package_name: n8n-nodes-tazzoai
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:36.227Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "Call",
          "value": "call"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "trigger",
      "options": [
        {
          "name": "Trigger",
          "value": "trigger",
          "action": "Start a call"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

npm_readme:
  # n8n-nodes-tazzoai

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

  Tazzo.ai is a voice agent platform that enables automated outbound voice calls with AI-powered conversational agents.

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

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

  ## Installation

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

  Or install directly via npm:

  ```bash
  npm install n8n-nodes-tazzoai
  ```

  Or via the n8n UI:
  * Go to **Settings > Community Nodes**
  * Click **Install a Community Node**
  * Enter: `n8n-nodes-tazzoai`

  ## Operations

  * **Trigger Outbound Call** - Initiate outbound voice calls using Tazzo.ai's voice agents

  ## Credentials

  Before using the node, set up your Tazzo.ai login credentials:

  * Go to **Credentials > Create New**
  * Select: **Tazzo.ai API**
  * Fill in:
     * **Email** – your Tazzo.ai account email
     * **Password** – your Tazzo.ai account password
  * Click **Save**


  ## Usage

  ### Using the Node in a Workflow

  * Drag the **Tazzo.ai** node into your workflow
  * Select the credentials you just created
  * Provide the required input parameters:
     * **Agent ID** – ID of the agent who will make the call
     * **Contact Number** – the phone number to be dialed
  * (Optional) Connect it with a trigger node like Webhook or Schedule
  * Run the workflow

  ✅ This will trigger an outbound voice call via the Tazzo.ai platform.

  ### Sample Output

  ```json
  [
    {
      "message": "Call originated successfully",
      "data": {
        "channelId": "12345678-abcd-efgh-ijkl-9876543210ab",
        "callType": "Outbound",
        "outboundNumber": "9988776655",
        "extension": "1122334455",
        "agentId": "abcd1234-5678-90ef-ghij-klmnopqrstuv",
        "campaignBody": {
          "contactNumber": "9988776655",
          "agentId": "abcd1234-5678-90ef-ghij-klmnopqrstuv",
          "originateEndpoint": "1122334455"
        }
      }
    }
  ]
  ```

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Source Code](https://github.com/TazzoAI/n8n-nodes-tazzoai)
  * [npm Package](https://www.npmjs.com/package/n8n-nodes-tazzoai)

  **Maintainer**: Legitbytes  
  **License**: MIT © 2025 Legitbytes

ai_documentation_summary:
  {"purpose":"This n8n community node initiates outbound voice calls using Tazzo.ai's AI-powered conversational agents.","capabilities":["Trigger outbound voice calls","Select specific voice agents by ID","Dial contact numbers","Return call status and metadata in JSON format"],"authentication":"API key required (via Email and Password credentials)","commonUseCases":["Automated customer outreach","Appointment reminders via voice","Lead qualification calls","Scheduled follow-up calls"],"limitations":["Requires manual setup of Tazzo.ai credentials in n8n","Limited to outbound calls only (no inbound handling mentioned)","Requires valid Agent ID and Contact Number to function"],"relatedNodes":["Webhook","Schedule","HTTP Request","Email"]}


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

updated_at: 2026-04-16 09:43:36
author_name: digitalocean-eng
author_github_url: https://github.com/digitalocean-labs/n8n-node-gradient-serverless-inference.git
npm_package_name: @digitalocean/n8n-nodes-digitalocean-gradient-serverless-inference
npm_version: 1.0.6
community_fetched_at: 2026-04-16T09:43:36.227Z
ai_summary_generated_at: 2026-03-25 22:51:43
node_type:
  @digitalocean/n8n-nodes-digitalocean-gradient-serverless-inference.digitalOceanGradientServerlessInference

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

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

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

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

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

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

  ## Installation

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

  ### Quick Installation

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

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

  ### Chat Completion

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

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

  ## Credentials

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

  ## Compatibility

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

  ## Resources

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

  ## Version History

  ### 1.0.0

  - Initial usable release

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation to consume DigitalOcean Gradient™ AI Serverless Inference API for large language model chat completions.","capabilities":["Generate chat completions using DigitalOcean Gradient AI LLMs","Support multiple messages with system, user, and assistant roles","Access multiple available models","Configure customizable inference parameters per API specification"],"authentication":"Model Access Key required","commonUseCases":["Integrate AI chatbots into n8n workflows","Process natural language inputs through DigitalOcean Gradient models","Automate tasks requiring LLM inference"],"limitations":["Requires n8n version 1.0.0 or later","Community node status may require accepting usage risks","Requires n8n instance restart after installation"],"relatedNodes":["DigitalOcean API nodes","AI/LLM nodes","Chat completion nodes"]}


node_type: @sendpulse/n8n-nodes-sendpulse.sendPulseA360
package_name: @sendpulse/n8n-nodes-sendpulse
display_name: SendPulse Automation360
description: Interact with SendPulse API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: sendpulse.com
author_github_url: https://github.com/sendpulse/n8n-nodes-sendpulse.git
npm_package_name: @sendpulse/n8n-nodes-sendpulse
npm_version: 0.0.3
community_fetched_at: 2026-04-16T09:43:36.228Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "flow",
      "options": [
        {
          "name": "Flow",
          "value": "flow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many automation flows",
          "routing": {
            "request": {
              "qs": {
                "limit": "={{ $parameter.additionalFields.limit }}",
                "offset": "={{ $parameter.additionalFields.offset }}"
              },
              "url": "=/autoresponders/list",
              "method": "GET"
            }
          },
          "description": "Get a list of automation flows"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a automation flow",
          "routing": {
            "request": {
              "url": "=/autoresponders/{{ $parameter.flowId }}",
              "method": "GET"
            }
          },
          "description": "Get a automation flow by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many automation flows",
      "routing": {
        "request": {
          "qs": {
            "limit": "={{ $parameter.additionalFields.limit }}",
            "offset": "={{ $parameter.additionalFields.offset }}"
          },
          "url": "=/autoresponders/list",
          "method": "GET"
        }
      },
      "description": "Get a list of automation flows",
      "resource": "flow"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a automation flow",
      "routing": {
        "request": {
          "url": "=/autoresponders/{{ $parameter.flowId }}",
          "method": "GET"
        }
      },
      "description": "Get a automation flow by ID",
      "resource": "flow"
    }
  ]

npm_readme:
  # 🚀 n8n-nodes-sendpulse

  ![SendPulse Logo](icons/sendpulse.svg)

  Official [SendPulse](https://sendpulse.com) integration for [n8n](https://n8n.io).

  SendPulse is an all-in-one multichannel marketing and communication platform.
  It combines email campaigns, SMS, web push, and chatbots with CRM, automation flows, and transactional messaging.
  Using the n8n integration, teams can sync customer data, trigger personalized journeys from any app, and centralize product and growth experiments in one flexible workflow.

  This repo contains SendPulse Automation360, SendPulse Chatbots, SendPulse CRM, SendPulse Email, SendPulse FileManager,
  SendPulse Pop-ups, SendPulse SMS, SendPulse SMTP, SendPulse Verifier and SendPulse Web Push community nodes for n8n.

  These nodes currently only supports the most popular SendPulse APIs.
  If there's an API missing that you would like to use, please let us know.
  In the meantime, you can also use the generic [HTTP Request](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) node to construct your requests.

  ## 📚 Table of Contents

  * [Installation](#installation)
  * [Credentials](#credentials)
  * [Usage](#usage)
  * [Operations](#operations)
  * [Workflow Examples](#workflow-examples)
  * [Compatibility](#compatibility)
  * [Resources](#resources)
  * [License](#license)

  ## 📦 Installation

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

  ## 🔐 Credentials

  ### Client ID & Client Secret

  1. Log in to your **[SendPulse account](https://sendpulse.com)**
  2. Navigate to **Account settings > API**
  3. Copy your **Client ID**
  4. Copy your **Client Secret**

  ### Access Token

  The authorization process requires an access token for signing each further API request.

  The necessary parameters to obtain an access token can be found in the private account settings page found on the following URL in the [API tab](https://login.sendpulse.com/settings/#api).

  To get an access token you have to send a POST request to:

  ```
  https://api.sendpulse.com/oauth/access_token
  ```

  Request parameters:

  | Parameter     | Type   | Description                             |
  |---------------|--------|-----------------------------------------|
  | grant_type    | string | Has to be equal to `client_credentials` |
  | client_id     | string | Your ID                                 |
  | client_secret | string | Your Secret                             |

  ## 🧩 Usage

  Add any SendPulse node to a workflow:

  ![Add SendPulse to Workflow](images/node.png)

  Configure a basic query and hit "Execute step" to execute the query:

  ![Test a Google Search through SerpApi](images/mailing-list-operation.png)

  ## 🛠️ Operations

  All operations are documented in the [SendPulse REST API Documentation](https://sendpulse.com/integrations/api).

  ### 🔄 SendPulse Automation360 Node

  | Resource | Operation                                                        |
  |----------|------------------------------------------------------------------|
  | Flow     | [Get Many](https://sendpulse.com/integrations/api/a360#get-flows) |
  | Flow     | [Get](https://sendpulse.com/integrations/api/a360#get-info-flow)  |

  ### 🤖 SendPulse Chatbots Node

  | Resource | Operation                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | Bot      | [Get Many](https://sendpulse.com/integrations/api/chatbot#/bots/get_bots)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | Dialog   | [Get Many](https://sendpulse.com/integrations/api/chatbot#/dialogs/get_dialogs)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | Contact  | Get ([Telegram](https://sendpulse.com/integrations/api/chatbot/telegram#/contacts/get_contacts_get), [Facebook Messenger](https://sendpulse.com/integrations/api/chatbot/facebook#/contacts/get_contacts_get), [WhatsApp](https://sendpulse.com/integrations/api/chatbot/whatsapp#/contacts/get_contacts_get), [LiveChat](https://sendpulse.com/integrations/api/chatbot/live-chat#/contacts/get_contacts_get), [Instagram](https://sendpulse.com/integrations/api/chatbot/instagram#/contacts/get_contacts_get), [Viber](https://sendpulse.com/integrations/api/chatbot/viber#/contacts/get_contacts_get), [TikTok](https://sendpulse.com/integrations/api/chatbot/tiktok#/contacts/get_contacts_get))                        |
  | Contact  | Send Message ([Telegram](https://sendpulse.com/integrations/api/chatbot/telegram#/contacts/post_contacts_send), [Facebook Messenger](https://sendpulse.com/integrations/api/chatbot/facebook#/contacts/post_contacts_send), [WhatsApp](https://sendpulse.com/integrations/api/chatbot/whatsapp#/contacts/post_contacts_send), [LiveChat](https://sendpulse.com/integrations/api/chatbot/live-chat#/contacts/post_contacts_send), [Instagram](https://sendpulse.com/integrations/api/chatbot/instagram#/contacts/post_contacts_send), [Viber](https://sendpulse.com/integrations/api/chatbot/viber#/contacts/post_contacts_send), [TikTok](https://sendpulse.com/integrations/api/chatbot/tiktok#/contacts/post_contacts_send)) |
  | Flow     | Run ([Telegram](https://sendpulse.com/integrations/api/chatbot/telegram#/flows/post_flows_run), [Facebook Messenger](https://sendpulse.com/integrations/api/chatbot/facebook#/flows/post_flows_run), [WhatsApp](https://sendpulse.com/integrations/api/chatbot/whatsapp#/flows/post_flows_run), [LiveChat](https://sendpulse.com/integrations/api/chatbot/live-chat#/flows/post_flows_run), [Instagram](https://sendpulse.com/integrations/api/chatbot/instagram#/flows/post_flows_run), [Viber](https://sendpulse.com/integrations/api/chatbot/viber#/flows/post_flows_run), [TikTok](https://sendpulse.com/integrations/api/chatbot/tiktok#/flows/post_flows_run))                                                           |

  ### 📇 SendPulse CRM Node

  | Resource | Operation                                                                                                           |
  |----------|---------------------------------------------------------------------------------------------------------------------|
  | Contact  | [Get Many](https://sendpulse.com/integrations/api/crm#/Contacts/post_contacts_get_list)                              |
  | Contact  | [Get](https://sendpulse.com/integrations/api/crm#/Contacts/get_contacts__contactId_)                                 |
  | Contact  | [Get by External ID](https://sendpulse.com/integrations/api/crm#/Contacts/get_contacts_external__externalContactId_) |
  | Contact  | [Create](https://sendpulse.com/integrations/api/crm#/Contacts/post_contacts_create)                                  |
  | Deal     | [Get Many](https://sendpulse.com/integrations/api/crm#/Deals/post_deals_get_list)                                    |
  | Deal     | [Get](https://sendpulse.com/integrations/api/crm#/Deals/get_deals__dealId_)                                          |
  | Deal     | [Create](https://sendpulse.com/integrations/api/crm#/Deals/post_deals)                                               |
  | Pipeline | [Get Many](https://sendpulse.com/integrations/api/crm#/Pipelines/get_pipelines)                                      |
  | Pipeline | [Get](https://sendpulse.com/integrations/api/crm#/Pipelines/get_pipelines__pipelineId_)                              |
  | Pipeline | [Create](https://sendpulse.com/integrations/api/crm#/Pipelines/post_pipelines)                                       |

  ### ✉️ SendPulse Email Node

  | Resource     | Operation                                                                                                                                                                   |
  |--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | Mailing List | [Get Many](https://sendpulse.com/integrations/api/bulk-email#lists-list)                                                                                                     |
  | Mailing List | [Get](https://sendpulse.com/integrations/api/bulk-email#list-info)                                                                                                           |
  | Mailing List | [Create](https://sendpulse.com/integrations/api/bulk-email#create-list)                                                                                                      |
  | Email        | Add to List ([single-opt-in](https://sendpulse.com/integrations/api/bulk-email#add-email), [double-opt-in)](https://sendpulse.com/integrations/api/bulk-email#double-opt-in)) |
  | Campaign | [Get Many](https://sendpulse.com/integrations/api/bulk-email#campaigns-list)                                                                                                     |
  | Campaign | [Get](https://sendpulse.com/integrations/api/bulk-email#campaign-info)                                                                                                           |
  | Campaign | [Create](https://sendpulse.com/integrations/api/bulk-email#create-campaign)                                                                                                      |

  ### 📁 SendPulse FileManager Node

  | Resource | Operation                                                                    |
  |----------|------------------------------------------------------------------------------|
  | File     | [Upload](https://sendpulse.com/integrations/api/file-manager#/File/post_file) |


  ### 🪄 SendPulse Pop-ups Node

  | Resource | Operation                                                                                              |
  |----------|--------------------------------------------------------------------------------------------------------|
  | Project  | [Get Many](https://sendpulse.com/integrations/api/pop-up#/Project/get_public_api_widgets_list)          |
  | Pop-Up   | [Get Many](https://sendpulse.com/integrations/api/pop-up#/Popup/get_public_api_popups_list__projectId_) |

  ### 📱 SendPulse SMS Node

  | Resource     | Operation                                                                                 |
  |--------------|-------------------------------------------------------------------------------------------|
  | Phone Number | [Add to Mailing List](https://sendpulse.com/integrations/api/bulk-sms#add-telephone)       |
  | Campaign     | [Create](https://sendpulse.com/integrations/api/bulk-sms#create-campaign-for-mailing-list) |

  ### 📨 SendPulse SMTP Node

  | Resource | Operation                                                                   |
  | -------- |-----------------------------------------------------------------------------|
  | Email    | [Get Many](https://sendpulse.com/integrations/api/smtp#get-emails-list-smtp) |
  | Email    | [Get](https://sendpulse.com/integrations/api/smtp#email-info-smtp)           |
  | Email    | [Send](https://sendpulse.com/integrations/api/smtp#send-email-smtp)          |

  ### ✔️ SendPulse Verifier Node

  | Resource     | Operation                                                                                 |
  | ------------ |-------------------------------------------------------------------------------------------|
  | Mailing List | [Verify](https://sendpulse.com/integrations/api/verifier#verify-mailing-list)              |
  | Mailing List | [Get Verified Lists](https://sendpulse.com/integrations/api/verifier#get-verified-lists)   |
  | Mailing List | [Get Verification Results](https://sendpulse.com/integrations/api/verifier#get-results-ml) |

  ### 🔔 SendPulse Web Push Node

  | Resource | Operation                                                                    |
  | -------- |------------------------------------------------------------------------------|
  | Website  | [Get Many](https://sendpulse.com/integrations/api/web-push#get-websites-list) |
  | Website  | [Get](https://sendpulse.com/integrations/api/web-push#site_info)              |
  | Campaign | [Create](https://sendpulse.com/integrations/api/web-push#create-push)         |

  ## 🧪 Workflow Examples

  #### Workflow 1: Create an email campaign

  ![Workflow 1](images/workflow1.png)

  **Steps:**
  1. Get mailing lists
  2. Combine results into one variable
  3. Set sender's name, sender's email, subject, base64 encoded message content and mailing list ID
  4. Send a campaign

  <details>
  <summary>JSON</summary>

  ```json
  {
    "name": "Creating an email campaign",
    "nodes": [
      {
        "parameters": {},
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [
          0,
          0
        ],
        "id": "162576dc-89ec-4f80-902c-1a048995caa3",
        "name": "When clicking ‘Execute workflow’"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "resource": "campaign",
          "operation": "create",
          "senderName": "={{ $json.senderName }}",
          "senderEmail": "={{ $json.senderEmail }}",
          "subject": "={{ $json.subject }}",
          "htmlBody": "={{ $json.htmlBodyBase64 }}",
          "listIds": "={{ $json.mailingListId }}",
          "name": "=Black Friday",
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseEmail",
        "typeVersion": 1,
        "position": [
          832,
          0
        ],
        "id": "f0486554-11b2-4ef4-ac58-1e4c287f189b",
        "name": "Create email campaign"
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "3f41524f-412d-4a70-8871-a23c615786d6",
                "name": "senderName",
                "value": "<sender_name>",
                "type": "string"
              },
              {
                "id": "c86c494a-73cd-4ea2-b6eb-4d9190fea113",
                "name": "senderEmail",
                "value": "<sender_email>",
                "type": "string"
              },
              {
                "id": "f0b4bbee-1556-43b5-9da4-f3c1833ffb84",
                "name": "subject",
                "value": "<subject>",
                "type": "string"
              },
              {
                "id": "e0f6b188-867e-4e95-b638-b007151cf3da",
                "name": "htmlBodyBase64",
                "value": "<html_body_base_64>",
                "type": "string"
              },
              {
                "id": "82042391-f675-46be-af47-0bde90057de5",
                "name": "=mailingListId",
                "value": "=<mailing_list_id>",
                "type": "number"
              }
            ]
          },
          "options": {}
        },
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          624,
          0
        ],
        "id": "1dffd9a3-fb32-40e1-aebd-f7346aa985f2",
        "name": "Workflow Configuration"
      },
      {
        "parameters": {
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseEmail",
        "typeVersion": 1,
        "position": [
          208,
          0
        ],
        "id": "0e1b317f-acaf-4852-bf7d-535aebbcaab3",
        "name": "Get many mailing lists"
      },
      {
        "parameters": {
          "aggregate": "aggregateAllItemData",
          "destinationFieldName": "mailingLists",
          "options": {}
        },
        "id": "7bd43960-7cae-420d-9146-130310dc0efb",
        "name": "Combine Items",
        "type": "n8n-nodes-base.aggregate",
        "typeVersion": 1,
        "position": [
          416,
          0
        ]
      }
    ],
    "pinData": {},
    "connections": {
      "When clicking ‘Execute workflow’": {
        "main": [
          [
            {
              "node": "Get many mailing lists",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Create email campaign": {
        "main": [
          []
        ]
      },
      "Workflow Configuration": {
        "main": [
          [
            {
              "node": "Create email campaign",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Get many mailing lists": {
        "main": [
          [
            {
              "node": "Combine Items",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Combine Items": {
        "main": [
          [
            {
              "node": "Workflow Configuration",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "active": false,
    "settings": {
      "executionOrder": "v1"
    },
    "versionId": "59ed90df-5927-4019-bfd2-5ce67858d0ee",
    "meta": {
      "templateCredsSetupCompleted": true,
      "instanceId": "791011c5d912fa3910b1b3f0a58e52e888701c971bd92f7e7fc8373a23481dcb"
    },
    "id": "JB4pgZqZbQmUT76u",
    "tags": []
  }
  ```
  </details> 

  ---

  #### Workflow 2: Verify a mailing list and get verification results

  ![Workflow 2](images/workflow2.png)

  **Steps:**
  1. Start with mailing list ID input
  2. Verify mailing list
  3. Wait 5 seconds
  4. Get mailing list verification results

  <details>
  <summary>JSON</summary>

  ```json
  {
    "name": "Verify a mailing list and get verification results",
    "nodes": [
      {
        "parameters": {},
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [
          -80,
          144
        ],
        "id": "e6f335fe-9185-4e2a-b15b-6aaeab5151d7",
        "name": "When clicking ‘Execute workflow’"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "operation": "verify",
          "mailingListId": "={{ $json.mailingListId }}",
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseVerifier",
        "typeVersion": 1,
        "position": [
          336,
          144
        ],
        "id": "d646a9b4-d672-4098-b243-8a0a802e0b19",
        "name": "Verify a mailing list"
      },
      {
        "parameters": {},
        "type": "n8n-nodes-base.wait",
        "typeVersion": 1.1,
        "position": [
          960,
          128
        ],
        "id": "f08cd010-c410-4140-aa7d-996e95afac04",
        "name": "Wait",
        "webhookId": "d3afa9c8-b36f-45e3-8ef5-b956a98b79c5"
      },
      {
        "parameters": {
          "conditions": {
            "options": {
              "caseSensitive": true,
              "leftValue": "",
              "typeValidation": "strict",
              "version": 3
            },
            "conditions": [
              {
                "id": "a3932ac8-334e-4d13-88d1-bb7921cb5852",
                "leftValue": "={{ $json.status }}",
                "rightValue": 0,
                "operator": {
                  "type": "number",
                  "operation": "equals"
                }
              }
            ],
            "combinator": "and"
          },
          "options": {}
        },
        "type": "n8n-nodes-base.if",
        "typeVersion": 2.3,
        "position": [
          752,
          144
        ],
        "id": "49a7edbc-ffd7-4126-b3e4-8078a2a0886c",
        "name": "If"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "operation": "getVerificationResults",
          "mailingListId": "={{ $('Workflow Configuration').item.json.mailingListId }}",
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseVerifier",
        "typeVersion": 1,
        "position": [
          544,
          144
        ],
        "id": "1565c302-b889-4b1e-aebb-1541da25d966",
        "name": "Get mailing list verification results",
        "credentials": {
          "sendPulseApi": {
            "id": "SguuezBTI7kLeYfQ",
            "name": "SendPulse account"
          }
        }
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "3f41524f-412d-4a70-8871-a23c615786d6",
                "name": "mailingListId",
                "value": 498261,
                "type": "number"
              }
            ]
          },
          "options": {}
        },
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          128,
          144
        ],
        "id": "c7aa188a-7c99-44c0-b666-fb5c9c4e4c92",
        "name": "Workflow Configuration"
      }
    ],
    "pinData": {},
    "connections": {
      "When clicking ‘Execute workflow’": {
        "main": [
          [
            {
              "node": "Workflow Configuration",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Wait": {
        "main": [
          [
            {
              "node": "Get mailing list verification results",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Verify a mailing list": {
        "main": [
          [
            {
              "node": "Get mailing list verification results",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Get mailing list verification results": {
        "main": [
          [
            {
              "node": "If",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "If": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Workflow Configuration": {
        "main": [
          [
            {
              "node": "Verify a mailing list",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "active": false,
    "settings": {
      "executionOrder": "v1"
    },
    "versionId": "5f24f95a-2d59-4650-a899-c68663a47d85",
    "meta": {
      "templateCredsSetupCompleted": true,
      "instanceId": "791011c5d912fa3910b1b3f0a58e52e888701c971bd92f7e7fc8373a23481dcb"
    },
    "id": "S04LSCXtbAoNxzY3",
    "tags": []
  }
  ```
  </details> 

  ---

  #### Workflow 3: Create a deal

  ![Workflow 3](images/workflow3.png)

  **Steps:**
  1. Get pipelines
  2. Get contacts
  3. Set pipeline ID, step ID, deal name, contact ID, currency and price
  4. Create a deal

  <details>
  <summary>JSON</summary>

  ```json
  {
    "name": "Create a deal",
    "nodes": [
      {
        "parameters": {},
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [
          0,
          0
        ],
        "id": "20331738-50ec-47c4-892f-015a0eccc636",
        "name": "When clicking ‘Execute workflow’"
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "444749f2-d83c-4a93-bfed-ba587dc2d16a",
                "name": "pipelineId",
                "value": "={{ $('Get many pipelines').item.json.data[0].id }}",
                "type": "number"
              },
              {
                "id": "c8e19849-6952-4440-bcfe-587b4910d5f1",
                "name": "stepId",
                "value": "={{ $('Get many pipelines').item.json.data[0].steps[0].id }}",
                "type": "number"
              },
              {
                "id": "3f41524f-412d-4a70-8871-a23c615786d6",
                "name": "dealName",
                "value": "Purchase of Electronic Equipment",
                "type": "string"
              },
              {
                "id": "9612e468-854a-4fa6-8e63-9ccddc0a247d",
                "name": "contactId",
                "value": "={{ $json.data.list[0].id }}",
                "type": "number"
              },
              {
                "id": "8d89b9f5-517a-4a97-8f22-ec683387a26e",
                "name": "currency",
                "value": "EUR",
                "type": "string"
              },
              {
                "id": "3cdbfd58-33b3-4ca2-9689-5215ba6aff7f",
                "name": "price",
                "value": 5000,
                "type": "number"
              }
            ]
          },
          "options": {}
        },
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          624,
          0
        ],
        "id": "21c95abb-3aa6-4dac-ae9f-0a05c3c62cf5",
        "name": "Workflow Configuration"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "resource": "deal",
          "operation": "create",
          "pipelineId": "={{ $json.pipelineId }}",
          "stepId": "={{ $json.stepId }}",
          "name": "={{ $json.dealName }}",
          "additionalFields": {
            "contactIds": [
              "={{ $json.contactId }}"
            ],
            "currency": "={{ $json.currency }}",
            "price": "={{ $json.price }}"
          },
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseCrm",
        "typeVersion": 1,
        "position": [
          832,
          0
        ],
        "id": "68c9ba9b-515e-4294-b202-cdeada51551f",
        "name": "Create a deal",
        "credentials": {
          "sendPulseApi": {
            "id": "vgJTBLhnSy833qmE",
            "name": "SendPulse account"
          }
        }
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseCrm",
        "typeVersion": 1,
        "position": [
          416,
          0
        ],
        "id": "c8f0757b-e21e-43f0-b025-10db61dc6841",
        "name": "Get many contacts",
        "credentials": {
          "sendPulseApi": {
            "id": "vgJTBLhnSy833qmE",
            "name": "SendPulse account"
          }
        }
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "resource": "pipeline",
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseCrm",
        "typeVersion": 1,
        "position": [
          208,
          0
        ],
        "id": "6ef77dd7-c0bb-47c1-9653-77f19b6a3950",
        "name": "Get many pipelines"
      }
    ],
    "pinData": {},
    "connections": {
      "When clicking ‘Execute workflow’": {
        "main": [
          [
            {
              "node": "Get many pipelines",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Workflow Configuration": {
        "main": [
          [
            {
              "node": "Create a deal",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Create a deal": {
        "main": [
          []
        ]
      },
      "Get many contacts": {
        "main": [
          [
            {
              "node": "Workflow Configuration",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Get many pipelines": {
        "main": [
          [
            {
              "node": "Get many contacts",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "active": false,
    "settings": {
      "executionOrder": "v1"
    },
    "versionId": "789d96b0-448e-4496-a469-f96951fca290",
    "meta": {
      "templateCredsSetupCompleted": true,
      "instanceId": "791011c5d912fa3910b1b3f0a58e52e888701c971bd92f7e7fc8373a23481dcb"
    },
    "id": "IQryYdrRhRkFQQf7",
    "tags": []
  }
  ```
  </details> 

  ## 🧬 Compatibility

  Tested with n8n version 1.123.4.

  ## 📖 Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [SendPulse Website](https://sendpulse.com)
  * [SendPulse REST API Documentation](https://sendpulse.com/integrations/api)
  * [SendPulse Knowledge Base](https://sendpulse.com/knowledge-base)
  * [SendPulse Community](https://community.sendpulse.com)
  * [SendPulse Blog](https://sendpulse.com/blog)

  ## 📄 License

  [MIT](LICENSE.md)

  Copyright © 2025 SendPulse

ai_documentation_summary:
  {"purpose":"The SendPulse Automation360 node enables interaction with the SendPulse API to manage marketing automation flows, including retrieving flow lists and individual flow details.","capabilities":["Retrieve multiple automation flows","Retrieve a single automation flow by ID","Integrate SendPulse CRM, Email, SMS, and Chatbot features via n8n workflows"],"authentication":"OAuth2 (Client ID and Client Secret required to obtain an access token)","commonUseCases":["Automating customer journey triggers from external apps","Syncing customer data between n8n and SendPulse CRM","Centralizing marketing experiments and growth tracking"],"limitations":["Only supports the most popular SendPulse APIs; some API endpoints may be missing","Missing API endpoints can be bypassed using the generic HTTP Request node"],"relatedNodes":["n8n-nodes-base.httprequest","SendPulse Email","SendPulse CRM","SendPulse SMS","SendPulse Chatbots"]}


node_type: n8n-nodes-softr.softrTrigger
package_name: n8n-nodes-softr
display_name: Softr Trigger
description: Triggers when a Softr record is created or updated
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dariusz-softr
author_github_url: https://github.com/softr-io/n8n-softr.git
npm_package_name: n8n-nodes-softr
npm_version: 1.0.8
community_fetched_at: 2026-04-16T09:43:36.234Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-softr

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

  Softr is a no-code platform that allows you to build web applications and websites. It provides a user-friendly interface for creating and managing applications without needing to write code.

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

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

  ## Installation

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

  ## Operations

  ### Softr Databases

  Triggers

  * `On New Record`: Triggered when a new record is created in a Softr database.
  * `On Updated Record`: Triggered when an existing record in a Softr database is updated.

  Actions:

  * `Create Record`: Creates a new record in a specified Softr database.
  * `Update Record`: Updates an existing record in a specified Softr database.
  * `Delete Record`: Deletes a record from a specified Softr database.
  * `Get Record`: Retrieves a specific record from a specified Softr database.
  * `Get All Records`: Retrieves all records from a specified Softr database.
  * `Search Records`: Searches for records in a specified Softr database based on a search query.

  ### Softr Application Users

  * `Create Application User`: Creates a new user in a specified Softr application.
  * `Delete Application User`: Deletes a user from a specified Softr application.

  ## Credentials

  To use Softr, you must authenticate with your API Key. You can find your API Key in your [Softr account settings](https://studio.softr.io/user/apisettings).

  More details on how to find your API Key can be found in the [Softr documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/api-setup-and-endpoints/j1PrTZxt7pv3iZCnZ5Fp19).

  ## Compatibility

  Implemented and tested against n8n version 1.103.2.

  ## Usage

  Softr node uses Softr Public API under the hood. You can find more information about the API in the [Softr API documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/softr-database-api/5aZs45abxPkQ4dURKFwRGF).

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Softr API documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/softr-database-api/5aZs45abxPkQ4dURKFwRGF)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when Softr database records are created or updated, and allows managing Softr database records and application users.","capabilities":["Trigger on new record creation","Trigger on record update","Create new database records","Update existing database records","Delete database records","Retrieve specific database records","Retrieve all database records","Search database records","Create application users","Delete application users"],"authentication":"API Key required","commonUseCases":["Automate database updates when users modify content in Softr","Sync Softr data to external systems upon record changes","Manage user accounts in Softr applications","Create or update records based on external triggers"],"limitations":["Uses Softr Public API under the hood","Requires valid Softr API Key from account settings"],"relatedNodes":["n8n-nodes-softr.softrDatabase","n8n-nodes-softr.softrApplicationUser"]}


node_type: n8n-nodes-jsonpost.jsonPostTrigger
package_name: n8n-nodes-jsonpost
display_name: CrispForms Trigger
description: Starts the workflow when a form is submitted to CrispForms
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: ubergeekady
author_github_url: https://github.com/ubergeekady/
npm_package_name: n8n-nodes-jsonpost
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.235Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-jsonpost

  A custom n8n node for integrating with JSONPost.com webhooks. This node allows you to easily create, manage, and receive webhooks from JSONPost endpoints in your n8n workflows.

  ## Features

  - **Easy Webhook Management**: Create and delete webhooks for JSONPost endpoints
  - **Real-time Data Reception**: Receive webhook data in real-time within your n8n workflows
  - **Secure Authentication**: Uses API key authentication for secure access to JSONPost services
  - **Event Filtering**: Subscribe to specific event types from your JSONPost endpoints
  - **Automatic Cleanup**: Properly handles webhook cleanup when workflows are deactivated

  ## Installation

  ### From npm (Recommended)

  ```bash
  npm install n8n-nodes-jsonpost
  ```

  ### n8n Community Nodes

  You can also install this node directly through n8n's community nodes feature:

  1. Go to **Settings** > **Community Nodes**
  2. Click **Install a community node**
  3. Enter `n8n-nodes-jsonpost`
  4. Click **Install**

  ## Quick Start

  ### 1. Set up Credentials

  1. In n8n, go to **Credentials** and create a new **JSONPost API** credential
  2. Enter your JSONPost API key (get it from your JSONPost dashboard)
  3. Test the connection to ensure it's working properly

  ### 2. Add the Node

  1. Add the **JSONPost Trigger** node to your workflow
  2. Select your JSONPost API credential
  3. Enter your **Endpoint ID** (from your JSONPost dashboard)
  4. Choose the **Event Type** you want to listen for (POST, GET, PUT, DELETE)

  ### 3. Activate and Test

  1. Activate the workflow
  2. The node will automatically create a webhook subscription with JSONPost
  3. Send data to your JSONPost endpoint to trigger your workflow

  ## Usage

  ### Accessing Webhook Data

  The JSONPost Trigger node outputs the complete webhook payload. You can access this data in subsequent nodes using:

  - `{{ $json.body }}` - The request body
  - `{{ $json.headers }}` - Request headers  
  - `{{ $json.query }}` - Query parameters
  - `{{ $json.method }}` - HTTP method used
  - `{{ $json.timestamp }}` - When the request was received

  ### Example Workflow

  1. **JSONPost Trigger** - Receives webhook data
  2. **Set Node** - Extract specific fields from the payload
  3. **HTTP Request** - Send processed data to another service
  4. **Email Node** - Send notification about the received data

  ## Configuration Options

  ### JSONPost Trigger Node

  - **Credential**: Your JSONPost API credential
  - **Endpoint ID**: The ID of your JSONPost endpoint (found in your JSONPost dashboard)
  - **Event Type**: The HTTP method to listen for:
    - `POST` - Listen for POST requests (default)
    - `GET` - Listen for GET requests
    - `PUT` - Listen for PUT requests
    - `DELETE` - Listen for DELETE requests

  ## Support

  - **Issues & Bug Reports**: [GitHub Issues](https://github.com/yourusername/n8n-nodes-jsonpost/issues)
  - **Feature Requests**: [GitHub Issues](https://github.com/yourusername/n8n-nodes-jsonpost/issues)
  - **General n8n Questions**: [n8n Community Forum](https://community.n8n.io/)
  - **JSONPost API Questions**: [JSONPost.com](https://jsonpost.com)

  ## Documentation

  - **User Guide**: This README
  - **Developer Documentation**: See [DEVELOPER.md](./DEVELOPER.md) for technical details, development setup, and contribution guidelines
  - **Changelog**: See [CHANGELOG.md](./CHANGELOG.md) for version history

  ## License

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

  ---

  **Note**: This is a community-maintained node and is not officially supported by n8n or JSONPost. Use at your own discretion and always test thoroughly in your environment before production use.

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when a form is submitted to a JSONPost.com webhook endpoint by receiving real-time webhook data.","capabilities":["Create and delete JSONPost webhooks","Receive webhook data in real-time","Filter events by HTTP method (POST, GET, PUT, DELETE)","Access webhook payload data including body, headers, query parameters, HTTP method, and timestamp","Automatic cleanup of webhook subscriptions when workflows are deactivated"],"authentication":"API key required (JSONPost API key)","commonUseCases":["Triggering workflows upon form submissions","Receiving data from third-party services via JSONPost endpoints","Automating tasks based on incoming HTTP requests"],"limitations":["Community-maintained node not officially supported by n8n or JSONPost","Requires manual setup of JSONPost API credentials and Endpoint ID","Users must test thoroughly in their environment before production use"],"relatedNodes":["n8n-nodes-jsonpost.jsonPost","n8n-nodes-http.request","n8n-nodes-set","n8n-nodes-email.sendEmail"]}


node_type: n8n-nodes-docupotion.docupotion
package_name: n8n-nodes-docupotion
display_name: DocuPotion
description: Generate PDFs from templates using DocuPotion
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: docupotion
author_github_url: https://github.com/docupotion/
npm_package_name: n8n-nodes-docupotion
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.236Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "createDocument",
      "options": [
        {
          "name": "Create Document",
          "value": "createDocument",
          "action": "Create a document",
          "description": "Create a document from a template"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Document",
      "value": "createDocument",
      "action": "Create a document",
      "description": "Create a document from a template"
    }
  ]

npm_readme:
  # n8n-nodes-docupotion

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

  [DocuPotion](https://docupotion.com/) is a document generation and automation tool. It lets you design professional-looking document templates using a drag and drop editor. You can generate PDFs of these templates and fill them with your own data in an n8n workflow.

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

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

  ## Installation

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

  ## Operations

  | Operation | Description |
  |-----------|-------------|
  | Create Document | Generate a PDF document from a DocuPotion template |

  ### Output options

  | Option | Description |
  |--------|-------------|
  | File | Returns the document as binary data for use in subsequent workflow steps (e.g. email attachments, cloud storage uploads) |
  | URL | Returns a temporary presigned URL to the generated document |
  | Base64 | Returns the document as a base64-encoded string |

  ## Credentials

  To use this node, you need a DocuPotion account:

  1. Sign up at [app.docupotion.com](https://app.docupotion.com/register)
  2. Copy your API Key from the dashboard
  3. In n8n, add a new **DocuPotion API** credential and paste your API Key

  ## Compatibility

  Tested with n8n v1.71.0 and above.

  ## Usage

  1. Add the **DocuPotion** node to your workflow
  2. Select your DocuPotion API credentials
  3. Enter the **Template ID** of the template you want to generate
  4. Choose an **Output** type:
     - **File** (default) — returns binary data you can pass to nodes like Send Email, Google Drive, Write Binary File, etc. You can set a custom file name.
     - **URL** — returns a temporary link to the document. You can configure how long the URL remains valid (1–10,080 minutes).
     - **Base64** — returns the raw base64-encoded document data in the JSON output.
  5. Optionally provide **Template Data** as a JSON object to fill in dynamic template variables

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [n8n + DocuPotion quickstart guide](https://docs.docupotion.com/article/67-n8n-quickstart-creating-a-document-in-a-workflow)
  * [DocuPotion API docs](https://docupotion.com/api-docs)
  * [DocuPotion knowledge base](https://docs.docupotion.com/)

  ## Version history

  ### 0.1.0

  Initial release with the following features:

  - **Create Document** operation — generate PDFs from DocuPotion templates
  - **Output options** — File (binary), URL (presigned), or Base64
  - **Template Data** — pass dynamic variables as JSON to populate templates

ai_documentation_summary:
  {"purpose":"Generates PDF documents from DocuPotion templates by populating them with dynamic data within n8n workflows.","capabilities":["Create PDF documents from DocuPotion templates","Fill templates with dynamic variables via JSON data","Return output as binary file data","Return output as presigned URL","Return output as base64-encoded string"],"authentication":"API key required (DocuPotion API Key)","commonUseCases":["Generating invoice PDFs with customer data","Creating personalized marketing materials","Producing contract documents with variable terms","Exporting reports to cloud storage or email"],"limitations":["Requires a separate DocuPotion account and API key","Output as URL returns a temporary link with configurable validity (1–10,080 minutes)","Compatible only with n8n v1.71.0 and above"],"relatedNodes":["Binary File","Send Email","Google Drive","Write Binary File","HTTP Request"]}


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

updated_at: 2026-04-16 09:43:36
author_name: telli-com
author_github_url: https://github.com/telli-ai/n8n-telli.git
npm_package_name: n8n-nodes-telli
npm_version: 1.2.0
community_fetched_at: 2026-04-16T09:43:36.236Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Contact Property",
          "value": "contactProperty"
        },
        {
          "name": "Deprecated",
          "value": "deprecated"
        },
        {
          "name": "Phone Number",
          "value": "phoneNumber"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-agents-v2",
      "options": [
        {
          "name": "Get Agent",
          "value": "get-agent-v2",
          "action": "Get an agent",
          "description": "Get an agent by ID"
        },
        {
          "name": "List Agents",
          "value": "list-agents-v2",
          "action": "List agents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "schedule-telli-call",
      "options": [
        {
          "name": "Get Call",
          "value": "get-call-v1",
          "action": "Get a call",
          "description": "Get call details by call ID"
        },
        {
          "name": "Initiate Call",
          "value": "initiate-call-v1",
          "action": "Initiate a call",
          "description": "Immediately initiate an outbound call"
        },
        {
          "name": "Remove From Auto Dialer",
          "value": "remove-from-auto-dialer",
          "action": "Remove a contact from auto dialer",
          "description": "Remove a contact from the auto dialer queue"
        },
        {
          "name": "Remove From Auto Dialer (Batch)",
          "value": "remove-from-auto-dialer-batch-v1",
          "action": "Remove contacts from auto dialer in batch"
        },
        {
          "name": "Schedule Call",
          "value": "schedule-telli-call",
          "action": "Schedule a call with telli",
          "description": "Schedule a call with telli"
        },
        {
          "name": "Schedule Calls (Batch)",
          "value": "schedule-calls-batch-v1",
          "action": "Schedule calls in batch",
          "description": "Schedule multiple calls in one request"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-contacts-v2",
      "options": [
        {
          "name": "Create Contact",
          "value": "create-contact-v2",
          "action": "Create a contact",
          "description": "Create a contact using the v2 API"
        },
        {
          "name": "Delete Contact",
          "value": "delete-contact-v2",
          "action": "Delete a contact",
          "description": "Delete a contact using the v2 API"
        },
        {
          "name": "Get Contact",
          "value": "get-contact-v2",
          "action": "Get a contact",
          "description": "Get a contact by ID using the v2 API"
        },
        {
          "name": "Get Contact by External ID",
          "value": "get-contact-by-external-id-v2",
          "action": "Get a contact by external ID",
          "description": "Get a contact by external ID using the v2 API"
        },
        {
          "name": "List Contacts",
          "value": "list-contacts-v2",
          "action": "List contacts",
          "description": "List contacts using the v2 API"
        },
        {
          "name": "Update Contact",
          "value": "update-contact-v2",
          "action": "Update a contact",
          "description": "Update a contact using the v2 API"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-contact-properties-v2",
      "options": [
        {
          "name": "Create Contact Property",
          "value": "create-contact-property-v2",
          "action": "Create a contact property",
          "description": "Create a contact property"
        },
        {
          "name": "Get Contact Property",
          "value": "get-contact-property-v2",
          "action": "Get a contact property",
          "description": "Get a contact property by key"
        },
        {
          "name": "List Contact Properties",
          "value": "list-contact-properties-v2",
          "action": "List contact properties"
        },
        {
          "name": "Update Contact Property",
          "value": "update-contact-property-v2",
          "action": "Update a contact property",
          "description": "Update a contact property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contactProperty"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "add-telli-contact",
      "options": [
        {
          "name": "Add Contact",
          "value": "add-telli-contact",
          "action": "Add a new contact to telli",
          "description": "Add a contact using the v1 endpoint"
        },
        {
          "name": "Add Contacts (Batch)",
          "value": "add-telli-contacts-batch",
          "action": "Add contacts in batch",
          "description": "Add multiple contacts using the v1 batch endpoint"
        },
        {
          "name": "Get Contact",
          "value": "get-telli-contact",
          "action": "Get a contact",
          "description": "Get a contact by ID using the v1 endpoint"
        },
        {
          "name": "Get Contact by External ID",
          "value": "get-contact-by-external-id",
          "action": "Get contact by external ID",
          "description": "Get a contact by external ID using the v1 endpoint"
        },
        {
          "name": "Get Contacts (Batch)",
          "value": "get-telli-contacts-batch",
          "action": "Get contacts in batch",
          "description": "Get multiple contacts using the v1 batch endpoint"
        },
        {
          "name": "Update Contact",
          "value": "update-telli-contact",
          "action": "Update a contact in telli",
          "description": "Update a contact using the v1 endpoint"
        },
        {
          "name": "Update Contacts (Batch)",
          "value": "update-telli-contacts-batch",
          "action": "Update contacts in batch",
          "description": "Update multiple contacts using the v1 batch endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "deprecated"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-phone-numbers-v1",
      "options": [
        {
          "name": "Delete Phone Number",
          "value": "delete-phone-number-v1",
          "action": "Delete a phone number",
          "description": "Delete a phone number"
        },
        {
          "name": "Import Phone Number",
          "value": "import-phone-number-v1",
          "action": "Import a phone number",
          "description": "Import a phone number via SIP trunk"
        },
        {
          "name": "List Phone Numbers",
          "value": "list-phone-numbers-v1",
          "action": "List phone numbers",
          "description": "List active phone numbers"
        },
        {
          "name": "Replace Phone Number",
          "value": "replace-phone-number-v1",
          "action": "Replace a phone number",
          "description": "Replace a phone number with a new one"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phoneNumber"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Agent",
      "value": "get-agent-v2",
      "action": "Get an agent",
      "description": "Get an agent by ID",
      "resource": "agent"
    },
    {
      "name": "List Agents",
      "value": "list-agents-v2",
      "action": "List agents",
      "resource": "agent"
    },
    {
      "name": "Get Call",
      "value": "get-call-v1",
      "action": "Get a call",
      "description": "Get call details by call ID",
      "resource": "call"
    },
    {
      "name": "Initiate Call",
      "value": "initiate-call-v1",
      "action": "Initiate a call",
      "description": "Immediately initiate an outbound call",
      "resource": "call"
    },
    {
      "name": "Remove From Auto Dialer",
      "value": "remove-from-auto-dialer",
      "action": "Remove a contact from auto dialer",
      "description": "Remove a contact from the auto dialer queue",
      "resource": "call"
    },
    {
      "name": "Remove From Auto Dialer (Batch)",
      "value": "remove-from-auto-dialer-batch-v1",
      "action": "Remove contacts from auto dialer in batch",
      "resource": "call"
    },
    {
      "name": "Schedule Call",
      "value": "schedule-telli-call",
      "action": "Schedule a call with telli",
      "description": "Schedule a call with telli",
      "resource": "call"
    },
    {
      "name": "Schedule Calls (Batch)",
      "value": "schedule-calls-batch-v1",
      "action": "Schedule calls in batch",
      "description": "Schedule multiple calls in one request",
      "resource": "call"
    },
    {
      "name": "Create Contact",
      "value": "create-contact-v2",
      "action": "Create a contact",
      "description": "Create a contact using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Delete Contact",
      "value": "delete-contact-v2",
      "action": "Delete a contact",
      "description": "Delete a contact using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Get Contact",
      "value": "get-contact-v2",
      "action": "Get a contact",
      "description": "Get a contact by ID using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Get Contact by External ID",
      "value": "get-contact-by-external-id-v2",
      "action": "Get a contact by external ID",
      "description": "Get a contact by external ID using the v2 API",
      "resource": "contact"
    },
    {
      "name": "List Contacts",
      "value": "list-contacts-v2",
      "action": "List contacts",
      "description": "List contacts using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Update Contact",
      "value": "update-contact-v2",
      "action": "Update a contact",
      "description": "Update a contact using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Create Contact Property",
      "value": "create-contact-property-v2",
      "action": "Create a contact property",
      "description": "Create a contact property",
      "resource": "contactProperty"
    },
    {
      "name": "Get Contact Property",
      "value": "get-contact-property-v2",
      "action": "Get a contact property",
      "description": "Get a contact property by key",
      "resource": "contactProperty"
    },
    {
      "name": "List Contact Properties",
      "value": "list-contact-properties-v2",
      "action": "List contact properties",
      "resource": "contactProperty"
    },
    {
      "name": "Update Contact Property",
      "value": "update-contact-property-v2",
      "action": "Update a contact property",
      "description": "Update a contact property",
      "resource": "contactProperty"
    },
    {
      "name": "Add Contact",
      "value": "add-telli-contact",
      "action": "Add a new contact to telli",
      "description": "Add a contact using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Add Contacts (Batch)",
      "value": "add-telli-contacts-batch",
      "action": "Add contacts in batch",
      "description": "Add multiple contacts using the v1 batch endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Get Contact",
      "value": "get-telli-contact",
      "action": "Get a contact",
      "description": "Get a contact by ID using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Get Contact by External ID",
      "value": "get-contact-by-external-id",
      "action": "Get contact by external ID",
      "description": "Get a contact by external ID using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Get Contacts (Batch)",
      "value": "get-telli-contacts-batch",
      "action": "Get contacts in batch",
      "description": "Get multiple contacts using the v1 batch endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Update Contact",
      "value": "update-telli-contact",
      "action": "Update a contact in telli",
      "description": "Update a contact using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Update Contacts (Batch)",
      "value": "update-telli-contacts-batch",
      "action": "Update contacts in batch",
      "description": "Update multiple contacts using the v1 batch endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Delete Phone Number",
      "value": "delete-phone-number-v1",
      "action": "Delete a phone number",
      "description": "Delete a phone number",
      "resource": "phoneNumber"
    },
    {
      "name": "Import Phone Number",
      "value": "import-phone-number-v1",
      "action": "Import a phone number",
      "description": "Import a phone number via SIP trunk",
      "resource": "phoneNumber"
    },
    {
      "name": "List Phone Numbers",
      "value": "list-phone-numbers-v1",
      "action": "List phone numbers",
      "description": "List active phone numbers",
      "resource": "phoneNumber"
    },
    {
      "name": "Replace Phone Number",
      "value": "replace-phone-number-v1",
      "action": "Replace a phone number",
      "description": "Replace a phone number with a new one",
      "resource": "phoneNumber"
    }
  ]

npm_readme:
  # n8n-nodes-telli

  This is an n8n community node. It lets you use telli AI phone call platform in your n8n workflows.

  telli is an AI phone calling platform that lets you automate phone call operations and perform custom tasks.

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

  - [Installation](#installation)  
  - [Actions](#actions)  
  - [Credentials](#credentials)  
  - [Compatibility](#compatibility)  
  - [Usage](#usage)  
  - [Resources](#resources)  
  - [Development](#development)  

  ## Repository Structure

  - `credentials/`: Contains credential definitions
    - `TelliApi.credentials.ts`: Defines the API key authentication for telli API

  - `nodes/`: Contains the actual node implementations
    - `Telli/`: The telli node folder
      - `Telli.node.ts`: Main implementation of the telli node with all operations
      - `telli.svg`: Icon for the node in n8n

  - `dist/`: Generated folder containing compiled JavaScript code (created after running `npm run build`)

  - `package.json`: Defines package dependencies and n8n node registration information

  ## Installation

  ### Option 1: Install from npm

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

  ```bash
  npm install n8n-nodes-telli
  ```

  ### Option 2: Manual installation

  1. Clone this repository to your local machine
  2. Install dependencies: `npm install`
  3. Build the code: `npm run build`
  4. Create a custom directory in your n8n installation: `mkdir -p ~/.n8n/custom`
  5. Create a package.json file in the custom directory:
  ```json
  {
    "name": "n8n-custom-nodes",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
      "n8n-nodes-telli": "file:///path/to/cloned/n8n-nodes-telli"
    }
  }
  ```
  6. Install the dependency: `cd ~/.n8n/custom && npm install`
  7. Restart n8n

  ## Actions

  The telli node provides the following operations, grouped by resource:

  ### Contact

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Create Contact | Create a new contact with name, phone number, email, and custom properties | [Docs](https://docs.telli.com/v2/endpoint/create-contact) |
  | Get Contact | Retrieve a contact by ID | [Docs](https://docs.telli.com/v2/endpoint/get-contact) |
  | Get Contact by External ID | Retrieve a contact using your external system's ID | [Docs](https://docs.telli.com/v2/endpoint/get-contact-by-external-id) |
  | List Contacts | List contacts with pagination and optional "Return All" toggle | [Docs](https://docs.telli.com/v2/endpoint/list-contacts) |
  | Update Contact | Update an existing contact. Only provided fields are changed | [Docs](https://docs.telli.com/v2/endpoint/update-contact) |
  | Delete Contact | Soft-delete a contact and anonymize all PII data | [Docs](https://docs.telli.com/v2/endpoint/delete-contact) |

  ### Agent

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Get Agent | Retrieve an agent by selecting from a dropdown or specifying an ID | [Docs](https://docs.telli.com/v2/endpoint/get-agent) |
  | List Agents | List agents with pagination and optional "Return All" toggle | [Docs](https://docs.telli.com/v2/endpoint/list-agents) |

  ### Call

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Schedule Call | Schedule an AI phone call at the earliest opportunity within the dialer window | [Docs](https://docs.telli.com/endpoint/schedule-call) |
  | Schedule Calls (Batch) | Schedule multiple calls in one request (max 50 per request) | [Docs](https://docs.telli.com/endpoint/schedule-calls-batch) |
  | Get Call | Retrieve call details including transcript and analysis by call ID | [Docs](https://docs.telli.com/endpoint/get-call) |
  | Initiate Call | Immediately initiate an outbound call (not recommended — prefer Schedule Call) | [Docs](https://docs.telli.com/endpoint/initiate-call) |
  | Remove From Auto Dialer | Remove a contact from the auto dialer queue | [Docs](https://docs.telli.com/endpoint/remove-from-dialer) |
  | Remove From Auto Dialer (Batch) | Remove multiple contacts from the auto dialer queue (max 50 per request) | [Docs](https://docs.telli.com/endpoint/remove-from-dialer-batch) |

  ### Contact Property

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Create Contact Property | Define a new custom property for contacts (text, number, select, etc.) | [Docs](https://docs.telli.com/v2/endpoint/create-contact-property) |
  | Get Contact Property | Retrieve a contact property by key | [Docs](https://docs.telli.com/v2/endpoint/get-contact-property) |
  | List Contact Properties | List all contact properties for the account | [Docs](https://docs.telli.com/v2/endpoint/list-contact-properties) |
  | Update Contact Property | Update an existing contact property's label, description, or options | [Docs](https://docs.telli.com/v2/endpoint/update-contact-property) |

  ### Phone Number

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | List Phone Numbers | List all active phone numbers for the account | [Docs](https://docs.telli.com/endpoint/list-phone-numbers) |
  | Import Phone Number | Import a phone number from your own SIP trunk provider | [Docs](https://docs.telli.com/endpoint/import-phone-number) |
  | Replace Phone Number | Replace a phone number with a new one (old number stays active for callbacks for 30 days) | [Docs](https://docs.telli.com/endpoint/replace-phone-number) |
  | Delete Phone Number | Schedule a phone number for deletion (stays active for callbacks for 30 days) | [Docs](https://docs.telli.com/endpoint/delete-phone-number) |

  ### Deprecated (v1)

  These operations use the legacy v1 API and are kept for backward compatibility with existing workflows. Use the Contact resource above for new workflows.

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Add Contact | Add a contact using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/add-contact) |
  | Add Contacts (Batch) | Add multiple contacts using the v1 batch endpoint | [Docs](https://docs.telli.com/endpoint/add-contacts-batch) |
  | Get Contact | Get a contact by ID using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/get-contact) |
  | Get Contact by External ID | Get a contact by external ID using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/get-contact-by-external-id) |
  | Get Contacts (Batch) | Get multiple contacts using the v1 batch endpoint | [Docs](https://docs.telli.com/endpoint/get-contacts-batch) |
  | Update Contact | Update a contact using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/update-contact) |
  | Update Contacts (Batch) | Update multiple contacts using the v1 batch endpoint | [Docs](https://docs.telli.com/endpoint/update-contacts-batch) |

  ## Credentials

  To use the telli nodes, you need to authenticate with the telli API:

  1. Sign up for an account at [telli.com](https://telli.com/)
  2. Navigate to your account settings
  3. Create an API key with the necessary permissions
  4. Use this API key in the telli API credentials in n8n

  ## Compatibility

  This node has been tested with n8n version 0.171.0 and higher.

  ## Usage

  ### Create Contact Example

  1. Add the telli node to your workflow
  2. Select the **Contact** resource and **Create Contact** operation
  3. Fill in the required fields (First Name, Last Name, Phone Number)
  4. Optionally add email, external ID, salutation, timezone, and custom properties
  5. Properties can be added using the field editor or as a JSON array: `[{"key": "company", "value": "Acme"}]`

  ### Schedule Call Example

  1. Add the telli node to your workflow
  2. Select the **Call** resource and **Schedule Call** operation
  3. Enter the Contact ID and select an Agent from the dropdown
  4. Optionally set max retry days and override the from number
  5. The call will be scheduled at the earliest opportunity within the agent's dialer window

  ### List Contacts with Pagination

  1. Add the telli node to your workflow
  2. Select the **Contact** resource and **List Contacts** operation
  3. Toggle **Return All** to fetch every contact, or set a **Limit** for a single page

  ### Manage Contact Properties

  1. Add the telli node to your workflow
  2. Select the **Contact Property** resource
  3. Use **Create Contact Property** to define new fields (e.g., a "Company" text field or a "Status" select field)
  4. For `select` and `multi_select` types, add options using the field editor or as JSON: `[{"value": "a", "label": "Option A"}]`

  ### Delete Contact Example

  1. Add the telli node to your workflow
  2. Select the **Contact** resource and **Delete Contact** operation
  3. Enter the Contact ID
  4. **Warning**: This soft-deletes the contact and anonymizes all PII data

  ### Remove from Auto Dialer Example

  1. Add the telli node to your workflow
  2. Select the **Call** resource and **Remove From Auto Dialer** operation
  3. Enter the Contact ID
  4. This stops the contact from receiving automated calls without deleting their data

  ## Resources

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

  ## Development

  ### Making Changes and Rebuilding Locally

  Refer to the n8n docs on how to run nodes locally: [docs](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/)

  1. Make your changes to the code (e.g., in `nodes/Telli/Telli.node.ts`)

  2. Build the project:
  ```bash
  npm run build
  ```

  3. Copy the built files to your n8n custom directory:
  ```bash
  cp -r dist/* ~/.n8n/custom/n8n-nodes-telli/ # or wherever your custom directory is
  ```

  4. Restart n8n to see your changes:
  ```bash
  # First kill the current n8n process (Ctrl+C), then run:
  n8n start
  ```

  ### Development Workflow Tips

  - Use `npm run dev` to continuously build the code as you make changes
  - Check for linting errors with `npm run lint`
  - Format code with `npm run format`

  ### Troubleshooting

  If you don't see your changes after rebuilding and restarting n8n:

  1. Check if there are any errors in the n8n logs
  2. Verify that the files were correctly copied to the custom directory
  3. Make sure n8n was properly restarted
  4. Clear your browser cache or open n8n in an incognito window

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of AI phone call operations by interacting with the telli API to manage contacts and schedule calls.","capabilities":["Add contacts with customizable attributes","Update existing contact information","Delete contacts permanently","Remove contacts from auto-dialer queue","Schedule AI phone calls with customizable messages and questions"],"authentication":"API key required","commonUseCases":["Automated customer outreach campaigns","Appointment scheduling automation","Lead qualification via phone calls","Contact management in CRM workflows"],"limitations":["Delete operation is irreversible and cannot be undone","Requires separate telli account and API key setup","Compatible only with n8n version 0.171.0 and higher"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


node_type: n8n-nodes-fillout.filloutTrigger
package_name: n8n-nodes-fillout
display_name: Fillout Trigger
description: Handle Fillout submissions via webhooks
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: xkcdstickfigure
author_github_url: https://github.com/fillout/
npm_package_name: n8n-nodes-fillout
npm_version: 1.1.4
community_fetched_at: 2026-04-16T09:43:36.237Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n trigger for Fillout submissions

  This is an n8n community node that lets you trigger n8n workflows when your Fillout form receives a new submission.

  ## Installation

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

  ## Usage

  Add the trigger in n8n, and when creating a credential, you'll need to get an API key from your [account settings](https://build.fillout.com/home/settings/developer) in Fillout. Make sure that the correct base URL is set, as you can have submissions hosted in different regions with [Fillout Enterprise](https://www.fillout.com/enterprise).

  ## Developers

  For instructions on testing this node on a local n8n instance for development purposes, see https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows automatically when a new submission is received on a Fillout form via webhook.","capabilities":["Monitor Fillout form submissions","Activate n8n workflows on form completion","Support multiple regional base URLs for Fillout Enterprise"],"authentication":"API key required (obtained from Fillout account settings)","commonUseCases":["Automate data processing when a form is submitted","Send notifications or emails upon form completion","Integrate form data into other services or databases"],"limitations":["Community node (not official n8n node)","Requires manual setup of correct base URL for Fillout Enterprise regions"],"relatedNodes":["n8n-nodes-fillout.filloutForm","n8n-nodes-fillout.filloutSubmit","Webhook Trigger"]}


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

updated_at: 2026-04-16 09:43:36
author_name: nexlevanalytics
author_github_url: https://github.com/alge-soft/n8n-nodes-nexlev.git
npm_package_name: @nexlev/n8n-nodes-nexlev
npm_version: 0.2.5
community_fetched_at: 2026-04-16T09:43:36.238Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "similarVideos",
      "options": [
        {
          "name": "Channel Analysis",
          "value": "channelAnalysis"
        },
        {
          "name": "Channel Analytic",
          "value": "channelAnalytics"
        },
        {
          "name": "Channel Content",
          "value": "channelContent"
        },
        {
          "name": "Niche Overview",
          "value": "nicheOverview"
        },
        {
          "name": "Similar Channel",
          "value": "similarChannels"
        },
        {
          "name": "Similar Thumbnail",
          "value": "similarThumbnails"
        },
        {
          "name": "Similar Video",
          "value": "similarVideos"
        },
        {
          "name": "Videos and Short",
          "value": "videosAndShorts"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAnalytics",
      "options": [
        {
          "name": "Get Analytics",
          "value": "getAnalytics",
          "action": "Get channel analytics",
          "routing": {
            "request": {
              "url": "/external/analytics/channel-analytics",
              "method": "POST"
            }
          },
          "description": "Get analytics data for a YouTube channel"
        },
        {
          "name": "Get Geography Demographics Revenue",
          "value": "getGeoDemoRev",
          "action": "Get geography demographics revenue",
          "routing": {
            "request": {
              "url": "/external/analytics/channel-analytics/geography-revenue",
              "method": "POST"
            }
          },
          "description": "Get geography, demographics, and revenue data for a YouTube channel"
        },
        {
          "name": "Get Short vs Long Views",
          "value": "getShortVsLongViews",
          "action": "Get short vs long views",
          "routing": {
            "request": {
              "method": "GET"
            }
          },
          "description": "Get short and long video views for a YouTube channel"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channelAnalytics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createJob",
      "options": [
        {
          "name": "Create Job",
          "value": "createJob",
          "action": "Create channel analysis job",
          "routing": {
            "request": {
              "url": "/external/channels/analysis/job/create",
              "method": "GET"
            }
          },
          "description": "Create a new channel analysis job"
        },
        {
          "name": "Get Result",
          "value": "getResult",
          "action": "Get channel analysis result",
          "routing": {
            "request": {
              "url": "/external/channels/analysis/job/status",
              "method": "GET"
            }
          },
          "description": "Get the status and results of a channel analysis job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channelAnalysis"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getVideos",
      "options": [
        {
          "name": "Get About",
          "value": "getAbout",
          "action": "Get channel about",
          "routing": {
            "request": {
              "url": "/external/channels/about",
              "method": "GET"
            }
          },
          "description": "Get about information for a YouTube channel"
        },
        {
          "name": "Get Outliers",
          "value": "getOutliers",
          "action": "Get channel outliers",
          "routing": {
            "request": {
              "url": "/external/channels/outliers",
              "method": "GET"
            }
          },
          "description": "Get outlier videos from a YouTube channel"
        },
        {
          "name": "Get Playlists",
          "value": "getPlaylists",
          "action": "Get channel playlists",
          "routing": {
            "request": {
              "url": "/external/channels/playlists",
              "method": "GET"
            }
          },
          "description": "Get playlists from a YouTube channel"
        },
        {
          "name": "Get Shorts",
          "value": "getShorts",
          "action": "Get channel shorts",
          "routing": {
            "request": {
              "url": "/external/channels/shorts",
              "method": "GET"
            }
          },
          "description": "Get short videos from a YouTube channel"
        },
        {
          "name": "Get Videos",
          "value": "getVideos",
          "action": "Get channel videos",
          "routing": {
            "request": {
              "url": "/external/channels/videos",
              "method": "GET"
            }
          },
          "description": "Get videos from a YouTube channel"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channelContent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze",
          "value": "analyze",
          "action": "Analyze channel niche overview",
          "routing": {
            "request": {
              "url": "/external/niche-overview/analyze",
              "method": "POST"
            }
          },
          "description": "Analyze and get niche overview for a YouTube channel"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "nicheOverview"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSimilar",
      "options": [
        {
          "name": "Get Similar Videos",
          "value": "getSimilar",
          "action": "Get similar videos",
          "routing": {
            "request": {
              "url": "/external/similar-videos/videos",
              "method": "POST"
            }
          },
          "description": "Find similar videos based on a YouTube video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "similarVideos"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search Similar Thumbnails",
          "value": "search",
          "action": "Search similar thumbnails",
          "routing": {
            "request": {
              "url": "/external/similar-thumbnails/search",
              "method": "POST"
            }
          },
          "description": "Find similar thumbnails based on text or image URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "similarThumbnails"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search Similar Channels",
          "value": "search",
          "action": "Search similar channels",
          "routing": {
            "request": {
              "url": "/external/similar-channels/search",
              "method": "POST"
            }
          },
          "description": "Find similar channels based on a YouTube channel"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "similarChannels"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDetails",
      "options": [
        {
          "name": "Get Bulk Subtitle",
          "value": "getBulkSubtitle",
          "action": "Get bulk video subtitles",
          "routing": {
            "request": {
              "url": "/external/videos/bulk-subtitle",
              "method": "POST"
            }
          },
          "description": "Get subtitles for multiple YouTube videos at once"
        },
        {
          "name": "Get Bulk Transcript",
          "value": "getBulkTranscript",
          "action": "Get bulk video transcripts",
          "routing": {
            "request": {
              "url": "/external/videos/bulk-transcript",
              "method": "POST"
            }
          },
          "description": "Get transcripts for multiple YouTube videos at once"
        },
        {
          "name": "Get Comments",
          "value": "getComments",
          "action": "Get video comments",
          "routing": {
            "request": {
              "url": "/external/videos/comments",
              "method": "GET"
            }
          },
          "description": "Get comments for a YouTube video"
        },
        {
          "name": "Get Details",
          "value": "getDetails",
          "action": "Get video details",
          "routing": {
            "request": {
              "url": "/external/videos/details",
              "method": "GET"
            }
          },
          "description": "Get detailed information for a YouTube video"
        },
        {
          "name": "Get RPM",
          "value": "getRPM",
          "action": "Get video RPM",
          "routing": {
            "request": {
              "url": "/external/videos/rpm",
              "method": "GET"
            }
          },
          "description": "Get RPM (Revenue Per Mille) for a YouTube video"
        },
        {
          "name": "Get Shorts Details",
          "value": "getShortsDetails",
          "action": "Get shorts details",
          "routing": {
            "request": {
              "url": "/external/shorts/details",
              "method": "GET"
            }
          },
          "description": "Get detailed information for a YouTube shorts video"
        },
        {
          "name": "Get Subtitle",
          "value": "getSubtitle",
          "action": "Get video subtitle",
          "routing": {
            "request": {
              "url": "/external/videos/subtitle",
              "method": "GET"
            }
          },
          "description": "Get subtitle for a YouTube video"
        },
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get video transcript",
          "routing": {
            "request": {
              "url": "/external/videos/transcript",
              "method": "GET"
            }
          },
          "description": "Get transcript for a YouTube video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "videosAndShorts"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Analytics",
      "value": "getAnalytics",
      "action": "Get channel analytics",
      "routing": {
        "request": {
          "url": "/external/analytics/channel-analytics",
          "method": "POST"
        }
      },
      "description": "Get analytics data for a YouTube channel",
      "resource": "channelAnalytics"
    },
    {
      "name": "Get Geography Demographics Revenue",
      "value": "getGeoDemoRev",
      "action": "Get geography demographics revenue",
      "routing": {
        "request": {
          "url": "/external/analytics/channel-analytics/geography-revenue",
          "method": "POST"
        }
      },
      "description": "Get geography, demographics, and revenue data for a YouTube channel",
      "resource": "channelAnalytics"
    },
    {
      "name": "Get Short vs Long Views",
      "value": "getShortVsLongViews",
      "action": "Get short vs long views",
      "routing": {
        "request": {
          "method": "GET"
        }
      },
      "description": "Get short and long video views for a YouTube channel",
      "resource": "channelAnalytics"
    },
    {
      "name": "Create Job",
      "value": "createJob",
      "action": "Create channel analysis job",
      "routing": {
        "request": {
          "url": "/external/channels/analysis/job/create",
          "method": "GET"
        }
      },
      "description": "Create a new channel analysis job",
      "resource": "channelAnalysis"
    },
    {
      "name": "Get Result",
      "value": "getResult",
      "action": "Get channel analysis result",
      "routing": {
        "request": {
          "url": "/external/channels/analysis/job/status",
          "method": "GET"
        }
      },
      "description": "Get the status and results of a channel analysis job",
      "resource": "channelAnalysis"
    },
    {
      "name": "Get About",
      "value": "getAbout",
      "action": "Get channel about",
      "routing": {
        "request": {
          "url": "/external/channels/about",
          "method": "GET"
        }
      },
      "description": "Get about information for a YouTube channel",
      "resource": "channelContent"
    },
    {
      "name": "Get Outliers",
      "value": "getOutliers",
      "action": "Get channel outliers",
      "routing": {
        "request": {
          "url": "/external/channels/outliers",
          "method": "GET"
        }
      },
      "description": "Get outlier videos from a YouTube channel",
      "resource": "channelContent"
    },
    {
      "name": "Get Playlists",
      "value": "getPlaylists",
      "action": "Get channel playlists",
      "routing": {
        "request": {
          "url": "/external/channels/playlists",
          "method": "GET"
        }
      },
      "description": "Get playlists from a YouTube channel",
      "resource": "channelContent"
    },
    {
      "name": "Get Shorts",
      "value": "getShorts",
      "action": "Get channel shorts",
      "routing": {
        "request": {
          "url": "/external/channels/shorts",
          "method": "GET"
        }
      },
      "description": "Get short videos from a YouTube channel",
      "resource": "channelContent"
    },
    {
      "name": "Get Videos",
      "value": "getVideos",
      "action": "Get channel videos",
      "routing": {
        "request": {
          "url": "/external/channels/videos",
          "method": "GET"
        }
      },
      "description": "Get videos from a YouTube channel",
      "resource": "channelContent"
    },
    {
      "name": "Analyze",
      "value": "analyze",
      "action": "Analyze channel niche overview",
      "routing": {
        "request": {
          "url": "/external/niche-overview/analyze",
          "method": "POST"
        }
      },
      "description": "Analyze and get niche overview for a YouTube channel",
      "resource": "nicheOverview"
    },
    {
      "name": "Get Similar Videos",
      "value": "getSimilar",
      "action": "Get similar videos",
      "routing": {
        "request": {
          "url": "/external/similar-videos/videos",
          "method": "POST"
        }
      },
      "description": "Find similar videos based on a YouTube video",
      "resource": "similarVideos"
    },
    {
      "name": "Search Similar Thumbnails",
      "value": "search",
      "action": "Search similar thumbnails",
      "routing": {
        "request": {
          "url": "/external/similar-thumbnails/search",
          "method": "POST"
        }
      },
      "description": "Find similar thumbnails based on text or image URL",
      "resource": "similarThumbnails"
    },
    {
      "name": "Search Similar Channels",
      "value": "search",
      "action": "Search similar channels",
      "routing": {
        "request": {
          "url": "/external/similar-channels/search",
          "method": "POST"
        }
      },
      "description": "Find similar channels based on a YouTube channel",
      "resource": "similarChannels"
    },
    {
      "name": "Get Bulk Subtitle",
      "value": "getBulkSubtitle",
      "action": "Get bulk video subtitles",
      "routing": {
        "request": {
          "url": "/external/videos/bulk-subtitle",
          "method": "POST"
        }
      },
      "description": "Get subtitles for multiple YouTube videos at once",
      "resource": "videosAndShorts"
    },
    {
      "name": "Get Bulk Transcript",
      "value": "getBulkTranscript",
      "action": "Get bulk video transcripts",
      "routing": {
        "request": {
          "url": "/external/videos/bulk-transcript",
          "method": "POST"
        }
      },
      "description": "Get transcripts for multiple YouTube videos at once",
      "resource": "videosAndShorts"
    },
    {
      "name": "Get Comments",
      "value": "getComments",
      "action": "Get video comments",
      "routing": {
        "request": {
          "url": "/external/videos/comments",
          "method": "GET"
        }
      },
      "description": "Get comments for a YouTube video",
      "resource": "videosAndShorts"
    },
    {
      "name": "Get Details",
      "value": "getDetails",
      "action": "Get video details",
      "routing": {
        "request": {
          "url": "/external/videos/details",
          "method": "GET"
        }
      },
      "description": "Get detailed information for a YouTube video",
      "resource": "videosAndShorts"
    },
    {
      "name": "Get RPM",
      "value": "getRPM",
      "action": "Get video RPM",
      "routing": {
        "request": {
          "url": "/external/videos/rpm",
          "method": "GET"
        }
      },
      "description": "Get RPM (Revenue Per Mille) for a YouTube video",
      "resource": "videosAndShorts"
    },
    {
      "name": "Get Shorts Details",
      "value": "getShortsDetails",
      "action": "Get shorts details",
      "routing": {
        "request": {
          "url": "/external/shorts/details",
          "method": "GET"
        }
      },
      "description": "Get detailed information for a YouTube shorts video",
      "resource": "videosAndShorts"
    },
    {
      "name": "Get Subtitle",
      "value": "getSubtitle",
      "action": "Get video subtitle",
      "routing": {
        "request": {
          "url": "/external/videos/subtitle",
          "method": "GET"
        }
      },
      "description": "Get subtitle for a YouTube video",
      "resource": "videosAndShorts"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get video transcript",
      "routing": {
        "request": {
          "url": "/external/videos/transcript",
          "method": "GET"
        }
      },
      "description": "Get transcript for a YouTube video",
      "resource": "videosAndShorts"
    }
  ]

npm_readme:
  # n8n-nodes-nexlev

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

  Nexlev is a YouTube analytics and similarity discovery platform that helps content creators analyze channel performance and discover similar content across YouTube.

  [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 Nexlev node supports the following operations:

  ### Channel Analysis

  - **Create Job**: Create a new channel analysis job
  - **Get Result**: Get the status and results of a channel analysis job

  ### Channel Analytics

  - **Get Analytics**: Retrieve comprehensive analytics data for a YouTube channel
  - **Get Geography Demographics Revenue**: Get geographic distribution, demographic breakdown, and revenue data
  - **Get Short vs Long Views**: Compare short-form vs long-form content performance

  ### Channel Content

  - **Get About**: Get about information for a YouTube channel
  - **Get Playlists**: Get playlists from a YouTube channel
  - **Get Videos**: Get videos from a YouTube channel
  - **Get Shorts**: Get short videos from a YouTube channel

  ### Niche Overview

  - **Analyze**: Analyze and get niche overview for a YouTube channel

  ### Similar Channels

  - **Search Similar Channels**: Find similar YouTube channels based on content type and audience

  ### Similar Thumbnails

  - **Search Similar Thumbnails**: Discover similar video thumbnails for content inspiration

  ### Similar Videos

  - **Get Similar Videos**: Find videos similar to a given video with similarity scores

  ### Videos and Shorts

  - **Get Bulk Transcript**: Get transcripts for multiple YouTube videos
  - **Get Comments**: Get comments for a YouTube video
  - **Get Details**: Get detailed information for a YouTube video
  - **Get Shorts Details**: Get detailed information for a YouTube shorts video
  - **Get Transcript**: Get transcript for a YouTube video

  ## Credentials

  To use this node, you need to obtain an API key from Nexlev.

  ### Prerequisites

  - Sign up for a Nexlev account and get your API key at [dashboard.nexlev.io/n8n-youtube](https://dashboard.nexlev.io/n8n-youtube)
  - The dashboard provides everything you need to get started with the n8n integration

  ### Authentication Method

  - **API Key**: Enter your Nexlev API key in the credential configuration
  - The API key is sent via the `x-api-key` header in all requests

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with**: n8n 1.x
  - **Node version**: 0.2.0

  ## Usage

  ### Basic Setup

  1. **Install the node** following the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/)
  2. **Create credentials** with your Nexlev API key
  3. **Add the Nexlev node** to your workflow
  4. **Select a resource** (Channel Analytics, Similar Videos, Similar Thumbnails, or Similar Channels)
  5. **Choose an operation** and fill in the required parameters

  ### Example: Getting Similar Videos

  1. Add the Nexlev node to your workflow
  2. Select "Similar Videos" as the Resource
  3. Select "Get Similar Videos" as the Operation
  4. Enter a YouTube video ID (e.g., `gpyYCTgJO88`)
  5. The node will return a list of similar videos with similarity scores and metadata

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Nexlev n8n Integration Dashboard](https://dashboard.nexlev.io/n8n-youtube) - Get your API key and documentation

  ## Version history

  ### 0.2.0

  - Added support for getting playlists from YouTube channels
  - Added bulk transcript API for processing multiple videos
  - Added sub API support
  - Added support for videoURL parameter in similar videos operations
  - Fixed channel analysis job creation endpoint to use GET method

  ### 0.1.10

  - Fixed channel analysis job creation endpoint to use GET method

  ### 0.1.9

  - Added comprehensive operations documentation for all resources
  - Improved .gitignore with best practices
  - Better repository structure

  ### 0.1.8

  - Updated documentation with correct Nexlev dashboard links
  - Improved getting started experience

  ### 0.1.7

  - Bug fixes and improvements
  - Enhanced stability

  ### 0.1.6

  - Improvements and updates

  ### 0.1.0

  - Initial release
  - Support for Channel Analytics operations (Get Analytics, Geography/Demographics/Revenue, Short vs Long Views)
  - Support for Similar Videos discovery
  - Support for Similar Thumbnails search
  - Support for Similar Channels discovery
  - API key authentication
  - Multi-environment support (local, dev, prod)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Nexlev API for YouTube analytics, content discovery, and channel analysis.","capabilities":["Create and retrieve results for channel analysis jobs","Retrieve comprehensive channel analytics including demographics and revenue","Compare short-form vs long-form content performance","Fetch channel metadata, playlists, videos, and shorts","Analyze niche overview for YouTube channels","Discover similar channels based on content type and audience","Search for similar video thumbnails for content inspiration","Find similar videos with similarity scores","Retrieve bulk transcripts for multiple videos","Fetch comments and detailed information for videos and shorts"],"authentication":"API Key required (entered in credential configuration and sent via x-api-key header)","commonUseCases":["YouTube content creator analytics automation","Content discovery and inspiration workflows","Competitor channel analysis","Bulk video transcript processing","Similar video recommendation generation"],"limitations":["Community node (may have fewer maintenance resources than official nodes)","Requires separate Nexlev account and API key setup","Minimum n8n version requirement is 1.0.0"],"relatedNodes":["n8n YouTube node","n8n HTTP Request node","n8n Webhook node"]}


node_type: n8n-nodes-atriomail-email.atriomail
package_name: n8n-nodes-atriomail-email
display_name: Atriomail
description: Manage email domains, mailboxes, forwarders, and catch-all configurations with Atriomail
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: atriomail
author_github_url: https://github.com/Atriomail/n8n-atriomail.git
npm_package_name: n8n-nodes-atriomail-email
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:36.239Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "domain",
      "options": [
        {
          "name": "Catch-All",
          "value": "catchAll"
        },
        {
          "name": "Domain",
          "value": "domain"
        },
        {
          "name": "Forwarder",
          "value": "forwarder"
        },
        {
          "name": "Mailbox",
          "value": "mailbox"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a domain",
          "description": "Create a new domain"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a domain",
          "description": "Delete a domain"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a domain",
          "description": "Get a domain by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many domains",
          "description": "Get many domains"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a domain",
          "description": "Update a domain"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a mailbox",
          "description": "Create a new mailbox"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a mailbox",
          "description": "Delete a mailbox"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a mailbox",
          "description": "Get a mailbox by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many mailboxes",
          "description": "Get many mailboxes"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a mailbox",
          "description": "Update a mailbox"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mailbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a forwarder",
          "description": "Create a new forwarder"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a forwarder",
          "description": "Delete a forwarder"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a forwarder",
          "description": "Get a forwarder by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many forwarders",
          "description": "Get many forwarders"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a forwarder",
          "description": "Update a forwarder"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "forwarder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a catch all",
          "description": "Create a new catch-all configuration"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a catch all",
          "description": "Delete a catch-all configuration"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a catch all",
          "description": "Get a catch-all configuration by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many catch alls",
          "description": "Get many catch-all configurations"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a catch all",
          "description": "Update a catch-all configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "catchAll"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a domain",
      "description": "Create a new domain",
      "resource": "domain"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a domain",
      "description": "Delete a domain",
      "resource": "domain"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a domain",
      "description": "Get a domain by ID",
      "resource": "domain"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many domains",
      "description": "Get many domains",
      "resource": "domain"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a domain",
      "description": "Update a domain",
      "resource": "domain"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a mailbox",
      "description": "Create a new mailbox",
      "resource": "mailbox"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a mailbox",
      "description": "Delete a mailbox",
      "resource": "mailbox"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a mailbox",
      "description": "Get a mailbox by ID",
      "resource": "mailbox"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many mailboxes",
      "description": "Get many mailboxes",
      "resource": "mailbox"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a mailbox",
      "description": "Update a mailbox",
      "resource": "mailbox"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a forwarder",
      "description": "Create a new forwarder",
      "resource": "forwarder"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a forwarder",
      "description": "Delete a forwarder",
      "resource": "forwarder"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a forwarder",
      "description": "Get a forwarder by ID",
      "resource": "forwarder"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many forwarders",
      "description": "Get many forwarders",
      "resource": "forwarder"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a forwarder",
      "description": "Update a forwarder",
      "resource": "forwarder"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a catch all",
      "description": "Create a new catch-all configuration",
      "resource": "catchAll"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a catch all",
      "description": "Delete a catch-all configuration",
      "resource": "catchAll"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a catch all",
      "description": "Get a catch-all configuration by ID",
      "resource": "catchAll"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many catch alls",
      "description": "Get many catch-all configurations",
      "resource": "catchAll"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a catch all",
      "description": "Update a catch-all configuration",
      "resource": "catchAll"
    }
  ]

npm_readme:
  # n8n-nodes-atriomail

  This is an n8n community node for [Atriomail](https://system.atriomail.com) - an Email System Management API for managing domains, mailboxes, forwarders, and catch-all configurations.

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

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

  ## Installation

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

  ## Operations

  ### Domain
  - **Create** - Create a new email domain
  - **Delete** - Delete an existing domain
  - **Get** - Retrieve a specific domain by ID
  - **Get Many** - List all domains
  - **Update** - Update domain settings (active status, description)

  ### Mailbox
  - **Create** - Create a new mailbox with email address and password
  - **Delete** - Delete an existing mailbox
  - **Get** - Retrieve a specific mailbox by ID
  - **Get Many** - List all mailboxes
  - **Update** - Update mailbox settings (name, password, quota, active status)

  ### Forwarder
  - **Create** - Create a new email forwarder
  - **Delete** - Delete an existing forwarder
  - **Get** - Retrieve a specific forwarder by ID
  - **Get Many** - List all forwarders
  - **Update** - Update forwarder settings (forward-to addresses, active status)

  ### Catch-All
  - **Create** - Create a new catch-all configuration for a domain
  - **Delete** - Delete an existing catch-all configuration
  - **Get** - Retrieve a specific catch-all by ID
  - **Get Many** - List all catch-all configurations
  - **Update** - Update catch-all settings (forward-to addresses, active status)

  ## Credentials

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

  1. **API URL**: Your Atriomail instance URL (default: `https://system.atriomail.com`)
  2. **API Token**: Your API token generated from the Atriomail dashboard

  ### Getting your API Token

  1. Log in to your Atriomail dashboard
  2. Navigate to your account settings
  3. Generate a new API token
  4. Copy the token and use it in the n8n credentials

  ## Compatibility

  - Tested with n8n version 1.0.0 and above
  - Requires Node.js 18.10 or higher

  ## Usage

  ### Create a Domain

  1. Add the Atriomail node to your workflow
  2. Select **Domain** as the resource
  3. Select **Create** as the operation
  4. Enter the domain name (e.g., `example.com`)
  5. Optionally set the domain as active and add a description

  ### Create a Mailbox

  1. Select **Mailbox** as the resource
  2. Select **Create** as the operation
  3. Choose the domain from the dropdown (domains are loaded dynamically)
  4. Enter the local part (e.g., `john` for `john@example.com`)
  5. Set a password for the mailbox
  6. Optionally set display name and quota

  ### Create a Forwarder

  1. Select **Forwarder** as the resource
  2. Select **Create** as the operation
  3. Choose the domain from the dropdown
  4. Enter the local part (e.g., `sales` for `sales@example.com`)
  5. Enter comma-separated email addresses to forward to

  ### Create a Catch-All

  1. Select **Catch-All** as the resource
  2. Select **Create** as the operation
  3. Choose the domain from the dropdown
  4. Enter comma-separated email addresses to receive catch-all emails

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Atriomail API Documentation](https://system.atriomail.com/api/documentation)

  ## License

  [MIT](LICENSE)

  ## More Information

  [Atriomail](https://atriomail.com)

ai_documentation_summary:
  {"purpose":"This n8n community node manages email domain configurations, mailboxes, forwarders, and catch-all settings via the Atriomail API.","capabilities":["Create email domains","Delete email domains","Retrieve specific or list all domains","Update domain settings (active status, description)","Create mailboxes with custom email addresses and passwords","Delete mailboxes","Retrieve specific or list all mailboxes","Update mailbox settings (name, password, quota, active status)","Create email forwarders","Delete forwarders"],"authentication":"API Token required","commonUseCases":["Automating email domain registration in n8n workflows","Managing mailbox creation and password resets","Setting up email forwarding rules dynamically","Configuring catch-all email addresses for domain-wide forwarding"],"limitations":["Community node (not official n8n node)","Requires manual API token generation from Atriomail dashboard","Requires Node.js 18.10 or higher"],"relatedNodes":["n8n-nodes-base-httpRequest","n8n-nodes-base-set"]}


node_type: n8n-nodes-yepcode.yepCode
package_name: n8n-nodes-yepcode
display_name: YepCode
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: yepcode
author_github_url: https://github.com/yepcode/
npm_package_name: n8n-nodes-yepcode
npm_version: 1.1.0
community_fetched_at: 2026-04-16T09:43:36.240Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  YepCode lets you run full processes or dynamic scripts using Node.js or Python, with support for any NPM or PyPI dependency. All in a secure, sandboxed environment.

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "run_process",
      "options": [
        {
          "name": "Run Process",
          "value": "run_process",
          "action": "Run process",
          "description": "Move your complex business logic into yep code processes and trigger them from your workflows using dynamic input parameters it s the most flexible way to connect with your ap is and services using real code with zero dev ops overhead"
        },
        {
          "name": "Run Code",
          "value": "run_code",
          "action": "Run code",
          "description": "A lightweight, flexible way to execute Node.js or Python code on demand — directly from your workflows or AI agents. The run_code tool runs in secure cloud sandboxes with full support for NPM and PyPI dependencies (https://yepcode.io/docs/dependencies), access to secrets, APIs, and databases. Perfect for quick scripts, dynamic logic, or AI-generated code."
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Run Process",
      "value": "run_process",
      "action": "Run process",
      "description": "Move your complex business logic into yep code processes and trigger them from your workflows using dynamic input parameters it s the most flexible way to connect with your ap is and services using real code with zero dev ops overhead"
    },
    {
      "name": "Run Code",
      "value": "run_code",
      "action": "Run code",
      "description": "A lightweight, flexible way to execute Node.js or Python code on demand — directly from your workflows or AI agents. The run_code tool runs in secure cloud sandboxes with full support for NPM and PyPI dependencies (https://yepcode.io/docs/dependencies), access to secrets, APIs, and databases. Perfect for quick scripts, dynamic logic, or AI-generated code."
    }
  ]

npm_readme:
  ![YepCode Image](https://cdn.prod.website-files.com/632cd328ed2b485519c3f689/68303b945a8746ed63f24a99_yepcode-cover-dev-tool-ai-solutions.png)

  # n8n-nodes-yepcode

  This is an n8n community node that enables you to use [YepCode](https://yepcode.io) within your n8n workflows.

  Easily execute AI-generated code in a secure, scalable environment with full support for dependencies, secrets, logs, and access to APIs or databases—all on a developer-first platform designed to create any integration or automation without DevOps complexity.

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

  ## Installation

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

  ## Operations

  ### 1. Run a YepCode Process

  Execute a specific YepCode process by selecting it from your YepCode workspace. This operation allows you to run pre-built processes with parameter mapping and advanced execution options.

  **Key Features:**
  - **Process Selection**: Choose from your available YepCode processes with searchable dropdown
  - **Parameter Mapping**: Map n8n input data to process parameters using a visual resource mapper
  - **Version Control**: Select specific process versions or use the current version
  - **Execution Modes**: 
    - **Run Once for All Items**: Execute the process once with all input items
    - **Run Once for Each Item**: Execute the process separately for each input item
  - **Synchronous/Asynchronous**: Choose whether to wait for execution completion
  - **n8n Context Integration**: Automatically pass n8n workflow data to your process

  **Advanced Options:**
  - **Version Selection**: Run specific published versions of your process
  - **Synchronous Execution**: Wait for completion and get results immediately
  - **Metadata**: Add execution comments and initiator information
  - **n8n Context**: Include workflow metadata, environment variables, and execution info

  **Example Use Cases:**
  - AI/ML model inference
  - Data transformation processes
  - API integrations with complex logic
  - File processing workflows
  - Database operations

  ### 2. Run Code

  Directly execute custom JavaScript or Python code in YepCode from your n8n workflow. This operation provides maximum flexibility for custom logic execution.

  **Key Features:**
  - **Multi-language Support**: Write code in JavaScript (Node.js) or Python
  - **Auto-dependency Management**: Import any NPM or PyPI package - YepCode installs them automatically
  - **n8n Integration**: Access n8n input items and workflow metadata directly in your code
  - **Execution Modes**:
    - **Run Once for All Items**: Process all input items in a single execution
    - **Run Once for Each Item**: Execute code separately for each input item
  - **Secure Environment**: Code runs in YepCode's isolated, secure environment

  **Advanced Options:**
  - **Language Detection**: Auto-detect code language or specify manually
  - **Code Cleanup**: Option to remove code after execution
  - **Metadata**: Add execution comments and initiator information
  - **n8n Context**: Include workflow data and metadata in your code execution

  **Example Use Cases:**
  - Custom data transformations
  - Complex calculations
  - API aggregations
  - Data validation
  - Custom business logic
  - Integration with external services

  ## Credentials

  Authentication is required to use this node. You'll need your YepCode API token, which you can find in your YepCode workspace under `Settings > API credentials`. For YepCode On-Premise, you may also specify a custom API host.

  1. Sign up for [YepCode Cloud](https://cloud.yepcode.io).
  2. Get your API token from `Settings > API credentials` in your YepCode workspace.
  3. Create your n8n credential using this token.
  4. (Optional) Enter a custom API host if using YepCode On-Premise.

  ## Usage

  ### Setting Up Credentials

  1. In your YepCode workspace, go to `Settings > API credentials`
  2. Copy your API token
  3. In n8n, create a new credential for the YepCode node
  4. Paste your API token
  5. (Optional) Set a custom API host for YepCode On-Premise

  ### Using Run Process Operation

  1. **Add the YepCode node** to your workflow
  2. **Select "Run Process"** as the operation
  3. **Choose your process** from the dropdown (searchable)
  4. **Configure parameters** using the resource mapper to map n8n data to process inputs
  5. **Set execution mode**:
     - **Run Once for All Items**: Process all items together
     - **Run Once for Each Item**: Process each item individually
  6. **Configure advanced options** (optional):
     - Enable/disable n8n context integration
     - Select specific process version
     - Set synchronous/asynchronous execution

  ### Using Run Code Operation

  1. **Add the YepCode node** to your workflow
  2. **Select "Run Code"** as the operation
  3. **Write your code** in the code editor (JavaScript or Python)
  4. **Set execution mode**:
     - **Run Once for All Items**: Process all items together
     - **Run Once for Each Item**: Process each item individually
  5. **Configure advanced options** (optional):
     - Specify language (auto-detected by default)
     - Enable/disable n8n context integration
     - Set code cleanup options

  **Example JavaScript Code:**
  ```javascript
  // Import any npm package - YepCode will install it automatically
  const { DateTime } = require("luxon");

  const { n8n } = yepcode.context.parameters;

  const results = [];
  for (const item of n8n.items) {
    results.push({
      ...item.json,
      processedAt: DateTime.now().toISO(),
      transformed: item.json.data * 2
    });
  }

  // Access n8n metadata
  console.log("Environment:", n8n.metadata);

  return results;
  ```

  **Example Python Code:**
  ```python
  # Import any PyPI package - YepCode will install it automatically
  from datetime import datetime

  # Access n8n context
  n8n = yepcode.context.parameters['n8n']

  results = []
  for item in n8n['items']:
      # Process each item
      processed_item = {
          **item['json'],
          'processed_at': datetime.now().isoformat(),
          'status': 'completed'
      }
      results.append(processed_item)

  # Access n8n metadata
  print("Environment:", n8n['metadata'])
  print("Execution ID:", n8n['metadata']['$execution']['id'])

  return results
  ```

  ### Accessing n8n Context

  Both operations can include n8n context data in your YepCode execution:

  - **Input Items**: All data from previous nodes in your workflow
  - **Workflow Metadata**: Environment variables, execution information, and workflow details
  - **Execution Context**: Current execution ID, resume URLs, and other runtime information

  ### Error Handling

  - **Continue on Fail**: Enable this option to continue workflow execution even if YepCode operations fail
  - **Error Information**: Failed executions return detailed error information in the output
  - **Logs**: Access execution logs through the YepCode dashboard or API

  For more information on using n8n community nodes, see the [n8n documentation](https://docs.n8n.io/integrations/#community-nodes). If you are new to n8n, you can get started with the [Try it out](https://docs.n8n.io/try-it-out/) guide.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [YepCode official docs](https://docs.yepcode.io/)
  * [YepCode Coding Rules](https://yepcode.io/docs/yepcode-coding-rules)

ai_documentation_summary:
  {"purpose":"Executes AI-generated code or pre-built processes in a secure, sandboxed environment using YepCode, supporting JavaScript and Python with automatic dependency management.","capabilities":["Run pre-defined YepCode processes with parameter mapping","Execute custom JavaScript code","Execute custom Python code","Automatic installation of NPM and PyPI dependencies","Access to n8n workflow context, metadata, and input items","Synchronous and asynchronous execution modes","Process version selection","Run once for all items or run once for each item","Secure sandboxed environment execution","API and database access within code execution"],"authentication":"API key required (YepCode API token)","commonUseCases":["AI/ML model inference","Data transformation and validation","Custom business logic execution","API integrations with complex logic","File processing workflows"],"limitations":["Requires YepCode account and API token","Community node (not official n8n node)","On-Premise deployment requires custom API host configuration"],"relatedNodes":["Code node","HTTP Request node","Python node","JavaScript node"]}


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

updated_at: 2026-04-16 09:43:36
author_name: deliverect-stefaang
author_github_url: https://github.com/Deliverect/
npm_package_name: n8n-nodes-deliverect
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.241Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "storeAPI",
      "options": [
        {
          "name": "Channel API",
          "value": "channelAPI"
        },
        {
          "name": "Commerce API",
          "value": "commerceAPI"
        },
        {
          "name": "KDS API",
          "value": "kdsAPI"
        },
        {
          "name": "POS API",
          "value": "posAPI"
        },
        {
          "name": "REST API",
          "value": "restAPI"
        },
        {
          "name": "Store API",
          "value": "storeAPI"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getStores",
      "options": [
        {
          "name": "Get Out-Of-Stock Products",
          "value": "getOutOfStock",
          "action": "Get out of stock products",
          "routing": {
            "request": {
              "qs": {
                "where": "={{ JSON.stringify({ location: $parameter.location }) }}",
                "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"location\":1,\"channelLink\":1,\"plus\":1,\"channel\":1,\"disabledUntil\":1,\"createdAt\":1,\"updatedAt\":1}) }}"
              },
              "url": "=/channelDisabledProducts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get out-of-stock products for a location"
        },
        {
          "name": "Get Products for Account",
          "value": "getProductsForAccount",
          "action": "Get products for account",
          "routing": {
            "request": {
              "qs": {
                "where": "={{ JSON.stringify($parameter.locationId ? { account: $parameter.account, location: $parameter.locationId } : { account: $parameter.account }) }}",
                "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"account\":1,\"location\":1,\"name\":1,\"plu\":1,\"channelLinks\":1,\"tags\":1,\"updatedAt\":1}) }}"
              },
              "url": "=/products",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Retrieve products for an entire account or a single location"
        },
        {
          "name": "Get Store Holidays",
          "value": "getStoreHolidays",
          "action": "Get store holidays",
          "routing": {
            "request": {
              "url": "=/location/{{$parameter.location}}/holidays",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Store Opening Hours",
          "value": "getStoreOpeningHours",
          "action": "Get store opening hours",
          "routing": {
            "request": {
              "qs": {
                "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"account\":1,\"location\":1,\"timezone\":1,\"days\":1,\"openingHours\":1}) }}"
              },
              "url": "=/account/{{$parameter.account}}/openingHours",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Stores",
          "value": "getStores",
          "action": "Get stores",
          "routing": {
            "request": {
              "qs": {
                "where": "={{ JSON.stringify({ account: $parameter.account }) }}",
                "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"account\":1,\"name\":1,\"posLocationId\":1,\"channelLinks\":1,\"timezone\":1,\"isActive\":1,\"updatedAt\":1}) }}"
              },
              "url": "=/locations",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get stores for an account"
        },
        {
          "name": "Set Out-Of-Stock Products",
          "value": "setOutOfStock",
          "action": "Set out of stock products",
          "routing": {
            "request": {
              "url": "/products/snoozeByPlus",
              "body": {
                "plus": "={{ (() => {\n\tconst payload = $parameter.products;\n\tif (payload === undefined || payload === null) {\n\t\treturn payload;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Product PLUs payload: ${message}`);\n\t\t}\n\t}\n\tif (!Array.isArray(result)) {\n\tthrow new Error('Product PLUs payload must be an array');\n}\nreturn result;\n})() }}",
                "account": "={{$parameter.account}}",
                "location": "={{$parameter.location}}",
                "snoozeEnd": "={{$parameter.snoozeEnd}}",
                "snoozeStart": "={{$parameter.snoozeStart}}"
              },
              "method": "POST"
            }
          },
          "description": "Set out-of-stock products for a location"
        },
        {
          "name": "Set Store Holidays",
          "value": "setStoreHolidays",
          "action": "Set store holidays",
          "routing": {
            "request": {
              "url": "=/locations/holidays",
              "body": "={{ (() => {\n\tconst payload = $parameter.holidays;\n\tif (payload === undefined || payload === null) {\n\t\treturn payload;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Holidays payload: ${message}`);\n\t\t}\n\t}\n\treturn result;\n})() }}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Set Store Opening Hours",
          "value": "setStoreOpeningHours",
          "action": "Set store opening hours",
          "routing": {
            "request": {
              "url": "=/locations/openingHours",
              "body": "={{ (() => {\n\tconst payload = $parameter.openingHours;\n\tif (payload === undefined || payload === null) {\n\t\treturn payload;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Opening Hours payload: ${message}`);\n\t\t}\n\t}\n\treturn result;\n})() }}",
              "method": "POST"
            }
          }
        },
        {
          "name": "Set Store Status",
          "value": "setStoreStatus",
          "action": "Set store status",
          "routing": {
            "request": {
              "url": "=/updateStoreStatus/{{$parameter.location}}",
              "body": {
                "isActive": "={{$parameter.isActive}}",
                "prepTime": "={{$parameter.prepTime !== null && $parameter.prepTime !== undefined ? $parameter.prepTime : undefined}}",
                "disableAt": "={{$parameter.disableAt !== \"\" && $parameter.disableAt !== undefined ? $parameter.disableAt : undefined}}",
                "channelLinks": "={{ (() => {\n\tconst payload = $parameter.channelLinks;\n\tif (payload === undefined || payload === null || (typeof payload === 'string' && payload.trim() === '')) {\n\t\treturn undefined;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Channel Links payload: ${message}`);\n\t\t}\n\t}\n\tif (!Array.isArray(result)) {\n\treturn undefined;\n}\nreturn result.length ? result : undefined;\n})() }}"
              },
              "method": "POST"
            }
          },
          "description": "Set store status for a location"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "storeAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createOrder",
      "options": [
        {
          "name": "Create Order",
          "value": "createOrder",
          "action": "Create order",
          "routing": {
            "request": {
              "url": "=/deliverect/order/{{$parameter.channelLink}}",
              "method": "POST"
            }
          },
          "description": "Create an order to a store"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channelAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "productSync",
      "options": [
        {
          "name": "Request Product Sync",
          "value": "productSync",
          "action": "Request product sync",
          "routing": {
            "request": {
              "url": "=/v2/locations/{{$parameter.location}}/syncProducts",
              "method": "POST"
            }
          },
          "description": "Trigger Deliverect to sync products for a POS on a specific location"
        },
        {
          "name": "Get All Allergens",
          "value": "getAllAllergens",
          "action": "Get all allergens",
          "routing": {
            "request": {
              "qs": {
                "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"name\":1,\"tags\":1,\"updatedAt\":1}) }}"
              },
              "url": "/allAllergens",
              "method": "GET"
            }
          },
          "description": "Retrieve all allergens from POSAPI"
        },
        {
          "name": "Get Product Categories",
          "value": "getProductCategories",
          "action": "Get product categories",
          "routing": {
            "request": {
              "qs": {
                "where": "={{ JSON.stringify({ account: $parameter.account }) }}",
                "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"name\":1,\"parent\":1,\"account\":1,\"products\":{\"_id\":1,\"name\":1}}) }}"
              },
              "url": "/productCategories",
              "method": "GET"
            }
          },
          "description": "Retrieve product categories for a specific account from POSAPI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "posAPI"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Out-Of-Stock Products",
      "value": "getOutOfStock",
      "action": "Get out of stock products",
      "routing": {
        "request": {
          "qs": {
            "where": "={{ JSON.stringify({ location: $parameter.location }) }}",
            "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"location\":1,\"channelLink\":1,\"plus\":1,\"channel\":1,\"disabledUntil\":1,\"createdAt\":1,\"updatedAt\":1}) }}"
          },
          "url": "=/channelDisabledProducts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get out-of-stock products for a location",
      "resource": "storeAPI"
    },
    {
      "name": "Get Products for Account",
      "value": "getProductsForAccount",
      "action": "Get products for account",
      "routing": {
        "request": {
          "qs": {
            "where": "={{ JSON.stringify($parameter.locationId ? { account: $parameter.account, location: $parameter.locationId } : { account: $parameter.account }) }}",
            "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"account\":1,\"location\":1,\"name\":1,\"plu\":1,\"channelLinks\":1,\"tags\":1,\"updatedAt\":1}) }}"
          },
          "url": "=/products",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Retrieve products for an entire account or a single location",
      "resource": "storeAPI"
    },
    {
      "name": "Get Store Holidays",
      "value": "getStoreHolidays",
      "action": "Get store holidays",
      "routing": {
        "request": {
          "url": "=/location/{{$parameter.location}}/holidays",
          "method": "GET"
        }
      },
      "resource": "storeAPI"
    },
    {
      "name": "Get Store Opening Hours",
      "value": "getStoreOpeningHours",
      "action": "Get store opening hours",
      "routing": {
        "request": {
          "qs": {
            "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"account\":1,\"location\":1,\"timezone\":1,\"days\":1,\"openingHours\":1}) }}"
          },
          "url": "=/account/{{$parameter.account}}/openingHours",
          "method": "GET"
        },
        "operations": {}
      },
      "resource": "storeAPI"
    },
    {
      "name": "Get Stores",
      "value": "getStores",
      "action": "Get stores",
      "routing": {
        "request": {
          "qs": {
            "where": "={{ JSON.stringify({ account: $parameter.account }) }}",
            "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"account\":1,\"name\":1,\"posLocationId\":1,\"channelLinks\":1,\"timezone\":1,\"isActive\":1,\"updatedAt\":1}) }}"
          },
          "url": "=/locations",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get stores for an account",
      "resource": "storeAPI"
    },
    {
      "name": "Set Out-Of-Stock Products",
      "value": "setOutOfStock",
      "action": "Set out of stock products",
      "routing": {
        "request": {
          "url": "/products/snoozeByPlus",
          "body": {
            "plus": "={{ (() => {\n\tconst payload = $parameter.products;\n\tif (payload === undefined || payload === null) {\n\t\treturn payload;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Product PLUs payload: ${message}`);\n\t\t}\n\t}\n\tif (!Array.isArray(result)) {\n\tthrow new Error('Product PLUs payload must be an array');\n}\nreturn result;\n})() }}",
            "account": "={{$parameter.account}}",
            "location": "={{$parameter.location}}",
            "snoozeEnd": "={{$parameter.snoozeEnd}}",
            "snoozeStart": "={{$parameter.snoozeStart}}"
          },
          "method": "POST"
        }
      },
      "description": "Set out-of-stock products for a location",
      "resource": "storeAPI"
    },
    {
      "name": "Set Store Holidays",
      "value": "setStoreHolidays",
      "action": "Set store holidays",
      "routing": {
        "request": {
          "url": "=/locations/holidays",
          "body": "={{ (() => {\n\tconst payload = $parameter.holidays;\n\tif (payload === undefined || payload === null) {\n\t\treturn payload;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Holidays payload: ${message}`);\n\t\t}\n\t}\n\treturn result;\n})() }}",
          "method": "POST"
        }
      },
      "resource": "storeAPI"
    },
    {
      "name": "Set Store Opening Hours",
      "value": "setStoreOpeningHours",
      "action": "Set store opening hours",
      "routing": {
        "request": {
          "url": "=/locations/openingHours",
          "body": "={{ (() => {\n\tconst payload = $parameter.openingHours;\n\tif (payload === undefined || payload === null) {\n\t\treturn payload;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Opening Hours payload: ${message}`);\n\t\t}\n\t}\n\treturn result;\n})() }}",
          "method": "POST"
        }
      },
      "resource": "storeAPI"
    },
    {
      "name": "Set Store Status",
      "value": "setStoreStatus",
      "action": "Set store status",
      "routing": {
        "request": {
          "url": "=/updateStoreStatus/{{$parameter.location}}",
          "body": {
            "isActive": "={{$parameter.isActive}}",
            "prepTime": "={{$parameter.prepTime !== null && $parameter.prepTime !== undefined ? $parameter.prepTime : undefined}}",
            "disableAt": "={{$parameter.disableAt !== \"\" && $parameter.disableAt !== undefined ? $parameter.disableAt : undefined}}",
            "channelLinks": "={{ (() => {\n\tconst payload = $parameter.channelLinks;\n\tif (payload === undefined || payload === null || (typeof payload === 'string' && payload.trim() === '')) {\n\t\treturn undefined;\n\t}\n\tlet result = payload;\n\tif (typeof result === 'string') {\n\t\ttry {\n\t\t\tresult = JSON.parse(result);\n\t\t} catch (error) {\n\t\t\tconst message = error && error.message ? error.message : error;\n\t\t\tthrow new Error(`Invalid JSON provided for Channel Links payload: ${message}`);\n\t\t}\n\t}\n\tif (!Array.isArray(result)) {\n\treturn undefined;\n}\nreturn result.length ? result : undefined;\n})() }}"
          },
          "method": "POST"
        }
      },
      "description": "Set store status for a location",
      "resource": "storeAPI"
    },
    {
      "name": "Create Order",
      "value": "createOrder",
      "action": "Create order",
      "routing": {
        "request": {
          "url": "=/deliverect/order/{{$parameter.channelLink}}",
          "method": "POST"
        }
      },
      "description": "Create an order to a store",
      "resource": "channelAPI"
    },
    {
      "name": "Request Product Sync",
      "value": "productSync",
      "action": "Request product sync",
      "routing": {
        "request": {
          "url": "=/v2/locations/{{$parameter.location}}/syncProducts",
          "method": "POST"
        }
      },
      "description": "Trigger Deliverect to sync products for a POS on a specific location",
      "resource": "posAPI"
    },
    {
      "name": "Get All Allergens",
      "value": "getAllAllergens",
      "action": "Get all allergens",
      "routing": {
        "request": {
          "qs": {
            "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"name\":1,\"tags\":1,\"updatedAt\":1}) }}"
          },
          "url": "/allAllergens",
          "method": "GET"
        }
      },
      "description": "Retrieve all allergens from POSAPI",
      "resource": "posAPI"
    },
    {
      "name": "Get Product Categories",
      "value": "getProductCategories",
      "action": "Get product categories",
      "routing": {
        "request": {
          "qs": {
            "where": "={{ JSON.stringify({ account: $parameter.account }) }}",
            "projection": "={{ $parameter.fetchFullPayload ? undefined : JSON.stringify({\"_id\":1,\"name\":1,\"parent\":1,\"account\":1,\"products\":{\"_id\":1,\"name\":1}}) }}"
          },
          "url": "/productCategories",
          "method": "GET"
        }
      },
      "description": "Retrieve product categories for a specific account from POSAPI",
      "resource": "posAPI"
    }
  ]

npm_readme:
  # n8n-nodes-deliverect

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


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

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

  Store API: 

  * get stores
  * get snoozed products
  * set snoozed products

  POSAPI

  * sync products

  Channel API

  * publish menu

  ## Credentials

  [Request](https://developers.deliverect.com/docs/getting-started) a client credentials keypair with Deliverect API support.

  Bearer token support is WIP.

  ## Compatibility

  Tested with N8N 1.97.1

  ## Usage

  If you're new with N8N, [try it out](https://docs.n8n.io/try-it-out/) first.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Deliverect API documentation](https://developers.deliverect.com)

  ## Version history

  v1.0: Initial version

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Deliverect API to manage restaurant POS systems, menus, and product inventory within automated workflows.","capabilities":["Retrieve stored products","Retrieve snoozed products","Set/update snoozed products","Sync products to POS system","Publish menu items"],"authentication":"API key required (Client credentials keypair)","commonUseCases":["Automating restaurant menu updates","Synchronizing product inventory between systems","Managing product availability and snoozing"],"limitations":["Bearer token support is not yet implemented (WIP)","Limited to specific Deliverect API operations"],"relatedNodes":["HTTP Request","Deliverect API"]}


node_type: @qualytics/n8n-nodes-qualytics.qualyticsTrigger
package_name: @qualytics/n8n-nodes-qualytics
display_name: Qualytics Trigger
description: Triggers workflow when a Qualytics Flow Action fires
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: ets
author_github_url: https://github.com/Qualytics/n8n-node-qualytics.git
npm_package_name: @qualytics/n8n-nodes-qualytics
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.242Z
npm_readme:
  # n8n-nodes-qualytics

  This is an n8n community node for [Qualytics](https://qualytics.ai/), a data quality platform. It lets you trigger n8n workflows when Qualytics Flow Actions fire.

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

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

  ## Installation

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

  ## Operations

  ### Qualytics Trigger

  A webhook trigger node that starts your workflow when Qualytics sends a Flow Action event.

  **Trigger Events:**
  - Flow triggered (anomaly detection, quality checks, etc.)

  **Available Data:**
  - Flow ID and name
  - Datastore ID and name
  - Trigger type and timestamp
  - Anomaly details (ID, type, description, affected fields)
  - Container information
  - Quality check results
  - Link to Qualytics UI

  ## Credentials

  ### Webhook Secret (Optional)

  For additional security, you can configure a shared secret to validate incoming webhook requests:

  1. In n8n, set Authentication to "Webhook Secret"
  2. Enter a secret value in the Qualytics API credentials
  3. Configure the same secret in your Qualytics n8n integration
  4. Qualytics will send the secret in the `X-Qualytics-Secret` header

  If the secrets do not match, the webhook request will be rejected with a 401 Unauthorized response.

  ## Compatibility

  Compatible with n8n version 1.60.0 or later.

  ## Setup

  ### In Qualytics

  1. Navigate to Settings > Integrations
  2. Add a new n8n integration
  3. Enter the webhook URL from your n8n Qualytics Trigger node
  4. (Optional) Set a webhook secret for authentication
  5. Save the integration

  ### In n8n

  1. Add a "Qualytics Trigger" node to your workflow
  2. Copy the webhook URL shown in the node
  3. (Optional) Configure webhook secret authentication
  4. (Optional) Filter to specific event types
  5. Activate your workflow

  ### In Your Qualytics Flow

  1. Edit your Flow
  2. Add a new Action
  3. Select "Notification" action type
  4. Choose your n8n integration
  5. Save the Flow

  ## Example Workflow

  ```
  [Qualytics Trigger] → [IF anomaly count > 10] → [Slack] Send alert
                                                → [Email] Send report
  ```

  ## Payload Structure

  The Qualytics Trigger node receives the following JSON payload:

  ```json
  {
    "event": "qualytics.flow.triggered",
    "flow": {
      "id": 123,
      "name": "My Flow"
    },
    "datastore": {
      "id": 456,
      "name": "Production DB"
    },
    "trigger": {
      "type": "Anomaly",
      "timestamp": "2026-01-25T12:00:00Z"
    },
    "context": {
      "anomalies": [
        {
          "id": 1,
          "type": "unexpected_value",
          "description": "Value outside expected range",
          "container": "orders",
          "field": "amount",
          "created_at": "2026-01-25T11:59:00Z"
        }
      ],
      "containers": [
        {
          "id": 1,
          "name": "orders"
        }
      ],
      "quality_checks": [
        {
          "id": 1,
          "name": "Amount Range Check",
          "status": "failed"
        }
      ]
    },
    "target_link": "https://demo.qualytics.io/..."
  }
  ```

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Qualytics documentation](https://userguide.qualytics.io/)
  * [Qualytics n8n integration guide](https://userguide.qualytics.io/flows/workflow/#n8n)


node_type: @searchapi/n8n-nodes-searchapi.searchApi
package_name: @searchapi/n8n-nodes-searchapi
display_name: SearchApi
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: searchapi_team
author_github_url: https://github.com/SearchApi/n8n-nodes-searchapi.git
npm_package_name: @searchapi/n8n-nodes-searchapi
npm_version: 2.0.4
community_fetched_at: 2026-04-16T09:43:36.242Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Access real-time search results from Google, Google Images, Google Maps, Google Shopping and more. Use this when you need current, up-to-date information, product searches, location data, or visual content that may not be available in your training data.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "google",
      "options": [
        {
          "name": "Google Search",
          "value": "google"
        },
        {
          "name": "Google Images",
          "value": "google_images"
        },
        {
          "name": "Google Maps",
          "value": "google_maps"
        },
        {
          "name": "Google Shopping",
          "value": "google_shopping"
        }
      ],
      "description": "The search engine to use",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search",
          "routing": {
            "request": {
              "qs": {
                "engine": "={{ $parameter[\"resource\"] }}"
              }
            }
          },
          "description": "Search using the engine specified in the resource"
        }
      ],
      "displayName": "Operation Name",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search",
      "routing": {
        "request": {
          "qs": {
            "engine": "={{ $parameter[\"resource\"] }}"
          }
        }
      },
      "description": "Search using the engine specified in the resource"
    }
  ]

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

  # n8n SearchApi.io Node

  Search the web with [SearchApi.io](https://www.searchapi.io/) directly from your n8n workflows. The node exposes the full power of the `/api/v1/search` endpoint and supports **all engines and query parameters** offered by the service.

  > **Why SearchApi.io?**\
  > Real‑time SERP data from Google, Bing, DuckDuckGo, Yahoo, Yandex and more – no captchas, no proxies, one simple API.

  ---

  ## Installation

  ### Via the n8n UI (recommended)

  1. Open **Settings → Community Nodes** inside your self‑hosted n8n instance.
  2. Fill **npm Package Name** with `@searchapi/n8n-nodes-searchapi`.
  3. Select the package, accept the risk prompt, and hit **Install**.
  4. It should now appear as a node when you search for it.

  ### Via the command line

  ```bash
  # inside your n8n installation folder
  npm install @searchapi/n8n-nodes-searchapi
  # or with pnpm
  pnpm add @searchapi/n8n-nodes-searchapi
  ```

  Restart n8n after the install finishes.

  > **Compatibility**
  >
  > - n8n ≥ 1.30.0
  > - Node.js ≥ 18

  ---

  ## Credentials

  1. Sign up at **[SearchApi.io](https://www.searchapi.io/)** and copy your **API Key**.
  2. In n8n go to **Credentials → + New Credential → SearchApi**.
  3. Paste the key and save.\
     The new credential will now appear in the node’s **Credential** dropdown.

  ---

  ## Usage

  ### 1. Drag‑and‑drop UI

  1. Add the **SearchApi** node to your workflow.
  2. Choose your **Credential** and the **Engine**.
  3. Under **Parameters,** click **Add Parameter** for each query string field you need. To determine which fields to add, refer to the engine's documentation. Example:
     - **Name**: `q`
     - **Value**: `weather new york`
  4. Execute the workflow to receive the response as JSON.

  ### 2. Pass a parameters object (programmatic)

  You can also pass a parameters object directly to the node, instead of the UI:

  ```json
  {
    "parameters": {
      "q": "n8n workflow automation",
      "device": "mobile",
      "location": "Berlin"
    }
  }
  ```

  - Feed the object through a **Set** node or any previous node.
    ```
    {{$json.parameters}}
    ```
  - The node will give preference to the parameters object.

  ---

  ## Example workflows

  To easily see how to work with SearchApi on n8n, refer to the examples we've prepared. To use them you can download the json file and import on n8n, or you can paste the url for the, you can also copy the contents and paste inside a workflow. Refer to [n8n docs](https://docs.n8n.io/courses/level-one/chapter-6/#exporting-and-importing-workflows_1) on how to import workflows.

  - [Youtube video summarization with SearchApi](/examples/searchapi_youtube_transcripts/)
  - [Chatbot that searchs the web with SearchApi](/examples/searchapi_chatbot/)

  ## Output

  The node returns the raw JSON received from SearchApi.io. See the [official docs](https://www.searchapi.io/docs/google) for complete schemas.

  ---

  ## Troubleshooting

  | Error message                | Likely cause                 | Fix                                                                         |
  | ---------------------------- | ---------------------------- | --------------------------------------------------------------------------- |
  | **401 Unauthorized**         | Invalid or missing API key   | Double‑check the credentials.                                               |
  | **400 Bad Request** | Missing required parameter | Verify against SearchApi docs.                                              |
  | **429 Too Many Requests**    | Rate limit exceeded          | Slow down the workflow or [upgrade plan](https://www.searchapi.io/pricing). |

  ---

  ## Resources

  - **SearchApi.io documentation** – [https://www.searchapi.io/](https://www.searchapi.io/docs/google)
  - **n8n Community Forum** – [https://community.n8n.io](https://community.n8n.io)
  - **Community nodes installation** – [https://docs.n8n.io/integrations/community-nodes/installation/](https://docs.n8n.io/integrations/community-nodes/installation/)

  ## Contributing

  1. Run build with `pnpm build`
  2. Run `npm link` on the project root
  3. Run `npm link @searchapi/n8n-nodes-searchapi` on `$HOME/.n8n/custom`

  After that build the node on each change and it should be reflected in n8n local interface. Note: You can see we are using pnpm to build, and npm to test. With asdf this seems to be the best approach.

ai_documentation_summary:
  {"purpose":"This n8n node enables real-time web searches across multiple engines (Google, Bing, DuckDuckGo, etc.) by exposing the SearchApi.io API, providing up-to-date SERP data, images, maps, and shopping results.","capabilities":["Web search across multiple engines (Google, Bing, DuckDuckGo, Yahoo, Yandex)","Access to Google Images, Google Maps, and Google Shopping","Customizable query parameters via UI or JSON object","Support for device and location targeting","Real-time search results without captchas or proxies"],"authentication":"API Key required (obtained from SearchApi.io)","commonUseCases":["Retrieving current news or trending topics","Product searches for e-commerce workflows","Location-based data queries","Visual content search (images)","Web summarization and chatbot knowledge retrieval"],"limitations":["Rate limits apply; exceeding them requires upgrading the SearchApi.io plan","Requires n8n version ≥ 1.30.0 and Node.js ≥ 18","Output is raw JSON; schema details depend on SearchApi.io documentation"],"relatedNodes":["Set node (for passing parameters objects)","HTTP Request node (alternative for API calls)","JSON node (for transforming output)"]}


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

updated_at: 2026-04-16 09:43:36
author_name: infobip.mobile
author_github_url: https://github.com/infobip/n8n-nodes-infobip-api.git
npm_package_name: @infobip/n8n-nodes-infobip-api
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:36.243Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "sendSms",
      "options": [
        {
          "name": "Send an SMS",
          "value": "sendSms",
          "action": "Send an SMS"
        },
        {
          "name": "View SMS Delivery Report",
          "value": "smsDeliveryReport",
          "action": "View sms delivery report"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

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

npm_readme:
  # n8n-nodes-infobip-api

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

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

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

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

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

  ## Installation

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

  You can install this node using:

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

  ## Operations

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

  ## Credentials

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

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

  ## Compatibility

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

  ## Resources

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

ai_documentation_summary:
  {"purpose":"A community node that enables sending SMS messages and retrieving delivery reports through the Infobip SMS API within n8n workflows.","capabilities":["Send SMS messages to recipients","Retrieve SMS delivery reports"],"authentication":"API key required","commonUseCases":["Automated SMS notifications in workflows","Customer communication campaigns","Delivery status tracking for sent messages"],"limitations":["Currently in beta version with potential for feature/API changes","Requires n8n version 1.0 or later","Requires Node.js version 20 or higher"],"relatedNodes":["Infobip Voice Call node","Infobip WhatsApp node"]}


node_type: n8n-nodes-surplus-lines-undtec.surplusLinesApi
package_name: n8n-nodes-surplus-lines-undtec
display_name: Surplus Lines API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: edward_ut
author_github_url: https://github.com/undtec/surplus-lines-undtec.git
npm_package_name: n8n-nodes-surplus-lines-undtec
npm_version: 1.2.2
community_fetched_at: 2026-04-16T09:43:36.244Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Calculate surplus lines taxes for all U.S. states. Supports current and historical rates with automatic fallback.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "tax",
      "options": [
        {
          "name": "Tax",
          "value": "tax",
          "description": "Calculate surplus lines taxes"
        },
        {
          "name": "Rate",
          "value": "rate",
          "description": "Get tax rate information"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "calculate",
      "options": [
        {
          "name": "Calculate",
          "value": "calculate",
          "action": "Calculate surplus lines tax",
          "description": "Calculate surplus lines tax for a state and premium (supports historical with automatic fallback)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tax"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRate",
      "options": [
        {
          "name": "Get Rate",
          "value": "getRate",
          "action": "Get tax rate",
          "description": "Get current or historical tax rate (automatic fallback if historical data unavailable)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "rate"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Calculate",
      "value": "calculate",
      "action": "Calculate surplus lines tax",
      "description": "Calculate surplus lines tax for a state and premium (supports historical with automatic fallback)",
      "resource": "tax"
    },
    {
      "name": "Get Rate",
      "value": "getRate",
      "action": "Get tax rate",
      "description": "Get current or historical tax rate (automatic fallback if historical data unavailable)",
      "resource": "rate"
    }
  ]

npm_readme:
  # n8n-nodes-surplus-lines-undtec

  This is an n8n community node for the [Surplus Lines Tax API](https://surpluslinesapi.com) by [Underwriters Technologies](https://undtec.com).

  Calculate surplus lines taxes for all 50 U.S. states, the District of Columbia, Puerto Rico, and the U.S. Virgin Islands with accurate state-specific rules and rounding.

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

  ## Try It Free

  Want to test surplus lines tax calculations before integrating? Try our **free web-based calculator** at [sltax.undtec.com](https://sltax.undtec.com/) - no signup required!

  ## About

  The Surplus Lines Tax API is a product of [Underwriters Technologies](https://undtec.com), providing insurance technology solutions for the surplus lines industry.

  - **API Service**: [surpluslinesapi.com](https://surpluslinesapi.com)
  - **Free Calculator**: [sltax.undtec.com](https://sltax.undtec.com/)
  - **Company**: [undtec.com](https://undtec.com)

  ## Installation

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

  ### npm

  ```bash
  npm install n8n-nodes-surplus-lines-undtec
  ```

  ### n8n Community Nodes

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-surplus-lines-undtec` and confirm

  ## Credentials

  You need a Surplus Lines API key to use this node:

  1. Create an account at [app.surpluslinesapi.com](https://app.surpluslinesapi.com)
  2. Navigate to the API Keys section in your dashboard
  3. Generate a new API key
  4. In n8n, create new credentials of type "Surplus Lines API" and paste your key

  New accounts include **100 free API calls** to get started.

  ## Operations

  ### Calculate Tax

  Calculate surplus lines tax for a specific state and premium amount.

  **Required Parameters:**
  - **State**: Select from all 50 U.S. states plus DC, Puerto Rico, and Virgin Islands
  - **Premium**: The premium amount in USD

  **Optional Parameters:**
  - **Wet Marine**: For wet marine coverage (affects Alaska)
  - **Fire Insurance**: For fire insurance (affects SD, MT)
  - **Electronic Filing**: For electronic filing (affects MT stamping fee)
  - **Fire Marshal Rate**: 0-1% fire marshal tax (Illinois only)
  - **Medical Malpractice**: For medical malpractice coverage (exempt in PR)
  - **Workers Comp**: For workers comp coverage (exempt in VA)
  - **Year**: Tax year (affects Iowa rates 2024-2027)
  - **New Business**: New/renewal policy flag (affects Oregon $10 fee)

  **Example Response:**

  ```json
  {
    "success": true,
    "state": "Texas",
    "premium": 10000,
    "taxes": {
      "sl_tax": 485.00,
      "tax_rate": 0.0485,
      "stamping_fee": 18.00,
      "stamping_fee_rate": 0.0018
    },
    "total_tax": 503.00,
    "total_due": 10503.00
  }
  ```

  ### Get Rate

  Get the current or historical tax rate for a specific state. Automatically falls back to current rates if historical data is unavailable.

  **Required Parameters:**
  - **State**: Select from all 50 U.S. states plus DC, Puerto Rico, and Virgin Islands

  **Optional Parameters:**
  - **Date**: Date in YYYY-MM-DD format for historical rates. Leave empty for current rates.

  **Example Response (Current Rate):**

  ```json
  {
    "success": true,
    "state": "Texas",
    "query_date": "2026-02-12",
    "rate": {
      "tax_rate": 0.0485,
      "stamping_fee": 0.0018,
      "filing_fee": null,
      "service_fee": null,
      "surcharge": null,
      "regulatory_fee": null,
      "effective_from": "2020-01-01",
      "effective_to": null,
      "legislative_source": "Texas Insurance Code § 225.006",
      "confidence": "high"
    }
  }
  ```

  **Example Response (Historical Rate with Fallback):**

  ```json
  {
    "success": true,
    "state": "Iowa",
    "query_date": "2020-01-01",
    "rate": {
      "tax_rate": 0.01,
      "stamping_fee": 0.002,
      "filing_fee": null,
      "service_fee": null,
      "surcharge": null,
      "regulatory_fee": null,
      "effective_from": "2019-01-01",
      "effective_to": "2023-12-31",
      "legislative_source": "Iowa Code § 515.138",
      "confidence": "high"
    },
    "fallback_used": false,
    "fallback_message": null
  }
  ```

  **Automatic Fallback:**

  If historical data is unavailable for the requested date, the API automatically returns the current rate with a helpful message:

  ```json
  {
    "success": true,
    "state": "Texas",
    "query_date": "2010-01-01",
    "rate": {
      "tax_rate": 0.0485,
      "stamping_fee": 0.0018,
      // ... current rate data
    },
    "fallback_used": true,
    "fallback_message": "Historical data not available for this date. Returning current rate."
  }
  ```

  ### Calculate Historical Tax

  The **Calculate Tax** operation also supports historical calculations. Simply provide an `effective_date` parameter to calculate taxes using rates that were in effect on that date.

  **Example:**
  - State: Texas
  - Premium: 10,000
  - Effective Date: 2020-01-01

  The API will use the tax rates that were in effect on January 1, 2020 for the calculation. If historical data is unavailable, it automatically falls back to current rates with a notification.

  ## Why Use Surplus Lines API?

  - **Accurate**: State-specific rounding rules and current tax rates
  - **Complete**: Covers all 50 states, DC, Puerto Rico, and Virgin Islands
  - **Fast**: Real-time calculations with low latency
  - **Reliable**: Built for production insurance workflows
  - **Affordable**: Pay-as-you-go pricing with 100 free calls to start

  ## Resources

  - [Surplus Lines API Documentation](https://surpluslinesapi.com/docs/)
  - [Free Web Calculator](https://sltax.undtec.com/)
  - [Underwriters Technologies](https://undtec.com)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Support

  For API support, contact [support@undtec.com](mailto:support@undtec.com)

  ## License

  [MIT](LICENSE)

  ---

  **Surplus Lines Tax API** is a product of [Underwriters Technologies](https://undtec.com) - Insurance Technology Solutions

ai_documentation_summary:
  {"purpose":"Calculates surplus lines taxes for U.S. states and territories, supporting current and historical rates with automatic fallback.","capabilities":["Calculate current surplus lines tax for a specific state and premium amount","Retrieve current tax rates for all 50 U.S. states, DC, Puerto Rico, and Virgin Islands","Retrieve historical tax rates for specific dates with automatic fallback to current rates","Calculate historical tax using rates effective on a specific date","Support state-specific parameters (Wet Marine, Fire Insurance, Electronic Filing, Fire Marshal Rate, Medical Malpractice, Workers Comp, New Business)","Handle state-specific rounding rules and tax calculations"],"authentication":"API key required","commonUseCases":["Insurance compliance reporting","Policy premium tax calculation","Historical tax rate analysis","State-specific tax rate lookup"],"limitations":["Historical data may not be available for all dates, requiring fallback to current rates","Limited to U.S. states, DC, Puerto Rico, and Virgin Islands","Requires API key authentication"],"relatedNodes":["n8n-nodes-surplus-lines-undtec.surplusLinesApi"]}


node_type: @local-falcon/n8n-nodes-localfalcon.localFalcon
package_name: @local-falcon/n8n-nodes-localfalcon
display_name: Local Falcon
description: Interact with Local Falcon API for local SEO rank tracking
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: localfalcondev
author_github_url: https://github.com/local-falcon/n8n-nodes-localfalcon.git
npm_package_name: @local-falcon/n8n-nodes-localfalcon
npm_version: 1.1.0
community_fetched_at: 2026-04-16T09:43:36.245Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scan",
      "options": [
        {
          "name": "Scans",
          "value": "scan"
        },
        {
          "name": "Campaigns",
          "value": "campaign"
        },
        {
          "name": "Locations",
          "value": "location"
        },
        {
          "name": "Reports",
          "value": "report"
        },
        {
          "name": "Scheduled Scans",
          "value": "scheduledScan"
        },
        {
          "name": "Falcon Guard",
          "value": "falconGuard"
        },
        {
          "name": "Reviews Analysis",
          "value": "reviewsAnalysis"
        },
        {
          "name": "Account",
          "value": "account"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listReports",
      "options": [
        {
          "name": "List Reports",
          "value": "listReports",
          "action": "List scan reports",
          "description": "List all scan reports"
        },
        {
          "name": "Get Report",
          "value": "getReport",
          "action": "Get a scan report",
          "description": "Get scan report by key"
        },
        {
          "name": "Run",
          "value": "run",
          "action": "Run a scan",
          "description": "Run a new scan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List campaigns",
          "description": "List all campaigns"
        },
        {
          "name": "Get Report",
          "value": "getReport",
          "action": "Get campaign report",
          "description": "Get campaign report"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a campaign",
          "description": "Create a new campaign"
        },
        {
          "name": "Run",
          "value": "run",
          "action": "Run a campaign",
          "description": "Run a campaign"
        },
        {
          "name": "Pause",
          "value": "pause",
          "action": "Pause a campaign",
          "description": "Pause a campaign"
        },
        {
          "name": "Resume",
          "value": "resume",
          "action": "Resume a campaign",
          "description": "Resume a campaign"
        },
        {
          "name": "Reactivate",
          "value": "reactivate",
          "action": "Reactivate a campaign",
          "description": "Reactivate a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List locations",
          "description": "List all locations"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search locations",
          "description": "Search for locations"
        },
        {
          "name": "Save",
          "value": "save",
          "action": "Save a location",
          "description": "Save a location"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "location"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCompetitor",
      "options": [
        {
          "name": "List Competitor Reports",
          "value": "listCompetitor",
          "action": "List Competitor Reports",
          "description": "Get the list of competitor reports"
        },
        {
          "name": "Get Competitor",
          "value": "getCompetitor",
          "action": "Get competitor report",
          "description": "Get competitor report"
        },
        {
          "name": "List Trend Reports",
          "value": "listTrend",
          "action": "List Trend Reports",
          "description": "Get the list of Trend reports"
        },
        {
          "name": "Get Trend",
          "value": "getTrend",
          "action": "Get trend report",
          "description": "Get trend report"
        },
        {
          "name": "List Keyword Reports",
          "value": "listKeyword",
          "action": "List Keyword Reports",
          "description": "Get the list of Keyword reports"
        },
        {
          "name": "Get Keyword",
          "value": "getKeyword",
          "action": "Get keyword report",
          "description": "Get keyword report"
        },
        {
          "name": "List Location Reports",
          "value": "listLocation",
          "action": "List Location Reports",
          "description": "Get the list of Location reports"
        },
        {
          "name": "Get Location",
          "value": "getLocation",
          "action": "Get location report",
          "description": "Get location report"
        },
        {
          "name": "Get Reviews",
          "value": "getReviews",
          "action": "Get reviews report",
          "description": "Get reviews analysis report"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listReviews",
      "options": [
        {
          "name": "List Reviews Analysis",
          "value": "listReviews",
          "action": "List Reviews Analysis",
          "description": "Get the list of Reviews Analysis reports"
        },
        {
          "name": "Get Reviews Report",
          "value": "getReviews",
          "action": "Get reviews analysis report",
          "description": "Get reviews analysis report"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reviewsAnalysis"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List scheduled scans",
          "description": "List all scheduled scans"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scheduledScan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listLocations",
      "options": [
        {
          "name": "List Locations",
          "value": "listLocations",
          "action": "List Falcon Guard Locations",
          "description": "List all Falcon Guard protected locations"
        },
        {
          "name": "Get Falcon Guard Report",
          "value": "getGuardReport",
          "action": "Get specific Falcon Guard Report",
          "description": "Get specific Falcon Guard Report"
        },
        {
          "name": "Add Location",
          "value": "addLocation",
          "action": "Add location to Falcon Guard",
          "description": "Add location to Falcon Guard"
        },
        {
          "name": "Pause",
          "value": "pause",
          "action": "Pause Falcon Guard",
          "description": "Pause Falcon Guard for location"
        },
        {
          "name": "Resume",
          "value": "resume",
          "action": "Resume Falcon Guard",
          "description": "Resume Falcon Guard for location"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete from Falcon Guard",
          "description": "Delete location from Falcon Guard"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "falconGuard"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInfo",
      "options": [
        {
          "name": "Get Info",
          "value": "getInfo",
          "action": "Get account info",
          "description": "Get account information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "List Reports",
      "value": "listReports",
      "action": "List scan reports",
      "description": "List all scan reports",
      "resource": "scan"
    },
    {
      "name": "Get Report",
      "value": "getReport",
      "action": "Get a scan report",
      "description": "Get scan report by key",
      "resource": "scan"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run a scan",
      "description": "Run a new scan",
      "resource": "scan"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List campaigns",
      "description": "List all campaigns",
      "resource": "campaign"
    },
    {
      "name": "Get Report",
      "value": "getReport",
      "action": "Get campaign report",
      "description": "Get campaign report",
      "resource": "campaign"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a campaign",
      "description": "Create a new campaign",
      "resource": "campaign"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run a campaign",
      "description": "Run a campaign",
      "resource": "campaign"
    },
    {
      "name": "Pause",
      "value": "pause",
      "action": "Pause a campaign",
      "description": "Pause a campaign",
      "resource": "campaign"
    },
    {
      "name": "Resume",
      "value": "resume",
      "action": "Resume a campaign",
      "description": "Resume a campaign",
      "resource": "campaign"
    },
    {
      "name": "Reactivate",
      "value": "reactivate",
      "action": "Reactivate a campaign",
      "description": "Reactivate a campaign",
      "resource": "campaign"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List locations",
      "description": "List all locations",
      "resource": "location"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search locations",
      "description": "Search for locations",
      "resource": "location"
    },
    {
      "name": "Save",
      "value": "save",
      "action": "Save a location",
      "description": "Save a location",
      "resource": "location"
    },
    {
      "name": "List Competitor Reports",
      "value": "listCompetitor",
      "action": "List Competitor Reports",
      "description": "Get the list of competitor reports",
      "resource": "report"
    },
    {
      "name": "Get Competitor",
      "value": "getCompetitor",
      "action": "Get competitor report",
      "description": "Get competitor report",
      "resource": "report"
    },
    {
      "name": "List Trend Reports",
      "value": "listTrend",
      "action": "List Trend Reports",
      "description": "Get the list of Trend reports",
      "resource": "report"
    },
    {
      "name": "Get Trend",
      "value": "getTrend",
      "action": "Get trend report",
      "description": "Get trend report",
      "resource": "report"
    },
    {
      "name": "List Keyword Reports",
      "value": "listKeyword",
      "action": "List Keyword Reports",
      "description": "Get the list of Keyword reports",
      "resource": "report"
    },
    {
      "name": "Get Keyword",
      "value": "getKeyword",
      "action": "Get keyword report",
      "description": "Get keyword report",
      "resource": "report"
    },
    {
      "name": "List Location Reports",
      "value": "listLocation",
      "action": "List Location Reports",
      "description": "Get the list of Location reports",
      "resource": "report"
    },
    {
      "name": "Get Location",
      "value": "getLocation",
      "action": "Get location report",
      "description": "Get location report",
      "resource": "report"
    },
    {
      "name": "Get Reviews",
      "value": "getReviews",
      "action": "Get reviews report",
      "description": "Get reviews analysis report",
      "resource": "report"
    },
    {
      "name": "List Reviews Analysis",
      "value": "listReviews",
      "action": "List Reviews Analysis",
      "description": "Get the list of Reviews Analysis reports",
      "resource": "reviewsAnalysis"
    },
    {
      "name": "Get Reviews Report",
      "value": "getReviews",
      "action": "Get reviews analysis report",
      "description": "Get reviews analysis report",
      "resource": "reviewsAnalysis"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List scheduled scans",
      "description": "List all scheduled scans",
      "resource": "scheduledScan"
    },
    {
      "name": "List Locations",
      "value": "listLocations",
      "action": "List Falcon Guard Locations",
      "description": "List all Falcon Guard protected locations",
      "resource": "falconGuard"
    },
    {
      "name": "Get Falcon Guard Report",
      "value": "getGuardReport",
      "action": "Get specific Falcon Guard Report",
      "description": "Get specific Falcon Guard Report",
      "resource": "falconGuard"
    },
    {
      "name": "Add Location",
      "value": "addLocation",
      "action": "Add location to Falcon Guard",
      "description": "Add location to Falcon Guard",
      "resource": "falconGuard"
    },
    {
      "name": "Pause",
      "value": "pause",
      "action": "Pause Falcon Guard",
      "description": "Pause Falcon Guard for location",
      "resource": "falconGuard"
    },
    {
      "name": "Resume",
      "value": "resume",
      "action": "Resume Falcon Guard",
      "description": "Resume Falcon Guard for location",
      "resource": "falconGuard"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete from Falcon Guard",
      "description": "Delete location from Falcon Guard",
      "resource": "falconGuard"
    },
    {
      "name": "Get Info",
      "value": "getInfo",
      "action": "Get account info",
      "description": "Get account information",
      "resource": "account"
    }
  ]

npm_readme:
  # n8n-nodes-localfalcon

  This is an n8n community node that lets you use [Local Falcon](https://www.localfalcon.com) in your n8n workflows.

  Local Falcon is a local SEO rank tracking platform that helps businesses monitor their visibility in Google Maps, Apple Maps, and other local search platforms.

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

  ### Manual Installation

  1. Install the package in your n8n installation:
  ```bash
  npm install n8n-nodes-localfalcon
  ```

  2. Restart your n8n instance

  3. The Local Falcon node will now be available in the nodes panel

  ## Operations

  This node supports the following resources and operations:

  ### Scan
  - **List Reports**: List all scan reports with filtering
  - **Get Report**: Retrieve scan report by key
  - **Run**: Execute a new scan


  ### Campaign
  - **List**: List all campaigns
  - **Get Report**: Get campaign report
  - **Create**: Create a new automated campaign
  - **Run**: Manually run a campaign
  - **Pause**: Pause a campaign
  - **Resume**: Resume a paused campaign
  - **Reactivate**: Reactivate a finished campaign

  ### Location
  - **List**: List all saved locations
  - **Search**: Search for business locations
  - **Save**: Save a location to your account

  ### Report
  - **List Competitor Reports**: Get the list of competitor reports
  - **Get Competitor**: Get competitor report
  - **List Trend Reports**: Get the list of trend reports
  - **Get Trend**: Get trend analysis
  - **List Keyword Reports**: Get the list of keyword reports
  - **Get Keyword**: Get keyword analysis
  - **List Location Reports**: Get the list of location reports
  - **Get Location**: Get location analysis

  ### Scheduled Scan
  - **List**: List all scheduled scans

  ### Falcon Guard
  - **List Locations**: List all Falcon Guard protected locations
  - **Get Falcon Guard Report**: Get specific Falcon Guard Report
  - **Add Location**: Add location to monitoring
  - **Pause**: Pause monitoring
  - **Resume**: Resume monitoring
  - **Delete**: Remove from monitoring

  ### Reviews Analysis
  - **List Reviews Analysis**: Get the list of Reviews Analysis reports
  - **Get Reviews Report**: Get reviews analysis report

  ### Account
  - **Get Info**: Get account information

  ## Credentials

  This node supports two authentication methods:

  ### OAuth2 (Recommended)

  OAuth2 is the default and recommended authentication method. It uses Local Falcon's OAuth 2.0 authorization code flow with pre-configured application credentials — no manual setup required.

  1. Add the Local Falcon node to your workflow
  2. Select **OAuth2** as the authentication method (selected by default)
  3. Click **Create New Credential** under "Local Falcon OAuth2 API"
  4. Click **Sign in with Local Falcon** to authorize via the OAuth consent screen
  5. Once authorized, the credential is ready to use

  ### API Key

  You can also authenticate using a Local Falcon API key.

  1. Generate your API key from the [Local Falcon API Credentials page](https://www.localfalcon.com/api/credentials/)
  2. Add the Local Falcon node to your workflow
  3. Select **API Key** as the authentication method
  4. Enter your API key in the credential configuration

  ## Compatibility

  Tested with n8n version 1.0.0 and above.

  ## Usage

  ### Basic Scan Example

  1. Add the Local Falcon node to your workflow
  2. Choose your authentication method (OAuth2 or API Key)
  3. Select "Scan" as the resource
  4. Select "Run" as the operation
  5. Configure the scan parameters:
     - Platform (Google, Apple Maps, etc.)
     - Place ID
     - Keyword
     - Latitude/Longitude
     - Grid size (3x3 to 21x21)
     - Radius and measurement unit

  ### Campaign Example

  1. Add the Local Falcon node
  2. Select "Campaign" as the resource
  3. Select "Create" as the operation
  4. Configure campaign settings including frequency (daily, weekly, monthly)

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Local Falcon API Documentation](https://www.localfalcon.com/api/)
  * [Local Falcon Website](https://www.localfalcon.com)

  ## Supported Platforms

  - Google Maps
  - Apple Maps
  - ChatGPT
  - Gemini / Gemini Advanced
  - Google AI Overview (GIAO)
  - Grok
  - AI Mode

  ## Features

  - Grid-based rank tracking (3x3 to 21x21 grids)
  - Configurable radius (0.1 to 100 miles/km)
  - Automated campaigns with multiple frequencies
  - Field masking for optimized API responses
  - Pagination support
  - AI-powered analysis integration
  - Comprehensive reporting (competitors, trends, keywords, locations, reviews)

  ## License

  [MIT](LICENSE.md)

  ## Version History

  ### 1.1.0
  - Added OAuth2 authentication support (authorization code flow)
  - OAuth2 is now the default authentication method
  - API Key authentication remains supported as an alternative
  - Pre-configured OAuth application credentials for seamless setup

  ### 1.0.0
  - Initial release
  - Support for all major Local Falcon API endpoints
  - Full CRUD operations for scans, campaigns, locations
  - Comprehensive reporting capabilities
  - Falcon Guard integration

  ## Support

  For issues or questions:
  - [GitHub Issues](https://github.com/yourusername/n8n-nodes-localfalcon/issues)
  - [n8n Community Forum](https://community.n8n.io)
  - [Local Falcon Support](https://www.localfalcon.com/support/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Local Falcon's local SEO rank tracking services, allowing users to monitor visibility across Google Maps, Apple Maps, and other local search platforms.","capabilities":["Run SEO rank scans on Google Maps, Apple Maps, ChatGPT, Gemini, Grok, and AI Mode","Create, pause, resume, and reactivate automated SEO campaigns","Search and save business locations for tracking","Analyze competitor rankings, trends, keywords, and location data","Monitor and manage Falcon Guard protected locations","Analyze business reviews","Retrieve detailed scan reports and campaign reports","Support for grid-based tracking (3x3 to 21x21 grids)","Configurable search radius (0.1 to 100 miles/km)"],"authentication":"OAuth2 (recommended) or API Key","commonUseCases":["Automated local SEO rank monitoring for businesses","Competitor analysis and visibility tracking","Automated campaign scheduling for SEO audits","Multi-platform local search monitoring (Google, Apple Maps, AI platforms)"],"limitations":["Requires Local Falcon account or API key access"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code 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-04-16 09:43:36
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-04-16T09:43:36.246Z
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: @youdotcom-oss/n8n-nodes-youdotcom.youDotCom
package_name: @youdotcom-oss/n8n-nodes-youdotcom
display_name: You.com
description: Search the web, extract content from URLs, and run multi-step research using You.com APIs
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: tyleratydc
author_github_url: https://github.com/youdotcom-oss/n8n-nodes-youdotcom.git
npm_package_name: @youdotcom-oss/n8n-nodes-youdotcom
npm_version: 0.2.9
community_fetched_at: 2026-04-16T09:43:36.247Z
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get Contents",
          "value": "contents",
          "action": "Extract content from web pages",
          "description": "Extract content from one or more URLs"
        },
        {
          "name": "Research",
          "value": "research",
          "action": "Research a complex question",
          "description": "Get a comprehensive, cited answer to a complex question"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search the web and news",
          "description": "Search the web and news using You.com"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Contents",
      "value": "contents",
      "action": "Extract content from web pages",
      "description": "Extract content from one or more URLs"
    },
    {
      "name": "Research",
      "value": "research",
      "action": "Research a complex question",
      "description": "Get a comprehensive, cited answer to a complex question"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search the web and news",
      "description": "Search the web and news using You.com"
    }
  ]

npm_readme:
  # @youdotcom-oss/n8n-nodes-youdotcom

  Add real time web search, page content extraction, and AI powered deep research to your n8n workflows with the [You.com](https://you.com) API.

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

  ## Installation

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

  ## Operations

  ### Search

  Search the web and news with up to date results. Supports advanced query operators (`site:`, `filetype:`, `+`, `-`, `AND`, `OR`, `NOT`) and geographic/language filtering.

  Great for monitoring mentions, pulling recent news, or feeding live data into AI agent workflows.

  | Parameter | Description |
  |-----------|-------------|
  | Query | The search query (required) |
  | Count | Max results per section, 1-100 (default: 10) |
  | Country | Two-letter country code to focus results geographically |
  | Freshness | Filter by recency: day, week, month, or year |
  | Language | BCP 47 language code for results (default: EN) |
  | Livecrawl | Fetch full page content for web, news, or all results |
  | Livecrawl Format | Format for livecrawled content: markdown or HTML |
  | Offset | Pagination offset, 0-9 |
  | Safe Search | Content filter: off, moderate, or strict |

  ### Get Contents

  Extract clean, structured content from one or more web pages. Returns page text as markdown or HTML, plus metadata like JSON-LD, OpenGraph, and Twitter Cards.

  Useful for scraping product pages, pulling article text, or extracting structured data from any URL.

  | Parameter | Description |
  |-----------|-------------|
  | URLs | Comma-separated list of URLs to extract (required) |
  | Formats | Output formats: markdown, HTML, and/or metadata (JSON-LD, OpenGraph, Twitter Cards) |
  | Crawl Timeout | Timeout in seconds for page crawling, 1-60 (default: 30) |

  ### Research

  Get a comprehensive, cited answer to a complex question. The Research API searches the web, reads multiple sources, and synthesizes a detailed markdown response with inline numbered citations.

  Perfect for competitive analysis, market research, technical due diligence, or any question that needs more than a simple search result.

  | Parameter | Description |
  |-----------|-------------|
  | Input | The research question (required) |
  | Research Effort | Controls depth and speed (see below, default: standard) |

  **Research Effort levels:**

  | Level | Description |
  |-------|-------------|
  | Lite | Quick answers for straightforward questions |
  | Standard | Balanced speed and depth (default) |
  | Deep | More time researching and cross-referencing sources |
  | Exhaustive | Most thorough option for complex research tasks |

  ## Credentials

  1. Go to [you.com/platform/api-keys](https://you.com/platform/api-keys) to get an API key
  2. In n8n, go to Credentials and create a new "You.com API" credential
  3. Paste your API key and save

  ## Usage

  1. Add the "You.com" node to your workflow
  2. Select an operation (Search, Get Contents, or Research)
  3. Configure the parameters for your chosen operation
  4. Run the workflow

  This node also works as a tool for [AI agents in n8n](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/). Connect it to an agent node and let the agent decide when to search the web, extract page content, or run deep research.

  ## Resources

  - [You.com API docs](https://docs.you.com/)
  - [Search API reference](https://docs.you.com/api-reference/search)
  - [Contents API reference](https://docs.you.com/api-reference/contents)
  - [Research API reference](https://docs.you.com/api-reference/research)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)


node_type: n8n-nodes-air.air
package_name: n8n-nodes-air
display_name: Air
description: Access, update, and manage assets, boards, custom fields, and tags in your Air workspace
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: bradybrown202
author_github_url: https://github.com/brady-brown20330/
npm_package_name: n8n-nodes-air
npm_version: 1.4.0
community_fetched_at: 2026-04-16T09:43:36.248Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "assets",
      "options": [
        {
          "name": "Assets",
          "value": "assets"
        },
        {
          "name": "Boards",
          "value": "boards"
        },
        {
          "name": "Custom Fields",
          "value": "customFields"
        },
        {
          "name": "Tags",
          "value": "tags"
        },
        {
          "name": "Uploads",
          "value": "uploads"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Apply Custom Field",
          "value": "applyCustomField",
          "action": "Apply Custom Field to Asset",
          "routing": {
            "request": {
              "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/customfields/${String($parameter[\"customFieldId\"] || \"\").trim()}`}}",
              "method": "PUT"
            }
          },
          "description": "Apply a custom field to an asset"
        },
        {
          "name": "Apply Tag",
          "value": "applyTag",
          "action": "Apply Tag to Asset",
          "routing": {
            "request": {
              "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/versions/${String($parameter[\"versionId\"] || \"\").trim()}/tags`}}",
              "method": "POST"
            }
          },
          "description": "Apply a tag to an asset"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get Air Assets",
          "routing": {
            "request": {
              "url": "/assets",
              "method": "GET"
            }
          },
          "description": "Get Air assets"
        },
        {
          "name": "Get by ID",
          "value": "getById",
          "action": "Get Asset by ID",
          "routing": {
            "request": {
              "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}`}}",
              "method": "GET"
            }
          },
          "description": "Get a single asset by ID"
        },
        {
          "name": "List Boards",
          "value": "listBoards",
          "action": "List Parent Boards",
          "routing": {
            "request": {
              "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/boards`}}",
              "method": "GET"
            }
          },
          "description": "Get the list of parent boards of an asset"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update Air Asset",
          "routing": {
            "request": {
              "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/versions/${String($parameter[\"versionIdUpdate\"] || \"\").trim()}`}}",
              "method": "PATCH"
            }
          },
          "description": "Update an asset’s details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assets"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "initiateUpload",
      "options": [
        {
          "name": "Complete Upload",
          "value": "completeUpload",
          "action": "Complete Upload",
          "routing": {
            "request": {
              "url": "/uploads/completeMultipart",
              "method": "POST"
            }
          },
          "description": "Finalize multipart upload with part ETags"
        },
        {
          "name": "Initiate Upload",
          "value": "initiateUpload",
          "action": "Initiate Upload",
          "routing": {
            "request": {
              "url": "/uploads",
              "method": "POST"
            }
          },
          "description": "Initiate multipart upload and get signed part URLs"
        },
        {
          "name": "Upload Part",
          "value": "uploadPart",
          "action": "Get Signed URL for Upload Part",
          "routing": {
            "request": {
              "url": "/uploads/uploadPart",
              "method": "POST"
            }
          },
          "description": "Request a signed URL to upload a specific part"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "uploads"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Add Assets",
          "value": "addAssets",
          "action": "Add Assets to Board",
          "routing": {
            "request": {
              "url": "={{`/boards/${String($parameter[\"boardId\"] || \"\").trim()}/assets`}}",
              "method": "POST"
            }
          },
          "description": "Associate one or more assets with a board"
        },
        {
          "name": "Apply Custom Field",
          "value": "applyCustomField",
          "action": "Apply Custom Field to Board",
          "routing": {
            "request": {
              "url": "={{`/boards/${String($parameter[\"boardId\"] || \"\").trim()}/customfields/${String($parameter[\"customFieldId\"] || \"\").trim()}`}}",
              "method": "PUT"
            }
          },
          "description": "Set or unset custom field value(s) on a board"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create Air Board",
          "routing": {
            "request": {
              "url": "/boards",
              "method": "POST"
            }
          },
          "description": "Create Air Board"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get Air Boards",
          "routing": {
            "request": {
              "url": "/boards",
              "method": "GET"
            }
          },
          "description": "Get Air Boards"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update Air Board",
          "routing": {
            "request": {
              "url": "={{`/boards/${String($parameter[\"boardId\"] || \"\").trim()}`}}",
              "method": "PATCH"
            }
          },
          "description": "Update a board’s title, description, or parent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "boards"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Add Value",
          "value": "addValue",
          "action": "Add Custom Field Value",
          "routing": {
            "request": {
              "url": "={{`/customFields/${String($parameter[\"customFieldId\"] || \"\").trim()}/values`}}",
              "method": "POST"
            }
          },
          "description": "Add a new selectable value to a custom field"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create Air Custom Field",
          "routing": {
            "request": {
              "url": "/customFields",
              "method": "POST"
            }
          },
          "description": "Create Air Custom Field"
        },
        {
          "name": "Delete Value",
          "value": "deleteValue",
          "action": "Delete Custom Field Value",
          "routing": {
            "request": {
              "url": "={{`/customFields/${String($parameter[\"customFieldId\"] || \"\").trim()}/values/${String($parameter[\"valueId\"] || \"\").trim()}`}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a selectable value from a custom field"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get Air Custom Fields",
          "routing": {
            "request": {
              "url": "/customFields",
              "method": "GET"
            }
          },
          "description": "Get Air Custom Fields"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update Air Custom Field",
          "routing": {
            "request": {
              "url": "={{`/customFields/${String($parameter[\"customFieldId\"] || \"\").trim()}`}}",
              "method": "PATCH"
            }
          },
          "description": "Update an existing Air custom field"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customFields"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get Air Tags",
          "routing": {
            "request": {
              "url": "/tags",
              "method": "GET"
            }
          },
          "description": "Get Air Tags"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create Air Tag",
          "routing": {
            "request": {
              "url": "/tags",
              "method": "POST"
            }
          },
          "description": "Create Air Tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tags"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Apply Custom Field",
      "value": "applyCustomField",
      "action": "Apply Custom Field to Asset",
      "routing": {
        "request": {
          "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/customfields/${String($parameter[\"customFieldId\"] || \"\").trim()}`}}",
          "method": "PUT"
        }
      },
      "description": "Apply a custom field to an asset",
      "resource": "assets"
    },
    {
      "name": "Apply Tag",
      "value": "applyTag",
      "action": "Apply Tag to Asset",
      "routing": {
        "request": {
          "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/versions/${String($parameter[\"versionId\"] || \"\").trim()}/tags`}}",
          "method": "POST"
        }
      },
      "description": "Apply a tag to an asset",
      "resource": "assets"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get Air Assets",
      "routing": {
        "request": {
          "url": "/assets",
          "method": "GET"
        }
      },
      "description": "Get Air assets",
      "resource": "assets"
    },
    {
      "name": "Get by ID",
      "value": "getById",
      "action": "Get Asset by ID",
      "routing": {
        "request": {
          "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}`}}",
          "method": "GET"
        }
      },
      "description": "Get a single asset by ID",
      "resource": "assets"
    },
    {
      "name": "List Boards",
      "value": "listBoards",
      "action": "List Parent Boards",
      "routing": {
        "request": {
          "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/boards`}}",
          "method": "GET"
        }
      },
      "description": "Get the list of parent boards of an asset",
      "resource": "assets"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update Air Asset",
      "routing": {
        "request": {
          "url": "={{`/assets/${String($parameter[\"assetId\"] || \"\").trim()}/versions/${String($parameter[\"versionIdUpdate\"] || \"\").trim()}`}}",
          "method": "PATCH"
        }
      },
      "description": "Update an asset’s details",
      "resource": "assets"
    },
    {
      "name": "Complete Upload",
      "value": "completeUpload",
      "action": "Complete Upload",
      "routing": {
        "request": {
          "url": "/uploads/completeMultipart",
          "method": "POST"
        }
      },
      "description": "Finalize multipart upload with part ETags",
      "resource": "uploads"
    },
    {
      "name": "Initiate Upload",
      "value": "initiateUpload",
      "action": "Initiate Upload",
      "routing": {
        "request": {
          "url": "/uploads",
          "method": "POST"
        }
      },
      "description": "Initiate multipart upload and get signed part URLs",
      "resource": "uploads"
    },
    {
      "name": "Upload Part",
      "value": "uploadPart",
      "action": "Get Signed URL for Upload Part",
      "routing": {
        "request": {
          "url": "/uploads/uploadPart",
          "method": "POST"
        }
      },
      "description": "Request a signed URL to upload a specific part",
      "resource": "uploads"
    },
    {
      "name": "Add Assets",
      "value": "addAssets",
      "action": "Add Assets to Board",
      "routing": {
        "request": {
          "url": "={{`/boards/${String($parameter[\"boardId\"] || \"\").trim()}/assets`}}",
          "method": "POST"
        }
      },
      "description": "Associate one or more assets with a board",
      "resource": "boards"
    },
    {
      "name": "Apply Custom Field",
      "value": "applyCustomField",
      "action": "Apply Custom Field to Board",
      "routing": {
        "request": {
          "url": "={{`/boards/${String($parameter[\"boardId\"] || \"\").trim()}/customfields/${String($parameter[\"customFieldId\"] || \"\").trim()}`}}",
          "method": "PUT"
        }
      },
      "description": "Set or unset custom field value(s) on a board",
      "resource": "boards"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create Air Board",
      "routing": {
        "request": {
          "url": "/boards",
          "method": "POST"
        }
      },
      "description": "Create Air Board",
      "resource": "boards"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get Air Boards",
      "routing": {
        "request": {
          "url": "/boards",
          "method": "GET"
        }
      },
      "description": "Get Air Boards",
      "resource": "boards"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update Air Board",
      "routing": {
        "request": {
          "url": "={{`/boards/${String($parameter[\"boardId\"] || \"\").trim()}`}}",
          "method": "PATCH"
        }
      },
      "description": "Update a board’s title, description, or parent",
      "resource": "boards"
    },
    {
      "name": "Add Value",
      "value": "addValue",
      "action": "Add Custom Field Value",
      "routing": {
        "request": {
          "url": "={{`/customFields/${String($parameter[\"customFieldId\"] || \"\").trim()}/values`}}",
          "method": "POST"
        }
      },
      "description": "Add a new selectable value to a custom field",
      "resource": "customFields"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create Air Custom Field",
      "routing": {
        "request": {
          "url": "/customFields",
          "method": "POST"
        }
      },
      "description": "Create Air Custom Field",
      "resource": "customFields"
    },
    {
      "name": "Delete Value",
      "value": "deleteValue",
      "action": "Delete Custom Field Value",
      "routing": {
        "request": {
          "url": "={{`/customFields/${String($parameter[\"customFieldId\"] || \"\").trim()}/values/${String($parameter[\"valueId\"] || \"\").trim()}`}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a selectable value from a custom field",
      "resource": "customFields"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get Air Custom Fields",
      "routing": {
        "request": {
          "url": "/customFields",
          "method": "GET"
        }
      },
      "description": "Get Air Custom Fields",
      "resource": "customFields"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update Air Custom Field",
      "routing": {
        "request": {
          "url": "={{`/customFields/${String($parameter[\"customFieldId\"] || \"\").trim()}`}}",
          "method": "PATCH"
        }
      },
      "description": "Update an existing Air custom field",
      "resource": "customFields"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get Air Tags",
      "routing": {
        "request": {
          "url": "/tags",
          "method": "GET"
        }
      },
      "description": "Get Air Tags",
      "resource": "tags"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create Air Tag",
      "routing": {
        "request": {
          "url": "/tags",
          "method": "POST"
        }
      },
      "description": "Create Air Tag",
      "resource": "tags"
    }
  ]

npm_readme:
  # n8n-nodes-air

  A community node for [n8n](https://n8n.io) that lets you programmatically interact with your [Air](https://air.inc) workspaces — upload and manage assets, organize boards, and wire Air into the rest of your stack.

  Air is a Creative Ops system for marketing and creative teams, designed to store, search, approve, and share visual content at scale.:contentReference[oaicite:0]{index=0}

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

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

  ## Installation

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



  ## Operations


  This node gives n8n workflows access to a subset of the [Air API](https://developer.air.inc/). Typical automations include:​:contentReference

  - **Assets**
    - Upload new assets to Air from any n8n source (S3, GDrive, FTP, webhooks, etc.)
    - List / search assets by metadata or keywords
    - Retrieve details for a specific asset
    - Update asset metadata (title, description, tags, custom fields)
    - Optionally delete or archive assets

  - **Boards**
    - List boards in a workspace
    - Get board details
    - Add / remove assets on boards
    - Drive board organization from other systems (e.g. CRM, project tools)

  - **Custom Fields**
    - List Custom Fields
    - Create Custom Field
    - Update Custom Field (name/description)
    - Add New Values
    - Delete Values

  - **Tags**
    - List Tags
    - Create Tags

  - **Uploads**
    - Create Upload URL
    - Complete Upload Part (files > 5 GB)
    - Complete Uplaod (files > 5 GB)

  > ⚠️ The exact list of operations may evolve. Always check the node’s **Resource** and **Operation** dropdowns in the n8n UI for the current surface area.

  ## Credentials

  Air's API uses:

  \- x-api-key

  \- x-air-workspace-id

  ## Compatibility

  _No known compatibility issues._

  ## Usage
      
  ### Basic Upload Workflow

  Steps to upload assets using binary input.

  ### Metadata Enrichment

  Fetch assets, enrich metadata, update Air.

  ### Board Syncing

  Sync boards with data from project tools.

  ## Compatibility

  \- Works with modern n8n 1.x builds.

  \- Best for self-hosted installations.

  ## Resources

  * [Air Application](https://app.air.inc)
  * [Air Developer Documentation](https://developer.air.inc)
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)


  ## Version history

  _See CHANGELOG.md for version notes._

ai_documentation_summary:
  {"purpose":"This n8n community node enables automated management of Air workspaces, allowing users to upload, organize, and update assets, boards, custom fields, and tags.","capabilities":["Upload assets from various sources (S3, GDrive, FTP, webhooks)","List and search assets by metadata or keywords","Retrieve and update asset metadata (title, description, tags, custom fields)","Delete or archive assets","List and manage boards in a workspace","Add or remove assets from boards","Manage custom fields (list, create, update, add/delete values)","Manage tags (list, create)","Create upload URLs for large files","Complete upload parts for files over 5 GB"],"authentication":"API key required (x-api-key and x-air-workspace-id headers)","commonUseCases":["Automating asset uploads from multiple storage sources","Syncing project boards with external tools like CRM or project management software","Enriching asset metadata before storing in Air","Managing large file uploads (>5GB) through multipart upload process"],"limitations":["Limited to a subset of the Air API (exact operations may evolve)","Best suited for self-hosted n8n installations","Requires manual verification of available operations in the n8n UI"],"relatedNodes":["n8n-nodes-google-drive","n8n-nodes-s3","n8n-nodes-ftp","n8n-nodes-webhook"]}


