# nodes

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

updated_at: 2026-03-25 21:19:40
author_name: outscraper-api
author_github_url: https://github.com/outscraper/
npm_package_name: n8n-nodes-outscraper
npm_version: 0.2.1
community_fetched_at: 2026-03-25T21:19:40.964Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "googleMaps",
      "options": [
        {
          "name": "AI Scraper",
          "value": "aiScraper"
        },
        {
          "name": "Airbnb",
          "value": "airbnb"
        },
        {
          "name": "AppStore",
          "value": "appStore"
        },
        {
          "name": "Booking",
          "value": "booking"
        },
        {
          "name": "Company Insight",
          "value": "companyInsights"
        },
        {
          "name": "Company Website Finder",
          "value": "companyWebsiteFinder"
        },
        {
          "name": "Emails & Contact",
          "value": "emailsAndContacts"
        },
        {
          "name": "Expedia",
          "value": "expedia"
        },
        {
          "name": "G2 Review",
          "value": "g2Reviews"
        },
        {
          "name": "Geocoding",
          "value": "geocoding"
        },
        {
          "name": "GetApp Review",
          "value": "getAppReviews"
        },
        {
          "name": "Google Map",
          "value": "googleMaps"
        },
        {
          "name": "Google Search",
          "value": "googleSearch"
        },
        {
          "name": "Indeed",
          "value": "indeed"
        },
        {
          "name": "Phone Identity Finder",
          "value": "phoneIdentityFinder"
        },
        {
          "name": "Phones Owner",
          "value": "phonesOwners"
        },
        {
          "name": "Product Hunt",
          "value": "productHunt"
        },
        {
          "name": "Similarweb",
          "value": "similarweb"
        },
        {
          "name": "Target Review",
          "value": "targetReviews"
        },
        {
          "name": "TikTok Profile",
          "value": "tiktokProfiles"
        },
        {
          "name": "TripAdvisor",
          "value": "tripadvisor"
        },
        {
          "name": "Trustpilot",
          "value": "trustpilot"
        },
        {
          "name": "Twitter Profile",
          "value": "twitterProfiles"
        },
        {
          "name": "Universal AI Scraper",
          "value": "universalScraper"
        },
        {
          "name": "Walmart Review",
          "value": "walmartReviews"
        },
        {
          "name": "WebPage Screenshoter",
          "value": "webPageScreenshoter"
        },
        {
          "name": "Whitepages Addresses Scraper",
          "value": "whitepagesAddresses"
        },
        {
          "name": "Yellow Pages Search",
          "value": "yellowPagesSearch"
        },
        {
          "name": "Yelp",
          "value": "yelp"
        },
        {
          "name": "YouTube",
          "value": "youtube"
        },
        {
          "name": "Zillow",
          "value": "zillow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search for businesses on google maps",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/maps/search-v3",
              "method": "GET"
            }
          },
          "description": "Search for businesses on Google Maps"
        },
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews for a place on google maps",
          "routing": {
            "request": {
              "url": "/maps/reviews-v3",
              "method": "GET"
            }
          },
          "description": "Get reviews for a place on Google Maps"
        },
        {
          "name": "Get Photos",
          "value": "photos",
          "action": "Get photos for a place on google maps",
          "routing": {
            "request": {
              "url": "/maps/photos-v3",
              "method": "GET"
            }
          },
          "description": "Get photos for a place on Google Maps"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleMaps"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on google",
          "routing": {
            "request": {
              "url": "/google-search-v3",
              "method": "GET"
            }
          },
          "description": "Search on Google"
        },
        {
          "name": "Search Careers",
          "value": "searchCareers",
          "action": "Search for career listings on google",
          "routing": {
            "request": {
              "url": "/google-search-careers",
              "method": "GET"
            }
          },
          "description": "Search for career listings on Google"
        },
        {
          "name": "Search Events",
          "value": "searchEvents",
          "action": "Search for events on google",
          "routing": {
            "request": {
              "url": "/google-search-events",
              "method": "GET"
            }
          },
          "description": "Search for events on Google"
        },
        {
          "name": "Search Images",
          "value": "searchImages",
          "action": "Search for images on google",
          "routing": {
            "request": {
              "url": "/google-search-images-v2",
              "method": "GET"
            }
          },
          "description": "Search for images on Google"
        },
        {
          "name": "Search News",
          "value": "searchNews",
          "action": "Search for news on google",
          "routing": {
            "request": {
              "url": "/google-search-news",
              "method": "GET"
            }
          },
          "description": "Search for news on Google"
        },
        {
          "name": "Search Shopping",
          "value": "searchShopping",
          "action": "Search for shopping products on google",
          "routing": {
            "request": {
              "url": "/google-search-shopping",
              "method": "GET"
            }
          },
          "description": "Search for shopping products on Google"
        },
        {
          "name": "Search Videos",
          "value": "searchVideos",
          "action": "Search for videos on google",
          "routing": {
            "request": {
              "url": "/google-search-videos",
              "method": "GET"
            }
          },
          "description": "Search for videos on Google"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from G2",
          "routing": {
            "request": {
              "url": "/g2/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from G2"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "g2Reviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "business",
      "options": [
        {
          "name": "Get Business Info",
          "value": "business",
          "action": "Get business information from trustpilot",
          "routing": {
            "request": {
              "url": "/trustpilot",
              "method": "GET"
            }
          },
          "description": "Get business information from Trustpilot"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search businesses on trustpilot",
          "routing": {
            "request": {
              "url": "/trustpilot/search",
              "method": "GET"
            }
          },
          "description": "Search businesses on Trustpilot"
        },
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from trustpilot",
          "routing": {
            "request": {
              "url": "/trustpilot/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Trustpilot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "trustpilot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from trip advisor",
          "routing": {
            "request": {
              "url": "/tripadvisor-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from TripAdvisor"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search on trip advisor",
          "routing": {
            "request": {
              "url": "/tripadvisor-search",
              "method": "GET"
            }
          },
          "description": "Search on TripAdvisor"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tripadvisor"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on expedia",
          "routing": {
            "request": {
              "url": "/expedia/search",
              "method": "GET"
            }
          },
          "description": "Search on Expedia"
        },
        {
          "name": "Get Reviews",
          "value": "reviews",
          "action": "Get reviews from expedia",
          "routing": {
            "request": {
              "url": "/expedia/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Expedia"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "expedia"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search for videos on you tube",
          "description": "Search for videos on YouTube"
        },
        {
          "name": "Channel",
          "value": "channel",
          "action": "Get you tube channel information",
          "description": "Get YouTube channel information"
        },
        {
          "name": "Comments",
          "value": "comments",
          "action": "Get comments from you tube videos",
          "description": "Get comments from YouTube videos"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtube"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on yelp",
          "routing": {
            "request": {
              "url": "/yelp-search",
              "method": "GET"
            }
          },
          "description": "Search on Yelp"
        },
        {
          "name": "Business",
          "value": "business",
          "action": "Get business information from yelp",
          "routing": {
            "request": {
              "url": "/yelp-business",
              "method": "GET"
            }
          },
          "description": "Get business information from Yelp"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from yelp businesses",
          "routing": {
            "request": {
              "url": "/yelp-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Yelp businesses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "yelp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from product hunt",
          "routing": {
            "request": {
              "url": "/producthunt-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Product Hunt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "productHunt"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "jobSearch",
      "options": [
        {
          "name": "Job Search",
          "value": "jobSearch",
          "action": "Get jobs from indeed",
          "routing": {
            "request": {
              "url": "/indeed-jobs",
              "method": "GET"
            }
          },
          "description": "Get jobs from Indeed"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from indeed companies",
          "routing": {
            "request": {
              "url": "/indeed-reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Indeed companies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "indeed"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on booking",
          "routing": {
            "request": {
              "url": "/booking/search",
              "method": "GET"
            }
          },
          "description": "Search results from Booking.com"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from booking",
          "routing": {
            "request": {
              "url": "/booking/reviews",
              "method": "GET"
            }
          },
          "description": "Get reviews from Booking.com hotels"
        },
        {
          "name": "Prices",
          "value": "prices",
          "action": "Get prices from booking",
          "routing": {
            "request": {
              "url": "/booking/prices",
              "method": "GET"
            }
          },
          "description": "Get prices from Booking.com hotels"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "booking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on zillow",
          "routing": {
            "request": {
              "url": "/zillow/search",
              "method": "GET"
            }
          },
          "description": "Returns listings from Zillow"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "zillow"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from appstore",
          "routing": {
            "request": {
              "url": "/appstore/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from AppStore apps"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "appStore"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "geocode",
      "options": [
        {
          "name": "Geocode",
          "value": "geocode",
          "action": "Geocode address",
          "routing": {
            "request": {
              "url": "/geocoding",
              "method": "GET"
            }
          },
          "description": "Translates human-readable addresses into locations on the map"
        },
        {
          "name": "Reverse Geocode",
          "value": "reverseGeocode",
          "action": "Reverse geocode coordinates",
          "routing": {
            "request": {
              "url": "/reverse-geocoding",
              "method": "GET"
            }
          },
          "description": "Translate locations on the map into human-readable addresses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "geocoding"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInsights",
      "options": [
        {
          "name": "Get Insights",
          "value": "getInsights",
          "action": "Get company insights",
          "routing": {
            "request": {
              "url": "/company-insights",
              "method": "GET"
            }
          },
          "description": "Finds company details such as revenue, size, founding year, public status, etc"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companyInsights"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape web page with ai",
          "routing": {
            "request": {
              "url": "/universal-scraper-v3",
              "method": "GET"
            }
          },
          "description": "Extracts structured data from a webpage using AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiScraper"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape web page",
          "routing": {
            "request": {
              "url": "/universal-scraper",
              "method": "GET"
            }
          },
          "description": "Extracts the data you need from any web page by using AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "universalScraper"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "screenshot",
      "options": [
        {
          "name": "Screenshot",
          "value": "screenshot",
          "action": "Screenshot web page",
          "routing": {
            "request": {
              "url": "/screenshoter",
              "method": "GET"
            }
          },
          "description": "Captures high-quality screenshots of any webpage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webPageScreenshoter"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search on airbnb",
          "routing": {
            "request": {
              "url": "/airbnb/search",
              "method": "GET"
            }
          },
          "description": "Returns search results from Airbnb"
        },
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from airbnb",
          "routing": {
            "request": {
              "url": "/airbnb/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from Airbnb accommodations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "airbnb"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from walmart",
          "routing": {
            "request": {
              "url": "/walmart/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from a list of Walmart products"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "walmartReviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from target",
          "routing": {
            "request": {
              "url": "/target/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from a list of Target products"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "targetReviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "profiles",
      "options": [
        {
          "name": "Profiles",
          "value": "profiles",
          "action": "Get twitter profiles",
          "routing": {
            "request": {
              "url": "/twitter/profiles",
              "method": "GET"
            }
          },
          "description": "Returns information from the list of Twitter profiles"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "twitterProfiles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "profiles",
      "options": [
        {
          "name": "Profiles",
          "value": "profiles",
          "action": "Get tik tok profiles",
          "routing": {
            "request": {
              "url": "/tiktok/profiles",
              "method": "GET"
            }
          },
          "description": "Returns information from the list of TikTok profiles"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tiktokProfiles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "reviews",
      "options": [
        {
          "name": "Reviews",
          "value": "reviews",
          "action": "Get reviews from get app",
          "routing": {
            "request": {
              "url": "/getapp/reviews",
              "method": "GET"
            }
          },
          "description": "Returns reviews from GetApp apps"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "getAppReviews"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search yellow pages",
          "routing": {
            "request": {
              "url": "/yellowpages-search",
              "method": "GET"
            }
          },
          "description": "Returns search results from Yellow Pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "yellowPagesSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findIdentity",
      "options": [
        {
          "name": "Find Identity",
          "value": "findIdentity",
          "action": "Find phone identity",
          "routing": {
            "request": {
              "url": "/whitepages-phones",
              "method": "GET"
            }
          },
          "description": "Returns insights about phone number owners (name, address, etc.)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phoneIdentityFinder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeAddresses",
      "options": [
        {
          "name": "Scrape Addresses",
          "value": "scrapeAddresses",
          "action": "Scrape whitepages addresses",
          "routing": {
            "request": {
              "url": "/whitepages-addresses",
              "method": "GET"
            }
          },
          "description": "Returns insights about addresses and their residents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "whitepagesAddresses"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOwners",
      "options": [
        {
          "name": "Get Owners",
          "value": "getOwners",
          "action": "Get phone owners",
          "routing": {
            "request": {
              "url": "/phones-owners",
              "method": "GET"
            }
          },
          "description": "Returns insights about phone number owners (name, address, etc.)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phonesOwners"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getData",
      "options": [
        {
          "name": "Get Data",
          "value": "getData",
          "action": "Get similarweb data",
          "routing": {
            "request": {
              "url": "/similarweb",
              "method": "GET"
            }
          },
          "description": "Returns data from Similarweb businesses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "similarweb"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findWebsite",
      "options": [
        {
          "name": "Find Website",
          "value": "findWebsite",
          "action": "Find company website",
          "routing": {
            "request": {
              "url": "/company-website-finder",
              "method": "GET"
            }
          },
          "description": "Returns data from Company Website Finder businesses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companyWebsiteFinder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findEmailsAndContacts",
      "options": [
        {
          "name": "Find Emails & Contacts",
          "value": "findEmailsAndContacts",
          "action": "Find emails and contacts",
          "routing": {
            "request": {
              "url": "/emails-and-contacts",
              "method": "GET"
            }
          },
          "description": "Finds email addresses, social links, and phones from domains"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "emailsAndContacts"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"search","name":"Search","description":"Search for businesses on Google Maps","resource":"googleMaps"},{"operation":"reviews","name":"Get Reviews","description":"Get reviews for a place on Google Maps","resource":"googleMaps"},{"operation":"photos","name":"Get Photos","description":"Get photos for a place on Google Maps","resource":"googleMaps"},{"operation":"search","name":"Search","description":"Search on Google","resource":"googleSearch"},{"operation":"searchCareers","name":"Search Careers","description":"Search for career listings on Google","resource":"googleSearch"},{"operation":"searchEvents","name":"Search Events","description":"Search for events on Google","resource":"googleSearch"},{"operation":"searchImages","name":"Search Images","description":"Search for images on Google","resource":"googleSearch"},{"operation":"searchNews","name":"Search News","description":"Search for news on Google","resource":"googleSearch"},{"operation":"searchShopping","name":"Search Shopping","description":"Search for shopping products on Google","resource":"googleSearch"},{"operation":"searchVideos","name":"Search Videos","description":"Search for videos on Google","resource":"googleSearch"},{"operation":"reviews","name":"Get Reviews","description":"Get reviews from G2","resource":"g2Reviews"},{"operation":"business","name":"Get Business Info","description":"Get business information from Trustpilot","resource":"trustpilot"},{"operation":"search","name":"Search","description":"Search businesses on Trustpilot","resource":"trustpilot"},{"operation":"reviews","name":"Get Reviews","description":"Get reviews from Trustpilot","resource":"trustpilot"},{"operation":"reviews","name":"Get Reviews","description":"Get reviews from TripAdvisor","resource":"tripadvisor"},{"operation":"search","name":"Search","description":"Search on TripAdvisor","resource":"tripadvisor"},{"operation":"search","name":"Search","description":"Search on Expedia","resource":"expedia"},{"operation":"reviews","name":"Get Reviews","description":"Get reviews from Expedia","resource":"expedia"},{"operation":"search","name":"Search","description":"Search for videos on YouTube","resource":"youtube"},{"operation":"channel","name":"Channel","description":"Get YouTube channel information","resource":"youtube"},{"operation":"comments","name":"Comments","description":"Get comments from YouTube videos","resource":"youtube"},{"operation":"search","name":"Search","description":"Search on Yelp","resource":"yelp"},{"operation":"business","name":"Business","description":"Get business information from Yelp","resource":"yelp"},{"operation":"reviews","name":"Reviews","description":"Get reviews from Yelp businesses","resource":"yelp"},{"operation":"reviews","name":"Reviews","description":"Get reviews from Product Hunt","resource":"productHunt"},{"operation":"jobSearch","name":"Job Search","description":"Get jobs from Indeed","resource":"indeed"},{"operation":"reviews","name":"Reviews","description":"Get reviews from Indeed companies","resource":"indeed"},{"operation":"search","name":"Search","description":"Search results from Booking.com","resource":"booking"},{"operation":"reviews","name":"Reviews","description":"Get reviews from Booking.com hotels","resource":"booking"},{"operation":"prices","name":"Prices","description":"Get prices from Booking.com hotels","resource":"booking"},{"operation":"search","name":"Search","description":"Returns listings from Zillow","resource":"zillow"},{"operation":"reviews","name":"Reviews","description":"Returns reviews from AppStore apps","resource":"appStore"},{"operation":"geocode","name":"Geocode","description":"Translates human-readable addresses into locations on the map","resource":"geocoding"},{"operation":"reverseGeocode","name":"Reverse Geocode","description":"Translate locations on the map into human-readable addresses","resource":"geocoding"},{"operation":"getInsights","name":"Get Insights","description":"Finds company details such as revenue, size, founding year, public status, etc","resource":"companyInsights"},{"operation":"scrape","name":"Scrape","description":"Extracts structured data from a webpage using AI","resource":"aiScraper"},{"operation":"scrape","name":"Scrape","description":"Extracts the data you need from any web page by using AI","resource":"universalScraper"},{"operation":"screenshot","name":"Screenshot","description":"Captures high-quality screenshots of any webpage","resource":"webPageScreenshoter"},{"operation":"search","name":"Search","description":"Returns search results from Airbnb","resource":"airbnb"},{"operation":"reviews","name":"Reviews","description":"Returns reviews from Airbnb accommodations","resource":"airbnb"},{"operation":"reviews","name":"Reviews","description":"Returns reviews from a list of Walmart products","resource":"walmartReviews"},{"operation":"reviews","name":"Reviews","description":"Returns reviews from a list of Target products","resource":"targetReviews"},{"operation":"profiles","name":"Profiles","description":"Returns information from the list of Twitter profiles","resource":"twitterProfiles"},{"operation":"profiles","name":"Profiles","description":"Returns information from the list of TikTok profiles","resource":"tiktokProfiles"},{"operation":"reviews","name":"Reviews","description":"Returns reviews from GetApp apps","resource":"getAppReviews"},{"operation":"search","name":"Search","description":"Returns search results from Yellow Pages","resource":"yellowPagesSearch"},{"operation":"findIdentity","name":"Find Identity","description":"Returns insights about phone number owners (name, address, etc.)","resource":"phoneIdentityFinder"},{"operation":"scrapeAddresses","name":"Scrape Addresses","description":"Returns insights about addresses and their residents","resource":"whitepagesAddresses"},{"operation":"getOwners","name":"Get Owners","description":"Returns insights about phone number owners (name, address, etc.)","resource":"phonesOwners"},{"operation":"getData","name":"Get Data","description":"Returns data from Similarweb businesses","resource":"similarweb"},{"operation":"findWebsite","name":"Find Website","description":"Returns data from Company Website Finder businesses","resource":"companyWebsiteFinder"},{"operation":"findEmailsAndContacts","name":"Find Emails & Contacts","description":"Finds email addresses, social links, and phones from domains","resource":"emailsAndContacts"}]

npm_readme:
  # n8n-nodes-outscraper

  ![Outscraper Logo](https://outscraper.com/wp-content/uploads/2023/11/cropped-logo-long-e1628850886215.webp)

  This is an n8n community node for integrating with the [Outscraper API](https://outscraper.com). It allows you to automate data extraction from various online platforms including Google Maps, Google Search, YouTube, Trustpilot, TripAdvisor, Expedia, and G2 Reviews.

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

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

  ## Installation

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

  ### Community Nodes (Recommended)

  For users on n8n v0.187+:

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-outscraper` in the input field
  4. Agree to the risks of using community nodes
  5. Click **Install**

  ### Manual Installation

  To install the node manually:

  1. Open your n8n installation folder
  2. Go to the `node_modules` folder
  3. Create a new folder called `n8n-nodes-outscraper`
  4. Download the [latest release](https://github.com/outscraper/n8n-nodes-outscraper/releases) and extract it into the folder
  5. Restart n8n

  ### npm Installation

  To install via npm:

  ```bash
  npm install n8n-nodes-outscraper
  ```

  ## Operations

  The Outscraper node supports the following platforms and operations:

  ### Google Maps
  - **Search**: Search for businesses on Google Maps
  - **Reviews**: Get reviews for businesses on Google Maps
  - **Photos**: Get photos for businesses on Google Maps

  ### Google Search
  - **Search**: Perform Google search queries

  ## Credentials

  To use this node, you need an Outscraper API key.

  1. Create an account on [Outscraper](https://app.outscraper.com/signup)
  2. Navigate to the [account page](https://app.outscraper.com/account/api) to get your API key
  3. In n8n, create new credentials of type **Outscraper API**
  4. Enter your API key and the API URL (default: https://api.outscraper.cloud)

  ## Usage

  1. Add the Outscraper node to your workflow
  2. Select the resource (e.g., Google Maps) you want to work with
  3. Choose the operation (e.g., Search, Reviews)
  4. Configure the required parameters
  5. Connect the node to the rest of your workflow

  ### Example: Search for Businesses on Google Maps

  1. Add the Outscraper node
  2. Select **Google Maps** as the resource
  3. Select **Search** as the operation
  4. Enter your search query (e.g., "coffee shops in New York")
  5. Set additional parameters like limit, async mode, etc.
  6. Run the workflow to get the search results

  ## Resources

  * [Outscraper Website](https://outscraper.com)
  * [Outscraper API Documentation](https://app.outscraper.com/api-docs)
  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Version History

  ### 0.2.1 (2026-02-19)
  * New service AI Scraper

  ### 0.2.0 (2026-01-22)
  * Fixed screenshot service

  ### 0.1.7 (2025-07-17)
  * Added Emails & Contacts scraper

  ### 0.1.6 (2025-07-17)
  * Fixed support for operations

  ### 0.1.5 (2025-06-27)
  * Added support for geocoding operations (Geocode and Reverse Geocode)
  * Enhanced operations with prices functionality
  * Improved field configurations and routing options

  ### 0.1.4 (2025-06-26)

  * Enhanced field configurations with additional parameters

  ### 0.1.3 (2025-06-26)

  * Improved routing and display options

  ### 0.1.2 (2025-06-26)

  * Refactored node structure for better maintainability
  * Updated field configurations with improved descriptions
  * Enhanced error handling and validation

  ### 0.1.1 (2025-06-25)

  * Fixed minor bugs and improved stability
  * Updated dependencies and documentation

  ### 0.1.0 (2025-06-25)

  * Initial release
  * Support for Google Maps, Google Search

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Automates data extraction from online platforms including Google Maps, Google Search, YouTube, Trustpilot, TripAdvisor, Expedia, and G2 Reviews via the Outscraper API.","capabilities":["Search businesses on Google Maps","Retrieve reviews from Google Maps","Extract photos from Google Maps","Perform Google Search queries","Scrape emails and contacts","Geocode and reverse geocoding","Access AI Scraper service","Retrieve prices and ratings data"],"authentication":"API key required","commonUseCases":["Automated business research and competitor analysis","Review monitoring and sentiment analysis","Lead generation via email and contact scraping","Market research using geocoding and location data"],"limitations":["Community node (requires accepting risks)","Requires separate Outscraper account and API key"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-scrapingbee.ScrapingBee
package_name: n8n-nodes-scrapingbee
display_name: ScrapingBee
description: Scrape websites using ScrapingBee
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: scrapingbee
author_github_url: https://github.com/ScrapingBee/scrapingbee-n8n.git
npm_package_name: n8n-nodes-scrapingbee
npm_version: 0.1.6
community_fetched_at: 2026-03-25T21:19:40.966Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "htmlAPI",
      "options": [
        {
          "name": "Amazon Product API",
          "value": "amazonProductAPI"
        },
        {
          "name": "Amazon Search API",
          "value": "amazonSearchAPI"
        },
        {
          "name": "ChatGPT API",
          "value": "chatgptAPI"
        },
        {
          "name": "Google Search API",
          "value": "googleSearchAPI"
        },
        {
          "name": "HTML API",
          "value": "htmlAPI"
        },
        {
          "name": "Usage",
          "value": "usage"
        },
        {
          "name": "Walmart Product API",
          "value": "walmartProductAPI"
        },
        {
          "name": "Walmart Search API",
          "value": "walmartSearchAPI"
        },
        {
          "name": "YouTube Metadata API",
          "value": "youtubeMetadataAPI"
        },
        {
          "name": "YouTube Search API",
          "value": "youtubeSearchAPI"
        },
        {
          "name": "YouTube Trainability API",
          "value": "youtubeTrainabilityAPI"
        },
        {
          "name": "YouTube Transcript API",
          "value": "youtubeTranscriptAPI"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Scrape using HTML API",
          "description": "Scrape the webpage using our HTML API"
        },
        {
          "name": "POST",
          "value": "post",
          "action": "Send POST request using HTML API",
          "description": "Send a post request using our HTML API"
        },
        {
          "name": "PUT",
          "value": "put",
          "action": "Send PUT request using HTML API",
          "description": "Send a put request using our HTML API"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "htmlAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get SERP data using GOOGLE SEARCH API",
          "description": "Get SERP data using our Google Search API"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleSearchAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get products related to search query using WALMART SEARCH API",
          "description": "Search for products in Walmart"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "walmartSearchAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get product information using WALMART PRODUCT API",
          "description": "Get product information from Walmart"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "walmartProductAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get products related to search query using AMAZON SEARCH API",
          "description": "Search for products in Amazon"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "amazonSearchAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get product information using AMAZON PRODUCT API",
          "description": "Get product information from Amazon"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "amazonProductAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get AI response from CHATGPT for your prompt using our CHATGPT API",
          "description": "Get AI Response from ChatGPT based on your prompt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chatgptAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get usage data",
          "description": "Get your API usage data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "usage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get detailed video metadata from YOUTUBE using our YOUTUBE METADATA API",
          "description": "Get detailed video metadata"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtubeMetadataAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get search results from YOUTUBE using our YOUTUBE SEARCH API",
          "description": "Get YouTube search results"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtubeSearchAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get video transcript availability status from YOUTUBE using our YOUTUBE TRAINABILITY API",
          "description": "Check if a video has transcripts available for training purposes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtubeTrainabilityAPI"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "GET",
          "value": "get",
          "action": "Get video transcripts from YOUTUBE using our YOUTUBE TRANSCRIPT API",
          "description": "Get video transcripts (captions/subtitles)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtubeTranscriptAPI"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"get","name":"GET","description":"Scrape the webpage using our HTML API","resource":"htmlAPI"},{"operation":"post","name":"POST","description":"Send a post request using our HTML API","resource":"htmlAPI"},{"operation":"put","name":"PUT","description":"Send a put request using our HTML API","resource":"htmlAPI"},{"operation":"get","name":"GET","description":"Get SERP data using our Google Search API","resource":"googleSearchAPI"},{"operation":"get","name":"GET","description":"Search for products in Walmart","resource":"walmartSearchAPI"},{"operation":"get","name":"GET","description":"Get product information from Walmart","resource":"walmartProductAPI"},{"operation":"get","name":"GET","description":"Search for products in Amazon","resource":"amazonSearchAPI"},{"operation":"get","name":"GET","description":"Get product information from Amazon","resource":"amazonProductAPI"},{"operation":"get","name":"GET","description":"Get AI Response from ChatGPT based on your prompt","resource":"chatgptAPI"},{"operation":"get","name":"GET","description":"Get your API usage data","resource":"usage"},{"operation":"get","name":"GET","description":"Get detailed video metadata","resource":"youtubeMetadataAPI"},{"operation":"get","name":"GET","description":"Get YouTube search results","resource":"youtubeSearchAPI"},{"operation":"get","name":"GET","description":"Check if a video has transcripts available for training purposes","resource":"youtubeTrainabilityAPI"},{"operation":"get","name":"GET","description":"Get video transcripts (captions/subtitles)","resource":"youtubeTranscriptAPI"}]

npm_readme:
  # n8n-nodes-scrapingbee

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

  The ScrapingBee web scraping API handles headless browsers, rotates proxies for you, and offers AI-powered data extraction.

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

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

  ## Installation

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

  ## Operations

  - HTML API: GET, POST, PUT
  - Google Search API: GET
  - Usage: GET

  ## Credentials

  You can obtain your API KEY for free by signing up and visting this page: https://app.scrapingbee.com/account/manage/api_key

  When you signup, you will also get 1000 credits for free.

  ## Compatibility

  n8n 1.101.2 and above

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [HTML API](https://www.scrapingbee.com/documentation/)
  * [Google Search API](https://www.scrapingbee.com/documentation/google/)
  * [Amazon Search API](https://www.scrapingbee.com/documentation/amazon/#amazon-search-api)
  * [Amazon Product API](https://www.scrapingbee.com/documentation/amazon/#amazon-product-api)
  * [Walmart Search API](https://www.scrapingbee.com/documentation/walmart/#walmart-search-api)
  * [Walmart Product API](https://www.scrapingbee.com/documentation/walmart/#walmart-product-api)
  * [ChatGPT API](https://www.scrapingbee.com/documentation/chatgpt/)
  * [Usage](https://www.scrapingbee.com/documentation/#usage-endpoint)
  * [Data Extraction](https://www.scrapingbee.com/documentation/data-extraction/)
  * [JavaScript Scenario](https://www.scrapingbee.com/documentation/js-scenario/)

  ## Version history

  - 0.1.6: Added support for YouTube APIs
  - 0.1.5: Added support for Amazon, Walmart, and ChatGPT APIs, and configured it to be used as a tool for AI Agent
  - 0.1.4: Added option to send body in POST and PUT requests, replaced deprecated interface and method, set n8n as user-agent and other minor changes
  - 0.1.3: Added a credentials test
  - 0.1.2: Fixed credentials file link
  - 0.1.1: Minor bug fix
  - 0.1.0: Initial Release

ai_documentation_summary:
  {"purpose":"A community node that enables n8n workflows to scrape websites using the ScrapingBee API, handling headless browsers, proxy rotation, and AI-powered data extraction.","capabilities":["HTML API (GET, POST, PUT)","Google Search API (GET)","Amazon Search API","Amazon Product API","Walmart Search API","Walmart Product API","YouTube API","ChatGPT API","AI-powered data extraction","Proxy rotation"],"authentication":"API key required (obtained from ScrapingBee account)","commonUseCases":["Web scraping for e-commerce price monitoring","Data extraction from websites using AI","Google search result retrieval","YouTube content scraping","Automated data collection for AI agents"],"limitations":["Community node (not official n8n node)","Requires free account signup for API key","Includes 1000 free credits on signup"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-httpRequest","n8n-nodes-aiAgent"]}


node_type: @heygenofficial/n8n-nodes-heygen-official.heygenNode
package_name: @heygenofficial/n8n-nodes-heygen-official
display_name: HeyGen
description: HeyGen community node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: demianheygen
author_github_url: https://github.com/heygen-com/n8n-integration-heygen-node.git
npm_package_name: @heygenofficial/n8n-nodes-heygen-official
npm_version: 0.1.8
community_fetched_at: 2026-03-25T21:19:40.966Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "video",
      "options": [
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "List",
          "value": "list"
        },
        {
          "name": "Asset",
          "value": "asset"
        },
        {
          "name": "OAuth",
          "value": "oauth"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAvatarVideo",
      "options": [
        {
          "name": "Create Avatar Video",
          "value": "createAvatarVideo",
          "action": "Create avatar video a video"
        },
        {
          "name": "Create Template Video",
          "value": "createTemplateVideo",
          "action": "Create template video a video"
        },
        {
          "name": "Create a Video From Video Agent",
          "value": "createVideoAgent",
          "action": "Create a video from video agent a video"
        },
        {
          "name": "Get Video Status",
          "value": "getVideoStatus",
          "action": "Get video status a video"
        },
        {
          "name": "Translate Video",
          "value": "translateVideo",
          "action": "Translate video a video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAvatars",
      "options": [
        {
          "name": "List Avatars",
          "value": "listAvatars",
          "action": "List avatars a list"
        },
        {
          "name": "List Avatars Groups",
          "value": "listAvatarsGroups",
          "action": "List avatars groups a list"
        },
        {
          "name": "List Voices",
          "value": "listVoices",
          "action": "List voices a list"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "list"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadAssets",
      "options": [
        {
          "name": "Upload Assets",
          "value": "uploadAssets",
          "action": "Upload assets an asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "asset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "registerOAuthClient",
      "options": [
        {
          "name": "Register OAuth Client",
          "value": "registerOAuthClient",
          "action": "Register oauth client an oauth"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "oauth"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"createAvatarVideo","name":"Create Avatar Video","resource":"video"},{"operation":"createTemplateVideo","name":"Create Template Video","resource":"video"},{"operation":"createVideoAgent","name":"Create a Video From Video Agent","resource":"video"},{"operation":"getVideoStatus","name":"Get Video Status","resource":"video"},{"operation":"translateVideo","name":"Translate Video","resource":"video"},{"operation":"listAvatars","name":"List Avatars","resource":"list"},{"operation":"listAvatarsGroups","name":"List Avatars Groups","resource":"list"},{"operation":"listVoices","name":"List Voices","resource":"list"},{"operation":"uploadAssets","name":"Upload Assets","resource":"asset"},{"operation":"registerOAuthClient","name":"Register OAuth Client","resource":"oauth"}]

npm_readme:
  # Local development

  If n8n-nodes-heygen-official in some folder "/home/username/projects/n8n-heygen-node" after changing code of this node, we need:

  1. In this folder run `npm run build && npm link`
  2. Go to global n8n folder and sub-folder "custom" (for example: ~/.n8n/custom) and from this folder run `npm link n8n-nodes-heygen-official` where "n8n-nodes-heygen-official" is name of this package (in package.json)
  3. Run `n8n start` to start local n8n server
  4. Now we should be able to find HeyGen node
  5. Link operations need to be done only one time, then after changes in code, just run `npm run build` and then `n8n start` to see changes

  # Lint

  6. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.

  Important: Some of lint errors do not follow logic, so we can skip them.

  # Publish

  7. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

  ## More information

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

ai_documentation_summary:
  {"purpose":"This is a community-maintained n8n node that provides integration capabilities for the HeyGen AI video generation platform.","capabilities":[],"authentication":"None (Community node - specific auth methods not documented in README)","commonUseCases":[],"limitations":["No specific API authentication methods documented in the README","Limited documentation on actual HeyGen API features supported","Community-maintained node may lack official support or updates"],"relatedNodes":["n8n HeyGen official node (if available)","Video generation nodes","AI text-to-video nodes"]}


node_type: n8n-nodes-peek-pro.peekPro
package_name: n8n-nodes-peek-pro
display_name: Peek Pro
description: Build workflows with Peek Pro
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: peektravel
author_github_url: https://github.com/peek-travel/
npm_package_name: n8n-nodes-peek-pro
npm_version: 0.2.2
community_fetched_at: 2026-03-25T21:19:40.967Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "booking",
      "options": [
        {
          "name": "Booking",
          "value": "booking"
        },
        {
          "name": "Product",
          "value": "product"
        },
        {
          "name": "Timeslot",
          "value": "timeslot"
        },
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "User",
          "value": "user"
        },
        {
          "name": "Reseller",
          "value": "reseller"
        },
        {
          "name": "Promo Code",
          "value": "promoCode"
        },
        {
          "name": "Daily Note",
          "value": "dailyNote"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get: current account",
      "options": [
        {
          "name": "Get Current",
          "value": "get: current account",
          "action": "Get the current account information",
          "routing": {
            "request": {
              "url": "/accounts/current",
              "method": "GET"
            }
          },
          "description": "Get the current account information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: users",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: users",
          "action": "Get all users",
          "routing": {
            "request": {
              "url": "/users",
              "method": "GET"
            }
          },
          "description": "Get all users"
        },
        {
          "name": "Get One",
          "value": "get: user",
          "action": "Get the data of a user",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter.userId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany: bookings (dates)",
      "options": [
        {
          "name": "Get All for Time Range",
          "value": "getMany: bookings (dates)",
          "action": "Get bookings within time range",
          "routing": {
            "request": {
              "qs": {
                "end": "={{$parameter[\"endTime\"]}}",
                "email": "={{$parameter[\"email\"]}}",
                "start": "={{$parameter[\"startTime\"]}}",
                "searchBy": "={{$parameter[\"searchBy\"]}}",
                "productId": "={{$parameter[\"productId\"]}}",
                "searchString": "={{$parameter[\"searchString\"]}}",
                "includeGuests": "={{$parameter[\"includeGuests\"]}}"
              },
              "url": "/bookings",
              "method": "GET"
            }
          },
          "description": "Get all bookings for a given time range"
        },
        {
          "name": "Get All for Timeslot",
          "value": "getMany: bookings (timeslot)",
          "action": "Get bookings for a timeslot",
          "routing": {
            "request": {
              "qs": {
                "timeslotId": "={{$parameter[\"timeslotId\"]}}",
                "includeGuests": "={{$parameter[\"includeGuests\"]}}"
              },
              "url": "/bookings",
              "method": "GET"
            }
          },
          "description": "Get all bookings for a given timeslot"
        },
        {
          "name": "Get One",
          "value": "get: booking",
          "action": "Get one booking",
          "routing": {
            "request": {
              "qs": {
                "includeGuests": "={{$parameter[\"includeGuests\"]}}"
              },
              "url": "=/bookings/{{$parameter.bookingId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single booking"
        },
        {
          "name": "Add Note",
          "value": "set: booking notes",
          "action": "Append a note to the booking notes",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/notes",
              "body": {
                "note": "={{$parameter[\"note\"]}}",
                "appendOrOverwrite": "={{$parameter[\"appendOrOverwrite\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Append a note to the booking notes"
        },
        {
          "name": "Update Checkin Status",
          "value": "set: booking checkin",
          "action": "Update the checkin status of a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/checkin",
              "body": {
                "checkedIn": "={{$parameter[\"checkedIn\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the checkin status of a single booking"
        },
        {
          "name": "Cancel Booking",
          "value": "cancel: booking",
          "action": "Cancel a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/cancel",
              "method": "POST"
            }
          },
          "description": "Cancel a booking"
        },
        {
          "name": "Create Booking",
          "value": "create: booking",
          "action": "Create a new booking",
          "routing": {
            "request": {
              "url": "=/bookings/create",
              "body": {
                "end": "={{$parameter[\"end\"]}}",
                "date": "={{$parameter[\"date\"]}}",
                "email": "={{$parameter[\"email\"]}}",
                "notes": "={{$parameter[\"notes\"]}}",
                "phone": "={{$parameter[\"phone\"]}}",
                "start": "={{$parameter[\"start\"]}}",
                "country": "={{$parameter[\"country\"]}}",
                "product": "={{$parameter[\"product\"]}}",
                "tickets": "={{$parameter[\"tickets\"]}}",
                "optinSms": "={{$parameter[\"optinSms\"]}}",
                "externalId": "={{$parameter[\"externalId\"]}}",
                "postalCode": "={{$parameter[\"postalCode\"]}}",
                "customerName": "={{$parameter[\"customerName\"]}}",
                "optinMarketing": "={{$parameter[\"optinMarketing\"]}}",
                "shouldSendEmails": "={{$parameter[\"shouldSendEmails\"]}}",
                "markBookingAsPaid": "={{$parameter[\"markBookingAsPaid\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new booking"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "booking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany: timeslots",
      "options": [
        {
          "name": "Get All for Date",
          "value": "getMany: timeslots",
          "action": "Get all timeslots on a date",
          "routing": {
            "request": {
              "qs": {
                "date": "={{$parameter[\"date\"]}}",
                "productId": "={{$parameter[\"productId\"]}}",
                "filterBookings": "={{$parameter[\"filterBookings\"]}}"
              },
              "url": "/timeslots",
              "method": "GET"
            }
          },
          "description": "Get all timeslots for a date and product"
        },
        {
          "name": "Get One",
          "value": "get: timeslot",
          "action": "Get a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single timeslot"
        },
        {
          "name": "Set Availability Status",
          "value": "set: timeslot availability",
          "action": "Set timeslot availability",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "body": {
                "status": "={{$parameter[\"status\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the availability of a timeslot"
        },
        {
          "name": "Set Notes",
          "value": "set: timeslot notes",
          "action": "Update the notes of a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "body": {
                "note": "={{$parameter[\"note\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the notes of a timeslot"
        },
        {
          "name": "Set Guide or Resource",
          "value": "set: timeslot guide",
          "action": "Set a guide to a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/guideAssign",
              "body": {
                "guideIds": "={{$parameter[\"guideOrResourceIds\"].map(e => $evaluateExpression(e)).map(s => s.replace(/^=/, \"\")) }}",
                "timeslotIds": "={{$parameter[\"timeslotIds\"].map(e => $evaluateExpression(e)).map(s => s.replace(/^=/, \"\")) }}",
                "assignOrUnassign": "={{$parameter[\"assignOrUnassign\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Set a guide to a timeslot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "timeslot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: products",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: products",
          "action": "Get all products",
          "routing": {
            "request": {
              "url": "/products",
              "method": "GET"
            }
          },
          "description": "Get all products"
        },
        {
          "name": "Get One",
          "value": "get: product",
          "action": "Get the data of a product",
          "routing": {
            "request": {
              "url": "=/products/{{$parameter.productId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single product"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: promoCode",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: promoCode",
          "action": "Get all promo codes",
          "routing": {
            "request": {
              "url": "/promocode",
              "method": "GET"
            }
          },
          "description": "Get all promo codes"
        },
        {
          "name": "Create Promo Code",
          "value": "create: promoCode",
          "action": "Create a new promo code",
          "routing": {
            "request": {
              "url": "=/promocode/create",
              "body": {
                "code": "={{$parameter[\"code\"]}}",
                "name": "={{$parameter[\"name\"]}}",
                "amount": "={{$parameter[\"amount\"]}}",
                "currency": "={{$parameter[\"currency\"]}}",
                "discountType": "={{$parameter[\"discountType\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new promo code"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "promoCode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get: daily note",
      "options": [
        {
          "name": "Get Today's Daily Note",
          "value": "get: daily note",
          "action": "Get daily note for today",
          "routing": {
            "request": {
              "url": "/dailyNote/today",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Today's Daily Note",
          "value": "set: daily note",
          "action": "Update daily note for today",
          "routing": {
            "request": {
              "url": "/dailyNote/today",
              "body": {
                "note": "={{$parameter[\"note\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dailyNote"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: reseller",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: reseller",
          "action": "Get all resellers",
          "routing": {
            "request": {
              "url": "/reseller",
              "method": "GET"
            }
          },
          "description": "Get all resellers"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reseller"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"get: current account","name":"Get Current","description":"Get the current account information","resource":"account"},{"operation":"getAll: users","name":"Get All","description":"Get all users","resource":"user"},{"operation":"get: user","name":"Get One","description":"Get the data of a single user","resource":"user"},{"operation":"getMany: bookings (dates)","name":"Get All for Time Range","description":"Get all bookings for a given time range","resource":"booking"},{"operation":"getMany: bookings (timeslot)","name":"Get All for Timeslot","description":"Get all bookings for a given timeslot","resource":"booking"},{"operation":"get: booking","name":"Get One","description":"Get the data of a single booking","resource":"booking"},{"operation":"set: booking notes","name":"Add Note","description":"Append a note to the booking notes","resource":"booking"},{"operation":"set: booking checkin","name":"Update Checkin Status","description":"Update the checkin status of a single booking","resource":"booking"},{"operation":"cancel: booking","name":"Cancel Booking","description":"Cancel a booking","resource":"booking"},{"operation":"create: booking","name":"Create Booking","description":"Create a new booking","resource":"booking"},{"operation":"getMany: timeslots","name":"Get All for Date","description":"Get all timeslots for a date and product","resource":"timeslot"},{"operation":"get: timeslot","name":"Get One","description":"Get the data of a single timeslot","resource":"timeslot"},{"operation":"set: timeslot availability","name":"Set Availability Status","description":"Update the availability of a timeslot","resource":"timeslot"},{"operation":"set: timeslot notes","name":"Set Notes","description":"Update the notes of a timeslot","resource":"timeslot"},{"operation":"set: timeslot guide","name":"Set Guide or Resource","description":"Set a guide to a timeslot","resource":"timeslot"},{"operation":"getAll: products","name":"Get All","description":"Get all products","resource":"product"},{"operation":"get: product","name":"Get One","description":"Get the data of a single product","resource":"product"},{"operation":"getAll: promoCode","name":"Get All","description":"Get all promo codes","resource":"promoCode"},{"operation":"create: promoCode","name":"Create Promo Code","description":"Create a new promo code","resource":"promoCode"},{"operation":"get: daily note","name":"Get Today's Daily Note","resource":"dailyNote"},{"operation":"set: daily note","name":"Update Today's Daily Note","resource":"dailyNote"},{"operation":"getAll: reseller","name":"Get All","description":"Get all resellers","resource":"reseller"}]

npm_readme:
  # n8n-nodes-peek-pro

  An n8n community node that allows interacting with the Peek Pro booking software.

  ## Installation

  In your n8n instance:

  1. Go to Settings → Community Nodes.
  2. Add the following package: `n8n-nodes-peek-pro`

  ## Credentials

  This node requires an API key.
  Peek Pro customers can obtain their API key from the Peek Pro n8n app.

  To configure it in n8n:

  1. Go to Credentials → New
  2. Select Peek Pro API
  3. Enter your API key
  4. Save

  ## Features

  This package supports:

  - Webhook-style triggers for new or updated bookings
  - Notification triggers for signed waivers
  - Pulling booking information
  - Accessing back-office calendar data
  - Retrieving guest information

  ## Usage

  1. Add a Peek Pro node to your workflow
  2. Select an operation such as booking retrieval or event subscription
  3. Choose or create your Peek Pro API credentials
  4. Configure the required fields
  5. Execute the node to verify everything is working

  ## Requirements

  - Available for all current Peek Pro customers
  - API key is available via the Peek Pro n8n app

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"An n8n community node that enables interaction with Peek Pro booking software for managing bookings, notifications, and guest data.","capabilities":["Webhook-style triggers for new or updated bookings","Notification triggers for signed waivers","Pulling booking information","Accessing back-office calendar data","Retrieving guest information"],"authentication":"API key required (obtained from Peek Pro n8n app)","commonUseCases":["Automated booking notifications","Guest information retrieval","Calendar synchronization","Waiver signing monitoring"],"limitations":[],"relatedNodes":[]}


node_type: @securevector/n8n-nodes-securevector.secureVector
package_name: @securevector/n8n-nodes-securevector
display_name: SecureVector
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: mss04132020
author_github_url: https://github.com/Secure-Vector/n8n-nodes-securevector.git
npm_package_name: @securevector/n8n-nodes-securevector
npm_version: 0.1.5
community_fetched_at: 2026-03-25T21:19:40.971Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  AI security: Detect prompt injection, jailbreak attempts, and malicious content before prompts reach your LLM

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prompt",
      "options": [
        {
          "name": "Prompt",
          "value": "prompt",
          "description": "Work with prompts and messages"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scanPrompt",
      "options": [
        {
          "name": "Scan",
          "value": "scanPrompt",
          "action": "Scan a prompt for AI security threats",
          "description": "Analyze a prompt for AI security threats before sending to LLM"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"scanPrompt","name":"Scan","description":"Analyze a prompt for AI security threats before sending to LLM","resource":"prompt"}]

npm_readme:
  # n8n-nodes-securevector

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

  **AI prompt security scanning for n8n workflows.** Detect prompt injection, jailbreak attempts, and 17+ threat categories in real-time.

  > **⚠️ LEGAL DISCLAIMER**: This software is provided "AS-IS" without warranties. SecureVector makes NO guarantees about security effectiveness. Users assume ALL risk and liability. See [License](#license) for full terms.

  ## Quick Start

  ### Installation

  **Via n8n Community Nodes** (Recommended):
  1. Go to **Settings** → **Community Nodes** → **Install**
  2. Enter: `@securevector/n8n-nodes-securevector`
  3. Restart n8n

  **Via npm**:
  ```bash
  cd ~/.n8n && npm install @securevector/n8n-nodes-securevector
  ```

  ### Setup

  1. **Get API key**:
     - Direct link: [https://app.securevector.io/dashboard?section=access](https://app.securevector.io/dashboard?section=access)
     - Or navigate: SecureVector App → Access Management → Create API Key
  2. Add SecureVector node to workflow
  3. Configure credentials (API key format: `sv_xxxxx`)

  ## Operation Modes

  | Mode | Use Case | Behavior | Configuration | Diagram |
  |------|----------|----------|---------------|---------|
  | **Non-Blocking** | Analysis & logging | Returns scan results, workflow continues regardless of threat | `Block on Threat`: OFF | `Trigger → SecureVector → Next Node` |
  | **Blocking** | Security gate | Stops workflow if threat detected | `Block on Threat`: ON<br>`Threshold`: 0-100<br>`Risk Levels`: Select | `Trigger → SecureVector → [STOP if threat] → Next Node` |
  | **Parallel** | Real-time monitoring | Scan + LLM run simultaneously | `Block on Threat`: OFF<br>Split workflow | `Trigger ──┬→ SecureVector`<br>`          └→ LLM → Merge` |

  ### Mode Details

  **🔓 Non-Blocking (Default)**
  ```
  User Input → SecureVector Scan → IF Node (score > 50?)
                                        ├─ TRUE → Alert Team
                                        └─ FALSE → Send to LLM
  ```
  **Use for**: Logging, metrics, conditional routing

  ---

  **🔒 Blocking (Security Gate)**
  ```
  User Input → SecureVector Scan → LLM Processing
               [THROWS ERROR IF THREAT DETECTED - WORKFLOW STOPS]
  ```
  **Use for**: Preventing malicious prompts from reaching LLM

  ---

  **⚡ Parallel (Async Analysis)**
  ```
  User Input ──┬→ SecureVector Scan ──┐
               └→ LLM Processing ──────→ Merge → Results
  ```
  **Use for**: Performance-critical workflows

  ## Parameters

  | Parameter | Type | Default | Description |
  |-----------|------|---------|-------------|
  | `prompt` | string | - | Text to scan (max 10,000 chars, truncated if longer) |
  | `timeout` | number | 30 | Scan timeout in seconds (1-300) |
  | `includeMetadata` | boolean | false | Include workflow ID in request |
  | `blockOnThreat` | boolean | false | Stop workflow on threat detection |
  | `threatThreshold` | number | 50 | Score threshold for blocking (0-100) |
  | `blockOnRiskLevels` | array | `['critical', 'high']` | Risk levels that trigger blocking |

  ## Output Format

  ```json
  {
    "scanId": "550e8400-e29b-41d4-a716-446655440000",
    "score": 85,
    "riskLevel": "high",
    "threats": [
      {
        "category": "prompt_injection",
        "severity": "high",
        "title": "Potential prompt injection detected",
        "description": "...",
        "confidence": 0.92
      }
    ],
    "timestamp": "2025-12-27T10:30:00.000Z",
    "metadata": {
      "processingTimeMs": 150,
      "version": "1.0.0"
    }
  }
  ```

  **Scoring**: 0 = safe, 100 = maximum threat

  **Risk Levels**: `safe`, `low`, `medium`, `high`, `critical`

  **17 Threat Categories**: prompt_injection, adversarial_attack, model_extraction, data_poisoning, privacy_leak, bias_exploitation, model_inversion, membership_inference, backdoor_attack, evasion_attack, jailbreak_attempt, sensitive_data_exposure, inappropriate_content, malicious_code_generation, social_engineering, misinformation_generation, privilege_escalation

  ## Data Privacy

  **What data is sent to SecureVector API?**

  This node sends **ONLY** the following data to the SecureVector API for analysis:

  1. **Input data** - Any content you provide in the `prompt` parameter (text, prompts, data, or any other input you want analyzed)
  2. **Metadata** (optional) - Only if `includeMetadata` is enabled:
     - Workflow ID
     - Execution ID
     - Source identifier (`n8n-workflow`)

  **Why is this data sent and stored?**

  - **Analysis**: Your input is analyzed for security threats and returned with a threat score
  - **Your auditing**: All data you send is **persisted for your own logging and auditing purposes** - this allows you to review scan history, track which workflows triggered scans, and maintain audit trails

  **What is NOT sent?**

  - API keys or credentials
  - Other node data or variables not explicitly provided
  - Workflow configuration or logic
  - Any data from other nodes in your workflow

  **Important**: Anything you send for analysis will be stored by SecureVector for your auditing and logging purposes. Only send data you consent to being analyzed and stored.

  **Data retention**: See [SecureVector Privacy Policy](https://securevector.io/privacypolicy) for details on how scan data is stored and retained.

  ## Examples

  See [`examples/`](examples/) for importable n8n workflow JSON files:
  - `non-blocking-analysis.json` - Conditional routing pattern
  - `blocking-mode.json` - Security gate pattern
  - `parallel-analysis.json` - Async scanning pattern

  ## Troubleshooting

  | Issue | Solution |
  |-------|----------|
  | "Invalid API key" | Verify key format: `sv_xxxxx` at [app.securevector.io](https://app.securevector.io) |
  | "Timeout" | Increase timeout parameter or check network |
  | "Rate limit exceeded" | Wait 60s or upgrade plan |
  | Node not appearing | Restart n8n after installation |

  ## Support

  - **Documentation**: [docs.securevector.io](https://docs.securevector.io)
  - **Issues**: [GitHub Issues](https://github.com/Secure-Vector/n8n-nodes-securevector/issues)
  - **Security**: Report to security@securevector.io (see [SECURITY.md](SECURITY.md))

  ## Development

  ```bash
  git clone https://github.com/Secure-Vector/n8n-nodes-securevector.git
  cd n8n-nodes-securevector
  npm install
  npm test          # Run tests
  npm run build     # Build dist/
  npm link          # Link to local n8n
  ```

  See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

  ## License

  Licensed under [MIT License](LICENSE).

  ### DISCLAIMER

  **THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.**

  **SecureVector makes NO representations or warranties about:**
  - The accuracy, reliability, or completeness of security scans
  - The detection or prevention of security threats
  - The suitability for any particular purpose

  **Users assume ALL risk and liability for:**
  - Use of this software in production environments
  - Any security breaches, data loss, or damages
  - Compliance with applicable laws and regulations

  **This node is a TOOL ONLY. It does not guarantee security.** Users are solely responsible for implementing comprehensive security measures.

  By using this software, you acknowledge that **SecureVector shall not be liable for any claims, damages, or losses** arising from its use.

  ---

  **Copyright © 2025 SecureVector. All rights reserved.**

  ## Security Notes

  ### Development Dependencies
  `npm audit` may show a critical vulnerability in `form-data` (via `n8n-workflow`). **This does not affect the published package** because:

  - `n8n-workflow` is a **peer dependency** (provided by n8n runtime, not bundled)
  - Our package only bundles `zod` (no vulnerabilities)
  - Our code uses **JSON requests**, not multipart/form-data
  - The vulnerability would need to be fixed in n8n core, not this package

  For the latest security updates, keep your n8n installation up to date.

  ### Reporting Security Issues
  Report security issues to: security@securevector.io

ai_documentation_summary:
  {"purpose":"The SecureVector node scans prompts for security threats like prompt injection and jailbreak attempts before they reach an LLM, supporting non-blocking analysis, blocking workflows on threats, and parallel processing modes.","capabilities":["Detects 17+ threat categories including prompt injection, jailbreak attempts, and adversarial attacks","Provides real-time threat scoring (0-100) with risk levels (safe, low, medium, high, critical)","Supports non-blocking mode for logging and conditional routing","Supports blocking mode to stop workflows when threats exceed configured thresholds","Supports parallel mode for simultaneous scanning and LLM processing","Configurable timeout settings (1-300 seconds)","Optional metadata inclusion (workflow ID, execution ID) for auditing"],"authentication":"API key required (format: sv_xxxxx, obtained from SecureVector app dashboard)","commonUseCases":["Security gate for production LLM workflows","Logging and auditing of user prompts","Conditional routing based on threat scores","Real-time monitoring of high-volume prompt traffic"],"limitations":["Data privacy: Input prompts are sent to SecureVector API and stored for auditing/logging purposes","Input length limit: Maximum 10,000 characters per prompt (truncated if longer)","Rate limiting: May require waiting 60s or upgrading plan if exceeded","No guarantees on security effectiveness as per MIT license"],"relatedNodes":["If Node","Error Trigger","Merge Node","Split In Batches","HTTP Request"]}


node_type: n8n-nodes-peak-ai.peakAi
package_name: n8n-nodes-peak-ai
display_name: Peak AI
description: Enrich LinkedIn profiles with contact information using Peak AI
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: peakai-priyesh
author_github_url: https://github.com/Priyeshvg/PeakAi-n8n.git
npm_package_name: n8n-nodes-peak-ai
npm_version: 3.0.0
community_fetched_at: 2026-03-25T21:19:40.972Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Contact",
          "value": "contact",
          "description": "Get contact information from LinkedIn profiles"
        },
        {
          "name": "Account",
          "value": "account",
          "description": "Manage your Peak AI account"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getPhone",
      "options": [
        {
          "name": "Get Phone",
          "value": "getPhone",
          "action": "Get phone number from a linkedin profile",
          "description": "Get phone number from a LinkedIn profile"
        },
        {
          "name": "Get Email",
          "value": "getEmail",
          "action": "Get personal email from a linkedin profile",
          "description": "Get personal email from a LinkedIn profile"
        },
        {
          "name": "Get Work Email",
          "value": "getWorkEmail",
          "action": "Get work email from a linkedin profile",
          "description": "Get work/business email from a LinkedIn profile"
        },
        {
          "name": "Enrich",
          "value": "enrich",
          "action": "Enrich a linkedin profile with all contact info",
          "description": "Get all contact information (phone, email, work email) from a LinkedIn profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCredits",
      "options": [
        {
          "name": "Get Credits",
          "value": "getCredits",
          "action": "Get remaining API credits",
          "description": "Check your remaining API credits"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"getPhone","name":"Get Phone","description":"Get phone number from a LinkedIn profile","resource":"contact"},{"operation":"getEmail","name":"Get Email","description":"Get personal email from a LinkedIn profile","resource":"contact"},{"operation":"getWorkEmail","name":"Get Work Email","description":"Get work/business email from a LinkedIn profile","resource":"contact"},{"operation":"enrich","name":"Enrich","description":"Get all contact information (phone, email, work email) from a LinkedIn profile","resource":"contact"},{"operation":"getCredits","name":"Get Credits","description":"Check your remaining API credits","resource":"account"}]

npm_readme:
  # n8n-nodes-peak-ai

  This is an n8n community node for [Peak AI](https://thepeakai.com) - a LinkedIn data enrichment service that helps you find contact information from LinkedIn profiles.

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

  ## Features

  Peak AI helps you enrich LinkedIn profiles with:

  - **Phone Numbers** - Extract phone numbers from LinkedIn profiles
  - **Personal Emails** - Find personal email addresses
  - **Work Emails** - Discover business/work email addresses
  - **Full Enrichment** - Get all contact information in one request
  - **Credit Balance** - Check your remaining API credits

  ## Installation

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

  ### In n8n Cloud or Desktop

  1. Go to **Settings** > **Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-peak-ai` and click **Install**

  ### In Self-hosted n8n

  ```bash
  npm install n8n-nodes-peak-ai
  ```

  ## Credentials

  To use this node, you need a Peak AI account:

  1. Sign up at [Peak AI](https://thepeakai.com)
  2. Get your account credentials (email and password)
  3. In n8n, create new credentials of type **Peak AI API**
  4. Enter your email and password

  The node handles authentication automatically - you don't need to manage access tokens manually.

  ## Usage

  ### Operations

  | Resource | Operation | Description |
  |----------|-----------|-------------|
  | **Contact** | Get Phone | Extract phone number from a LinkedIn profile |
  | **Contact** | Get Email | Extract personal email from a LinkedIn profile |
  | **Contact** | Get Work Email | Extract work/business email from a LinkedIn profile |
  | **Contact** | Enrich | Get all contact information (phone, email, work email) in one request |
  | **Account** | Get Credits | Check your remaining API credits |

  ### Example Workflow

  1. Add the **Peak AI** node to your workflow
  2. Select your Peak AI credentials
  3. Choose a resource and operation (e.g., Contact > Get Phone)
  4. Enter the LinkedIn profile URL (e.g., `https://www.linkedin.com/in/username`)
  5. Execute the node

  ### Input Format

  The LinkedIn URL field accepts:
  - Full URL: `https://www.linkedin.com/in/username`
  - Username only: `username` (will be converted to full URL automatically)

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Tested with n8n versions 1.0.0+

  ## Resources

  - [Peak AI Website](https://thepeakai.com)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Report Issues](https://github.com/Priyeshvg/PeakAi-n8n/issues)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Enriches LinkedIn profiles with contact information such as phone numbers, personal emails, and work emails using the Peak AI API.","capabilities":["Extract phone numbers from LinkedIn profiles","Extract personal email addresses from LinkedIn profiles","Extract work/business email addresses from LinkedIn profiles","Get all contact information in a single request","Check remaining API credits","Accept both full LinkedIn URLs and usernames as input"],"authentication":"Email and password credentials","commonUseCases":["Lead generation by finding contact details for LinkedIn profiles","Sales outreach preparation by enriching prospect data","Marketing campaigns targeting specific LinkedIn users","Monitoring API credit balance"],"limitations":["Requires a separate Peak AI account subscription","Limited to LinkedIn profile enrichment only","Requires n8n version 1.0.0 or later"],"relatedNodes":["HTTP Request","Webhook","Code"]}


node_type: n8n-nodes-simplified.simplified
package_name: n8n-nodes-simplified
display_name: Simplified
description: Simplified
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: jacksimplified
author_github_url: https://github.com/celeryhq/
npm_package_name: n8n-nodes-simplified
npm_version: 1.0.5
community_fetched_at: 2026-03-25T21:19:40.973Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "social-media",
      "options": [
        {
          "name": "Social Media",
          "value": "social-media"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createPost",
      "options": [
        {
          "name": "Get Connected Accounts",
          "value": "getAccounts",
          "action": "Get connected accounts",
          "description": "Retrieve all connected social media accounts"
        },
        {
          "name": "Create Post",
          "value": "createPost",
          "action": "Create a new post",
          "description": "Create a new social media post"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "social-media"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"getAccounts","name":"Get Connected Accounts","description":"Retrieve all connected social media accounts","resource":"social-media"},{"operation":"createPost","name":"Create Post","description":"Create a new social media post","resource":"social-media"}]

npm_readme:
  # n8n-nodes-simplified

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

  **Simplified** is a content creation and marketing platform that helps teams generate, schedule, and manage social media content using AI.

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

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

  ---

  ## Installation

  Option 1: Install via n8n UI
  1. Go to Settings > Community Nodes
  2. Click on Install
  3. Enter n8n-nodes-simplified in the npm Package Name field
  4. Click on Install

  Option 2: Install the node from npm:

  ```bash
  npm install n8n-nodes-simplified
  ```

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

  ---

  ## Operations

  ### 1. Get Social Accounts

  Retrieve all social media accounts connected to your Simplified workspace.

  **Use case**: Useful for previewing accounts or selecting the correct ID for post publishing.

  **Output**:  
  Returns a list of connected account objects, including platform, ID, name, and more.

  ---

  ### 2. Create Post

  Create a new social media post for one of your connected accounts.

  **Input Parameters**:

  | Field              | Type                                | Required | Description |
  |--------------------|-------------------------------------|----------|-------------|
  | Action             | Options: Add as Draft, Schedule, Add to Queue | ✅ Yes | Defines how the post should be handled:<br>• Add as Draft – Save the post without publishing.<br>• Schedule – Publish at a specified date/time.<br>• Add to Queue – Add to your platform's posting queue. |
  | Network Type       | Options (Facebook, LinkedIn, etc.)  | ✅ Yes   | Target social media platform. |
  | Account ID         | Dropdown (auto-loaded)              | ✅ Yes   | Connected account to publish the post to. |
  | Message            | String (text area)                  | ❌ No    | The text content of the post. Optional if the post is media-only. |
  | Schedule Date      | DateTime                            | ❌ No    | Required only if Action is Schedule. Defines when the post will be published. |
  | Media              | List of URLs or Asset IDs           | ❌ No    | Attach media to the post (URLs or Simplified asset IDs). |
  | Platform Settings  | Object                              | ❌ No    | Optional advanced configuration for the selected platform. |

  **Output**:  
  Returns an array containing the post or draft IDs that were created.

  ```json
  [
    {
      "ids": [
        "685d4e9f5cdd5047220f6a43"
      ]
    }
  ]
  ```

  **Usage in expressions**:
  ```scss
  {{$json["ids"][0]}}
  ```

  ---

  ## Credentials

  This node requires authentication with Simplified. You will need an API key to connect your account.

  🔗 [Simplified Authentication Documentation](https://simplified.readme.io/reference/authentication)

  ---

  ## Compatibility

  - Requires **n8n v1.40.0 or higher**
  - Developed and tested with Node.js 20+
  - No known incompatibilities at this time.

  ---

  ## Usage

  Use this node to prepare and publish AI-generated content to all your connected social media accounts directly from n8n.

  Examples:
  - Prepare content with ChatGPT or OpenAI node.
  - Use this node to **schedule or queue** posts for Simplified-connected platforms.
  - Retrieve and display connected accounts before publishing.

  ---

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Simplified API documentation](https://simplified.readme.io/reference/authentication)
  - [Simplified App](https://simplified.com)

  ---

  ## Version history

  ### 1.0.0
  - Initial release
  - Supports:
    - Get Social Accounts
    - Create Post with scheduling, media upload, and advanced platform settings

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with Simplified, a content creation platform, to retrieve social media accounts and create, schedule, or queue posts across various networks.","capabilities":["Retrieve connected social media accounts","Create new social media posts","Schedule posts for future publication","Add posts to the Simplified queue","Attach media (URLs or asset IDs) to posts","Configure advanced platform-specific settings"],"authentication":"API key required","commonUseCases":["Automating social media content publishing workflows","Scheduling AI-generated posts across multiple platforms","Retrieving account IDs for post creation","Managing content queues for social media teams"],"limitations":["Requires Simplified API key configuration","Requires n8n version 1.40.0 or higher","Node is a community package and may not have official support"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code","n8n-nodes-openai.openai"]}


node_type: n8n-nodes-browserbase.browserbase
package_name: n8n-nodes-browserbase
display_name: Browserbase Agent
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: kylejeong
author_github_url: https://github.com/browserbase/n8n-node.git
npm_package_name: n8n-nodes-browserbase
npm_version: 1.1.3
community_fetched_at: 2026-03-25T21:19:40.973Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  AI-powered browser automation. Provide a URL and instruction, get results. Supports CUA (vision), DOM (selectors), and Hybrid modes.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "agent",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "action": "Execute an agent",
          "description": "Execute an AI agent to perform browser automation tasks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"execute","name":"Execute","description":"Execute an AI agent to perform browser automation tasks","resource":"agent"}]

npm_readme:
  # n8n-nodes-browserbase

  This is an n8n community node that lets you automate browsers using [Browserbase](https://browserbase.com) powered by [Stagehand](https://stagehand.dev) in your n8n workflows.

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

  ## Installation

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

  ## Development / Testing with Docker

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Run n8n with your node in Docker
  docker-compose up --build

  # Open http://localhost:5678 and search for "Browserbase" node
  ```

  To rebuild after changes:
  ```bash
  npm run build && docker-compose up --build
  ```

  ## How It Works

  The Browserbase Agent node is a single, self-contained node that:
  1. Creates a browser session
  2. Navigates to your starting URL
  3. Executes an AI agent to complete your task
  4. Closes the session automatically

  Just provide a URL and an instruction - the node handles everything else.

  ## Configuration

  ### Required Fields

  | Field | Description |
  |-------|-------------|
  | **Starting URL** | The page where the agent begins (e.g., `https://example.com`) |
  | **Instruction** | Natural language task for the agent to complete |

  ### Driver Model

  The driver model powers the browser session (navigation, DOM interactions). Choose from:

  - `google/gemini-2.5-flash` (Recommended - fast & cheap)
  - `google/gemini-2.5-pro`
  - `openai/gpt-4o`
  - `openai/gpt-4o-mini`
  - `anthropic/claude-sonnet-4-5-20250929`

  ### Agent Mode

  | Mode | Description | Best For |
  |------|-------------|----------|
  | **CUA** | Computer Use Agent - uses vision and coordinates | Complex UIs, visual interactions |
  | **DOM** | Uses DOM selectors - works with any LLM | Speed, simple pages |
  | **Hybrid** | Combines both approaches | Fallback reliability |

  ### Agent Models

  Models available depend on the selected mode:

  **CUA Mode:**
  - `google/gemini-2.5-computer-use-preview-10-2025`
  - `openai/computer-use-preview`
  - `anthropic/claude-sonnet-4-20250514`
  - `anthropic/claude-sonnet-4-5-20250929`
  - `anthropic/claude-haiku-4-5-20251001`

  **DOM Mode:**
  - `google/gemini-2.5-flash`
  - `google/gemini-2.5-pro`
  - `openai/gpt-4o`
  - `openai/gpt-4o-mini`
  - `anthropic/claude-sonnet-4-5-20250929`

  **Hybrid Mode:**
  - `google/gemini-3-flash-preview`
  - `anthropic/claude-sonnet-4-20250514`
  - `anthropic/claude-haiku-4-5-20251001`

  ## Credentials

  You need three credentials:

  | Credential | Description |
  |------------|-------------|
  | **Browserbase API Key** | Your Browserbase API key |
  | **Browserbase Project ID** | Your Browserbase project ID |
  | **Model API Key** | API key for your chosen model provider |

  > **Important:** The Model API Key must match the provider of your models. If using Google models, provide a Google API key. If using OpenAI, provide an OpenAI key.

  ### Getting Credentials

  1. Sign up at [Browserbase](https://browserbase.com)
  2. Navigate to your dashboard for API key and Project ID
  3. Get an API key from your model provider:
     - [Google AI Studio](https://aistudio.google.com/apikey)
     - [OpenAI](https://platform.openai.com/api-keys)
     - [Anthropic](https://console.anthropic.com/)

  ## Example Usage

  **Simple extraction:**
  - URL: `https://news.ycombinator.com`
  - Instruction: `Find the top 3 stories and return their titles and URLs`

  **Form filling:**
  - URL: `https://example.com/contact`
  - Instruction: `Fill out the contact form with name "John Doe" and email "john@example.com", then submit`

  **Navigation + action:**
  - URL: `https://github.com`
  - Instruction: `Search for "stagehand" and click on the first repository result`

  ## Output

  The node returns an `AgentResult` object:

  ```json
  {
    "success": true,
    "message": "Task completed successfully",
    "actions": [
      { "type": "act", "action": "clicked submit button" }
    ],
    "completed": true,
    "usage": {
      "input_tokens": 1250,
      "output_tokens": 340,
      "inference_time_ms": 2500
    },
    "sessionId": "abc-123"
  }
  ```

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Browserbase Documentation](https://docs.browserbase.com)
  - [Stagehand Documentation](https://docs.stagehand.dev)

ai_documentation_summary:
  {"purpose":"Automates browser tasks using AI agents powered by Browserbase and Stagehand, allowing users to navigate websites and perform actions via natural language instructions.","capabilities":["Browser session creation and management","Natural language task execution","Computer Use Agent (CUA) mode for visual UI interactions","DOM mode for selector-based interactions","Hybrid mode combining both approaches","Support for multiple LLM providers (Google, OpenAI, Anthropic)","Automatic session cleanup after task completion"],"authentication":"API key required (Browserbase API key, Project ID, and Model provider API key)","commonUseCases":["Web form filling and submission","Data extraction from websites","Navigation and clicking on specific elements","Complex UI automation with visual recognition"],"limitations":["Requires separate credentials for Browserbase and the chosen LLM provider","Model availability depends on the selected agent mode","Requires n8n version 1.60.0 or later","CUA mode may have higher latency compared to DOM mode"],"relatedNodes":["n8n-nodes-browserbase.browserbase","n8n-nodes-http.request","n8n-nodes-webhook.webhook"]}


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-03-25 21:19:40
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-03-25T21:19:40.974Z
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:
  [{"operation":"sendmail","name":"Send Mail","description":"This action will send an email.","resource":"message"},{"operation":"sendtemplatemail","name":"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: @waapi/n8n-nodes-waalaxy.waalaxy
package_name: @waapi/n8n-nodes-waalaxy
display_name: Waalaxy
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: fabazad74
author_github_url: https://github.com/Waapi-Pro/n8n-nodes-waalaxy.git
npm_package_name: @waapi/n8n-nodes-waalaxy
npm_version: 1.1.1
community_fetched_at: 2026-03-25T21:19:40.975Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  We make LinkedIn outreach f*cking easy. Reach 800+ prospects on LinkedIn every month. Auto-follow up until they reply. No complex setup. 150,000+ professionals (sales reps, founders, recruiters) use Waalaxy to get replies and sign new clients.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prospect",
      "options": [
        {
          "name": "Prospect",
          "value": "prospect"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "importProspect",
      "options": [
        {
          "name": "Import",
          "value": "importProspect",
          "action": "Import",
          "routing": {
            "send": {
              "type": "body",
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "prospects/addProspectFromIntegration",
              "method": "POST",
              "ignoreHttpStatusErrors": true
            }
          },
          "description": "Import a prospect in the Waalaxy CRM"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prospect"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"importProspect","name":"Import","description":"Import a prospect in the Waalaxy CRM","resource":"prospect"}]

npm_readme:
  # n8n-nodes-waalaxy

  ![Waalaxy](https://img.shields.io/badge/Waalaxy-Integration-5C5CFF?style=for-the-badge)
  ![n8n](https://img.shields.io/badge/n8n-Community%20Node-FF6D5A?style=for-the-badge)
  ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)

  This is an n8n community node that integrates [Waalaxy](https://waalaxy.com?o=n8n) with your n8n workflows. Waalaxy is a LinkedIn automation tool that helps you automate your prospecting and outreach campaigns.

  ## Table of Contents

  - [Features](#features)
  - [Installation](#installation)
  - [Credentials](#credentials)
  - [Operations](#operations)
    - [Prospect](#prospect)
  - [Usage Examples](#usage-examples)
  - [Development](#development)
  - [Resources](#resources)
  - [License](#license)

  ## Features

  - 🚀 **Add Prospects** — Import prospects into Waalaxy from any source via n8n
  - 📋 **Prospect Lists** — Dynamically select and manage prospect lists
  - 🎯 **Campaign Integration** — Automatically add prospects to campaigns
  - 🔄 **Duplicate Handling** — Control how duplicates are managed

  ## Installation

  ### Community Nodes (Recommended)

  1. Open your n8n instance
  2. Go to **Settings** > **Community Nodes**
  3. Select **Install**
  4. Enter `@waapi/n8n-nodes-waalaxy` in the input field
  5. Agree to the risks of using community nodes
  6. Click **Install**

  ### Manual Installation

  To install this node manually, run the following command in your n8n installation directory:

  ```bash
  npm install @waapi/n8n-nodes-waalaxy
  ```

  Then restart your n8n instance.

  ## Credentials

  Before using this node, you need to configure your Waalaxy API credentials.

  ### Setting Up Credentials

  1. In n8n, go to **Credentials** > **New Credential**
  2. Search for **Waalaxy API**
  3. Enter your **Access Token**
  4. Click **Save**

  ### Obtaining Your Access Token

  1. First, you need to [create Waalaxy account](https://waalaxy.com?o=n8n)
  1. Log in to your Waalaxy account
  1. Navigate to your Settings, [Integrations section](https://app.waalaxy.com/settings/crm-sync)
  1. Generate an access token
  1. Copy the token and paste it into n8n

  > **Note:** Keep your access token secure and never share it publicly.

  ## Operations

  ### Prospect

  #### Add to List and Campaign

  Add prospects to a prospect list and optionally enroll them in a campaign.

  | Parameter                     | Type       | Required | Description                                      |
  | ----------------------------- | ---------- | -------- | ------------------------------------------------ |
  | Prospect List                 | Select     | Yes      | The prospect list to add prospects to            |
  | Campaign                      | Select     | No       | Optional campaign to enroll prospects in         |
  | Prospects                     | Collection | Yes      | List of prospects to add                         |
  | Move Duplicates to Other List | Boolean    | No       | Whether to move duplicates to the specified list |
  | Can Create Duplicates         | Boolean    | No       | Whether to allow creating duplicate prospects    |

  **Prospect Fields:**

  | Field                | Type       | Required | Description                                            |
  | -------------------- | ---------- | -------- | ------------------------------------------------------ |
  | LinkedIn URL         | String     | Yes      | The LinkedIn profile URL of the prospect               |
  | First Name           | String     | No       | First name of the prospect                             |
  | Last Name            | String     | No       | Last name of the prospect                              |
  | Email                | String     | No       | Email address of the prospect                          |
  | Company Name         | String     | No       | The name of the prospect's company                     |
  | Company LinkedIn URL | String     | No       | The LinkedIn URL of the prospect's company             |
  | Company Website      | String     | No       | The website of the prospect's company                  |
  | Occupation           | String     | No       | The occupation of the prospect                         |
  | Region               | String     | No       | The region/location of the prospect                    |
  | Birthday Day         | Number     | No       | The day of the month of the prospect's birthday (1-31) |
  | Birthday Month       | Number     | No       | The month of the prospect's birthday (1-12)            |
  | Phone Numbers        | Collection | No       | Phone numbers with type (Mobile, Work, Home, Other)    |

  ## Usage Examples

  ### Example 1: Bulk Import from Google Sheets

  1. **Google Sheets node** — Read prospect data from a spreadsheet
  2. **Waalaxy node** — Add prospects to your list and campaign

  ```
  [Google Sheets] → [Waalaxy: Add to List and Campaign]
  ```

  ### Example 2: Webhook Integration

  Automatically add new leads to Waalaxy when a form is submitted:

  ```
  [Webhook Trigger] → [Waalaxy: Add to List and Campaign]
  ```

  ### Example 3: CRM Integration

  Sync prospects from your CRM to Waalaxy campaigns:

  ```
  [HubSpot/Salesforce] → [Filter] → [Waalaxy: Add to List and Campaign]
  ```

  ## Development

  ### Prerequisites

  - Node.js (v18 or higher recommended)
  - npm or pnpm
  - n8n installed locally for testing

  ### Setup

  1. Clone the repository:

  ```bash
  git clone https://github.com/Waapi-Pro/n8n-nodes-waalaxy.git
  cd n8n-nodes-waalaxy
  ```

  2. Install dependencies:

  ```bash
  npm install
  ```

  3. Build the project:

  ```bash
  npm run build
  ```

  ### Available Scripts

  | Script                | Description                           |
  | --------------------- | ------------------------------------- |
  | `npm run build`       | Build the node for production         |
  | `npm run build:watch` | Build with watch mode for development |
  | `npm run dev`         | Start development mode                |
  | `npm run lint`        | Run ESLint to check for code issues   |
  | `npm run lint:fix`    | Automatically fix linting issues      |
  | `npm run release`     | Create a new release                  |

  ### Testing Locally

  To test the node locally with n8n:

  1. Build the node:

  ```bash
  npm run build
  ```

  2. Link the node to your global n8n installation:

  ```bash
  npm link
  ```

  3. In your n8n directory, link the package:

  ```bash
  npm link @waapi/n8n-nodes-waalaxy
  ```

  4. Start n8n:

  ```bash
  n8n start
  ```

  Alternatively, use the development mode:

  ```bash
  npm run dev
  ```

  ### Project Structure

  ```
  n8n-nodes-waalaxy/
  ├── credentials/
  │   └── WaalaxyApi.credentials.ts    # API credentials configuration
  ├── nodes/
  │   └── Waalaxy/
  │       ├── listSearch/              # Dynamic list loading functions
  │       │   ├── getCampaigns.ts      # Fetch available campaigns
  │       │   └── getProspectLists.ts  # Fetch available prospect lists
  │       ├── resources/
  │       │   └── prospect/            # Prospect resource operations
  │       │       ├── index.ts
  │       │       └── addToListAndCampaign.ts
  │       ├── shared/
  │       │   ├── descriptions.ts      # Shared UI components
  │       │   └── transport.ts         # API request helper
  │       ├── Waalaxy.node.ts          # Main node definition
  │       └── Waalaxy.node.json        # Node metadata
  ├── icons/                           # Node icons (light/dark themes)
  ├── dist/                            # Compiled output
  ├── package.json
  └── tsconfig.json
  ```

  ## Support

  If you encounter any issues or have questions:

  - Open an issue on [GitHub](https://github.com/Waapi-Pro/n8n-nodes-waalaxy/issues)
  - Contact the author at fabien.turgut@waalaxy.com

ai_documentation_summary:
  {"purpose":"This n8n community node integrates Waalaxy, a LinkedIn automation tool, to automate prospecting and outreach campaigns by adding prospects to lists and campaigns.","capabilities":["Import prospects from various data sources (Google Sheets, Webhooks, CRM)","Add prospects to Waalaxy prospect lists","Enroll prospects in specific campaigns","Handle duplicate prospect management","Support bulk prospect imports with optional fields (name, email, company, occupation, etc.)"],"authentication":"API key required (Waalaxy Access Token)","commonUseCases":["Bulk importing prospect data from spreadsheets","Automating lead capture from web forms","Syncing prospect data from CRMs like HubSpot or Salesforce"],"limitations":["Community node (requires user acceptance of risks)","Manual installation requires npm and n8n restart","Prospect data must be provided via LinkedIn URL"],"relatedNodes":["Google Sheets","Webhook","HubSpot","Salesforce","Filter"]}


node_type: n8n-nodes-payfunnels.payfunnels
package_name: n8n-nodes-payfunnels
display_name: Payfunnels
description: Payfunnels
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: payfunnels
author_github_url: https://github.com/Payfunnels/
npm_package_name: n8n-nodes-payfunnels
npm_version: 0.2.1
community_fetched_at: 2026-03-25T21:19:40.976Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "payment",
      "options": [
        {
          "name": "Payment",
          "value": "payment"
        },
        {
          "name": "Subscription",
          "value": "subscription"
        },
        {
          "name": "One Time Setup Fee",
          "value": "oneTimeSetupFees"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List payments",
          "description": "List payments"
        },
        {
          "name": "Refund",
          "value": "refund",
          "action": "Refund payment",
          "description": "Refund a payment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "payment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List subscriptions",
          "description": "List subscriptions"
        },
        {
          "name": "Cancel",
          "value": "cancel",
          "action": "Cancel subscription",
          "description": "Cancel a subscription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subscription"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List one time setup fees",
          "description": "Retrieves a list of one time setup fees based on filters like page and limit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "oneTimeSetupFees"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"list","name":"List","description":"List payments","resource":"payment"},{"operation":"refund","name":"Refund","description":"Refund a payment","resource":"payment"},{"operation":"list","name":"List","description":"List subscriptions","resource":"subscription"},{"operation":"cancel","name":"Cancel","description":"Cancel a subscription","resource":"subscription"},{"operation":"list","name":"List","description":"Retrieves a list of one time setup fees based on filters like page and limit","resource":"oneTimeSetupFees"}]

npm_readme:
  # n8n-nodes-payfunnels

  This is the official n8n community node for [PayFunnels](https://www.payfunnels.com/).

  PayFunnels—an all-in-one online payment solution and platform. Collect payments, manage subscriptions, and engage customers seamlessly.

  By using this node, you will be able to integrate Payfunnels events in your n8n workflows.

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

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

  ## Installation

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

  ## Operations

  ### Payment Link
  - Payment Link Created
  - Payment Link Updated
  - Payment Link Deleted

  ### Payment
  - Payment Success
  - Payment Failed
  - First Recurring Payment
  - Refund Payment
  - List Payments

  ### Subscription
  - List Subscriptions
  - Cancel Subscription

  ### One Time Setup Fees
  - One Time Setup Fees Created
  - One Time Setup Fees Updated
  - One Time Setup Fees Deleted
  - List One Time Setup Fees

  ## Credentials

  You can obtain the credentials from your Payfunnels dashboard. Go to `Billings -> Integrations -> n8n`.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with PayFunnels to manage payment links, process payments, handle subscriptions, and track one-time setup fees within automated workflows.","capabilities":["Create payment links","Update payment links","Delete payment links","Process successful payments","Handle failed payments","Manage first recurring payments","Process refunds","List all payments","List subscriptions","Cancel subscriptions"],"authentication":"API key required (obtained from Payfunnels dashboard under Billings -> Integrations -> n8n)","commonUseCases":["Automating payment link generation for marketing campaigns","Managing recurring subscription billing cycles","Processing refunds and handling failed payments automatically","Tracking one-time setup fees for service onboarding"],"limitations":[],"relatedNodes":[]}


node_type: @langfuse/n8n-nodes-langfuse.langfuse
package_name: @langfuse/n8n-nodes-langfuse
display_name: Langfuse
description: Fetches a prompt from Langfuse Prompt Management
category: Community
development_style: declarative
version: 1
operations: [{"operation":"get","name":"Get","description":"Retrieve a prompt by name","resource":"prompt"}]
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: mdeichmann
author_github_url: https://github.com/langfuse/n8n-nodes-langfuse.git
npm_package_name: @langfuse/n8n-nodes-langfuse
npm_version: 0.2.3
community_fetched_at: 2026-03-25T21:19:40.977Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prompt",
      "options": [
        {
          "name": "Prompt",
          "value": "prompt"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a prompt",
          "routing": {
            "request": {
              "url": "=/api/public/v2/prompts/{{$parameter[\"promptName\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a prompt by name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

npm_readme:
  # n8n-nodes-langfuse

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

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

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

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

  ## Installation

  ### Self-hosted n8n

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

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

  ### n8n Cloud

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

  ## Operations

  ### Get Prompt

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

  Steps

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

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

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

  ## Credentials

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

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

  ## Development

  ### Prerequisites

  You need the following installed on your development machine:

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

  ### Build new version

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

  ### Test in local n8n

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

  ## Resources

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

  ## License

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

ai_documentation_summary:
  {"purpose":"Retrieves prompts from Langfuse Prompt Management within n8n workflows.","capabilities":["Fetch prompts by name","Select specific prompt versions using labels (defaults to 'production')"],"authentication":"API key required (hostname, public key, secret key)","commonUseCases":["Retrieving system prompts for AI agents","Accessing versioned prompts from Langfuse"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-carbone.carbone
package_name: n8n-nodes-carbone
display_name: Carbone
description: Interact with Carbone.io API to manage templates and generate documents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: steevepay
author_github_url: https://github.com/carboneio/
npm_package_name: n8n-nodes-carbone
npm_version: 2.0.0
community_fetched_at: 2026-03-25T21:19:40.977Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "template",
      "options": [
        {
          "name": "Convert Document",
          "value": "convertDocument"
        },
        {
          "name": "Render Document",
          "value": "renderDocument"
        },
        {
          "name": "Template",
          "value": "template"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convertHtmlToPdf",
      "options": [
        {
          "name": "Convert HTML to PDF",
          "value": "convertHtmlToPdf",
          "action": "Convert HTML to PDF",
          "description": "Convert an HTML document to PDF using the Chromium rendering engine for high-fidelity output"
        },
        {
          "name": "Convert Office to PDF",
          "value": "convertOfficeToPdf",
          "action": "Convert office to pdf",
          "description": "Convert an Office document (DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG) to PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "convertDocument"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete template",
          "description": "Delete a template from Carbone.io"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download template",
          "description": "Download a template or a specific version from Carbone.io"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List templates",
          "description": "List templates from Carbone.io"
        },
        {
          "name": "List Categories",
          "value": "listCategories",
          "action": "List template categories",
          "description": "List all template categories from Carbone.io"
        },
        {
          "name": "List Tags",
          "value": "listTags",
          "action": "List template tags",
          "description": "List all template tags from Carbone.io"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update template",
          "description": "Update the metadata of an existing template"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload template",
          "description": "Upload a template to Carbone.io"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate document",
          "description": "Generate a document by merging data into a template"
        },
        {
          "name": "Download Document",
          "value": "get",
          "action": "Download generated document",
          "description": "Download a document previously generated using its Render ID. Use this after a \"Generate\" with \"Return Render ID\" enabled or an asynchronous webhook generation."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "renderDocument"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"convertHtmlToPdf","name":"Convert HTML to PDF","description":"Convert an HTML document to PDF using the Chromium rendering engine for high-fidelity output","resource":"convertDocument"},{"operation":"convertOfficeToPdf","name":"Convert Office to PDF","description":"Convert an Office document (DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG) to PDF","resource":"convertDocument"},{"operation":"delete","name":"Delete","description":"Delete a template from Carbone.io","resource":"template"},{"operation":"download","name":"Download","description":"Download a template or a specific version from Carbone.io","resource":"template"},{"operation":"list","name":"List","description":"List templates from Carbone.io","resource":"template"},{"operation":"listCategories","name":"List Categories","description":"List all template categories from Carbone.io","resource":"template"},{"operation":"listTags","name":"List Tags","description":"List all template tags from Carbone.io","resource":"template"},{"operation":"update","name":"Update","description":"Update the metadata of an existing template","resource":"template"},{"operation":"upload","name":"Upload","description":"Upload a template to Carbone.io","resource":"template"},{"operation":"generate","name":"Generate","description":"Generate a document by merging data into a template","resource":"renderDocument"},{"operation":"get","name":"Download Document","description":"Download a document previously generated using its Render ID. Use this after a \"Generate\" with \"Return Render ID\" enabled or an asynchronous webhook generation.","resource":"renderDocument"}]

npm_readme:
  # n8n-nodes-carbone

  An n8n community node to automate document generation and conversion using [Carbone.io](https://carbone.io/) — directly from your n8n workflows.

  **What is Carbone.io?**
  Carbone.io is a document generation API that merges JSON data into templates (DOCX, XLSX, PPTX, ODT, HTML, and more) to produce professional documents in any format — PDF, DOCX, XLSX, CSV, PNG, and beyond. It uses a simple `{d.variableName}` tag syntax inside your existing Office or LibreOffice templates, with no design constraints and no proprietary editor.

  **What this node does**
  - **Generate documents** — merge JSON data into a template and output a file in any supported format (PDF, DOCX, XLSX, ODT, PPTX, HTML, CSV, PNG, and more)
  - **Convert documents to PDF** — convert HTML pages or Office files (DOCX, XLSX, PPTX, ODT…) to PDF using Chromium, LibreOffice, or OnlyOffice
  - **Manage templates** — upload, update, delete, list, search, and download templates stored on Carbone.io; organize them with categories and tags
  - **Asynchronous generation** — trigger document generation via webhook for large or complex documents (up to 5 minutes)
  - **Batch generation** — generate one document per item in a JSON array, returned as a ZIP or merged PDF

  **Common use cases**
  - Invoices, quotes, and receipts from billing data
  - Contracts and agreements populated with customer details
  - Financial, sales, and operational reports with tables and charts
  - Certificates of completion for training or events
  - Shipping labels and packing slips
  - Personalized letters and mass mail campaigns
  - Any document that combines a fixed layout with dynamic data

  **Supports Carbone API v4 and v5.**

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

  ## Installation

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

  ## Operations

  ### Convert Document

  #### Convert HTML to PDF
  Convert an HTML document to PDF using the Chromium rendering engine for high-fidelity output.

  **HTML Source** (choose one):
  - **URL**: The URL of the webpage to convert to PDF.
  - **File**: Upload an HTML or XHTML file to convert to PDF. To inject dynamic data, use the action "Generate a Document" instead.
  - **Template ID**: Pick a static HTML template stored on Carbone from the autocomplete list. To inject dynamic data using Carbone tags such as `{d.value}`, use the action "Generate a Document" instead.
  - **Raw HTML**: Paste or map your raw HTML code directly. To inject dynamic data, use the action "Generate a Document" instead.

  #### Convert Office to PDF
  Convert an Office document (DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG) to PDF.

  **Office Source** (choose one):
  - **File**: Upload an Office document to convert to PDF. Supported formats: DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG. To inject dynamic data, use the action "Generate a Document" instead.
  - **Template ID**: Pick a static Office template stored on Carbone from the autocomplete list. To inject dynamic data using Carbone tags such as `{d.value}`, use the action "Generate a Document" instead.

  **Parameters:**
  - **Converter**: PDF rendering engine — `LibreOffice` (default, best for ODT/ODS/ODP) or `OnlyOffice` (best for DOCX/XLSX/PPTX)

  ### Render Document

  #### Generate Document
  Generate a document by merging data into a template.

  **Parameters:**
  - **Template Source**: Where the template comes from — three options:
    - **Template ID** *(default)*: Use a template stored on Carbone. Select from the autocomplete list or enter an ID manually.
    - **File**: Use a template file from a previous node (DOCX, XLSX, PPTX, ODT, HTML…). Provide the binary property name. The node encodes it to base64 automatically.
    - **Base64 String**: Provide the template as a base64-encoded string directly.
  - **Template ID**: The template ID to use (when Template Source is "Template ID")
  - **Binary Property Name**: The binary field from the previous node that contains the template file (when Template Source is "File")
  - **Template (Base64)**: The template file encoded as a base64 string (when Template Source is "Base64 String")
  - **Data**: Data merged into the template. Accessible via `{d.}` tags (e.g. `{d.firstName}`)
  - **Convert To**: Convert the document into another format. Defaults to the template's native format. Supported: PDF, DOCX, XLSX, ODT, ODS, ODP, PPTX, PPT, DOC, CSV, HTML, XML, RTF, TXT, SVG, PNG, JPG, GIF, TIFF, WEBP, EPUB, IDML, Markdown, and more
  - **Converter**: PDF rendering engine — shown only when "Convert To" is set to PDF. `LibreOffice` (default, best for ODT/ODS/ODP), `OnlyOffice` (best for DOCX/XLSX/PPTX), `Chromium` (best for HTML)
  - **Return Render ID**: When enabled, returns a Render ID instead of the file. Use the Render ID with "Download Document" to retrieve the file. The document is available for one hour and can be downloaded once.

  **Document Generation Additional Options:**
  - **Batch Output**: Output format for batch processing — `zip` (individual files) or `pdf` (merged into one PDF)
  - **Batch Split By**: JSON path to an array in your data for batch document generation (e.g. `d.items` generates one document per item)
  - **Complement**: Extra data merged into the template, accessible via `{c.}` tags (e.g. `{c.companyName}`)
  - **Currency Rates**: Exchange rate mappings for the `formatC` formatter
  - **Currency Source**: Source currency code (e.g. `EUR`)
  - **Currency Target**: Target currency code (e.g. `USD`)
  - **Document Name**: Name of the generated document file. Supports Carbone template syntax (e.g. `invoice-{d.name}.pdf`)
  - **Enum**: Enumeration lists for the `convEnum` formatter
  - **Hard Refresh**: Refresh report content after rendering. Use only for Table of Contents numbering in DOCX/ODT documents
  - **Language**: Locale of the generated document (e.g. `fr-FR`, `en-US`). Affects `formatN`, `formatD`, `formatI` formatters and `{t()}` translations
  - **Timezone**: Convert document dates to a timezone (e.g. `Europe/Paris`). Affects `formatD` and `formatI` formatters
  - **Translations**: Localization dictionary keyed by locale codes. All text in `{t()}` tags is replaced with the corresponding translation. Requires "Language" to be set
  - **Variable String**: Predefined aliases using Carbone template syntax (e.g. `{#def = d.ID}`)
  - **Webhook URL**: Enable asynchronous generation (up to 5 min). Carbone POSTs a Render ID to this URL when the document is ready. Use "Download Document" to retrieve it

  #### Download Document
  Download a document previously generated using its Render ID. Use this after a "Generate" with "Return Render ID" enabled or an asynchronous webhook generation.

  **Parameters:**
  - **Render ID**: The render ID of the generated document to retrieve

  ### Templates

  #### List Templates
  Retrieve a list of all templates from your Carbone.io account with optional filtering capabilities.

  **Parameters:**
  - **Template ID**: Filter by specific template ID
  - **Version ID**: Filter by specific version ID
  - **Category**: Filter by template category
  - **Include Versions**: Include all versions for a specific template ID
  - **Origin**: Filter by template origin — All, API (created via API), or Studio (created via Carbone Studio)
  - **Search**: Search in template name (fuzzy search), version ID (exact) or template ID (exact)
  - **Limit**: Maximum number of results to return (default: 50)
  - **Cursor**: Cursor for pagination

  #### List Categories
  Retrieve all template categories available in your Carbone.io account.

  #### List Tags
  Retrieve all template tags available in your Carbone.io account.

  #### Upload Template
  Upload a new template file to Carbone.io or add a new version to an existing template.

  **Parameters:**
  - **Binary Property Name**: The name of the binary property that contains the template file
  - **Add Version To**: Select an existing template to add a new version to (supports "From List" picker or manual ID input). Leave empty to create a new template.
  - **Template Additional Options**:
    - **Category**: Dynamic dropdown populated from your Carbone.io categories (`GET /templates/categories`)
    - **Deployed At**: When a report is generated using the new template ID, Carbone selects the template version with the highest deployedAt timestamp that is not in the future
    - **Enable Versioning**: Whether to enable template versioning (default: true)
    - **Expire At**: Expiration date after which the template is no longer accessible
    - **Tags**: Dynamic multi-select dropdown populated from your Carbone.io tags (`GET /templates/tags`)
    - **Template Comment**: Comment for the template
    - **Template Name**: Name for the template

  #### Update Template
  Update the metadata of an existing template (name, comment, category, tags, deployedAt, expireAt) without re-uploading the file.

  **Parameters:**
  - **Template ID**: The unique identifier of the template to update (supports "From List" picker or manual ID input)
  - **Update Fields**:
    - **Category**: Dynamic dropdown populated from your Carbone.io categories
    - **Comment**: New comment for the template
    - **Deployed At**: New deployment date
    - **Expire At**: New expiration date
    - **Name**: New name for the template
    - **Tags**: Dynamic multi-select dropdown populated from your Carbone.io tags

  #### Delete Template
  Delete a template from your Carbone.io account.

  **Parameters:**
  - **Template ID**: The unique identifier of the template to delete


  ## Credentials

  To use the Carbone.io node, you need to authenticate with your Carbone.io account.

  ### Prerequisites
  1. Sign up for a Carbone.io account at [carbone.io](https://carbone.io/)
  2. Obtain your API key from your Carbone.io dashboard

  ### Authentication Setup
  1. **API Key**: Your Carbone.io API key for authentication
  2. **API URL**: The base URL for Carbone.io API (default: https://api.carbone.io)
     - Change this if you're using a self-hosted instance
  3. **Carbone API Version**: The version of the Carbone API to use (4 or 5, default: 5)

  The node uses Bearer token authentication with the Authorization header and includes the carbone-version header for API versioning.

  ## Development

  ### Import Test Workflows

  Test workflows are stored in the `test/` folder. You can import them manually once your local n8n instance is running (`npm run dev`):

  1. Open your n8n instance at `http://localhost:5678`
  2. Go to **Workflows** → **Import from file**
  3. Select the workflow JSON files from the `test/` folder

  > Import each workflow once after cloning or when workflows are updated. n8n has no deduplication, so repeated imports will create duplicates.

  ## Compatibility

  Tested with:
  - n8n: `1.111.1`, `1.112.5`
  - Carbone API: `v4`, `v5`
  - NodeJS: `22.10.0`

  ## Usage

  ### Basic Template Upload
  1. Add a Carbone node to your workflow
  2. Select "Template" as resource and "Upload" as operation
  3. Connect a node that provides the template file as binary data (e.g., Read Binary File node)
  4. Configure the binary property name to match the output of the previous node
  5. Optionally set template name and other metadata

  ### Basic Document Generation
  1. Add a Carbone node to your workflow
  2. Select "Render Document" as resource and "Generate" as operation
  3. Choose between using a template ID or base64 template
  4. Provide the JSON data to merge into the template
  5. Select the desired output format
  6. Choose whether to download the document directly or get a render ID

  ### Advanced Usage
  - **Template Versioning**: Enable versioning to keep track of template changes
  - **Localization**: Set language, timezone, and translations for multilingual documents
  - **Currency Conversion**: Use currency rates and source/target currency for financial documents
  - **Batch Generation**: Set `Batch Split By` to a JSON path (e.g. `d.orders`) to generate one document per item in the array, then collect results as a ZIP or merged PDF via `Batch Output`
  - **PDF Engine Selection**: Use `Converter` to pick the rendering engine best suited for your template format (LibreOffice for ODT/ODS, OnlyOffice for DOCX/XLSX/PPTX, Chromium for HTML)


  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Carbone.io API Reference](https://carbone.io/api-reference.html)
  * [Carbone.io Documentation](https://carbone.io/documentation.html)
  * [Carbone.io Template Guide](https://carbone.io/documentation/design/overview/getting-started.html)

  ## Version history

  ### 2.0.0

  **⚠️ Breaking change — Generate Document: Template Source**

  The `Use Inline Template File (Base64)` boolean toggle has been replaced by a `Template Source` selector with three options:
  - **Template ID** *(default)*: Use a stored Carbone template — same as before
  - **File** *(new)*: Connect any node that outputs a binary file directly — no manual base64 encoding needed
  - **Base64 String**: Provide an inline base64 string — same as the old `true` toggle

  **Migration:** select "Base64 String" to restore the previous behavior. Select "File" to remove the manual encoding step from your workflows.

  ### 1.3.0

  **New: Convert Document resource**
  - **Convert HTML to PDF**: convert from URL, file, Carbone template, or raw HTML using Chromium
  - **Convert Office to PDF**: convert DOCX/XLSX/PPTX/ODT/ODS/ODP/ODG from file or Carbone template, with LibreOffice or OnlyOffice engine choice

  **New: Template operations**
  - **Update Template** (`PATCH /template/{id}`): update metadata without re-uploading the file
  - **List Categories** (`GET /templates/categories`) and **List Tags** (`GET /templates/tags`)
  - **Category** and **Tags** fields (Upload and Update) are now dynamic dropdowns populated live from the API
  - **Add Version To** (Upload) is now a standalone resource picker supporting "From List" and manual ID input
  - Added `category`, `tags`, and `expireAt` options to Upload Template
  - Added `origin` filter to List Templates (API vs Studio)
  - **Delete Template**: now accepts both template IDs and version IDs
  - **List Templates**: added dynamic Category dropdown
  - List response: `expireAt` returned as ISO string; `origin` returned as `"API"` or `"Studio"`

  **New: Render Document options**
  - **Webhook URL**: enable asynchronous generation (up to 5 min) — Carbone POSTs a Render ID to your URL when ready
  - **Return Render ID**: replaces the previous "Download" toggle with clearer semantics — file downloaded by default, enable to get a Render ID instead
  - **Converter** is now a standalone field shown only when "Convert To" is set to PDF
  - Added RTF, XLS, GIF, TIFF to the "Convert To" dropdown
  - Added "Same as Template" as the default option in "Convert To" — no conversion unless explicitly selected
  - Added `converter`, `batchSplitBy`, and `batchOutput` options

  **UX improvements**
  - Renamed "Use Base64 Template On The Fly" → "Use Inline Template File (Base64)"
  - Renamed "Report Name" → "Document Name"
  - Renamed "Get Document" → "Download Document"
  - Improved descriptions for all Render Document fields
  - All binary outputs now use the standard `data` key (`$binary.data`)

  **Other**
  - Template picker search now queries the API server-side instead of filtering locally
  - Template picker resolves to the constant template ID instead of the version ID
  - Fixed `POST /template` FormData order: `template` file field sent last per API spec
  - Updated `@n8n/node-cli` to `0.22.0`, enabled cloud support (`strict` mode)

  ### 1.2.1
  - Removed the empty "Additional Options" collection from all action.

  ### 1.2.0
  - Removed all `requestWithAuthentication` calls with `httpRequestWithAuthentication`.
  - Using now n8n-node-cli to lint/build/release

  ### 1.1.0
  - Removed redundant routing configurations from operation descriptions.
  - Replaced all `helpers.request()` calls with `this.helpers.httpRequestWithAuthentication()`.
  - Translate French error messages to English.


  ### 1.0.0
  - Initial release.
  - Template management operations: List, Upload, Delete.
  - Document rendering operations: Generate, Get.
  - Advanced options for document generation (localization, currency, etc.).
  - Support for both template ID and base64 template approaches.

ai_documentation_summary:
  {"purpose":"The Carbone node automates document generation and conversion by merging JSON data into templates using Carbone.io's API, supporting multiple file formats including PDF, DOCX, XLSX, and more.","capabilities":["Generate documents by merging JSON data into templates","Convert HTML to PDF using Chromium","Convert Office files (DOCX, XLSX, PPTX, ODT) to PDF using LibreOffice or OnlyOffice","Upload, update, delete, list, search, and download templates","Organize templates with categories and tags","Trigger asynchronous document generation via webhooks","Batch generate documents from JSON arrays as ZIP or merged PDF","Support both Carbone API v4 and v5","Return Render IDs for large documents instead of immediate files"],"authentication":"API key required (implied by 'Interact with Carbone.io API' and standard n8n community node patterns; specific field not explicitly named in provided text but standard for this type of node)","commonUseCases":["Generate invoices, quotes, and receipts from billing data","Create contracts and agreements with customer details","Produce financial, sales, and operational reports","Issue certificates of completion","Generate shipping labels and packing slips"],"limitations":["Asynchronous generation has a maximum duration of 5 minutes","Render IDs expire after one hour and can only be downloaded once","Large or complex documents require asynchronous processing via webhook","Binary files must be base64-encoded or uploaded as files"],"relatedNodes":["n8n HTTP Request","n8n Binary File","n8n Webhook","n8n File"]}


node_type: @heygenofficial/n8n-nodes-heygen-official.heygenTrigger
package_name: @heygenofficial/n8n-nodes-heygen-official
display_name: HeyGen Trigger
description: Starts a workflow when HeyGen sends a webhook event
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: demianheygen
author_github_url: https://github.com/heygen-com/n8n-integration-heygen-node.git
npm_package_name: @heygenofficial/n8n-nodes-heygen-official
npm_version: 0.1.8
community_fetched_at: 2026-03-25T21:19:40.978Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Local development

  If n8n-nodes-heygen-official in some folder "/home/username/projects/n8n-heygen-node" after changing code of this node, we need:

  1. In this folder run `npm run build && npm link`
  2. Go to global n8n folder and sub-folder "custom" (for example: ~/.n8n/custom) and from this folder run `npm link n8n-nodes-heygen-official` where "n8n-nodes-heygen-official" is name of this package (in package.json)
  3. Run `n8n start` to start local n8n server
  4. Now we should be able to find HeyGen node
  5. Link operations need to be done only one time, then after changes in code, just run `npm run build` and then `n8n start` to see changes

  # Lint

  6. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.

  Important: Some of lint errors do not follow logic, so we can skip them.

  # Publish

  7. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

  ## More information

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

ai_documentation_summary:
  {"purpose":"This n8n node listens for HeyGen webhook events and automatically triggers a workflow when HeyGen sends them.","capabilities":["Starts workflows on HeyGen webhook events","Supports HeyGen official API integration"],"authentication":"API key required (implied by HeyGen integration)","commonUseCases":["Automate video generation workflows based on HeyGen events","Trigger downstream tasks when HeyGen completes a video task"],"limitations":["Requires local development setup with npm linking for custom code changes","No detailed error handling or retry logic mentioned in README"],"relatedNodes":["HeyGen Official node","Webhook node","Workflow trigger node"]}


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

updated_at: 2026-03-25 21:19:40
author_name: mjfk
author_github_url: https://github.com/moorcheh-ai/
npm_package_name: n8n-nodes-moorcheh
npm_version: 0.1.3
community_fetched_at: 2026-03-25T21:19:40.978Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "namespace",
      "options": [
        {
          "name": "Answer",
          "value": "answer"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Namespace",
          "value": "namespace"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Vector",
          "value": "vector"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new namespace",
          "description": "Create a new namespace"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all namespaces",
          "description": "List all namespaces"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a namespace",
          "description": "Delete a namespace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "namespace"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload documents to a namespace",
          "description": "Upload documents to a namespace"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get documents from a namespace",
          "description": "Get documents from a namespace"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete documents from a namespace",
          "description": "Delete documents from a namespace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload vectors to a namespace",
          "description": "Upload vectors to a namespace"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete vectors from a namespace",
          "description": "Delete vectors from a namespace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vector"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search across namespaces",
          "description": "Search across namespaces"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate AI answer based on namespace content",
          "description": "Generate AI answer based on namespace content"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"create","name":"Create","description":"Create a new namespace","resource":"namespace"},{"operation":"list","name":"List","description":"List all namespaces","resource":"namespace"},{"operation":"delete","name":"Delete","description":"Delete a namespace","resource":"namespace"},{"operation":"upload","name":"Upload","description":"Upload documents to a namespace","resource":"document"},{"operation":"get","name":"Get","description":"Get documents from a namespace","resource":"document"},{"operation":"delete","name":"Delete","description":"Delete documents from a namespace","resource":"document"},{"operation":"upload","name":"Upload","description":"Upload vectors to a namespace","resource":"vector"},{"operation":"delete","name":"Delete","description":"Delete vectors from a namespace","resource":"vector"},{"operation":"search","name":"Search","description":"Search across namespaces","resource":"search"},{"operation":"generate","name":"Generate","description":"Generate AI answer based on namespace content","resource":"answer"}]

npm_readme:
  # n8n-nodes-moorcheh

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

  This is an [n8n](https://n8n.io/) Official node interfacing with [Moorcheh](https://moorcheh.ai).

  Moorcheh is a powerful vector store and AI platform that enables semantic search, document storage, and AI-powered question answering across your data.

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

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

  ## Installation

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

  ## Operations

  ### Namespace Operations
  - **[Create](https://console.moorcheh.ai/docs/create-namespace/api-call)**: Create a new namespace for storing documents or vectors
  - **[List](https://console.moorcheh.ai/docs/list-namespaces/api-call)**: List all available namespaces
  - **[Delete](https://console.moorcheh.ai/docs/delete-namespace/api-call)**: Delete a namespace and all its contents

  ### Document Operations
  - **[Upload](https://console.moorcheh.ai/docs/upload-text-data/api-call)**: Upload documents to a namespace for semantic search
  - **[Get](https://console.moorcheh.ai/docs/get-documents/api-call)**: Retrieve specific documents by their IDs
  - **[Delete](https://console.moorcheh.ai/docs/delete-data/api-call)**: Delete documents from a namespace

  ### Vector Operations
  - **[Upload](https://console.moorcheh.ai/docs/upload-vector-data/api-call)**: Upload vector embeddings to a namespace
  - **[Delete](https://console.moorcheh.ai/docs/delete-data/api-call)**: Delete vectors from a namespace

  ### Search Operations
  - **[Search](https://console.moorcheh.ai/docs/search/api-call)**: Perform semantic search across namespaces using text queries or vector embeddings

  ### Answer Operations
  - **[Generate](https://console.moorcheh.ai/docs/gen-ai-answer/api-call)**: Generate AI-powered answers based on namespace content using various LLM models

  ## Credentials

  To use this node, you need a Moorcheh API key:

  1. Sign up for a Moorcheh account at [console.moorcheh.ai](https://console.moorcheh.ai)
  2. Navigate to your API settings
  3. Generate an API key
  4. Use the API key in the Moorcheh credentials in n8n

  ## Compatibility

  - **n8n version**: 1.0.0 or later
  - **Node.js version**: 20.15 or later

  ## Usage

  ### Creating a Namespace
  1. Select the "Namespace" resource
  2. Choose "Create" operation
  3. Enter a namespace name
  4. Select the type (Text or Vector)
  5. For vector namespaces, specify the vector dimension

  ### Uploading Documents
  1. Select the "Document" resource
  2. Choose "Upload" operation
  3. Enter the namespace name
  4. Add documents with ID, text content, and optional metadata

  ### Searching Content
  1. Select the "Search" resource
  2. Choose "Search" operation
  3. Enter your query (text or comma-separated vector values)
  4. Specify target namespaces
  5. Set top_k and threshold parameters

  ### Generating AI Answers
  1. Select the "Answer" resource
  2. Choose "Generate" operation
  3. Enter the namespace name
  4. Provide your question
  5. Select an AI model and configure parameters

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Moorcheh API Documentation](https://console.moorcheh.ai/docs)
  * [Moorcheh Console](https://console.moorcheh.ai)

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the Moorcheh Vector Store API to manage namespaces, upload documents and vectors, perform semantic search, and generate AI-powered answers.","capabilities":["Create namespaces for storing documents or vectors","List all available namespaces","Delete namespaces and their contents","Upload text documents to namespaces","Retrieve specific documents by ID","Delete documents from namespaces","Upload vector embeddings to namespaces","Delete vectors from namespaces","Perform semantic search using text queries or vector embeddings","Generate AI-powered answers using various LLM models"],"authentication":"API key required","commonUseCases":["Building semantic search features for enterprise knowledge bases","Enabling AI-powered question and answer systems over custom data","Managing vector embeddings for machine learning pipelines","Creating document storage solutions with semantic indexing"],"limitations":["Requires a paid Moorcheh account with an API key","Requires n8n version 1.0.0 or later and Node.js 20.15 or later","Community node status may imply less official support than core nodes"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.function"]}


node_type: n8n-nodes-yourtextguru.yourtextGuru
package_name: n8n-nodes-yourtextguru
display_name: Yourtext.Guru
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: web.waboo
author_github_url: https://github.com/webwaboo/n8n-yourtextguru-api.git
npm_package_name: n8n-nodes-yourtextguru
npm_version: 0.3.0
community_fetched_at: 2026-03-25T21:19:40.979Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Yourtext.Guru is an advanced SEO content optimization tool designed to help writers and marketers create high-performing content.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Group",
          "value": "group"
        },
        {
          "name": "Guide",
          "value": "guide"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "SEO Txl",
          "value": "seotxl"
        },
        {
          "name": "Status",
          "value": "status"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listProjects",
      "options": [
        {
          "name": "Create",
          "value": "createProject",
          "action": "Create project",
          "routing": {
            "request": {
              "url": "=/projects",
              "body": {
                "host": "={{$parameter.host}}",
                "name": "={{$parameter.nameProject}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new project"
        },
        {
          "name": "Delete",
          "value": "deleteProject",
          "action": "Delete project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete one project and all guides inside"
        },
        {
          "name": "Get",
          "value": "getProject",
          "action": "Get project information",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "method": "GET"
            }
          },
          "description": "Get a project's information"
        },
        {
          "name": "Get Many",
          "value": "listProjects",
          "action": "List all projects",
          "routing": {
            "request": {
              "url": "/projects",
              "method": "GET"
            }
          },
          "description": "List all the organization's projects"
        },
        {
          "name": "Update",
          "value": "updateProject",
          "action": "Update project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "body": {
                "host": "={{$parameter.host}}",
                "name": "={{$parameter.nameProject}}"
              },
              "method": "POST"
            }
          },
          "description": "Delete one project and all guides inside"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listGuides",
      "options": [
        {
          "name": "Analyze Text",
          "value": "analyzeText",
          "action": "Analyze text",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/brief/analyze",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Analyze a text to see if it meets the brief"
        },
        {
          "name": "Check",
          "value": "check",
          "action": "Check guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/check",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Analyze a given text against the semantic and SEO recommendations of a specific guide"
        },
        {
          "name": "Create Guide",
          "value": "createGuide",
          "action": "Create guide",
          "routing": {
            "request": {
              "qs": {
                "lang": "={{$parameter.lang}}",
                "type": "={{$parameter.additionalFields.guideType}}",
                "query": "={{$parameter.query}}",
                "groupId": "={{$parameter.additionalFields.groupIdOptional}}",
                "projectId": "={{$parameter.additionalFields.projectIdOptional}}"
              },
              "url": "=/guides",
              "method": "POST"
            }
          },
          "description": "Create a new guide"
        },
        {
          "name": "Create Brief",
          "value": "createBrief",
          "action": "Create guide brief",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/brief",
              "method": "POST"
            }
          },
          "description": "Create a new brief guide"
        },
        {
          "name": "Delete",
          "value": "deleteGuide",
          "action": "Delete guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a guide"
        },
        {
          "name": "Get",
          "value": "getGuide",
          "action": "Get guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/{{$parameter.guideTypeSearch}}",
              "method": "GET"
            }
          },
          "description": "Get a specific guide"
        },
        {
          "name": "Get Many",
          "value": "listGuides",
          "action": "List all guides",
          "routing": {
            "request": {
              "qs": {
                "lang": "={{$parameter.additionalFields.langOptionnal}}",
                "lastId": "={{$parameter.lastId}}",
                "status": "={{$parameter.additionalFields.status}}",
                "apiOnly": "={{$parameter.additionalFields.apiOnly}}",
                "groupId": "={{$parameter.additionalFields.groupIdOptional}}",
                "projectId": "={{$parameter.projectIdOptional}}"
              },
              "url": "=/guides",
              "method": "GET"
            }
          },
          "description": "List all the organization's guide"
        },
        {
          "name": "Get Brief Analysis",
          "value": "getGuideBriefAnalysis",
          "action": "Get brief analysis",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/brief/analyze/{{$parameter.analyzeId}}",
              "method": "GET"
            }
          },
          "description": "Get the last briefs analysis"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "guide"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getStatus",
      "options": [
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get status",
          "routing": {
            "request": {
              "url": "=/status",
              "method": "GET"
            }
          },
          "description": "Get the current status of the organization's account, including available tokens and guides in progress"
        },
        {
          "name": "Get Consumption",
          "value": "getTokenConsumption",
          "action": "Get consumption",
          "routing": {
            "request": {
              "url": "=/consumption/openai",
              "method": "GET"
            }
          },
          "description": "Get Token Consumption"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "status"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllGroupsinProject",
      "options": [
        {
          "name": "Add List in Group",
          "value": "addListinGroup",
          "action": "Add list of guide in group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/guides/add",
              "body": {
                "guideId": "={{$parameter.guideIdCollection}}"
              },
              "method": "POST"
            }
          },
          "description": "Add a list of guide in a group"
        },
        {
          "name": "Create",
          "value": "createGroup",
          "action": "Create group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups",
              "body": {
                "name": "={{$parameter.nameGroup}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new group"
        },
        {
          "name": "Create Topical Mesh",
          "value": "createTopicalMesh",
          "action": "Create a topical mesh",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh",
              "method": "POST"
            }
          },
          "description": "Create a thematic mesh from all the guides in the group"
        },
        {
          "name": "List All Groups in a Project",
          "value": "getAllGroupsinProject",
          "action": "List all groups in a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups",
              "method": "GET"
            }
          },
          "description": "Get all groups in a project"
        },
        {
          "name": "Get Group Info",
          "value": "getGroupInfo",
          "action": "Get group info",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
              "method": "GET"
            }
          },
          "description": "Get info of a group"
        },
        {
          "name": "Get Topical Mesh",
          "value": "getTopicalMesh",
          "action": "Get topical mesh",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh",
              "method": "GET"
            }
          },
          "description": "Get a group topical mesh"
        },
        {
          "name": "Get Topical Mesh Paa",
          "value": "getTopicalMeshPaa",
          "action": "Get topical mesh paa",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh/paa",
              "method": "GET"
            }
          },
          "description": "Get a topical mesh paa"
        },
        {
          "name": "Get Topical Mesh Wordcloud",
          "value": "getTopicalMeshWordcloud",
          "action": "Get topical mesh wordcloud",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/topicalMesh/wordcloud",
              "method": "GET"
            }
          },
          "description": "Get a topical mesh wordcloud"
        },
        {
          "name": "Update",
          "value": "updateGroup",
          "action": "Update group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
              "body": {
                "name": "={{$parameter.nameGroup}}"
              },
              "method": "POST"
            }
          },
          "description": "Update a group"
        },
        {
          "name": "Delete Group",
          "value": "deleteGroup",
          "action": "Delete group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a whole group"
        },
        {
          "name": "Delete Guide",
          "value": "removeGuideinGroup",
          "action": "Delete guide from group",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}/groups/{{$parameter.groupId}}/guides/remove",
              "body": {
                "guideId": "={{$parameter.guideIdCollection}}"
              },
              "method": "POST"
            }
          },
          "description": "Remove a list of guide from group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateOutlineTextBasedonGuideWords",
      "options": [
        {
          "name": "Generate Outline Text Based on Guide Words",
          "value": "generateOutlineTextBasedonGuideWords",
          "action": "Generate outline text based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/outline",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Questions Based on Guide Words",
          "value": "generateQuestionsBasedonGuideWords",
          "action": "Generate questions based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/questions",
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Text Based on Guide Words",
          "value": "generateTextBasedonGuideWords",
          "action": "Generate text based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/auto",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Text From a Guide",
          "value": "generateTextfromGuide",
          "action": "Generate text from a guide",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/create",
              "body": {
                "text": "={{$parameter.text}}",
                "maxWords": "={{$parameter.maxWords}}",
                "temperature": "={{$parameter.temperature}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Rephrase Text Based on Guide Words",
          "value": "rephraseTextBasedonGuideWords",
          "action": "Rephrase text based on guide words",
          "routing": {
            "request": {
              "url": "=/guides/{{$parameter.guideId}}/seotxl/rephrase",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "seotxl"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"createProject","name":"Create","description":"Create a new project","resource":"project"},{"operation":"deleteProject","name":"Delete","description":"Delete one project and all guides inside","resource":"project"},{"operation":"getProject","name":"Get","description":"Get a project's information","resource":"project"},{"operation":"listProjects","name":"Get Many","description":"List all the organization's projects","resource":"project"},{"operation":"updateProject","name":"Update","description":"Delete one project and all guides inside","resource":"project"},{"operation":"analyzeText","name":"Analyze Text","description":"Analyze a text to see if it meets the brief","resource":"guide"},{"operation":"check","name":"Check","description":"Analyze a given text against the semantic and SEO recommendations of a specific guide","resource":"guide"},{"operation":"createGuide","name":"Create Guide","description":"Create a new guide","resource":"guide"},{"operation":"createBrief","name":"Create Brief","description":"Create a new brief guide","resource":"guide"},{"operation":"deleteGuide","name":"Delete","description":"Delete a guide","resource":"guide"},{"operation":"getGuide","name":"Get","description":"Get a specific guide","resource":"guide"},{"operation":"listGuides","name":"Get Many","description":"List all the organization's guide","resource":"guide"},{"operation":"getGuideBriefAnalysis","name":"Get Brief Analysis","description":"Get the last briefs analysis","resource":"guide"},{"operation":"getStatus","name":"Get Status","description":"Get the current status of the organization's account, including available tokens and guides in progress","resource":"status"},{"operation":"getTokenConsumption","name":"Get Consumption","description":"Get Token Consumption","resource":"status"},{"operation":"addListinGroup","name":"Add List in Group","description":"Add a list of guide in a group","resource":"group"},{"operation":"createGroup","name":"Create","description":"Create a new group","resource":"group"},{"operation":"createTopicalMesh","name":"Create Topical Mesh","description":"Create a thematic mesh from all the guides in the group","resource":"group"},{"operation":"getAllGroupsinProject","name":"List All Groups in a Project","description":"Get all groups in a project","resource":"group"},{"operation":"getGroupInfo","name":"Get Group Info","description":"Get info of a group","resource":"group"},{"operation":"getTopicalMesh","name":"Get Topical Mesh","description":"Get a group topical mesh","resource":"group"},{"operation":"getTopicalMeshPaa","name":"Get Topical Mesh Paa","description":"Get a topical mesh paa","resource":"group"},{"operation":"getTopicalMeshWordcloud","name":"Get Topical Mesh Wordcloud","description":"Get a topical mesh wordcloud","resource":"group"},{"operation":"updateGroup","name":"Update","description":"Update a group","resource":"group"},{"operation":"deleteGroup","name":"Delete Group","description":"Delete a whole group","resource":"group"},{"operation":"removeGuideinGroup","name":"Delete Guide","description":"Remove a list of guide from group","resource":"group"},{"operation":"generateOutlineTextBasedonGuideWords","name":"Generate Outline Text Based on Guide Words","resource":"seotxl"},{"operation":"generateQuestionsBasedonGuideWords","name":"Generate Questions Based on Guide Words","resource":"seotxl"},{"operation":"generateTextBasedonGuideWords","name":"Generate Text Based on Guide Words","resource":"seotxl"},{"operation":"generateTextfromGuide","name":"Generate Text From a Guide","resource":"seotxl"},{"operation":"rephraseTextBasedonGuideWords","name":"Rephrase Text Based on Guide Words","resource":"seotxl"}]

npm_readme:
  # n8n-nodes-yourtextguru

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

  This API enables developers to integrate SEO optimization tools into their applications, allowing for content analysis, keyword research, and more.

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

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

  Base URL : https://yourtext.guru/api/v2/

  1. Status Endpoints
  Endpoints for monitoring API availability and usage.
  ________________________________________
  GET /status
  Description:
  Check the current operational status of the API.
  Parameters:
  None
  ________________________________________
  GET /consumption/openai
  Description:
  Retrieve information about OpenAI-related usage and consumption.
  Parameters:
  •	lastId (integer) – Retrieve consumption entries after this ID (for pagination or incremental updates).

  2. Project Endpoints
  Endpoints for managing SEO projects, including creation, retrieval, and deletion.
  ________________________________________
  GET /projects
  Description:
  Retrieve a list of all projects associated with the authenticated user.
  Parameters:
  None
  ________________________________________
  POST /projects
  Description:
  Create a new project.
  Parameters:
  •	name (string) – Name of the project.
  •	host (string) – Associated domain or host (e.g., example.com).
  ________________________________________
  GET /projects/{projectId}
  Description:
  Retrieve detailed information about a specific project.
  Parameters:
  •	projectId (integer) – ID of the project to retrieve.
  ________________________________________
  POST /projects/{projectId}
  Description:
  Update the name or host of an existing project.
  Parameters:
  •	projectId (integer) – ID of the project to update.
  •	name (string) – New name for the project.
  •	host (string) – New host or domain for the project.
  ________________________________________
  DELETE /projects/{projectId}
  Description:
  Delete a specific project by its ID.
  Parameters:
  •	projectId (integer) – ID of the project to delete.

  3. Group Endpoints
  Endpoints for organizing guides into groups and generating topical meshes within a project.
  ________________________________________
  GET /projects/{projectId}/groups
  Description:
  Retrieve all groups within a specific project.
  Parameters:
  •	projectId (integer) – ID of the project.
  ________________________________________
  POST /projects/{projectId}/groups
  Description:
  Create a new group within a project.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	name (string) – Name of the new group.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}
  Description:
  Retrieve details of a specific group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}
  Description:
  Update the name of a specific group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  •	name (string) – New name for the group.
  ________________________________________
  DELETE /projects/{projectId}/groups/{groupId}
  Description:
  Delete a specific group from a project.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}/guides/add
  Description:
  Add a list of guide to a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  •	guideId (integer) – ID of the guide to add.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}/guides/remove
  Description:
  Remove guides from a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  •	guideId (integer) – ID of the guide to remove.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}/topicalMesh
  Description:
  Retrieve the topical mesh associated with a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  POST /projects/{projectId}/groups/{groupId}/topicalMesh
  Description:
  Generate a topical mesh for a group.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}/topicalMesh/wordcloud
  Description:
  Retrieve a word cloud visualization of the group's topical mesh.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.
  ________________________________________
  GET /projects/{projectId}/groups/{groupId}/topicalMesh/paa
  Description:
  Retrieve "People Also Ask" questions related to the group's topical mesh.
  Parameters:
  •	projectId (integer) – ID of the project.
  •	groupId (integer) – ID of the group.

  4. Guide Endpoints
  Endpoints related to the creation, retrieval, and analysis of SEO guides.
  ________________________________________
  GET /guides
  Description:
  Retrieve a list of guides, optionally filtered by project, group, or other attributes.
  Parameters:
  •	projectId (integer) – ID of the associated project.
  •	lastId (integer) – Retrieve guides after this ID (for pagination).
  •	lang (string) – Language code (e.g., " en_GB", " fr_FR").
  •	apiOnly (integer) – If set to 1, only API-generated guides are returned.
  •	groupId (integer) – ID of the associated group.
  •	status (string) – Filter by guide status.
  ________________________________________
  POST /guides
  Description:
  Create a new SEO guide based on a query (keyword or phrase).
  Parameters:
  •	query (string) – Target keyword or phrase.
  •	lang (string) – Language code for the guide.
  •	projectId (integer) – ID of the project to associate the guide with.
  •	type (string) – Type of guide (, "google" or "bing").
  •	groupId (integer) – group ID to associate the guide with.
  ________________________________________
  GET /guides/{guideId}
  Description:
  Retrieve detailed information about a specific guide.
  Parameters:
  •	guideId (integer) – ID of the guide to retrieve.
  ________________________________________
  DELETE /guides/{guideId}
  Description:
  Delete a specific guide by its ID.
  Parameters:
  •	guideId (integer) – ID of the guide to delete.
  ________________________________________
  GET /guides/{guideId}/paa
  Description:
  Retrieve "People Also Ask" questions related to the guide's query.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  GET /guides/{guideId}/related
  Description:
  Retrieve keywords and topics related to the guide's query.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/check
  Description:
  Check the SEO quality of a given text against the guide.
  Parameters:
  •	guideId (integer) – ID of the guide.
  •	text (string) – The content to analyze.
  ________________________________________
  GET /guides/{guideId}/serp
  Description:
  Retrieve SERP (Search Engine Results Page) data related to the guide’s keyword.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  GET /guides/{guideId}/brief
  Description:
  Get the current brief associated with the guide.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/brief
  Description:
  Generate or update the brief for the guide.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  GET /guides/{guideId}/brief/analyze
  Description:
  Retrieve the result of the latest brief analysis.
  Parameters:
  •	guideId (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/brief/analyze
  Description:
  Submit a brief for SEO analysis.
  Parameters:
  •	guideId (integer) – ID of the guide.
  •	requestBody (string) – Text content to analyze.
  ________________________________________
  GET /guides/{guideId}/brief/analyze/{analyzeId}
  Description:
  Retrieve a specific analysis result by its ID.
  Parameters:
  •	guideId (integer) – ID of the guide.
  •	analyzeId (integer) – ID of the analysis to retrieve.

  5. Seo Txl Endpoints
  Endpoints for generating and manipulating SEO-optimized text (TXL) based on guide data.
  ________________________________________
  POST /guides/{guideId}/seotxl/auto
  Description:
  Automatically generate SEO content based on the guide and input text.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – Input text to base the generation on.
  ________________________________________
  POST /guides/{guideId}/seotxl/outline
  Description:
  Generate a structured outline for SEO content.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – Input topic or content to guide the outline.
  ________________________________________
  POST /guides/{guideId}/seotxl/questions
  Description:
  Generate a list of relevant questions based on the guide’s topic.
  Parameters:
  •	guide (integer) – ID of the guide.
  ________________________________________
  POST /guides/{guideId}/seotxl/rephrase
  Description:
  Rephrase a given text to improve clarity or SEO performance.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – The text to rephrase.
  ________________________________________
  POST /guides/{guideId}/seotxl/create
  Description:
  Generate custom SEO text with configurable temperature and word limit.
  Parameters:
  •	guide (integer) – ID of the guide.
  •	text (string) – Input prompt or content base.
  •	temperature (integer) – Controls creativity (higher = more creative).
  •	maxWords (integer) – Maximum number of words in the output.


  ## Credentials

  To get your API key, please refer to [this page](https://yourtext.guru/en/pricing) for pricing and details.
  All API requests require authentication. You must include your API key in the request headers:

  ```
  Authorization: Bearer YOUR_API_KEY
  ```

  Replace `YOUR_API_KEY` with your actual API key.

  ## Compatibility

  Tested on n8n Version: 1.100.1

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * For more detailed information, refer to the [official API documentation](https://yourtext.guru/api/v2/documentation)
    If you encounter issues or have questions, please contact the YourText.Guru support team through their support portal.


  ## Version history

  version: 0.1.0

ai_documentation_summary:
  {"purpose":"This n8n community node integrates YourTextGuru, an SEO content optimization tool, to enable content analysis, keyword research, and project management within n8n workflows.","capabilities":["Monitor API status and OpenAI usage consumption","Create, retrieve, update, and delete SEO projects","Organize content into groups and manage guide associations","Generate and retrieve topical meshes for content groups","Create word cloud visualizations of topical data","Retrieve 'People Also Ask' questions for SEO analysis","Manage SEO guides with filtering by project, group, language, and API generation status"],"authentication":"API Key (implied by 'authenticated user' references in endpoints)","commonUseCases":["Automated SEO content planning and organization","Keyword research and topical authority mapping","Content gap analysis using People Also Ask data","Automated creation of SEO guide structures"],"limitations":["Authentication method not explicitly documented in the provided text","Full API documentation is truncated in the source material"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-http.response"]}


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

updated_at: 2026-03-25 21:19:40
author_name: paugc
author_github_url: https://github.com/getlatedev/
npm_package_name: n8n-nodes-late
npm_version: 0.4.3
community_fetched_at: 2026-03-25T21:19:40.980Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Schedule and manage social media posts across multiple platforms with Zernio - supporting Twitter/X, Instagram, Facebook, LinkedIn, TikTok, YouTube, Threads, Bluesky, Pinterest, Reddit, Telegram, Google Business, and Snapchat

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "profiles",
      "options": [
        {
          "name": "Profiles",
          "value": "profiles",
          "description": "Organize your social media accounts into profiles for managing multiple brands, clients, or personal accounts separately"
        },
        {
          "name": "Posts",
          "value": "posts",
          "description": "Create, schedule, and manage social media posts across multiple platforms with advanced features like threads, stories, and platform-specific settings"
        },
        {
          "name": "Media",
          "value": "media",
          "description": "Upload images and videos up to 5GB for use in your social media posts with automatic optimization"
        },
        {
          "name": "Social Accounts",
          "value": "accounts",
          "description": "Manage connected social media accounts, view their status, and disconnect accounts when needed"
        },
        {
          "name": "Connect Platform",
          "value": "connect",
          "description": "Initiate OAuth flows to connect new social media platforms (Twitter/X, Instagram, Facebook, LinkedIn, TikTok, YouTube, Threads)"
        },
        {
          "name": "Usage Statistics",
          "value": "usage",
          "description": "Monitor your current usage against plan limits including uploads, profiles, and billing information"
        },
        {
          "name": "Facebook Management",
          "value": "facebook",
          "description": "Manage Facebook pages, select which page to post to, and handle Facebook-specific settings"
        },
        {
          "name": "LinkedIn Management",
          "value": "linkedin",
          "description": "Switch between personal and company posting, manage LinkedIn organization settings"
        },
        {
          "name": "Clone Connection",
          "value": "clone",
          "description": "Reuse OAuth connections across multiple profiles while targeting different pages or organizations"
        },
        {
          "name": "Webhooks",
          "value": "webhooks",
          "description": "Configure webhook notifications for post events, account changes, and messages"
        },
        {
          "name": "Queue",
          "value": "queue",
          "description": "Manage queue slots for automated posting schedules across your accounts"
        },
        {
          "name": "Account Groups",
          "value": "accountGroups",
          "description": "Create and manage groups of accounts for bulk operations and organized posting"
        },
        {
          "name": "Analytics",
          "value": "analytics",
          "description": "View post performance analytics and engagement metrics across platforms"
        },
        {
          "name": "Bluesky Management",
          "value": "bluesky",
          "description": "Connect and manage Bluesky accounts using app passwords"
        },
        {
          "name": "Pinterest Management",
          "value": "pinterest",
          "description": "Manage Pinterest boards and select which board to post to"
        },
        {
          "name": "Reddit Management",
          "value": "reddit",
          "description": "Manage saved subreddits and search for Reddit communities"
        },
        {
          "name": "Telegram Management",
          "value": "telegram",
          "description": "Connect and manage Telegram channels for posting"
        },
        {
          "name": "Google Business Management",
          "value": "googlebusiness",
          "description": "Manage Google Business locations and respond to reviews"
        },
        {
          "name": "Snapchat Management",
          "value": "snapchat",
          "description": "Connect and manage Snapchat profiles for posting"
        },
        {
          "name": "Invites",
          "value": "invites",
          "description": "Create invite tokens to grant team members access to profiles"
        },
        {
          "name": "Logs",
          "value": "logs",
          "description": "View publishing logs with detailed information about each publishing attempt"
        },
        {
          "name": "API Keys",
          "value": "apiKeys",
          "description": "Manage API keys for programmatic access to the Late API"
        },
        {
          "name": "Users",
          "value": "users",
          "description": "View users and team members with access to your account"
        },
        {
          "name": "Tools",
          "value": "tools",
          "description": "Manage tools"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List profiles",
          "routing": {
            "request": {
              "qs": {
                "includeOverLimit": "={{ $parameter.includeOverLimit || false }}"
              },
              "url": "/v1/profiles",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get profile",
          "routing": {
            "request": {
              "url": "=/v1/profiles/{{ $parameter.profileId }}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create profile",
          "routing": {
            "request": {
              "url": "/v1/profiles",
              "body": {
                "name": "={{ $parameter.name }}",
                "color": "={{ $parameter.color || '' }}",
                "description": "={{ $parameter.description || '' }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update profile",
          "routing": {
            "request": {
              "url": "=/v1/profiles/{{ $parameter.profileId }}",
              "body": {
                "name": "={{ $parameter.name || undefined }}",
                "color": "={{ $parameter.color || undefined }}",
                "isDefault": "={{ $parameter.isDefault ?? undefined }}",
                "description": "={{ $parameter.description || undefined }}"
              },
              "method": "PUT"
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete profile",
          "routing": {
            "request": {
              "url": "=/v1/profiles/{{ $parameter.profileId }}",
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profiles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List posts",
          "routing": {
            "request": {
              "qs": {
                "page": "={{ $parameter.page || 1 }}",
                "limit": "={{ $parameter.limit || 10 }}",
                "dateTo": "={{ $parameter.dateTo || undefined }}",
                "search": "={{ $parameter.search || undefined }}",
                "sortBy": "={{ $parameter.sortBy || undefined }}",
                "status": "={{ $parameter.status || undefined }}",
                "dateFrom": "={{ $parameter.dateFrom || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}",
                "createdBy": "={{ $parameter.createdBy || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}",
                "includeHidden": "={{ $parameter.includeHidden ?? undefined }}"
              },
              "url": "/v1/posts",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get post",
          "routing": {
            "request": {
              "url": "=/v1/posts/{{ $parameter.postId }}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create post",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/v1/posts",
              "method": "POST",
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update post",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/v1/posts/{{ $parameter.postId }}",
              "method": "PUT",
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete post",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/v1/posts/{{ $parameter.postId }}",
              "method": "DELETE",
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          }
        },
        {
          "name": "Retry",
          "value": "retry",
          "action": "Retry failed post",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/v1/posts/{{ $parameter.postId }}/retry",
              "method": "POST",
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          }
        },
        {
          "name": "Unpublish",
          "value": "unpublish",
          "action": "Unpublish post",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/v1/posts/{{ $parameter.postId }}/unpublish",
              "body": {
                "platform": "={{ $parameter.unpublishPlatform }}"
              },
              "method": "POST",
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          }
        },
        {
          "name": "Bulk Upload",
          "value": "bulkUpload",
          "action": "Bulk upload posts from CSV",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "qs": {
                "dryRun": "={{ $parameter.dryRun || false }}"
              },
              "url": "/v1/posts/bulk-upload",
              "body": {
                "file": "={{ { value: $parameter.csvFile, options: { filename: 'bulk-upload.csv', contentType: 'text/csv' } } }}"
              },
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              },
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          }
        },
        {
          "name": "Get Logs",
          "value": "logs",
          "action": "Get post publishing logs",
          "routing": {
            "request": {
              "url": "=/posts/{{ $parameter.postId }}/logs",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "posts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload media",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/media",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              },
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          }
        },
        {
          "name": "Get Presigned URL",
          "value": "presign",
          "action": "Get presigned URL for direct upload",
          "routing": {
            "request": {
              "url": "/media/presign",
              "body": {
                "size": "={{ $parameter.size }}",
                "filename": "={{ $parameter.filename }}",
                "contentType": "={{ $parameter.contentType }}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "media"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List social accounts",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/accounts",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get account details",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update account",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}",
              "body": {
                "isActive": "={{ $parameter.isActive }}",
                "displayName": "={{ $parameter.displayName || undefined }}"
              },
              "method": "PUT"
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Disconnect account",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get Health",
          "value": "health",
          "action": "Check account health",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/health",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get All Health",
          "value": "allHealth",
          "action": "Check all accounts health",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/accounts/health",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Follower Stats",
          "value": "followerStats",
          "action": "Get follower statistics",
          "routing": {
            "request": {
              "qs": {
                "accountId": "={{ $parameter.accountId || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/accounts/follower-stats",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accounts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getConnectUrl",
      "options": [
        {
          "name": "Get Connect URL",
          "value": "getConnectUrl",
          "action": "Get OAuth connect URL",
          "routing": {
            "request": {
              "qs": {
                "headless": "={{ $parameter.headless || undefined }}",
                "profileId": "={{ $parameter.profileId }}",
                "redirect_url": "={{ $parameter.redirectUrl || undefined }}"
              },
              "url": "=/connect/{{ $parameter.platform }}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Complete OAuth Callback",
          "value": "handleOAuthCallback",
          "action": "Complete OAuth callback",
          "routing": {
            "request": {
              "url": "=/connect/{{ $parameter.platform }}",
              "body": {
                "code": "={{ $parameter.code }}",
                "state": "={{ $parameter.state }}",
                "profileId": "={{ $parameter.profileId }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "List Facebook Pages (Headless)",
          "value": "listFacebookPages",
          "action": "List Facebook pages",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/facebook/select-page",
              "method": "GET"
            }
          }
        },
        {
          "name": "Select Facebook Page (Headless)",
          "value": "selectFacebookPage",
          "action": "Select Facebook page",
          "routing": {
            "request": {
              "url": "/connect/facebook/select-page",
              "body": {
                "pageId": "={{ $parameter.pageId }}",
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}",
                "userProfile": "={{ $parameter.userProfile || undefined }}",
                "redirect_url": "={{ $parameter.redirectUrl || undefined }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "List Google Business Locations (Headless)",
          "value": "listGoogleBusinessLocations",
          "action": "List GBP locations",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/googlebusiness/locations",
              "method": "GET"
            }
          }
        },
        {
          "name": "Select Google Business Location (Headless)",
          "value": "selectGoogleBusinessLocation",
          "action": "Select GBP location",
          "routing": {
            "request": {
              "url": "/connect/googlebusiness/select-location",
              "body": {
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}",
                "locationId": "={{ $parameter.locationId }}",
                "userProfile": "={{ $parameter.userProfile }}",
                "redirect_url": "={{ $parameter.redirectUrl || undefined }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Pending OAuth Data (Headless)",
          "value": "getPendingOAuthData",
          "action": "Get pending OAuth data",
          "routing": {
            "request": {
              "qs": {
                "token": "={{ $parameter.token }}"
              },
              "url": "/connect/pending-data",
              "method": "GET"
            }
          }
        },
        {
          "name": "List LinkedIn Organizations (Details)",
          "value": "listLinkedInOrganizations",
          "action": "List LinkedIn orgs",
          "routing": {
            "request": {
              "qs": {
                "orgIds": "={{ $parameter.orgIds }}",
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/linkedin/organizations",
              "method": "GET"
            }
          }
        },
        {
          "name": "Select LinkedIn Organization",
          "value": "selectLinkedInOrganization",
          "action": "Select LinkedIn org",
          "routing": {
            "request": {
              "url": "/connect/linkedin/select-organization",
              "body": {
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}",
                "accountType": "={{ $parameter.accountType }}",
                "userProfile": "={{ $parameter.userProfile }}",
                "redirect_url": "={{ $parameter.redirectUrl || undefined }}",
                "selectedOrganization": "={{ $parameter.selectedOrganization || undefined }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "List Pinterest Boards (Headless)",
          "value": "listPinterestBoardsForSelection",
          "action": "List Pinterest boards",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/pinterest/select-board",
              "method": "GET",
              "headers": {
                "X-Connect-Token": "={{ $parameter.xConnectToken || undefined }}"
              }
            }
          }
        },
        {
          "name": "Select Pinterest Board (Headless)",
          "value": "selectPinterestBoard",
          "action": "Select Pinterest board",
          "routing": {
            "request": {
              "url": "/connect/pinterest/select-board",
              "body": {
                "boardId": "={{ $parameter.boardId }}",
                "boardName": "={{ $parameter.boardName || undefined }}",
                "expiresIn": "={{ $parameter.expiresIn || undefined }}",
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}",
                "userProfile": "={{ $parameter.userProfile || undefined }}",
                "redirect_url": "={{ $parameter.redirectUrl || undefined }}",
                "refreshToken": "={{ $parameter.refreshToken || undefined }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "List Snapchat Profiles (Headless)",
          "value": "listSnapchatProfiles",
          "action": "List Snapchat profiles",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/snapchat/select-profile",
              "method": "GET",
              "headers": {
                "X-Connect-Token": "={{ $parameter.xConnectToken || undefined }}"
              }
            }
          }
        },
        {
          "name": "Select Snapchat Profile (Headless)",
          "value": "selectSnapchatProfile",
          "action": "Select Snapchat profile",
          "routing": {
            "request": {
              "url": "/connect/snapchat/select-profile",
              "body": {
                "expiresIn": "={{ $parameter.expiresIn || undefined }}",
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}",
                "userProfile": "={{ $parameter.userProfile }}",
                "redirect_url": "={{ $parameter.redirectUrl || undefined }}",
                "refreshToken": "={{ $parameter.refreshToken || undefined }}",
                "selectedPublicProfile": "={{ $parameter.selectedPublicProfile }}"
              },
              "method": "POST",
              "headers": {
                "X-Connect-Token": "={{ $parameter.xConnectToken || undefined }}"
              }
            }
          }
        },
        {
          "name": "Connect Bluesky via Credentials",
          "value": "connectBlueskyCredentials",
          "action": "Connect Bluesky account",
          "routing": {
            "request": {
              "url": "/connect/bluesky/credentials",
              "body": {
                "state": "={{ $parameter.state }}",
                "identifier": "={{ $parameter.identifier }}",
                "appPassword": "={{ $parameter.appPassword }}",
                "redirectUri": "={{ $parameter.redirectUri || undefined }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Connect WhatsApp via Credentials",
          "value": "connectWhatsAppCredentials",
          "action": "Connect WhatsApp via credentials",
          "routing": {
            "request": {
              "url": "/connect/whatsapp/credentials",
              "body": {
                "wabaId": "={{ $parameter.wabaId }}",
                "profileId": "={{ $parameter.profileId }}",
                "accessToken": "={{ $parameter.accessToken }}",
                "phoneNumberId": "={{ $parameter.phoneNumberId }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Telegram Code",
          "value": "getTelegramConnectStatus",
          "action": "Generate Telegram code",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId }}"
              },
              "url": "/connect/telegram",
              "method": "GET"
            }
          }
        },
        {
          "name": "Connect Telegram Directly",
          "value": "initiateTelegramConnect",
          "action": "Connect Telegram directly",
          "routing": {
            "request": {
              "url": "/connect/telegram",
              "body": {
                "chatId": "={{ $parameter.chatId }}",
                "profileId": "={{ $parameter.profileId }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Check Telegram Status",
          "value": "completeTelegramConnect",
          "action": "Check Telegram status",
          "routing": {
            "request": {
              "qs": {
                "code": "={{ $parameter.code }}"
              },
              "url": "/connect/telegram",
              "method": "PATCH"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "connect"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getStats",
      "options": [
        {
          "name": "Get Stats",
          "value": "getStats",
          "action": "Get usage statistics",
          "routing": {
            "request": {
              "url": "/v1/usage-stats",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Usage Stats",
          "value": "getUsageStats",
          "action": "Get plan and usage stats",
          "routing": {
            "request": {
              "url": "/v1/usage-stats",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "usage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listPages",
      "options": [
        {
          "name": "List Pages",
          "value": "listPages",
          "action": "List Facebook pages",
          "routing": {
            "request": {
              "qs": {
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/facebook/select-page",
              "method": "GET"
            }
          }
        },
        {
          "name": "Select Page",
          "value": "selectPage",
          "action": "Select Facebook page",
          "routing": {
            "request": {
              "url": "/connect/facebook/select-page",
              "body": {
                "pageId": "={{ $parameter.pageId }}",
                "profileId": "={{ $parameter.profileId }}",
                "tempToken": "={{ $parameter.tempToken }}",
                "userProfile": "={{ { id: $parameter.userProfileId || '', name: $parameter.userProfileName || '', email: $parameter.userProfileEmail || '', picture: $parameter.userProfilePicture || '', accessToken: $parameter.userProfileAccessToken || '' } }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "List Account Pages",
          "value": "listAccountPages",
          "action": "List Facebook pages for account",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/facebook-page",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Page",
          "value": "updatePage",
          "action": "Update Facebook page",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/facebook-page",
              "body": {
                "selectedPageId": "={{ $parameter.selectedPageId }}"
              },
              "method": "PUT"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "facebook"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "updateOrganization",
      "options": [
        {
          "name": "Update Organization",
          "value": "updateOrganization",
          "action": "Update LinkedIn organization",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/linkedin-organization",
              "body": {
                "accountType": "={{ $parameter.accountType }}",
                "selectedOrganization": "={{ { id: $parameter.organizationId || '', urn: $parameter.organizationUrn || '', name: $parameter.organizationName || '', logoUrl: $parameter.organizationLogoUrl || '', description: $parameter.organizationDescription || '' } }}"
              },
              "method": "PUT"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedin"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "cloneConnection",
      "options": [
        {
          "name": "Clone Connection",
          "value": "cloneConnection",
          "action": "Clone connection to profile",
          "routing": {
            "request": {
              "url": "=/profiles/{{ $parameter.profileId }}/clone-connection",
              "body": {
                "targetPageId": "={{ $parameter.targetPageId || undefined }}",
                "targetPageName": "={{ $parameter.targetPageName || undefined }}",
                "sourceAccountId": "={{ $parameter.sourceAccountId }}",
                "targetAccountType": "={{ $parameter.targetAccountType || undefined }}",
                "targetOrganizationId": "={{ $parameter.targetOrganizationId || undefined }}",
                "targetOrganizationUrn": "={{ $parameter.targetOrganizationUrn || undefined }}",
                "targetPageAccessToken": "={{ $parameter.targetPageAccessToken || undefined }}",
                "targetOrganizationName": "={{ $parameter.targetOrganizationName || undefined }}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clone"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Settings",
          "value": "get",
          "action": "Get webhook settings",
          "routing": {
            "request": {
              "url": "/webhooks/settings",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create Settings",
          "value": "create",
          "action": "Create webhook settings",
          "routing": {
            "request": {
              "url": "/webhooks/settings",
              "body": {
                "url": "={{ $parameter.url }}",
                "name": "={{ $parameter.name || undefined }}",
                "events": "={{ $parameter.events || undefined }}",
                "secret": "={{ $parameter.secret || undefined }}",
                "isActive": "={{ $parameter.isActive }}",
                "customHeaders": "={{ $parameter.customHeaders || undefined }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Update Settings",
          "value": "update",
          "action": "Update webhook settings",
          "routing": {
            "request": {
              "url": "/webhooks/settings",
              "body": {
                "_id": "={{ $parameter.webhookId }}",
                "url": "={{ $parameter.url || undefined }}",
                "name": "={{ $parameter.name || undefined }}",
                "events": "={{ $parameter.events || undefined }}",
                "secret": "={{ $parameter.secret || undefined }}",
                "isActive": "={{ $parameter.isActive }}",
                "customHeaders": "={{ $parameter.customHeaders || undefined }}"
              },
              "method": "PUT"
            }
          }
        },
        {
          "name": "Delete Settings",
          "value": "delete",
          "action": "Delete webhook settings",
          "routing": {
            "request": {
              "qs": {
                "id": "={{ $parameter.webhookId }}"
              },
              "url": "/webhooks/settings",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Test Webhook",
          "value": "test",
          "action": "Send test webhook",
          "routing": {
            "request": {
              "url": "/webhooks/test",
              "body": {
                "webhookId": "={{ $parameter.webhookId }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Logs",
          "value": "logs",
          "action": "Get webhook delivery logs",
          "routing": {
            "request": {
              "qs": {
                "event": "={{ $parameter.event || undefined }}",
                "limit": "={{ $parameter.limit || 50 }}",
                "status": "={{ $parameter.status || undefined }}",
                "webhookId": "={{ $parameter.webhookId || undefined }}"
              },
              "url": "/webhooks/logs",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List Slots",
          "value": "list",
          "action": "List queue slots",
          "routing": {
            "request": {
              "qs": {
                "all": "={{ $parameter.all ? 'true' : undefined }}",
                "queueId": "={{ $parameter.queueId || undefined }}",
                "profileId": "={{ $parameter.profileId }}"
              },
              "url": "/v1/queue/slots",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create Slot",
          "value": "create",
          "action": "Create queue slot",
          "routing": {
            "request": {
              "url": "/v1/queue/slots",
              "body": {
                "name": "={{ $parameter.name }}",
                "slots": "={{ $parameter.slots }}",
                "active": "={{ $parameter.active }}",
                "timezone": "={{ $parameter.timezone }}",
                "profileId": "={{ $parameter.profileId }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Update Slot",
          "value": "update",
          "action": "Update queue slot",
          "routing": {
            "request": {
              "url": "/v1/queue/slots",
              "body": {
                "name": "={{ $parameter.name || undefined }}",
                "slots": "={{ $parameter.slots }}",
                "active": "={{ $parameter.active }}",
                "queueId": "={{ $parameter.queueId || undefined }}",
                "timezone": "={{ $parameter.timezone }}",
                "profileId": "={{ $parameter.profileId }}",
                "setAsDefault": "={{ $parameter.setAsDefault }}",
                "reshuffleExisting": "={{ $parameter.reshuffleExisting }}"
              },
              "method": "PUT"
            }
          }
        },
        {
          "name": "Delete Slot",
          "value": "delete",
          "action": "Delete queue slot",
          "routing": {
            "request": {
              "qs": {
                "queueId": "={{ $parameter.queueId }}",
                "profileId": "={{ $parameter.profileId }}"
              },
              "url": "/v1/queue/slots",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Preview Queue",
          "value": "preview",
          "action": "Preview upcoming queue posts",
          "routing": {
            "request": {
              "qs": {
                "count": "={{ $parameter.count || 20 }}",
                "queueId": "={{ $parameter.queueId || undefined }}",
                "profileId": "={{ $parameter.profileId }}"
              },
              "url": "/v1/queue/preview",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Next Slot",
          "value": "nextSlot",
          "action": "Get next available queue slot",
          "routing": {
            "request": {
              "qs": {
                "queueId": "={{ $parameter.queueId || undefined }}",
                "profileId": "={{ $parameter.profileId }}"
              },
              "url": "/v1/queue/next-slot",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "queue"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List account groups",
          "routing": {
            "request": {
              "url": "/v1/account-groups",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create account group",
          "routing": {
            "request": {
              "url": "/v1/account-groups",
              "body": {
                "name": "={{ $parameter.name }}",
                "accountIds": "={{ $parameter.accountIds.split(',').map(s => s.trim()).filter(s => s) }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update account group",
          "routing": {
            "request": {
              "url": "=/v1/account-groups/{{ $parameter.groupId }}",
              "body": {
                "name": "={{ $parameter.name || undefined }}",
                "accountIds": "={{ $parameter.accountIds ? $parameter.accountIds.split(',').map(s => s.trim()).filter(s => s) : undefined }}"
              },
              "method": "PUT"
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete account group",
          "routing": {
            "request": {
              "url": "=/v1/account-groups/{{ $parameter.groupId }}",
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountGroups"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Analytics",
          "value": "get",
          "action": "Get post analytics",
          "routing": {
            "request": {
              "qs": {
                "page": "={{ $parameter.page || undefined }}",
                "limit": "={{ $parameter.limit || undefined }}",
                "order": "={{ $parameter.order || undefined }}",
                "postId": "={{ $parameter.postId || undefined }}",
                "sortBy": "={{ $parameter.sortBy || undefined }}",
                "source": "={{ $parameter.source || undefined }}",
                "toDate": "={{ $parameter.toDate || undefined }}",
                "fromDate": "={{ $parameter.fromDate || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}",
                "accountId": "={{ $parameter.accountId || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/analytics",
              "method": "GET"
            }
          }
        },
        {
          "name": "YouTube Daily Views",
          "value": "youtubeDailyViews",
          "action": "Get YouTube daily views",
          "routing": {
            "request": {
              "qs": {
                "endDate": "={{ $parameter.endDate || undefined }}",
                "videoId": "={{ $parameter.videoId }}",
                "accountId": "={{ $parameter.accountId }}",
                "startDate": "={{ $parameter.startDate || undefined }}"
              },
              "url": "/analytics/youtube/daily-views",
              "method": "GET"
            }
          }
        },
        {
          "name": "Instagram Account Insights",
          "value": "instagramAccountInsights",
          "action": "Get Instagram account-level insights",
          "routing": {
            "request": {
              "qs": {
                "since": "={{ $parameter.since || undefined }}",
                "until": "={{ $parameter.until || undefined }}",
                "metrics": "={{ $parameter.metrics || undefined }}",
                "accountId": "={{ $parameter.accountId }}",
                "breakdown": "={{ $parameter.breakdown || undefined }}",
                "metricType": "={{ $parameter.metricType || undefined }}"
              },
              "url": "/analytics/instagram/account-insights",
              "method": "GET"
            }
          }
        },
        {
          "name": "Instagram Demographics",
          "value": "instagramDemographics",
          "action": "Get Instagram audience demographics",
          "routing": {
            "request": {
              "qs": {
                "metric": "={{ $parameter.metric || undefined }}",
                "accountId": "={{ $parameter.accountId }}",
                "breakdown": "={{ $parameter.breakdown || undefined }}",
                "timeframe": "={{ $parameter.timeframe || undefined }}"
              },
              "url": "/analytics/instagram/demographics",
              "method": "GET"
            }
          }
        },
        {
          "name": "Daily Metrics",
          "value": "dailyMetrics",
          "action": "Get daily aggregated metrics",
          "routing": {
            "request": {
              "qs": {
                "source": "={{ $parameter.source || undefined }}",
                "toDate": "={{ $parameter.toDateTime || undefined }}",
                "fromDate": "={{ $parameter.fromDateTime || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}",
                "accountId": "={{ $parameter.accountId || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/analytics/daily-metrics",
              "method": "GET"
            }
          }
        },
        {
          "name": "Best Time to Post",
          "value": "bestTime",
          "action": "Get best times to post",
          "routing": {
            "request": {
              "qs": {
                "source": "={{ $parameter.source || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/analytics/best-time",
              "method": "GET"
            }
          }
        },
        {
          "name": "Content Decay",
          "value": "contentDecay",
          "action": "Get content performance decay",
          "routing": {
            "request": {
              "qs": {
                "source": "={{ $parameter.source || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/analytics/content-decay",
              "method": "GET"
            }
          }
        },
        {
          "name": "Posting Frequency",
          "value": "postingFrequency",
          "action": "Get posting frequency vs engagement",
          "routing": {
            "request": {
              "qs": {
                "source": "={{ $parameter.source || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}"
              },
              "url": "/analytics/posting-frequency",
              "method": "GET"
            }
          }
        },
        {
          "name": "Post Timeline",
          "value": "postTimeline",
          "action": "Get post analytics timeline",
          "routing": {
            "request": {
              "qs": {
                "postId": "={{ $parameter.postId }}",
                "toDate": "={{ $parameter.toDateTime || undefined }}",
                "fromDate": "={{ $parameter.fromDateTime || undefined }}"
              },
              "url": "/analytics/post-timeline",
              "method": "GET"
            }
          }
        },
        {
          "name": "Follower Stats",
          "value": "followerStats",
          "action": "Get follower stats",
          "routing": {
            "request": {
              "qs": {
                "toDate": "={{ $parameter.toDate || undefined }}",
                "fromDate": "={{ $parameter.fromDate || undefined }}",
                "profileId": "={{ $parameter.profileId || undefined }}",
                "accountIds": "={{ $parameter.accountIds || undefined }}",
                "granularity": "={{ $parameter.granularity || undefined }}"
              },
              "url": "/accounts/follower-stats",
              "method": "GET"
            }
          }
        },
        {
          "name": "LinkedIn Aggregate Analytics",
          "value": "linkedinAggregateAnalytics",
          "action": "Get LinkedIn aggregate stats",
          "routing": {
            "request": {
              "qs": {
                "endDate": "={{ $parameter.endDate || undefined }}",
                "metrics": "={{ $parameter.metrics || undefined }}",
                "startDate": "={{ $parameter.startDate || undefined }}",
                "aggregation": "={{ $parameter.aggregation || undefined }}"
              },
              "url": "=/accounts/{{ $parameter.accountIdPath }}/linkedin-aggregate-analytics",
              "method": "GET"
            }
          }
        },
        {
          "name": "LinkedIn Post Analytics",
          "value": "linkedinPostAnalytics",
          "action": "Get LinkedIn post stats",
          "routing": {
            "request": {
              "qs": {
                "urn": "={{ $parameter.urn }}"
              },
              "url": "=/accounts/{{ $parameter.accountIdPath }}/linkedin-post-analytics",
              "method": "GET"
            }
          }
        },
        {
          "name": "LinkedIn Post Reactions",
          "value": "linkedinPostReactions",
          "action": "Get LinkedIn post reactions",
          "routing": {
            "request": {
              "qs": {
                "urn": "={{ $parameter.urn }}",
                "limit": "={{ $parameter.limit || undefined }}",
                "cursor": "={{ $parameter.cursor || undefined }}"
              },
              "url": "=/accounts/{{ $parameter.accountIdPath }}/linkedin-post-reactions",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "analytics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "connect",
      "options": [
        {
          "name": "Connect with Credentials",
          "value": "connect",
          "action": "Connect Bluesky account with credentials",
          "routing": {
            "request": {
              "url": "/connect/bluesky/credentials",
              "body": {
                "handle": "={{ $parameter.handle }}",
                "profileId": "={{ $parameter.profileId }}",
                "appPassword": "={{ $parameter.appPassword }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Disconnect",
          "value": "disconnect",
          "action": "Disconnect Bluesky account",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}",
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bluesky"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listBoards",
      "options": [
        {
          "name": "List Boards",
          "value": "listBoards",
          "action": "List Pinterest boards",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/pinterest-boards",
              "method": "GET"
            }
          }
        },
        {
          "name": "Select Board",
          "value": "selectBoard",
          "action": "Select Pinterest board for posting",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/pinterest-boards",
              "body": {
                "boardId": "={{ $parameter.boardId }}"
              },
              "method": "PUT"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pinterest"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listSubreddits",
      "options": [
        {
          "name": "List Subreddits",
          "value": "listSubreddits",
          "action": "List saved subreddits",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/reddit-subreddits",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Subreddits",
          "value": "updateSubreddits",
          "action": "Update saved subreddits",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/reddit-subreddits",
              "body": {
                "subredditIds": "={{ $parameter.subredditIds.split(',').map(s => s.trim()).filter(s => s) }}"
              },
              "method": "PUT"
            }
          }
        },
        {
          "name": "Search Posts",
          "value": "searchReddit",
          "action": "Search Reddit posts",
          "routing": {
            "request": {
              "qs": {
                "q": "={{ $parameter.q }}",
                "sort": "={{ $parameter.sort || 'new' }}",
                "after": "={{ $parameter.after || undefined }}",
                "limit": "={{ $parameter.limit || 25 }}",
                "accountId": "={{ $parameter.accountId }}",
                "subreddit": "={{ $parameter.subreddit || undefined }}",
                "restrict_sr": "={{ $parameter.restrict_sr || undefined }}"
              },
              "url": "/v1/reddit/search",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Feed",
          "value": "feed",
          "action": "Get subreddit feed",
          "routing": {
            "request": {
              "qs": {
                "t": "={{ $parameter.t || undefined }}",
                "sort": "={{ $parameter.sort || 'hot' }}",
                "after": "={{ $parameter.after || undefined }}",
                "limit": "={{ $parameter.limit || 25 }}",
                "accountId": "={{ $parameter.accountId }}",
                "subreddit": "={{ $parameter.subreddit || undefined }}"
              },
              "url": "/v1/reddit/feed",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reddit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getStatus",
      "options": [
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get Telegram connection status",
          "routing": {
            "request": {
              "url": "/connect/telegram",
              "method": "GET"
            }
          }
        },
        {
          "name": "Initiate Connection",
          "value": "initiate",
          "action": "Start Telegram connection flow",
          "routing": {
            "request": {
              "url": "/connect/telegram",
              "body": {
                "profileId": "={{ $parameter.profileId }}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "telegram"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listLocations",
      "options": [
        {
          "name": "List Locations",
          "value": "listLocations",
          "action": "List Google Business locations",
          "routing": {
            "request": {
              "qs": {
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/googlebusiness/locations",
              "method": "GET"
            }
          }
        },
        {
          "name": "Select Location",
          "value": "selectLocation",
          "action": "Select Google Business location",
          "routing": {
            "request": {
              "url": "/connect/googlebusiness/select-location",
              "body": {
                "tempToken": "={{ $parameter.tempToken }}",
                "locationId": "={{ $parameter.locationId }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "List Account Locations",
          "value": "listAccountLocations",
          "action": "List GBP locations for account",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/gmb-locations",
              "method": "GET"
            }
          }
        },
        {
          "name": "Switch Location",
          "value": "switchLocation",
          "action": "Switch GBP location for account",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/gmb-locations",
              "body": {
                "locationId": "={{ $parameter.newLocationId }}"
              },
              "method": "PUT"
            }
          }
        },
        {
          "name": "List Reviews",
          "value": "listReviews",
          "action": "List Google Business reviews",
          "routing": {
            "request": {
              "qs": {
                "page": "={{ $parameter.page || 1 }}",
                "limit": "={{ $parameter.limit || 20 }}"
              },
              "url": "=/accounts/{{ $parameter.accountId }}/gmb-reviews",
              "method": "GET"
            }
          }
        },
        {
          "name": "Reply to Review",
          "value": "replyReview",
          "action": "Reply to a Google Business review",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/gmb-reviews/{{ $parameter.reviewId }}/reply",
              "body": {
                "comment": "={{ $parameter.comment }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete Review Reply",
          "value": "deleteReply",
          "action": "Delete a review reply",
          "routing": {
            "request": {
              "url": "=/accounts/{{ $parameter.accountId }}/gmb-reviews/{{ $parameter.reviewId }}/reply",
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googlebusiness"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listProfiles",
      "options": [
        {
          "name": "List Profiles",
          "value": "listProfiles",
          "action": "List Snapchat profiles",
          "routing": {
            "request": {
              "qs": {
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "url": "/connect/snapchat/select-profile",
              "method": "GET"
            }
          }
        },
        {
          "name": "Select Profile",
          "value": "selectProfile",
          "action": "Select Snapchat profile",
          "routing": {
            "request": {
              "url": "/connect/snapchat/select-profile",
              "body": {
                "profileId": "={{ $parameter.snapchatProfileId }}",
                "tempToken": "={{ $parameter.tempToken }}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "snapchat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Token",
          "value": "create",
          "action": "Create invite token",
          "routing": {
            "request": {
              "url": "/invite/tokens",
              "body": {
                "scope": "={{ $parameter.scope }}",
                "profileIds": "={{ $parameter.scope === 'profiles' ? $parameter.profileIds.split(',').map(s => s.trim()).filter(s => s) : undefined }}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invites"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listPostsLogs",
      "options": [
        {
          "name": "List Posts Logs",
          "value": "listPostsLogs",
          "action": "List publishing logs",
          "routing": {
            "request": {
              "qs": {
                "days": "={{ $parameter.days || 7 }}",
                "skip": "={{ $parameter.skip || 0 }}",
                "limit": "={{ $parameter.limit || 50 }}",
                "action": "={{ $parameter.action || undefined }}",
                "search": "={{ $parameter.search || undefined }}",
                "status": "={{ $parameter.status || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}"
              },
              "url": "/posts/logs",
              "method": "GET"
            }
          }
        },
        {
          "name": "List Connection Logs",
          "value": "listConnectionLogs",
          "action": "List connection logs",
          "routing": {
            "request": {
              "qs": {
                "days": "={{ $parameter.days || 7 }}",
                "skip": "={{ $parameter.skip || 0 }}",
                "limit": "={{ $parameter.limit || 50 }}",
                "status": "={{ $parameter.connectionStatus || undefined }}",
                "platform": "={{ $parameter.platform || undefined }}",
                "eventType": "={{ $parameter.eventType || undefined }}"
              },
              "url": "/connections/logs",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Post Logs",
          "value": "getPostLogs",
          "action": "Get post logs",
          "routing": {
            "request": {
              "qs": {
                "limit": "={{ $parameter.limit || 50 }}"
              },
              "url": "=/posts/{{ $parameter.postId }}/logs",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "logs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List API keys",
          "routing": {
            "request": {
              "url": "/v1/api-keys",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create API key",
          "routing": {
            "request": {
              "url": "/v1/api-keys",
              "body": {
                "name": "={{ $parameter.name }}",
                "scope": "={{ $parameter.scope }}",
                "expiresIn": "={{ $parameter.expiresIn || undefined }}",
                "permission": "={{ $parameter.permission }}",
                "profileIds": "={{ $parameter.scope === 'profiles' ? $parameter.profileIds : undefined }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete API key",
          "routing": {
            "request": {
              "url": "=/v1/api-keys/{{ $parameter.keyId }}",
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "apiKeys"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List users",
          "routing": {
            "request": {
              "url": "/v1/users",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get user",
          "routing": {
            "request": {
              "url": "=/v1/users/{{ $parameter.userId }}",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "youtubeDownload",
      "options": [
        {
          "name": "YouTube: Download",
          "value": "youtubeDownload",
          "action": "Download YouTube video",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}",
                "action": "={{ $parameter.action }}",
                "format": "={{ $parameter.format }}",
                "quality": "={{ $parameter.quality }}",
                "formatId": "={{ $parameter.formatId }}"
              },
              "url": "/v1/tools/youtube/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "YouTube: Transcript",
          "value": "youtubeTranscript",
          "action": "Get YouTube transcript",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}",
                "lang": "={{ $parameter.lang }}"
              },
              "url": "/v1/tools/youtube/transcript",
              "method": "GET"
            }
          }
        },
        {
          "name": "Instagram: Download",
          "value": "instagramDownload",
          "action": "Download Instagram media",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}"
              },
              "url": "/v1/tools/instagram/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "Instagram: Hashtag Checker",
          "value": "instagramHashtagChecker",
          "action": "Check IG hashtag bans",
          "routing": {
            "request": {
              "url": "/v1/tools/instagram/hashtag-checker",
              "body": {
                "hashtags": "={{ $parameter.hashtags }}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "TikTok: Download",
          "value": "tiktokDownload",
          "action": "Download TikTok video",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}",
                "action": "={{ $parameter.action }}",
                "formatId": "={{ $parameter.formatId }}"
              },
              "url": "/v1/tools/tiktok/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "Twitter/X: Download",
          "value": "twitterDownload",
          "action": "Download Twitter/X media",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}",
                "action": "={{ $parameter.action }}",
                "formatId": "={{ $parameter.formatId }}"
              },
              "url": "/v1/tools/twitter/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "Facebook: Download",
          "value": "facebookDownload",
          "action": "Download Facebook video",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}"
              },
              "url": "/v1/tools/facebook/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "LinkedIn: Download",
          "value": "linkedinDownload",
          "action": "Download LinkedIn video",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}"
              },
              "url": "/v1/tools/linkedin/download",
              "method": "GET"
            }
          }
        },
        {
          "name": "Bluesky: Download",
          "value": "blueskyDownload",
          "action": "Download Bluesky media",
          "routing": {
            "request": {
              "qs": {
                "url": "={{ $parameter.url }}"
              },
              "url": "/v1/tools/bluesky/download",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tools"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"list","name":"List","resource":"profiles"},{"operation":"get","name":"Get","resource":"profiles"},{"operation":"create","name":"Create","resource":"profiles"},{"operation":"update","name":"Update","resource":"profiles"},{"operation":"delete","name":"Delete","resource":"profiles"},{"operation":"list","name":"List","resource":"posts"},{"operation":"get","name":"Get","resource":"posts"},{"operation":"create","name":"Create","resource":"posts"},{"operation":"update","name":"Update","resource":"posts"},{"operation":"delete","name":"Delete","resource":"posts"},{"operation":"retry","name":"Retry","resource":"posts"},{"operation":"unpublish","name":"Unpublish","resource":"posts"},{"operation":"bulkUpload","name":"Bulk Upload","resource":"posts"},{"operation":"logs","name":"Get Logs","resource":"posts"},{"operation":"upload","name":"Upload","resource":"media"},{"operation":"presign","name":"Get Presigned URL","resource":"media"},{"operation":"list","name":"List","resource":"accounts"},{"operation":"get","name":"Get","resource":"accounts"},{"operation":"update","name":"Update","resource":"accounts"},{"operation":"delete","name":"Delete","resource":"accounts"},{"operation":"health","name":"Get Health","resource":"accounts"},{"operation":"allHealth","name":"Get All Health","resource":"accounts"},{"operation":"followerStats","name":"Get Follower Stats","resource":"accounts"},{"operation":"getConnectUrl","name":"Get Connect URL","resource":"connect"},{"operation":"handleOAuthCallback","name":"Complete OAuth Callback","resource":"connect"},{"operation":"listFacebookPages","name":"List Facebook Pages (Headless)","resource":"connect"},{"operation":"selectFacebookPage","name":"Select Facebook Page (Headless)","resource":"connect"},{"operation":"listGoogleBusinessLocations","name":"List Google Business Locations (Headless)","resource":"connect"},{"operation":"selectGoogleBusinessLocation","name":"Select Google Business Location (Headless)","resource":"connect"},{"operation":"getPendingOAuthData","name":"Get Pending OAuth Data (Headless)","resource":"connect"},{"operation":"listLinkedInOrganizations","name":"List LinkedIn Organizations (Details)","resource":"connect"},{"operation":"selectLinkedInOrganization","name":"Select LinkedIn Organization","resource":"connect"},{"operation":"listPinterestBoardsForSelection","name":"List Pinterest Boards (Headless)","resource":"connect"},{"operation":"selectPinterestBoard","name":"Select Pinterest Board (Headless)","resource":"connect"},{"operation":"listSnapchatProfiles","name":"List Snapchat Profiles (Headless)","resource":"connect"},{"operation":"selectSnapchatProfile","name":"Select Snapchat Profile (Headless)","resource":"connect"},{"operation":"connectBlueskyCredentials","name":"Connect Bluesky via Credentials","resource":"connect"},{"operation":"connectWhatsAppCredentials","name":"Connect WhatsApp via Credentials","resource":"connect"},{"operation":"getTelegramConnectStatus","name":"Generate Telegram Code","resource":"connect"},{"operation":"initiateTelegramConnect","name":"Connect Telegram Directly","resource":"connect"},{"operation":"completeTelegramConnect","name":"Check Telegram Status","resource":"connect"},{"operation":"getStats","name":"Get Stats","resource":"usage"},{"operation":"getUsageStats","name":"Get Usage Stats","resource":"usage"},{"operation":"listPages","name":"List Pages","resource":"facebook"},{"operation":"selectPage","name":"Select Page","resource":"facebook"},{"operation":"listAccountPages","name":"List Account Pages","resource":"facebook"},{"operation":"updatePage","name":"Update Page","resource":"facebook"},{"operation":"updateOrganization","name":"Update Organization","resource":"linkedin"},{"operation":"cloneConnection","name":"Clone Connection","resource":"clone"},{"operation":"get","name":"Get Settings","resource":"webhooks"},{"operation":"create","name":"Create Settings","resource":"webhooks"},{"operation":"update","name":"Update Settings","resource":"webhooks"},{"operation":"delete","name":"Delete Settings","resource":"webhooks"},{"operation":"test","name":"Test Webhook","resource":"webhooks"},{"operation":"logs","name":"Get Logs","resource":"webhooks"},{"operation":"list","name":"List Slots","resource":"queue"},{"operation":"create","name":"Create Slot","resource":"queue"},{"operation":"update","name":"Update Slot","resource":"queue"},{"operation":"delete","name":"Delete Slot","resource":"queue"},{"operation":"preview","name":"Preview Queue","resource":"queue"},{"operation":"nextSlot","name":"Get Next Slot","resource":"queue"},{"operation":"list","name":"List","resource":"accountGroups"},{"operation":"create","name":"Create","resource":"accountGroups"},{"operation":"update","name":"Update","resource":"accountGroups"},{"operation":"delete","name":"Delete","resource":"accountGroups"},{"operation":"get","name":"Get Analytics","resource":"analytics"},{"operation":"youtubeDailyViews","name":"YouTube Daily Views","resource":"analytics"},{"operation":"instagramAccountInsights","name":"Instagram Account Insights","resource":"analytics"},{"operation":"instagramDemographics","name":"Instagram Demographics","resource":"analytics"},{"operation":"dailyMetrics","name":"Daily Metrics","resource":"analytics"},{"operation":"bestTime","name":"Best Time to Post","resource":"analytics"},{"operation":"contentDecay","name":"Content Decay","resource":"analytics"},{"operation":"postingFrequency","name":"Posting Frequency","resource":"analytics"},{"operation":"postTimeline","name":"Post Timeline","resource":"analytics"},{"operation":"followerStats","name":"Follower Stats","resource":"analytics"},{"operation":"linkedinAggregateAnalytics","name":"LinkedIn Aggregate Analytics","resource":"analytics"},{"operation":"linkedinPostAnalytics","name":"LinkedIn Post Analytics","resource":"analytics"},{"operation":"linkedinPostReactions","name":"LinkedIn Post Reactions","resource":"analytics"},{"operation":"connect","name":"Connect with Credentials","resource":"bluesky"},{"operation":"disconnect","name":"Disconnect","resource":"bluesky"},{"operation":"listBoards","name":"List Boards","resource":"pinterest"},{"operation":"selectBoard","name":"Select Board","resource":"pinterest"},{"operation":"listSubreddits","name":"List Subreddits","resource":"reddit"},{"operation":"updateSubreddits","name":"Update Subreddits","resource":"reddit"},{"operation":"searchReddit","name":"Search Posts","resource":"reddit"},{"operation":"feed","name":"Get Feed","resource":"reddit"},{"operation":"getStatus","name":"Get Status","resource":"telegram"},{"operation":"initiate","name":"Initiate Connection","resource":"telegram"},{"operation":"listLocations","name":"List Locations","resource":"googlebusiness"},{"operation":"selectLocation","name":"Select Location","resource":"googlebusiness"},{"operation":"listAccountLocations","name":"List Account Locations","resource":"googlebusiness"},{"operation":"switchLocation","name":"Switch Location","resource":"googlebusiness"},{"operation":"listReviews","name":"List Reviews","resource":"googlebusiness"},{"operation":"replyReview","name":"Reply to Review","resource":"googlebusiness"},{"operation":"deleteReply","name":"Delete Review Reply","resource":"googlebusiness"},{"operation":"listProfiles","name":"List Profiles","resource":"snapchat"},{"operation":"selectProfile","name":"Select Profile","resource":"snapchat"},{"operation":"create","name":"Create Token","resource":"invites"},{"operation":"listPostsLogs","name":"List Posts Logs","resource":"logs"},{"operation":"listConnectionLogs","name":"List Connection Logs","resource":"logs"},{"operation":"getPostLogs","name":"Get Post Logs","resource":"logs"},{"operation":"list","name":"List","resource":"apiKeys"},{"operation":"create","name":"Create","resource":"apiKeys"},{"operation":"delete","name":"Delete","resource":"apiKeys"},{"operation":"list","name":"List","resource":"users"},{"operation":"get","name":"Get","resource":"users"},{"operation":"youtubeDownload","name":"YouTube: Download","resource":"tools"},{"operation":"youtubeTranscript","name":"YouTube: Transcript","resource":"tools"},{"operation":"instagramDownload","name":"Instagram: Download","resource":"tools"},{"operation":"instagramHashtagChecker","name":"Instagram: Hashtag Checker","resource":"tools"},{"operation":"tiktokDownload","name":"TikTok: Download","resource":"tools"},{"operation":"twitterDownload","name":"Twitter/X: Download","resource":"tools"},{"operation":"facebookDownload","name":"Facebook: Download","resource":"tools"},{"operation":"linkedinDownload","name":"LinkedIn: Download","resource":"tools"},{"operation":"blueskyDownload","name":"Bluesky: Download","resource":"tools"}]

npm_readme:
  # n8n-nodes-zernio

  <img src="https://zernio.com/brand/logo-primary.png" alt="Zernio Logo" width="200"/>

  An n8n community node for the [Zernio API](https://zernio.com) - the professional social media management platform.

  **Schedule and manage social media posts across multiple platforms:**
  - 🐦 **Twitter/X** - Posts, threads, and automation
  - 📸 **Instagram** - Posts, Stories, Reels with Business account support
  - 👤 **Facebook** - Page management and posting
  - 💼 **LinkedIn** - Personal and company page posting
  - 🎵 **TikTok** - Direct video posting with privacy controls
  - 📹 **YouTube** - Videos and Shorts with custom thumbnails
  - 🧵 **Threads** - Meta's social platform
  - 🦋 **Bluesky** - Decentralized social network
  - 📌 **Pinterest** - Pin to boards
  - 🤖 **Reddit** - Post to subreddits
  - ✈️ **Telegram** - Channel posting
  - 📍 **Google Business** - Business profile posts and reviews
  - 👻 **Snapchat** - Public profile posting

  ## Version History

  - **1.0.0** - Initial release with comprehensive Zernio API integration

  ## Installation

  ### From n8n Community Nodes Panel (Recommended)

  1. Go to **Settings** → **Community Nodes** in your n8n instance
  2. Select **Install** and enter `n8n-nodes-zernio`
  3. Click **Install** and restart n8n
  4. The Zernio node will appear in your node palette

  > **Note:** Also available as `n8n-nodes-late` for backwards compatibility.

  ### From npm

  ```bash
  npm install n8n-nodes-zernio
  ```

  ### From Source

  ```bash
  git clone https://github.com/zernio-dev/n8n-nodes-zernio.git
  cd n8n-nodes-zernio
  npm install
  npm run build
  ```

  ## Prerequisites

  1. **Zernio Account**: Sign up at [zernio.com](https://zernio.com)
  2. **API Key**: Generate an API key from your Zernio dashboard
  3. **Social Accounts**: Connect your social media accounts to Zernio profiles

  ## Credentials Setup

  1. Add a new credential in n8n
  2. Search for "Zernio API"
  3. Enter your API key from the Zernio dashboard

  ## Quick Start

  ### 1. Create a Profile

  Profiles organize your social media accounts by brand, client, or purpose.

  ```json
  {
    "resource": "profiles",
    "operation": "create",
    "name": "Personal Brand",
    "description": "My personal social media accounts",
    "color": "#4ade80"
  }
  ```

  ### 2. Connect Social Accounts

  Connect your social media platforms to the profile:

  ```json
  {
    "resource": "connect",
    "operation": "connect",
    "platform": "twitter",
    "profileId": "profile_123_abc"
  }
  ```

  ### 3. Schedule a Post

  Create posts across multiple platforms:

  ```json
  {
    "resource": "posts",
    "operation": "create",
    "content": "Hello, world! #automation",
    "platforms": [
      {"platform": "twitter", "accountId": "twitter_account_123"},
      {"platform": "linkedin", "accountId": "linkedin_account_456"}
    ],
    "scheduledFor": "2024-01-15T16:00:00",
    "timezone": "America/New_York"
  }
  ```

  ## Supported Operations

  ### Profiles
  - **List** - Get all profiles
  - **Create** - Create new profile (subject to plan limits)
  - **Update** - Update profile details
  - **Delete** - Delete profile (must be empty)

  ### Posts
  - **List** - Get posts with pagination and filters
  - **Get** - Get specific post details
  - **Create** - Schedule or publish posts
  - **Update** - Edit draft/scheduled posts
  - **Delete** - Delete posts (published posts cannot be deleted)
  - **Retry** - Retry failed posts
  - **Logs** - Get publishing logs for a post
  - **Bulk Upload** - Upload multiple posts at once

  ### Media
  - **Upload** - Upload images/videos up to 5GB
  - **Presign** - Get presigned URL for large file uploads

  ### Social Accounts
  - **List** - View connected accounts
  - **Get** - Get specific account details
  - **Update** - Update account settings (e.g., display name)
  - **Delete** - Disconnect accounts
  - **Health** - Check account connection health
  - **All Health** - Check health of all accounts
  - **Follower Stats** - Get follower statistics

  ### Account Groups
  - **List** - Get all account groups
  - **Get** - Get specific group details
  - **Create** - Create new account group
  - **Update** - Update group settings
  - **Delete** - Delete account group

  ### Connect Platform
  - **Connect** - Initiate OAuth for new platforms

  ### Usage Statistics
  - **Get Stats** - Monitor usage against plan limits

  ### Analytics
  - **Get** - Get post analytics across platforms
  - **YouTube Daily Views** - Get daily view statistics for YouTube

  ### Queue (Scheduling Slots)
  - **List** - Get queue slots for a profile
  - **Create** - Create new queue slot
  - **Update** - Update slot time
  - **Delete** - Remove queue slot
  - **Preview** - Preview upcoming scheduled posts
  - **Next Slot** - Get next available slot time

  ### Webhooks
  - **Get** - Get webhook configuration
  - **Create** - Create new webhook endpoint
  - **Update** - Update webhook settings
  - **Delete** - Remove webhook
  - **Test** - Send test webhook event
  - **Logs** - View webhook delivery history

  ### Facebook Management
  - **List Pages** - Get available Facebook pages
  - **Select Page** - Connect specific page
  - **List Account Pages** - Get pages for a specific account
  - **Update Page** - Change active page

  ### LinkedIn Management
  - **Update Organization** - Switch between personal/company posting

  ### Google Business Management
  - **List Locations** - Get available business locations
  - **Select Location** - Connect specific location
  - **List Account Locations** - Get locations for an account
  - **Switch Location** - Change active location
  - **List Reviews** - Get business reviews
  - **Reply Review** - Respond to a review
  - **Delete Reply** - Remove review response

  ### Pinterest Management
  - **List Boards** - Get available Pinterest boards
  - **Select Board** - Connect specific board

  ### Bluesky Management
  - **Connect** - Connect Bluesky account with credentials
  - **Disconnect** - Disconnect Bluesky account

  ### Reddit Management
  - **List Subreddits** - Get saved subreddits for posting
  - **Update Subreddits** - Update subreddit list
  - **Search** - Search for subreddits
  - **Feed** - Get subreddit feed (hot, new, top, rising)

  ### Snapchat Management
  - **List Profiles** - Get available public profiles
  - **Select Profile** - Connect specific profile

  ### Telegram Management
  - **Get Status** - Check Telegram connection status
  - **Initiate** - Start Telegram connection flow

  ### Clone Connection
  - **Clone Connection** - Reuse OAuth across profiles

  ### Team Management
  - **Invites: Create** - Invite team members with profile access

  ### API Keys
  - **List** - Get all API keys
  - **Create** - Generate new API key
  - **Delete** - Revoke API key

  ### Users
  - **List** - Get team members
  - **Get** - Get user details

  ### Logs
  - **List** - Get publishing logs with filters
  - **Get** - Get specific log entry

  ## Advanced Features

  ### Platform-Specific Settings

  #### Twitter/X Threads
  Create multi-tweet threads:

  ```json
  {
    "platforms": [
      {
        "platform": "twitter",
        "accountId": "twitter_account_123",
        "platformSpecificData": {
          "threadItems": [
            {"content": "Tweet 1 - Introduction"},
            {"content": "Tweet 2 - Details"},
            {"content": "Tweet 3 - Conclusion"}
          ]
        }
      }
    ]
  }
  ```

  #### Instagram Stories
  Post to Instagram Stories:

  ```json
  {
    "platforms": [
      {
        "platform": "instagram",
        "accountId": "instagram_account_123",
        "platformSpecificData": {
          "contentType": "story"
        }
      }
    ],
    "mediaItems": [
      {"type": "image", "url": "https://your-story-image.jpg"}
    ]
  }
  ```

  #### TikTok Privacy Settings
  Control TikTok post privacy:

  ```json
  {
    "platforms": [
      {
        "platform": "tiktok",
        "accountId": "tiktok_account_123",
        "platformSpecificData": {
          "tiktokSettings": {
            "privacy_level": "PUBLIC_TO_EVERYONE",
            "allow_comment": true,
            "allow_duet": true,
            "allow_stitch": true
          }
        }
      }
    ]
  }
  ```

  #### YouTube Settings
  Add custom thumbnails and first comments:

  ```json
  {
    "platforms": [
      {
        "platform": "youtube",
        "accountId": "youtube_account_123",
        "platformSpecificData": {
          "firstComment": "Thanks for watching! Don't forget to like and subscribe!"
        }
      }
    ],
    "mediaItems": [
      {
        "type": "video",
        "url": "https://your-video.mp4",
        "thumbnail": "https://your-custom-thumbnail.jpg"
      }
    ],
    "tags": ["tutorial", "automation", "n8n"]
  }
  ```

  #### Bluesky Threads
  Create multi-post threads on Bluesky:

  ```json
  {
    "platforms": [
      {
        "platform": "bluesky",
        "accountId": "bluesky_account_123",
        "platformSpecificData": {
          "threadItems": [
            {"content": "Post 1 - Introduction"},
            {"content": "Post 2 - Details"},
            {"content": "Post 3 - Conclusion"}
          ]
        }
      }
    ]
  }
  ```

  ### Media Upload

  Upload files before using in posts:

  ```json
  {
    "resource": "media",
    "operation": "upload",
    "files": [
      {
        "filename": "image.jpg",
        "data": "base64_encoded_data"
      }
    ]
  }
  ```

  For large files (>4MB), use the presign operation:

  ```json
  {
    "resource": "media",
    "operation": "presign",
    "filename": "video.mp4",
    "contentType": "video/mp4"
  }
  ```

  ### Webhooks

  Set up webhooks to receive real-time notifications:

  ```json
  {
    "resource": "webhooks",
    "operation": "create",
    "url": "https://your-server.com/webhook",
    "events": ["post.published", "post.failed"]
  }
  ```

  Available webhook events:
  - `post.scheduled` - Post scheduled
  - `post.published` - Post published successfully
  - `post.failed` - Post failed to publish
  - `post.partial` - Post partially published (some platforms failed)

  ## Platform Requirements

  - **Instagram**: Business account required (Personal/Creator accounts not supported)
  - **Facebook**: Must be admin of Facebook pages
  - **LinkedIn**: Company pages require admin access
  - **TikTok**: Creator account recommended
  - **YouTube**: Channel access required
  - **Twitter/X**: Standard account
  - **Threads**: Standard account
  - **Bluesky**: Standard account (uses app password)
  - **Pinterest**: Business account recommended
  - **Reddit**: Account with posting privileges
  - **Telegram**: Bot token required
  - **Google Business**: Business profile owner/manager access
  - **Snapchat**: Public profile required

  ## Plan Limits

  Zernio enforces usage limits based on your plan:

  - **Free**: 10 posts/month, 2 Social Sets - $0/mo
  - **Build**: 120 posts/month, 10 Social Sets - $13/mo (billed yearly)
  - **Accelerate**: Unlimited posts, 50 Social Sets - $33/mo (billed yearly)
  - **Unlimited**: Unlimited posts, Unlimited Social Sets - $667/mo (billed yearly)

  Optional add-ons available: Analytics, Comments + DMs

  Monitor usage with the Usage Statistics operation.

  ## Error Handling

  The node handles various error scenarios:

  - **403**: Plan limits exceeded
  - **401**: Invalid API key
  - **400**: Invalid request data
  - **404**: Resource not found
  - **429**: Rate limit exceeded

  Check the node output for detailed error messages and upgrade suggestions.

  ## Development

  ### Prerequisites
  - Node.js 18+
  - TypeScript
  - n8n development environment

  ### Setup
  ```bash
  git clone https://github.com/zernio-dev/n8n-nodes-zernio.git
  cd n8n-nodes-zernio
  npm install
  npm run build
  ```

  ### Linting
  ```bash
  npm run lint        # Check for issues
  npm run lintfix     # Fix automatically
  ```

  ## Support

  - **Documentation**: [Zernio API Docs](https://docs.zernio.com)
  - **Dashboard**: [zernio.com/dashboard](https://zernio.com/dashboard)
  - **Email**: [miki@zernio.com](mailto:miki@zernio.com)
  - **Issues**: [GitHub Issues](https://github.com/zernio-dev/n8n-nodes-zernio/issues)

  ## License

  MIT

  ## Contributing

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

  ---

  **Made with love by the Zernio team**

  [Website](https://zernio.com) | [Documentation](https://docs.zernio.com) | [Dashboard](https://zernio.com/dashboard)

ai_documentation_summary:
  {"purpose":"A community n8n node that schedules and manages social media posts across multiple platforms including Twitter/X, Instagram, LinkedIn, TikTok, YouTube, and others using the Zernio API.","capabilities":["Schedule and publish posts to multiple social media platforms simultaneously","Create, update, delete, and retry social media posts","Manage social media profiles and connect accounts","Upload and manage media files (images/videos up to 5GB)","Schedule posts with specific dates, times, and timezones","Bulk upload multiple posts at once","Monitor usage statistics and plan limits","Get post analytics and follower statistics","Manage queue slots for scheduling","Handle platform-specific features (e.g., Instagram Stories, YouTube Shorts, Google Business Reviews)"],"authentication":"API key required (entered via n8n credentials as 'Zernio API')","commonUseCases":["Automated social media content scheduling","Cross-platform brand management","Client social media outsourcing","Content publishing workflows with time-based triggers","Social media analytics and performance tracking"],"limitations":["Published posts cannot be deleted","Profile creation is subject to plan limits","Bluesky account connection requires manual credential entry","Some features may depend on Zernio's plan tiers"],"relatedNodes":["n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.waitUntil","n8n-nodes-base.if"]}


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

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

npm_readme:
  # n8n-nodes-klicktipp

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

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

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

  ## KlickTipp API Integration for n8n

  What is the KlickTipp Marketing Suite?

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

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

  ---

  ## Table of Contents

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

  ---

  ## Installation

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

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

  ## Quickstart

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

  ## Nodes Overview

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

  ### Contact

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

  ### Contact Tagging

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

  ### Data Field

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

  ### Opt-In Process

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

  ### Tag

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

  ### Triggers

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

  ---

  ## Supported Resources and Operations

  Quick inventory (names as displayed in n8n):

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

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

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

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

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

  **Triggers**
  - On new KlickTipp event

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

  ---

  ## Workflow Keys (for JSON generation)

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

  ---

  ## Credentials

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

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

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

  ---

  ## Compatibility

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

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

  ---

  ## License

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

  ---

  ## Example Workflows

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

  ---

  ## Troubleshooting

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

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


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

updated_at: 2026-03-25 21:19:40
author_name: sudotong
author_github_url: https://github.com/firefliesai/n8n-nodes-fireflies.git
npm_package_name: @firefliesai/n8n-nodes-fireflies
npm_version: 2.1.0
community_fetched_at: 2026-03-25T21:19:40.987Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "transcript",
      "options": [
        {
          "name": "AI App",
          "value": "aiApp"
        },
        {
          "name": "AskFred",
          "value": "askfred"
        },
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Transcript",
          "value": "transcript"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAIAppOutputs",
      "options": [
        {
          "name": "Get Outputs",
          "value": "getAIAppOutputs",
          "action": "Get outputs of an AI app",
          "description": "Retrieve AI app outputs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiApp"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getThreads",
      "options": [
        {
          "name": "Continue Thread",
          "value": "continueThread",
          "action": "Continue an existing ask fred thread",
          "description": "Continue an existing conversation thread with a follow-up question"
        },
        {
          "name": "Create Thread",
          "value": "createThread",
          "action": "Create a new ask fred thread",
          "description": "Create a new conversation thread with a question about meetings"
        },
        {
          "name": "Delete Thread",
          "value": "deleteThread",
          "action": "Delete an ask fred thread",
          "description": "Delete a conversation thread and all its messages"
        },
        {
          "name": "Get Thread",
          "value": "getThread",
          "action": "Get an ask fred thread",
          "description": "Get a specific thread with all its messages"
        },
        {
          "name": "Get Threads",
          "value": "getThreads",
          "action": "Get ask fred threads",
          "description": "Get a list of all conversation threads"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "askfred"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadAudio",
      "options": [
        {
          "name": "Upload",
          "value": "uploadAudio",
          "action": "Upload audio",
          "description": "Upload an audio file for transcription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTranscript",
      "options": [
        {
          "name": "Get",
          "value": "getTranscript",
          "action": "Get a transcript",
          "description": "Get transcript details"
        },
        {
          "name": "Get Analytics",
          "value": "getTranscriptAnalytics",
          "action": "Get analytics of a transcript",
          "description": "Get analytics for a transcript"
        },
        {
          "name": "Get Audio URL",
          "value": "getTranscriptAudioUrl",
          "action": "Get audio URL of a transcript",
          "description": "Get the audio URL for a transcript"
        },
        {
          "name": "Get List",
          "value": "getTranscriptsList",
          "action": "Get a list of transcripts",
          "description": "Get a list of transcripts with optional filters"
        },
        {
          "name": "Get Summary",
          "value": "getTranscriptSummary",
          "action": "Get a summary of a transcript",
          "description": "Get a summary of a transcript"
        },
        {
          "name": "Get Video URL",
          "value": "getTranscriptVideoUrl",
          "action": "Get video URL of a transcript",
          "description": "Get the video URL for a transcript"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transcript"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCurrentUser",
      "options": [
        {
          "name": "Get Current",
          "value": "getCurrentUser",
          "action": "Get current user",
          "description": "Get information about the current user"
        },
        {
          "name": "Get List",
          "value": "getUsers",
          "action": "Get a list of users",
          "description": "Get a list of users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"getAIAppOutputs","name":"Get Outputs","description":"Retrieve AI app outputs","resource":"aiApp"},{"operation":"continueThread","name":"Continue Thread","description":"Continue an existing conversation thread with a follow-up question","resource":"askfred"},{"operation":"createThread","name":"Create Thread","description":"Create a new conversation thread with a question about meetings","resource":"askfred"},{"operation":"deleteThread","name":"Delete Thread","description":"Delete a conversation thread and all its messages","resource":"askfred"},{"operation":"getThread","name":"Get Thread","description":"Get a specific thread with all its messages","resource":"askfred"},{"operation":"getThreads","name":"Get Threads","description":"Get a list of all conversation threads","resource":"askfred"},{"operation":"uploadAudio","name":"Upload","description":"Upload an audio file for transcription","resource":"audio"},{"operation":"getTranscript","name":"Get","description":"Get transcript details","resource":"transcript"},{"operation":"getTranscriptAnalytics","name":"Get Analytics","description":"Get analytics for a transcript","resource":"transcript"},{"operation":"getTranscriptAudioUrl","name":"Get Audio URL","description":"Get the audio URL for a transcript","resource":"transcript"},{"operation":"getTranscriptsList","name":"Get List","description":"Get a list of transcripts with optional filters","resource":"transcript"},{"operation":"getTranscriptSummary","name":"Get Summary","description":"Get a summary of a transcript","resource":"transcript"},{"operation":"getTranscriptVideoUrl","name":"Get Video URL","description":"Get the video URL for a transcript","resource":"transcript"},{"operation":"getCurrentUser","name":"Get Current","description":"Get information about the current user","resource":"user"},{"operation":"getUsers","name":"Get List","description":"Get a list of users","resource":"user"}]

npm_readme:
  # n8n-nodes-fireflies

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

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

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

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

  ## Installation

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

  ## Operations

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

  ### AI App

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

  ### AskFred

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

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

  ### Audio

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

  ### Bite

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

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

  ### Channel

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

  ### Contact

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

  ### Meeting

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

  ### Team Analytics

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

  ### Transcript

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

  ### User

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

  ---

  ## Usage

  ### Fetching and Chaining Transcripts

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

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

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

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

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

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

  ### Working with Bites

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

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

  ### Live Meetings

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

  ### Team Analytics

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

  ## Credentials

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

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

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

  ## Resources

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

  ## Version history

  ### 2.2.0

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

  ### 2.1.0

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

  ### 2.0.0

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

  ### 1.0.7

  - Fixed nodeParameter handling for all operations

  ### 1.0.6

  - Removed unsupported field from getAiAppOutput operation

  ### 1.0.5

  - Fixes bug in handling input data

  ### 1.0.4

  - Major refactor to separate code into resources and operations

  ### 1.0.3

  - Bump version due to inconsistent build

  ### 1.0.2

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

  ### 1.0.1

  - Fixed bugs in array responses

  ### 1.0.0

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

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


node_type: n8n-nodes-businessmap.businessmap
package_name: n8n-nodes-businessmap
display_name: Businessmap
description: Read, write, update and delete data from Businessmap
category: Community
development_style: declarative
version: 1.0.5
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: businessmap
author_github_url: https://github.com/kanbanize/
npm_package_name: n8n-nodes-businessmap
npm_version: 1.0.5
community_fetched_at: 2026-03-25T21:19:40.988Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-businessmap

  This is the official n8n community node working with the [Businessmap API](https://demo.businessmap.io/openapi/). 

  **Businessmap** is the most flexible software platform for outcomes-driven enterprise agility. The unmatched functionality consolidates multiple tools into one, enabling affordable deployment at scale, visibility across all projects/portfolios, and alignment on goals, to deliver quality work faster. 


  [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

  ### Supported Triggers
  The **Businessmap n8n community node** supports the following triggers:
  * `All Events`
  * `Card Created`
  * `Card Details Changed`
  * `Card Discarded`
  * `Card Restored`
  * `Card Moved`
  * `Card Archived`
  * `Card Is Unarchived`
  * `Comment Created`
  * `Comment Updated`
  * `Comment Deleted`
  * `Subtask Created`
  * `Subtask Updated`
  * `Subtask Deleted`
  * `Board Renamed`
  * `Board Archived`
  * `Board Unarchived`
  * `Board Deleted`
  * `Board Structure Changed`

  ### Supported Actions
  The **Businessmap n8n community node** supports the following actions:
  * `Create Card`: Create a card in a board of your choice. Set card details including custom fields, stickers and tags.
  * `Update Card`: Update the properties of a card (Title, Description, Priority, Size, Deadline, etc.).
  * `Move Card`: Move a card to a new column, lane or board.
  * `Get Card by ID`: Get the details of a card by its internal ID.
  * `Get Card by Custom Card ID`: Find card by custom card ID. If multiple cards are found, all will be returned. Use "Board" parameter to filter search by boards.
  * `Get All Cards Per Board`: Get all cards from a selected board. The response contains up to 200 cards. To retrieve more than 200 cards, please use pagination.
  * `Link Card`: Link a card to an existing card.
  * `Unlink Card`: Remove a link between two cards.
  * `Set Custom Fields`: Sets values of custom fields.
  * `Block Card`: Block a card.
  * `Unblock Card`: Unblock a card.
  * `Archive Card`: Add card to archive.
  * `Unarchive Card`: Extract card from archive.
  * `Discard Card`: Discard a card.
  * `Restore Card`: Restore a previously discarded card.
  * `Add Comment`: Add a comment to a card.
  * `Create Subtask`: Create a new subtask of a card.
  * `Log Time`: Log time to a card.
  * `Upload Attachment`: Upload an attachment to a card.
  * `Download Attachment`: Download an attachment from a card.
  * `Get Card Attachments`: Get a list with all attachments for a specified card.
  * `Create Workspace`: Create a workspace.
  * `Update Workspace`: Update a workspace.
  * `Get Workspace`: Get a workspace.
  * `Get All Workspaces`: Get a list with all workspaces in the account.
  * `Create Board`: Create a board.
  * `Update Board`: Update a board.
  * `Get Board`: Get a board.
  * `Get All Boards`: Get a list with all boards.
  * `Get Board Structure`: Get board structure which includes all workflows, lanes and columns.
  * `Create Tag`: Create a tag.
  * `Update Tag`: Update a tag.
  * `Delete Tag`: Delete a tag.
  * `Get Tag`: Get a tag.
  * `Get All Tags`: Get a list with all tags.
  * `Assign Tag`: Assign a tag to a board.
  * `Create Sticker`: Create a sticker.
  * `Update Sticker`: Update a sticker.
  * `Delete Sticker`: Delete a sticker.
  * `Get Sticker`: Get a sticker.
  * `Get All Stickers`: Get a list with all stickers.
  * `Assign Sticker`: Assign a sticker to a board.


  ## Credentials

  * To use this **n8n community node**, you'll need a **Businessmap** account and a user with permissions to access the API. If you don’t have an account yet, [sign up here](https://businessmap.io/sign-up) to get started.

  To authenticate with the Businessmap API, you'll need to provide your domain name and API key when setting up your credentials. Follow the instructions provided on the [Businessmap API page](https://businessmap.io/api) to obtain your API key.

  ## Compatibility

  Requires n8n version 1.0.0 or later
  Requires Node.js 20.15.0 or later

  ## Usage

  * Visit our [Knowledge Base](https://knowledgebase.businessmap.io/hc/en-us) to find answers to all your questions regarding Businessmap.
  * Contact our [customer support](https://businessmap.io/customer-support) with any specific request.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/builtin/app-nodes/)
  * [Create Businessmap Account](https://businessmap.io/sign-up)
  * [Knowledge Base](https://knowledgebase.businessmap.io/hc/en-us)
  * [Businessmap API documentation](https://demo.businessmap.io/openapi/#/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Businessmap API, allowing users to read, write, update, and delete data related to cards, boards, workspaces, tags, stickers, and comments.","capabilities":["Create, update, and delete cards with custom fields, stickers, and tags","Move, archive, discard, restore, and block/unblock cards","Add, update, and delete comments and subtasks","Log time and upload/download attachments to cards","Link and unlink cards","Create, update, and manage workspaces and boards","Manage tags and stickers (create, update, delete, assign)","Get cards by ID, custom ID, or all cards per board (with pagination support)","Retrieve board structures, workflows, lanes, and columns"],"authentication":"API key required (domain name and API key)","commonUseCases":["Automating project management tasks within Businessmap","Syncing card data between Businessmap and other tools","Creating boards and workspaces programmatically","Managing card attachments and comments via automation","Tracking time and linking related tasks"],"limitations":["Requires a Businessmap account with appropriate API permissions","Get All Cards Per Board is limited to 200 cards per request (requires pagination for more)","Requires n8n version 1.0.0 or later","Requires Node.js 20.15.0 or later"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


node_type: @drwally/n8n-nodes-integration.drwally
package_name: @drwally/n8n-nodes-integration
display_name: DrWally
description: DrWally send message node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: drwally
author_github_url: https://github.com/sinova-dev/drwally-n8n-node.git
npm_package_name: @drwally/n8n-nodes-integration
npm_version: 1.0.6
community_fetched_at: 2026-03-25T21:19:40.988Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendPrivate",
      "options": [
        {
          "name": "Send Private Message",
          "value": "sendPrivate",
          "action": "Send a private message",
          "description": "Send a private message"
        },
        {
          "name": "Send Group Message",
          "value": "sendGroup",
          "action": "Send a group message",
          "description": "Send a group message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"sendPrivate","name":"Send Private Message","description":"Send a private message","resource":"message"},{"operation":"sendGroup","name":"Send Group Message","description":"Send a group message","resource":"message"}]

npm_readme:
  # n8n-nodes-DrWally

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

  DrWally API is service that allows users automate whatsapp messaging for business purposes.

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

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

  ## Installation

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

  ## Operations

  1. Send private message - send message to a single user
  2. Send group message - send message to a group

  ## Credentials

  For sending messages using DrWally node, you need to have account on [DrWally website](https://drwallyai.com/)

  1. Create account.
  2. Log in.
  3. In sidebar select WhatsApp for Business
  4. Connect your whatsapp account to the app
  5. Select Webhooks for WhatsApp for Business on sidebar
  6. Generate webhook for selected phone number
  7. Use Webhook URL and Secret Key, to create credentials in n8n

  ## Compatibility

  Minimum n8n version - 2.1.5

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [DrWally API](https://api.drwallyai.com/api-public)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of WhatsApp messaging for business purposes by integrating with the DrWally API to send messages to individual users or groups.","capabilities":["Send private messages to a single WhatsApp user","Send group messages to multiple WhatsApp users","Automate WhatsApp communication workflows"],"authentication":"Webhook URL and Secret Key obtained from DrWally's WhatsApp for Business webhook settings","commonUseCases":["Automated customer support notifications","Broadcasting promotional messages to customer groups","Order status updates via WhatsApp","Appointment reminders"],"limitations":["Requires a separate DrWally account and WhatsApp for Business connection","Minimum n8n version 2.1.5 required","Limited to business messaging purposes only"],"relatedNodes":["Webhook node","HTTP Request node","WhatsApp nodes"]}


node_type: n8n-nodes-evomi.evomi
package_name: n8n-nodes-evomi
display_name: Evomi
description: Scrape web pages using the Evomi Scraper API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: evomi
author_github_url: https://github.com/evomi/
npm_package_name: n8n-nodes-evomi
npm_version: 1.0.2
community_fetched_at: 2026-03-25T21:19:40.989Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "webPage",
      "options": [
        {
          "name": "Web Page",
          "value": "webPage"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape a web page",
          "description": "Scrape content from a web page"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webPage"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"scrape","name":"Scrape","description":"Scrape content from a web page","resource":"webPage"}]

npm_readme:
  # Evomi n8n Node

  This repository provides an n8n community node for **Evomi's Scraper API**, a powerful web scraping tool with intelligent mode detection, automatic CAPTCHA solving, and residential proxy support.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform that lets you connect apps, APIs, and services to build automated workflows.

  ## Features

  - **Intelligent Auto Mode**: Automatically detects whether to use fast HTTP requests or full browser rendering
  - **Three Scraping Modes**: Choose between `auto`, `request`, or `browser` modes
  - **Multiple Output Formats**: Get results as JSON, Markdown, or Screenshot
  - **AI Tool Compatible**: Use as an AI agent tool for intelligent web scraping
  - **Automatic CAPTCHA Solving**: Built-in CAPTCHA handling with browser mode
  - **Geo-Targeting**: Route requests through proxies in 195+ countries
  - **Robust Error Handling**: Comprehensive validation with helpful error messages

  ---

  ## Prerequisites

  To use this node, you need:

  1. **An Evomi account** - Sign up at [evomi.com](https://evomi.com)
  2. **Active Scraper API subscription or Pay-As-You-Go credits** - Required to make API requests

  > **🎁 Free Trial Available!** New users can get started with a free trial at [my.evomi.com/scraper-api](https://my.evomi.com/scraper-api).

  ---

  ## Installation

  ### From n8n Community Nodes

  1. Open your n8n instance
  2. Go to **Settings** → **Community Nodes**
  3. Select **Install**
  4. Enter `n8n-nodes-evomi` and confirm

  ### Manual Installation

  ```bash
  npm install n8n-nodes-evomi
  ```

  ---

  ## Getting Started

  ### Step 1: Get Your API Key

  1. Log in to your [Evomi Dashboard](https://my.evomi.com)
  2. Navigate to **Products** → **Scraper API** → **[Playground](https://my.evomi.com/my/products/scraper-api-universal/playground)**
  3. Your API key is displayed in the top-right section of the dashboard

  <img src="images/evomi_dashboard.png" width="600" alt="Evomi Dashboard - API Key Location">

  Copy the API key from the highlighted field (click the copy icon next to it).

  ### Step 2: Add the Evomi Node to Your Workflow

  1. In your n8n workflow editor, click the **+** button to add a new node

  <img src="images/n8n_plus_node.png" width="500" alt="Click the + button">

  2. Search for **"Evomi"** in the node selector

  <img src="images/n8n_search_evomi_node.png" width="400" alt="Search for Evomi">

  3. Click on the **Evomi** node to add it to your workflow

  ### Step 3: Configure Your Credentials

  1. In the Evomi node panel, click on **"Select Credential"** → **"+ Create new credential"**

  <img src="images/n8n_create_new_credential.png" width="400" alt="Create new credential">

  2. Enter your API key from the Evomi dashboard and click **Save**

  <img src="images/n8n_new_credential_enter_apikey.png" width="500" alt="Enter API Key">

  3. You should see **"Connection tested successfully"** - your credentials are now saved!

  <img src="images/n8n_crediential_saved_successfully.png" width="500" alt="Credential saved successfully">

  ### Step 4: Configure and Execute

  1. Enter the URL you want to scrape
  2. Choose your preferred mode and output format
  3. Click **Execute step** to run the scraper!

  <img src="images/n8n_node_success_result.png" width="700" alt="Successful scrape result">

  ---

  ## Node Parameters

  ### URL (Required)

  The web page URL to scrape. Must include `http://` or `https://`.

  ```
  https://example.com
  https://news.ycombinator.com
  ```

  ### Mode

  Choose how the page should be fetched:

  | Mode | Description | Best For | JavaScript |
  |------|-------------|----------|------------|
  | **Auto** (Default) | Automatically detects the best approach. Tries HTTP first, upgrades to browser if needed. | Most use cases | Auto-detected |
  | **Request** | Fast HTTP request without browser rendering. | Static sites, blogs, news, APIs | No |
  | **Browser** | Full browser with JavaScript execution. | SPAs, React/Vue/Angular apps, dynamic content | Yes |

  ### Output

  Choose the format for the scraped content:

  | Output | Description | Use Case |
  |--------|-------------|----------|
  | **JSON** (Default) | Structured JSON with metadata. Toggle "Include Content" to get the full HTML. | When you need metadata (title, status, etc.) |
  | **Markdown** | Clean, readable text format. | AI processing, content analysis, LLM input |
  | **Screenshot** | Full-page PNG image. Automatically enables Browser mode. | Visual verification, archiving, thumbnails |

  ### Include Content (JSON only)

  When using JSON output, toggle this to include the full HTML content in the response. Disable to save bandwidth when you only need metadata.

  - **Default**: Off
  - **When enabled**: Response includes `content` field with full HTML

  ### Wait Seconds (Auto & Browser modes)

  Seconds to wait after page load before capturing content. Useful for pages that load content dynamically via JavaScript.

  - **Default**: 5 seconds
  - **Range**: 0-30 seconds
  - **Tip**: Increase for slow-loading pages, decrease for fast static sites

  ### Proxy Country

  Route your request through a proxy in a specific country using ISO 3166-1 alpha-2 codes.

  - **Default**: US
  - **Examples**: `US`, `CA`, `DE`, `GB`, `JP`, `AU`, `FR`, `BR`

  **Common Country Codes:**
  | Code | Country |
  |------|---------|
  | US | United States |
  | CA | Canada |
  | GB | United Kingdom |
  | DE | Germany |
  | FR | France |
  | JP | Japan |
  | AU | Australia |
  | BR | Brazil |

  ---

  ## Usage Examples

  ### As a Standalone Node

  **Basic scraping:**
  1. Set URL: `https://example.com`
  2. Mode: `Auto`
  3. Output: `JSON`
  4. Execute

  **Get markdown for AI processing:**
  1. Set URL: `https://blog.example.com/article`
  2. Mode: `Auto`
  3. Output: `Markdown`
  4. Execute → Feed result to AI node

  **Take a screenshot:**
  1. Set URL: `https://dashboard.example.com`
  2. Mode: `Browser` (auto-selected)
  3. Output: `Screenshot`
  4. Execute

  **Geo-targeted scraping:**
  1. Set URL: `https://amazon.de`
  2. Proxy Country: `DE`
  3. Execute → Get German localized content

  ### As an AI Agent Tool

  Connect the Evomi node to an AI Agent node as a tool. The AI can scrape websites based on natural language prompts.

  **Example Prompts:**
  - "Scrape https://news.ycombinator.com and summarize the top 5 stories"
  - "Get the content from https://example.com/pricing and extract the pricing tiers"
  - "Take a screenshot of https://competitor.com/landing-page"

  ---

  ## Response Formats

  ### JSON Output

  ```json
  {
    "success": true,
    "url": "https://example.com",
    "domain": "example.com",
    "title": "Example Domain",
    "status_code": 200,
    "credits_used": 2.0,
    "credits_remaining": 98.0,
    "mode_used": "auto (request)",
    "content": "<html>...</html>"
  }
  ```

  ### Markdown Output

  Returns clean, formatted text:

  ```markdown
  # Example Domain

  This domain is for use in illustrative examples in documents...
  ```

  ### Screenshot Output

  Returns binary PNG image data that can be:
  - Saved to file
  - Uploaded to cloud storage
  - Processed by image nodes

  ---

  ## Error Handling

  The node provides comprehensive error handling with helpful messages:

  ### Input Validation Errors

  | Error | Cause | Solution |
  |-------|-------|----------|
  | "URL is required" | Empty URL field | Enter a valid URL |
  | "Invalid URL format" | Missing http:// or https:// | Add protocol to URL |
  | "Invalid proxy country code" | Not a 2-letter code | Use ISO 3166-1 alpha-2 (e.g., US, DE) |

  ### API Errors

  | Error | Cause | Solution |
  |-------|-------|----------|
  | "Invalid API key" | Wrong or expired key | Check credentials in n8n |
  | "Insufficient credits" | Account out of credits | [Add credits](https://my.evomi.com) or start a [free trial](https://my.evomi.com/scraper-api) |
  | "Rate limit exceeded" | Too many requests | Wait and retry, or upgrade plan |
  | "Failed to connect" | Network issue | Check internet connection |

  ### Continue on Fail

  Enable **"Continue on Fail"** in node settings to handle errors gracefully. Failed items will return:

  ```json
  {
    "success": false,
    "error": "Error message here",
    "itemIndex": 0
  }
  ```

  ---

  ## Credits & Pricing

  | Mode | Output | Approximate Cost |
  |------|--------|------------------|
  | Request | JSON/Markdown | 1-2 credits |
  | Auto (request used) | JSON/Markdown | 2 credits |
  | Auto (browser used) | JSON/Markdown | 6 credits |
  | Browser | JSON/Markdown | 5 credits |
  | Browser | Screenshot | 6 credits |

  Check your credit balance at [my.evomi.com](https://my.evomi.com).

  > **💡 Tip:** Start with a [free trial](https://my.evomi.com/scraper-api) to test the API before committing to a subscription.

  ---

  ## Development

  ### Setup

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

  # Install dependencies
  npm install

  # Build the project
  npm run build
  ```

  ### Testing Locally

  ```bash
  # 1. Build the node
  npm run build

  # 2. Link the package
  npm link

  # 3. Create n8n custom folder and link
  mkdir -p ~/.n8n/custom
  cd ~/.n8n/custom
  npm init -y
  npm link n8n-nodes-evomi

  # 4. Start n8n
  n8n start
  ```

  ### Linting

  ```bash
  npm run lint
  npm run lint:fix
  ```

  ---

  ## Compatibility

  - **Node.js**: >=20.15
  - **n8n**: Latest version recommended
  - **n8n Nodes API Version**: 1

  ---

  ## Resources

  - [Evomi Scraper API Documentation](https://docs.evomi.com/scraping-products-instructions/scraper-api/)
  - [Evomi Dashboard & API Playground](https://my.evomi.com/my/products/scraper-api-universal/playground)
  - [Start Free Trial](https://my.evomi.com/scraper-api)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ---

  ## Support

  | Issue Type | Where to Get Help |
  |------------|-------------------|
  | **This node** | [GitHub Issues](https://github.com/evomi/n8n-nodes-evomi/issues) |
  | **Evomi API** | [support@evomi.com](mailto:support@evomi.com) |
  | **n8n** | [n8n Community Forum](https://community.n8n.io/) |

  ---

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A n8n community node that scrapes web pages using Evomi's Scraper API, supporting intelligent mode detection, CAPTCHA solving, and geo-targeting.","capabilities":["Web page scraping via HTTP or browser rendering","Automatic mode detection (HTTP vs browser)","Three scraping modes: auto, request, and browser","Multiple output formats: JSON, Markdown, and Screenshot","Built-in CAPTCHA solving in browser mode","Geo-targeting through proxies in 195+ countries","Comprehensive error handling and validation","AI tool compatibility for agent workflows","Dynamic content loading support with wait time configuration"],"authentication":"API key required (entered via credential manager)","commonUseCases":["Extracting structured data from websites for automation","Generating Markdown content for AI processing","Capturing website screenshots for archiving or verification","Scraping JavaScript-heavy single-page applications (SPAs)","Geographic targeting for localized content scraping"],"limitations":["Requires an active Evomi account and Scraper API subscription or credits","Free trial available but not unlimited","Browser mode automatically selected for screenshot output","Wait time limited to 0-30 seconds in Auto and Browser modes"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.webhookResponse"]}


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

updated_at: 2026-03-25 21:19:40
author_name: awork
author_github_url: https://github.com/awork-io/
npm_package_name: n8n-nodes-awork
npm_version: 0.1.61
community_fetched_at: 2026-03-25T21:19:40.990Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Company",
          "value": "company"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Project Task",
          "value": "projecttask"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get All Projects",
          "value": "getall",
          "action": "Get projects",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projects",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Project by ID",
          "value": "get",
          "action": "Get project by id",
          "routing": {
            "request": {
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get All Project Statuses",
          "value": "getprojectstatuses",
          "action": "Get projects statuses",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projectstatuses",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Create Project",
          "value": "post",
          "action": "Create a project",
          "routing": {
            "request": {
              "url": "=api/v1/projects",
              "body": {
                "name": "={{$parameter[\"projectName\"]}}",
                "dueDate": "={{$parameter[\"dueDate\"]}}",
                "companyId": "={{$parameter[\"companyId\"] || undefined}}",
                "startDate": "={{$parameter[\"startDate\"]}}",
                "description": "={{$parameter[\"projectDescription\"]}}",
                "projectTypeId": "={{$parameter[\"projectTypeId\"] || undefined}}",
                "projectStatusId": "={{$parameter[\"projectStatusId\"] || undefined}}",
                "projectTemplateId": "={{$parameter[\"projectTemplateId\"] || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a project by sending project details"
        },
        {
          "name": "Get Task Statuses of Project",
          "value": "gettaskstatuses",
          "action": "Get task statuses of project by id",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/taskstatuses",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Task Lists of Project",
          "value": "gettasklists",
          "action": "Get task lists of project by id",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/tasklists",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Create Project Status",
          "value": "postprojectstatus",
          "action": "Create a project status",
          "routing": {
            "request": {
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/projectstatuses",
              "body": {
                "name": "={{$parameter[\"statusName\"]}}",
                "type": "={{$parameter[\"statusType\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a project status by sending project status details"
        },
        {
          "name": "Change Project Status",
          "value": "changeprojectstatus",
          "action": "Change the project status",
          "routing": {
            "request": {
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/changestatus",
              "body": {
                "projectStatusId": "={{$parameter[\"projectStatusId\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Changes the project status of a project"
        },
        {
          "name": "Create Task Status",
          "value": "posttaskstatus",
          "action": "Create a task status",
          "routing": {
            "request": {
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/taskstatuses",
              "body": {
                "icon": "={{$parameter[\"taskStatusIcon\"]}}",
                "name": "={{$parameter[\"statusName\"]}}",
                "type": "={{$parameter[\"statusType\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a task status by sending task status details"
        },
        {
          "name": "Create Task List",
          "value": "posttasklist",
          "action": "Create a task list",
          "routing": {
            "request": {
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/tasklists",
              "body": {
                "name": "={{$parameter[\"name\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a task list for the project"
        },
        {
          "name": "Get Comments",
          "value": "getcomments",
          "action": "Get comments of project",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/comments",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get comments of a project by project ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Tasks of Project",
          "value": "gettasksofproject",
          "action": "Get tasks of a project",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/projecttasks",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Task by ID",
          "value": "get",
          "action": "Get task by id",
          "routing": {
            "request": {
              "url": "=api/v1/tasks/{{$parameter[\"taskId\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Create Task",
          "value": "post",
          "action": "Create a project task",
          "routing": {
            "request": {
              "url": "=api/v1/tasks",
              "body": {
                "name": "={{$parameter[\"taskName\"]}}",
                "dueOn": "={{$parameter[\"dueDate\"] || undefined}}",
                "baseType": "projecttask",
                "entityId": "={{$parameter[\"projectId\"]}}",
                "description": "={{$parameter[\"taskDescription\"] || undefined}}",
                "taskStatusId": "={{$parameter[\"taskStatusId\"] || undefined}}",
                "typeOfWorkId": "={{$parameter[\"typeOfWorkId\"] || undefined}}",
                "plannedDuration": "={{$parameter[\"plannedDuration\"] || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a task in a project by sending task details"
        },
        {
          "name": "Set Custom Field",
          "value": "settaskcustomfield",
          "action": "Set a custom field",
          "routing": {
            "request": {
              "url": "=api/v1/tasks/{{$parameter[\"taskId\"]}}/setcustomfields",
              "body": [
                {
                  "textValue": "={{$parameter[\"textValue\"]}}",
                  "customFieldDefinitionId": "={{$parameter[\"customFieldDefinitionId\"]}}"
                }
              ],
              "method": "POST"
            }
          }
        },
        {
          "name": "Add Tag",
          "value": "addtag",
          "action": "Add tag",
          "routing": {
            "request": {
              "url": "=api/v1/tasks/{{$parameter[\"taskId\"]}}/addtags",
              "body": [
                {
                  "name": "={{$parameter[\"tagName\"]}}"
                }
              ],
              "method": "POST"
            }
          }
        },
        {
          "name": "Change Status",
          "value": "changestatus",
          "action": "Change status",
          "routing": {
            "request": {
              "url": "=api/v1/tasks/changestatuses",
              "body": [
                {
                  "taskId": "={{$parameter[\"taskId\"]}}",
                  "statusId": "={{$parameter[\"statusId\"]}}"
                }
              ],
              "method": "POST"
            }
          }
        },
        {
          "name": "Add Comment",
          "value": "comments",
          "action": "Add comment",
          "routing": {
            "request": {
              "url": "=api/v1/tasks/{{$parameter[\"taskId\"]}}/comments",
              "body": {
                "message": "={{$parameter[\"commentMessage\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Set Task Assignee",
          "value": "settaskassignee",
          "action": "Set a task assignee",
          "routing": {
            "request": {
              "url": "=api/v1/tasks/{{$parameter[\"taskId\"]}}/setassignees",
              "body": [
                "={{$parameter[\"userId\"]}}"
              ],
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Types of Work",
          "value": "gettypesofwork",
          "action": "Get types of work",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/typeofwork",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Task Lists of Project",
          "value": "gettasklistsofproject",
          "action": "Get task lists of a project",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/tasklists",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Create Type of Work",
          "value": "posttypeofwork",
          "action": "Create a type of work",
          "routing": {
            "request": {
              "url": "=api/v1/typeofwork",
              "body": {
                "icon": "={{$parameter[\"icon\"]}}",
                "name": "={{$parameter[\"name\"]}}",
                "description": "={{$parameter[\"description\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Add Task to Task List",
          "value": "postaddtasktotasklist",
          "action": "Add a task to a task list",
          "routing": {
            "request": {
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/tasklists/{{$parameter[\"taskListId\"]}}/addtasks",
              "body": [
                {
                  "taskId": "={{$parameter[\"taskId\"]}}"
                }
              ],
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Comments",
          "value": "getcomments",
          "action": "Get comments of task",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/tasks/{{$parameter[\"taskId\"]}}/comments",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get comments of a task by task ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "projecttask"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get All Users",
          "value": "getall",
          "action": "Get users",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/users",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get User by ID",
          "value": "get",
          "action": "Get user by id",
          "routing": {
            "request": {
              "url": "=api/v1/users/{{$parameter[\"userId\"]}}",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create Company",
          "value": "create",
          "action": "Create a company",
          "routing": {
            "request": {
              "url": "=api/v1/companies",
              "body": {
                "name": "={{$parameter[\"companyName\"]}}",
                "industry": "={{$parameter[\"companyIndustry\"] || undefined}}",
                "description": "={{$parameter[\"companyDescription\"] || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a company by sending company details"
        },
        {
          "name": "Get All Companies",
          "value": "getall",
          "action": "Get companies",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/companies",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Company by ID",
          "value": "get",
          "action": "Get company by id",
          "routing": {
            "request": {
              "url": "=api/v1/companies/{{$parameter[\"companyId\"]}}",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getall",
      "options": [
        {
          "name": "Get All Documents",
          "value": "getall",
          "action": "Get all documents",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/documents",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Document by ID",
          "value": "get",
          "action": "Get document by id",
          "routing": {
            "request": {
              "url": "=api/v1/documents/{{$parameter[\"documentId\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Document Content",
          "value": "getcontent",
          "action": "Get document content",
          "routing": {
            "request": {
              "url": "=api/v1/documents/{{$parameter[\"documentId\"]}}/content",
              "method": "GET"
            }
          },
          "description": "Get the HTML content of a document"
        },
        {
          "name": "Get Documents of Document Space",
          "value": "getdocumentsofdocumentspace",
          "action": "Get documents of a document space",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/documentspaces/{{$parameter[\"documentSpaceId\"]}}/documents",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Documents of Project",
          "value": "getdocumentsofproject",
          "action": "Get documents of a project",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "orderBy": "={{$parameter[\"orderBy\"] || undefined}}",
                "filterBy": "={{$parameter[\"filterBy\"] || undefined}}"
              },
              "url": "=api/v1/projects/{{$parameter[\"projectId\"]}}/documents",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Create Document",
          "value": "create",
          "action": "Create a document",
          "routing": {
            "request": {
              "url": "=api/v1/documents",
              "body": {
                "name": "={{$parameter[\"documentName\"]}}",
                "emoji": "={{$parameter[\"emoji\"] || undefined}}",
                "content": "={{$parameter[\"documentContent\"]}}",
                "parentId": "={{$parameter[\"parentId\"] || undefined}}",
                "projectId": "={{$parameter[\"projectId\"] || undefined}}",
                "documentSpaceId": "={{$parameter[\"documentSpaceId\"] || undefined}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete Document",
          "value": "delete",
          "action": "Delete a document",
          "routing": {
            "request": {
              "url": "=api/v1/documents/{{$parameter[\"documentId\"]}}",
              "method": "DELETE"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"getall","name":"Get All Projects","resource":"project"},{"operation":"get","name":"Get Project by ID","resource":"project"},{"operation":"getprojectstatuses","name":"Get All Project Statuses","resource":"project"},{"operation":"post","name":"Create Project","description":"Create a project by sending project details","resource":"project"},{"operation":"gettaskstatuses","name":"Get Task Statuses of Project","resource":"project"},{"operation":"gettasklists","name":"Get Task Lists of Project","resource":"project"},{"operation":"postprojectstatus","name":"Create Project Status","description":"Create a project status by sending project status details","resource":"project"},{"operation":"changeprojectstatus","name":"Change Project Status","description":"Changes the project status of a project","resource":"project"},{"operation":"posttaskstatus","name":"Create Task Status","description":"Create a task status by sending task status details","resource":"project"},{"operation":"posttasklist","name":"Create Task List","description":"Create a task list for the project","resource":"project"},{"operation":"getcomments","name":"Get Comments","description":"Get comments of a project by project ID","resource":"project"},{"operation":"gettasksofproject","name":"Get Tasks of Project","resource":"projecttask"},{"operation":"get","name":"Get Task by ID","resource":"projecttask"},{"operation":"post","name":"Create Task","description":"Create a task in a project by sending task details","resource":"projecttask"},{"operation":"settaskcustomfield","name":"Set Custom Field","resource":"projecttask"},{"operation":"addtag","name":"Add Tag","resource":"projecttask"},{"operation":"changestatus","name":"Change Status","resource":"projecttask"},{"operation":"comments","name":"Add Comment","resource":"projecttask"},{"operation":"settaskassignee","name":"Set Task Assignee","resource":"projecttask"},{"operation":"gettypesofwork","name":"Get Types of Work","resource":"projecttask"},{"operation":"gettasklistsofproject","name":"Get Task Lists of Project","resource":"projecttask"},{"operation":"posttypeofwork","name":"Create Type of Work","resource":"projecttask"},{"operation":"postaddtasktotasklist","name":"Add Task to Task List","resource":"projecttask"},{"operation":"getcomments","name":"Get Comments","description":"Get comments of a task by task ID","resource":"projecttask"},{"operation":"getall","name":"Get All Users","resource":"user"},{"operation":"get","name":"Get User by ID","resource":"user"},{"operation":"create","name":"Create Company","description":"Create a company by sending company details","resource":"company"},{"operation":"getall","name":"Get All Companies","resource":"company"},{"operation":"get","name":"Get Company by ID","resource":"company"},{"operation":"getall","name":"Get All Documents","resource":"document"},{"operation":"get","name":"Get Document by ID","resource":"document"},{"operation":"getcontent","name":"Get Document Content","description":"Get the HTML content of a document","resource":"document"},{"operation":"getdocumentsofdocumentspace","name":"Get Documents of Document Space","resource":"document"},{"operation":"getdocumentsofproject","name":"Get Documents of Project","resource":"document"},{"operation":"create","name":"Create Document","resource":"document"},{"operation":"delete","name":"Delete Document","resource":"document"}]

npm_readme:
  # n8n-nodes-awork

  This is an n8n community node that lets you automate workflows with [awork](https://www.awork.com/), a modern project management tool. It provides seamless integration between awork and n8n, allowing you to manage projects, tasks, and company/client data within your automation workflows.

  ## Installation

  ### n8n Cloud
  1. Select **+** on your canvas and type **awork**
  2. Find **awork** in the **More from the community** section
  3. Select **install**

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

  ### Self-Hosted Instance
  1. Navigate to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-awork` in **Enter npm package name**
  4. Select **Install**
  5. **Restart your n8n instance** after installation

  ## Authentication

  To use the awork node, you'll need API credentials from awork:

  1. **Create an awork account** at [awork.com](https://www.awork.com/) if you don't have one
  2. **Generate an API key** by following the instructions in the [awork API Authentication documentation](https://developers.awork.com/authentication#api-key)
  3. **In n8n**, add new credentials:
     - Select **"awork API"** from the credentials list
     - Enter your API key
     - Test the connection to ensure it's working

  ## Available Operations

  The awork node provide comprehensive access to awork's project management features, including:

  ### Projects
  - **Create Project**: Start new projects with custom settings
  - **Get Project**: Retrieve project information
  - **List Projects**: Get all projects with filtering options
  - **Change Project Status**: Changes the status of a project

  ### Tasks
  - **Create Task**: Add new tasks to projects
  - **Get Task**: Retrieve specific task information
  - **List Tasks**: Get tasks with advanced filtering
  - **Change Task Status**: Changes the status of a task
  - **Set Task Custom Fields**: Sets the value of a task custom field
  - **Add Task Comment**: Adds a comment to a task

  ### Companies
  - **Create Company**: Add new companies to your workspace
  - **Get Company**: Retrieve company details
  - **List Companies**: Get all companies with filtering

  ### Users
  - **List Users**: Get all users with filtering

  ### Other
  - **HTTP**: With a generic HTTP Request, any awork API endpoint can be used

  For detailed information about each operation and its parameters, visit the relevant sections in the [awork Developer Documentation](https://developers.awork.com/):
  - [Projects](https://developers.awork.com/projects)
  - [Tasks](https://developers.awork.com/tasks)
  - [Companies](https://developers.awork.com/companies)
  - [Users](https://developers.awork.com/users)

  ## Example Workflows

  Here are some common use cases for the awork nodes:

  1. **Automated Project Creation**: Create projects in awork when new deals are won in your CRM
  2. **Task Synchronization**: Sync tasks between awork and other project management tools
  3. **Company Management**: Automatically create companies in awork from form submissions
  4. **Status Updates**: Update task statuses based on external triggers
  5. **Reporting**: Extract project and task data for custom reporting dashboards

  ## Resources

  - **awork Developer Documentation**: [developers.awork.com](https://developers.awork.com/)
  - **awork Developer Forum**: [community.awork.com/c/developer-forum/17](https://community.awork.com/c/developer-forum/17)
  - **n8n Documentation**: [docs.n8n.io](https://docs.n8n.io/)
  - **n8n Community**: [community.n8n.io](https://community.n8n.io/)

  ## Support

  If you encounter any issues or have questions:

  - Check the [awork Developer Forum](https://community.awork.com/c/developer-forum/17) for API-related questions
  - Visit the [n8n Community Forum](https://community.n8n.io/) for n8n-specific issues

  ## Local Development

  For contributors and developers who want to test changes locally:

  1. Clone the repository:
     ```bash
     git clone https://github.com/awork-io/n8n-nodes-awork
     cd n8n-nodes-awork
     ```

  2. Install dependencies and build:
     ```bash
     npm install
     npm run build
     ```

  3. Link to your local n8n installation:
     ```bash
     npm link
     cd ~/.n8n/custom
     npm link n8n-nodes-awork
     ```

  4. Start n8n:
     ```bash
     n8n start
     ```

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node automates workflows with awork, a modern project management tool, enabling management of projects, tasks, companies, and users within n8n workflows.","capabilities":["Create projects with custom settings","Retrieve and list projects with filtering","Change project status","Create tasks and set custom fields","Retrieve and list tasks with advanced filtering","Change task status","Add comments to tasks","Create and retrieve company details","List companies with filtering","List users with filtering"],"authentication":"API key required","commonUseCases":["Automated project creation from CRM deals","Task synchronization between project management tools","Automatic company creation from form submissions","Status updates based on external triggers","Extracting project and task data for reporting dashboards"],"limitations":["Community node (may have fewer updates or support compared to official nodes)","Requires manual API key setup in n8n credentials"],"relatedNodes":["HTTP Request","Generic HTTP Request"]}


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

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

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

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

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

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

  ---

  ## 🚀 Installation

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

  You can install the package directly from npm:

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

  or using **pnpm**:

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

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

  ---

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

  #### Prerequisites

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

  #### Steps

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

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

  2. Install dependencies and build the TypeScript source:

     ```bash
     pnpm install
     pnpm build
     ```

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

  ---

  ## 🧭 Quick Start

  ### Adding a Port node in n8n

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

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

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

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

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

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

  ---

  ## 🔐 Adding Your Port Account

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

  ### Requirements

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

  ### Steps

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

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

  ---

  ## 🧠 Running the Node

  Before execution, ensure:

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

  Then:

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

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

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

  ---

  ## ⚙️ API Endpoints Implemented

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

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

  ---

  ## 🤝 Contributing

  Contributions are welcome!

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

  Please include tests and examples when possible.

  ---

  ## 🪪 License

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

  ---

  ## 📦 Example Usage (code)

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

  const axios = require('axios');

  const res = await axios.post('https://n8n.local/api/v1/workflows/1/execute', {
    userPrompt: 'Summarize this README for me!',
    provider: 'openai',
    model: 'gpt-5'
  });

  console.log(res.data);
  ```

  ---

  ## 🏷️ Metadata

  | Field | Value |
  |---|---|
  | **Package name** | `@port-labs/n8n-nodes-portio-experimental` |
  | **Version** | `1.0.0-alpha.5` (experimental release) |
  | **Node type** | Custom n8n nodes |
  | **Focus** | Port AI integrations |
  | **Status** | Experimental / early access |

ai_documentation_summary:
  {"purpose":"This n8n node enables users to invoke Port AI agents, perform general AI interactions, and fetch results from Port's AI APIs within n8n workflows.","capabilities":["Invoke specific Port AI agents by identifier","Perform general-purpose AI interactions with user prompts","Fetch results for previously invoked AI requests","Support multiple AI providers (OpenAI, Azure OpenAI, Anthropic, Bedrock, Port)","Support multiple AI models (gpt-5, claude-sonnet-4-20250514)","Configure execution modes (Automatic, Approval Required)"],"authentication":"API Key (Client ID and Client Secret required; OAuth2 recommended, JWT not supported)","commonUseCases":["Automated customer support responses via Port AI","Integrating AI-driven email drafting or summarization into workflows","Connecting n8n to Port's AI capabilities for business automation"],"limitations":["Only AI prompt endpoints are currently supported; additional REST integrations are planned for future releases","This is an experimental package with no official support for bugs or missing features","JWT authentication is not supported for long-term credential storage"],"relatedNodes":["Port API","Port Agent","Port AI Interaction"]}


node_type: n8n-nodes-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-03-25 21:19:40
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-03-25T21:19:40.992Z
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"]}


