# nodes

node_type: n8n-nodes-aimlapi.aimlApi
package_name: n8n-nodes-aimlapi
display_name: AI/ML API
description: Choose from 300+ AI models, from Gemini and ChatGPT to DeepSeek and Llama.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: aiml_api
author_github_url: https://github.com/D1m7asis/
npm_package_name: n8n-nodes-aimlapi
npm_version: 2.0.3
community_fetched_at: 2026-03-25T21:19:40.890Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "chatCompletion",
      "options": [
        {
          "name": "Chat Completion",
          "value": "chatCompletion",
          "action": "Generate text using chat completion models",
          "description": "Generate text using chat completion models"
        },
        {
          "name": "Image Generation",
          "value": "imageGeneration",
          "action": "Generate images from text prompts",
          "description": "Generate images from text prompts"
        },
        {
          "name": "Audio Generation",
          "value": "audioGeneration",
          "action": "Generate music or sound effects from text prompts",
          "description": "Generate music or sound effects from text prompts"
        },
        {
          "name": "Video Generation",
          "value": "videoGeneration",
          "action": "Generate videos from prompts or reference media",
          "description": "Generate videos from prompts or reference media"
        },
        {
          "name": "Speech Synthesis",
          "value": "speechSynthesis",
          "action": "Convert text into speech audio",
          "description": "Convert text into speech audio"
        },
        {
          "name": "Speech Transcription",
          "value": "speechTranscription",
          "action": "Transcribe audio files into text",
          "description": "Transcribe audio files into text"
        },
        {
          "name": "Embedding Generation",
          "value": "embeddingGeneration",
          "action": "Create vector embeddings from text",
          "description": "Create vector embeddings from text"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Chat Completion",
      "value": "chatCompletion",
      "action": "Generate text using chat completion models",
      "description": "Generate text using chat completion models"
    },
    {
      "name": "Image Generation",
      "value": "imageGeneration",
      "action": "Generate images from text prompts",
      "description": "Generate images from text prompts"
    },
    {
      "name": "Audio Generation",
      "value": "audioGeneration",
      "action": "Generate music or sound effects from text prompts",
      "description": "Generate music or sound effects from text prompts"
    },
    {
      "name": "Video Generation",
      "value": "videoGeneration",
      "action": "Generate videos from prompts or reference media",
      "description": "Generate videos from prompts or reference media"
    },
    {
      "name": "Speech Synthesis",
      "value": "speechSynthesis",
      "action": "Convert text into speech audio",
      "description": "Convert text into speech audio"
    },
    {
      "name": "Speech Transcription",
      "value": "speechTranscription",
      "action": "Transcribe audio files into text",
      "description": "Transcribe audio files into text"
    },
    {
      "name": "Embedding Generation",
      "value": "embeddingGeneration",
      "action": "Create vector embeddings from text",
      "description": "Create vector embeddings from text"
    }
  ]

npm_readme:
  # n8n-nodes-aimlapi

  This is an n8n community node for [AI/ML API](https://aimlapi.com/?utm_source=n8n&utm_medium=github&utm_campaign=integration) integration.  
  It allows you to interact with large language models (LLMs) and multimodal models directly from your n8n workflows.

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

  [AI/ML API](https://aimlapi.com/app/?utm_source=n8n&utm_medium=github&utm_campaign=integration) provides access to **300+ AI models**, including Deepseek, Gemini, ChatGPT, and many others — all with **enterprise-grade rate limits and uptimes**.

  ---

  ## Features

  - Chat with any LLM available on AI/ML API
  - Generate AI images with supported diffusion and vision models
  - Create AI music and sound effects with audio-generation models
  - Render text-to-video or image-to-video clips
  - Convert text to speech and speech to text via TTS/STT models
  - Produce text embeddings for search and retrieval workflows
  - Dynamic model selection per modality with shared authentication
  - Parameter tuning (temperature, max tokens, top-p, penalties, etc.)
  - Multiple output formats: raw payloads or curated fields for each modality
  - Credential-based authentication

  ---

  ## Installation

  ### Community Node (Recommended)

  1. Open your n8n instance
  2. Go to **Settings → Community Nodes**
  3. Click **Install**
  4. Enter `n8n-nodes-aimlapi`
  5. Accept the prompt to install the node
  6. After installation, the node will appear under **AI/ML API** in the node palette

  ### Manual Installation (Advanced)

  ```bash
  npm install n8n-nodes-aimlapi
  ```

  Then restart your `n8n` instance.

  ---

  ## Configuration

  ### Credentials

  To use this node, you must configure **AI/ML API** credentials:

  1. Sign up at [https://aimlapi.com/](https://aimlapi.com/?utm_source=n8n&utm_medium=github&utm_campaign=integration)
  2. Go to your [dashboard](https://aimlapi.com/app/?utm_source=n8n&utm_medium=github&utm_campaign=integration) and generate an API key
  3. In n8n, create new credentials of type **AI/ML API**
  4. Paste your API key
  5. Save and use in the node

  📚 You can also refer to the [provider documentation](https://docs.aimlapi.com/?utm_source=n8n&utm_medium=github&utm_campaign=integration) for detailed API specs.

  ### Node Parameters

  - **Operation** – Select the modality (`Chat Completion`, `Image Generation`, `Audio Generation`, `Video Generation`, `Speech Synthesis`, `Speech Transcription`, or `Embedding Generation`).
  - **Model** – Pick a model from the filtered list (dependent on operation) or provide an ID via expression.

  #### Chat Completion

  - **Use Message List** – Switch between a single prompt and a structured list of chat messages.
  - **Prompt/Messages** – Provide either one prompt or multiple messages. Each structured message selects a **Role** (`assistant`, `system`, or `user`) from the dropdown, or choose **Custom…** to enter another role such as `tool`, plus the text **Content**. When using the `tool` role, fill in the required **Tool Call ID** with the identifier returned alongside the assistant tool invocation so the API can pair the response correctly.
  - **Extract From Response** – Decide what to return (`Text Only`, `Assistant Messages`, `Choices Array`, or `Full Raw JSON`).
  - **Options** – Fine-tune completions with **Temperature**, **Top P**, **Max Tokens**, **Presence Penalty**, **Frequency Penalty**, and **Response Format**.

  #### Image Generation

  - **Prompt** – Describe the image you want the model to create.
  - **Extract From Response** – Return the first/all URLs, first/all base64 images, or the raw payload.
  - **Image Options** – Configure **Background**, **Image Count**, **Negative Prompt**, **Quality**, **Response Format**, **Size**, and **Style**.

  #### Audio Generation

  - **Prompt** – Describe the audio clip you want to generate.
  - **Extract From Response** – Return audio URLs, base64 blobs, or the raw payload.
  - **Audio Options** – Adjust **Audio Format**, **Duration**, **Mode**, **Negative Prompt**, **Prompt Strength**, **Seed**, **Reference Audio URL**, **Instrument**, and **CFG Scale**.

  #### Video Generation

  - **Prompt** – Describe the scene for the generated video.
  - **Extract From Response** – Return the first/all video URLs or the raw payload.
  - **Video Options** – Control **Aspect Ratio/Ratio**, **Duration**, **Kling Types & Image Lists**, **Google Veo Tail Images & Prompt Enhancement**, **Alibaba Resolution/Watermark/Prompt Expansion**, **MiniMax Prompt Optimizer & First Frame**, **Runway Last Image**, plus legacy toggles like **Negative Prompt**, **Prompt Strength**, **Reference Media**, **Background Audio**, **CFG Scale**, and **Seed**.

  #### Speech Synthesis

  - **Text** – Content that should be spoken aloud.
  - **Extract From Response** – Return an audio URL, base64 payload, or the raw response.
  - **Speech Options** – Configure **Voice**, **Audio Format**, **Sample Rate**, **Speaking Rate**, and **Style**.

  #### Speech Transcription

  - **Binary Property** – Name of the binary property that contains the audio file.
  - **Extract From Response** – Return transcript text, segment breakdowns, or the raw payload.
  - **Transcription Options** – Provide **Language**, **Prompt**, **Response Format**, and **Temperature**.

  #### Embedding Generation

  - **Input Text** – Text that should be converted into an embedding vector.
  - **Extract From Response** – Return the first vector, all vectors, or the raw payload.
  - **Embedding Options** – Configure **Encoding Format** and **User Identifier** metadata.

  ---

  ## Usage Example

  1. Add a **Manual Trigger**
  2. Add the **AI/ML API** node
  3. Configure credentials
  4. Set a model (e.g. `gpt-3.5-turbo`)
  5. Enter prompt: `What is the capital of France?`
  6. Select `Extract: Text Only`
  7. Execute — you’ll get `Paris`

  ---

  ## Troubleshooting

  - If the node doesn't show up, try restarting your instance
  - If the icon or name doesn't render, make sure you ran `npm run build && gulp build:icons`
  - To debug model list: ensure credentials and `/models` endpoint return valid JSON

  ---

  ## Support

  Please open an issue or pull request in the [GitHub repository](https://github.com/D1m7asis/n8n-nodes-aimlapi) if you encounter problems.

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with 300+ AI models from providers like Gemini, ChatGPT, and DeepSeek to perform text, image, audio, video, and speech tasks.","capabilities":["Chat completion with LLMs","Image generation (diffusion and vision models)","Audio generation and sound effects","Text-to-video and image-to-video rendering","Text-to-speech (TTS)","Speech-to-text transcription (STT)","Text embedding generation for search/retrieval","Dynamic model selection per modality","Parameter tuning (temperature, top-p, max tokens, penalties)","Multiple output formats (raw payloads, curated fields, base64, URLs)"],"authentication":"API key required (entered via Credentials node)","commonUseCases":["Integrating enterprise-grade LLMs into automation workflows","Generating AI images or videos based on text prompts","Creating voiceovers or transcribing audio files","Building search and retrieval systems with text embeddings"],"limitations":["Community node (may lack official support compared to n8n core nodes)","Requires separate API key subscription at aimlapi.com","README truncated, full troubleshooting details not available"],"relatedNodes":["Credentials","Manual Trigger","Code"]}


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

updated_at: 2026-03-25 21:19:40
author_name: xkcdstickfigure
author_github_url: https://github.com/fillout/
npm_package_name: n8n-nodes-fillout
npm_version: 1.1.4
community_fetched_at: 2026-03-25T21:19:40.891Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n trigger for Fillout submissions

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

  ## Installation

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

  ## Usage

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

  ## Developers

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

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


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

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

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

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

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

  # n8n-nodes-yepcode

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

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

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

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

  ## Installation

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

  ## Operations

  ### 1. Run a YepCode Process

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

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

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

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

  ### 2. Run Code

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

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

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

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

  ## Credentials

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

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

  ## Usage

  ### Setting Up Credentials

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

  ### Using Run Process Operation

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

  ### Using Run Code Operation

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

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

  const { n8n } = yepcode.context.parameters;

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

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

  return results;
  ```

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

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

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

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

  return results
  ```

  ### Accessing n8n Context

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

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

  ### Error Handling

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

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

  ## Resources

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

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


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

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

operations:
  [{"operation":"getOutOfStock","name":"Get Out-Of-Stock Products","description":"Get out-of-stock products for a location","resource":"storeAPI"},{"operation":"getProductsForAccount","name":"Get Products for Account","description":"Retrieve products for an entire account or a single location","resource":"storeAPI"},{"operation":"getStoreHolidays","name":"Get Store Holidays","resource":"storeAPI"},{"operation":"getStoreOpeningHours","name":"Get Store Opening Hours","resource":"storeAPI"},{"operation":"getStores","name":"Get Stores","description":"Get stores for an account","resource":"storeAPI"},{"operation":"setOutOfStock","name":"Set Out-Of-Stock Products","description":"Set out-of-stock products for a location","resource":"storeAPI"},{"operation":"setStoreHolidays","name":"Set Store Holidays","resource":"storeAPI"},{"operation":"setStoreOpeningHours","name":"Set Store Opening Hours","resource":"storeAPI"},{"operation":"setStoreStatus","name":"Set Store Status","description":"Set store status for a location","resource":"storeAPI"},{"operation":"createOrder","name":"Create Order","description":"Create an order to a store","resource":"channelAPI"},{"operation":"productSync","name":"Request Product Sync","description":"Trigger Deliverect to sync products for a POS on a specific location","resource":"posAPI"},{"operation":"getAllAllergens","name":"Get All Allergens","description":"Retrieve all allergens from POSAPI","resource":"posAPI"},{"operation":"getProductCategories","name":"Get Product Categories","description":"Retrieve product categories for a specific account from POSAPI","resource":"posAPI"}]

npm_readme:
  # n8n-nodes-deliverect

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


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

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

  ## Installation

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

  ## Operations

  Store API: 

  * get stores
  * get snoozed products
  * set snoozed products

  POSAPI

  * sync products

  Channel API

  * publish menu

  ## Credentials

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

  Bearer token support is WIP.

  ## Compatibility

  Tested with N8N 1.97.1

  ## Usage

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

  ## Resources

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

  ## Version history

  v1.0: Initial version

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


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

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

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

npm_readme:
  # n8n-nodes-nexlev

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

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

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

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

  ## Installation

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

  ## Operations

  The Nexlev node supports the following operations:

  ### Channel Analysis

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

  ### Channel Analytics

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

  ### Channel Content

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

  ### Niche Overview

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

  ### Similar Channels

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

  ### Similar Thumbnails

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

  ### Similar Videos

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

  ### Videos and Shorts

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

  ## Credentials

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

  ### Prerequisites

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

  ### Authentication Method

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

  ## Compatibility

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

  ## Usage

  ### Basic Setup

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

  ### Example: Getting Similar Videos

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

  ## Resources

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

  ## Version history

  ### 0.2.0

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

  ### 0.1.10

  - Fixed channel analysis job creation endpoint to use GET method

  ### 0.1.9

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

  ### 0.1.8

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

  ### 0.1.7

  - Bug fixes and improvements
  - Enhanced stability

  ### 0.1.6

  - Improvements and updates

  ### 0.1.0

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

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


node_type: @openemm/n8n-nodes-openemm.openEmmTrigger
package_name: @openemm/n8n-nodes-openemm
display_name: OpenEMM Trigger
description: Interact with EMM
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: agnitas
author_github_url: https://github.com/agnitas-org/n8n-nodes-openemm.git
npm_package_name: @openemm/n8n-nodes-openemm
npm_version: 0.3.2
community_fetched_at: 2026-03-25T21:19:40.894Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # @openemm/n8n-nodes-openemm

  These are OpenEMM community nodes for n8n. They let you use OpenEMM in your n8n workflows.

  [OpenEMM](https://www.agnitas.de/openemm-wiki/) is a web based enterprise application for email and marketing automation. It is used for automated email communication with customers, leads, members and employees. It can be operated via a web browser or in headless mode via its SOAP or REST API. OpenEMM is published under open source license [APGLv3](https://www.gnu.org/licenses/agpl-3.0.html).

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

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


  ## Installation

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


  ## Operations

  The OpenEMM community nodes are extended from time to time. You can find the up-to-date functionality of all triggers and actions along with input and output parameters in the [OpenEMM Wiki](https://wiki-iframe.agnitas.de/doku.php?id=integration-apis).


  ## Credentials

  The OpenEMM community nodes use the REST API of OpenEMM for its action nodes and the callback API (webhooks) of OpenEMM for trigger nodes. Create credentials in n8n for the REST API so that an n8n workflow can access your OpenEMM instance. Copy the webhook URLs generated by n8n into the settings of the events in your OpenEMM instance so that OpenEMM can trigger workflows in n8n.


  ## Compatibility

  To be able to use all triggers and actions provided by the OpenEMM community nodes for n8n you have to use at least version 25.11 of OpenEMM.


  ## Usage

  Use the trigger nodes to receive event data from OpenEMM like mail openings, link clicks or profile field changes (via OpenEMM's callback API/webhooks).
  Use the action nodes to send data to OpenEMM like mailing or recipient data or to initiate an action like sending out a mailing (via OpenEMM's REST API).


  ## Resources
  * [OpenEMM integrations documenation](https://wiki-iframe.agnitas.de/doku.php?id=start#integrations)
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)


  ## History

  0.3.0 update license to MIT
  0.2.0 initial public release

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the OpenEMM enterprise email and marketing automation platform, allowing workflows to trigger on events and send actions via REST API and webhooks.","capabilities":["Receive event triggers via OpenEMM callback API/webhooks (e.g., mail openings, link clicks, profile changes)","Send data to OpenEMM via REST API (e.g., mailing, recipient data)","Initiate actions like sending out mailings","Monitor customer, lead, member, and employee communication events"],"authentication":"API key required (REST API credentials) and webhook URL configuration","commonUseCases":["Automated email marketing campaigns","Tracking email engagement (opens, clicks)","Automated customer communication workflows","Lead management and profile updates"],"limitations":["Requires OpenEMM version 25.11 or higher for full functionality","Requires manual configuration of webhook URLs in OpenEMM settings"],"relatedNodes":["OpenEMM Action","OpenEMM Trigger","n8n HTTP Request","n8n Webhook"]}


node_type: @blotato/n8n-nodes-blotato.blotato
package_name: @blotato/n8n-nodes-blotato
display_name: Blotato
description: Use Blotato API
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: sabrina_ramonov
author_github_url: https://github.com/Blotato-Inc/n8n-nodes-blotato.git
npm_package_name: @blotato/n8n-nodes-blotato
npm_version: 1.0.10
community_fetched_at: 2026-03-25T21:19:40.895Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Media",
          "value": "media"
        },
        {
          "name": "Post",
          "value": "post"
        },
        {
          "name": "Source",
          "value": "source"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create source",
          "description": "Submit a source for content extraction (YouTube, TikTok, article, PDF, etc.)"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get source",
          "description": "Get the extracted content by source ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "source"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Visual",
          "value": "create",
          "action": "Create visual",
          "description": "Create a visual (video, carousel, or infographic) from a template"
        },
        {
          "name": "Get Visual",
          "value": "get",
          "action": "Get visual",
          "description": "Get a visual by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete video",
          "description": "Delete a video by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload media",
          "description": "Upload image or video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "media"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create post",
          "description": "Create post"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get post",
          "description": "Get post status by submission ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"create","name":"Create","description":"Submit a source for content extraction (YouTube, TikTok, article, PDF, etc.)","resource":"source"},{"operation":"get","name":"Get","description":"Get the extracted content by source ID","resource":"source"},{"operation":"create","name":"Create Visual","description":"Create a visual (video, carousel, or infographic) from a template","resource":"video"},{"operation":"get","name":"Get Visual","description":"Get a visual by ID","resource":"video"},{"operation":"delete","name":"Delete","description":"Delete a video by ID","resource":"video"},{"operation":"upload","name":"Upload","description":"Upload image or video","resource":"media"},{"operation":"create","name":"Create","description":"Create post","resource":"post"},{"operation":"get","name":"Get","description":"Get post status by submission ID","resource":"post"}]

npm_readme:
  # n8n-nodes-blotato

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

  Blotato is an AI-powered content engine that enables content creation, publishing, and scheduling across multiple social media platforms through a unified API.

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

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

  ## Installation

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

  ## Operations

  This node provides four main resources for interacting with Blotato:

  ### Video Resource
  Create AI-generated visuals from templates, such as videos, carousels, slideshows, infographics, and images.
  - **Create Visual**: Generate visuals from pre-built templates with a prompt and optional inputs
  - **Get Visual**: Retrieve visual status and details by ID
  - **Delete**: Remove a viusal by ID
  - **Features**:
    - Template-based generation of visual assets
    - Dynamic input fields based on template requirements
    - Support for leading AI image and video models
    - Automatic rendering upon creation

  ### Media Upload
  Upload media files (e.g. images and videos) for your social media content using the Media resource.
  - **Upload from URL**: Upload media files from a URL
  - **Upload from Binary**: Upload media files from binary data
  - **Size limit**: 60MB for binary uploads, larger files should use URL upload
  - **Rate limit**: 10 requests per minute

  ### Post Publish
  Post content across multiple social media platforms using the Post resource.
  - **Platforms supported**: Twitter, Linkedin, Facebook, Instagram, Pinterest, Tiktok, Threads, Bluesky, Youtube
  - **Operations**:
    - **Create**: Publish content to social media platforms
    - **Get**: Check post status and details by submission ID
  - **Features**:
    - Multi-platform publishing with a single workflow
    - Schedule posts for later or use the next available free slot
    - Add captions, hashtags, and media
    - Platform-specific options, such as, but not limited to:
      - Youtube: Privacy settings, subscriber notifications, Made for Kids setting, Contains Synthetic Media
      - Pinterest: Board selection, pin title, alt text, and link
      - Tiktok: Privacy levels, comment/duet settings, Post as Draft, Slideshow Title, Image Cover Index, Video Cover Timestamp
      - Instagram: Post, Reel, or Story options, Audio Name (for Reels), Collaborators
      - Linkedin: Personal profile or Company page
      - Facebook: Page selection, Video/Reel options
      - Threads: Reply control settings
    - **Note**: Instagram, Tiktok, Pinterest, and Youtube require at least one media file (image or video) to be included in posts.
    - Rate limit: 30 requests per minute

  ### Source Extraction
  Extract content from various sources using the Source resource. This is useful for repurposing content from different platforms.
  - **Operations**:
    - **Create**: Submit a source for content extraction (async processing)
    - **Get**: Retrieve extracted content by source ID
  - **Source Types**:
    - **URL** (default): Paste any URL and the type is auto-detected. Supported URL types:
      - YouTube: Extracts video transcript
      - TikTok: Extracts video content
      - Article: Extracts web article text
      - PDF: Extracts document text
      - Audio: Transcribes audio files
    - **Text**: Raw text content with optional AI transformation
    - **AI Research**: AI-powered research query (powered by Perplexity)
  - **Optional Instructions**: AI instructions to transform extracted content (e.g., "Summarize in 5 bullet points for Instagram", "Translate to Spanish"). Leave blank for raw source content.
  - **Async processing**: Create returns a source ID; use Get to poll for extracted content

  ## Credentials

  To use this node, you need to create credentials in n8n:

  1. **Get your Blotato API Key**:
     - Log in to your [Blotato account](https://my.blotato.com)
     - Navigate to Settings → API Keys
     - Click "Generate API Key"
     - **Important**: API access is only available to paying subscribers.

  2. **Configure in n8n**:
     - Go to **Credentials** → **New** → **Blotato API**
     - Enter your API key

  3. **Connect Social Media Accounts**:
     - In Blotato, navigate to Settings → Connected Accounts
     - Click "Login with <platform>" to connect your social media account.

  ## Compatibility

  - **n8n version**: 1.80.0 and above
  - **Node.js version**: 18.10 or higher

  ## Usage

  ### Example: AI Video to Multi-Platform Publishing

  1. **Create AI video/carousel** using the Video resource where you select a template
  2. **Wait for generation** by checking status with Video Get operation
  3. **Publish to multiple platforms** using the Post resource with the generated media URL
  4. **Check post status** using the Post Get operation to verify successful publishing

  ### Example: Upload and Publish

  1. **Upload your media** using the Media resource and Upload operation
  2. **Publish to multiple platforms** using the Post resource and Create operation
  3. **Track publishing progress** using the Post Get operation with the submission ID

  ### Example: Extract YouTube Transcript and Repurpose

  1. **Submit YouTube URL** using Source Create with the URL source type (auto-detects YouTube)
  2. **Poll for extraction** using Source Get with the returned source ID
  3. **Use extracted transcript** to generate new content with AI or repurpose for other platforms

  ### Tips

  - **Video Templates**: Browse available templates at [Blotato Templates](https://my.blotato.com/videos/new)
  - **Rate Limits**: Blotato has a rate limit of 10 media uploads per minute
  - **Media Requirements**: Each platform has specific [media requirements](https://help.blotato.com/api/media)
  - **Scheduling**: Use the `scheduledTime` parameter to schedule posts in ISO 8601 format, or enable `Schedule Next Free Slot` to automatically schedule posts in the next available time slot
  - **Instagram Collaborators**: Add up to 3 Instagram usernames as collaborators on your posts
  - **Debugging**: To view all your API requests, responses, and error messages, go to your [Blotato API Dashboard](https://my.blotato.com/api-dashboard)
  - **Error Handling**: The node supports n8n's error output paths - use "Continue (using error output)" to handle errors gracefully

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Blotato API Reference](https://help.blotato.com/api-reference)
  * [Blotato Help Center](https://help.blotato.com)

  ## About Blotato

  Blotato is your all-in-one AI content engine to create and distribute social media posts. It solves the problem of producing and distributing high-quality content consistently while growing on multiple platforms, without paying for multiple tools that don't integrate with each other.

  ### Key Features
  - **Multi-Platform Publishing**: Schedule and publish to all major social platforms
  - **Viral Templates**: Create social media videos and carousels using prebuilt viral templates
  - **Access to AI Models**: Access the leading AI image and video models, all in one unified tool
  - **Content Remixing**: Transform content between platforms (e.g., Youtube videos to Linkedin posts)

  ### Who is Blotato For?
  - Solopreneurs
  - Content creators
  - Small business owners
  - Social media marketers
  - Digital marketing agencies

  ## Support

  For issues and feature requests related to this n8n node, please use the [GitHub issue tracker](https://github.com/Blotato-Inc/n8n-nodes-blotato/issues).

  For Blotato-specific questions, visit [Blotato Help Center](https://help.blotato.com/).

  ## Development

  - Install n8n (if you want faster development and don't wanna use docker)

  ```sh
  npm i -g n8n
  ```

  - Create necessary directories

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work
  mkdir -p $N8N_BLOTATO_WORKDIR/n8n-selfhost
  cd $N8N_BLOTATO_WORKDIR
  git clone git@github.com:Blotato-Inc/n8n-nodes-blotato.git
  ```

  - Build the custom node code

  ```sh
  cd $N8N_BLOTATO_WORKDIR/n8n-nodes-blotato
  npm i
  # rebuilding the code and n8n restart is required
  # on every change
  npm run build
  ```

  - Run locally with `n8n` npm package

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work
  export N8N_CUSTOM_EXTENSIONS=$N8N_BLOTATO_WORKDIR/n8n-nodes-blotato
  n8n
  ```

  - Or, alternatively, start n8n instance docker instance (might be slower than native)

  ```sh
  export N8N_BLOTATO_WORKDIR=$HOME/dev/n8n-blotato-work

  docker run -it --rm --name n8n -p 5678:5678 \
             -e N8N_CUSTOM_EXTENSIONS=/mnt/custom-nodes/n8n-nodes-blotato \
             -v $N8N_BLOTATO_WORKDIR/n8n-nodes-blotato:/mnt/custom-nodes/n8n-nodes-blotato \
             -v $N8N_BLOTATO_WORKDIR/n8n-selfhost/data:/home/node \
             docker.n8n.io/n8nio/n8n
  ```

  - NOTE: When you create Blotato API credentials, use http://127.0.0.1:8000 to avoid ipv6 issues

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of content creation, publishing, and scheduling across multiple social media platforms using the Blotato API.","capabilities":["Create AI-generated visuals (videos, carousels, slideshows, infographics, images) from templates","Retrieve and delete generated visual assets by ID","Upload media files from URLs or binary data","Publish content to Twitter, LinkedIn, Facebook, Instagram, Pinterest, TikTok, Threads, Bluesky, and YouTube","Schedule posts for later execution","Extract content from URLs (YouTube transcripts, TikTok content, articles, PDFs, audio)","Perform AI research queries powered by Perplexity","Transform extracted content using custom AI instructions"],"authentication":"API key required (paying subscribers only)","commonUseCases":["Automated multi-platform social media publishing","AI-generated video and image content creation","Content repurposing from YouTube, TikTok, or web articles","Scheduled social media campaigns"],"limitations":["API access requires a paying Blotato subscription","Binary media uploads limited to 60MB (larger files require URL upload)","Media upload rate limit of 10 requests per minute","Post publishing rate limit of 30 requests per minute","Instagram, TikTok, Pinterest, and YouTube require at least one media file for posts"],"relatedNodes":["HTTP Request","Wait Until","Code","Split In Batches"]}


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

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

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

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

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

  # n8n SearchApi.io Node

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

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

  ---

  ## Installation

  ### Via the n8n UI (recommended)

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

  ### Via the command line

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

  Restart n8n after the install finishes.

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

  ---

  ## Credentials

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

  ---

  ## Usage

  ### 1. Drag‑and‑drop UI

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

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

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

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

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

  ---

  ## Example workflows

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

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

  ## Output

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

  ---

  ## Troubleshooting

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

  ---

  ## Resources

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

  ## Contributing

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

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

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


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

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

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

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

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

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

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

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

  ## Try It Free

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

  ## About

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

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

  ## Installation

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

  ### npm

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

  ### n8n Community Nodes

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

  ## Credentials

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

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

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

  ## Operations

  ### Calculate Tax

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

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

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

  **Example Response:**

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

  ### Get Rate

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

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

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

  **Example Response (Current Rate):**

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

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

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

  **Automatic Fallback:**

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

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

  ### Calculate Historical Tax

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

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

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

  ## Why Use Surplus Lines API?

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

  ## Resources

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

  ## Support

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

  ## License

  [MIT](LICENSE)

  ---

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

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


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

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

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

npm_readme:
  # n8n-nodes-diviup-connect

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

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

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

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

  ## Installation

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

  ## Operations

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

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

  ## Credentials

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

  ### Getting your API Key

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

  ### Setting up in n8n

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

  ## Compatibility

  Compatible with n8n@1.60.0 or later.

  ## Resources

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

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


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

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

operations:
  [{"operation":"get","name":"Get","description":"Returns metadata about a specific voice","resource":"voice"},{"operation":"getAll","name":"Get Many","description":"Returns metadata about all voices","resource":"voice"},{"operation":"createClone","name":"Create Clone","description":"Create a voice clone from audio files","resource":"voice"},{"operation":"delete","name":"Delete","description":"Delete a specific voice","resource":"voice"},{"operation":"__CUSTOM_API_CALL__","name":"Custom API Call","resource":"voice"},{"operation":"textToSpeech","name":"Text to Speech","description":"Converts text into speech and returns audio","resource":"speech"},{"operation":"speechToText","name":"Speech to Text","description":"Transcribe an audio or video file","resource":"speech"},{"operation":"speechToSpeech","name":"Speech to Speech","description":"Transform audio from one voice to another","resource":"speech"},{"operation":"__CUSTOM_API_CALL__","name":"Custom API Call","resource":"speech"}]

npm_readme:
  # @elevenlabs/n8n-nodes-elevenlabs

  This is the official ElevenLabs n8n community node.

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

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

  ## Installation

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

  ## Operations

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

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

  ## Credentials

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

  ## Compatibility

  This node has been tested with n8n 1.94.0

  ## Usage

  [To be completed]

  ## Resources

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

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


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

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

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

npm_readme:
  # n8n-nodes-localfalcon

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

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

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

  ## Installation

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

  ### Manual Installation

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

  2. Restart your n8n instance

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

  ## Operations

  This node supports the following resources and operations:

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


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

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

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

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

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

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

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

  ## Credentials

  This node supports two authentication methods:

  ### OAuth2 (Recommended)

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

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

  ### API Key

  You can also authenticate using a Local Falcon API key.

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

  ## Compatibility

  Tested with n8n version 1.0.0 and above.

  ## Usage

  ### Basic Scan Example

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

  ### Campaign Example

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

  ## Resources

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

  ## Supported Platforms

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

  ## Features

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

  ## License

  [MIT](LICENSE.md)

  ## Version History

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

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

  ## Support

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Local Falcon's local SEO rank tracking services, allowing users to monitor visibility across Google Maps, Apple Maps, and other local search platforms.","capabilities":["Run SEO rank scans on Google Maps, Apple Maps, ChatGPT, Gemini, Grok, and AI Mode","Create, pause, resume, and reactivate automated SEO campaigns","Search and save business locations for tracking","Analyze competitor rankings, trends, keywords, and location data","Monitor and manage Falcon Guard protected locations","Analyze business reviews","Retrieve detailed scan reports and campaign reports","Support for grid-based tracking (3x3 to 21x21 grids)","Configurable search radius (0.1 to 100 miles/km)"],"authentication":"OAuth2 (recommended) or API Key","commonUseCases":["Automated local SEO rank monitoring for businesses","Competitor analysis and visibility tracking","Automated campaign scheduling for SEO audits","Multi-platform local search monitoring (Google, Apple Maps, AI platforms)"],"limitations":["Requires Local Falcon account or API key access"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code Node"]}


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

updated_at: 2026-03-25 21:19:40
author_name: kipps.ai
author_github_url: https://github.com/KIPPS-AI/
npm_package_name: n8n-nodes-kipps
npm_version: 0.0.7
community_fetched_at: 2026-03-25T21:19:40.899Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n Nodes for Kipps.AI

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

  ## Nodes

  This package includes the following nodes:

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

  ## Installation

  ### Docker

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

      ```bash
      npm install
      npm run build

      ```

  4.  **Run the Docker container:**

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

      On Linux/macOS, use:

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

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

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

  ### Mount Instructions

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

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

  ## Authentication

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

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

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

  ## Node Parameters

  ### Kipps.AI Chatbot

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

  ### Kipps.AI Voicebot

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

  ## Usage Examples

  ### Kipps.AI Chatbot

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

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

  The node will output the chatbot's response.

  ### Kipps.AI Voicebot

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

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

  ## Troubleshooting

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

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


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

updated_at: 2026-03-25 21:19:40
author_name: eragonj
author_github_url: https://github.com/Copicake/n8n-nodes-copicake.git
npm_package_name: @copicake/n8n-nodes-copicake
npm_version: 1.1.0
community_fetched_at: 2026-03-25T21:19:40.899Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an image",
          "description": "Create a new image from a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an image",
          "description": "Get an existing image by rendering ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

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

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

  # n8n-nodes-copicake

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

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

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

  ## Installation

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

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-copicake` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

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

  ### Manual Installation

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

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

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

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

  ## Credentials

  You need to set up credentials to use this node:

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

  ## Operations

  This node supports the following operations:

  ### Image

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

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

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

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

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

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

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

  ## Response Format

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

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

  ## Example Workflows

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

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

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

  ## Resources

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

  ## Version History

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

  ## License

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

ai_documentation_summary:
  {"purpose":"Generates and retrieves images using the Copicake API, allowing users to create social media materials with templates and custom modifications.","capabilities":["Create images from templates with custom text, images, QR codes, and shapes","Retrieve existing images by rendering ID","Support for PNG and JPG output formats","Asynchronous image generation with configurable polling intervals and wait times","Webhook support for receiving images when ready","Customization of text, images, QR codes, and shapes within templates"],"authentication":"API key required","commonUseCases":["Automated social media post generation","Dynamic content creation for marketing materials","Email campaigns with personalized images","Social media management workflows"],"limitations":["Community node (unverified code from public source)","Requires Copicake API key from external dashboard","Maximum wait time for image generation is 60 seconds","Limited to Copicake's available templates and features"],"relatedNodes":["HTTP Request","Schedule Trigger","Twitter","Email","Webhook"]}


node_type: n8n-nodes-olostep.olostepScrape
package_name: n8n-nodes-olostep
display_name: Olostep Web Scraper
description: Search, extract, and structure web data using Olostep's Web search, scraping, and crawling API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: olostep
author_github_url: https://github.com/olostep/
npm_package_name: n8n-nodes-olostep
npm_version: 0.2.7
community_fetched_at: 2026-03-25T21:19:40.900Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Answer",
          "value": "answer"
        },
        {
          "name": "Batch",
          "value": "batch"
        },
        {
          "name": "Crawl",
          "value": "crawl"
        },
        {
          "name": "Map",
          "value": "map"
        },
        {
          "name": "Scrape",
          "value": "scrape"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Scrape Website",
          "value": "create",
          "action": "Scrape a URL",
          "description": "Extract content from a single URL"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search",
          "description": "Search the Web and get structured results"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Batch Scrape URLs",
          "value": "create",
          "action": "Batch scrape urls",
          "description": "Scrape up to 10k URLs at the same time"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "batch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Crawl",
          "value": "create",
          "action": "Create a crawl",
          "description": "Get the content of subpages of a URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "crawl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Map",
          "value": "create",
          "action": "Create a map",
          "description": "Get all URLs on a website"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "map"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Answer",
          "value": "create",
          "action": "Create answer",
          "description": "Search the web and return AI-powered answers with sources"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"create","name":"Scrape Website","description":"Extract content from a single URL","resource":"scrape"},{"operation":"search","name":"Search","description":"Search the Web and get structured results","resource":"scrape"},{"operation":"create","name":"Batch Scrape URLs","description":"Scrape up to 10k URLs at the same time","resource":"batch"},{"operation":"create","name":"Create Crawl","description":"Get the content of subpages of a URL","resource":"crawl"},{"operation":"create","name":"Create Map","description":"Get all URLs on a website","resource":"map"},{"operation":"create","name":"Create Answer","description":"Search the web and return AI-powered answers with sources","resource":"answer"}]

npm_readme:
  # n8n-nodes-olostep

  The Olostep n8n integration brings powerful web search, scraping, and crawling capabilities to n8n workflows. Build automated workflows that search, extract, and structure web data from any website without writing code.

  Olostep is a web search, scraping, and crawling API that extracts structured web data from any website in real time. Perfect for automating research workflows, monitoring competitors, and collecting data at scale.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Workflow Template](#workflow-template)  
  [Testing Locally](#testing-locally)  
  [Publishing to npm](#publishing-to-npm)  
  [Compatibility](#compatibility)  
  [Resources](#resources)

  ## Installation

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

  Or install directly via npm:

  ```bash
  npm install n8n-nodes-olostep
  ```

  Then restart n8n to load the new node.

  ## Operations

  ### Scrape Website

  Extract content from a single URL. Supports multiple formats and JavaScript rendering.

  **Use Cases:**
  - Monitor specific pages for changes
  - Extract product information from e-commerce sites
  - Gather data from news articles or blog posts
  - Pull content for content aggregation

  **Parameters:**
  - **URL to Scrape** (required): The URL of the website you want to scrape
  - **Output Format**: Choose format (HTML, Markdown, JSON, or Plain Text) - default: Markdown
  - **Country Code**: Optional country code (e.g., US, GB, CA) for location-specific scraping
  - **Wait Before Scraping**: Wait time in milliseconds before scraping (0-10000) - useful for dynamic content
  - **Parser**: Optional parser ID for specialized extraction (e.g., @olostep/amazon-product)

  **Output Fields:**
  - `id`: Scrape ID
  - `url`: Scraped URL
  - `markdown_content`: Markdown formatted content
  - `html_content`: HTML formatted content
  - `json_content`: JSON formatted content
  - `text_content`: Plain text content
  - `status`: Status of the scrape
  - `timestamp`: Timestamp of the scrape
  - `screenshot_hosted_url`: URL to screenshot (if available)
  - `page_metadata`: Page metadata

  ### Search

  Search the Web for a given query and get structured results (non-AI, parser-based search results).

  **Use Cases:**
  - Automated research workflows
  - Lead discovery and enrichment
  - Competitive analysis
  - Content research

  **Parameters:**
  - **Query** (required): Search query

  **Output:** Returns structured search results as JSON.

  ### Answers (AI)

  Search the web and return AI-powered answers in the JSON structure you want, with sources and citations.

  **Use Cases:**
  - Enrich spreadsheets or records with web-sourced facts
  - Ground AI applications on real-world data and sources
  - Research tasks that require verified outputs with citations

  **Parameters:**
  - **Task** (required): Question or task to answer using web data
  - **JSON Schema (Optional)**: JSON schema/object or a short description of the desired output shape

    Examples:
    - Object schema: `{ "book_title": "", "author": "", "release_date": "" }`
    - Description string: `"Return a list of the top 5 competitors with name and homepage URL"`

  **Output Fields:**
  - `answer_id`: Answer ID
  - `object`: Object type
  - `task`: Original task
  - `result`: Parsed JSON if `json` was provided; otherwise the answer object
  - `sources`: Array of source URLs used
  - `created`: Creation timestamp

  ### Batch Scrape URLs

  Scrape up to 10k urls at the same time. Perfect for large-scale data extraction.

  **Use Cases:**
  - Scrape entire product catalogs
  - Extract data from multiple search results
  - Process lists of URLs from spreadsheets
  - Bulk content extraction

  **Parameters:**
  - **URLs to Scrape** (required): JSON array of objects with `url` and `custom_id` fields
    - Example: `[{"url":"https://example.com","custom_id":"site1"}]`
  - **Output Format**: Choose format for all URLs - default: Markdown
  - **Country Code**: Optional country code for location-specific scraping
  - **Wait Before Scraping**: Wait time in milliseconds before scraping each URL
  - **Parser**: Optional parser ID for specialized extraction

  **Output Fields:**
  - `batch_id`: Batch ID (use this to retrieve results later)
  - `status`: Status of the batch
  - `total_urls`: Total number of URLs in the batch
  - `created_at`: Creation timestamp
  - `formats`: Requested format
  - `country`: Country code used
  - `parser`: Parser used
  - `urls`: Array of URLs in the batch

  ### Create Crawl

  Get the content of subpages of a URL. Autonomously discover and scrape entire websites by following links. Perfect for documentation sites, blogs, and content repositories.

  **Use Cases:**
  - Crawl and archive entire documentation sites
  - Extract all blog posts from a website
  - Build knowledge bases from web content
  - Monitor website structure changes

  **Parameters:**
  - **Start URL** (required): Starting URL for the crawl
  - **Maximum Pages**: Maximum number of pages to crawl (default: 10)
  - **Follow Links**: Whether to follow links found on pages (default: true)
  - **Output Format**: Format for scraped content - default: Markdown
  - **Country Code**: Optional country code for location-specific crawling
  - **Parser**: Optional parser ID for specialized content extraction

  **Output Fields:**
  - `crawl_id`: Crawl ID (use this to retrieve results later)
  - `object`: Object type
  - `status`: Status of the crawl
  - `start_url`: Starting URL
  - `max_pages`: Maximum pages
  - `follow_links`: Whether links are followed
  - `created`: Creation timestamp
  - `formats`: Formats requested
  - `country`: Country code used
  - `parser`: Parser used

  ### Create Map

  Get all URLs on a website. Extract all URLs from a website for content discovery and site structure analysis.

  **Use Cases:**
  - Build sitemaps and site structure diagrams
  - Discover all pages before batch scraping
  - Find broken or missing pages
  - SEO audits and analysis

  **Parameters:**
  - **Website URL** (required): Website URL to extract links from
  - **Search Query**: Optional search query to filter URLs (e.g., "blog")
  - **Top N URLs**: Limit the number of URLs returned
  - **Include URL Patterns**: Glob patterns to include specific paths (e.g., "/blog/**")
  - **Exclude URL Patterns**: Glob patterns to exclude specific paths (e.g., "/admin/**")

  **Output Fields:**
  - `map_id`: Map ID
  - `object`: Object type
  - `url`: Website URL
  - `total_urls`: Total URLs found
  - `urls`: Array of discovered URLs
  - `search_query`: Search query used
  - `top_n`: Top N limit

  ## Credentials

  To use this node, you need to authenticate with the Olostep Scrape API.

  1. Sign up for an account on [olostep.com](https://www.olostep.com) to get an API key.
  2. Get your API key from the [Olostep Dashboard](https://olostep.com/dashboard).
  3. Add a new credential in n8n for the Olostep Scrape API.
  4. Enter your API key in the 'API Key' field.

  ## Workflow Template

  A sample workflow template is included in `workflow-template.json`. To use it:

  1. Open n8n
  2. Click on "Workflows" in the sidebar
  3. Click the three dots menu and select "Import from File"
  4. Select the `workflow-template.json` file
  5. Configure the Olostep credentials
  6. Customize the workflow as needed

  The template includes a basic workflow that scrapes a website using the Olostep Scrape Website operation.

  ## Testing Locally

  To test your node locally before publishing:

  ### Prerequisites

  - Node.js version 20.15 or higher
  - npm installed

  ### Steps

  1. **Build the node:**
     ```bash
     npm run build
     ```

  2. **Link the node locally:**
     ```bash
     npm link
     ```

  3. **Install n8n globally (if not already installed):**
     ```bash
     npm install n8n -g
     ```

  4. **Link the node to n8n:**
     ```bash
     # Find your n8n custom nodes directory (usually ~/.n8n/custom/)
     # Or if using n8n locally, navigate to the n8n installation directory
     cd ~/.n8n/custom
     npm link n8n-nodes-olostep
     ```

  5. **Start n8n:**
     ```bash
     n8n start
     ```

  6. **Test the node:**
     - Open n8n in your browser (usually http://localhost:5678)
     - Create a new workflow
     - Add the "Olostep Scrape" node
     - Configure it with your API credentials
     - Test each operation to ensure they work correctly

  ### Running Linter

  Before publishing, make sure your code passes linting:

  ```bash
  npm run lint
  ```

  If there are any issues, fix them:

  ```bash
  npm run lintfix
  ```

  ## Publishing to npm

  Once your node is tested and ready:

  ### Prerequisites

  - npm account (create one at [npmjs.com](https://www.npmjs.com/signup) if needed)
  - Node.js version 20.15 or higher

  ### Steps

  1. **Ensure package.json is correct:**
     - Verify version number
     - Check that all required fields are filled
     - Ensure the package name is `n8n-nodes-olostep`

  2. **Build the package:**
     ```bash
     npm run build
     ```

  3. **Run prepublish checks:**
     ```bash
     npm run prepublishOnly
     ```
     This will build and lint your code.

  4. **Login to npm:**
     ```bash
     npm login
     ```
     Enter your npm username, password, and email when prompted.

  5. **Publish to npm:**
     ```bash
     npm publish
     ```

  6. **Verify publication:**
     - Visit https://www.npmjs.com/package/n8n-nodes-olostep
     - Check that your latest version is published

  ### Version Management

  When making updates:

  1. Update the version in `package.json` following [semantic versioning](https://semver.org/):
     - **Patch** (1.0.0 → 1.0.1): Bug fixes
     - **Minor** (1.0.0 → 1.1.0): New features, backward compatible
     - **Major** (1.0.0 → 2.0.0): Breaking changes

  2. Update the CHANGELOG.md (if you have one)

  3. Build and publish:
     ```bash
     npm run build
     npm publish
     ```

  ## Compatibility

  This node is tested against n8n version 1.x and requires Node.js version 20.15 or higher.

  ## Specialized Parsers

  Olostep provides pre-built parsers for popular websites and tasks. Use them with the `Parser` parameter:

  - **@olostep/amazon-product** - Extract product details, prices, reviews, images, variants
  - **@olostep/google-search** - Extract search results, titles, snippets, URLs
  - **@olostep/google-maps** - Extract business info, reviews, ratings, location
  - **@olostep/extract-emails** - Extract emails from pages and contact sections
  - **@olostep/extract-socials** - Extract social profile links (X/Twitter, GitHub, etc.)
  - **@olostep/extract-calendars** - Extract calendar links (Google Calendar, ICS)

  ## Resources

  * [Olostep API Documentation](https://docs.olostep.com)
  * [Olostep Dashboard](https://olostep.com/dashboard) - Get your API key and manage usage
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [n8n Node Development Guide](https://docs.n8n.io/integrations/creating-nodes/)

  ## Support

  Need help with the n8n integration?

  * **Documentation:** [docs.olostep.com](https://docs.olostep.com)
  * **Support Email:** info@olostep.com
  * **Website:** [olostep.com](https://www.olostep.com)

ai_documentation_summary:
  {"purpose":"This n8n node enables web search, scraping, and crawling operations to extract and structure data from websites without writing code.","capabilities":["Scrape single URLs with multiple output formats (HTML, Markdown, JSON, Plain Text)","Search the web with parser-based structured results","Generate AI-powered answers with sources and citations","Batch scrape up to 10,000 URLs simultaneously","Crawl entire websites autonomously following links","Extract all URLs from a website for structure analysis","Support JavaScript rendering","Apply specialized parsers for specific extraction needs","Apply location-specific scraping via country codes"],"authentication":"API key required (handled via credentials)","commonUseCases":["Automated research workflows","Competitor monitoring and analysis","Lead discovery and enrichment","Content aggregation","Building knowledge bases from web content"],"limitations":["Batch scraping has a maximum limit of 10,000 URLs","Crawling has a default maximum of 10 pages (configurable)","Wait time before scraping is limited to 0-10,000 milliseconds","Requires n8n restart after npm installation"],"relatedNodes":["n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


node_type: @itechnotion/n8n-nodes-inboxplus.inboxPlus
package_name: @itechnotion/n8n-nodes-inboxplus
display_name: InboxPlus
description: Interact with InboxPlus API - send emails and manage sequences
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: itechnotion
author_github_url: https://github.com/itechnotion/n8n-nodes-inboxplus.git
npm_package_name: @itechnotion/n8n-nodes-inboxplus
npm_version: 1.2.0
community_fetched_at: 2026-03-25T21:19:40.900Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "hidden",
      "default": "email",
      "options": [
        {
          "name": "Email",
          "value": "email"
        }
      ],
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "prepareEmail",
      "options": [
        {
          "name": "Select Template",
          "value": "prepareEmail",
          "action": "Select a template",
          "description": "Load template and generate tracking for Gmail"
        },
        {
          "name": "Attach Sequence",
          "value": "startSequence",
          "action": "Attach a sequence",
          "description": "Record sent email and start automated follow-up sequence"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Select Template",
      "value": "prepareEmail",
      "action": "Select a template",
      "description": "Load template and generate tracking for Gmail"
    },
    {
      "name": "Attach Sequence",
      "value": "startSequence",
      "action": "Attach a sequence",
      "description": "Record sent email and start automated follow-up sequence"
    }
  ]

npm_readme:
  # n8n-nodes-inboxplus

  InboxPlus integration for n8n - Send emails with templates and automate follow-up sequences.

  ## Features

  - ✅ Load email templates from InboxPlus
  - ✅ Generate tracking pixels for email analytics
  - ✅ Send emails via Gmail with InboxPlus templates
  - ✅ Start automated follow-up sequences
  - ✅ Track email opens and replies
  - ✅ Automatic follow-up management

  ## Installation

  ```bash
  cd n8n-nodes-inboxplus
  pnpm install
  pnpm build
  pnpm link --global
  ```

  Then restart your n8n instance or link in your n8n custom nodes directory.

  ## Credentials

  You need an InboxPlus API key (JWT token) from your InboxPlus account.

  1. Go to InboxPlus Profile → Manage API → Generate API
  2. Copy your API key
  3. In n8n: Credentials → Add → InboxPlus API
  4. Paste your API key

  ## Operations

  ### 1. Prepare Email

  Loads an InboxPlus template and generates tracking.

  **Parameters:**
  - Recipient Email
  - Template (dropdown - loads from your InboxPlus account)

  **Output:**
  ```json
  {
    "recipientEmail": "contact@example.com",
    "subject": "Email Subject",
    "body": "<div>Email content</div>",
    "gmailBodyHtml": "<div>Email content</div><br><img tracking />",
    "trackingId": "uuid"
  }
  ```

  ### 2. Start Sequence

  Records the sent email in InboxPlus and starts automated follow-up sequence.

  **Parameters:**
  - Sender Email
  - Recipient Email
  - Subject (from Prepare Email)
  - Thread ID (from Gmail)
  - Message ID (from Gmail)
  - Tracking ID (from Prepare Email)
  - Sequence (dropdown - loads from your InboxPlus account)

  **Output:**
  ```json
  {
    "success": true,
    "sequenceId": "uuid",
    "recipientEmail": "contact@example.com",
    "apiResponse": { "code": 200, "success": 1 }
  }
  ```

  ## Workflow Example

  ```
  [Trigger]
      ↓
  [InboxPlus: Prepare Email]
    - Recipient: contact@example.com
    - Template: "Welcome Email"
      ↓
  [Gmail: Send Message]
    - To: {{ $json.recipientEmail }}
    - Subject: {{ $json.subject }}
    - Body HTML: {{ $json.gmailBodyHtml }}
      ↓
  [InboxPlus: Start Sequence]
    - Sender: you@example.com
    - Recipient: {{ $("InboxPlus").item.json.recipientEmail }}
    - Subject: {{ $("InboxPlus").item.json.subject }}
    - Thread ID: {{ $("Gmail").item.json.threadId }}
    - Message ID: {{ $("Gmail").item.json.id }}
    - Tracking ID: {{ $("InboxPlus").item.json.trackingId }}
    - Sequence: "Onboarding Sequence"
  ```

  ## How It Works

  1. **Prepare Email** - Fetches template from InboxPlus and generates tracking pixel
  2. **Gmail** - Sends the email (Day 0) with template content and tracking
  3. **Start Sequence** - Records email in InboxPlus and starts automated follow-ups

  InboxPlus then:
  - Monitors the email thread for replies
  - Sends Day 1, Day 2, etc. follow-ups automatically
  - Stops sequence if recipient replies
  - Tracks opens and clicks

  ## Field Mapping

  ### From Prepare Email to Gmail:
  - `recipientEmail` → Gmail "To"
  - `subject` → Gmail "Subject"
  - `gmailBodyHtml` → Gmail "Body HTML"

  ### From Prepare Email to Start Sequence:
  - `recipientEmail` → "Recipient Email"
  - `subject` → "Subject"
  - `trackingId` → "Tracking ID"

  ### From Gmail to Start Sequence:
  - `threadId` → "Thread ID"
  - `id` → "Message ID"

  ## Important Notes

  - **Gmail is required** - InboxPlus works WITH Gmail, not as a replacement
  - **Day 0 sent by Gmail** - The first email is sent via Gmail node
  - **Follow-ups by InboxPlus** - Automated follow-ups are sent by InboxPlus
  - **Tracking included** - Tracking pixel is automatically added to emails
  - **Reply detection** - InboxPlus monitors for replies and stops sequences

  ## API Endpoints Used

  - `POST /user-emails/n8n/get-email-templates` - Load templates
  - `POST /user-emails/n8n/get-sequences` - Load sequences
  - `POST /user-emails/n8n/tracking-id` - Generate tracking
  - `POST /user-emails/n8n` - Record email and start sequence

  ## Troubleshooting

  ### Templates not loading
  - Check API key is correct
  - Verify templates exist in InboxPlus dashboard

  ### Sequence not starting
  - Ensure all fields are mapped correctly
  - Check API response in node output
  - Verify sequence exists and is active

  ### Follow-ups not sending
  - Wait for the configured delay (e.g., 24 hours for Day 1)
  - Check sequence is active in InboxPlus dashboard
  - Verify Gmail is connected in InboxPlus settings

  ## Version

  Current version: 1.1.2

  ## Author

  Avkash Kakdiya
  - Email: avkash@itechnotion.com
  - Github: https://github.com/itechnotion

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"This n8n node integrates with InboxPlus to send templated emails via Gmail and manage automated follow-up sequences.","capabilities":["Load email templates from InboxPlus","Generate tracking pixels for email analytics","Send emails via Gmail using InboxPlus templates","Start automated follow-up sequences","Track email opens and replies","Manage automatic follow-up scheduling"],"authentication":"API key required (InboxPlus JWT token)","commonUseCases":["Automated customer onboarding sequences","Sales follow-up automation","Marketing email campaigns with tracking"],"limitations":["Gmail is required as the email sending provider; InboxPlus does not replace Gmail","The first email (Day 0) must be sent via Gmail node","Automated follow-ups are handled by InboxPlus, not n8n directly","Sequences stop automatically when a recipient replies"],"relatedNodes":["Gmail Send","Gmail Get Messages","Gmail Get Threads"]}


node_type: n8n-nodes-emailvalidation.emailValidation
package_name: n8n-nodes-emailvalidation
display_name: EmailValidation
description: Validate email addresses via emailvalidation.io API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: everapi-user
author_github_url: https://github.com/everapihq/
npm_package_name: n8n-nodes-emailvalidation
npm_version: 0.1.2
community_fetched_at: 2026-03-25T21:19:40.901Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "validateEmail",
      "options": [
        {
          "name": "Validate Email",
          "value": "validateEmail",
          "action": "Validate email address",
          "routing": {
            "request": {
              "qs": {
                "email": "={{$parameter[\"email\"]}}",
                "catch_all": "={{$parameter[\"catchAll\"] ? 1 : undefined}}"
              },
              "url": "/info",
              "method": "GET"
            }
          },
          "description": "Retrieve information about an email address"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Validate Email",
      "value": "validateEmail",
      "action": "Validate email address",
      "routing": {
        "request": {
          "qs": {
            "email": "={{$parameter[\"email\"]}}",
            "catch_all": "={{$parameter[\"catchAll\"] ? 1 : undefined}}"
          },
          "url": "/info",
          "method": "GET"
        }
      },
      "description": "Retrieve information about an email address"
    }
  ]

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

  # n8n-nodes-emailvalidation

  This package provides the EmailValidation community node for [n8n](https://n8n.io). It integrates the [emailvalidation.io API](https://emailvalidation.io) to validate and verify email addresses.

  To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

  If you would like your node to be available on n8n cloud you can also [submit your node for verification](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/).

  ## Prerequisites

  You need the following installed on your development machine:

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

  ## Using this starter

  These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

  1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
  2. Clone your new repo:
     ```
     git clone https://github.com/<your organization>/<your-repo-name>.git
     ```
  3. Run `npm i` to install dependencies.
  4. Open the project in your editor.
  5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
  6. Update the `package.json` to match your details.
  7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
  8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
  9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
  10. Update the LICENSE file to use your details.
  11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

  ## More information

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

  ## EmailValidation Node

  Validate and verify email addresses using the `emailvalidation.io` API.

  ### Credentials

  - Create credentials of type `EmailValidation API`.
  - Fields:
    - API Key (stored securely)
    - Base URL: defaults to `https://api.emailvalidation.io/v1`

  Authentication is sent via query parameter `apikey` (the API also supports header-based auth). See docs: [`https://emailvalidation.io/docs/`](https://emailvalidation.io/docs/).

  ### Operation

  - Validate Email
    - Email (required) — the email address to validate
    - Catch All (optional) — when enabled, sets `catch_all=1` to perform catch-all detection (paid plans)

  Per endpoint docs: [`https://emailvalidation.io/docs/info`](https://emailvalidation.io/docs/info)

  The node performs a `GET /v1/info` with `email`, optional `catch_all`, and `apikey` query parameters. Example request:

  ```bash
  curl -G "https://api.emailvalidation.io/v1/info" \
    --data-urlencode "email=support@emailvalidation.io" \
    --data-urlencode "apikey=YOUR-API-KEY"
  ```

  ### Example Output

  ```json
  {
    "email": "[email protected]",
    "user": "support",
    "tag": "",
    "domain": "emailvalidation.io",
    "smtp_check": true,
    "mx_found": true,
    "did_you_mean": "",
    "role": true,
    "disposable": false,
    "score": 0.64,
    "state": "deliverable",
    "reason": "valid_mailbox",
    "free": false,
    "format_valid": true,
    "catch_all": null
  }
  ```

  See documentation for field meanings and state/reason descriptions: [`https://emailvalidation.io/docs/info`](https://emailvalidation.io/docs/info)

  ## License

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

ai_documentation_summary:
  {"purpose":"Validates and verifies email addresses using the emailvalidation.io API to check deliverability, format, and other email quality metrics.","capabilities":["Validate email address format and deliverability","Detect disposable email addresses","Identify catch-all domains","Check if email is a role-based address","Verify MX records exist","Perform SMTP checks","Provide validation score and state"],"authentication":"API Key required (sent via query parameter 'apikey' or supported via header-based auth)","commonUseCases":["Email verification before sending campaigns","Cleaning email lists to remove invalid addresses","Preventing bounce rates in email marketing","Validating user email addresses during registration"],"limitations":["Catch-all detection requires paid plans","Requires valid API key from emailvalidation.io","May have rate limits based on API plan"],"relatedNodes":["EmailSend","EmailTemplates","HTTP Request"]}


node_type: @trustify-da/n8n-nodes-dependency-analytics.dependencyAnalytics
package_name: @trustify-da/n8n-nodes-dependency-analytics
display_name: Dependency Analytics
description: Get data from Dependency Analytics API
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: adva_oren
author_github_url: https://github.com/trustification/n8n-nodes-dependency-analytics.git
npm_package_name: @trustify-da/n8n-nodes-dependency-analytics
npm_version: 1.0.2
community_fetched_at: 2026-03-25T21:19:40.901Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "vulnerability",
      "options": [
        {
          "name": "SBOM",
          "value": "sbom"
        },
        {
          "name": "Vulnerability",
          "value": "vulnerability"
        },
        {
          "name": "Advisory",
          "value": "advisory"
        }
      ],
      "description": "Choose which Trustify resource to work with. This affects available operations and fields.",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get sbom",
          "description": "Retrieve an sbom"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many sboms",
          "description": "Retrieve a list of sboms"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sbom"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get vulnerability",
          "description": "Retrieve a vulnerability"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many vulnerabilities",
          "description": "Retrieve a list of vulnerabilities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vulnerability"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get advisory",
          "description": "Retrieve an advisory"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many advisories",
          "description": "Retrieve a list of advisories"
        },
        {
          "name": "Analyze",
          "value": "analyze",
          "action": "Analyze advisories",
          "description": "Analyze advisories from purls or an SBOM"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "advisory"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"get","name":"Get","description":"Retrieve an sbom","resource":"sbom"},{"operation":"getMany","name":"Get Many","description":"Retrieve a list of sboms","resource":"sbom"},{"operation":"get","name":"Get","description":"Retrieve a vulnerability","resource":"vulnerability"},{"operation":"getMany","name":"Get Many","description":"Retrieve a list of vulnerabilities","resource":"vulnerability"},{"operation":"get","name":"Get","description":"Retrieve an advisory","resource":"advisory"},{"operation":"getMany","name":"Get Many","description":"Retrieve a list of advisories","resource":"advisory"},{"operation":"analyze","name":"Analyze","description":"Analyze advisories from purls or an SBOM","resource":"advisory"}]

npm_readme:
  [![ci](https://github.com/trustification/n8n-nodes-dependency-analytics/actions/workflows/ci.yaml/badge.svg)](https://github.com/trustification/n8n-nodes-dependency-analytics/actions/workflows/ci.yaml)
  [![codecov](https://codecov.io/gh/trustification/n8n-nodes-dependency-analytics/graph/badge.svg?token=WIH8MUMZ7T)](https://codecov.io/gh/trustification/n8n-nodes-dependency-analytics)
  # n8n-nodes-dependency-analytics

  This is an [n8n](https://n8n.io/) community node for [Red Hat Dependency Analytics](https://github.com/trustification).

  Dependency Analytics helps organizations explore the relationships between applications, dependencies, and vulnerabilities by consuming and managing:

  - **Software Bill of Materials (SBOMs)**
  - **Vulnerability Exploitability eXchange (VEX)** data
  - **Vendor advisories** from vulnerability databases

  It is designed for **DevSecOps teams and developers** to better understand and reduce organizational risk exposure.

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

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

  ## Installation

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

  ## Operations

  This node provides three operation groups that mirror the Dependency Analytics API:

  **SBOM operations**

  - **Get SBOM** - Retrieve metadata for a single SBOM by its SHA (supports `sha256:`, `sha384:`, `sha512:` prefixes).
  - **Get Many SBOMs** - List SBOMs in your instance with optional limit/sorting.

  **Advisory operations**

  - **Get Advisory** - Fetch a specific advisory (includes identifiers, issuer, dates, and CVE links where available).
  - **Get Many Advisories** - List advisories with optional sorting.
  - **Analyze** - Resolve advisories for supplied packages:
    - From **PURLs**: send one or more PURLs and receive advisories per package.
    - From an **SBOM SHA**: look up the SBOM, then return advisories associated with that SBOM.

  **Vulnerability operations**

  - **Get Vulnerability** - Retrieve a single vulnerability record (e.g., by CVE).
  - **Get Many Vulnerabilities** - List vulnerability records with optional sorting.

  ### Sorting and limits

  - List-style operations accept multiple sort rules; they are applied in order after the items are fetched.
  - Supported sort fields:
    - `SBOMs (Get Many)`: published, name, packages (count), size
    - `Advisories (Get Many)`: published, title, size
    - `Advisories (Analyze)`: published, title, average score, average severity (Critical > High > Medium > Low > None > Unknown)
    - `Vulnerabilities (Get Many)`: published, title, average severity, average score
  - The `Limit` option caps results (default 50, minimum 1). 

  ### Output modes

  - `Simplified` (default): minimal, stable shape for each resource to keep payloads small.
  - `Raw`: returns the API response as-is (use when you need every field).
  - `Selected Fields`: pick the properties you want; identifiers are always included.
  - Tip: When chaining nodes or using AI tools, prefer `Simplified` or a narrow `Selected Fields` set to avoid oversized items.


  ## Credentials

  This node supports Client Credentials OAuth2 type for authenticating with Red Hat Dependency Analytics.

  ### RHTPA Client Credentials

  - Use when connecting to RHTPA cloud services
  - Required parameters: (Provided by the RHTPA team upon request)
    - Client ID
    - Client Secret

  ### Trustify Client Credentials

  - Use when connecting to:
    - On premise Trustify instance
    - Local development
  - It requires that in your SSO provider a confidential client exists
    - The Trustify instance accepts this client id
    - The Trustify instance can map the client or scope to the necessary permissions

  For more information refer to the [Trustify - OIDC Docs](https://github.com/guacsec/trustify/blob/main/docs/oidc.md)

  > **Note:** If you are running n8n locally and see the error *"The connection cannot be established, this usually occurs due to an incorrect host (domain) value"*, try:
  > ```bash
  > export NODE_TLS_REJECT_UNAUTHORIZED=0
  > n8n start
  > ```



  ## Usage

  1. Add the Dependency Analytics node to your n8n workflow

  2. Select an operation (e.g., “List SBOMs”)

  3. Provide required inputs (e.g., SBOM SHA)

  4. Run the workflow and process the results

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Dependency Analytics GitHub](https://github.com/trustification)
  * [Trustify Documantation](https://docs.guac.sh/trustify/)

ai_documentation_summary:
  {"purpose":"A n8n community node that retrieves and analyzes data from Red Hat Dependency Analytics, including SBOMs, advisories, and vulnerabilities.","capabilities":["Retrieve SBOM metadata by SHA","List SBOMs with sorting and pagination","Fetch specific advisories","List advisories with sorting","Resolve advisories from PURLs","Resolve advisories from SBOM SHA","Retrieve specific vulnerability records","List vulnerability records with sorting","Apply sorting rules (e.g., by severity, score, title)","Control output mode (Simplified, Raw, Selected Fields)"],"authentication":"OAuth2 (Client Credentials)","commonUseCases":["DevSecOps risk exposure analysis","Dependency vulnerability scanning","SBOM management and compliance","VEX (Vulnerability Exploitability eXchange) data retrieval","Vendor advisory monitoring"],"limitations":["Requires specific OAuth2 setup (Client Credentials) for both cloud and on-premise instances","Local n8n execution may require disabling TLS verification for certain connection issues","Default limit is 50 items per list operation","Output payload size can be large if 'Raw' mode is used without field selection"],"relatedNodes":["HTTP Request","OAuth2 Authentication","JSON to JSON","Split In Batches"]}


node_type: @thingsboard/n8n-nodes-thingsboard.thingsBoard
package_name: @thingsboard/n8n-nodes-thingsboard
display_name: ThingsBoard
description: Interact with ThingsBoard REST API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: thingsboardiot
author_github_url: https://github.com/thingsboard/thingsboard-n8n-node.git
npm_package_name: @thingsboard/n8n-nodes-thingsboard
npm_version: 1.1.1
community_fetched_at: 2026-03-25T21:19:40.902Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "device",
      "options": [
        {
          "name": "Alarm",
          "value": "alarm"
        },
        {
          "name": "Asset",
          "value": "asset"
        },
        {
          "name": "Customer",
          "value": "customer"
        },
        {
          "name": "Dashboard",
          "value": "dashboard"
        },
        {
          "name": "Device",
          "value": "device"
        },
        {
          "name": "Entity Group",
          "value": "entityGroup"
        },
        {
          "name": "Relation",
          "value": "relation"
        },
        {
          "name": "Telemetry",
          "value": "telemetry"
        }
      ],
      "description": "Select which ThingsBoard resource to work with",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDeviceById",
      "options": [
        {
          "name": "Create",
          "value": "createDevice",
          "action": "Create a device",
          "description": "Create a device"
        },
        {
          "name": "Delete",
          "value": "deleteDevice",
          "action": "Delete a device",
          "description": "Delete a device"
        },
        {
          "name": "Get by ID",
          "value": "getDeviceById",
          "action": "Get a device by ID",
          "description": "Fetch a device based on the provided Device ID"
        },
        {
          "name": "Get by Name",
          "value": "getTenantDevice",
          "action": "Get a device by name",
          "description": "Fetch a device by name"
        },
        {
          "name": "Get Many",
          "value": "getTenantDevices",
          "action": "Get devices",
          "description": "Returns a page of devices"
        },
        {
          "name": "Get Many by Customer",
          "value": "getCustomerDevices",
          "action": "Get customer devices",
          "description": "Returns a page of devices assigned to the customer"
        },
        {
          "name": "Get Many by Entity Group",
          "value": "getDevicesByEntityGroupId",
          "action": "Get entity group devices",
          "description": "Returns a page of devices that belongs to the specified Entity Group ID"
        },
        {
          "name": "Get Many for Current User",
          "value": "getUserDevices",
          "action": "Get user devices",
          "description": "Returns a page of devices accessible to the current user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "device"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAssetById",
      "options": [
        {
          "name": "Create",
          "value": "createAsset",
          "action": "Create an asset",
          "description": "Create an asset"
        },
        {
          "name": "Delete",
          "value": "deleteAsset",
          "action": "Delete an asset",
          "description": "Delete an asset"
        },
        {
          "name": "Get by ID",
          "value": "getAssetById",
          "action": "Get asset by id",
          "description": "Fetch an asset based on the provided Asset ID"
        },
        {
          "name": "Get by Name",
          "value": "getTenantAsset",
          "action": "Get asset by name",
          "description": "Fetch an asset by name"
        },
        {
          "name": "Get Many",
          "value": "getTenantAssets",
          "action": "Get tenant assets",
          "description": "Returns a page of assets"
        },
        {
          "name": "Get Many by Customer",
          "value": "getCustomerAssets",
          "action": "Get customer assets",
          "description": "Returns a page of assets assigned to the customer"
        },
        {
          "name": "Get Many by Entity Group",
          "value": "getAssetsByEntityGroupId",
          "action": "Get assets by entity group",
          "description": "Returns a page of devices that belongs to the specified Entity Group ID"
        },
        {
          "name": "Get Many for Current User",
          "value": "getUserAssets",
          "action": "Get user assets",
          "description": "Returns a page of assets accessible to the current user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "asset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAlarmById",
      "options": [
        {
          "name": "Get All",
          "value": "getAllAlarms",
          "action": "Get all alarms",
          "description": "Returns a page of alarms that belongs to the current owner"
        },
        {
          "name": "Get by ID",
          "value": "getAlarmById",
          "action": "Get alarm by id",
          "description": "Fetch an alarm based on the provided Alarm ID"
        },
        {
          "name": "Get by originator",
          "value": "getAlarms",
          "action": "Get alarms by originator",
          "description": "Returns a page of alarms for the selected entity"
        },
        {
          "name": "Get Highest Severity",
          "value": "getHighestAlarmSeverity",
          "action": "Get alarm highest severity",
          "description": "Search the alarms by originator and return the highest AlarmSeverity(CRITICAL, MAJOR, MINOR, WARNING or INDETERMINATE)"
        },
        {
          "name": "Get Info by ID",
          "value": "getAlarmInfoById",
          "action": "Get alarm info by id",
          "description": "Fetch an alarm Info based on the provided Alarm ID"
        },
        {
          "name": "Get Types",
          "value": "getAlarmTypes",
          "action": "Get alarm types",
          "description": "Returns a set of unique alarm types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "alarm"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCustomerById",
      "options": [
        {
          "name": "Create",
          "value": "createCustomer",
          "action": "Create a customer",
          "description": "Create a customer"
        },
        {
          "name": "Delete",
          "value": "deleteCustomer",
          "action": "Delete a customer",
          "description": "Delete a customer"
        },
        {
          "name": "Get by ID",
          "value": "getCustomerById",
          "action": "Get customer by id",
          "description": "Fetch a customer based on the provided Customer ID"
        },
        {
          "name": "Get by Title",
          "value": "getTenantCustomer",
          "action": "Get customer by title",
          "description": "Fetch a customer by title"
        },
        {
          "name": "Get Many",
          "value": "getCustomers",
          "action": "Get customers",
          "description": "Returns a page of customers"
        },
        {
          "name": "Get Many by Entity Group",
          "value": "getCustomersByEntityGroupId",
          "action": "Get customers by entity group",
          "description": "Returns a list of customers based on the provided Entity ID"
        },
        {
          "name": "Get Many for Current User",
          "value": "getUserCustomers",
          "action": "Get user customers",
          "description": "Returns a page of customers available for the current user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRelation",
      "options": [
        {
          "name": "By From",
          "value": "findByFrom",
          "action": "Get relation by from",
          "description": "Returns list of relation objects for the specified entity by the \"from\" direction"
        },
        {
          "name": "By From (with Relation Type)",
          "value": "findByFromWithRelationType",
          "action": "Get relation by from with relation type",
          "description": "Returns list of relation objects for the specified entity by the \"from\" direction with relation type"
        },
        {
          "name": "By To",
          "value": "findByTo",
          "action": "Get relation by to",
          "description": "Returns list of relation objects for the specified entity by the \"to\" direction"
        },
        {
          "name": "By to (with Relation Type)",
          "value": "findByToWithRelationType",
          "action": "Get relation by to with relation type",
          "description": "Returns list of relation objects for the specified entity by the \"to\" direction with relation type"
        },
        {
          "name": "Get",
          "value": "getRelation",
          "action": "Get a relation",
          "description": "Fetch a specific relation based on the provided parameters"
        },
        {
          "name": "Info by From",
          "value": "findInfoByFrom",
          "action": "Get relation info by from",
          "description": "Fetch relation information for the specified entity by the \"from\" direction"
        },
        {
          "name": "Info by To",
          "value": "findInfoByTo",
          "action": "Get relation info by to",
          "description": "Fetch relation information for the specified entity by the \"to\" direction"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "relation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTimeseries",
      "options": [
        {
          "name": "Attribute Keys",
          "value": "getAttributeKeys",
          "action": "Get attribute keys",
          "description": "Returns a set of unique attribute key names for the selected entity"
        },
        {
          "name": "Attribute Keys (by Scope)",
          "value": "getAttributeKeysByScope",
          "action": "Get attribute keys by scope",
          "description": "Returns a set of unique attribute key names for the selected entity and scope"
        },
        {
          "name": "Attributes",
          "value": "getAttributes",
          "action": "Get attributes",
          "description": "Returns a list of attributes for the selected entity"
        },
        {
          "name": "Delete Device Attributes",
          "value": "deleteDeviceAttributes",
          "action": "Delete device attributes",
          "description": "Delete device attributes by keys"
        },
        {
          "name": "Delete Entity Attributes",
          "value": "deleteEntityAttributes",
          "action": "Delete entity attributes",
          "description": "Delete entity attributes by keys"
        },
        {
          "name": "Delete Entity Timeseries",
          "value": "deleteEntityTimeseries",
          "action": "Delete entity timeseries",
          "description": "Delete entity time series data"
        },
        {
          "name": "Save Device Attributes",
          "value": "saveDeviceAttributes",
          "action": "Save device attributes",
          "description": "Creates or updates device attributes"
        },
        {
          "name": "Save Entity Attributes",
          "value": "saveEntityAttributes",
          "action": "Save entity attributes",
          "description": "Creates or updates entity attributes for any entity type"
        },
        {
          "name": "Save Entity Telemetry",
          "value": "saveEntityTelemetry",
          "action": "Save entity telemetry",
          "description": "Creates or updates entity time series data"
        },
        {
          "name": "Save Entity Telemetry with TTL",
          "value": "saveEntityTelemetryWithTTL",
          "action": "Save entity telemetry with ttl",
          "description": "Creates or updates entity time series data with TTL"
        },
        {
          "name": "Timeseries (Latest)",
          "value": "getLatestTimeseries",
          "action": "Get latest timeseries",
          "description": "Returns the latest timeseries data for the selected entity"
        },
        {
          "name": "Timeseries (Range)",
          "value": "getTimeseries",
          "action": "Get timeseries",
          "description": "Returns timeseries data for the selected entity within a specified range"
        },
        {
          "name": "Timeseries Keys",
          "value": "getTimeseriesKeys",
          "action": "Get timeseries keys",
          "description": "Returns a set of unique timeseries key names for the selected entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "telemetry"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getEntityGroupById",
      "options": [
        {
          "name": "Get by ID",
          "value": "getEntityGroupById",
          "action": "Get entity group by id",
          "description": "Fetch an entity group based on the provided Entity Group ID"
        },
        {
          "name": "Get by Owner/Name/Type",
          "value": "getEntityGroupByOwnerAndNameAndType",
          "action": "Get entity group by owner name and type",
          "description": "Fetch an entity group based on the provided owner, name, and type"
        },
        {
          "name": "Get Many by Entity",
          "value": "getEntityGroupsForEntity",
          "action": "Get entity groups for entity",
          "description": "Fetch entity groups associated with the provided entity"
        },
        {
          "name": "Get Many by Owner and Type",
          "value": "getEntityGroupsByOwnerAndType",
          "action": "Get entity groups by owner and type",
          "description": "Fetch entity groups based on the provided owner and type"
        },
        {
          "name": "Get Many by Type",
          "value": "getEntityGroupsByType",
          "action": "Get entity groups by type",
          "description": "Fetch entity groups based on the provided type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "entityGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDashboardById",
      "options": [
        {
          "name": "Create",
          "value": "createDashboard",
          "action": "Create a dashboard",
          "description": "Create a dashboard"
        },
        {
          "name": "Delete",
          "value": "deleteDashboard",
          "action": "Delete a dashboard",
          "description": "Delete a dashboard"
        },
        {
          "name": "Get by ID",
          "value": "getDashboardById",
          "action": "Get dashboard by id",
          "description": "Fetch a dashboard based on the provided Dashboard ID"
        },
        {
          "name": "Get Customer Dashboards",
          "value": "getCustomerDashboards",
          "action": "Get customer dashboards",
          "description": "Returns a page of dashboards based on the provided Customer ID"
        },
        {
          "name": "Get Dashboards",
          "value": "getDashboards",
          "action": "Get dashboards",
          "description": "Returns a page of dashboards owned by the tenant of a current user"
        },
        {
          "name": "Get User Dashboards",
          "value": "getUserDashboards",
          "action": "Get user dashboards",
          "description": "Returns a page of dashboards available for the current user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"createDevice","name":"Create","description":"Create a device","resource":"device"},{"operation":"deleteDevice","name":"Delete","description":"Delete a device","resource":"device"},{"operation":"getDeviceById","name":"Get by ID","description":"Fetch a device based on the provided Device ID","resource":"device"},{"operation":"getTenantDevice","name":"Get by Name","description":"Fetch a device by name","resource":"device"},{"operation":"getTenantDevices","name":"Get Many","description":"Returns a page of devices","resource":"device"},{"operation":"getCustomerDevices","name":"Get Many by Customer","description":"Returns a page of devices assigned to the customer","resource":"device"},{"operation":"getDevicesByEntityGroupId","name":"Get Many by Entity Group","description":"Returns a page of devices that belongs to the specified Entity Group ID","resource":"device"},{"operation":"getUserDevices","name":"Get Many for Current User","description":"Returns a page of devices accessible to the current user","resource":"device"},{"operation":"createAsset","name":"Create","description":"Create an asset","resource":"asset"},{"operation":"deleteAsset","name":"Delete","description":"Delete an asset","resource":"asset"},{"operation":"getAssetById","name":"Get by ID","description":"Fetch an asset based on the provided Asset ID","resource":"asset"},{"operation":"getTenantAsset","name":"Get by Name","description":"Fetch an asset by name","resource":"asset"},{"operation":"getTenantAssets","name":"Get Many","description":"Returns a page of assets","resource":"asset"},{"operation":"getCustomerAssets","name":"Get Many by Customer","description":"Returns a page of assets assigned to the customer","resource":"asset"},{"operation":"getAssetsByEntityGroupId","name":"Get Many by Entity Group","description":"Returns a page of devices that belongs to the specified Entity Group ID","resource":"asset"},{"operation":"getUserAssets","name":"Get Many for Current User","description":"Returns a page of assets accessible to the current user","resource":"asset"},{"operation":"getAllAlarms","name":"Get All","description":"Returns a page of alarms that belongs to the current owner","resource":"alarm"},{"operation":"getAlarmById","name":"Get by ID","description":"Fetch an alarm based on the provided Alarm ID","resource":"alarm"},{"operation":"getAlarms","name":"Get by originator","description":"Returns a page of alarms for the selected entity","resource":"alarm"},{"operation":"getHighestAlarmSeverity","name":"Get Highest Severity","description":"Search the alarms by originator and return the highest AlarmSeverity(CRITICAL, MAJOR, MINOR, WARNING or INDETERMINATE)","resource":"alarm"},{"operation":"getAlarmInfoById","name":"Get Info by ID","description":"Fetch an alarm Info based on the provided Alarm ID","resource":"alarm"},{"operation":"getAlarmTypes","name":"Get Types","description":"Returns a set of unique alarm types","resource":"alarm"},{"operation":"createCustomer","name":"Create","description":"Create a customer","resource":"customer"},{"operation":"deleteCustomer","name":"Delete","description":"Delete a customer","resource":"customer"},{"operation":"getCustomerById","name":"Get by ID","description":"Fetch a customer based on the provided Customer ID","resource":"customer"},{"operation":"getTenantCustomer","name":"Get by Title","description":"Fetch a customer by title","resource":"customer"},{"operation":"getCustomers","name":"Get Many","description":"Returns a page of customers","resource":"customer"},{"operation":"getCustomersByEntityGroupId","name":"Get Many by Entity Group","description":"Returns a list of customers based on the provided Entity ID","resource":"customer"},{"operation":"getUserCustomers","name":"Get Many for Current User","description":"Returns a page of customers available for the current user","resource":"customer"},{"operation":"findByFrom","name":"By From","description":"Returns list of relation objects for the specified entity by the \"from\" direction","resource":"relation"},{"operation":"findByFromWithRelationType","name":"By From (with Relation Type)","description":"Returns list of relation objects for the specified entity by the \"from\" direction with relation type","resource":"relation"},{"operation":"findByTo","name":"By To","description":"Returns list of relation objects for the specified entity by the \"to\" direction","resource":"relation"},{"operation":"findByToWithRelationType","name":"By to (with Relation Type)","description":"Returns list of relation objects for the specified entity by the \"to\" direction with relation type","resource":"relation"},{"operation":"getRelation","name":"Get","description":"Fetch a specific relation based on the provided parameters","resource":"relation"},{"operation":"findInfoByFrom","name":"Info by From","description":"Fetch relation information for the specified entity by the \"from\" direction","resource":"relation"},{"operation":"findInfoByTo","name":"Info by To","description":"Fetch relation information for the specified entity by the \"to\" direction","resource":"relation"},{"operation":"getAttributeKeys","name":"Attribute Keys","description":"Returns a set of unique attribute key names for the selected entity","resource":"telemetry"},{"operation":"getAttributeKeysByScope","name":"Attribute Keys (by Scope)","description":"Returns a set of unique attribute key names for the selected entity and scope","resource":"telemetry"},{"operation":"getAttributes","name":"Attributes","description":"Returns a list of attributes for the selected entity","resource":"telemetry"},{"operation":"deleteDeviceAttributes","name":"Delete Device Attributes","description":"Delete device attributes by keys","resource":"telemetry"},{"operation":"deleteEntityAttributes","name":"Delete Entity Attributes","description":"Delete entity attributes by keys","resource":"telemetry"},{"operation":"deleteEntityTimeseries","name":"Delete Entity Timeseries","description":"Delete entity time series data","resource":"telemetry"},{"operation":"saveDeviceAttributes","name":"Save Device Attributes","description":"Creates or updates device attributes","resource":"telemetry"},{"operation":"saveEntityAttributes","name":"Save Entity Attributes","description":"Creates or updates entity attributes for any entity type","resource":"telemetry"},{"operation":"saveEntityTelemetry","name":"Save Entity Telemetry","description":"Creates or updates entity time series data","resource":"telemetry"},{"operation":"saveEntityTelemetryWithTTL","name":"Save Entity Telemetry with TTL","description":"Creates or updates entity time series data with TTL","resource":"telemetry"},{"operation":"getLatestTimeseries","name":"Timeseries (Latest)","description":"Returns the latest timeseries data for the selected entity","resource":"telemetry"},{"operation":"getTimeseries","name":"Timeseries (Range)","description":"Returns timeseries data for the selected entity within a specified range","resource":"telemetry"},{"operation":"getTimeseriesKeys","name":"Timeseries Keys","description":"Returns a set of unique timeseries key names for the selected entity","resource":"telemetry"},{"operation":"getEntityGroupById","name":"Get by ID","description":"Fetch an entity group based on the provided Entity Group ID","resource":"entityGroup"},{"operation":"getEntityGroupByOwnerAndNameAndType","name":"Get by Owner/Name/Type","description":"Fetch an entity group based on the provided owner, name, and type","resource":"entityGroup"},{"operation":"getEntityGroupsForEntity","name":"Get Many by Entity","description":"Fetch entity groups associated with the provided entity","resource":"entityGroup"},{"operation":"getEntityGroupsByOwnerAndType","name":"Get Many by Owner and Type","description":"Fetch entity groups based on the provided owner and type","resource":"entityGroup"},{"operation":"getEntityGroupsByType","name":"Get Many by Type","description":"Fetch entity groups based on the provided type","resource":"entityGroup"},{"operation":"createDashboard","name":"Create","description":"Create a dashboard","resource":"dashboard"},{"operation":"deleteDashboard","name":"Delete","description":"Delete a dashboard","resource":"dashboard"},{"operation":"getDashboardById","name":"Get by ID","description":"Fetch a dashboard based on the provided Dashboard ID","resource":"dashboard"},{"operation":"getCustomerDashboards","name":"Get Customer Dashboards","description":"Returns a page of dashboards based on the provided Customer ID","resource":"dashboard"},{"operation":"getDashboards","name":"Get Dashboards","description":"Returns a page of dashboards owned by the tenant of a current user","resource":"dashboard"},{"operation":"getUserDashboards","name":"Get User Dashboards","description":"Returns a page of dashboards available for the current user","resource":"dashboard"}]

npm_readme:
  # ThingsBoard n8n Node

  ![Banner image](images/banner.png)

  [n8n](https://n8n.io/) is a workflow automation platform that combines traditional business process automation with AI capabilities.

  The **ThingsBoard n8n Node** provides deep and native integration between n8n and the ThingsBoard IoT Platform, enabling you to manage IoT infrastructure directly from n8n workflows.

  ## ✨ Features

  - **Manage IoT devices, assets, and customers** directly from n8n workflows
  - **Access and manipulate telemetry data** in real-time with attribute and time-series operations
  - **Monitor alarms** and create automated responses based on alarm severity and type
  - **Navigate entity relationships** to understand your IoT infrastructure topology
  - **Build AI-powered IoT automation** using n8n AI Agents with natural language commands
  - **Automate complex IoT workflows** with 61 operations across 8 resources (51 operations for Community Edition)

  ## 📖 Documentation

  For detailed documentation including usage examples, workflow patterns, and API reference, visit:

  **[ThingsBoard n8n Node Documentation](https://thingsboard.io/docs/samples/analytics/n8n-node/)**

  ## 🚀 Quick Start

  ### Installation

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

  ### Configuration

  1. In n8n, add ThingsBoard credentials:
     - **Base URL**: `https://demo.thingsboard.io`, `https://thingsboard.cloud` or your instance URL
     - **Authentication Type**: Choose **API Key** (recommended) or **Username / Password**
     - **API Key**: Your ThingsBoard API key (see [API Key documentation](https://thingsboard.io/docs/user-guide/security/api-keys/))
  2. Add the ThingsBoard node to your workflow
  3. Select a resource (Device, Asset, etc.) and operation


  ## 📦 Installation

  ### GUI Installation

  For self-hosted n8n instances, you can install directly via the web interface:

  1. Open n8n in your browser
  2. Navigate to **Settings** → **Community Nodes**
  3. Click **Install a community node**
  4. Enter package name: `@thingsboard/n8n-nodes-thingsboard`
  5. Click **Install**
  6. Wait for installation to complete
  7. Refresh your browser

  **Note**: This method requires owner/admin permissions and is only available for self-hosted n8n (not n8n Cloud).

  ### n8n Cloud

  The ThingsBoard node requires verification to be available on n8n Cloud. n8n Cloud supports a select group of verified community nodes included in their official catalog.

  **Current Status**: Until the node is verified and included in the Cloud-available catalog, use self-hosted n8n (local or Docker) with any installation method above.

  ## 🔧 Verify Installation

  After installation and restart:

  1. Open n8n in your browser (typically `http://localhost:5678`)
  2. Create a new workflow
  3. Click the **+** button to add a node
  4. Search for **"ThingsBoard"** in the node picker
  5. The **ThingsBoard** node should appear in the search results

  If you don't see the node:
  - Verify the npm installation completed without errors
  - Ensure you restarted n8n after installation (for Method 2)
  - Check n8n logs for any loading errors

  ## 🔑 Setting Up Credentials

  Before using the ThingsBoard node, configure your connection credentials:

  1. In n8n, navigate to **Credentials** → **New Credential**
  2. Search for **"ThingsBoard API"**
  3. Fill in the required fields:

  #### Option A: API Key (recommended)

  | Field | Description | Example |
  |-------|-------------|---------|
  | **Base URL** | ThingsBoard instance URL | `https://demo.thingsboard.io` or `https://thingsboard.cloud` |
  | **Authentication Type** | Select **API Key** | |
  | **API Key** | Your ThingsBoard API key | `your-api-key-here` |

  To create an API key, go to your ThingsBoard instance → **API Keys** and generate a new key. See the [API Key documentation](https://thingsboard.io/docs/user-guide/security/api-keys/) for details.

  #### Option B: Username / Password

  | Field | Description | Example |
  |-------|-------------|---------|
  | **Base URL** | ThingsBoard instance URL | `https://demo.thingsboard.io` or `https://thingsboard.cloud` |
  | **Authentication Type** | Select **Username / Password** | |
  | **Username** | Your ThingsBoard account email | `tenant@thingsboard.org` |
  | **Password** | Your ThingsBoard account password | `tenant` |

  4. Click **Save** to store the credentials

  The credentials are encrypted and stored securely by n8n. You can reuse the same credentials across multiple ThingsBoard nodes in different workflows.

  ## 📋 Supported Operations

  ### Device (8 operations)
  - ✅ Create Device (Params/JSON mode)
  - ✅ Delete Device
  - ✅ Get Device by ID
  - ✅ Get Device by Name
  - ✅ Get Tenant Devices
  - ✅ Get Customer Devices
  - ✅ Get Devices by Entity Group (PE only)
  - ✅ Get User Devices (PE only)

  ### Asset (7 operations)
  - ✅ Create Asset (Params/JSON mode)
  - ✅ Delete Asset
  - ✅ Get Asset by ID
  - ✅ Get Asset by Name
  - ✅ Get Tenant Assets
  - ✅ Get Customer Assets
  - ✅ Get Assets by Entity Group (PE only)
  - ✅ Get User Assets (PE only)

  ### Customer (7 operations)
  - ✅ Create Customer (Params/JSON mode)
  - ✅ Delete Customer
  - ✅ Get Customer by ID
  - ✅ Get Customer by Title
  - ✅ Get Customers
  - ✅ Get Customers by Entity Group (PE only)
  - ✅ Get User Customers (PE only)

  ### Dashboard (5 operations)
  - ✅ Create Dashboard (JSON mode)
  - ✅ Delete Dashboard
  - ✅ Get Dashboard by ID
  - ✅ Get Dashboards
  - ✅ Get Customer Dashboards

  ### Telemetry (14 operations)
  - ✅ Get Attributes
  - ✅ Get Attribute Keys
  - ✅ Get Attribute Keys (by Scope)
  - ✅ Get Latest Timeseries
  - ✅ Get Timeseries (Time Range)
  - ✅ Get Timeseries Keys
  - ✅ Save Entity Attributes
  - ✅ Save Device Attributes
  - ✅ Save Entity Telemetry
  - ✅ Save Entity Telemetry with TTL
  - ✅ Delete Entity Attributes
  - ✅ Delete Device Attributes
  - ✅ Delete Entity Timeseries

  ### Alarm (6 operations)
  - ✅ Get All Alarms
  - ✅ Get Alarm by ID
  - ✅ Get Alarm Info by ID
  - ✅ Get Alarms by Originator
  - ✅ Get Highest Severity Alarm
  - ✅ Get Alarm Types

  ### Relation (7 operations)
  - ✅ Get Relation
  - ✅ Find by From
  - ✅ Find by From with Relation Type
  - ✅ Find by To
  - ✅ Find by To with Relation Type
  - ✅ Find Info by From
  - ✅ Find Info by To

  ### Entity Group (5 operations - PE only)
  - ✅ Get Entity Group by ID
  - ✅ Get Entity Groups by Type
  - ✅ Get Entity Groups by Owner and Type
  - ✅ Get Entity Group by Owner/Name/Type
  - ✅ Get Entity Groups for Entity

  **Total: 61 operations across 8 resources**

  ## 🛠️ Development

  ### Quick Start

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

  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Run in development mode (watch)
  npm run dev
  ```

  ### Testing Locally

  ```bash
  # Link the package
  npm link

  # In your n8n directory
  npm link @thingsboard/n8n-nodes-thingsboard

  # Start n8n
  n8n start
  ```

  ## 💡 Usage Examples

  ### Example 1: 🤖 AI Agent Tool - Conversational IoT Control

  Use the ThingsBoard node as a **tool for AI Agents** to enable intelligent, natural language IoT automation.

  ![AI Agent Use Case](images/ai-agent-usecase.png)

  #### How it works

  1. User sends a chat message: *"What devices do I have and what's their status?"*
  2. AI Agent (powered by Google Gemini or OpenAI GPT-4) has access to ThingsBoard tools
  3. Agent autonomously calls:
     - `Get devices in ThingsBoard` → Retrieves device list
     - `Get timeseries in ThingsBoard` → Fetches latest telemetry
  4. Agent responds in natural language with the actual data

  #### Natural language commands

  - *"Show me the temperature of my living room sensor"*
  - *"Which devices are offline right now?"*
  - *"Update the threshold on device X to 30 degrees"*
  - *"Send me an alert if any temperature exceeds 25°C"*

  The AI agent understands context and calls the appropriate ThingsBoard operations automatically!

  ---

  ### Example 2: 💡 Daily Telemetry Export to AWS S3

  **Real-world scenario**: Every night, export device telemetry to S3, but also enrich it with device metadata from your CRM, convert to Parquet format for Athena, and trigger a Lambda function to update your data warehouse. One workflow, multiple outputs.

  **Why use n8n instead of ThingsBoard's native export**:
  - **Multi-destination** - Send the same data to S3 + Snowflake + email report in one workflow
  - **Data transformation** - Enrich telemetry with business context (customer names, locations from CRM)
  - **Custom formats** - Convert to Parquet, Avro, or CSV with specific schemas for your analytics tools
  - **Conditional logic** - Export only specific devices, filter by customer tier, or aggregate before storage
  - **Integration chains** - After S3 upload → Trigger AWS Lambda → Update tracking database → Send Slack notification

  ![Daily telemetry export](images/telemetry-export.png)
  ![Daily telemetry export result](images/telemetry-export-result.png)

  For a complete step-by-step guide with detailed screenshots, see the [full documentation](https://thingsboard.io/docs/samples/analytics/n8n-node/).

  ## 📚 API Reference

  The ThingsBoard n8n node is built on top of the ThingsBoard REST API. For detailed information about API endpoints, request/response formats, and additional parameters, refer to the [ThingsBoard REST API documentation](https://thingsboard.io/docs/reference/rest-api/).

  ## 🔗 Links

  - **npm Package**: [@thingsboard/n8n-nodes-thingsboard](https://www.npmjs.com/package/@thingsboard/n8n-nodes-thingsboard)
  - **GitHub Repository**: [thingsboard/thingsboard-n8n-node](https://github.com/thingsboard/thingsboard-n8n-node)
  - **n8n Documentation**: [docs.n8n.io](https://docs.n8n.io/)
  - **n8n Community**: [community.n8n.io](https://community.n8n.io/)
  - **ThingsBoard REST API**: [REST API Reference](https://thingsboard.io/docs/reference/rest-api/)

  ## 🫶 Support

  If you encounter issues or have questions about the ThingsBoard n8n node:

  - **GitHub Issues**: [Report bugs or request features](https://github.com/thingsboard/thingsboard-n8n-node/issues)
  - **ThingsBoard Community**: [Get help from the community](https://thingsboard.io/community/)
  - **n8n Community**: [n8n community](https://community.n8n.io/)

  ## 📄 License

  MIT License - see the [LICENSE file](https://github.com/thingsboard/thingsboard-n8n-node/blob/master/LICENSE.md) for details.

  ---

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

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the ThingsBoard IoT Platform REST API to manage devices, assets, customers, telemetry data, alarms, and dashboards within automated workflows.","capabilities":["Create and delete IoT devices, assets, customers, dashboards, and alarms","Retrieve device, asset, and customer information by ID, name, or group","Access and manipulate telemetry data including attributes and time-series","Monitor alarms and retrieve alarm information by severity or originator","Save entity attributes and telemetry data with optional Time-To-Live (TTL)","Delete entity attributes and timeseries data","Navigate entity relationships for IoT infrastructure topology","Support for 61 operations across 8 resources (51 for Community Edition)","Integration with n8n AI Agents for natural language IoT automation"],"authentication":"API Key (recommended) or Username/Password","commonUseCases":["Automated monitoring of IoT sensor data and alerts","Dynamic device provisioning and lifecycle management","Real-time telemetry analysis and historical data retrieval","Automated response workflows triggered by alarm events","Customer-specific dashboard creation and data filtering"],"limitations":["Some operations (e.g., Entity Group queries, User Devices/Assets) require Premium Edition (PE)","Not available on n8n Cloud until verified and added to the official catalog","Self-hosted n8n instances required for installation if not yet verified on Cloud"],"relatedNodes":["HTTP Request","Code","IF","SplitInBatches","Set"]}


node_type: @nvoip/n8n-nodes-nvoip.nvoip
package_name: @nvoip/n8n-nodes-nvoip
display_name: Nvoip
description: Make calls, send WhatsApp and SMS.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: lucasnaves
author_github_url: https://github.com/Nvoip/nvoip-n8n.git
npm_package_name: @nvoip/n8n-nodes-nvoip
npm_version: 0.1.11
community_fetched_at: 2026-03-25T21:19:40.902Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sms",
      "options": [
        {
          "name": "SMS",
          "value": "sms",
          "description": "SMS actions"
        },
        {
          "name": "WhatsApp",
          "value": "whatsapp",
          "description": "WhatsApp actions"
        },
        {
          "name": "Call",
          "value": "call",
          "description": "Call actions"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "makeCall",
      "options": [
        {
          "name": "Make Call",
          "value": "makeCall",
          "action": "Make a phone call",
          "description": "Make an outbound call using Nvoip"
        },
        {
          "name": "Send Interactive Voice Broadcast",
          "value": "sendVoiceBlastInteractive",
          "action": "Send interactive voice broadcast",
          "description": "Send an automated voice message with the ability to receive DTMF input"
        },
        {
          "name": "Send Voice Broadcast",
          "value": "sendVoiceBlast",
          "action": "Send voice broadcast",
          "description": "Send an automated voice message delivered as audio file or TTS"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendSms",
      "options": [
        {
          "name": "Send SMS",
          "value": "sendSms",
          "action": "Send SMS",
          "description": "Send a customized SMS message to a customer"
        },
        {
          "name": "Send SMS (Template)",
          "value": "sendTemplateSms",
          "action": "Send template SMS",
          "description": "Send an SMS using a predefined template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendWhatsapp",
      "options": [
        {
          "name": "Send WhatsApp (With HSM)",
          "value": "sendWhatsapp",
          "action": "Send whatsapp message",
          "description": "Send WhatsApp template messages using Nvoip for automated communication"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "whatsapp"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"makeCall","name":"Make Call","description":"Make an outbound call using Nvoip","resource":"call"},{"operation":"sendVoiceBlastInteractive","name":"Send Interactive Voice Broadcast","description":"Send an automated voice message with the ability to receive DTMF input","resource":"call"},{"operation":"sendVoiceBlast","name":"Send Voice Broadcast","description":"Send an automated voice message delivered as audio file or TTS","resource":"call"},{"operation":"sendSms","name":"Send SMS","description":"Send a customized SMS message to a customer","resource":"sms"},{"operation":"sendTemplateSms","name":"Send SMS (Template)","description":"Send an SMS using a predefined template","resource":"sms"},{"operation":"sendWhatsapp","name":"Send WhatsApp (With HSM)","description":"Send WhatsApp template messages using Nvoip for automated communication","resource":"whatsapp"}]

npm_readme:
  # 📡 @nvoip/n8n-nodes-nvoip

  [![Node.js Version](https://img.shields.io/badge/Node.js-20+-green)](https://nodejs.org/)
  [![n8n](https://img.shields.io/badge/n8n-supported-brightgreen)](https://n8n.io/)
  [![License](https://img.shields.io/badge/License-MIT-blue)](LICENSE)

  Integração da **Nvoip** com o **[n8n](https://n8n.io/)** para automação de comunicações:  
  ✅ Envio de SMS  
  ✅ Mensagens via WhatsApp  
  ✅ Ligações telefônicas  
  ✅ Torpedos de voz (simples e interativos)  

  ---

  ## 🚀 Introdução
  Este pacote fornece um **node personalizado para o n8n**, permitindo integrar de forma simples e rápida os serviços da **Nvoip** em fluxos de automação.  
  O projeto foi desenvolvido em **TypeScript**, com suporte a **OAuth2** para autenticação segura e diversas funcionalidades de comunicação.

  ---

  ## ⚙️ Como usar o node

  Siga este passo a passo para configurar e usar o node @nvoip/n8n-nodes-nvoip:

  1. **Instale o node da comunidade**  
     - Abra o n8n e vá até a aba de **Nodes da Comunidade**.  
     - Procure por `@nvoip/n8n-nodes-nvoip` e instale.

  2. **Adicione o node no seu fluxo**  
     - Arraste o node para o seu canvas de automação.  
     - Clique nele para abrir as configurações.

  3. **Configure suas credenciais**  
     - Na aba de **Login/Autenticação**, insira suas credenciais da Nvoip.  
     - O node utiliza **OAuth2**, garantindo acesso seguro à API da Nvoip.

  4. **Configure a ação desejada**  
     - **SMS**: Defina o número do destinatário e a mensagem (suporte a variáveis e templates).  
     - **WhatsApp**: Configure o envio de mensagens via API oficial, com suporte a templates predefinidos.  
     - **Ligações telefônicas**: Escolha o ramal de origem, número de destino e configure transferências se necessário.  
     - **Torpedo de voz**: Selecione **Simples** (texto convertido em áudio) ou **Interativo** (envio de link para áudio público).

  5. **Teste o fluxo**  
     - Execute o node no modo de teste.  
     - Verifique logs e mensagens enviadas para garantir que a integração está funcionando corretamente.

  6. **Salve e publique seu fluxo**  
     - Quando tudo estiver configurado, salve o fluxo e publique para produção.


  ## SMS

  -	Envio de mensagens customizadas
  	
  -	Suporte a variáveis e templates de SMS

  ## WhatsApp

  -	Envio de mensagens via API oficial
  	
  -	Suporte a templates predefinidos

  ## Ligações Telefônicas

  -	Disparo de chamadas via ramal
  	
  -	Conexão entre usuário e cliente final
  	
  -	Implementação inicial do recurso transferTrue (em desenvolvimento)
  	
  -	Torpedo de Voz
  	
  -	Simples: texto convertido em áudio
  	
  -	Interativo: envio de link para áudio público

  ## 📌 Conclusão

  O @nvoip/n8n-nodes-nvoip amplia o poder de automação no n8n, permitindo gerenciar toda a comunicação multicanal da Nvoip em um único node.
  A arquitetura modular garante extensibilidade e manutenção simples, abrindo espaço para futuras evoluções.

ai_documentation_summary:
  {"purpose":"This n8n community node integrates Nvoip services to automate SMS, WhatsApp messaging, phone calls, and voice torpedos within workflow executions.","capabilities":["Send custom SMS messages with variable and template support","Send WhatsApp messages via official API with predefined templates","Initiate phone calls from specific trunks","Implement voice torpedo features (simple text-to-audio and interactive public audio links)","Support for call transfers (in development)"],"authentication":"OAuth2","commonUseCases":["Automated customer notifications via SMS or WhatsApp","Interactive voice response systems for surveys or menus","Automated outbound calling campaigns","Multi-channel communication automation"],"limitations":["Call transfer functionality is in development and not yet fully implemented"],"relatedNodes":["n8n Community Node","n8n HTTP Request"]}


node_type: n8n-nodes-jigsawstack.jigsawStack
package_name: n8n-nodes-jigsawstack
display_name: JigsawStack
description: Use JigsawStack API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-03-25 21:19:40
author_name: yoeven
author_github_url: https://github.com/JigsawStack/n8n-integration.git
npm_package_name: n8n-nodes-jigsawstack
npm_version: 0.0.10
community_fetched_at: 2026-03-25T21:19:40.903Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "translate-text",
      "options": [
        {
          "name": "AI Scrape",
          "value": "ai-scrape"
        },
        {
          "name": "Analyze Sentiment",
          "value": "analyze-sentiment"
        },
        {
          "name": "Convert to SQL",
          "value": "convert-to-sql"
        },
        {
          "name": "Generate Embedding",
          "value": "generate-embedding"
        },
        {
          "name": "HTML to Any",
          "value": "html-to-any"
        },
        {
          "name": "Image Generation",
          "value": "image-generation"
        },
        {
          "name": "Make Prediction",
          "value": "make-prediction"
        },
        {
          "name": "NSFW Detection",
          "value": "nsfw-detection"
        },
        {
          "name": "Object Detection",
          "value": "object-detection"
        },
        {
          "name": "Process Image",
          "value": "process-image"
        },
        {
          "name": "Profanity Detection",
          "value": "profanity-detection"
        },
        {
          "name": "Search Web",
          "value": "search-web"
        },
        {
          "name": "Spam Detection",
          "value": "spam-detection"
        },
        {
          "name": "Speech to Text",
          "value": "speech-to-text"
        },
        {
          "name": "Spell Check",
          "value": "spell-check"
        },
        {
          "name": "Summary",
          "value": "summary"
        },
        {
          "name": "Text to Speech",
          "value": "text-to-speech"
        },
        {
          "name": "Translate",
          "value": "translate-text"
        },
        {
          "name": "Translate Image",
          "value": "translate-image"
        },
        {
          "name": "Web Suggestion",
          "value": "web-suggestion"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "translate-text",
      "options": [
        {
          "name": "Translate Text",
          "value": "translate-text",
          "action": "Translate text",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/translate\"}}",
              "body": {
                "text": "={{$parameter.text}}",
                "target_language": "={{$parameter.target_language}}"
              },
              "method": "POST"
            }
          },
          "description": "Translate text from one language to another"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translate-text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search-web",
      "options": [
        {
          "name": "Search Web",
          "value": "search-web",
          "action": "Search the web",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/web/search\"}}",
              "body": {
                "query": "={{$parameter.query}}",
                "byo_urls": "={{$parameter.byo_urls}}",
                "ai_overview": "={{$parameter.ai_overview}}",
                "safe_search": "={{$parameter.safe_search}}",
                "spell_check": "={{$parameter.spell_check}}",
                "deep_research": "={{$parameter.deep_research}}",
                "deep_research_config": "={{$parameter.deep_research_config}}"
              },
              "method": "POST"
            }
          },
          "description": "Search the web using JigsawStack AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search-web"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate-embedding",
      "options": [
        {
          "name": "Generate Embedding",
          "value": "generate-embedding",
          "action": "Generate embedding",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/embedding\"}}",
              "body": {
                "url": "={{$parameter.url ? $parameter.url : undefined}}",
                "text": "={{$parameter.text}}",
                "type": "={{$parameter.type}}",
                "file_content": "={{$parameter.file_content}}",
                "file_store_key": "={{$parameter.file_store_key ? $parameter.file_store_key : undefined}}",
                "token_overflow_mode": "={{$parameter.token_overflow_mode}}"
              },
              "method": "POST"
            }
          },
          "description": "Generate vector embeddings from various content types including text, images, audio, and PDF files"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "generate-embedding"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "analyze-sentiment",
      "options": [
        {
          "name": "Analyze Sentiment",
          "value": "analyze-sentiment",
          "action": "Analyze sentiment",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/sentiment\"}}",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Perform line by line sentiment analysis on any text with detailed emotion detection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "analyze-sentiment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "text-to-speech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "text-to-speech",
          "action": "Convert text to speech",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/tts\"}}",
              "body": {
                "text": "={{$parameter.text}}",
                "accent": "={{$parameter.accent === \"other\" ? $parameter.accent_custom : $parameter.accent}}",
                "voice_id": "={{$parameter.voice_id}}",
                "return_type": "={{$parameter.return_type}}"
              },
              "method": "POST"
            }
          },
          "description": "Transform text into natural-sounding human-like AI voices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "text-to-speech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "speech-to-text",
      "options": [
        {
          "name": "Speech to Text",
          "value": "speech-to-text",
          "action": "Transcribe video and audio to text",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/transcribe\"}}",
              "body": {
                "url": "={{$parameter.audioSource === \"url\" ? $parameter.url : undefined}}",
                "language": "={{$parameter.language && $parameter.language !== \"\" ? $parameter.language : undefined}}",
                "translate": "={{$parameter.translate !== undefined ? $parameter.translate : undefined}}",
                "batch_size": "={{$parameter.batch_size && $parameter.batch_size > 0 ? $parameter.batch_size : undefined}}",
                "by_speaker": "={{$parameter.by_speaker !== undefined ? $parameter.by_speaker : undefined}}",
                "webhook_url": "={{$parameter.webhook_url && $parameter.webhook_url !== \"\" ? $parameter.webhook_url : undefined}}",
                "file_store_key": "={{$parameter.audioSource === \"file_store_key\" ? $parameter.file_store_key : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Transcribe video and audio files with ease leveraging Whisper large V3 AI model"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech-to-text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "image-generation",
      "options": [
        {
          "name": "Image Generation",
          "value": "image-generation",
          "action": "Generate image",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/image_generation\"}}",
              "body": {
                "url": "={{$parameter.url ? $parameter.url : undefined}}",
                "steps": "={{$parameter.steps}}",
                "width": "={{$parameter.width}}",
                "height": "={{$parameter.height}}",
                "prompt": "={{$parameter.prompt}}",
                "return_type": "={{$parameter.return_type}}",
                "aspect_ratio": "={{$parameter.aspect_ratio}}",
                "output_format": "={{$parameter.output_format}}",
                "advance_config": "={{JSON.parse($parameter.advance_config)}}",
                "file_store_key": "={{$parameter.file_store_key}}"
              },
              "method": "POST"
            }
          },
          "description": "Generate an image using JigsawStack AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image-generation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "nsfw-detection",
      "options": [
        {
          "name": "NSFW Detection",
          "value": "nsfw-detection",
          "action": "NSFW Detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/nsfw\"}}",
              "body": {
                "url": "={{$parameter.url}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect if the text or content is NSFW"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "nsfw-detection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "profanity-detection",
      "options": [
        {
          "name": "Profanity Detection",
          "value": "profanity-detection",
          "action": "Profanity detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/profanity\"}}",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect if the text or content is profane"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profanity-detection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "spell-check",
      "options": [
        {
          "name": "Spell Check",
          "value": "spell-check",
          "action": "Spell check",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/spell_check\"}}",
              "body": {
                "text": "={{$parameter.text}}",
                "language_code": "={{$parameter.language_code}}"
              },
              "method": "POST"
            }
          },
          "description": "Check the spelling of the text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "spell-check"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "spam-detection",
      "options": [
        {
          "name": "Spam Detection",
          "value": "spam-detection",
          "action": "Spam detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/validate/spam_check\"}}",
              "body": {
                "text": "={{$parameter.text}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect if the text or content is spam"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "spam-detection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "summary",
      "options": [
        {
          "name": "Summary",
          "value": "summary",
          "action": "Summary",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/summary\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "text": "={{$parameter.text}}",
                "type": "={{$parameter.type}}",
                "max_points": "={{$parameter.max_points}}",
                "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}",
                "max_characters": "={{$parameter.max_characters}}"
              },
              "method": "POST"
            }
          },
          "description": "Generate concise, intelligent summaries of text or documents with AI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "summary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "make-prediction",
      "options": [
        {
          "name": "Make Prediction",
          "value": "make-prediction",
          "action": "Make prediction",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/prediction\"}}",
              "body": {
                "steps": "={{$parameter.steps}}",
                "dataset": "={{JSON.parse($parameter.dataset)}}"
              },
              "method": "POST"
            }
          },
          "description": "Forecast a wide range of time series data in seconds with one simple API and no data training"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "make-prediction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convert-to-sql",
      "options": [
        {
          "name": "Convert to SQL",
          "value": "convert-to-sql",
          "action": "Convert natural language to SQL",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/sql\"}}",
              "body": {
                "prompt": "={{$parameter.prompt}}",
                "database": "={{$parameter.database}}",
                "sql_schema": "={{$parameter.sql_schema}}",
                "file_store_key": "={{$parameter.file_store_key}}"
              },
              "method": "POST"
            }
          },
          "description": "Convert natural language to SQL queries for various database types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "convert-to-sql"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "web-suggestion",
      "options": [
        {
          "name": "Web Suggestion",
          "value": "web-suggestion",
          "action": "Web suggestion",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/web/search/suggest?query=\" + $parameter.query}}",
              "method": "GET"
            }
          },
          "description": "Get web suggestions for a given query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "web-suggestion"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "ai-scrape",
      "options": [
        {
          "name": "AI Scrape",
          "value": "ai-scrape",
          "action": "Scrape website with AI",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/scrape\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "html": "={{$parameter.html && $parameter.html !== \"\" ? $parameter.html : undefined}}",
                "scale": "={{$parameter.scale && $parameter.scale >= 1 ? $parameter.scale : undefined}}",
                "width": "={{$parameter.width && $parameter.width > 0 ? $parameter.width : undefined}}",
                "height": "={{$parameter.height && $parameter.height > 0 ? $parameter.height : undefined}}",
                "cookies": "={{$parameter.cookies && $parameter.cookies !== \"\" ? JSON.parse($parameter.cookies) : undefined}}",
                "wait_for": "={{$parameter.wait_for && $parameter.wait_for !== \"\" ? JSON.parse($parameter.wait_for) : undefined}}",
                "byo_proxy": "={{$parameter.byo_proxy && $parameter.byo_proxy !== \"\" ? JSON.parse($parameter.byo_proxy) : undefined}}",
                "is_mobile": "={{$parameter.is_mobile !== undefined ? $parameter.is_mobile : undefined}}",
                "size_preset": "={{$parameter.size_preset && $parameter.size_preset !== \"\" ? $parameter.size_preset : undefined}}",
                "goto_options": "={{$parameter.goto_options && $parameter.goto_options !== \"\" ? JSON.parse($parameter.goto_options) : undefined}}",
                "http_headers": "={{$parameter.http_headers && $parameter.http_headers !== \"\" ? JSON.parse($parameter.http_headers) : undefined}}",
                "page_position": "={{$parameter.page_position && $parameter.page_position > 0 ? $parameter.page_position : undefined}}",
                "advance_config": "={{$parameter.advance_config && $parameter.advance_config !== \"\" ? JSON.parse($parameter.advance_config) : undefined}}",
                "element_prompts": "={{$parameter.element_prompts && $parameter.element_prompts.length > 0 ? $parameter.element_prompts : undefined}}",
                "force_rotate_proxy": "={{$parameter.force_rotate_proxy !== undefined ? $parameter.force_rotate_proxy : undefined}}",
                "root_element_selector": "={{$parameter.root_element_selector && $parameter.root_element_selector !== \"\" ? $parameter.root_element_selector : undefined}}",
                "reject_request_pattern": "={{$parameter.reject_request_pattern && $parameter.reject_request_pattern.length > 0 ? $parameter.reject_request_pattern : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Scrape any website instantly and get consistent structured data in seconds without writing any CSS selector code"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ai-scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "html-to-any",
      "options": [
        {
          "name": "HTML to Any",
          "value": "html-to-any",
          "action": "Convert HTML/URL to image or PDF",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/web/html_to_any\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "html": "={{$parameter.html && $parameter.html !== \"\" ? $parameter.html : undefined}}",
                "type": "={{$parameter.type}}",
                "scale": "={{$parameter.scale && $parameter.scale >= 1 ? $parameter.scale : undefined}}",
                "width": "={{$parameter.width && $parameter.width > 0 ? $parameter.width : undefined}}",
                "height": "={{$parameter.height && $parameter.height > 0 ? $parameter.height : undefined}}",
                "quality": "={{$parameter.quality && $parameter.quality > 0 ? $parameter.quality : undefined}}",
                "dark_mode": "={{$parameter.dark_mode !== undefined ? $parameter.dark_mode : undefined}}",
                "full_page": "={{$parameter.full_page !== undefined ? $parameter.full_page : undefined}}",
                "is_mobile": "={{$parameter.is_mobile !== undefined ? $parameter.is_mobile : undefined}}",
                "return_type": "={{$parameter.return_type}}",
                "size_preset": "={{$parameter.size_preset && $parameter.size_preset !== \"\" ? $parameter.size_preset : undefined}}",
                "goto_options": "={{$parameter.goto_options && $parameter.goto_options !== \"\" ? JSON.parse($parameter.goto_options) : undefined}}",
                "pdf_page_range": "={{$parameter.pdf_page_range && $parameter.pdf_page_range !== \"\" ? $parameter.pdf_page_range : undefined}}",
                "omit_background": "={{$parameter.omit_background !== undefined ? $parameter.omit_background : undefined}}",
                "pdf_print_background": "={{$parameter.pdf_print_background !== undefined ? $parameter.pdf_print_background : undefined}}",
                "use_graphic_renderer": "={{$parameter.use_graphic_renderer !== undefined ? $parameter.use_graphic_renderer : undefined}}",
                "pdf_display_header_footer": "={{$parameter.pdf_display_header_footer !== undefined ? $parameter.pdf_display_header_footer : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Capture screenshots of a website, convert HTML to both image and PDF formats"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "html-to-any"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "process-image",
      "options": [
        {
          "name": "Process Image",
          "value": "process-image",
          "action": "Process image with v ocr",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/vocr\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "prompt": "={{$parameter.prompt && $parameter.prompt !== \"\" ? $parameter.prompt : undefined}}",
                "page_range": "={{$parameter.page_range && $parameter.page_range !== \"\" ? JSON.parse($parameter.page_range) : undefined}}",
                "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Process an image using vOCR to recognize and extract data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "process-image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "translate-image",
      "options": [
        {
          "name": "Translate Image",
          "value": "translate-image",
          "action": "Translate image",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/translate/image\"}}",
              "body": {
                "url": "={{$parameter.url ? $parameter.url : undefined }}",
                "return_type": "={{$parameter.return_type}}",
                "file_store_key": "={{$parameter.file_store_key ? $parameter.file_store_key : undefined}}",
                "target_language": "={{$parameter.target_language}}"
              },
              "method": "POST"
            }
          },
          "description": "Translate image from one language to another"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "translate-image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "object-detection",
      "options": [
        {
          "name": "Object Detection",
          "value": "object-detection",
          "action": "Object detection",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "={{\"/ai/object_detection\"}}",
              "body": {
                "url": "={{$parameter.url && $parameter.url !== \"\" ? $parameter.url : undefined}}",
                "file_store_key": "={{$parameter.file_store_key && $parameter.file_store_key !== \"\" ? $parameter.file_store_key : undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Detect objects in an image"
        }
      ],
      "displayName": "Operation Object Detection",
      "displayOptions": {
        "show": {
          "resource": [
            "object-detection"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"translate-text","name":"Translate Text","description":"Translate text from one language to another","resource":"translate-text"},{"operation":"search-web","name":"Search Web","description":"Search the web using JigsawStack AI","resource":"search-web"},{"operation":"generate-embedding","name":"Generate Embedding","description":"Generate vector embeddings from various content types including text, images, audio, and PDF files","resource":"generate-embedding"},{"operation":"analyze-sentiment","name":"Analyze Sentiment","description":"Perform line by line sentiment analysis on any text with detailed emotion detection","resource":"analyze-sentiment"},{"operation":"text-to-speech","name":"Text to Speech","description":"Transform text into natural-sounding human-like AI voices","resource":"text-to-speech"},{"operation":"speech-to-text","name":"Speech to Text","description":"Transcribe video and audio files with ease leveraging Whisper large V3 AI model","resource":"speech-to-text"},{"operation":"image-generation","name":"Image Generation","description":"Generate an image using JigsawStack AI","resource":"image-generation"},{"operation":"nsfw-detection","name":"NSFW Detection","description":"Detect if the text or content is NSFW","resource":"nsfw-detection"},{"operation":"profanity-detection","name":"Profanity Detection","description":"Detect if the text or content is profane","resource":"profanity-detection"},{"operation":"spell-check","name":"Spell Check","description":"Check the spelling of the text","resource":"spell-check"},{"operation":"spam-detection","name":"Spam Detection","description":"Detect if the text or content is spam","resource":"spam-detection"},{"operation":"summary","name":"Summary","description":"Generate concise, intelligent summaries of text or documents with AI","resource":"summary"},{"operation":"make-prediction","name":"Make Prediction","description":"Forecast a wide range of time series data in seconds with one simple API and no data training","resource":"make-prediction"},{"operation":"convert-to-sql","name":"Convert to SQL","description":"Convert natural language to SQL queries for various database types","resource":"convert-to-sql"},{"operation":"web-suggestion","name":"Web Suggestion","description":"Get web suggestions for a given query","resource":"web-suggestion"},{"operation":"ai-scrape","name":"AI Scrape","description":"Scrape any website instantly and get consistent structured data in seconds without writing any CSS selector code","resource":"ai-scrape"},{"operation":"html-to-any","name":"HTML to Any","description":"Capture screenshots of a website, convert HTML to both image and PDF formats","resource":"html-to-any"},{"operation":"process-image","name":"Process Image","description":"Process an image using vOCR to recognize and extract data","resource":"process-image"},{"operation":"translate-image","name":"Translate Image","description":"Translate image from one language to another","resource":"translate-image"},{"operation":"object-detection","name":"Object Detection","description":"Detect objects in an image","resource":"object-detection"}]

npm_readme:
  <img width="1024" alt="Screenshot 2025-06-18 at 1 43 10 AM" src="https://github.com/user-attachments/assets/234f078b-641d-411f-bba2-4a7781f699b3" />

  # JigsawStack n8n Node

  This n8n node provides integration with JigsawStack's powerful AI and data processing APIs. It allows you to easily incorporate various AI capabilities into your n8n workflows.

  ## Features

  The JigsawStack node supports the following operations:

  - **Text Processing**
    - Translate text between languages
    - Generate text embeddings (supports text, images, audio, and PDF files)
    - Analyze sentiment
    - Check spelling
    - Detect profanity
    - Generate text summaries
    - Convert natural language to SQL queries

  - **Speech & Audio**
    - Text to Speech conversion
    - Speech to Text conversion with Whisper V3 (supports multiple languages, speaker identification, translation, and batch processing)

  - **Image Processing**
    - Generate images from text descriptions
    - Process images with AI-powered analysis
    - Detect objects in images
    - NSFW content detection
    - Visual OCR (VOCR) for extracting text and data from images
    - Translate text within images
    - Support for multi-page document processing

  - **Web & Data**
    - Web search with AI-powered results
    - AI-powered web scraping
    - HTML to Any conversion (screenshots, images, PDFs)
    - Web suggestions
    - Spam detection

  - **AI & Machine Learning**
    - Make predictions using trained models
    - Generate embeddings from multiple content types (text, images, audio, PDF)
    - Token overflow handling for large content

  ## Prerequisites

  - n8n instance (self-hosted or cloud)
  - Node.js >=20.15
  - JigsawStack API key

  ## Installation

  1. Install the node in your n8n instance:
     ```bash
     npm install n8n-node-jigsawstack
     ```

  2. Restart your n8n instance

  ## Authentication

  To use this node, you need to:

  1. Sign up for a JigsawStack account at [jigsawstack.com](https://jigsawstack.com)
  2. Get your API key from the JigsawStack dashboard
  3. In n8n, add your JigsawStack credentials:
     - Go to Settings > Credentials
     - Click "New"
     - Select "JigsawStack API"
     - Enter your API key
      
  ## Usage

  1. Add the JigsawStack node to your workflow
  2. Select the desired operation from the Resource dropdown
  3. Configure the operation-specific parameters
  4. Connect the node to other nodes in your workflow

  ## Available Resources

  - **Translate Text** - Translate text between different languages
  - **Translate Image** - Translate text within images
  - **Search Web** - Perform web searches
  - **Generate Embedding** - Create text embeddings for AI applications
  - **Analyze Sentiment** - Analyze the sentiment of text
  - **Text to Speech** - Convert text to speech
  - **Speech to Text** - Convert speech to text
  - **Image Generation** - Generate images from text descriptions
  - **NSFW Detection** - Detect inappropriate content in images
  - **Profanity Detection** - Detect profane language in text
  - **Spell Check** - Check and correct spelling in text
  - **Spam Detection** - Detect spam content
  - **Summary** - Generate text summaries
  - **Make Prediction** - Make predictions using AI models
  - **Convert to SQL** - Convert natural language to SQL queries
  - **Web Suggestion** - Get web search suggestions
  - **AI Scrape** - Scrape websites using AI
  - **HTML to Any** - Convert HTML/URLs to images (PNG, JPEG, WebP) or PDFs with screenshots
  - **Process Image** - Process and manipulate images
  - **Object Detection** - Detect objects in images
  - **Visual OCR (VOCR)** - Extract text from images

  ## Resources

  - [JigsawStack Documentation](https://docs.jigsawstack.com)
  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community](https://community.n8n.io)

  ## Support

  For support with this node:
  - Open an issue on [GitHub](https://github.com/JigsawStack/n8n-integration)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node integrates with JigsawStack's API to perform diverse AI and data processing tasks including text analysis, speech conversion, image generation, and web scraping.","capabilities":["Translate text between languages","Generate text embeddings (text, images, audio, PDF)","Analyze sentiment","Check spelling","Detect profanity","Generate text summaries","Convert natural language to SQL queries","Text to Speech conversion","Speech to Text conversion with Whisper V3","Generate images from text descriptions"],"authentication":"API key required (configured via n8n Credentials > JigsawStack API)","commonUseCases":["Multi-language text translation workflows","Document processing and summarization","Image analysis and content moderation","Speech-to-text transcription","AI-powered web scraping and data extraction"],"limitations":[],"relatedNodes":["HTTP Request","Code","Wait Until","Split In Batches"]}


node_type: n8n-nodes-kundenschreiber.kundenschreiber
package_name: n8n-nodes-kundenschreiber
display_name: Kundenschreiber
description: Send handwritten letters via the Kundenschreiber API to recipients
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: kundenschreiber
author_github_url: https://github.com/kundenschreiber/
npm_package_name: n8n-nodes-kundenschreiber
npm_version: 0.1.5
community_fetched_at: 2026-03-25T21:19:40.904Z
npm_readme: ERROR: No README data found!
ai_summary_generated_at: 2026-03-25 22:51:43
ai_documentation_summary:
  {"purpose":"This n8n node sends handwritten letters via the Kundeschreiber API to specified recipients.","capabilities":["Send handwritten letters through the Kundeschreiber API","Integrate with the Kundeschreiber service for letter delivery"],"authentication":"API key required","commonUseCases":["Automated handwritten letter delivery","Personalized communication campaigns"],"limitations":[],"relatedNodes":[]}


node_type: @simplesat/n8n-nodes-simplesat.simplesat
package_name: @simplesat/n8n-nodes-simplesat
display_name: Simplesat
description: Connect to Simplesat API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: simplesat-integrations
author_github_url: https://github.com/simplesat/simplesat-n8n-node.git
npm_package_name: @simplesat/n8n-nodes-simplesat
npm_version: 1.0.4
community_fetched_at: 2026-03-25T21:19:40.904Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "survey",
      "options": [
        {
          "name": "Answer",
          "value": "answer"
        },
        {
          "name": "Customer",
          "value": "customer"
        },
        {
          "name": "Question",
          "value": "question"
        },
        {
          "name": "Response",
          "value": "response"
        },
        {
          "name": "Survey",
          "value": "survey"
        },
        {
          "name": "Team Member",
          "value": "teamMember"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List surveys",
          "description": "List surveys"
        },
        {
          "name": "Send by Email",
          "value": "sendByEmail",
          "action": "Send survey by email",
          "description": "Send survey by email"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "survey"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List questions",
          "description": "List questions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "question"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get response by ID",
          "description": "Get response by ID"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search responses",
          "description": "Search responses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "response"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get answer by ID",
          "description": "Get answer by ID"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search answers",
          "description": "Search answers"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List customers",
          "description": "List customers"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get customer by ID",
          "description": "Get customer by ID"
        },
        {
          "name": "Create or Update",
          "value": "createOrUpdate",
          "action": "Create or update customer by email",
          "description": "Create or update customer by email"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update customer by ID",
          "description": "Update customer by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get team member by ID",
          "description": "Get team member by ID"
        },
        {
          "name": "Create or Update",
          "value": "createOrUpdate",
          "action": "Create or update team member",
          "description": "Create or update team member"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "teamMember"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"list","name":"List","description":"List surveys","resource":"survey"},{"operation":"sendByEmail","name":"Send by Email","description":"Send survey by email","resource":"survey"},{"operation":"list","name":"List","description":"List questions","resource":"question"},{"operation":"get","name":"Get","description":"Get response by ID","resource":"response"},{"operation":"search","name":"Search","description":"Search responses","resource":"response"},{"operation":"get","name":"Get","description":"Get answer by ID","resource":"answer"},{"operation":"search","name":"Search","description":"Search answers","resource":"answer"},{"operation":"list","name":"List","description":"List customers","resource":"customer"},{"operation":"get","name":"Get","description":"Get customer by ID","resource":"customer"},{"operation":"createOrUpdate","name":"Create or Update","description":"Create or update customer by email","resource":"customer"},{"operation":"update","name":"Update","description":"Update customer by ID","resource":"customer"},{"operation":"get","name":"Get","description":"Get team member by ID","resource":"teamMember"},{"operation":"createOrUpdate","name":"Create or Update","description":"Create or update team member","resource":"teamMember"}]

npm_readme:
  # Simplesat's n8n node

  This is an n8n community node. It lets you connect to the Simplesat API in your n8n workflows to manage surveys, responses, answers, customers, and team members.

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

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

  ## Installation

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

  ## Operations

  ### Surveys

  - **List** - Retrieve all surveys with pagination
  - **Send by Email** - Send a survey to a customer via email with optional team member and ticket information

  ### Questions

  - **List** - Get questions with filtering by survey ID and metric type (NPS, CSAT, 5-Star, CES, Custom)

  ### Responses

  - **Get** - Retrieve a specific response by ID
  - **Search** - Advanced search with date ranges, filters, and pagination

  ### Answers

  - **Get** - Retrieve a specific answer by ID
  - **Search** - Advanced search with date ranges, filters, and pagination

  ### Customers

  - **List** - Get customers with date filtering and subscription status
  - **Get** - Retrieve a specific customer by ID
  - **Create or Update** - Create new customers or update existing ones

  ### Team Members

  - **Get** - Retrieve a specific team member by ID
  - **Create or Update** - Create new team members or update existing ones

  ## Credentials

  To use this node, you need a Simplesat account with an API key:

  1. Log into your Simplesat account
  2. Navigate to [Workspace Settings](https://app.simplesat.io/settings/workspace/)
  3. Copy your API key
  4. Use the API key in the Simplesat API credentials in n8n

  The node uses the `X-Simplesat-Token` header for authentication.

  ## Usage

  For detailed usage information, API endpoints, and examples, please refer to the [Simplesat API documentation](https://developer.simplesat.io/api).

  ## Resources

  - [Simplesat n8n help guide](https://help.simplesat.io/en/articles/12679403-simplesat-s-n8n-community-node)
  - [Simplesat API Documentation](https://developer.simplesat.io/api)
  - [Simplesat Website](https://simplesat.io/)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation by connecting to the Simplesat API to manage customer surveys, responses, answers, customers, and team members.","capabilities":["List all surveys with pagination","Send surveys to customers via email","List questions filtered by survey ID and metric type (NPS, CSAT, 5-Star, CES, Custom)","Retrieve specific responses by ID","Advanced search for responses with date ranges and filters","Retrieve specific answers by ID","Advanced search for answers with date ranges and filters","List customers with date filtering and subscription status","Retrieve specific customers by ID","Create or update customers"],"authentication":"API key required (X-Simplesat-Token header)","commonUseCases":["Automating customer feedback collection via email surveys","Tracking and analyzing survey response trends over time","Managing customer profiles and subscription status","Handling team member data and access control"],"limitations":["Community node (not official n8n node)","Requires a paid Simplesat account with API key access","Detailed API endpoint specifics require external documentation"],"relatedNodes":["Email node","HTTP Request node","Data Processing nodes"]}


node_type: n8n-nodes-converthub.converthub
package_name: n8n-nodes-converthub
display_name: ConvertHub
description: Convert files between 800+ formats using ConvertHub API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: venelinkochev
author_github_url: https://github.com/converthub-api/
npm_package_name: n8n-nodes-converthub
npm_version: 0.3.2
community_fetched_at: 2026-03-25T21:19:40.905Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "conversion",
      "options": [
        {
          "name": "Conversion",
          "value": "conversion",
          "description": "Convert files between formats"
        },
        {
          "name": "Format",
          "value": "formats",
          "description": "Get information about supported formats"
        },
        {
          "name": "Account",
          "value": "account",
          "description": "Get account information"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convertFile",
      "options": [
        {
          "name": "Cancel Job",
          "value": "cancelJob",
          "action": "Cancel conversion job",
          "description": "Cancel a conversion job"
        },
        {
          "name": "Convert File",
          "value": "convertFile",
          "action": "Convert a file",
          "description": "Convert a file from one format to another"
        },
        {
          "name": "Convert From URL",
          "value": "convertUrl",
          "action": "Convert file from URL",
          "description": "Convert a file from a URL"
        },
        {
          "name": "Delete Conversion",
          "value": "deleteConversion",
          "action": "Delete conversion file",
          "description": "Delete a completed conversion file"
        },
        {
          "name": "Get Download URL",
          "value": "getDownloadUrl",
          "action": "Get download URL",
          "description": "Get the download URL for a completed conversion"
        },
        {
          "name": "Get Job Status",
          "value": "getStatus",
          "action": "Get job status",
          "description": "Check the status of a conversion job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversion"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllFormats",
      "options": [
        {
          "name": "Get All Supported Formats",
          "value": "getAllFormats",
          "action": "Get all supported formats",
          "description": "Get a list of all supported file formats"
        },
        {
          "name": "Get Format Conversions",
          "value": "getFormatConversions",
          "action": "Get format conversions",
          "description": "Get available conversions for a specific format"
        },
        {
          "name": "Check Conversion Support",
          "value": "checkConversionSupport",
          "action": "Check conversion support",
          "description": "Check if a specific conversion is supported"
        },
        {
          "name": "Get All Supported Conversions",
          "value": "getAllConversions",
          "action": "Get all supported conversions",
          "description": "Get all supported formats with conversion mappings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "formats"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDetails",
      "options": [
        {
          "name": "Get Account Details",
          "value": "getDetails",
          "action": "Get account details",
          "description": "Get account information including credits and plan details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"cancelJob","name":"Cancel Job","description":"Cancel a conversion job","resource":"conversion"},{"operation":"convertFile","name":"Convert File","description":"Convert a file from one format to another","resource":"conversion"},{"operation":"convertUrl","name":"Convert From URL","description":"Convert a file from a URL","resource":"conversion"},{"operation":"deleteConversion","name":"Delete Conversion","description":"Delete a completed conversion file","resource":"conversion"},{"operation":"getDownloadUrl","name":"Get Download URL","description":"Get the download URL for a completed conversion","resource":"conversion"},{"operation":"getStatus","name":"Get Job Status","description":"Check the status of a conversion job","resource":"conversion"},{"operation":"getAllFormats","name":"Get All Supported Formats","description":"Get a list of all supported file formats","resource":"formats"},{"operation":"getFormatConversions","name":"Get Format Conversions","description":"Get available conversions for a specific format","resource":"formats"},{"operation":"checkConversionSupport","name":"Check Conversion Support","description":"Check if a specific conversion is supported","resource":"formats"},{"operation":"getAllConversions","name":"Get All Supported Conversions","description":"Get all supported formats with conversion mappings","resource":"formats"},{"operation":"getDetails","name":"Get Account Details","description":"Get account information including credits and plan details","resource":"account"}]

npm_readme:
  # n8n-nodes-converthub

  ![logo](./nodes/Converthub/logo.png)

  [![npm version](https://badge.fury.io/js/n8n-nodes-converthub.svg)](https://badge.fury.io/js/n8n-nodes-converthub)

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

  ConvertHub is a powerful file conversion API that supports 800+ format conversion pairs across images, documents, audio, video, and more.

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

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

  ## Installation

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

  use the Community Nodes menu in n8n:

  1. Go to **Settings** > **Community Nodes**
  2. Click **Install**
  3. Enter `n8n-nodes-converthub` in the **Enter npm package name** field
  4. Click **Install**

  ## Operations

  This node supports the following operations:

  ### Conversion Resource
  - **Convert File** - Convert a file from one format to another (supports binary data)
  - **Convert from URL** - Convert a file by providing its URL

  ### Formats Resource
  - **Get All Supported Formats** - Get a list of all supported file formats grouped by type
  - **Get Format Conversions** - Get available conversions for a specific format
  - **Check Conversion Support** - Check if a specific conversion is supported
  - **Get All Supported Conversions** - Get all supported formats with conversion mappings

  ### Account Resource
  - **Get Account Details** - Get account information including credits, plan details, and file size limits

  ## Credentials

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

  1. Sign up for a developer account at [ConvertHub API Signup](https://converthub.com/api/signup)
  2. Navigate to your dashboard
  3. Generate a new API key in the API Keys section
  4. Copy your API key

  ### Setting up credentials in n8n:

  1. In n8n, go to **Credentials** > **New**
  2. Search for "ConvertHub API"
  3. Enter your API key in the **API Key** field
  4. Click **Save**

  **Note:** All API requests require authentication. Keep your API key secure and never expose it in client-side code.

  ## Compatibility

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

  ## Usage

  ### Example 1: Convert an Image

  This example shows how to convert a PNG image to JPG:

  1. Use an **HTTP Request** node or **Read Binary File** node to get your source file
  2. Add the **ConvertHub** node
  3. Select **Conversion** as the resource
  4. Select **Convert File** as the operation
  5. Set **Binary Property** to `data` (or your binary property name)
  6. Set **Target Format** to `jpg`
  7. Optionally, add quality settings in **Additional Fields**
  8. Execute the workflow
  9. 
  ### Example 2: Convert from URL

  1. Add a **ConvertHub** node
  2. Select **Conversion** as the resource
  3. Select **Convert from URL** as the operation
  4. Enter the file URL (e.g., `https://example.com/document.pdf`)
  5. Set **Target Format** to `docx`
  6. Execute the workflow

  ### Example 3: Check Supported Formats

  1. Add a **ConvertHub** node
  2. Select **Formats** as the resource
  3. Select **Get All Supported Formats** as the operation
  4. Execute to see all supported format groups

  ### Example 4: Check Account Credits

  1. Add a **ConvertHub** node
  2. Select **Account** as the resource
  3. Select **Get Account Details** as the operation
  4. Execute to see your remaining credits and plan details

  ### Conversion Options

  The **Convert File** and **Convert from URL** operations support these optional parameters:

  - **Output Filename** - Custom name for the output file
  - **Webhook URL** - URL to receive webhook notification when conversion completes
  - **Quality** - Quality setting (1-100) for lossy formats like JPEG, MP3
  - **Resolution** - Resolution for image/video conversions (e.g., "1920x1080")
  - **Bitrate** - Bitrate for audio/video conversions (e.g., "320k")
  - **Sample Rate** - Sample rate for audio conversions (e.g., 44100)
  - **Metadata** - Custom key-value pairs for tracking purposes

  ## API Limits

  - **File Size Limit**: 50MB for direct upload
  - **Rate Limits**: Varies by plan (see API documentation)
  - **File Retention**: Converted files are available for 24 hours
  - **Credits**: Each conversion consumes 1 credit

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [ConvertHub API Documentation](https://converthub.com/api/docs)
  * [ConvertHub Website](https://converthub.com/api)
  * [GitHub Repository](https://github.com/converthub-api/n8n-nodes-converthub)

  ## Version history

  ### 0.1.0 (Current)

  - Initial release
  - Support for file conversion (direct upload and URL-based)
  - Support for job management (status, cancel, delete)
  - Support for format discovery endpoints
  - Support for account information endpoint
  - Support for 800+ format conversion pairs
  - Full API v2 coverage

  ## License

  [MIT](LICENSE.md)

  ## Support

  For issues and questions:
  - Email: support@converthub.com
  - GitHub Issues: [Report an issue](https://github.com/converthub-api/n8n-nodes-converthub/issues)

  ## Contributing

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables file format conversion using the ConvertHub API, supporting over 800 format pairs across images, documents, audio, and video.","capabilities":["Convert files from one format to another via direct upload","Convert files by providing their URL","Retrieve all supported file formats grouped by type","Get available conversions for a specific format","Check if a specific conversion is supported","Retrieve all supported conversion mappings","Get account details including credits and plan information","Manage conversion jobs (status, cancel, delete)","Apply quality, resolution, bitrate, and sample rate settings"],"authentication":"API key required","commonUseCases":["Converting image formats (e.g., PNG to JPG)","Converting documents from URL to editable formats","Auditing available conversion capabilities","Monitoring API credit usage and account status"],"limitations":["Maximum file size for direct upload is 50MB","Converted files are retained for only 24 hours","Each conversion consumes 1 credit","Rate limits vary by API plan"],"relatedNodes":["HTTP Request","Read Binary File","Webhook"]}


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

updated_at: 2026-03-25 21:19:40
author_name: pdf4me_ynoox
author_github_url: https://github.com/pdf4me/
npm_package_name: n8n-nodes-pdf4me
npm_version: 2.1.0
community_fetched_at: 2026-03-25T21:19:40.906Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Comprehensive PDF and document processing: generate barcodes, convert files, extract data, manipulate images, and automate workflows with the PDF4ME API

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "ai",
      "options": [
        {
          "name": "AI",
          "value": "ai",
          "description": "AI-powered document processing and classification"
        },
        {
          "name": "Barcode",
          "value": "barcode",
          "description": "Generate QR codes and barcodes for use in documents"
        },
        {
          "name": "Convert",
          "value": "convert",
          "description": "Convert various document formats to and from PDF"
        },
        {
          "name": "Edit",
          "value": "edit",
          "description": "Edit PDF documents: add attachments, headers, footers, stamps, and signatures"
        },
        {
          "name": "Extract",
          "value": "extract",
          "description": "Extract data, text, tables, and attachments from documents"
        },
        {
          "name": "Invoice",
          "value": "invoice",
          "description": "Create compliant invoices: Swiss QR Bills and Zugferd invoices"
        },
        {
          "name": "Find Search",
          "value": "findSearch",
          "description": "Find and replace text, convert PDF to editable format using OCR"
        },
        {
          "name": "Forms",
          "value": "forms",
          "description": "Create, fill, and manage PDF forms"
        },
        {
          "name": "Generate",
          "value": "generate",
          "description": "Generate PDFs from templates with data, manage Word documents"
        },
        {
          "name": "Image",
          "value": "image",
          "description": "Process and manipulate images: resize, crop, rotate, compress, and extract text"
        },
        {
          "name": "Merge & Split",
          "value": "mergeSplit",
          "description": "Merge multiple PDFs or split PDFs by various criteria"
        },
        {
          "name": "Optimize Compress",
          "value": "optimizeCompress",
          "description": "Compress and optimize PDF files"
        },
        {
          "name": "Organize",
          "value": "organize",
          "description": "Organize PDF pages: delete, extract, and rotate pages"
        },
        {
          "name": "PDF4me",
          "value": "pdf4me",
          "description": "PDF4me-specific operations: upload files, get documents, and update hyperlinks"
        },
        {
          "name": "PDF",
          "value": "pdf",
          "description": "Get PDF metadata and repair PDF documents"
        },
        {
          "name": "Security",
          "value": "security",
          "description": "Protect and unlock PDF documents"
        },
        {
          "name": "Word",
          "value": "word",
          "description": "Manage Word document tracking changes"
        }
      ],
      "description": "Choose the type of PDF operation: generate documents, convert formats, process PDFs, extract data, or manage images",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "AI-Invoice Parser",
      "options": [
        {
          "name": "AI-Invoice Parser",
          "value": "AI-Invoice Parser",
          "action": "AI-Invoice Parser",
          "description": "Extract structured data from invoices using AI/ML technology for automated data entry"
        },
        {
          "name": "AI-Process Bank Cheque",
          "value": "AI-Process Bank Cheque",
          "action": "AI-Process Bank Cheque",
          "description": "Extract structured data from bank cheques using AI/ML technology for payment processing"
        },
        {
          "name": "AI-Process Credit Card",
          "value": "AI-Process Credit Card",
          "action": "AI-Process Credit Card",
          "description": "Extract structured data from credit cards using AI/ML technology for payment processing"
        },
        {
          "name": "AI-Process Contract",
          "value": "AI-Process Contract",
          "action": "AI-Process Contract",
          "description": "Extract structured data from contracts using AI/ML technology for legal document analysis"
        },
        {
          "name": "AI-Process HealthCard",
          "value": "AI-Process HealthCard",
          "action": "AI-Process HealthCard",
          "description": "Extract structured data from health cards using AI/ML technology for member management"
        },
        {
          "name": "AI-Process Marriage Certificate",
          "value": "AI-Process Marriage Certificate",
          "action": "AI-Process Marriage Certificate",
          "description": "Extract structured data from marriage certificates using AI/ML technology for document verification"
        },
        {
          "name": "AI-Process Mortgage Document",
          "value": "AI-Process Mortgage Document",
          "action": "AI-Process Mortgage Document",
          "description": "Extract structured data from mortgage documents using AI/ML technology for loan processing"
        },
        {
          "name": "AI-Process Pay Stub",
          "value": "AI-Process Pay Stub",
          "action": "AI-Process Pay Stub",
          "description": "Extract structured data from pay stubs using AI/ML technology for payroll processing"
        },
        {
          "name": "AI - Universal Document Data Extraction",
          "value": "Process Universal Document",
          "action": "AI - Universal Document Data Extraction",
          "description": "Extract specified fields from documents using universal document processing"
        },
        {
          "name": "AI-Process Shipping Label",
          "value": "Process Shipping Label",
          "action": "AI-Process Shipping Label",
          "description": "Process shipping labels to extract and analyze shipping information"
        },
        {
          "name": "AI-Process Order",
          "value": "Process Order",
          "action": "AI-Process Order",
          "description": "Process order documents to extract and analyze order information"
        },
        {
          "name": "AI-Process Receipt",
          "value": "Process Receipt",
          "action": "AI-Process Receipt",
          "description": "Process receipt documents to extract items, merchant info, totals, and custom fields"
        },
        {
          "name": "AI-Process Tax Document",
          "value": "Process Tax Document",
          "action": "AI-Process Tax Document",
          "description": "Process tax documents (W2, 1099, 1040, etc.) to extract tax information and custom fields"
        },
        {
          "name": "AI-Process Bank Statement",
          "value": "Process Bank Statement",
          "action": "AI-Process Bank Statement",
          "description": "Process bank statement documents to extract transactions, analyze patterns, and custom fields"
        }
      ],
      "displayName": "AI Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "ai"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Generate Barcode",
      "options": [
        {
          "name": "Add Barcode to PDF",
          "value": "Add Barcode To PDF",
          "action": "Add barcode to PDF",
          "description": "Add barcodes to existing PDF documents with positioning and styling options"
        },
        {
          "name": "Create Barcode",
          "value": "Generate Barcode",
          "action": "Create barcode",
          "description": "Generate various types of barcodes including QR codes, Code 128, Code 39, and more"
        },
        {
          "name": "Read SwissQR Code",
          "value": "Read SwissQR Code",
          "action": "Read SwissQR code",
          "description": "Read Swiss QR code data from PDF documents"
        },
        {
          "name": "Read Barcode from PDF",
          "value": "Read Barcode From PDF",
          "action": "Read barcode from PDF",
          "description": "Read single or multiple Barcodes or QR Codes from your PDF file"
        }
      ],
      "displayName": "Barcode Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "barcode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Convert To PDF",
      "options": [
        {
          "name": "Convert JSON To Excel",
          "value": "Convert JSON To Excel",
          "action": "Convert JSON to Excel",
          "description": "Convert JSON data to Excel format"
        },
        {
          "name": "Convert to PDF",
          "value": "Convert To PDF",
          "action": "Convert to PDF",
          "description": "Convert various document formats to PDF"
        },
        {
          "name": "Convert VISIO",
          "value": "Convert VISIO",
          "action": "Convert VISIO",
          "description": "Convert VISIO files (.vsdx, .vsd) to PDF format with advanced conversion options"
        },
        {
          "name": "Convert Word to PDF Form",
          "value": "Convert Word To PDF Form",
          "action": "Convert Word to PDF Form",
          "description": "Convert Word documents to PDF forms"
        },
        {
          "name": "Create PDF/A",
          "value": "Create PDF/A",
          "action": "Create PDF/A",
          "description": "Convert PDF to PDF/A for long-term archiving and compliance"
        },
        {
          "name": "Flatten PDF",
          "value": "Flatten PDF",
          "action": "Flatten PDF",
          "description": "Convert interactive PDF elements into static, non-editable content"
        },
        {
          "name": "Convert Html to PDF",
          "value": "Convert HTML To PDF",
          "action": "Convert Html to PDF",
          "description": "Convert HTML files to PDF documents"
        },
        {
          "name": "Linearize PDF",
          "value": "Linearize PDF",
          "action": "Linearize PDF",
          "description": "Optimize PDFs for web viewing with faster loading and progressive display"
        },
        {
          "name": "Convert Markdown To PDF",
          "value": "Convert Markdown To PDF",
          "action": "Convert Markdown To PDF",
          "description": "Convert Markdown files to PDF documents"
        },
        {
          "name": "Convert PDF to Excel",
          "value": "Convert PDF To Excel",
          "action": "Convert PDF to Excel",
          "description": "Convert PDF documents to Excel spreadsheets"
        },
        {
          "name": "Convert PDF to PowerPoint",
          "value": "Convert PDF To PowerPoint",
          "action": "Convert PDF to PowerPoint",
          "description": "Convert PDF documents to PowerPoint format with OCR support"
        },
        {
          "name": "Convert PDF to Word",
          "value": "Convert PDF To Word",
          "action": "Convert PDF to Word",
          "description": "Convert PDF documents to Word format with OCR support"
        },
        {
          "name": "Convert Url to PDF",
          "value": "Convert URL to PDF",
          "action": "Convert Url to PDF",
          "description": "Convert web pages to PDF while preserving layout, styling, and content"
        }
      ],
      "displayName": "Convert Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "convert"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Add Attachment To PDF",
      "options": [
        {
          "name": "Add Attachment To PDF",
          "value": "Add Attachment To PDF",
          "action": "Add attachment to PDF",
          "description": "Add file attachments to PDF documents"
        },
        {
          "name": "Add HTML Header Footer to PDF",
          "value": "Add HTML Header Footer",
          "action": "Add HTML header footer to PDF",
          "description": "Add HTML-based headers and footers to PDF documents"
        },
        {
          "name": "Add Margin to PDF",
          "value": "Add Margin To PDF",
          "action": "Add margin to PDF",
          "description": "Add margins to PDF documents"
        },
        {
          "name": "Add Page Number to PDF",
          "value": "Add Page Number To PDF",
          "action": "Add page number to PDF",
          "description": "Add page numbers to PDF documents"
        },
        {
          "name": "Add Image Stamp To PDF",
          "value": "Add Image Stamp To PDF",
          "action": "Add image stamp to PDF",
          "description": "Add image stamps or watermarks to PDF documents"
        },
        {
          "name": "Send Document for Signing",
          "value": "Sign Document",
          "action": "Send Document for Signing",
          "description": "Send document for e-signature via email"
        },
        {
          "name": "Sign PDF",
          "value": "Sign PDF",
          "action": "Sign PDF",
          "description": "Digitally sign PDF documents"
        },
        {
          "name": "Add Text Stamp To PDF",
          "value": "Add Text Stamp To PDF",
          "action": "Add text stamp to PDF",
          "description": "Add text stamps or watermarks to PDF documents"
        }
      ],
      "displayName": "Edit Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "edit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Extract Resources",
      "options": [
        {
          "name": "Classify Document",
          "value": "Classify Document",
          "action": "Classify document",
          "description": "Classify documents using AI to determine document type and extract relevant information"
        },
        {
          "name": "Extract Attachment From PDF",
          "value": "Extract Attachment From PDF",
          "action": "Extract attachment from PDF",
          "description": "Extract file attachments from PDF documents"
        },
        {
          "name": "Extract Form Data From PDF",
          "value": "Extract Form Data From PDF",
          "action": "Extract form data from PDF",
          "description": "Extract form field data from PDF documents"
        },
        {
          "name": "Extract Resources",
          "value": "Extract Resources",
          "action": "Extract resources",
          "description": "Extract text and images from PDF documents"
        },
        {
          "name": "Extract Table From PDF",
          "value": "Extract Table From PDF",
          "action": "Extract table from PDF",
          "description": "Extract tables from PDF documents"
        },
        {
          "name": "Extract Text by Expression",
          "value": "Extract Text By Expression",
          "action": "Extract text by expression",
          "description": "Extract text from PDF using regular expressions"
        },
        {
          "name": "Extract Text from word",
          "value": "Extract Text From Word",
          "action": "Extract text from word",
          "description": "Extract text content from Word documents"
        },
        {
          "name": "Parse Document",
          "value": "Parse Document",
          "action": "Parse document",
          "description": "Parse documents to extract structured data using template-based parsing"
        }
      ],
      "displayName": "Extract Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "extract"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Create Swiss QR Bill",
      "options": [
        {
          "name": "Create SwissQR Bill",
          "value": "Create Swiss QR Bill",
          "action": "Create SwissQR bill",
          "description": "Create Swiss QR Bills using all compliance standards for digital payment transactions"
        },
        {
          "name": "Create Zugferd Invoice",
          "value": "Zugferd Invoice",
          "action": "Create Zugferd invoice",
          "description": "Create Zugferd compliant invoices from XML, JSON, or CSV data"
        }
      ],
      "displayName": "Invoice Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Find And Replace Text",
      "options": [
        {
          "name": "Find and Replace Text",
          "value": "Find And Replace Text",
          "action": "Find and replace text",
          "description": "Find and replace text in PDF documents"
        },
        {
          "name": "Convert PDF to editable PDF using OCR",
          "value": "Convert PDF To Editable PDF Using OCR",
          "action": "Convert PDF to editable PDF using OCR",
          "description": "Convert PDF to editable PDF using OCR for scanned documents"
        }
      ],
      "displayName": "Find Search Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "findSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Fill PDF Form",
      "options": [
        {
          "name": "Add Form Fields To PDF",
          "value": "Add Form Fields To PDF",
          "action": "Add form fields to PDF",
          "description": "Add interactive form fields to PDF documents"
        },
        {
          "name": "Fill a PDF Form",
          "value": "Fill PDF Form",
          "action": "Fill a PDF form",
          "description": "Fill PDF forms with data or generate multiple documents from templates"
        }
      ],
      "displayName": "Forms Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "forms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Generate Document Single",
      "options": [
        {
          "name": "Enable Tracking changes in word",
          "value": "Enable Tracking Changes in Word",
          "action": "Enable tracking changes in word",
          "description": "Enable tracking changes in Word documents"
        },
        {
          "name": "Generate Document (Single)",
          "value": "Generate Document Single",
          "action": "Generate document (single)",
          "description": "Generate a single document from template with data"
        },
        {
          "name": "Generate Documents (Multiple)",
          "value": "Generate Documents Multiple",
          "action": "Generate documents (multiple)",
          "description": "Generate multiple documents from template with different data sets"
        },
        {
          "name": "Get Tracking Changes In Word",
          "value": "Get Tracking Changes in Word",
          "action": "Get tracking changes in word",
          "description": "Get tracking changes information from Word documents"
        },
        {
          "name": "Replace Text With Image In Word",
          "value": "Replace Text With Image In Word",
          "action": "Replace text with image in word",
          "description": "Replace specific text in Word documents with images"
        }
      ],
      "displayName": "Generate Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "generate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Compress Image",
      "options": [
        {
          "name": "Add Image watermark To Image",
          "value": "Add Image Watermark To Image",
          "action": "Add image watermark to image",
          "description": "Add image watermark to image documents"
        },
        {
          "name": "Add Text watermark To Image",
          "value": "Add Text Watermark To Image",
          "action": "Add text watermark to image",
          "description": "Add text watermarks to images with positioning and styling options"
        },
        {
          "name": "Compress Image",
          "value": "Compress Image",
          "action": "Compress image",
          "description": "Compress image documents"
        },
        {
          "name": "Convert Image Format",
          "value": "Convert Image Format",
          "action": "Convert image format",
          "description": "Convert image format (BMP, GIF, JPG, PNG, TIFF)"
        },
        {
          "name": "Create Image from PDF",
          "value": "Create Images From PDF",
          "action": "Create image from PDF",
          "description": "Create images from PDF pages"
        },
        {
          "name": "Crop Image",
          "value": "Crop Image",
          "action": "Crop image",
          "description": "Crop images with border or rectangle cropping options"
        },
        {
          "name": "Flip Image",
          "value": "Flip Image",
          "action": "Flip image",
          "description": "Flip image documents horizontally, vertically, or both"
        },
        {
          "name": "Get Image Metadata",
          "value": "Get Image Metadata",
          "action": "Get image metadata",
          "description": "Extract metadata information from images including EXIF data and properties"
        },
        {
          "name": "Image Extract Text",
          "value": "Image Extract Text",
          "action": "Image extract text",
          "description": "Extract text content from images using OCR (Optical Character Recognition)"
        },
        {
          "name": "Replace Text with Image",
          "value": "Replace Text With Image",
          "action": "Replace text with image",
          "description": "Replace specific text in PDF documents with images"
        },
        {
          "name": "Resize Image",
          "value": "Resize Image",
          "action": "Resize image",
          "description": "Resize images by percentage or specific dimensions with aspect ratio control"
        },
        {
          "name": "Rotate Image By Exif Data",
          "value": "Rotate Image By Exif Data",
          "action": "Rotate image by exif data",
          "description": "Rotate image automatically based on EXIF orientation metadata"
        },
        {
          "name": "Rotate Image",
          "value": "Rotate Image",
          "action": "Rotate image",
          "description": "Rotate images with custom angle, background color, and proportionate resize options"
        },
        {
          "name": "Read Barcode From Image",
          "value": "Read Barcode From Image",
          "action": "Read barcode from image",
          "description": "Read barcodes from images using OCR"
        },
        {
          "name": "Remove EXIF Tags From Image",
          "value": "Remove Exif Tags From Image",
          "action": "Remove EXIF tags from image",
          "description": "Remove metadata/EXIF tags from images for privacy and file size reduction"
        }
      ],
      "displayName": "Image Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Merge Multiple PDFs",
      "options": [
        {
          "name": "Merge Multiple PDF files into Single PDF",
          "value": "Merge Multiple PDFs",
          "action": "Merge multiple PDF files into single PDF",
          "description": "Combine multiple PDF files into a single PDF document"
        },
        {
          "name": "Merge two PDF files one over another as Overlay",
          "value": "Overlay PDFs",
          "action": "Merge two PDF files one over another as overlay",
          "description": "Merge two PDF files one over another as overlay"
        },
        {
          "name": "Split PDF",
          "value": "Split PDF Regular",
          "action": "Split PDF",
          "description": "Split PDF documents by regular expression and output as ZIP"
        },
        {
          "name": "Split PDF by Barcode",
          "value": "Split PDF By Barcode",
          "action": "Split PDF by barcode",
          "description": "Split PDF documents by barcode and output as ZIP"
        },
        {
          "name": "Split PDF by Swiss QR",
          "value": "Split PDF By SwissQR",
          "action": "Split PDF by Swiss QR",
          "description": "Split PDF documents by Swiss QR code and output as ZIP"
        },
        {
          "name": "Split PDF by Text",
          "value": "Split PDF By Text",
          "action": "Split PDF by text",
          "description": "Split PDF documents by text and output as ZIP"
        }
      ],
      "displayName": "Merge & Split Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "mergeSplit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Compress PDF",
      "options": [
        {
          "name": "Compress PDF",
          "value": "Compress PDF",
          "action": "Compress PDF",
          "description": "Compress and optimize PDF files"
        }
      ],
      "displayName": "Optimize Compress Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "optimizeCompress"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Delete Blank Pages From PDF",
      "options": [
        {
          "name": "Delete Blank Pages from PDF",
          "value": "Delete Blank Pages From PDF",
          "action": "Delete blank pages from PDF",
          "description": "Remove blank pages from PDF documents based on specified criteria"
        },
        {
          "name": "Delete unwanted Pages from PDF",
          "value": "Delete Unwanted Pages From PDF",
          "action": "Delete unwanted pages from PDF",
          "description": "Remove specific pages from PDF documents by page numbers"
        },
        {
          "name": "Extract Pages",
          "value": "Extract Pages From PDF",
          "action": "Extract pages",
          "description": "Extract specific pages from PDF documents"
        },
        {
          "name": "Rotate Page",
          "value": "Rotate PDF Page",
          "action": "Rotate page",
          "description": "Rotate specific pages in PDF documents by 90, 180, or 270 degrees"
        },
        {
          "name": "Rotate Document",
          "value": "Rotate Document",
          "action": "Rotate document",
          "description": "Rotate entire PDF documents by 90, 180, or 270 degrees"
        }
      ],
      "displayName": "Organize Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "organize"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Document From Pdf4me",
      "options": [
        {
          "name": "Upload File To PDF4me",
          "value": "Upload File To PDF4me",
          "action": "Upload file to PDF4me",
          "description": "Upload a file to PDF4me storage for processing"
        },
        {
          "name": "Get Document from PDF4me",
          "value": "Get Document From Pdf4me",
          "action": "Get document from PDF4me",
          "description": "Retrieve a document from PDF4me storage"
        },
        {
          "name": "Update Hyperlinks Annotation",
          "value": "Update Hyperlinks Annotation",
          "action": "Update hyperlinks annotation",
          "description": "Update hyperlinks in PDF documents"
        }
      ],
      "displayName": "PDF4me Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf4me"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get PDF Metadata",
      "options": [
        {
          "name": "Get PDF Information",
          "value": "Get PDF Metadata",
          "action": "Get PDF information",
          "description": "Extract metadata and information from PDF files"
        },
        {
          "name": "Get PDF Metadata",
          "value": "Get PDF Metadata",
          "action": "Get PDF metadata",
          "description": "Extract metadata from PDF files"
        },
        {
          "name": "Repair PDF Document",
          "value": "Repair PDF Document",
          "action": "Repair PDF document",
          "description": "Repair corrupted or damaged PDF files"
        }
      ],
      "displayName": "PDF Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "pdf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Protect PDF",
      "options": [
        {
          "name": "Protect Document",
          "value": "Protect PDF",
          "action": "Protect document",
          "description": "Protect PDF documents with encryption, passwords, and permissions"
        },
        {
          "name": "Unlock PDF",
          "value": "Unlock PDF",
          "action": "Unlock PDF",
          "description": "Unlock PDF documents by removing encryption"
        }
      ],
      "displayName": "Security Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "security"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Disable Tracking Changes in Word",
      "options": [
        {
          "name": "Disable Tracking changes In Word",
          "value": "Disable Tracking Changes in Word",
          "action": "Disable tracking changes in word",
          "description": "Disable tracking changes in Word documents"
        }
      ],
      "displayName": "Word Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "word"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"AI-Invoice Parser","name":"AI-Invoice Parser","description":"Extract structured data from invoices using AI/ML technology for automated data entry","resource":"ai"},{"operation":"AI-Process Bank Cheque","name":"AI-Process Bank Cheque","description":"Extract structured data from bank cheques using AI/ML technology for payment processing","resource":"ai"},{"operation":"AI-Process Credit Card","name":"AI-Process Credit Card","description":"Extract structured data from credit cards using AI/ML technology for payment processing","resource":"ai"},{"operation":"AI-Process Contract","name":"AI-Process Contract","description":"Extract structured data from contracts using AI/ML technology for legal document analysis","resource":"ai"},{"operation":"AI-Process HealthCard","name":"AI-Process HealthCard","description":"Extract structured data from health cards using AI/ML technology for member management","resource":"ai"},{"operation":"AI-Process Marriage Certificate","name":"AI-Process Marriage Certificate","description":"Extract structured data from marriage certificates using AI/ML technology for document verification","resource":"ai"},{"operation":"AI-Process Mortgage Document","name":"AI-Process Mortgage Document","description":"Extract structured data from mortgage documents using AI/ML technology for loan processing","resource":"ai"},{"operation":"AI-Process Pay Stub","name":"AI-Process Pay Stub","description":"Extract structured data from pay stubs using AI/ML technology for payroll processing","resource":"ai"},{"operation":"Process Universal Document","name":"AI - Universal Document Data Extraction","description":"Extract specified fields from documents using universal document processing","resource":"ai"},{"operation":"Process Shipping Label","name":"AI-Process Shipping Label","description":"Process shipping labels to extract and analyze shipping information","resource":"ai"},{"operation":"Process Order","name":"AI-Process Order","description":"Process order documents to extract and analyze order information","resource":"ai"},{"operation":"Process Receipt","name":"AI-Process Receipt","description":"Process receipt documents to extract items, merchant info, totals, and custom fields","resource":"ai"},{"operation":"Process Tax Document","name":"AI-Process Tax Document","description":"Process tax documents (W2, 1099, 1040, etc.) to extract tax information and custom fields","resource":"ai"},{"operation":"Process Bank Statement","name":"AI-Process Bank Statement","description":"Process bank statement documents to extract transactions, analyze patterns, and custom fields","resource":"ai"},{"operation":"Add Barcode To PDF","name":"Add Barcode to PDF","description":"Add barcodes to existing PDF documents with positioning and styling options","resource":"barcode"},{"operation":"Generate Barcode","name":"Create Barcode","description":"Generate various types of barcodes including QR codes, Code 128, Code 39, and more","resource":"barcode"},{"operation":"Read SwissQR Code","name":"Read SwissQR Code","description":"Read Swiss QR code data from PDF documents","resource":"barcode"},{"operation":"Read Barcode From PDF","name":"Read Barcode from PDF","description":"Read single or multiple Barcodes or QR Codes from your PDF file","resource":"barcode"},{"operation":"Convert JSON To Excel","name":"Convert JSON To Excel","description":"Convert JSON data to Excel format","resource":"convert"},{"operation":"Convert To PDF","name":"Convert to PDF","description":"Convert various document formats to PDF","resource":"convert"},{"operation":"Convert VISIO","name":"Convert VISIO","description":"Convert VISIO files (.vsdx, .vsd) to PDF format with advanced conversion options","resource":"convert"},{"operation":"Convert Word To PDF Form","name":"Convert Word to PDF Form","description":"Convert Word documents to PDF forms","resource":"convert"},{"operation":"Create PDF/A","name":"Create PDF/A","description":"Convert PDF to PDF/A for long-term archiving and compliance","resource":"convert"},{"operation":"Flatten PDF","name":"Flatten PDF","description":"Convert interactive PDF elements into static, non-editable content","resource":"convert"},{"operation":"Convert HTML To PDF","name":"Convert Html to PDF","description":"Convert HTML files to PDF documents","resource":"convert"},{"operation":"Linearize PDF","name":"Linearize PDF","description":"Optimize PDFs for web viewing with faster loading and progressive display","resource":"convert"},{"operation":"Convert Markdown To PDF","name":"Convert Markdown To PDF","description":"Convert Markdown files to PDF documents","resource":"convert"},{"operation":"Convert PDF To Excel","name":"Convert PDF to Excel","description":"Convert PDF documents to Excel spreadsheets","resource":"convert"},{"operation":"Convert PDF To PowerPoint","name":"Convert PDF to PowerPoint","description":"Convert PDF documents to PowerPoint format with OCR support","resource":"convert"},{"operation":"Convert PDF To Word","name":"Convert PDF to Word","description":"Convert PDF documents to Word format with OCR support","resource":"convert"},{"operation":"Convert URL to PDF","name":"Convert Url to PDF","description":"Convert web pages to PDF while preserving layout, styling, and content","resource":"convert"},{"operation":"Add Attachment To PDF","name":"Add Attachment To PDF","description":"Add file attachments to PDF documents","resource":"edit"},{"operation":"Add HTML Header Footer","name":"Add HTML Header Footer to PDF","description":"Add HTML-based headers and footers to PDF documents","resource":"edit"},{"operation":"Add Margin To PDF","name":"Add Margin to PDF","description":"Add margins to PDF documents","resource":"edit"},{"operation":"Add Page Number To PDF","name":"Add Page Number to PDF","description":"Add page numbers to PDF documents","resource":"edit"},{"operation":"Add Image Stamp To PDF","name":"Add Image Stamp To PDF","description":"Add image stamps or watermarks to PDF documents","resource":"edit"},{"operation":"Sign Document","name":"Send Document for Signing","description":"Send document for e-signature via email","resource":"edit"},{"operation":"Sign PDF","name":"Sign PDF","description":"Digitally sign PDF documents","resource":"edit"},{"operation":"Add Text Stamp To PDF","name":"Add Text Stamp To PDF","description":"Add text stamps or watermarks to PDF documents","resource":"edit"},{"operation":"Classify Document","name":"Classify Document","description":"Classify documents using AI to determine document type and extract relevant information","resource":"extract"},{"operation":"Extract Attachment From PDF","name":"Extract Attachment From PDF","description":"Extract file attachments from PDF documents","resource":"extract"},{"operation":"Extract Form Data From PDF","name":"Extract Form Data From PDF","description":"Extract form field data from PDF documents","resource":"extract"},{"operation":"Extract Resources","name":"Extract Resources","description":"Extract text and images from PDF documents","resource":"extract"},{"operation":"Extract Table From PDF","name":"Extract Table From PDF","description":"Extract tables from PDF documents","resource":"extract"},{"operation":"Extract Text By Expression","name":"Extract Text by Expression","description":"Extract text from PDF using regular expressions","resource":"extract"},{"operation":"Extract Text From Word","name":"Extract Text from word","description":"Extract text content from Word documents","resource":"extract"},{"operation":"Parse Document","name":"Parse Document","description":"Parse documents to extract structured data using template-based parsing","resource":"extract"},{"operation":"Create Swiss QR Bill","name":"Create SwissQR Bill","description":"Create Swiss QR Bills using all compliance standards for digital payment transactions","resource":"invoice"},{"operation":"Zugferd Invoice","name":"Create Zugferd Invoice","description":"Create Zugferd compliant invoices from XML, JSON, or CSV data","resource":"invoice"},{"operation":"Find And Replace Text","name":"Find and Replace Text","description":"Find and replace text in PDF documents","resource":"findSearch"},{"operation":"Convert PDF To Editable PDF Using OCR","name":"Convert PDF to editable PDF using OCR","description":"Convert PDF to editable PDF using OCR for scanned documents","resource":"findSearch"},{"operation":"Add Form Fields To PDF","name":"Add Form Fields To PDF","description":"Add interactive form fields to PDF documents","resource":"forms"},{"operation":"Fill PDF Form","name":"Fill a PDF Form","description":"Fill PDF forms with data or generate multiple documents from templates","resource":"forms"},{"operation":"Enable Tracking Changes in Word","name":"Enable Tracking changes in word","description":"Enable tracking changes in Word documents","resource":"generate"},{"operation":"Generate Document Single","name":"Generate Document (Single)","description":"Generate a single document from template with data","resource":"generate"},{"operation":"Generate Documents Multiple","name":"Generate Documents (Multiple)","description":"Generate multiple documents from template with different data sets","resource":"generate"},{"operation":"Get Tracking Changes in Word","name":"Get Tracking Changes In Word","description":"Get tracking changes information from Word documents","resource":"generate"},{"operation":"Replace Text With Image In Word","name":"Replace Text With Image In Word","description":"Replace specific text in Word documents with images","resource":"generate"},{"operation":"Add Image Watermark To Image","name":"Add Image watermark To Image","description":"Add image watermark to image documents","resource":"image"},{"operation":"Add Text Watermark To Image","name":"Add Text watermark To Image","description":"Add text watermarks to images with positioning and styling options","resource":"image"},{"operation":"Compress Image","name":"Compress Image","description":"Compress image documents","resource":"image"},{"operation":"Convert Image Format","name":"Convert Image Format","description":"Convert image format (BMP, GIF, JPG, PNG, TIFF)","resource":"image"},{"operation":"Create Images From PDF","name":"Create Image from PDF","description":"Create images from PDF pages","resource":"image"},{"operation":"Crop Image","name":"Crop Image","description":"Crop images with border or rectangle cropping options","resource":"image"},{"operation":"Flip Image","name":"Flip Image","description":"Flip image documents horizontally, vertically, or both","resource":"image"},{"operation":"Get Image Metadata","name":"Get Image Metadata","description":"Extract metadata information from images including EXIF data and properties","resource":"image"},{"operation":"Image Extract Text","name":"Image Extract Text","description":"Extract text content from images using OCR (Optical Character Recognition)","resource":"image"},{"operation":"Replace Text With Image","name":"Replace Text with Image","description":"Replace specific text in PDF documents with images","resource":"image"},{"operation":"Resize Image","name":"Resize Image","description":"Resize images by percentage or specific dimensions with aspect ratio control","resource":"image"},{"operation":"Rotate Image By Exif Data","name":"Rotate Image By Exif Data","description":"Rotate image automatically based on EXIF orientation metadata","resource":"image"},{"operation":"Rotate Image","name":"Rotate Image","description":"Rotate images with custom angle, background color, and proportionate resize options","resource":"image"},{"operation":"Read Barcode From Image","name":"Read Barcode From Image","description":"Read barcodes from images using OCR","resource":"image"},{"operation":"Remove Exif Tags From Image","name":"Remove EXIF Tags From Image","description":"Remove metadata/EXIF tags from images for privacy and file size reduction","resource":"image"},{"operation":"Merge Multiple PDFs","name":"Merge Multiple PDF files into Single PDF","description":"Combine multiple PDF files into a single PDF document","resource":"mergeSplit"},{"operation":"Overlay PDFs","name":"Merge two PDF files one over another as Overlay","description":"Merge two PDF files one over another as overlay","resource":"mergeSplit"},{"operation":"Split PDF Regular","name":"Split PDF","description":"Split PDF documents by regular expression and output as ZIP","resource":"mergeSplit"},{"operation":"Split PDF By Barcode","name":"Split PDF by Barcode","description":"Split PDF documents by barcode and output as ZIP","resource":"mergeSplit"},{"operation":"Split PDF By SwissQR","name":"Split PDF by Swiss QR","description":"Split PDF documents by Swiss QR code and output as ZIP","resource":"mergeSplit"},{"operation":"Split PDF By Text","name":"Split PDF by Text","description":"Split PDF documents by text and output as ZIP","resource":"mergeSplit"},{"operation":"Compress PDF","name":"Compress PDF","description":"Compress and optimize PDF files","resource":"optimizeCompress"},{"operation":"Delete Blank Pages From PDF","name":"Delete Blank Pages from PDF","description":"Remove blank pages from PDF documents based on specified criteria","resource":"organize"},{"operation":"Delete Unwanted Pages From PDF","name":"Delete unwanted Pages from PDF","description":"Remove specific pages from PDF documents by page numbers","resource":"organize"},{"operation":"Extract Pages From PDF","name":"Extract Pages","description":"Extract specific pages from PDF documents","resource":"organize"},{"operation":"Rotate PDF Page","name":"Rotate Page","description":"Rotate specific pages in PDF documents by 90, 180, or 270 degrees","resource":"organize"},{"operation":"Rotate Document","name":"Rotate Document","description":"Rotate entire PDF documents by 90, 180, or 270 degrees","resource":"organize"},{"operation":"Upload File To PDF4me","name":"Upload File To PDF4me","description":"Upload a file to PDF4me storage for processing","resource":"pdf4me"},{"operation":"Get Document From Pdf4me","name":"Get Document from PDF4me","description":"Retrieve a document from PDF4me storage","resource":"pdf4me"},{"operation":"Update Hyperlinks Annotation","name":"Update Hyperlinks Annotation","description":"Update hyperlinks in PDF documents","resource":"pdf4me"},{"operation":"Get PDF Metadata","name":"Get PDF Information","description":"Extract metadata and information from PDF files","resource":"pdf"},{"operation":"Get PDF Metadata","name":"Get PDF Metadata","description":"Extract metadata from PDF files","resource":"pdf"},{"operation":"Repair PDF Document","name":"Repair PDF Document","description":"Repair corrupted or damaged PDF files","resource":"pdf"},{"operation":"Protect PDF","name":"Protect Document","description":"Protect PDF documents with encryption, passwords, and permissions","resource":"security"},{"operation":"Unlock PDF","name":"Unlock PDF","description":"Unlock PDF documents by removing encryption","resource":"security"},{"operation":"Disable Tracking Changes in Word","name":"Disable Tracking changes In Word","description":"Disable tracking changes in Word documents","resource":"word"}]

npm_readme:
  # n8n-nodes-pdf4me

  This is an n8n community node that enables you to integrate PDF4ME's powerful PDF processing capabilities into your n8n workflows. PDF4ME is a comprehensive PDF processing API that allows you to convert, generate barcodes, process images, and manipulate documents programmatically.

  n8n is a fair-code licensed workflow automation platform.

  ## Table of Contents

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

  ## Installation

  ### Community Nodes (Recommended)

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

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

  ### Global Installation (Recommended)

  For global installation that makes the node available across all n8n projects:

  ```bash
  # Install globally
  npm install -g n8n-nodes-pdf4me

  # Restart n8n to load the new node
  n8n start
  ```

  ### Manual Installation

  You can also install this node manually in a specific n8n project:

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

  For Docker-based deployments, add the package to your package.json and rebuild the image:

  ```json
  {
    "name": "n8n-custom",
    "version": "0.9.0",
    "description": "",
    "main": "index.js",
    "scripts": {
      "start": "n8n"
    },
    "dependencies": {
      "n8n": "^1.0.0",
      "n8n-nodes-pdf4me": "^2.0.0"
    }
  }
  ```

  ## What's New in Version 2.0.0

  Version 2.0.0 continues to enhance the PDF4ME n8n node with improved functionality and reliability:

  - **🔧 Code Refactoring**: Improved variable declarations and code structure
  - **🖼️ Image Processing**: Enhanced MIME type handling for image operations
  - **📝 Markdown Conversion**: Optimized Markdown to PDF conversion process
  - **🔍 Resource Extraction**: Improved resource extraction functionality
  - **✅ Stability**: Enhanced overall stability and performance
  - **🔄 Backward Compatible**: All existing workflows continue to work seamlessly

  ## Operations

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

  ### 1. AI-Powered Document Processing
  - **AI-Invoice Parser**: Extract structured data from invoices using AI/ML technology for automated data entry
  - **AI-Process HealthCard**: Extract structured data from health cards using AI/ML technology for member management
  - **AI-Process Contract**: Extract structured data from contracts using AI/ML technology for legal document analysis
  - **Classify Document**: Classify documents using AI to determine document type and extract relevant information
  - **Parse Document**: Parse documents to extract structured data using template-based parsing

  ### 2. PDF Processing & Manipulation
  - **Add Attachment to PDF**: Attach files to PDF documents
  - **Add Barcode to PDF**: Add barcodes to PDF documents for identification and tracking
  - **Add Form Fields to PDF**: Add interactive form fields to PDF documents
  - **Add HTML Header Footer**: Add custom HTML headers and footers to PDFs
  - **Add Image Stamp to PDF**: Add image stamps with positioning and opacity controls
  - **Add Margin to PDF**: Add margins to PDF documents
  - **Add Page Number to PDF**: Add page numbers to PDF documents
  - **Add Text Stamp to PDF**: Add text stamps with customizable formatting
  - **Compress PDF**: Optimize PDF files for web, print, or screen viewing
  - **Convert PDF to Editable OCR**: Convert PDFs to editable text using OCR
  - **Convert PDF to Excel**: Convert PDF tables to Excel spreadsheets
  - **Convert PDF to PowerPoint**: Convert PDF content to PowerPoint presentations
  - **Convert PDF to Word**: Convert PDFs to editable Word documents
  - **Create Images from PDF**: Extract images from PDF documents
  - **Delete Blank Pages from PDF**: Remove blank pages from PDF documents
  - **Delete Unwanted Pages from PDF**: Remove specific pages from PDF documents
  - **Extract Pages**: Extract specific pages from PDF documents
  - **Extract Pages from PDF**: Extract pages with advanced options
  - **Fill PDF Form**: Fill interactive PDF forms with data
  - **Find and Replace Text**: Find and replace text in PDF documents
  - **Flatten PDF**: Convert interactive PDF elements into static, non-editable content
  - **Linearize PDF**: Optimize PDFs for web viewing with faster loading and progressive display
  - **Merge Multiple PDFs**: Combine multiple PDF files into one
  - **Overlay PDFs**: Overlay one PDF on top of another
  - **Protect Document**: Add password protection and encryption to PDFs
  - **Repair PDF Document**: Fix corrupted or damaged PDF files
  - **Rotate Document**: Rotate entire PDF documents
  - **Rotate Page**: Rotate specific pages within a PDF
  - **Sign PDF**: Add digital signatures to PDF documents
  - **Split PDF by Barcode**: Split PDFs based on barcode detection
  - **Split PDF by Swiss QR**: Split PDFs based on Swiss QR code detection
  - **Split PDF by Text**: Split PDFs based on text content
  - **Split PDF Regular**: Split PDFs into equal parts or by page ranges
  - **Unlock PDF**: Remove password protection from PDFs
  - **Update Hyperlinks Annotation**: Modify hyperlinks and annotations in PDFs

  ### 3. Image Processing
  - **Add Image Watermark to Image**: Add watermarks to images
  - **Add Text Watermark to Image**: Add text watermarks to images
  - **Compress Image**: Reduce image file sizes while maintaining quality
  - **Convert Image Format**: Convert images between different formats (JPEG, PNG, etc.)
  - **Crop Image**: Crop images with border or rectangle options
  - **Flip Image**: Flip images horizontally, vertically, or both
  - **Get Image Metadata**: Extract metadata from image files
  - **Image Extract Text**: Extract text from images using OCR
  - **Read Barcode from Image**: Read barcodes from images
  - **Remove EXIF Tags from Image**: Remove metadata from images
  - **Replace Text with Image**: Replace text in documents with images
  - **Replace Text with Image in Word**: Replace text in Word documents with images
  - **Resize Image**: Resize images to specific dimensions
  - **Rotate Image**: Rotate images by specific angles
  - **Rotate Image by EXIF Data**: Auto-rotate images based on EXIF orientation

  ### 4. Document Conversion
  - **Convert to PDF**: Convert various document formats to PDF
  - **Convert HTML to PDF**: Convert HTML content to PDF with multiple input options (Binary Data, Base64, HTML Code, URL)
  - **Convert Image Format**: Convert images between different formats
  - **Convert Markdown to PDF**: Convert Markdown files to PDF
  - **Convert Visio**: Convert Visio diagrams to PDF
  - **Convert Word to PDF Form**: Convert Word documents to PDF forms
  - **JSON to Excel**: Convert JSON data to Excel spreadsheets
  - **URL to PDF**: Convert web pages to PDF

  ### 5. Barcode Operations
  - **Barcode Generator**: Generate various types of barcodes (QR, Code 128, EAN, UPC, etc.)
  - **Add Barcode to PDF**: Add barcodes directly to PDF documents for identification and tracking
  - **Read Barcode from Image**: Extract barcode data from images
  - **Read Barcode from PDF**: Extract barcode data from PDF documents
  - **Read Swiss QR Code**: Read Swiss QR codes from documents

  ### 6. Document Analysis & Extraction
  - **Extract Attachment from PDF**: Extract attached files from PDFs
  - **Extract Form Data from PDF**: Extract form field data from PDFs
  - **Extract Pages from PDF**: Extract specific pages from PDFs
  - **Extract Resources**: Extract resources from documents
  - **Extract Table from PDF**: Extract tables from PDF documents
  - **Extract Text by Expression**: Extract text using custom expressions
  - **Extract Text from Word**: Extract text from Word documents
  - **Get Document from PDF4ME**: Retrieve documents from PDF4ME storage
  - **Get PDF Metadata**: Extract metadata from PDF files

  ### 7. Document Management & Generation
  - **Create PDF/A**: Create PDF/A compliant documents
  - **Create Swiss QR Bill**: Create Swiss QR Bills using all compliance standards for digital payment transactions
  - **Disable Tracking Changes in Word**: Remove tracking changes from Word documents
  - **Enable Tracking Changes in Word**: Enable tracking changes in Word documents
  - **Generate Document Single**: Generate single documents from templates
  - **Generate Documents Multiple**: Generate multiple documents from templates
  - **Get Tracking Changes in Word**: Get tracking changes status from Word documents
  - **Upload File to PDF4ME**: Upload files to PDF4ME for further processing
  - **Zugferd Invoice**: Create compliant Zugferd invoices for standardized electronic invoicing

  ### 8. Advanced Features
  - **Create Images from PDF**: Extract and process images from PDF documents
  - **Document Processing**: Advanced document manipulation and processing

  ## Credentials

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

  1. Sign up for a PDF4ME account at [PDF4ME Developer Portal](https://dev.pdf4me.com/)
  2. Navigate to your dashboard and obtain your API key
  3. In n8n, add your PDF4ME credentials by providing your API key

  ## Usage

  This node allows you to automate document processing tasks in your n8n workflows. With version 2.0.0, the interface has been optimized for better performance and stability. Here are some common use cases:

  ### AI-Powered Document Processing
  - Automatically extract invoice data for accounting systems
  - Process health cards for member management systems
  - Analyze contracts for legal document review
  - Classify documents for automated routing and processing
  - Parse structured data from various document types using templates

  ### Document Processing
  - Convert PDF documents to editable Word format with OCR support
  - Process complex PDFs with enhanced timeout handling (up to 25 minutes)
  - Extract text from PDF documents for data processing
  - Convert various document formats to PDF
  - Extract specific pages from PDF documents for creating shorter versions or digital booklets
  - Add watermarks, stamps, and annotations to documents
  - Compress and optimize PDF files for different use cases
  - Fill interactive PDF forms with data from your workflows
  - Split PDFs based on content, barcodes, or page ranges

  ### Barcode Operations
  - Generate QR codes for product tracking
  - Create product barcodes (EAN-13, UPC-A) for inventory management
  - Generate barcodes for document identification
  - Embed barcodes in documents and reports
  - Read barcodes from images and PDFs for automated processing
  - Process Swiss QR codes for payment transactions

  ### Web Content Processing
  - Convert web pages to PDF for archiving
  - Automatically convert HTML reports to PDF
  - **Write HTML code directly and convert to PDF** - No need to save HTML files first
  - Capture web-based dashboards and reports
  - Convert protected web content with authentication

  ### HTML to PDF Conversion Options
  The Convert HTML to PDF operation supports multiple input methods for maximum flexibility:
  - **Binary Data**: Use HTML files from previous workflow nodes
  - **Base64 String**: Provide HTML content as base64 encoded strings
  - **HTML Code**: Write HTML code directly in the interface (automatically converted to base64)
  - **URL**: Convert HTML content from web URLs

  **Example Use Cases for HTML Code Input:**
  - **Dynamic Reports**: Generate PDFs from HTML templates with real-time data
  - **Email Templates**: Convert HTML email content to PDF for archiving
  - **Custom Dashboards**: Create PDF versions of HTML dashboards
  - **Document Generation**: Build PDFs from HTML snippets without file management
  - **Rapid Prototyping**: Quickly test HTML layouts by converting to PDF

  ### Data Export and Reporting
  - Convert JSON data to Excel spreadsheets
  - Transform API responses to formatted reports
  - Export analytics data to Excel for stakeholder reports
  - Create automated data processing pipelines
  - Generate documents from templates with dynamic data

  ### Image Processing
  - Crop images for specific dimensions
  - Remove borders from scanned documents
  - Process product images for e-commerce
  - Create thumbnails and optimized images
  - Add watermarks to images for branding
  - Extract text from images using OCR
  - Convert images between different formats

  ### Swiss QR Bill Generation
  - Create compliant Swiss QR Bills for digital payment transactions
  - Generate QR codes with all required payment information
  - Support for multiple languages (English, German, French, Italian)
  - Include creditor and debtor information with structured addresses
  - Add billing information and unstructured messages
  - Generate bills with different separator line styles
  - Support for various reference types (QR Reference, Creditor Reference, No Reference)

  ### Zugferd Invoice Generation
  - Create compliant Zugferd invoices for standardized electronic invoicing
  - Generate invoices following the Zugferd standard (ZUGFeRD/Factur-X)
  - Support for structured invoice data exchange
  - Compatible with European e-invoicing requirements
  - Generate PDF/A compliant invoices with embedded XML data

  ### Document Generation & Management
  - Generate documents from templates with dynamic data
  - Create PDF/A compliant documents for long-term archiving
  - Manage Word document tracking changes
  - Process multiple documents in batch operations
  - Extract and manage document metadata

  ### Automated Workflows
  - Chain multiple PDF4ME operations together with simplified configuration
  - Integrate with email nodes for automated document distribution
  - Connect with storage services for file management
  - Build complete document processing pipelines with enhanced reliability
  - Automate document classification and routing
  - Create end-to-end document workflows with improved error handling
  - **Version 2.0.0**: Enhanced stability and performance for reliable workflow execution

  For detailed examples and workflow templates, visit our documentation.

  ## Resources

  - [PDF4me n8n Integration Documentation](https://docs.pdf4me.com/integration/n8n/getting-started/)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [PDF4ME API Documentation](https://dev.pdf4me.com/apiv2/documentation/)
  - [PDF4ME Developer Portal](https://dev.pdf4me.com/)
  - [PDF4ME Support](mailto:support@pdf4me.com)
  - [Troubleshooting Guide](TROUBLESHOOTING.md)
  - [Publishing Guide](PUBLISHING_GUIDE.md)

  ## Version History

  ### 2.0.0
  - **Latest Version**: Major version update with enhanced features and improvements
  - **Version Upgrade**: Major version bump to 2.0.0
  - **Enhanced Functionality**: Continued improvements to document processing capabilities
  - **Stability**: Enhanced overall stability and performance
  - **Maintained Compatibility**: All existing workflows continue to work seamlessly

  ### 1.6.0
  - **Previous Version**: Stability improvements and code optimizations
  - **Code Refactoring**: Improved variable declarations and code structure across actions
  - **Image Processing**: Enhanced MIME type handling for image operations in extractResources
  - **Markdown Conversion**: Optimized convertMarkdownToPdf functionality
  - **Resource Extraction**: Improved resource extraction with better error handling
  - **Performance**: Enhanced overall stability and processing speed
  - **Maintained Compatibility**: All existing workflows continue to work seamlessly

  ### 1.5.1
  - **Previous Version**: Stability improvements and code optimizations
  - **Code Refactoring**: Improved variable declarations and code structure across actions
  - **Image Processing**: Enhanced MIME type handling for image operations in extractResources
  - **Markdown Conversion**: Optimized convertMarkdownToPdf functionality
  - **Resource Extraction**: Improved resource extraction with better error handling
  - **Performance**: Enhanced overall stability and processing speed
  - **Maintained Compatibility**: All existing workflows continue to work seamlessly

  ### 1.5.0
  - **Previous Version**: Major refactoring and enhanced user experience
  - **Simplified Output Handling**: Removed complex binaryDataName parameters across all actions
  - **Enhanced Response Processing**: Improved response handling to return raw data and metadata consistently
  - **Streamlined Interface**: Simplified action configurations for better usability
  - **Improved Descriptions**: Enhanced action descriptions for clarity and consistency
  - **Better Error Handling**: Refined error handling and response processing
  - **Code Optimization**: Significant code cleanup and optimization across all actions
  - **Maintained Compatibility**: All existing workflows continue to work seamlessly
  - **Enhanced Performance**: Improved processing speed and reliability

  ### 1.3.5
  - **Previous Version**: Enhanced HTML to PDF conversion with direct HTML code input
  - Added **HTML Code** input option for Convert HTML to PDF operation
  - Users can now write HTML code directly in the interface without saving files first
  - HTML code is automatically converted to base64 for API processing
  - Enhanced input flexibility with 4 input methods: Binary Data, Base64, HTML Code, and URL
  - Improved user experience for developers and content creators
  - Maintains backward compatibility with existing workflows

  ### 1.3.0
  - **Previous Version**: AI-powered document processing and enhanced features
  - Added AI-Invoice Parser for automated invoice data extraction
  - Added AI-Process HealthCard for health card data processing
  - Added AI-Process Contract for contract analysis
  - Added Classify Document for AI-powered document classification
  - Added Parse Document for template-based document parsing
  - Added Linearize PDF for web-optimized PDFs
  - Added Flatten PDF for converting interactive elements to static content
  - Enhanced error handling and response processing
  - Improved support for JSON responses in AI processing operations
  - Updated Node.js engine requirement to >=20.15
  - Enhanced build and validation scripts

  ### 1.1.1
  - **Previous Version**: Maintenance and dependency updates
  - Updated dependencies for improved compatibility and security
  - Minor bug fixes and codebase improvements
  - Improved build and validation scripts for publishing
  - **Note:** This version failed the n8n community package security scan due to an ESLint violation: use of restricted global 'setTimeout' is not allowed (see scan results for details).

  ### 1.1.0
  - **Previous Version**: Security and compliance updates
  - Updated to address n8n community package security scan results
  - Added guidance for ESLint compliance and restricted imports
  - Updated dependencies in package.json
  - Improved documentation and publishing guides
  - Minor bug fixes and codebase cleanup

  ### 1.0.0
  - Production-ready release with comprehensive document processing capabilities
  - 60+ document processing operations covering all major use cases
  - Full integration with PDF4ME API services
  - Complete PDF processing suite including conversion, manipulation, and analysis
  - Advanced image processing capabilities with watermarking, cropping, and format conversion
  - Comprehensive barcode generation and reading functionality
  - Document conversion between multiple formats (PDF, Word, Excel, PowerPoint, HTML, etc.)
  - Enhanced timeout handling for complex operations (up to 25 minutes)
  - Improved async processing with exponential backoff and better error handling
  - Support for multiple input types (Binary Data, Base64, URL, File Path)
  - Advanced OCR capabilities with multi-language support
  - Document protection, signing, and security features
  - Metadata extraction and document analysis tools
  - Swiss QR Bill generation with full compliance standards
  - Document template generation and batch processing
  - All critical lint errors resolved for production readiness
  - Optimized package structure and build validation
  - Enhanced error handling and debugging capabilities

  ### 0.9.0
  - Comprehensive document processing capabilities with 50+ actions
  - Full integration with PDF4ME API services
  - Complete PDF processing suite including conversion, manipulation, and analysis
  - Advanced image processing capabilities with watermarking, cropping, and format conversion
  - Comprehensive barcode generation and reading functionality
  - Document conversion between multiple formats (PDF, Word, Excel, HTML, etc.)
  - Enhanced timeout handling for complex operations (up to 25 minutes)
  - Improved async processing with exponential backoff and better error handling
  - Support for multiple input types (Binary Data, Base64, URL, File Path)
  - Advanced OCR capabilities with multi-language support
  - Document protection, signing, and security features
  - Metadata extraction and document analysis tools
  - All critical lint errors resolved for production readiness
  - Optimized package structure and build validation

  ### 0.8.0
  - Comprehensive document processing capabilities
  - Full integration with PDF4ME API services
  - Support for barcode generation, URL to PDF conversion, PDF to Word conversion, JSON to Excel conversion, image cropping, and PDF page extraction
  - Enhanced timeout handling for complex PDF to Word conversions (up to 25 minutes)
  - Improved async processing with exponential backoff and better error handling
  - Support for multiple input types (Binary Data, Base64, URL, File Path)
  - Advanced OCR capabilities with multi-language support
  - Comprehensive barcode generation with 100+ supported formats
  - PDF page extraction for creating shorter versions and digital booklets
  - Standardized API documentation URLs across all files
  - Global installation support for cross-project availability

  ### 0.1.9
  - Fixed package structure and build validation
  - Improved error handling and debugging capabilities

  ### 0.1.3
  - Added global installation support
  - Enhanced package configuration for npm publishing

  ### 0.1.2
  - Initial release with core functionality

ai_documentation_summary:
  {"purpose":"This n8n community node integrates PDF4ME's API to enable comprehensive PDF and document processing, including AI-powered data extraction, format conversion, and document manipulation.","capabilities":["AI-powered invoice parsing","AI-powered health card processing","AI-powered contract analysis","Document classification using AI","Template-based document parsing","PDF to Excel conversion","PDF to Word conversion","PDF to PowerPoint conversion","PDF to editable OCR conversion","PDF to Markdown conversion"],"authentication":"API key required","commonUseCases":["Automated invoice data extraction and entry","Contract document analysis and classification","Bulk PDF document conversion to Excel or Word","Creating interactive PDF forms from templates","Document merging and splitting workflows"],"limitations":["Community node (not official n8n node)","Requires external PDF4ME API access and credentials","Requires manual installation or community node panel setup"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-cron","n8n-nodes-exceljs.ExcelJS","n8n-nodes-pipefile"]}


node_type: n8n-nodes-scrapeunblocker.scrapeUnblocker
package_name: n8n-nodes-scrapeunblocker
display_name: ScrapeUnblocker
description: Unblock and scrape any website using ScrapeUnblocker API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: tvaitiekunas
author_github_url: https://github.com/ScrapeUnblocker/
npm_package_name: n8n-nodes-scrapeunblocker
npm_version: 0.1.3
community_fetched_at: 2026-03-25T21:19:40.907Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-scrapeunblocker

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

  The ScrapeUnblocker web scraping API helps to bypass captchas and anti-bot systems.

  [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

  - Get Page Source: POST

  ## Credentials

  You can obtain your API KEY for free by signing up at https://app.scrapeunblocker.com/

  After signing up you will be given 100 free calls for testing ScrapeUnblocker API service.

  ## Compatibility

  n8n 2.8.3 and above

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Get Page Source API](https://www.scrapeunblocker.com/documentation)

  ## Version history

  - 0.1.1: Initial Release
  - 0.1.2: Github repo made public

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflows to bypass captchas and anti-bot systems by using the ScrapeUnblocker API to retrieve webpage content.","capabilities":["Get Page Source","Bypass captchas","Bypass anti-bot systems","Access protected or restricted websites"],"authentication":"API key required (obtained from ScrapeUnblocker account)","commonUseCases":["Web scraping of protected sites","Automated data collection from captcha-protected pages","Bot detection bypass for research or monitoring tasks"],"limitations":["Free tier limited to 100 calls for testing","Requires external API key from ScrapeUnblocker service","May have rate limits based on API plan"],"relatedNodes":["n8n HTTP Request","n8n Webhook"]}


node_type: n8n-nodes-upcellapi.upcellApi
package_name: n8n-nodes-upcellapi
display_name: upcell API
description: Get data from the upcell API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: justinsweeney
author_github_url: https://github.com/UpCell/n8n-node.git
npm_package_name: n8n-nodes-upcellapi
npm_version: 0.3.0
community_fetched_at: 2026-03-25T21:19:40.907Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "enrichMobile",
      "options": [
        {
          "name": "Enrich Mobile",
          "value": "enrichMobile"
        },
        {
          "name": "Enrich Email",
          "value": "enrichEmail"
        },
        {
          "name": "Enrich Social URL",
          "value": "enrichSocialUrl"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post",
          "action": "Enrich mobile",
          "routing": {
            "request": {
              "url": "/enrich/contact",
              "body": {
                "fields": "={{[\"mobile\"]}}",
                "linkedinUrl": "={{ $parameter.linkedinUrl }}"
              },
              "method": "POST"
            }
          },
          "description": "Enrich contact with mobile phone"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichMobile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post",
          "action": "Enrich email",
          "routing": {
            "request": {
              "url": "/enrich/email",
              "body": {
                "last_name": "={{ $parameter.lastName }}",
                "first_name": "={{ $parameter.firstName }}",
                "company_domain": "={{ $parameter.companyDomain }}"
              },
              "method": "POST"
            }
          },
          "description": "Enrich contact with email address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichEmail"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post",
          "action": "Enrich social url",
          "routing": {
            "request": {
              "url": "/enrich/socialurl",
              "body": {
                "email": "={{ $parameter.email }}",
                "title": "={{ $parameter.title }}",
                "last_name": "={{ $parameter.lastName }}",
                "first_name": "={{ $parameter.firstName }}",
                "company_name": "={{ $parameter.companyName }}",
                "mobile_phone": "={{ $parameter.mobilePhone }}",
                "company_domain": "={{ $parameter.companyDomain }}",
                "company_social_url": "={{ $parameter.companySocialUrl }}"
              },
              "method": "POST"
            }
          },
          "description": "Enrich contact with social URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichSocialUrl"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [{"operation":"post","name":"Post","description":"Enrich contact with mobile phone","resource":"enrichMobile"},{"operation":"post","name":"Post","description":"Enrich contact with email address","resource":"enrichEmail"},{"operation":"post","name":"Post","description":"Enrich contact with social URL","resource":"enrichSocialUrl"}]

npm_readme:
  # n8n-nodes-upcellapi

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

  upcell provides B2B contact and sales intelligence 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)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history)  <!-- delete if not using this section -->

  ## Installation

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

  ## Operations

  * Enrich Contact - enrich a contact with mobile data
  * Enrich Email - enrich a contact with a verified email address
  * Enrich Social URL - enrich a contact with a social url

  ## Credentials

  In order to use the upcell node, you will need to first obtain an upcell API key by contacting [sales@upcell.io](mailto:sales@upcell.io).

  ## Compatibility

  This has been tested against n8n version 1.115.3.

  ## Usage

  To understand more about the APIs available from upcell, visit https://api.upcell.io.

  If you are new to n8n and community nodes, you can [Try it out](https://docs.n8n.io/try-it-out/) to get started.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"This n8n community node retrieves B2B contact and sales intelligence data from the upcell API, including mobile data, verified email addresses, and social URLs.","capabilities":["Enrich contact with mobile data","Enrich contact with verified email address","Enrich contact with social URL"],"authentication":"API key required (obtained by contacting sales@upcell.io)","commonUseCases":["Lead enrichment in sales workflows","Contact data validation","Social media link retrieval for prospects"],"limitations":["Community node (not official n8n node)","Requires manual API key acquisition via email contact"],"relatedNodes":["n8n-nodes-upcellapi.upcellApi"]}


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

updated_at: 2026-03-25 21:19:40
author_name: ejazahmed
author_github_url: https://github.com/IPGeolocation/
npm_package_name: n8n-nodes-ipgeolocation
npm_version: 2.0.0
community_fetched_at: 2026-03-25T21:19:40.908Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Integrate ipgeolocation.io with n8n to automate IP lookup, geolocation, timezone data, and security checks for powerful workflow enrichment.

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getIpInfo",
      "options": [
        {
          "name": "Get Abuse Contact Info",
          "value": "getAbuseInfo",
          "action": "Get abuse info",
          "routing": {
            "request": {
              "url": "/v3/abuse",
              "method": "GET"
            }
          },
          "description": "Retrieves abuse contact and reporting information for an IP address, including organization, network, and abuse email details"
        },
        {
          "name": "Get ASN Info",
          "value": "getAsnInfo",
          "action": "Get asn info",
          "routing": {
            "request": {
              "url": "/v3/asn",
              "method": "GET"
            }
          },
          "description": "Retrieves Autonomous System Number (ASN) details for an IP address or ASN, including organization, country, and network information"
        },
        {
          "name": "Get Astronomy Info",
          "value": "getAstronomy",
          "action": "Get astronomy info",
          "routing": {
            "request": {
              "url": "/v3/astronomy",
              "method": "GET"
            }
          },
          "description": "The Astronomy API provides sun, moon data using IP, latitude, longitude, timezone or Location"
        },
        {
          "name": "Get Astronomy Timeseries Information",
          "value": "getAstronomyTimeseries",
          "action": "Get timezone info",
          "routing": {
            "request": {
              "url": "/v3/astronomy/timeSeries",
              "method": "GET"
            }
          },
          "description": "Look up astronomy details for any location by providing a starting and ending date for the time series"
        },
        {
          "name": "Get Bulk IP Geolocation",
          "value": "getBulkIpGeolocation",
          "action": "Get bulk ip geolocation",
          "routing": {
            "request": {
              "url": "/v3/ipgeo-bulk",
              "method": "POST"
            }
          },
          "description": "Retrieves geolocation information (country, city, coordinates, etc.) for multiple IP addresses at once"
        },
        {
          "name": "Get Bulk IP Security",
          "value": "getBulkIPSecurity",
          "action": "Get bulk ip security",
          "routing": {
            "request": {
              "url": "/v3/security-bulk",
              "method": "POST"
            }
          },
          "description": "Retrieves security information for multiple IP addresses at once, including proxy, VPN, TOR, and threat intelligence details"
        },
        {
          "name": "Get Bulk User Agents Info",
          "value": "getBulkUserAgent",
          "action": "Get bulk user agent info",
          "routing": {
            "request": {
              "url": "/v3/user-agent-bulk",
              "method": "POST"
            }
          },
          "description": "Retrieves detailed client system and browser information for multiple user agents at once(max 50,000), enabling detection of bots, crawlers, and potential attackers"
        },
        {
          "name": "Get IP Geolocation",
          "value": "getIpInfo",
          "action": "Get ip geolocation",
          "routing": {
            "request": {
              "url": "/v3/ipgeo",
              "method": "GET"
            }
          },
          "description": "Retrieves detailed geolocation information (country, city, coordinates, etc.) for a specified IP address"
        },
        {
          "name": "Get IP Security",
          "value": "getIpSecurityInfo",
          "action": "Get ip security info",
          "routing": {
            "request": {
              "url": "/v3/security",
              "method": "GET"
            }
          },
          "description": "Retrieves security information about an IP address, including proxy, VPN, TOR, and threat intelligence details"
        },
        {
          "name": "Get Time Conversion",
          "value": "getTimeConversion",
          "action": "Get timezone info",
          "routing": {
            "request": {
              "url": "/v3/timezone/convert",
              "method": "GET"
            }
          },
          "description": "Calculates precise time differences in hours and minutes between two locations using time zones, coordinates, or cities"
        },
        {
          "name": "Get Timezone Info",
          "value": "getTimezone",
          "action": "Get timezone info",
          "routing": {
            "request": {
              "url": "/v3/timezone",
              "method": "GET"
            }
          },
          "description": "Provides current date, time, UTC offset, and daylight saving info for any timezone, IP address, or geolocation coordinates via timezone API"
        },
        {
          "name": "Get User Agent Info",
          "value": "getUserAgent",
          "action": "Get user agent info",
          "routing": {
            "request": {
              "url": "/v3/user-agent",
              "method": "POST"
            }
          },
          "description": "Provides detailed client system and browser information for detecting bots, crawlers, and potential attackers"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Abuse Contact Info",
      "value": "getAbuseInfo",
      "action": "Get abuse info",
      "routing": {
        "request": {
          "url": "/v3/abuse",
          "method": "GET"
        }
      },
      "description": "Retrieves abuse contact and reporting information for an IP address, including organization, network, and abuse email details"
    },
    {
      "name": "Get ASN Info",
      "value": "getAsnInfo",
      "action": "Get asn info",
      "routing": {
        "request": {
          "url": "/v3/asn",
          "method": "GET"
        }
      },
      "description": "Retrieves Autonomous System Number (ASN) details for an IP address or ASN, including organization, country, and network information"
    },
    {
      "name": "Get Astronomy Info",
      "value": "getAstronomy",
      "action": "Get astronomy info",
      "routing": {
        "request": {
          "url": "/v3/astronomy",
          "method": "GET"
        }
      },
      "description": "The Astronomy API provides sun, moon data using IP, latitude, longitude, timezone or Location"
    },
    {
      "name": "Get Astronomy Timeseries Information",
      "value": "getAstronomyTimeseries",
      "action": "Get timezone info",
      "routing": {
        "request": {
          "url": "/v3/astronomy/timeSeries",
          "method": "GET"
        }
      },
      "description": "Look up astronomy details for any location by providing a starting and ending date for the time series"
    },
    {
      "name": "Get Bulk IP Geolocation",
      "value": "getBulkIpGeolocation",
      "action": "Get bulk ip geolocation",
      "routing": {
        "request": {
          "url": "/v3/ipgeo-bulk",
          "method": "POST"
        }
      },
      "description": "Retrieves geolocation information (country, city, coordinates, etc.) for multiple IP addresses at once"
    },
    {
      "name": "Get Bulk IP Security",
      "value": "getBulkIPSecurity",
      "action": "Get bulk ip security",
      "routing": {
        "request": {
          "url": "/v3/security-bulk",
          "method": "POST"
        }
      },
      "description": "Retrieves security information for multiple IP addresses at once, including proxy, VPN, TOR, and threat intelligence details"
    },
    {
      "name": "Get Bulk User Agents Info",
      "value": "getBulkUserAgent",
      "action": "Get bulk user agent info",
      "routing": {
        "request": {
          "url": "/v3/user-agent-bulk",
          "method": "POST"
        }
      },
      "description": "Retrieves detailed client system and browser information for multiple user agents at once(max 50,000), enabling detection of bots, crawlers, and potential attackers"
    },
    {
      "name": "Get IP Geolocation",
      "value": "getIpInfo",
      "action": "Get ip geolocation",
      "routing": {
        "request": {
          "url": "/v3/ipgeo",
          "method": "GET"
        }
      },
      "description": "Retrieves detailed geolocation information (country, city, coordinates, etc.) for a specified IP address"
    },
    {
      "name": "Get IP Security",
      "value": "getIpSecurityInfo",
      "action": "Get ip security info",
      "routing": {
        "request": {
          "url": "/v3/security",
          "method": "GET"
        }
      },
      "description": "Retrieves security information about an IP address, including proxy, VPN, TOR, and threat intelligence details"
    },
    {
      "name": "Get Time Conversion",
      "value": "getTimeConversion",
      "action": "Get timezone info",
      "routing": {
        "request": {
          "url": "/v3/timezone/convert",
          "method": "GET"
        }
      },
      "description": "Calculates precise time differences in hours and minutes between two locations using time zones, coordinates, or cities"
    },
    {
      "name": "Get Timezone Info",
      "value": "getTimezone",
      "action": "Get timezone info",
      "routing": {
        "request": {
          "url": "/v3/timezone",
          "method": "GET"
        }
      },
      "description": "Provides current date, time, UTC offset, and daylight saving info for any timezone, IP address, or geolocation coordinates via timezone API"
    },
    {
      "name": "Get User Agent Info",
      "value": "getUserAgent",
      "action": "Get user agent info",
      "routing": {
        "request": {
          "url": "/v3/user-agent",
          "method": "POST"
        }
      },
      "description": "Provides detailed client system and browser information for detecting bots, crawlers, and potential attackers"
    }
  ]

npm_readme:
  # IP Geolocation n8n Integration

  ## Overview

  The n8n+IPGeolocation integration makes it simple to use the full [**IPGeolocation.io v3**](https://ipgeolocation.io) APIs inside your n8n automation workflows. You do not need to write code or handle API requests because everything can be automated through clear and simple actions.

  With this integration, you can quickly get helpful information about any IP address. This includes location details, network ownership, security risk information, user agent data, time zone details, and even basic astronomy information. You can use this data to improve your workflows, personalize user experiences, and make your automation more secure.

  It allows you to automate retrieval of:

  - Geolocation information for any IP address
  - Threat intelligence and security risk details
  - Network ownership and ASN information
  - Time zone data and time conversion tools
  - Astronomy information such as sunrise and sunset
  - User agent details including browser, operating system, and device type

  ---

  ## IPGeolocation Node Installation Guide 
  ### Installing IPGeolocation Node via n8n Editor (Recommended)

  Since the IPGeolocation node is verified by n8n, you can easily find and install it directly from the n8n Editor without any manual setup.

  #### Steps to Install from n8n Editor

  **1. Open n8n Editor**

  Log in to your n8n instance (Cloud or Self-Hosted).

  **2. Open Nodes Panel**

  Click on the **“+” (Add node)** button.

  **3. Search for the Node**

  In the search bar, type **IPGeolocation**.  
  Because the node is verified, it will appear directly in the search results.

  **4. Install the Node**

  Click on the **IPGeolocation** node.  
  n8n will automatically install and enable it.

  **5. Start Using the Node**

  Once installed, the node is ready to be used in your workflows.


  ### Community Nodes
  For users on n8n v0.187+, your instance owner can install this node from Community Nodes.

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

  ### Manual Installation

  It explains how to install and use the **official
  `n8n-nodes-ipgeolocation` package**, developed and maintained by
  **[IPGeolocation.io](https://ipgeolocation.io)**.\
  Follow the steps below to integrate our IP Geolocation capabilities
  directly into your n8n workflows.

  #### Start n8n Once (to generate the .n8n folder)

  ``` bash
  npx n8n
  ```

  After it opens, close it. This ensures the `.n8n` directory is
  generated.


  #### Navigate to the n8n configuration directory

  ``` bash
  cd ~/.n8n
  ```

  #### Create a directory for custom nodes

  ``` bash
  mkdir custom
  cd custom
  ```

  #### Initialize npm inside the custom folder

  ``` bash
  npm init -y
  ```

  #### Install the official IPGeolocation.io n8n node

  ``` bash
  npm install n8n-nodes-ipgeolocation@latest
  ```

  This [npm package](https://www.npmjs.com/package/n8n-nodes-ipgeolocation) is the official IPGeolocation.io integration for n8n,
  enabling powerful IP lookup, timezone, geolocation, and security data
  directly inside your workflows.

  #### Restart n8n

  After the installation, restart your n8n instance using:

  ``` bash
  npx n8n
  ```

  n8n will automatically load all custom nodes located in the
  `.n8n/custom` folder, including the **IPGeolocation.io** node.


  #### You're Ready to Go!

  You can now use the **IPGeolocation.io** node inside n8n to:

  -   Retrieve IP Geolocation data
  -   Detect timezone information
  -   Perform IP Security checks
  -   Enrich workflows with location-based intelligence

  ---

  ## API Key & Connection Setup

  To use IPGeolocation.io with **n8n**, you need a valid **API Key**. Follow these steps carefully:

  ### Create or log in to your IPGeolocation.io account

  - Go to [**IPGeolocation.io**](https://ipgeolocation.io/).
  - If you don’t have an account, click [**Sign Up**](https://app.ipgeolocation.io/signup) and complete the registration.
  - If you already have an account, click [**Sign in**](https://app.ipgeolocation.io/login) and enter your credentials.

  ### Obtain your API Key

  - After logging in, go to your [**dashboard**](https://app.ipgeolocation.io/dashboard).
  - Copy your **API Key** — you’ll need it to connect n8n with IPGeolocation.io.

  ### Open n8n and create a scenario

  - Go to [n8n instance](https://n8n.io/) and log in or sign up.
  - Click + from your sidebar and create a new workflow from scratch.
  - You will see a canvas where you can add nodes.

  ### Add an IPGeolocation node
  - Make sure you have the **IPGeolocation.io** node installed.
  - Click the **+** button to add a node.
  - Search for **IPGeolocation** in the nodes search bar.

  ### Set up the connection

  - Paste the **API Key** you copied earlier into the required field.
  - Click **Save** to authenticate the connection.

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/setup-connection.png)

  ### Test the connection

  - n8n will attempt to connect using your API Key.
  - If successful, the module will show a green checkmark and confirmation.

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/successful-connection.png)

  - If there’s an error, double-check your API Key and make sure it’s active and valid for the plan you’re using.

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/error-connecting.png)

  ### Use your connection

  - Once connected, this API Key is available for **all IPGeolocation modules** in your n8n workflows.
  - You can now use it to perform actions like **Get IP Geolocation**, **Parse User Agent**, or **Bulk IP Geolocation**, depending on your API plan.

  ---

  ## Actions Availability across our Plans

  The availability of actions depends on the plan you are subscribed to. The following table provides a detailed overview of which actions are included in each plan, helping you quickly identify the plan that suits your needs.

  | **Action** | **Developer** | **Paid** |
  | --- | --- | --- |
  | **Get IP Geolocation** | ✔ | ✔ |
  | **Get Bulk IP Geolocation** | ✖ | ✔ |
  | **Get IP Security** | ✖ | ✔ |
  | **Get Bulk IP Security** | ✖ | ✔ |
  | **Get ASN Info** | ✖ | ✔ |
  | **Get Abuse Contact Info** | ✖ | ✔ |
  | **Get Astronomy Info** | ✔ | ✔ |
  | **Get Astronomy Timeseries Information** | ✔ | ✔ |
  | **Get Timezone Info** | ✔ | ✔ |
  | **Get Time Conversion** | ✔ | ✔ |
  | **Get User Agent Info** | ✖ | ✔ |
  | **Get Bulk User Agents Info** | ✖ | ✔ |

  For full pricing details and to choose your plan, see the [pricing page](https://ipgeolocation.io/pricing.html).

  ---

  ## Modules

  Below is a structured reference of all modules in this integration.

  ### **Geolocation**

  #### **Get IP Geolocation**

  Retrieves full geolocation data of a single IPv4/IPv6.

  - **Input:** IP Address
  - **Outputs:** country_name, city, latitude, longitude and [many more](https://ipgeolocation.io/documentation/ip-location-api.html#location-json-object-reference)

  #### **Get Bulk IP Geolocation**

  Retrieves geolocation for up to 50,000 IPs per request.

  - **Input:** Array of IPs
  - **Outputs:** Collection of geolocation objects

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/ip-geolocation-v3.png)

  ### **Security**

  #### **IP Security Lookup**

  Security insights such as proxy, VPN, TOR, threat score, cloud and proxy providers.

  - **Input:** IP Address
  - **Outputs:** security.is_proxy, security.is_vpn, security.threat_score, security.is_cloud_provider and [more](https://ipgeolocation.io/documentation/ip-security-api.html#security-json-object-reference)

  #### **Bulk IP Security Lookup**

  Security assessment for multiple IPs.

  - **Input:** Array of IPs
  - **Outputs:** Collection of [security data](https://ipgeolocation.io/documentation/ip-security-api.html#security-json-object-reference)

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/ip-security-v3.png)

  ### **Network Intelligence**

  #### **Lookup ASN**

  Provides a simple way to retrieve accurate information about an Autonomous System Number (ASN) and its associated IPv4 and IPv6 address ranges.

  - **Input:** IP or ASN number
  - **Outputs:** asn.as_number, asn.organization and [more](https://ipgeolocation.io/documentation/asn-api.html#reference-to-asn-api-response)

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/asn-v3.png)

  #### **Lookup Abuse Contact Information**

  Includes details such as the role, handle, organization name, kind (e.g., group or individual), and postal address. This information helps identify the entity responsible for handling abuse reports.

  - **Input:** IP Address
  - **Outputs:** abuse.emails, abuse.kind and [more](https://ipgeolocation.io/documentation/ip-abuse-contact-api.html#reference-to-abuse-contact-api-response)

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/abuse-v3.png)

  ### **Time Services**

  Free **Timezone API** and **Time conversion API** provides date and time related information such as current time, date in various formats, week, month, year, time in unix timestamp, UTC/GMT offset and day light saving time from timezone name, any IPv4 or IPv6 address or geolocation coordinates, IATA code, ICAO code, or UN/LOCODE.

  #### **Get Timezone Info**

  It can be consumed with the following input variations:

  - For a Time Zone Name
  - For any Address (preferrably, city address)
  - For Location Coordinates (latitude & longitude)
  - For any IP address
  - For any IATA code
  - For any ICAO code
  - For any UN/LO Code
  - **Outputs:** time_zone.name, time_zone.current_time, time_zone.date_time_wti and [more](https://ipgeolocation.io/documentation/timezone-api.html#reference-to-time-zone-api-response)

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/timezone-v3.png)

  #### **Time Conversion**

  Converts a time from one of following options

  - Convert Time using Time Zone Names
  - Convert Time using Location
  - Convert Time using Coordinates
  - Convert Time using IATA codes
  - Convert Time using ICAO codes
  - Convert Time using UN/LOCODEs

  **Output:** Converted [date/time](https://ipgeolocation.io/documentation/timezone-api.html#reference-to-time-conversion-api-response)

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/time-conversion.png)

  ### **Astronomy**

  Provides timings for sunrise, sunset, moonrise, moonset, sun azimuth, moon azimuth, sun altitude, moon altitude, sun distance from the earth and moon distance from the earth.

  #### **Get Astronomy Details**

  - **Outputs:** astronomy.sunrise, astronomy.sunset, astronomy.moon_phase and [many more.](https://ipgeolocation.io/documentation/astronomy-api.html#reference-to-astronomy-api-response)

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/astronomy.png)

  #### **Astronomy Time Series Lookup**

  - **Outputs:** Daily astronomy data for a defined date range.

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/astronomy-timeseries.png)

  ### **User-Agent Parsing**

  Provides detailed client system information, allowing for the detection of bots, crawlers, and potential attackers.

  #### **Parse User Agent String**

  - **Input:** User agent string
  - **Outputs:** provides name, device and operating sysem [information](https://ipgeolocation.io/documentation/user-agent-api.html#reference-to-user-agent-api-response).

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/user-agent.png)

  #### **Parse Bulk User Agent Strings**

  - **Input:** Array of User agent strings
  - **Outputs:** Collection of parsed user agent objects

  ![](https://static.ipgeolocation.io/web-assets/images/integrations/n8n/bulk-user-agent.png)

  ---

  ## Use Cases

  Some of the use cases are provided as following.

  ### **E‑commerce Fraud & Network Vetting**

  **Modules:** IP Security Lookup, Lookup Abuse, Lookup ASN

  **Scenario:** Validate order IPs before processing.

  - Trigger: Shopify/WooCommerce detects new order.
  - Step 1: Security Lookup: Check proxy/VPN.
  - Step 2: ASN Lookup:  Find ISP & organization.
  - Filter: Only proceed if *not* proxy AND not cloud provider.
  - If high-risk: Tag the order “Fraud Review”

  ---

  ### **Personalized Content & Time‑Aware Scheduling**

  **Modules:** Get IP Geolocation, Get Timezone Info, Time Conversion

  **Scenario:** Send newsletter at **10 AM local time**.

  - Step 1: Geolocation: Get currency + country.
  - Step 2: Timezone Info: Get exact timezone.
  - Step 3: Time Conversion: Convert 10 AM UTC to local.
  - Step 4: Email tool: Send at converted time.

  ---

  ### **Bulk Data Enrichment & Reporting**

  **Modules:** Bulk Geolocation, Bulk Security Lookup, Array Aggregator, Iterator

  **Scenario:** Enrich 5,000+ IPs with location + threat scoring.

  - Fetch rows from Google Sheets.
  - Aggregate IPs into an array.
  - Bulk lookup for location and security.
  - Iterate results.
  - Update rows with new fields: city, country_name, threat_score.

  ---

  ### **Astronomy‑Based IoT Scheduling**

  **Modules:** Astronomy Details, Astronomy Time Series

  **Scenario:** Automate IoT actions based on sunrise, sunset, moon phase.

  - Daily schedule at midnight.
  - Astronomy Details: Get sunrise & moon phase.
  - Save results in Data Store/Airtable.
  - IoT app triggers actions after sunrise.

ai_documentation_summary:
  {"purpose":"The IPGeolocation n8n node integrates with IPGeolocation.io to automate IP address lookups, retrieving geolocation data, security risks, network ownership, timezone info, and astronomy details.","capabilities":["Retrieve geolocation data for any IP address","Access threat intelligence and security risk details","Fetch network ownership and ASN information","Obtain timezone data and perform time conversions","Retrieve astronomy information (sunrise/sunset)","Parse user agent data (browser, OS, device type)","Perform bulk IP geolocation lookups","Automated API request handling without code"],"authentication":"API Key required (obtained from IPGeolocation.io dashboard)","commonUseCases":["Enriching user data with location intelligence","Detecting security threats based on IP reputation","Personalizing content based on user timezone","Validating user locations for geo-restricted services","Automating network ownership verification"],"limitations":["Requires a valid API key and active subscription plan","Data availability depends on the specific IPGeolocation.io plan tier","Some features may be limited by API rate limits"],"relatedNodes":["HTTP Request","Wait Until","If","Code"]}


