# nodes

node_type: @basalt-ai/n8n-nodes-basalt.basalt
package_name: @basalt-ai/n8n-nodes-basalt
display_name: Basalt
description: Interact with Basalt API to manage prompts, monitoring, and datasets
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: will-m
author_github_url: https://github.com/basalt-ai/n8n-nodes.git
npm_package_name: @basalt-ai/n8n-nodes-basalt
npm_version: 0.4.0
community_fetched_at: 2026-04-16T09:43:36.335Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prompt",
      "options": [
        {
          "name": "Prompt",
          "value": "prompt"
        },
        {
          "name": "Monitoring",
          "value": "monitoring"
        },
        {
          "name": "Dataset",
          "value": "dataset"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a prompt",
          "routing": {
            "request": {
              "url": "=/prompts/{{$parameter.slug}}",
              "method": "GET"
            }
          },
          "description": "Get a prompt by slug"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List prompts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "prompts"
                  }
                }
              ]
            },
            "request": {
              "url": "/prompts",
              "method": "GET"
            }
          },
          "description": "List all prompts in the workspace"
        },
        {
          "name": "Describe",
          "value": "describe",
          "action": "Describe a prompt",
          "routing": {
            "request": {
              "url": "=/prompts/{{$parameter.slug}}/describe",
              "method": "GET"
            }
          },
          "description": "Describe a prompt by slug"
        },
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish a prompt",
          "routing": {
            "request": {
              "url": "=/prompts/{{$parameter.slug}}/publish",
              "method": "POST"
            }
          },
          "description": "Publish a prompt version with a tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "log",
      "options": [
        {
          "name": "Create Experiment",
          "value": "createExperiment",
          "action": "Create an experiment",
          "routing": {
            "request": {
              "url": "/monitor/experiments",
              "method": "POST"
            }
          },
          "description": "Create a new experiment"
        },
        {
          "name": "Log Trace",
          "value": "logTrace",
          "action": "Log trace",
          "routing": {
            "request": {
              "url": "/monitor/trace",
              "method": "POST"
            }
          },
          "description": "Create a trace to monitor a full execution"
        },
        {
          "name": "Log Output",
          "value": "log",
          "action": "Log prompt output",
          "routing": {
            "request": {
              "url": "/monitor/log",
              "method": "POST"
            }
          },
          "description": "Monitor a prompt output"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "monitoring"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a dataset",
          "routing": {
            "request": {
              "url": "=/datasets/{{$parameter.slug}}",
              "method": "GET"
            }
          },
          "description": "Get a dataset by slug"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List datasets",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "datasets"
                  }
                }
              ]
            },
            "request": {
              "url": "/datasets",
              "method": "GET"
            }
          },
          "description": "List all datasets in the workspace"
        },
        {
          "name": "Create Item",
          "value": "createItem",
          "action": "Create dataset item",
          "routing": {
            "request": {
              "url": "=/datasets/{{$parameter.slug}}/items",
              "method": "POST"
            }
          },
          "description": "Create a new item in a dataset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dataset"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a prompt",
      "routing": {
        "request": {
          "url": "=/prompts/{{$parameter.slug}}",
          "method": "GET"
        }
      },
      "description": "Get a prompt by slug",
      "resource": "prompt"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List prompts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "prompts"
              }
            }
          ]
        },
        "request": {
          "url": "/prompts",
          "method": "GET"
        }
      },
      "description": "List all prompts in the workspace",
      "resource": "prompt"
    },
    {
      "name": "Describe",
      "value": "describe",
      "action": "Describe a prompt",
      "routing": {
        "request": {
          "url": "=/prompts/{{$parameter.slug}}/describe",
          "method": "GET"
        }
      },
      "description": "Describe a prompt by slug",
      "resource": "prompt"
    },
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish a prompt",
      "routing": {
        "request": {
          "url": "=/prompts/{{$parameter.slug}}/publish",
          "method": "POST"
        }
      },
      "description": "Publish a prompt version with a tag",
      "resource": "prompt"
    },
    {
      "name": "Create Experiment",
      "value": "createExperiment",
      "action": "Create an experiment",
      "routing": {
        "request": {
          "url": "/monitor/experiments",
          "method": "POST"
        }
      },
      "description": "Create a new experiment",
      "resource": "monitoring"
    },
    {
      "name": "Log Trace",
      "value": "logTrace",
      "action": "Log trace",
      "routing": {
        "request": {
          "url": "/monitor/trace",
          "method": "POST"
        }
      },
      "description": "Create a trace to monitor a full execution",
      "resource": "monitoring"
    },
    {
      "name": "Log Output",
      "value": "log",
      "action": "Log prompt output",
      "routing": {
        "request": {
          "url": "/monitor/log",
          "method": "POST"
        }
      },
      "description": "Monitor a prompt output",
      "resource": "monitoring"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a dataset",
      "routing": {
        "request": {
          "url": "=/datasets/{{$parameter.slug}}",
          "method": "GET"
        }
      },
      "description": "Get a dataset by slug",
      "resource": "dataset"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List datasets",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "datasets"
              }
            }
          ]
        },
        "request": {
          "url": "/datasets",
          "method": "GET"
        }
      },
      "description": "List all datasets in the workspace",
      "resource": "dataset"
    },
    {
      "name": "Create Item",
      "value": "createItem",
      "action": "Create dataset item",
      "routing": {
        "request": {
          "url": "=/datasets/{{$parameter.slug}}/items",
          "method": "POST"
        }
      },
      "description": "Create a new item in a dataset",
      "resource": "dataset"
    }
  ]

npm_readme:
  # Basalt n8n nodes

  n8n community node for the Basalt API - Manage prompts, monitoring, and datasets through n8n workflows.

  ## Features

  This n8n node allows you to:

  ### Prompts
  - **Get** - Retrieve a specific prompt by slug
  - **Get Many** - List all prompts in your workspace
  - **Describe** - Get detailed information about a prompt including its variables
  - **Publish** - Publish a prompt version with a specific tag

  ### Monitoring
  - **Create Experiment** - Create a new experiment for testing prompt variations
  - **Log Output** - Monitor individual prompt outputs with detailed metrics

  ### Datasets
  - **Get** - Retrieve a specific dataset by slug
  - **Get Many** - List all datasets in your workspace
  - **Create Item** - Add a new row to a dataset

  ## Installation

  ### Community Nodes (n8n Cloud & Desktop)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `@basalt-ai/n8n-nodes-basalt` in the **Enter npm package name** field
  4. Agree to the risks and click **Install**

  ### Manual Installation (Self-Hosted)

  Navigate to your n8n root directory and run:

  ```bash
  npm install @basalt-ai/n8n-nodes-basalt
  ```

  Then restart your n8n instance.

  ## Credentials

  To use this node, you'll need:

  1. **API Key**: Your Basalt API key (available in your Basalt dashboard)
  2. **API URL**: The base URL for the Basalt API (defaults to `https://api.getbasalt.ai`)

  ### Setting up Credentials

  1. In n8n, go to **Credentials** and click **Add credential**
  2. Search for **Basalt API**
  3. Enter your API key and API URL
  4. Save the credential

  ## Usage Examples

  ### Example 1: Get a Prompt and Use it in a Workflow

  ```
  1. Basalt Node (Get Prompt)
     - Resource: Prompt
     - Operation: Get
     - Slug: my-prompt-slug
     - Version: 1.0.0

  2. HTTP Request Node
     - Use the prompt text from previous step
     - Make API call with the prompt configuration
  ```

  ### Example 2: Log Prompt Outputs for Monitoring

  ```
  1. Your LLM Node
     - Execute your AI workflow

  2. Basalt Node (Log Output)
     - Resource: Monitoring
     - Operation: Log Output
     - Prompt Slug: {{ $json.promptSlug }}
     - Output: {{ $json.llmResponse }}
     - Input Tokens: {{ $json.usage.inputTokens }}
     - Output Tokens: {{ $json.usage.outputTokens }}
  ```

  ### Example 3: Create Experiment

  ```
  1. Basalt Node (Create Experiment)
     - Resource: Monitoring
     - Operation: Create Experiment
     - Feature Slug: my-feature
     - Name: A/B Test - Version 1.0 vs 2.0
  ```

  ### Example 4: Add Items to a Dataset

  ```
  1. Webhook Trigger
     - Receives new data

  2. Basalt Node (Create Dataset Item)
     - Resource: Dataset
     - Operation: Create Item
     - Slug: training-data
     - Values: { "input": "...", "output": "..." }
     - Ideal Output: "Expected response"
  ```

  ## API Operations

  All operations support the full Basalt API specification. For detailed API documentation, visit [https://docs.getbasalt.ai](https://docs.getbasalt.ai)

  ## Resources

  - [Basalt Documentation](https://docs.getbasalt.ai)
  - [Basalt API Reference](https://api.getbasalt.ai)
  - [n8n Community](https://community.n8n.io)

  ## Development

  ### Building the Node

  ```bash
  npm run build
  ```

  ### Testing Locally

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

  2. Link the package:
     ```bash
     npm link
     ```

  3. Link to your n8n installation:
     ```bash
     cd ~/.n8n/nodes
     npm link @basalt-ai/n8n-nodes-basalt
     ```

  4. Restart n8n

  ## License

  MIT

  ## Support

  For issues and questions:
  - GitHub Issues: [basalt-ai/basalt](https://github.com/basalt-ai/basalt/issues)
  - Email: support@getbasalt.ai

ai_documentation_summary:
  {"purpose":"A n8n community node that enables interaction with the Basalt API to manage prompts, monitor LLM outputs, and handle datasets within automated workflows.","capabilities":["Retrieve specific prompts by slug","List all prompts in a workspace","Get detailed prompt information including variables","Publish prompt versions with tags","Create experiments for testing prompt variations","Log individual prompt outputs with metrics","Retrieve datasets by slug","List all datasets in a workspace","Add new rows to datasets"],"authentication":"API Key and API URL","commonUseCases":["Retrieving and using prompts in LLM workflows","Monitoring and logging LLM output performance","Running A/B tests with prompt experiments","Training datasets with input-output pairs"],"limitations":[],"relatedNodes":["HTTP Request","LLM","Webhook Trigger"]}


node_type: n8n-nodes-fishaudio.fishaudio
package_name: n8n-nodes-fishaudio
display_name: Fish Audio
description: Use Fish Audio for text-to-speech and voice generation
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: twango
author_github_url: https://github.com/fishaudio/fish-audio-n8n.git
npm_package_name: n8n-nodes-fishaudio
npm_version: 0.4.0
community_fetched_at: 2026-04-16T09:43:36.336Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "speech",
      "options": [
        {
          "name": "Speech",
          "value": "speech",
          "description": "Text-to-speech and speech-to-text conversion"
        },
        {
          "name": "Voice Model",
          "value": "voiceModel",
          "description": "Manage voice models for cloning"
        },
        {
          "name": "Account",
          "value": "account",
          "description": "Account information and credits"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate speech from text",
          "description": "Convert text to speech using Fish Audio TTS"
        },
        {
          "name": "Transcribe",
          "value": "transcribe",
          "action": "Transcribe audio to text",
          "description": "Convert audio to text using Fish Audio ASR"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a voice model",
          "description": "Create a new voice model from audio samples"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a voice model",
          "description": "Delete an existing voice model"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a voice model",
          "description": "Retrieve details of a voice model"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List voice models",
          "description": "List available voice models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voiceModel"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCredits",
      "options": [
        {
          "name": "Get Credits",
          "value": "getCredits",
          "action": "Get API credit balance",
          "description": "Get your current Fish Audio API credit balance"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate speech from text",
      "description": "Convert text to speech using Fish Audio TTS",
      "resource": "speech"
    },
    {
      "name": "Transcribe",
      "value": "transcribe",
      "action": "Transcribe audio to text",
      "description": "Convert audio to text using Fish Audio ASR",
      "resource": "speech"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a voice model",
      "description": "Create a new voice model from audio samples",
      "resource": "voiceModel"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a voice model",
      "description": "Delete an existing voice model",
      "resource": "voiceModel"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a voice model",
      "description": "Retrieve details of a voice model",
      "resource": "voiceModel"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List voice models",
      "description": "List available voice models",
      "resource": "voiceModel"
    },
    {
      "name": "Get Credits",
      "value": "getCredits",
      "action": "Get API credit balance",
      "description": "Get your current Fish Audio API credit balance",
      "resource": "account"
    }
  ]

npm_readme:
  ![n8n.png](.github/assets/n8n.png)

  # n8n-nodes-fishaudio

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-fishaudio)](https://www.npmjs.com/package/n8n-nodes-fishaudio)
  [![License](https://img.shields.io/github/license/fishaudio/fish-audio-n8n)](https://github.com/fishaudio/fish-audio-n8n/blob/main/LICENSE)

  This is an n8n community node for [Fish Audio](https://fish.audio) - a platform for text-to-speech, speech-to-text, and voice cloning.

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

  ## Installation

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

  ## Operations

  ### Speech

  | Operation      | Description                                          |
  |----------------|------------------------------------------------------|
  | **Generate**   | Convert text to speech using Fish Audio's TTS models |
  | **Transcribe** | Convert speech to text using Fish Audio's ASR        |

  ### Voice Model

  | Operation  | Description                                 |
  |------------|---------------------------------------------|
  | **List**   | List available voice models                 |
  | **Get**    | Get details of a specific voice model       |
  | **Create** | Create a new voice model from audio samples |
  | **Delete** | Delete a voice model                        |

  ### Account

  | Operation       | Description                   |
  |-----------------|-------------------------------|
  | **Get Credits** | Check your API credit balance |

  ## Credentials

  To use this node, you need a Fish Audio API key:

  1. Create an account at [fish.audio](https://fish.audio)
  2. Navigate to [API Keys](https://fish.audio/app/api-keys) in your dashboard
  3. Generate a new API key
  4. Add the API key to your n8n credentials

  ## Resources

  - [Fish Audio](https://fish.audio)
  - [Fish Audio API Documentation](https://docs.fish.audio)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

ai_documentation_summary:
  {"purpose":"This n8n node enables text-to-speech generation, speech-to-text transcription, and voice model management via the Fish Audio API.","capabilities":["Text-to-speech (TTS) generation","Speech-to-text (ASR) transcription","List available voice models","Retrieve details of specific voice models","Create new voice models from audio samples","Delete existing voice models","Check API credit balance"],"authentication":"API key required","commonUseCases":["Automated voiceovers for videos or podcasts","Transcribing audio files or meetings","Custom voice cloning for branding","Monitoring API usage and credit limits"],"limitations":[],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-httpRequest"]}


node_type: @notainc/n8n-nodes-gyazo.gyazo
package_name: @notainc/n8n-nodes-gyazo
display_name: Gyazo
description: Interact with Gyazo API for image list, get, search and upload operations
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: mountainboooy
author_github_url: https://github.com/nota/n8n-nodes-gyazo.git
npm_package_name: @notainc/n8n-nodes-gyazo
npm_version: 0.3.3
community_fetched_at: 2026-04-16T09:43:36.337Z
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": "search",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an image",
          "description": "Get a specific image by ID or URL"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List user images",
          "description": "Get a list of user's saved images"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for images",
          "description": "Search for images (Pro users only)"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an image attributes",
          "description": "Update image description and alt text"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload an image",
          "description": "Upload an image"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an image",
      "description": "Get a specific image by ID or URL",
      "resource": "image"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List user images",
      "description": "Get a list of user's saved images",
      "resource": "image"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for images",
      "description": "Search for images (Pro users only)",
      "resource": "image"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an image attributes",
      "description": "Update image description and alt text",
      "resource": "image"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload an image",
      "description": "Upload an image",
      "resource": "image"
    }
  ]

npm_readme:
  # n8n Nodes - Gyazo integration

  This is an n8n community node that integrates [Gyazo](https://gyazo.com) with your n8n workflows, so you can run Gyazo operations, manage images, and automate image sharing tasks.

  [Gyazo](https://gyazo.com) serves an API platform for developers to capture, share, and manage screenshots and images, while [n8n](https://n8n.io) is a fair-code licensed tool for AI workflow automation that allows you to connect various services.

  ## Table of contents

  - [n8n Nodes - Gyazo integration](#n8n-nodes---gyazo-integration)
    - [Table of contents](#table-of-contents)
    - [Installation (self-hosted)](#installation-self-hosted)
    - [Installation on n8n cloud](#installation-on-n8n-cloud)
    - [Installation for development and contributing](#installation-for-development-and-contributing)
    - [Operations](#operations)
      - [Image Operations](#image-operations)
        - [List](#list)
        - [Get](#get)
        - [Search](#search)
        - [Upload](#upload)
        - [Update](#update)
    - [Credentials](#credentials)
      - [Setting up Gyazo API Access](#setting-up-gyazo-api-access)
      - [Configuring credentials in n8n](#configuring-credentials-in-n8n)
    - [Compatibility](#compatibility)
    - [Usage](#usage)
      - [Basic Image Upload Workflow](#basic-image-upload-workflow)
      - [Search and Process Images](#search-and-process-images)
    - [Resources](#resources)
    - [Release](#release)
      - [Publishing to npm](#publishing-to-npm)
    - [Version History](#version-history)
    - [Troubleshooting](#troubleshooting)
      - [Authentication Issues](#authentication-issues)
      - [Invalid Resource Format](#invalid-resource-format)
      - [Upload Issues](#upload-issues)
      - [Rate Limiting](#rate-limiting)
      - [Node Not Appearing](#node-not-appearing)
    - [License](#license)

  ## Installation (self-hosted)

  For self-hosted n8n instances, you can install this community node by following these steps:

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Select **Install**
  3. Enter `@notainc/n8n-nodes-gyazo` in the npm Package Name field
  4. Agree to the risks of using community nodes: select **I understand the risks of installing unverified code from a public source**
  5. Select **Install**

  After installation restart n8n to register the community node.

  ## Installation on n8n cloud

  For n8n cloud users:

  1. Go to **Settings > Community Nodes** in your n8n cloud instance
  2. Select **Install**
  3. Enter `@notainc/n8n-nodes-gyazo` in the npm Package Name field
  4. Select **Install**

  n8n cloud will automatically restart and register the community node.

  ## Installation for development and contributing

  To install this node for development:

  1. Clone this repository:

     ```bash
     git clone https://github.com/nota/n8n-nodes-gyazo.git
     cd n8n-nodes-gyazo
     ```

  2. Install dependencies:

     ```bash
     npm install
     ```

  3. Build the node:

     ```bash
     npm run build
     ```

  4. Link the node locally:

     ```bash
     npm link
     ```

  5. Install the node into your local n8n instance:

     ```bash
     # In your n8n custom nodes directory (usually ~/.n8n/custom/)
     npm link @notainc/n8n-nodes-gyazo
     ```

  6. Start n8n:
     ```bash
     n8n start
     ```

  ## Operations

  The Gyazo node supports the **Image** resource.

  ### Image Operations

  #### List

  Get a list of user's saved images with pagination support.

  **Parameters:**

  - **Page** (optional): Page number for pagination (default: 1)
  - **Per Page** (optional): Number of results per page, max 100 (default: 20)

  **Example output:**

  ```json
  [
  	{
  		"image_id": "abc123def456789012345678901234ef",
  		"permalink_url": "https://gyazo.com/abc123def456789012345678901234ef",
  		"thumb_url": "https://thumb.gyazo.com/thumb/200/_abc123def456789012345678901234ef.png",
  		"url": "https://i.gyazo.com/abc123def456789012345678901234ef.png",
  		"type": "png",
  		"created_at": "2024-01-15T10:30:00+0000"
  	}
  ]
  ```

  #### Get

  Retrieve a specific image by ID or URL.

  **Parameters:**

  - **Image**: Resource locator supporting:
    - **By ID**: 32-character hexadecimal string (e.g., `abc123def456789012345678901234ef`)
    - **By URL**: Full Gyazo URL (e.g., `https://gyazo.com/abc123def456789012345678901234ef`)

  **Example output:**

  ```json
  {
  	"image_id": "abc123def456789012345678901234ef",
  	"type": "png",
  	"created_at": "2024-01-15T10:30:00+0000",
  	"permalink_url": "https://gyazo.com/abc123def456789012345678901234ef",
  	"thumb_url": "https://thumb.gyazo.com/thumb/200/_abc123def456789012345678901234ef.png",
  	"url": "https://i.gyazo.com/abc123def456789012345678901234ef.png",
  	"metadata": {
  		"app": "n8n",
  		"title": "Screenshot",
  		"desc": "Automated screenshot"
  	}
  }
  ```

  #### Search

  Search for images using a query string with pagination support (Pro users only).

  **Parameters:**

  - **Query** (required): Search query for images
  - **Page** (optional): Page number for pagination (default: 1)
  - **Per Page** (optional): Number of results per page, max 100 (default: 20)

  **Example usage:**

  - Query: `"workflow diagram"`
  - Results: Images matching the search term

  #### Upload

  Upload an image to Gyazo.

  **Parameters:**

  - **Image Binary** (required): Name of the binary property containing image data (default: `data`)
  - **App Name** (optional): Application name (default: `n8n`)
  - **Collection ID** (optional): Collection ID to add image to
  - **Description** (optional): Description for the image
  - **Referer URL** (optional): Referer site URL
  - **Title** (optional): Title for the image

  **Example output:**

  ```json
  {
  	"type": "png",
  	"thumb_url": "https://thumb.gyazo.com/thumb/200/_def456abc123789012345678901234ef.png",
  	"created_at": "2024-01-15T11:00:00+0000",
  	"image_id": "def456abc123789012345678901234ef",
  	"permalink_url": "https://gyazo.com/def456abc123789012345678901234ef",
  	"url": "https://i.gyazo.com/def456abc123789012345678901234ef.png"
  }
  ```

  #### Update

  Update an existing image's description and alt text.

  **Parameters:**

  - **Image**: Resource locator supporting:
    - **By ID**: 32-character hexadecimal string (e.g., `abc123def456789012345678901234ef`)
    - **By URL**: Full Gyazo URL (e.g., `https://gyazo.com/abc123def456789012345678901234ef`)
  - **Description** (optional): Description for the image
  - **Alt Text** (optional): Alternative text for the image

  **Example output:**

  ```json
  {
  	"image_id": "abc123def456789012345678901234ef",
  	"type": "png",
  	"created_at": "2024-01-15T10:30:00+0000",
  	"permalink_url": "https://gyazo.com/abc123def456789012345678901234ef",
  	"thumb_url": "https://thumb.gyazo.com/thumb/200/_abc123def456789012345678901234ef.png",
  	"url": "https://i.gyazo.com/abc123def456789012345678901234ef.png",
  	"metadata": {
  		"app": "n8n",
  		"title": "Screenshot",
  		"desc": "Updated description",
  		"alt_text": "Updated alt text"
  	}
  }
  ```

  ## Credentials

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

  ### Setting up Gyazo API Access

  1. **Create a Gyazo account** at [gyazo.com](https://gyazo.com) if you don't have one
  2. **Register an application**:
     - Go to [Gyazo API Applications](https://gyazo.com/oauth/applications)
     - Click "Register new application"
     - Fill in your application details
  3. **Generate an access token**:
     - Use the OAuth flow or generate a personal access token

  ### Configuring credentials in n8n

  1. In your n8n workflow, add the Gyazo node
  2. Click on the credential dropdown and select "Create New"
  3. Choose "Gyazo API" from the credential types
  4. Enter your **Access Token** in the provided field
  5. Click "Save" to store the credentials

  The node will automatically use Bearer token authentication for all API requests.

  ## Compatibility

  This node is compatible with:

  - **n8n version**: 1.0.0 and above
  - **Node.js version**: 22.0.0 and above

  ## Usage

  ### Basic Image Upload Workflow

  1. **Add a trigger node** (e.g., Manual Trigger, Webhook)
  2. **Add the Gyazo node**:
     - Set Resource to "Image"
     - Set Operation to "Upload"
     - Configure the binary property name (default: "data")
  3. **Configure credentials** with your Gyazo API access token
  4. **Execute the workflow**

  ### Search and Process Images

  1. **Add the Gyazo node**:
     - Set Resource to "Image"
     - Set Operation to "Search"
     - Enter your search query
  2. **Process results** with additional nodes (e.g., filter, transform)
  3. **Use image URLs** in subsequent workflow steps

  ## Resources

  - [Gyazo API Documentation](https://gyazo.com/api/docs)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n Creating Nodes Documentation](https://docs.n8n.io/integrations/creating-nodes/)

  ## Release

  This package follows semantic versioning. Current version: **0.3.3**

  ### Publishing to npm

  To publish a new version:

  1. Update the version in `package.json`
  2. Run `npm run build` to compile the TypeScript
  3. Run `npm run lint` to ensure code quality
  4. Run `npm publish` to publish to npm registry

  ## Version History

  - **0.3.3** - Removed requestDefaults from node definition
  - **0.3.2** - Fixed versioning issue in package.json
  - **0.3.1** - Unified node styles into the programmatic
  - **0.3.0** - Support updating image description and alt text, improved error handling
  - **0.2.0** - Removed support for collection operations, added Pro user restrictions for search
  - **0.1.0** - Initial release with image and collection operations

  ## Troubleshooting

  ### Authentication Issues

  **Problem**: "Unauthorized" or "Invalid access token" errors

  **Solution**:

  - Verify your access token is correct and hasn't expired
  - Ensure your Gyazo application has the necessary scopes

  ### Invalid Resource Format

  **Problem**: "Invalid Image ID format" or "Invalid Gyazo URL format" errors

  **Solution**:

  - Image IDs must be 32-character hexadecimal strings
  - Gyazo URLs must follow the format: `https://gyazo.com/{image_id}`

  ### Upload Issues

  **Problem**: Image upload fails or returns errors

  **Solution**:

  - Ensure the binary property contains valid image data
  - Check that the binary property name matches the configured parameter
  - Verify the image format is supported by Gyazo (PNG, JPEG, GIF)

  ### Rate Limiting

  **Problem**: "Too Many Requests" errors

  **Solution**:

  - Implement delays between requests using n8n's Wait node
  - Reduce the number of concurrent requests
  - Check Gyazo API rate limits in their documentation

  ### Node Not Appearing

  **Problem**: Gyazo node doesn't appear in n8n after installation

  **Solution**:

  - Restart your n8n instance after installing the community node
  - Check that the installation completed successfully
  - Verify the node appears in Settings > Community Nodes

  For additional support, please check the [GitHub repository](https://github.com/nota/n8n-nodes-gyazo) or refer to the [Gyazo API documentation](https://gyazo.com/api/docs).

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Gyazo API operations, allowing users to capture, share, manage, and search for screenshots and images within n8n workflows.","capabilities":["List user's saved images with pagination","Retrieve specific images by ID or URL","Search images using query strings (Pro users only)","Upload images to Gyazo with metadata options","Update existing image descriptions and alt text","Support for binary image data","Pagination support for list and search operations"],"authentication":"API key required (configured via Gyazo credentials in n8n)","commonUseCases":["Automate screenshot capture and sharing","Manage and organize image collections","Search and filter images based on content","Integrate image workflows with other automation tools"],"limitations":["Search functionality requires Gyazo Pro subscription","Self-hosted installation requires manual npm package installation","Node is a community node and may have limited support"],"relatedNodes":["HTTP Request","Binary File","Code","Wait Until"]}


node_type: n8n-nodes-blue.blue
package_name: n8n-nodes-blue
display_name: Blue
description: Interact with Blue Project Management via GraphQL API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: bluetogether
author_github_url: https://github.com/datadoesntlie/
npm_package_name: n8n-nodes-blue
npm_version: 0.1.8
community_fetched_at: 2026-04-16T09:43:36.338Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getCompanies",
      "options": [
        {
          "name": "Create Project",
          "value": "createProject",
          "action": "Create a new project from a template",
          "description": "Create a new project from a template"
        },
        {
          "name": "Create Record",
          "value": "createRecord",
          "action": "Create a new record todo task with custom fields",
          "description": "Create a new record (todo/task) with custom fields"
        },
        {
          "name": "Execute Custom GraphQL",
          "value": "customQuery",
          "action": "Execute a custom graph ql query",
          "description": "Execute a custom GraphQL query"
        },
        {
          "name": "Get Records",
          "value": "getRecords",
          "action": "Get records with advanced filtering",
          "description": "Retrieve records (todos/tasks) with advanced filtering"
        },
        {
          "name": "Invite User",
          "value": "inviteUser",
          "action": "Invite a user to a project",
          "description": "Invite User to a Project"
        },
        {
          "name": "List Companies",
          "value": "getCompanies",
          "action": "List all companies you have access to",
          "description": "List all companies you have access to"
        },
        {
          "name": "List Custom Fields",
          "value": "listCustomFields",
          "action": "List custom fields in a project with detailed information",
          "description": "List custom fields in a project with detailed information"
        },
        {
          "name": "List Projects",
          "value": "getProjects",
          "action": "List projects from a company",
          "description": "Retrieve projects from a company"
        },
        {
          "name": "Tag Record",
          "value": "tagRecord",
          "action": "Add tags to a record todo task",
          "description": "Add tags to a record (todo/task)"
        },
        {
          "name": "Update Record",
          "value": "updateRecord",
          "action": "Update a record todo task with custom fields",
          "description": "Update a record (todo/task) with custom fields"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Project",
      "value": "createProject",
      "action": "Create a new project from a template",
      "description": "Create a new project from a template"
    },
    {
      "name": "Create Record",
      "value": "createRecord",
      "action": "Create a new record todo task with custom fields",
      "description": "Create a new record (todo/task) with custom fields"
    },
    {
      "name": "Execute Custom GraphQL",
      "value": "customQuery",
      "action": "Execute a custom graph ql query",
      "description": "Execute a custom GraphQL query"
    },
    {
      "name": "Get Records",
      "value": "getRecords",
      "action": "Get records with advanced filtering",
      "description": "Retrieve records (todos/tasks) with advanced filtering"
    },
    {
      "name": "Invite User",
      "value": "inviteUser",
      "action": "Invite a user to a project",
      "description": "Invite User to a Project"
    },
    {
      "name": "List Companies",
      "value": "getCompanies",
      "action": "List all companies you have access to",
      "description": "List all companies you have access to"
    },
    {
      "name": "List Custom Fields",
      "value": "listCustomFields",
      "action": "List custom fields in a project with detailed information",
      "description": "List custom fields in a project with detailed information"
    },
    {
      "name": "List Projects",
      "value": "getProjects",
      "action": "List projects from a company",
      "description": "Retrieve projects from a company"
    },
    {
      "name": "Tag Record",
      "value": "tagRecord",
      "action": "Add tags to a record todo task",
      "description": "Add tags to a record (todo/task)"
    },
    {
      "name": "Update Record",
      "value": "updateRecord",
      "action": "Update a record todo task with custom fields",
      "description": "Update a record (todo/task) with custom fields"
    }
  ]

npm_readme:
  # n8n-nodes-blue

  This is an n8n community node. It lets you use Blue Project Management in your n8n workflows.

  Blue Project Management is a modern project management platform that provides powerful GraphQL APIs for managing projects, tasks, teams, and 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)  

  ## Installation

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

  ## Operations

  This node supports the following operations:

  ### Companies
  - **Get Companies** - List all companies you have access to

  ### Projects  
  - **Get Projects** - List all projects within a specific company

  ### Records (Tasks/Todos)
  - **Get Records** - Retrieve tasks/todos with advanced filtering (by project, search terms, completion status)
  - **Create Record** - Create new tasks/todos with support for assignees, tags, custom fields, and checklists
  - **Update Record** - Update existing records including core fields and custom field values

  ### Advanced
  - **Custom Query** - Execute custom GraphQL queries against the Blue API for advanced use cases

  ## Credentials

  ### Getting Blue API Credentials

  1. **Create Blue Account**
     - Sign up for a Blue Project Management account at [blue.cc](https://blue.cc)
     - Complete account verification and setup

  2. **Generate API Tokens**
     - Log into your Blue account
     - Navigate to Account Settings → API Settings
     - Generate a new API token pair:
       - **Token ID**: Your unique identifier (e.g., `abc123def456`)
       - **Token Secret**: Your authentication secret (keep this secure!)
     - Copy both values - you'll need them for n8n configuration

  3. **Note Your Company Access**
     - Ensure you have access to at least one company in Blue
     - API operations require company context
     - You can be a member of multiple companies

  ### Configuring in n8n

  1. **Add Blue API Credential**
     - In n8n, go to **Settings** → **Credentials**
     - Click **Add Credential** → Search for "Blue API"
     - Fill in the credential form:

  2. **Credential Configuration**
     ```
     Base URL: https://api.blue.cc/graphql (default - don't change)
     Token ID: [Your Blue API Token ID]
     Token Secret: [Your Blue API Token Secret]
     ```

  3. **Test Connection**
     - Click **Test** to verify your credentials
     - You should see a successful connection message
     - If test fails, double-check your Token ID and Secret

  4. **Save Credential**
     - Give your credential a descriptive name (e.g., "Blue Production API")
     - Click **Save**

  ### Authentication Flow

  The node automatically handles all authentication:
  - **Headers**: Adds `X-Bloo-Token-ID` and `X-Bloo-Token-Secret` to requests
  - **Company Context**: Passes `X-Bloo-Company-ID` based on your operation selections
  - **GraphQL Endpoint**: Routes all requests to Blue's GraphQL API at `https://api.blue.cc/graphql`

  ### Security Notes

  - **Keep Token Secret Secure**: Never share or commit your Token Secret
  - **Rotate Tokens**: Regularly regenerate tokens for security
  - **Company Access**: Tokens only work with companies you have access to
  - **Rate Limits**: Blue API has rate limiting - implement appropriate delays in high-volume workflows

  ## Compatibility

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

  ## Usage

  ### Example Workflows

  #### Workflow 1: Task Management Dashboard
  Create a workflow that monitors and manages tasks across projects:

  1. **Trigger**: Schedule (runs every hour)
  2. **Blue - Get Companies**: Retrieve available companies
  3. **Loop**: For each company:
     - **Blue - Get Projects**: Get all projects for the company
     - **Blue - Get Records**: Fetch incomplete tasks with search filter
     - **Filter**: Identify overdue tasks
     - **Send Email**: Notify project managers of overdue items

  #### Workflow 2: Automated Task Creation
  Set up task creation from external sources:

  1. **Trigger**: Webhook (from form submission/external system)
  2. **Blue - Get Companies**: Select target company
  3. **Blue - Get Projects**: Find appropriate project by name
  4. **Blue - Create Record**: Create new task with:
     - Title and description from webhook data
     - Assignees based on project team
     - Custom fields populated from form data
     - Tags for categorization

  #### Workflow 3: Weekly Project Reports
  Generate automated project status reports:

  1. **Trigger**: Schedule (weekly)
  2. **Blue - Get Companies**: Get all companies
  3. **Loop**: For each company:
     - **Blue - Get Projects**: Retrieve active projects
     - **Blue - Get Records**: Get tasks with completion filter
     - **Calculate**: Progress metrics (completed vs total tasks)
     - **Format**: Create summary report
     - **Send to Slack/Email**: Distribute reports to stakeholders

  #### Workflow 4: Custom Data Integration
  Sync data between Blue and other systems:

  1. **External API**: Fetch data from CRM/ERP system
  2. **Transform**: Map external data to Blue format
  3. **Blue - Custom Query**: Execute complex GraphQL query to check for existing records
  4. **Conditional**: Create or update based on existence
  5. **Blue - Create/Update Record**: Sync the data with custom fields populated

  ### Quick Start Guide

  **Step 1: Set up Credentials**
  1. In n8n, go to Credentials → Add Credential → Blue API
  2. Enter your Blue API Token ID and Secret
  3. Test the connection

  **Step 2: Basic Flow**
  1. Add Blue node to your workflow
  2. Select "Get Companies" operation
  3. Execute to see available companies
  4. Copy a Company ID for next steps

  **Step 3: Explore Operations**
  - Use Company ID to get projects
  - Select a project to retrieve tasks
  - Create new tasks with the Create Record operation

  ### Advanced Features

  - **Custom Fields**: Both create and update operations support Blue's custom field system with dynamic field selection
  - **Multiselect Dropdowns**: Assignees and tags use dynamic dropdowns populated from your Blue data based on selected company/project
  - **GraphQL Power**: Use the Custom Query operation for complex data operations beyond standard CRUD
  - **Intelligent Filtering**: Records support rich filtering - combine project filtering with search terms for precise results
  - **Error Handling**: Comprehensive GraphQL error handling with detailed error messages and suggestions

  ### Operation Details

  #### Get Records Options
  - **Project Filter**: Limit results to specific project
  - **Search**: Find records containing specific text
  - **Show Completed**: Include/exclude completed tasks
  - **Pagination**: Control result size with limit/skip

  #### Create Record Features
  - **Rich Content**: Title, description, due dates
  - **Team Assignment**: Multi-select assignees from project team
  - **Categorization**: Apply multiple tags for organization
  - **Custom Fields**: Populate any custom fields defined in your Blue setup
  - **Checklists**: Add sub-tasks during creation

  #### Custom Query Power
  Execute any GraphQL query against Blue's API:
  ```graphql
  query GetProjectStats($projectId: ID!) {
    project(id: $projectId) {
      name
      todos {
        totalCount
      }
      todosCompleted: todos(completed: true) {
        totalCount
      }
    }
  }
  ```

  ### Tips & Best Practices

  - **Company Context**: Company ID is automatically passed as header for all operations after selection
  - **Performance**: Use pagination and filtering to limit large result sets
  - **Error Recovery**: Implement error handling for API rate limits and network issues
  - **Data Validation**: Validate required fields before creating/updating records
  - **Webhook Integration**: Use Blue's webhook system with n8n triggers for real-time automation

  ## Troubleshooting

  ### Common Issues

  #### Authentication Errors
  **Problem**: "Invalid credentials" or "Unauthorized" errors
  **Solutions**:
  - Verify Token ID and Secret are correct (copy-paste to avoid typos)
  - Check that tokens haven't expired or been revoked
  - Ensure you have access to at least one company in Blue
  - Test credentials using the credential test function

  #### Empty Company List
  **Problem**: "Get Companies" returns empty results
  **Solutions**:
  - Confirm your Blue account has company access
  - Check if you need to be invited to a company
  - Verify your account is active and verified

  #### Operation Failures
  **Problem**: Operations fail with GraphQL errors
  **Solutions**:
  - Check that Company ID is valid and you have access
  - Verify Project ID exists and is accessible
  - For custom queries, validate GraphQL syntax
  - Review Blue API documentation for field requirements

  #### Dropdown Loading Issues
  **Problem**: Assignees, Tags, or Custom Fields don't load
  **Solutions**:
  - Ensure Company and Project are selected first
  - Check that the project has users/tags/custom fields configured
  - Verify network connectivity to Blue API
  - Try refreshing the dropdown options

  #### Performance Issues
  **Problem**: Slow response times or timeouts
  **Solutions**:
  - Use pagination for large result sets (limit/skip parameters)
  - Add appropriate delays between API calls
  - Filter results to reduce data transfer
  - Check Blue API status for outages

  ### Getting Help

  - **Blue API Issues**: Refer to [Blue API Documentation](https://www.blue.cc/en/api/start-guide/introduction)
  - **n8n Node Issues**: Check [n8n Community](https://community.n8n.io/)
  - **Bug Reports**: Submit issues to the [GitHub repository](https://github.com/datadoesntlie/n8n-nodes-blue/issues)

  ### Debug Tips

  1. **Enable Detailed Logging**: Turn on n8n's detailed execution logging
  2. **Test Operations Individually**: Isolate failing operations
  3. **Verify Data**: Check that IDs and parameters are valid
  4. **GraphQL Debugging**: Use Blue's GraphQL playground for query testing
  5. **Network Issues**: Check firewall/proxy settings if requests fail

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Blue API Documentation](https://www.blue.cc/en/api/start-guide/introduction) - Official API guide and reference
  * [Blue GraphQL Schema](https://api.blue.cc/graphql) - Interactive GraphQL playground
  * [GitHub Repository](https://github.com/datadoesntlie/n8n-nodes-blue) - Source code and issue tracking

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Blue Project Management via its GraphQL API to manage projects, tasks, teams, and workflows.","capabilities":["List all accessible companies","List projects within a specific company","Retrieve tasks/todos with advanced filtering","Create new tasks/todos with assignees, tags, custom fields, and checklists","Update existing tasks/todos including core fields and custom values","Execute custom GraphQL queries for advanced use cases"],"authentication":"API Token (Token ID and Token Secret)","commonUseCases":["Task management dashboards and monitoring","Automated task creation from external sources","Weekly project status reporting","Data synchronization between Blue and other systems (CRM/ERP)"],"limitations":["Requires valid Blue API credentials (Token ID and Secret)","API operations require company context and access","Subject to Blue API rate limits","Requires n8n version 1.0.0 or higher","Advanced features may be truncated in documentation"],"relatedNodes":["n8n-nodes-core.code","n8n-nodes-core.httpRequest","n8n-nodes-core.if"]}


node_type: n8n-nodes-qdrant.qdrant
package_name: n8n-nodes-qdrant
display_name: Qdrant
description: Official n8n node to interface with Qdrant - https://qdrant.tech
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: qdrant-tech
author_github_url: https://github.com/qdrant/
npm_package_name: n8n-nodes-qdrant
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:36.339Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "collection",
      "options": [
        {
          "name": "Collection",
          "value": "collection"
        },
        {
          "name": "Payload",
          "value": "payload"
        },
        {
          "name": "Point",
          "value": "point"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Vector",
          "value": "vector"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Collections",
          "value": "listCollections",
          "action": "List Collections",
          "routing": {
            "request": {
              "url": "/collections",
              "method": "GET"
            }
          },
          "description": "List all collections in the Qdrant instance"
        },
        {
          "name": "Create Collection",
          "value": "createCollection",
          "action": "Create Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "body": {
                "vectors": "={{JSON.parse($parameter.vectors)}}",
                "init_from": "={{JSON.parse($parameter.initFrom)}}",
                "wal_config": "={{JSON.parse($parameter.walConfig)}}",
                "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
                "shard_number": "={{$parameter.shardNumber}}",
                "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
                "on_disk_payload": "={{$parameter.onDiskPayload}}",
                "sharding_method": "={{$parameter.shardingMethod}}",
                "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
                "replication_factor": "={{$parameter.replicationFactor}}",
                "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
                "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}",
                "write_consistency_factor": "={{$parameter.writeConsistencyFactor}}"
              },
              "method": "PUT"
            }
          },
          "description": "Create a new collection in the Qdrant instance"
        },
        {
          "name": "Update Collection",
          "value": "updateCollection",
          "action": "Update Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "body": {
                "params": "={{JSON.parse($parameter.params)}}",
                "vectors": "={{JSON.parse($parameter.vectors)}}",
                "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
                "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
                "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
                "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
                "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}"
              },
              "method": "PATCH"
            }
          },
          "description": "Update parameters of an existing collection in the Qdrant instance"
        },
        {
          "name": "Get Collection",
          "value": "getCollection",
          "action": "Get Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific collection"
        },
        {
          "name": "Check If Collection Exists",
          "value": "collectionExists",
          "action": "Check If Collection Exists",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}/exists",
              "method": "GET"
            }
          },
          "description": "Check if a collection exists in the Qdrant instance"
        },
        {
          "name": "Delete Collection",
          "value": "deleteCollection",
          "action": "Delete Collection",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}",
              "method": "DELETE"
            }
          },
          "description": "Delete the specified collection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "collection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Upsert Points",
          "value": "upsertPoints",
          "action": "Upsert Points",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points",
              "body": {
                "points": "={{JSON.parse($parameter.points)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Insert or update points in a collection"
        },
        {
          "name": "Retrieve Point",
          "value": "retrievePoint",
          "action": "Retrieve Point",
          "routing": {
            "request": {
              "url": "=/collections/{{$parameter.collectionName}}/points/{{isNaN(Number($parameter.id)) ?  $parameter.id : Number($parameter.id)}}",
              "method": "GET"
            }
          },
          "description": "Retrieves all details from a single point"
        },
        {
          "name": "Retrieve Points",
          "value": "retrievePoints",
          "action": "Retrieve Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points",
              "body": {
                "ids": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve all details from multiple points"
        },
        {
          "name": "Delete Points",
          "value": "deletePoints",
          "action": "Delete Points",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/delete",
              "body": {
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Delete specified points from the collection"
        },
        {
          "name": "Count Points",
          "value": "countPoints",
          "action": "Count Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/count",
              "body": {
                "exact": "={{$parameter.exact}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Counts the number of points that match a specified filtering condition"
        },
        {
          "name": "Scroll Points",
          "value": "scrollPoints",
          "action": "Scroll Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/scroll",
              "body": {
                "limit": "={{$parameter.limit}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "offset": "={{isNaN(Number($parameter.offset)) ?  $parameter.offset : Number($parameter.offset)}}",
                "order_by": "={{JSON.parse($parameter.orderBy)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}"
              },
              "method": "POST"
            }
          },
          "description": "Returns all points in a page-by-page manner"
        },
        {
          "name": "Batch Update Points",
          "value": "batchUpdatePoints",
          "action": "Batch Update Points",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/batch",
              "body": {
                "operations": "={{JSON.parse($parameter.operations)}}"
              },
              "method": "POST"
            }
          },
          "description": "Batch update points, including their respective vectors and payloads"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "point"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Update Vectors",
          "value": "updateVectors",
          "action": "Update Vectors",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/vectors",
              "body": {
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Update specified vectors on points"
        },
        {
          "name": "Delete Vectors",
          "value": "deleteVectors",
          "action": "Delete Vectors",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/vectors/delete",
              "body": {
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "vector": "={{JSON.parse($parameter.vector)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Delete specified vectors from points"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vector"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Set Payload",
          "value": "setPayload",
          "action": "Set Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload",
              "body": {
                "key": "={{$parameter.key ? $parameter.key : null}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "payload": "={{JSON.parse($parameter.payload)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Sets payload values for specified points"
        },
        {
          "name": "Overwrite Payload",
          "value": "overwritePayload",
          "action": "Overwrite Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload",
              "body": {
                "key": "={{$parameter.key ? $parameter.key : null}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "payload": "={{JSON.parse($parameter.payload)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Replaces the entire payload of specified points with a new payload"
        },
        {
          "name": "Delete Payload",
          "value": "deletePayload",
          "action": "Delete Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload/delete",
              "body": {
                "keys": "={{JSON.parse($parameter.keys)}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Deletes specified payload keys from points"
        },
        {
          "name": "Clear Payload",
          "value": "clearPayload",
          "action": "Clear Payload",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/payload/clear",
              "body": {
                "filter": "={{JSON.parse($parameter.filter)}}",
                "points": "={{JSON.parse($parameter.points)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Removes the entire payload for specified points"
        },
        {
          "name": "Payload Facets",
          "value": "payloadFacets",
          "action": "Get Payload Facets",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/facet",
              "body": {
                "key": "={{$parameter.key}}",
                "exact": "={{$parameter.exact}}",
                "limit": "={{$parameter.limit}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieves facets for the specified payload field"
        },
        {
          "name": "Create Payload Index",
          "value": "createPayloadIndex",
          "action": "Create Payload Index",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/index",
              "body": {
                "field_name": "={{$parameter.fieldName}}",
                "field_schema": "={{JSON.parse($parameter.fieldSchema)}}"
              },
              "method": "PUT"
            }
          },
          "description": "Creates a payload index for a field in the specified collection"
        },
        {
          "name": "Delete Payload Index",
          "value": "deletePayloadIndex",
          "action": "Delete Payload Index",
          "routing": {
            "request": {
              "qs": {
                "wait": "={{$parameter.wait}}",
                "ordering": "={{$parameter.ordering}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/index/{{$parameter.fieldName}}",
              "method": "DELETE"
            }
          },
          "description": "Deletes a payload index for a field in the specified collection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "payload"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Query Points",
          "value": "queryPoints",
          "action": "Query Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/query",
              "body": {
                "limit": "={{$parameter.limit}}",
                "query": "={{JSON.parse($parameter.query)}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "offset": "={{$parameter.offset}}",
                "params": "={{JSON.parse($parameter.params)}}",
                "prefetch": "={{JSON.parse($parameter.prefetch)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}",
                "score_threshold": "={{$parameter.scoreThreshold}}"
              },
              "method": "POST"
            }
          },
          "description": "Query points in a collection using various search methods"
        },
        {
          "name": "Query Batch Points",
          "value": "queryBatchPoints",
          "action": "Query Batch Points",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/query/batch",
              "body": {
                "searches": "={{JSON.parse($parameter.searches)}}"
              },
              "method": "POST"
            }
          },
          "description": "Query multiple points in batch using various search methods"
        },
        {
          "name": "Query Points Groups",
          "value": "queryPointsGroups",
          "action": "Query Points Groups",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/query/groups",
              "body": {
                "limit": "={{$parameter.limit}}",
                "query": "={{JSON.parse($parameter.query)}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "params": "={{JSON.parse($parameter.params)}}",
                "group_by": "={{$parameter.groupBy}}",
                "prefetch": "={{JSON.parse($parameter.prefetch)}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}",
                "group_size": "={{$parameter.groupSize}}",
                "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
                "with_lookup": "={{JSON.parse($parameter.withLookup)}}",
                "with_vector": "={{$parameter.withVector}}",
                "with_payload": "={{$parameter.withPayload}}",
                "score_threshold": "={{$parameter.scoreThreshold}}"
              },
              "method": "POST"
            }
          },
          "description": "Query points and group results by a specified payload field"
        },
        {
          "name": "Matrix Pairs",
          "value": "matrixPairs",
          "action": "Matrix Pairs",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/pairs",
              "body": {
                "limit": "={{$parameter.limit}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "sample": "={{$parameter.sample}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection"
        },
        {
          "name": "Matrix Offsets",
          "value": "matrixOffsets",
          "action": "Matrix Offsets",
          "routing": {
            "request": {
              "qs": {
                "timeout": "={{$parameter.timeout}}",
                "consistency": "={{$parameter.consistency}}"
              },
              "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/offsets",
              "body": {
                "limit": "={{$parameter.limit}}",
                "using": "={{$parameter.using}}",
                "filter": "={{JSON.parse($parameter.filter)}}",
                "sample": "={{$parameter.sample}}",
                "shard_key": "={{JSON.parse($parameter.shardKey)}}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "List Collections",
      "value": "listCollections",
      "action": "List Collections",
      "routing": {
        "request": {
          "url": "/collections",
          "method": "GET"
        }
      },
      "description": "List all collections in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Create Collection",
      "value": "createCollection",
      "action": "Create Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "body": {
            "vectors": "={{JSON.parse($parameter.vectors)}}",
            "init_from": "={{JSON.parse($parameter.initFrom)}}",
            "wal_config": "={{JSON.parse($parameter.walConfig)}}",
            "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
            "shard_number": "={{$parameter.shardNumber}}",
            "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
            "on_disk_payload": "={{$parameter.onDiskPayload}}",
            "sharding_method": "={{$parameter.shardingMethod}}",
            "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
            "replication_factor": "={{$parameter.replicationFactor}}",
            "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
            "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}",
            "write_consistency_factor": "={{$parameter.writeConsistencyFactor}}"
          },
          "method": "PUT"
        }
      },
      "description": "Create a new collection in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Update Collection",
      "value": "updateCollection",
      "action": "Update Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "body": {
            "params": "={{JSON.parse($parameter.params)}}",
            "vectors": "={{JSON.parse($parameter.vectors)}}",
            "hnsw_config": "={{JSON.parse($parameter.hnswConfig)}}",
            "sparse_vectors": "={{JSON.parse($parameter.sparseVectors)}}",
            "optimizers_config": "={{JSON.parse($parameter.optimizersConfig)}}",
            "strict_mode_config": "={{JSON.parse($parameter.strictModeConfig)}}",
            "quantization_config": "={{JSON.parse($parameter.quantizationConfig)}}"
          },
          "method": "PATCH"
        }
      },
      "description": "Update parameters of an existing collection in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Get Collection",
      "value": "getCollection",
      "action": "Get Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific collection",
      "resource": "collection"
    },
    {
      "name": "Check If Collection Exists",
      "value": "collectionExists",
      "action": "Check If Collection Exists",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}/exists",
          "method": "GET"
        }
      },
      "description": "Check if a collection exists in the Qdrant instance",
      "resource": "collection"
    },
    {
      "name": "Delete Collection",
      "value": "deleteCollection",
      "action": "Delete Collection",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}",
          "method": "DELETE"
        }
      },
      "description": "Delete the specified collection",
      "resource": "collection"
    },
    {
      "name": "Upsert Points",
      "value": "upsertPoints",
      "action": "Upsert Points",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points",
          "body": {
            "points": "={{JSON.parse($parameter.points)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Insert or update points in a collection",
      "resource": "point"
    },
    {
      "name": "Retrieve Point",
      "value": "retrievePoint",
      "action": "Retrieve Point",
      "routing": {
        "request": {
          "url": "=/collections/{{$parameter.collectionName}}/points/{{isNaN(Number($parameter.id)) ?  $parameter.id : Number($parameter.id)}}",
          "method": "GET"
        }
      },
      "description": "Retrieves all details from a single point",
      "resource": "point"
    },
    {
      "name": "Retrieve Points",
      "value": "retrievePoints",
      "action": "Retrieve Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points",
          "body": {
            "ids": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve all details from multiple points",
      "resource": "point"
    },
    {
      "name": "Delete Points",
      "value": "deletePoints",
      "action": "Delete Points",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/delete",
          "body": {
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Delete specified points from the collection",
      "resource": "point"
    },
    {
      "name": "Count Points",
      "value": "countPoints",
      "action": "Count Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/count",
          "body": {
            "exact": "={{$parameter.exact}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Counts the number of points that match a specified filtering condition",
      "resource": "point"
    },
    {
      "name": "Scroll Points",
      "value": "scrollPoints",
      "action": "Scroll Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/scroll",
          "body": {
            "limit": "={{$parameter.limit}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "offset": "={{isNaN(Number($parameter.offset)) ?  $parameter.offset : Number($parameter.offset)}}",
            "order_by": "={{JSON.parse($parameter.orderBy)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}"
          },
          "method": "POST"
        }
      },
      "description": "Returns all points in a page-by-page manner",
      "resource": "point"
    },
    {
      "name": "Batch Update Points",
      "value": "batchUpdatePoints",
      "action": "Batch Update Points",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/batch",
          "body": {
            "operations": "={{JSON.parse($parameter.operations)}}"
          },
          "method": "POST"
        }
      },
      "description": "Batch update points, including their respective vectors and payloads",
      "resource": "point"
    },
    {
      "name": "Update Vectors",
      "value": "updateVectors",
      "action": "Update Vectors",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/vectors",
          "body": {
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Update specified vectors on points",
      "resource": "vector"
    },
    {
      "name": "Delete Vectors",
      "value": "deleteVectors",
      "action": "Delete Vectors",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/vectors/delete",
          "body": {
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "vector": "={{JSON.parse($parameter.vector)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Delete specified vectors from points",
      "resource": "vector"
    },
    {
      "name": "Set Payload",
      "value": "setPayload",
      "action": "Set Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload",
          "body": {
            "key": "={{$parameter.key ? $parameter.key : null}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "payload": "={{JSON.parse($parameter.payload)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Sets payload values for specified points",
      "resource": "payload"
    },
    {
      "name": "Overwrite Payload",
      "value": "overwritePayload",
      "action": "Overwrite Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload",
          "body": {
            "key": "={{$parameter.key ? $parameter.key : null}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "payload": "={{JSON.parse($parameter.payload)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Replaces the entire payload of specified points with a new payload",
      "resource": "payload"
    },
    {
      "name": "Delete Payload",
      "value": "deletePayload",
      "action": "Delete Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload/delete",
          "body": {
            "keys": "={{JSON.parse($parameter.keys)}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Deletes specified payload keys from points",
      "resource": "payload"
    },
    {
      "name": "Clear Payload",
      "value": "clearPayload",
      "action": "Clear Payload",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/payload/clear",
          "body": {
            "filter": "={{JSON.parse($parameter.filter)}}",
            "points": "={{JSON.parse($parameter.points)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Removes the entire payload for specified points",
      "resource": "payload"
    },
    {
      "name": "Payload Facets",
      "value": "payloadFacets",
      "action": "Get Payload Facets",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/facet",
          "body": {
            "key": "={{$parameter.key}}",
            "exact": "={{$parameter.exact}}",
            "limit": "={{$parameter.limit}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieves facets for the specified payload field",
      "resource": "payload"
    },
    {
      "name": "Create Payload Index",
      "value": "createPayloadIndex",
      "action": "Create Payload Index",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/index",
          "body": {
            "field_name": "={{$parameter.fieldName}}",
            "field_schema": "={{JSON.parse($parameter.fieldSchema)}}"
          },
          "method": "PUT"
        }
      },
      "description": "Creates a payload index for a field in the specified collection",
      "resource": "payload"
    },
    {
      "name": "Delete Payload Index",
      "value": "deletePayloadIndex",
      "action": "Delete Payload Index",
      "routing": {
        "request": {
          "qs": {
            "wait": "={{$parameter.wait}}",
            "ordering": "={{$parameter.ordering}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/index/{{$parameter.fieldName}}",
          "method": "DELETE"
        }
      },
      "description": "Deletes a payload index for a field in the specified collection",
      "resource": "payload"
    },
    {
      "name": "Query Points",
      "value": "queryPoints",
      "action": "Query Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/query",
          "body": {
            "limit": "={{$parameter.limit}}",
            "query": "={{JSON.parse($parameter.query)}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "offset": "={{$parameter.offset}}",
            "params": "={{JSON.parse($parameter.params)}}",
            "prefetch": "={{JSON.parse($parameter.prefetch)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}",
            "score_threshold": "={{$parameter.scoreThreshold}}"
          },
          "method": "POST"
        }
      },
      "description": "Query points in a collection using various search methods",
      "resource": "search"
    },
    {
      "name": "Query Batch Points",
      "value": "queryBatchPoints",
      "action": "Query Batch Points",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/query/batch",
          "body": {
            "searches": "={{JSON.parse($parameter.searches)}}"
          },
          "method": "POST"
        }
      },
      "description": "Query multiple points in batch using various search methods",
      "resource": "search"
    },
    {
      "name": "Query Points Groups",
      "value": "queryPointsGroups",
      "action": "Query Points Groups",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/query/groups",
          "body": {
            "limit": "={{$parameter.limit}}",
            "query": "={{JSON.parse($parameter.query)}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "params": "={{JSON.parse($parameter.params)}}",
            "group_by": "={{$parameter.groupBy}}",
            "prefetch": "={{JSON.parse($parameter.prefetch)}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}",
            "group_size": "={{$parameter.groupSize}}",
            "lookup_from": "={{JSON.parse($parameter.lookupFrom)}}",
            "with_lookup": "={{JSON.parse($parameter.withLookup)}}",
            "with_vector": "={{$parameter.withVector}}",
            "with_payload": "={{$parameter.withPayload}}",
            "score_threshold": "={{$parameter.scoreThreshold}}"
          },
          "method": "POST"
        }
      },
      "description": "Query points and group results by a specified payload field",
      "resource": "search"
    },
    {
      "name": "Matrix Pairs",
      "value": "matrixPairs",
      "action": "Matrix Pairs",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/pairs",
          "body": {
            "limit": "={{$parameter.limit}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "sample": "={{$parameter.sample}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection",
      "resource": "search"
    },
    {
      "name": "Matrix Offsets",
      "value": "matrixOffsets",
      "action": "Matrix Offsets",
      "routing": {
        "request": {
          "qs": {
            "timeout": "={{$parameter.timeout}}",
            "consistency": "={{$parameter.consistency}}"
          },
          "url": "=/collections/{{$parameter.collectionName}}/points/search/matrix/offsets",
          "body": {
            "limit": "={{$parameter.limit}}",
            "using": "={{$parameter.using}}",
            "filter": "={{JSON.parse($parameter.filter)}}",
            "sample": "={{$parameter.sample}}",
            "shard_key": "={{JSON.parse($parameter.shardKey)}}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve sparse matrix of pairwise distances between points sampled from the collection",
      "resource": "search"
    }
  ]

npm_readme:
  # n8n-nodes-qdrant

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

  This is the official [n8n](https://n8n.io/) node for interfacing with Qdrant.

  [Qdrant](http://qdrant.tech) is a vector similarity search engine that provides a production-ready service with a convenient API to store, search, and manage vectors.

  ## Installation

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

  ## Operations

  The node supports the following operations:

  ### Collection

  - [List Collections](https://api.qdrant.tech/v-1-14-x/api-reference/collections/get-collections) - List all collections in the Qdrant instance
  - [Create Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/create-collection) - Create a new collection with specified vector parameters
  - [Update Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/update-collection) - Update parameters of an existing collection
  - [Get Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/get-collection) - Get information about a specific collection
  - [Collection Exists](https://api.qdrant.tech/v-1-14-x/api-reference/collections/collection-exists) - Check if a collection exists
  - [Delete Collection](https://api.qdrant.tech/v-1-14-x/api-reference/collections/delete-collection) - Delete a collection

  ### Point

  - [Upsert Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/upsert-points) - Insert or update points in a collection
  - [Retrieve Point](https://api.qdrant.tech/v-1-14-x/api-reference/points/get-point) - Get a single point by ID
  - [Retrieve Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/get-points) - Get multiple points by their IDs
  - [Delete Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/delete-points) - Remove points from a collection
  - [Count Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/count-points) - Count points in a collection with optional filtering
  - [Scroll Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/scroll-points) - Scroll through all points in a collection
  - [Batch Update Points](https://api.qdrant.tech/v-1-14-x/api-reference/points/batch-update) - Perform multiple point operations in a single request

  ### Vector

  - [Update Vectors](https://api.qdrant.tech/v-1-14-x/api-reference/points/update-vectors) - Update vectors for existing points
  - [Delete Vectors](https://api.qdrant.tech/v-1-14-x/api-reference/points/delete-vectors) - Remove vectors from points

  ### Search

  - [Query Points](https://api.qdrant.tech/v-1-14-x/api-reference/search/query-points) - Search for similar vectors
  - [Query Points In Batch](https://api.qdrant.tech/v-1-14-x/api-reference/search/query-batch-points) - Perform multiple vector searches in batch
  - [Query Points Groups](https://api.qdrant.tech/v-1-14-x/api-reference/search/query-points-groups) - Group search results by payload field
  - [Matrix Pairs](https://api.qdrant.tech/v-1-14-x/api-reference/search/matrix-pairs) - Calculate distance matrix between pairs of points
  - [Matrix Offsets](https://api.qdrant.tech/v-1-14-x/api-reference/search/matrix-offsets) - Calculate distance matrix using offsets

  ### Payload

  - [Set Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/set-payload) - Set payload for points
  - [Overwrite Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/overwrite-payload) - Replace entire payload for points
  - [Delete Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/delete-payload) - Remove payload from points
  - [Clear Payload](https://api.qdrant.tech/v-1-14-x/api-reference/points/clear-payload) - Clear all payload fields
  - [Payload Facets](https://api.qdrant.tech/v-1-14-x/api-reference/points/facet) - Get payload field statistics
  - [Create Payload Index](https://api.qdrant.tech/v-1-14-x/api-reference/indexes/create-field-index) - Create an index for payload fields
  - [Delete Payload Index](https://api.qdrant.tech/v-1-14-x/api-reference/indexes/delete-field-index) - Remove a payload field index

  ## Credentials

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

  - URL: The REST URL of your Qdrant instance
  - API Key (optional): Your Qdrant API key if authentication is enabled

  ## Compatibility

  This node is compatible with:

  - Qdrant version 1.14.0 and above

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Qdrant Documentation](https://qdrant.tech/documentation/)
  - [Qdrant GitHub Repository](https://github.com/qdrant/qdrant)

ai_documentation_summary:
  {"purpose":"This n8n node provides official integration with Qdrant, a vector similarity search engine, enabling storage, retrieval, and management of vectors and their associated payloads.","capabilities":["List, create, update, get, and delete collections","Upsert, retrieve, delete, count, and scroll points","Update and delete vectors","Query points, batch query, and group search results","Calculate distance matrices (matrix pairs and offsets)","Set, overwrite, delete, and clear point payloads","Create and delete payload field indexes","Get payload field statistics"],"authentication":"API Key required (optional, only if authentication is enabled on Qdrant instance)","commonUseCases":["Semantic search and vector similarity queries","Embedding storage and retrieval workflows","Vector database management and maintenance","Semantic clustering and grouping operations"],"limitations":["Requires Qdrant version 1.14.0 or above","API Key is optional and only needed if Qdrant instance has authentication enabled"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook","n8n-nodes-ai.embeddings"]}


node_type: n8n-nodes-sms-advert.smsAdvert
package_name: n8n-nodes-sms-advert
display_name: SMSAdvert
description: SMS Advert API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: apps_makeitfuture
author_github_url: https://github.com/makeitfutureDev/n8n-sms-advert.git
npm_package_name: n8n-nodes-sms-advert
npm_version: 1.0.21
community_fetched_at: 2026-04-16T09:43:36.340Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sms",
      "options": [
        {
          "name": "SMS",
          "value": "sms"
        }
      ],
      "required": true,
      "description": "Send SMS through own devices",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDevice",
      "options": [
        {
          "name": "Get Devices",
          "value": "getDevice",
          "action": "Get device list",
          "description": "Get all devices"
        },
        {
          "name": "Get Account Details",
          "value": "getAccountDetails",
          "action": "Get account details",
          "description": "Get your account details and available units"
        },
        {
          "name": "Get SMS Api Queue",
          "value": "getApiQueue",
          "action": "Get SMS API queue count",
          "description": "Get current count of messages in the API queue"
        },
        {
          "name": "Send a Message",
          "value": "textToPhoneNumber",
          "action": "Send text to phone number",
          "description": "Send a text to a phone number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Devices",
      "value": "getDevice",
      "action": "Get device list",
      "description": "Get all devices",
      "resource": "sms"
    },
    {
      "name": "Get Account Details",
      "value": "getAccountDetails",
      "action": "Get account details",
      "description": "Get your account details and available units",
      "resource": "sms"
    },
    {
      "name": "Get SMS Api Queue",
      "value": "getApiQueue",
      "action": "Get SMS API queue count",
      "description": "Get current count of messages in the API queue",
      "resource": "sms"
    },
    {
      "name": "Send a Message",
      "value": "textToPhoneNumber",
      "action": "Send text to phone number",
      "description": "Send a text to a phone number",
      "resource": "sms"
    }
  ]

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

  # n8n-nodes-starter

  This repo contains example nodes to help you get started building your own custom integrations for [n8n](https://n8n.io). It includes the node linter and other dependencies.

  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.

  ## License

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

  ## 📲 n8n-nodes-smsadvert
  * Official n8n node for SMSAdvert API — easily send SMS messages and manage your SMS accounts directly from your n8n workflows.

  ✉️ Features
  ✅ Send SMS messages to phone numbers using your own devices or the SMSAdvert network.
  ✅ Get a list of your registered devices.
  ✅ Check your current API message queue count.

  * ⚡ Fully integrated with n8n authentication.

  🚀 Installation
  npm install n8n-nodes-smsadvert
  After installation, restart n8n. The node will appear in your node list as SMSAdvert.

  🔐 Authentication
  The node uses API Key authentication.
  In n8n, create new credentials of type SMSAdvertAPI and add your API key from your SMSAdvert account.

  💬 Example Workflows
  Simple SMS blast
  Use an HTTP Request node to pull a list of numbers from a CRM or sheet.

  Connect to SMSAdvert node with Send a Message operation.

  Done! Bulk SMS to your audience.

  🧑‍💻 Contributing
  Pull requests are welcome!
  If you'd like to add new features or improve existing functionality, please open an issue first to discuss what you'd like to change.

ai_documentation_summary:
  {"purpose":"This n8n node enables users to send SMS messages, retrieve registered devices, and check API message queue counts via the SMSAdvert API.","capabilities":["Send SMS messages to phone numbers","Retrieve list of registered devices","Check current API message queue count","Supports sending via user's own devices or SMSAdvert network"],"authentication":"API Key","commonUseCases":["Bulk SMS marketing campaigns","Automated SMS notifications from CRM data","Managing SMS account status in n8n workflows"],"limitations":[],"relatedNodes":["HTTP Request","Credentials (SMSAdvertAPI)"]}


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

updated_at: 2026-04-16 09:43:36
author_name: fyointegraciones
author_github_url: https://github.com/fyo-tech/
npm_package_name: n8n-nodes-fyo
npm_version: 0.6.1
community_fetched_at: 2026-04-16T09:43:36.341Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "granos",
      "options": [
        {
          "name": "Grains",
          "value": "granos"
        },
        {
          "name": "Finance",
          "value": "finanzas"
        },
        {
          "name": "ARCA",
          "value": "afip"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContratos",
      "options": [
        {
          "name": "Get Contracts",
          "value": "getContratos",
          "action": "Get contracts",
          "description": "Retrieve grain contracts"
        },
        {
          "name": "Get Settlements",
          "value": "getLiquidaciones",
          "action": "Get settlements",
          "description": "Retrieve grain settlements"
        },
        {
          "name": "Get Invoices",
          "value": "getFacturas",
          "action": "Get invoices",
          "description": "Retrieve grain invoices"
        },
        {
          "name": "Get Applications",
          "value": "getAplicaciones",
          "action": "Get applications",
          "description": "Retrieve grain applications"
        },
        {
          "name": "Get Fixings",
          "value": "getFijaciones",
          "action": "Get fixings",
          "description": "Retrieve grain fixings"
        },
        {
          "name": "Get Unloads",
          "value": "getDescargas",
          "action": "Get unloads",
          "description": "Retrieve grain unloads"
        },
        {
          "name": "Get Withholdings",
          "value": "getRetenciones",
          "action": "Get withholdings",
          "description": "Retrieve grain withholdings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "granos"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMovimientos",
      "options": [
        {
          "name": "Get Receipt Types",
          "value": "getTiposComprobante",
          "action": "Get receipt types",
          "description": "Retrieve receipt types"
        },
        {
          "name": "Get Receipt Details",
          "value": "getDetallesComprobante",
          "action": "Get receipt details",
          "description": "Retrieve receipt details"
        },
        {
          "name": "Get Transactions",
          "value": "getMovimientos",
          "action": "Get transactions",
          "description": "Retrieve financial transactions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "finanzas"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCartaPorte",
      "options": [
        {
          "name": "Get Waybills",
          "value": "getCartaPorte",
          "action": "Get waybills",
          "description": "Retrieve ARCA waybills (Carta de Porte)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "afip"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Contracts",
      "value": "getContratos",
      "action": "Get contracts",
      "description": "Retrieve grain contracts",
      "resource": "granos"
    },
    {
      "name": "Get Settlements",
      "value": "getLiquidaciones",
      "action": "Get settlements",
      "description": "Retrieve grain settlements",
      "resource": "granos"
    },
    {
      "name": "Get Invoices",
      "value": "getFacturas",
      "action": "Get invoices",
      "description": "Retrieve grain invoices",
      "resource": "granos"
    },
    {
      "name": "Get Applications",
      "value": "getAplicaciones",
      "action": "Get applications",
      "description": "Retrieve grain applications",
      "resource": "granos"
    },
    {
      "name": "Get Fixings",
      "value": "getFijaciones",
      "action": "Get fixings",
      "description": "Retrieve grain fixings",
      "resource": "granos"
    },
    {
      "name": "Get Unloads",
      "value": "getDescargas",
      "action": "Get unloads",
      "description": "Retrieve grain unloads",
      "resource": "granos"
    },
    {
      "name": "Get Withholdings",
      "value": "getRetenciones",
      "action": "Get withholdings",
      "description": "Retrieve grain withholdings",
      "resource": "granos"
    },
    {
      "name": "Get Receipt Types",
      "value": "getTiposComprobante",
      "action": "Get receipt types",
      "description": "Retrieve receipt types",
      "resource": "finanzas"
    },
    {
      "name": "Get Receipt Details",
      "value": "getDetallesComprobante",
      "action": "Get receipt details",
      "description": "Retrieve receipt details",
      "resource": "finanzas"
    },
    {
      "name": "Get Transactions",
      "value": "getMovimientos",
      "action": "Get transactions",
      "description": "Retrieve financial transactions",
      "resource": "finanzas"
    },
    {
      "name": "Get Waybills",
      "value": "getCartaPorte",
      "action": "Get waybills",
      "description": "Retrieve ARCA waybills (Carta de Porte)",
      "resource": "afip"
    }
  ]

npm_readme:
  # n8n-nodes-fyo

  This is an n8n community node for integrating with the [FYO API](https://www.fyo.com). It provides access to grain trading operations, financial transactions, and ARCA (Argentine tax authority) documentation.

  [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** in your n8n instance
  2. Select **Install**
  3. Enter `n8n-nodes-fyo` in the **Enter npm package name** field
  4. Agree to the risks and select **Install**

  ### Manual Installation

  To install this node manually in a self-hosted n8n instance:

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

  Then restart n8n.

  ## Credentials

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

  | Field | Description |
  |-------|-------------|
  | **Client ID** | Your FYO API client identifier |
  | **Username** | Your FYO username or email |
  | **Password** | Your FYO account password |
  | **Scope** | OAuth2 scope to request (provided by FYO) |
  | **Environment** | Production, Demo, or Custom URL |

  ### Setting up credentials

  1. In n8n, go to **Credentials > New**
  2. Search for **FYO API**
  3. Fill in your credentials provided by FYO
  4. Click **Test** to verify the connection
  5. Click **Save**

  ## Operations

  ### Grains Resource

  Operations for grain trading management.

  #### Get Contracts
  Retrieve grain contracts.

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | Broker Contract Number | Broker Contract Number |

  #### Get Settlements
  Retrieve grain settlements.

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | Broker Contract Number | Broker Contract Number |
  | Receipt Number | Receipt Number |

  #### Get Invoices
  Retrieve grain invoices.

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | Broker Contract Number | Broker Contract Number |
  | Receipt Number | Receipt Number |

  #### Get Applications
  Retrieve grain applications.

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | Broker Contract Number | Broker Contract Number |
  | CTG Number | CTG Number |

  #### Get Fixings
  Retrieve grain price fixings.

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | Broker Contract Number | Broker Contract Number |
  | Fixing Number | Fixing Number |

  #### Get Unloads
  Retrieve grain unloads.

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | CTG Number | CTG Number |

  #### Get Withholdings
  Retrieve tax withholdings.

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | Receipt Number | Receipt Number |
  | Payment Slip Number | Payment Slip Number |

  ### Finance Resource

  Operations for financial transactions.

  #### Get Receipt Types
  Retrieve available receipt types. This is a GET request with no parameters.

  #### Get Receipt Details
  Retrieve details for a specific receipt.

  | Parameter | Description |
  |-----------|-------------|
  | Receipt Number | Receipt number (required) |

  #### Get Transactions
  Retrieve financial transactions.

  | Parameter | Description |
  |-----------|-------------|
  | Date From | Start date (required) |
  | Date To | End date (required) |

  ### ARCA Resource

  Operations for ARCA (Argentine Federal Administration of Public Revenue) documentation.

  #### Get Waybills
  Retrieve ARCA waybills (Carta de Porte - transport documents).

  | Search By | Parameters |
  |-----------|------------|
  | Date Range | Date From (required), Date To (optional) |
  | CTG Number | CTG Number |

  ## Validation

  The node includes built-in validation:

  - **Date validation**: Dates cannot be in the future and must be valid calendar dates
  - **Date range**: Maximum range is 31 days (1 month) when both dates are provided
  - **Numeric fields**: Required numeric fields (CTG Number, Broker Contract Number, etc.) must be greater than 0

  ## Authentication

  This node uses OAuth2 Password Grant flow for authentication. The access token is automatically obtained using your credentials and cached to optimize API calls.

  The authentication flow:
  1. On first request, the node obtains an access token from the `/token` endpoint
  2. The token is cached in memory with a 60-second buffer before expiry
  3. All API requests include the token in the `Authorization: Bearer` header
  4. When the token expires, a new one is automatically requested

  ## Compatibility

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

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [FYO Website](https://www.fyo.com)

  ## Support

  If you have questions or encounter issues:

  - Open an issue on [GitHub](https://github.com/fyo-tech/n8n-nodes-fyo/issues)
  - Contact FYO support at integracion@fyo.com

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of grain trading, financial transactions, and ARCA documentation operations by interfacing with the FYO API.","capabilities":["Retrieve grain contracts","Retrieve grain settlements","Retrieve grain invoices","Retrieve grain applications","Retrieve grain price fixings","Retrieve grain unloads","Retrieve tax withholdings","Retrieve available receipt types","Retrieve receipt details","Retrieve financial transactions"],"authentication":"OAuth2 Password Grant (Client ID, Username, Password, Scope, Environment)","commonUseCases":["Automating grain trading contract retrieval and tracking","Processing financial transactions and receipts","Managing ARCA tax documentation and waybills","Generating reports on grain settlements and invoices"],"limitations":["Date range is limited to a maximum of 31 days when both start and end dates are provided","Required numeric fields must be greater than 0","Dates cannot be in the future","Requires manual installation via npm for self-hosted instances"],"relatedNodes":["n8n-nodes-core.credentialManager","n8n-nodes-core.httpRequest","n8n-nodes-core.date"]}


node_type: n8n-nodes-straico-official.straicoOfficial
package_name: n8n-nodes-straico-official
display_name: Straico Official
description: Get data from Straico API
category: Community
development_style: declarative
version: 1,2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: straico
author_github_url: https://github.com/SaroM0/
npm_package_name: n8n-nodes-straico-official
npm_version: 5.0.4
community_fetched_at: 2026-04-16T09:43:36.342Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prompt",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Model",
          "value": "models"
        },
        {
          "name": "Prompt",
          "value": "prompt"
        },
        {
          "name": "RAG",
          "value": "rag"
        },
        {
          "name": "TTS",
          "value": "tts"
        },
        {
          "name": "User",
          "value": "user"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Info",
          "value": "get",
          "action": "Get user information",
          "routing": {
            "request": {
              "url": "/v0/user",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get all models information v1",
          "routing": {
            "request": {
              "url": "/v1/models",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get All Models v2",
          "value": "getAllModelsInfo",
          "action": "Get all models information v2"
        },
        {
          "name": "Get Specific Model v2",
          "value": "getSpecificModel",
          "action": "Get specific model information v2"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "models"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "completion",
      "options": [
        {
          "name": "Completion",
          "value": "completion",
          "action": "Create a completion",
          "routing": {
            "request": {
              "url": "/v1/prompt/completion",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "completionV2",
      "options": [
        {
          "name": "Completion V2",
          "value": "completionV2",
          "action": "Create a chat completion",
          "routing": {
            "request": {
              "url": "/v2/chat/completions",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Image",
          "value": "generate",
          "action": "Generate an image v0",
          "routing": {
            "request": {
              "url": "/v0/image/generation",
              "method": "POST"
            }
          }
        },
        {
          "name": "Generate Image V1",
          "value": "generateV1",
          "action": "Generate an image v1",
          "routing": {
            "request": {
              "url": "/v1/image/generation",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Video",
          "value": "generate",
          "action": "Generate a video from image",
          "routing": {
            "request": {
              "url": "/v1/image/tovideo",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Convert text to speech",
          "routing": {
            "request": {
              "url": "/v1/tts/create",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Add RAG",
          "value": "addRag",
          "action": "Add RAG to agent"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new agent"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete agent"
        },
        {
          "name": "Get Details",
          "value": "get",
          "action": "Get agent details"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all agents"
        },
        {
          "name": "Prompt Completion",
          "value": "promptCompletion",
          "action": "Send a prompt to agent"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update agent details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload a file",
          "routing": {
            "request": {
              "url": "/v0/file/upload",
              "body": {
                "file": "={{ $parameter[\"file\"] }}"
              },
              "json": false,
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new RAG"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a RAG"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get RAG by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all ra gs"
        },
        {
          "name": "Prompt Completion",
          "value": "promptCompletion",
          "action": "Send a prompt to a RAG"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a RAG with files"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "rag"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Info",
      "value": "get",
      "action": "Get user information",
      "routing": {
        "request": {
          "url": "/v0/user",
          "method": "GET"
        }
      },
      "resource": "user"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get all models information v1",
      "routing": {
        "request": {
          "url": "/v1/models",
          "method": "GET"
        }
      },
      "resource": "models"
    },
    {
      "name": "Get All Models v2",
      "value": "getAllModelsInfo",
      "action": "Get all models information v2",
      "resource": "models"
    },
    {
      "name": "Get Specific Model v2",
      "value": "getSpecificModel",
      "action": "Get specific model information v2",
      "resource": "models"
    },
    {
      "name": "Completion",
      "value": "completion",
      "action": "Create a completion",
      "routing": {
        "request": {
          "url": "/v1/prompt/completion",
          "method": "POST"
        }
      },
      "resource": "prompt"
    },
    {
      "name": "Completion V2",
      "value": "completionV2",
      "action": "Create a chat completion",
      "routing": {
        "request": {
          "url": "/v2/chat/completions",
          "method": "POST"
        }
      },
      "resource": "chat"
    },
    {
      "name": "Generate Image",
      "value": "generate",
      "action": "Generate an image v0",
      "routing": {
        "request": {
          "url": "/v0/image/generation",
          "method": "POST"
        }
      },
      "resource": "image"
    },
    {
      "name": "Generate Image V1",
      "value": "generateV1",
      "action": "Generate an image v1",
      "routing": {
        "request": {
          "url": "/v1/image/generation",
          "method": "POST"
        }
      },
      "resource": "image"
    },
    {
      "name": "Generate Video",
      "value": "generate",
      "action": "Generate a video from image",
      "routing": {
        "request": {
          "url": "/v1/image/tovideo",
          "method": "POST"
        }
      },
      "resource": "video"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Convert text to speech",
      "routing": {
        "request": {
          "url": "/v1/tts/create",
          "method": "POST"
        }
      },
      "resource": "tts"
    },
    {
      "name": "Add RAG",
      "value": "addRag",
      "action": "Add RAG to agent",
      "resource": "agent"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new agent",
      "resource": "agent"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete agent",
      "resource": "agent"
    },
    {
      "name": "Get Details",
      "value": "get",
      "action": "Get agent details",
      "resource": "agent"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all agents",
      "resource": "agent"
    },
    {
      "name": "Prompt Completion",
      "value": "promptCompletion",
      "action": "Send a prompt to agent",
      "resource": "agent"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update agent details",
      "resource": "agent"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload a file",
      "routing": {
        "request": {
          "url": "/v0/file/upload",
          "body": {
            "file": "={{ $parameter[\"file\"] }}"
          },
          "json": false,
          "method": "POST"
        }
      },
      "resource": "file"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new RAG",
      "resource": "rag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a RAG",
      "resource": "rag"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get RAG by ID",
      "resource": "rag"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all ra gs",
      "resource": "rag"
    },
    {
      "name": "Prompt Completion",
      "value": "promptCompletion",
      "action": "Send a prompt to a RAG",
      "resource": "rag"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a RAG with files",
      "resource": "rag"
    }
  ]

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

  # n8n-nodes-straico-official

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

  **Straico** is an AI-powered platform that provides advanced prompt completion, image generation, agent management, and Retrieval-Augmented Generation (RAG) capabilities via a RESTful API.

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

  - [Installation](#installation)  
    - [Self-Hosted Installation](#self-hosted-installation)
    - [Cloud Installation](#cloud-installation)
  - [Operations](#operations)  
  - [Credentials](#credentials)  
  - [Compatibility](#compatibility)  
  - [Usage](#usage)  
    - [Example Workflow](#example-workflow)  
  - [Resources](#resources)  
  - [Version History](#version-history)

  ---

  ## Installation

  ### Cloud Installation

  > **Note**: Limited to n8n instance owners

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

  Admin accounts can also uninstall any community node, verified or unverified. This helps them remove problematic nodes that may affect the instance's health and functionality.

  #### Install a Community Node

  To install this verified community node:

  1. Go to the Canvas and open the nodes panel (either by selecting '+' or pressing Tab)
  2. Search for "Straico". You will see it in the "More from the community" section at the bottom of the nodes panel
  3. Select the node to view detailed information about supported actions
  4. Click "Install". This will install the node for your instance and enable all members to use it

  #### Enable Installation of Verified Community Nodes

  Some users may not want to show verified community nodes in the nodes panel of their instances. On n8n cloud, instance owners can toggle this in the Cloud Admin Panel.

  #### Uninstall a Community Node

  To uninstall the community node:

  1. Go to Settings > Community nodes
  2. On the node you want to uninstall, select Options (three dots menu)
  3. Select "Uninstall package"
  4. Confirm uninstallation in the modal

  ### Self-Hosted Installation

  For self-hosted n8n instances:

  1. Install the community node package:

     ```bash
     npm install n8n-nodes-straico-official
     ```

  2. Restart your n8n instance to load the new node

  3. In n8n, go to **Settings/Community Nodes** and enable **n8n-nodes-straico-official** if it isn't already

  ---

  ## Operations

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

  - **User**
    - **Get Info**: Retrieve account details for the authenticated user.
  - **Models**
    - **Get All**: List all available chat and image models.
  - **Prompt**
    - **Completion**: Generate text completions using either specified models or the smart LLM selector.
  - **Image**
    - **Generate Image**: Create images with customizable parameters (model, size, variations, etc.).
  - **Agent**
    - **Create**, **Get Details**, **List**, **Add RAG**, **Update**, **Delete**, **Prompt Completion**.
  - **File**
    - **Upload**: Upload binary files for RAG or prompt operations.
  - **RAG**
    - **Create**, **List**, **Get**, **Update**, **Delete**, **Prompt Completion**.

  ---

  ## Credentials

  To authenticate requests, you need a **Straico API Key**:

  1. Sign up or log in at [Straico](https://straico.com/) and copy your API key from the dashboard.
  2. In n8n, go to **Credentials/New Credential/Straico API**.
  3. Paste your API key and save.

  All node operations will automatically use this credential.

  ---

  ## Compatibility

  - **Minimum n8n version**: `1.0.0`  
  - **Tested with**: n8n `1.x` and Straico API `v1`  
  - **Known issues**: None at this time. If you encounter any, please open an issue in the [GitHub repo](https://github.com/your-org/n8n-nodes-straico-official).

  ---

  ## Usage

  1. **Add Straico Official** node to your workflow.
  2. **Select Resource** and **Operation**.
  3. **Configure Parameters** according to the selected operation.
  4. **Connect** to other nodes as needed.

  ### Example Workflow

  Below is a simple example to generate a text completion and then an image:

  ```json
  [
    {
      "nodes": [
        {
          "parameters": {
            "resource": "prompt",
            "operation": "completion",
            "models": ["gpt-4"],
            "message": "Write a short poem about autumn.",
            "additionalFields": {
              "temperature": 0.8,
              "max_tokens": 100
            }
          },
          "name": "Straico Prompt",
          "type": "n8n-nodes-straico-official.StraicoOfficial",
          "typeVersion": 1,
          "position": [250, 300]
        },
        {
          "parameters": {
            "resource": "image",
            "operation": "generate",
            "model": "openai/dall-e-3",
            "description": "A serene autumn forest with falling leaves",
            "size": "landscape",
            "variations": 1,
            "enhance": true,
            "customEnhancer": "Make it more vibrant and warm"
          },
          "name": "Straico Image",
          "type": "n8n-nodes-straico-official.StraicoOfficial",
          "typeVersion": 1,
          "position": [450, 300]
        }
      ],
      "connections": {
        "Straico Prompt": {
          "main": [
            [
              {
                "node": "Straico Image",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    }
  ]
  ```

  ---

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)  
  - [Straico API Documentation](https://documenter.getpostman.com/view/5900072/2s9YyzddrR)  
  - [n8n Forum](https://community.n8n.io/) – for community support  

  ---

  ## Version History

  - **2.0.0** (2025-06-25)  
    - Initial public release  
    - Supports User, Models, Prompt, Image, Agent, File, and RAG operations  
  - **2.1.0** (pending)  
    - Planned: Add webhook support and batch RAG uploads

  ---

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows by integrating with the Straico API, which provides AI-powered text completion, image generation, agent management, and Retrieval-Augmented Generation (RAG) capabilities.","capabilities":["Retrieve user account information","List available chat and image models","Generate text completions with custom models or smart LLM selector","Generate images with customizable parameters (model, size, variations, enhancers)","Manage AI agents (create, list, get details, update, delete)","Add RAG data to agents","Upload binary files for RAG or prompt operations","Create, list, get, update, and delete RAG collections","Perform prompt completion on agents and RAG collections"],"authentication":"API key required (Straico API Key)","commonUseCases":["Automated content generation using AI text models","Workflow automation with AI-powered image creation","Building RAG-based knowledge retrieval systems","Managing and configuring AI agents for specific tasks"],"limitations":["Limited to n8n instance owners for cloud installation","Self-hosted installation requires manual npm package installation","Requires valid Straico API key for all operations"],"relatedNodes":["HTTP Request","Code","Wait Until"]}


node_type: n8n-nodes-gleanclient.gleanClient
package_name: n8n-nodes-gleanclient
display_name: Glean
description: Retrieve results from the Glean index for the given query and filters
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: djuang1
author_github_url: https://github.com/djuang1/
npm_package_name: n8n-nodes-gleanclient
npm_version: 0.2.0
community_fetched_at: 2026-04-16T09:43:36.343Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "searchGlean",
      "options": [
        {
          "name": "Search Glean",
          "value": "searchGlean"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Search Glean",
          "value": "post",
          "action": "Search",
          "routing": {
            "request": {
              "url": "/rest/api/v1/search",
              "body": {
                "query": "={{$parameter[\"query\"]}}",
                "pageSize": 10,
                "trackingToken": "1"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve results from the index for the given query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "searchGlean"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Glean",
      "value": "post",
      "action": "Search",
      "routing": {
        "request": {
          "url": "/rest/api/v1/search",
          "body": {
            "query": "={{$parameter[\"query\"]}}",
            "pageSize": 10,
            "trackingToken": "1"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve results from the index for the given query",
      "resource": "searchGlean"
    }
  ]

npm_readme:
  # n8n-nodes-gleanclient

  This is an n8n community node. It lets you use the [Glean Client API](https://developers.glean.com/api/client-api/search/search) in your n8n workflows.

  The Glean Work AI platform lets you embed enterprise search, chat, and agent capabilities into your applications while honoring source‑system permissions by default.

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

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

  ## Installation

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

  ## Operations

  This node allows you to run the search endpoint against your Glean instance.

  ## Credentials

  A Glean account and an API token with the Search scope is required. 

  ## Compatibility

  Tested locally against n8n 1.105.4

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Glean Developers - Client API Reference - Search](https://developers.glean.com/api/client-api/search/search)

  ## Version history

  * August 8, 2025 - 0.1.2 - First.
  * August 8, 2025 - 0.1.3 - Fixed AI Agent tool usage.
  * August 9, 2025 - 0.1.4 - Updated names and added credential test.
  * August 9, 2025 - 0.1.5 - Fixed query body to pass the correct value.

ai_documentation_summary:
  {"purpose":"Retrieves search results from a Glean index using the Glean Client API within n8n workflows.","capabilities":["Execute search queries against Glean instances","Apply filters to search results","Retrieve enterprise search data","Support AI Agent tool usage"],"authentication":"API token required with Search scope","commonUseCases":["Enterprise search integration","Embedding search capabilities into applications","Querying Glean-indexed documents"],"limitations":["Requires a Glean account with appropriate API token","Search scope permission is mandatory"],"relatedNodes":["n8n-nodes-gleanclient.gleanClient"]}


node_type: n8n-nodes-dalil-ai.dalilAi
package_name: n8n-nodes-dalil-ai
display_name: Dalil AI
description: Consume Dalil AI API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dalil-ai
author_github_url: https://github.com/dalil-ai/
npm_package_name: n8n-nodes-dalil-ai
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:36.344Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "people",
      "options": [
        {
          "name": "Company",
          "value": "company"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Note Relation",
          "value": "noteTarget"
        },
        {
          "name": "Opportunity",
          "value": "opportunity"
        },
        {
          "name": "Person",
          "value": "people"
        },
        {
          "name": "Pipeline",
          "value": "pipeline"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Task Relation",
          "value": "taskTarget"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a person",
          "description": "Create a new person"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a person",
          "description": "Delete a person"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a person",
          "description": "Get a person"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many people",
          "description": "Get many people"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for people",
          "description": "Search for people by name or email"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a person",
          "description": "Update a person"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "people"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a company",
          "description": "Create a new company"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a company",
          "description": "Delete a company"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a company",
          "description": "Get a company"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many companies",
          "description": "Get many companies"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for companies",
          "description": "Search for companies by name"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a company",
          "description": "Update a company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a note",
          "description": "Create a new note"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a note",
          "description": "Delete a note"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a note",
          "description": "Get a note"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many notes",
          "description": "Get many notes"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for notes",
          "description": "Search for notes by title"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a note",
          "description": "Update a note"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a note relation",
          "description": "Create a new note relation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a note relation",
          "description": "Delete a note relation"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a note relation",
          "description": "Get a note relation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many note relations",
          "description": "Get many note relations"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a note relation",
          "description": "Update a note relation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "noteTarget"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a new task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "description": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Get a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Get many tasks"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for tasks",
          "description": "Search for tasks by title"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "description": "Update a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task relation",
          "description": "Create a new task relation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task relation",
          "description": "Delete a task relation"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task relation",
          "description": "Get a task relation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many task relations",
          "description": "Get many task relations"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task relation",
          "description": "Update a task relation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "taskTarget"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a pipeline record",
          "description": "Create a new pipeline record"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a pipeline record",
          "description": "Delete a pipeline record"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a pipeline record",
          "description": "Get a pipeline record"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many pipeline records",
          "description": "Get many pipeline records"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for pipeline records",
          "description": "Search for pipeline records by name"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a pipeline record",
          "description": "Update a pipeline record"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an opportunity",
          "description": "Create a new opportunity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an opportunity",
          "description": "Delete an opportunity"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an opportunity",
          "description": "Get an opportunity"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many opportunities",
          "description": "Get many opportunities"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for opportunities",
          "description": "Search for opportunities by name"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an opportunity",
          "description": "Update an opportunity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a person",
      "description": "Create a new person",
      "resource": "people"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a person",
      "description": "Delete a person",
      "resource": "people"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a person",
      "description": "Get a person",
      "resource": "people"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many people",
      "description": "Get many people",
      "resource": "people"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for people",
      "description": "Search for people by name or email",
      "resource": "people"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a person",
      "description": "Update a person",
      "resource": "people"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a company",
      "description": "Create a new company",
      "resource": "company"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a company",
      "description": "Delete a company",
      "resource": "company"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a company",
      "description": "Get a company",
      "resource": "company"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many companies",
      "description": "Get many companies",
      "resource": "company"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for companies",
      "description": "Search for companies by name",
      "resource": "company"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a company",
      "description": "Update a company",
      "resource": "company"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a note",
      "description": "Create a new note",
      "resource": "note"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a note",
      "description": "Delete a note",
      "resource": "note"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a note",
      "description": "Get a note",
      "resource": "note"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many notes",
      "description": "Get many notes",
      "resource": "note"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for notes",
      "description": "Search for notes by title",
      "resource": "note"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a note",
      "description": "Update a note",
      "resource": "note"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a note relation",
      "description": "Create a new note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a note relation",
      "description": "Delete a note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a note relation",
      "description": "Get a note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many note relations",
      "description": "Get many note relations",
      "resource": "noteTarget"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a note relation",
      "description": "Update a note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a new task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "description": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Get a task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Get many tasks",
      "resource": "task"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for tasks",
      "description": "Search for tasks by title",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "description": "Update a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task relation",
      "description": "Create a new task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task relation",
      "description": "Delete a task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task relation",
      "description": "Get a task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many task relations",
      "description": "Get many task relations",
      "resource": "taskTarget"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task relation",
      "description": "Update a task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a pipeline record",
      "description": "Create a new pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a pipeline record",
      "description": "Delete a pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a pipeline record",
      "description": "Get a pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many pipeline records",
      "description": "Get many pipeline records",
      "resource": "pipeline"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for pipeline records",
      "description": "Search for pipeline records by name",
      "resource": "pipeline"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a pipeline record",
      "description": "Update a pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an opportunity",
      "description": "Create a new opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an opportunity",
      "description": "Delete an opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an opportunity",
      "description": "Get an opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many opportunities",
      "description": "Get many opportunities",
      "resource": "opportunity"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for opportunities",
      "description": "Search for opportunities by name",
      "resource": "opportunity"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an opportunity",
      "description": "Update an opportunity",
      "resource": "opportunity"
    }
  ]

npm_readme:
  # n8n-nodes-dalil-ai

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

  Dalil AI is a CRM platform that helps you manage your customer relationships and sales pipeline.

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

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

  ## Installation

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

  ## Operations

  **People:**
  - Create, Update, Delete, Get, Get Many

  **Company:**
  - Create, Update, Delete, Get, Get Many

  **Opportunity:**
  - Create, Update, Delete, Get, Get Many

  **Task:**
  - Create, Update, Delete, Get, Get Many

  **Note:**
  - Create, Update, Delete, Get, Get Many

  **Task Target (Relations):**
  - Create, Update, Delete, Get, Get Many

  **Note Target (Relations):**
  - Create, Update, Delete, Get, Get Many

  **Pipeline:**
  - Create, Update, Delete, Get, Get Many

  ## Credentials

  You'll need to create Dalil AI API credentials. You can find these in your Dalil AI account settings.

  ## Compatibility

  This was tested against n8n version 1.0+.

  ## Usage

  This node allows you to interact with Dalil AI's CRM system to manage contacts, companies, opportunities, tasks, and notes.

  ## Resources

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

  ---

  # Dalil AI n8n Node - Complete User Guide

  Welcome to the comprehensive guide for using the Dalil AI n8n node. This documentation will help users of all experience levels - from beginners to advanced developers - understand and effectively use the DalilAI n8n node.

  ## Table of Contents

  1. [Overview](#overview)
  2. [Authentication Setup](#authentication-setup)
  3. [Understanding Resources](#understanding-resources)
  4. [Core Concepts](#core-concepts)
  5. [Operations Guide](#operations-guide)
  6. [Understanding Field Types and Values](#understanding-field-types-and-values)
  7. [Query Parameters](#query-parameters)
  8. [Triggers and Webhooks](#triggers-and-webhooks)
  9. [Advanced Features](#advanced-features)
  10. [Troubleshooting](#troubleshooting)

  ## Overview

  The Dalil AI n8n node allows you to seamlessly integrate with the Dalil AI CRM system, enabling automation of customer relationship management tasks. The node supports comprehensive CRUD (Create, Read, Update, Delete) operations across multiple resources and provides real-time webhook notifications for data changes.

  ### Supported Resources
  - **People**: Individual contacts and customers
  - **Company**: Organizations and businesses
  - **Opportunity**: Sales deals and prospects
  - **Task**: To-do items and assignments
  - **Note**: Documentation and comments
  - **Task Relations**: Link tasks to multiple records
  - **Note Relations**: Link notes to multiple records
  - **Pipeline**: Workflow stages and processes

  ## Authentication Setup

  Before using the Dalil AI node, you need to configure your API credentials:

  1. **Create Credentials**: In your n8n instance, go to Settings > Credentials
  2. **Add New Credential**: Select "Dalil AI API"
  3. **Configure**:
     - **API Key**: Your authentication token from Dalil AI settings

  ## Understanding Resources

  ### Core Resources

  #### People
  Represents individual contacts in your CRM.
  - **Use Case**: Store customer information, contacts, leads
  - **Key Fields**: First Name, Last Name, Email, Phone, Company ID
  - **Relationships**: Belongs to Company, has Tasks/Notes

  #### Company  
  Represents businesses and organizations.
  - **Use Case**: Manage client companies, prospects, vendors
  - **Key Fields**: Name, Domain URL, Industry, Employees, Address
  - **Relationships**: Has People, Opportunities, Tasks/Notes

  #### Opportunity
  Represents sales deals and revenue opportunities.
  - **Use Case**: Track sales pipeline, deals, revenue forecasts
  - **Key Fields**: Name, Amount, Stage, Close Date, Company ID
  - **Relationships**: Belongs to Company and people, has Tasks/Notes

  #### Task
  Represents actionable items and assignments.
  - **Use Case**: Track work items, follow-ups, assignments
  - **Key Fields**: Title, Body, Status, Due Date, Assignee ID
  - **Relationships**: Can be linked to any record via Task Relations

  #### Note
  Represents documentation and comments.
  - **Use Case**: Store meeting notes, customer interactions, documentation
  - **Key Fields**: Title, Body, Visibility Level
  - **Relationships**: Can be linked to any record via Note Relations

  ### Relationship Resources

  #### Task Relations (taskTarget)
  Creates many-to-many relationships between tasks and other records.
  - **Purpose**: One task can be related to multiple People, Companies, or Opportunities
  - **Use Case**: Project tasks affecting multiple contacts or deals
  - **Key Fields**: Task ID, Person ID, Company ID, Opportunity ID

  #### Note Relations (noteTarget)  
  Creates many-to-many relationships between notes and other records.
  - **Purpose**: One note can be related to multiple People, Companies, or Opportunities
  - **Use Case**: Meeting notes involving multiple participants or deals
  - **Key Fields**: Note ID, Person ID, Company ID, Opportunity ID

  #### Pipeline
  Defines workflow stages and custom processes.
  - **Purpose**: Create custom workflows beyond standard opportunity stages
  - **Use Case**: Support tickets, hiring processes, custom workflows
  - **Key Fields**: Name, Status, Custom Fields

  ## Core Concepts

  ### Operations
  Each resource supports standard CRUD operations:

  - **Create**: Add new records
  - **Get**: Retrieve a single record by ID
  - **Get Many**: Retrieve multiple records with filtering
  - **Update**: Modify existing records
  - **Delete**: Remove records

  ### Field Types
  Understanding field types is crucial for proper data entry:

  #### Standard Field Types
  - **TEXT**: Plain text strings (e.g., "John Smith")
  - **NUMBER**: Numeric values (e.g., 100, 3.14)
  - **BOOLEAN**: True/false values
  - **DATE_TIME**: ISO 8601 format dates (e.g., "2024-01-15T10:30:00Z")
  - **SELECT**: Single choice from predefined options
  - **MULTI_SELECT**: Multiple choices from predefined options
  - **RATING**: Scale of 1-5 (represented as "RATING_1" through "RATING_5")

  #### Complex Field Types
  - **EMAILS**: Email addresses with primary and additional emails
  - **PHONES**: Phone numbers with country codes and calling codes
  - **LINKS**: URLs with labels and secondary links
  - **ADDRESS**: Complete address information
  - **FULL_NAME**: First and last name components
  - **MONEY**: Amount with currency code (stored in micros)

  ### Select Values Format
  **IMPORTANT**: Select field values must be in uppercase with underscores, not the display labels.

  **Frontend Display** → **API Value Required**
  - "Lead" → "LEAD"
  - "New Customer" → "NEW_CUSTOMER"  
  - "In Progress" → "IN_PROGRESS"
  - "On Site" → "ON_SITE"
  - "Remote Work" → "REMOTE_WORK"

  **Example for Opportunity Stage:**
  - Display: "Discovery" → Value: "DISCOVERY"
  - Display: "Proposal" → Value: "PROPOSAL"
  - Display: "Negotiation" → Value: "NEGOTIATION"

  ## Operations Guide

  ### Creating Records

  #### People - Create
  **Required Fields:**
  - First Name

  **Example:**
  ```javascript
  {
    "firstName": "John",
    "additionalFields": {
      "lastName": "Smith",
      "primaryEmail": "john.smith@company.com",
      "jobTitle": "Software Engineer",
      "companyId": "123e4567-e89b-12d3-a456-426614174000"
    }
  }
  ```

  #### Company - Create
  **Required Fields:**
  - Company Name

  **Example:**
  ```javascript
  {
    "name": "Acme Corp",
    "additionalFields": {
      "domainUrl": "https://acmecorp.com",
      "industry": "Technology",
      "employees": 50,
      "addressStreet1": "123 Main St",
      "addressCity": "San Francisco",
      "addressState": "CA",
      "addressCountry": "United States"
    }
  }
  ```

  #### Opportunity - Create
  **Required Fields:**
  - Name

  **Example:**
  ```javascript
  {
    "name": "Q1 Software License Deal",
    "additionalFields": {
      "amount": 50000,
      "currencyCode": "USD",
      "stage": "DISCOVERY",
      "closeDate": "2024-03-31",
      "companyId": "123e4567-e89b-12d3-a456-426614174000"
    }
  }
  ```

  #### Task - Create
  **Required Fields:**
  - Title

  **Example:**
  ```javascript
  {
    "title": "Follow up with client",
    "additionalFields": {
      "body": "Call to discuss proposal feedback",
      "status": "TODO",
      "dueAt": "2024-01-20T15:00:00Z",
      "assigneeId": "123e4567-e89b-12d3-a456-426614174000"
    }
  }
  ```

  #### Note - Create
  **Required Fields:**
  - Title

  **Example:**
  ```javascript
  {
    "title": "Client Meeting Notes",
    "additionalFields": {
      "body": "Discussed project requirements and timeline",
      "visibilityLevel": 1
    }
  }
  ```

  ### Creating Relationships

  #### Task Relations (taskTarget) - Create
  Links a task to multiple records.

  **⚠️ Important Constraint: Single Relation Per Record**
  Each taskTarget record can only link to **ONE** relation ID at a time. You cannot add both `personId` and `companyId` in the same taskTarget record.

  **❌ Incorrect - Multiple Relations in One Record:**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "personId": "person-uuid-here",      // ❌ Cannot combine
    "companyId": "company-uuid-here"     // ❌ Cannot combine
  }
  ```

  **✅ Correct - Separate Records for Each Relation:**

  **First Record (Person Relation):**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "personId": "person-uuid-here"
  }
  ```

  **Second Record (Company Relation):**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "companyId": "company-uuid-here"
  }
  ```

  **Third Record (Opportunity Relation):**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "opportunityId": "opportunity-uuid-here"
  }
  ```

  #### Note Relations (noteTarget) - Create
  Links a note to multiple records.

  **⚠️ Important Constraint: Single Relation Per Record**
  Each noteTarget record can only link to **ONE** relation ID at a time. You cannot add both `personId` and `companyId` in the same noteTarget record.

  **❌ Incorrect - Multiple Relations in One Record:**
  ```javascript
  {
    "noteId": "note-uuid-here",
    "personId": "person-uuid-here",      // ❌ Cannot combine
    "companyId": "company-uuid-here"     // ❌ Cannot combine
  }
  ```

  **✅ Correct - Separate Records for Each Relation:**

  **First Record (Person Relation):**
  ```javascript
  {
    "noteId": "note-uuid-here",
    "personId": "person-uuid-here"
  }
  ```

  **Second Record (Company Relation):**
  ```javascript
  {
    "noteId": "note-uuid-here",
    "companyId": "company-uuid-here"
  }
  ```

  **Workflow Example:**
  To link a single note to both a person and a company, create two separate n8n node executions:

  1. **First Node Execution:**
     - Operation: Create noteTarget
     - noteId: "your-note-uuid"
     - personId: "your-person-uuid"

  2. **Second Node Execution:**
     - Operation: Create noteTarget  
     - noteId: "your-note-uuid"
     - companyId: "your-company-uuid"


  ### Updating Records

  Updates require the record ID and any fields you want to modify:

  **Example - Update Person:**
  ```javascript
  {
    "personId": "123e4567-e89b-12d3-a456-426614174000",
    "updateFields": {
      "jobTitle": "Senior Software Engineer",
      "primaryEmail": "john.smith.senior@company.com"
    }
  }
  ```

  ### Getting Records

  #### Get Single Record
  Requires only the record ID:
  - **Person ID**: UUID of the person to retrieve
  - **Depth**: Level of related data to include (0, 1, or 2)

  #### Get Many Records
  Supports filtering, sorting, and pagination:
  - **Return All**: Whether to fetch all results or limit
  - **Limit**: Maximum records to return (1-60)
  - **Filter**: Conditions to filter results
  - **Order By**: Sorting criteria
  - **Depth**: Level of related data to include

  ## Understanding Field Types and Values

  ### Custom Properties
  Each resource can have custom fields specific to your workspace. The node dynamically loads available custom properties and shows the expected format.

  **Custom Property Types:**
  - **Text Fields**: Accept plain strings
  - **Select Fields**: Accept predefined values (use API format, not display labels)
  - **Multi-Select Fields**: Accept arrays of predefined values
  - **Date Fields**: Accept ISO 8601 formatted dates
  - **Boolean Fields**: Accept true/false
  - **Rating Fields**: Accept "RATING_1" through "RATING_5"


  ## Query Parameters

  ### Filtering
  Filter results using field conditions with comparators:

  **Format:** `field[comparator]:value,field2[comparator]:value2`

  **Available Comparators:**
  - `eq`: Equal to
  - `neq`: Not equal to  
  - `gt`: Greater than
  - `gte`: Greater than or equal
  - `lt`: Less than
  - `lte`: Less than or equal
  - `in`: In list (comma-separated values)
  - `startsWith`: Starts with text
  - `like`: Contains text (case-sensitive)
  - `ilike`: Contains text (case-insensitive)
  - `is`: For NULL/NOT_NULL values
  - `containsAny`: For array fields

  **Simple Field Examples:**
  ```
  score[gt]:5
  employees[gte]:50
  stage[in]:[DISCOVERY,PROPOSAL]
  createdAt[gte]:2024-01-01
  city[is]:NOT_NULL
  ```

  **Nested Field Examples:**
  For composite fields, use dot notation to access subfields:

  **People/Person Fields:**
  ```
  name.firstName[eq]:John
  name.lastName[eq]:Smith
  emails.primaryEmail[like]:@company.com
  emails.primaryEmail[is]:NOT_NULL
  phones.primaryPhoneNumber[startsWith]:+1
  phones.primaryPhoneCountryCode[eq]:US
  linkedinLink.primaryLinkUrl[like]:linkedin.com
  whatsapp.primaryPhoneNumber[startsWith]:+1
  ```

  **Company Fields:**
  ```
  name[eq]:Acme Corp
  domainName.primaryLinkUrl[eq]:acme.com
  address.addressCity[eq]:New York
  address.addressCountry[eq]:USA
  annualRecurringRevenue.amountMicros[gt]:1000000
  linkedinLink.primaryLinkUrl[like]:linkedin.com
  ```

  **Opportunity Fields:**
  ```
  name[eq]:Big Deal
  amount.amountMicros[gt]:500000
  amount.currencyCode[eq]:USD
  ```

  **Complex Filters with Conjunctions:**
  Use `and`, `or`, `not` to combine conditions:
  ```
  and(name.firstName[eq]:John,name.lastName[eq]:Smith)
  or(emails.primaryEmail[like]:@company.com,phones.primaryPhoneNumber[startsWith]:+1)
  not(emails.primaryEmail[is]:NULL)
  and(score[gt]:5,or(name.firstName[eq]:John,name.firstName[eq]:Jane))
  ```

  ### Sorting (Order By)
  Sort results by one or more fields:

  **Format:** `field1,field2[DIRECTION]`

  **Available Directions:**
  - `AscNullsFirst`: Ascending, nulls first (default)
  - `AscNullsLast`: Ascending, nulls last
  - `DescNullsFirst`: Descending, nulls first  
  - `DescNullsLast`: Descending, nulls last

  **Simple Field Examples:**
  ```
  createdAt[DescNullsLast]
  score[DescNullsFirst]
  position[AscNullsLast]
  ```

  **Nested Field Examples:**
  For composite fields, use dot notation to access subfields:

  **People/Person Sorting:**
  ```
  name.firstName[AscNullsFirst]
  name.lastName[DescNullsLast]
  emails.primaryEmail[AscNullsLast]
  phones.primaryPhoneNumber[DescNullsFirst]
  ```

  **Company Sorting:**
  ```
  name[AscNullsFirst]
  domainName.primaryLinkUrl[AscNullsLast]
  address.addressCity[DescNullsFirst]
  annualRecurringRevenue.amountMicros[DescNullsLast]
  ```

  **Multiple Field Sorting:**
  ```
  name.firstName,name.lastName[DescNullsFirst]
  score[DescNullsLast],name.firstName[AscNullsLast]
  createdAt[DescNullsFirst],name.firstName[AscNullsFirst]
  ```

  ### Depth Levels
  Control how much related data to include:

  - **Depth 0**: Only the primary object
  - **Depth 1**: Primary object + direct relationships (default)
  - **Depth 2**: Primary object + relationships + their relationships

  **Example:**
  - Depth 0: Just the person record
  - Depth 1: Person + their company info
  - Depth 2: Person + company + company's opportunities

  ## Triggers and Webhooks

  The Dalil AI Trigger node allows you to react to real-time changes in your Dalil AI workspace.

  ### Setting Up Triggers

  1. **Add Trigger Node**: Drag "Dalil AI Trigger" to your workflow
  2. **Configure Entity**: Choose which resource to monitor (Company, People, Opportunity, Task)
  3. **Configure Action**: Choose which events to listen for (Create, Update, Delete, All)
  4. **Save and Activate**: The webhook will be automatically registered

  ### Trigger Configuration

  **Entity Options:**
  - **Company**: Monitor company record changes
  - **People**: Monitor person record changes  
  - **Opportunity**: Monitor opportunity changes
  - **Task**: Monitor task changes

  **Action Options:**
  - **All (*)**: Any change to the entity
  - **Create**: New records created
  - **Update**: Existing records modified
  - **Delete**: Records removed

  ### Webhook Response Structure

  When a trigger fires, you receive a structured webhook payload:

  ```javascript
  [
    {
      "targetUrl": "https://your-n8n-instance.com/webhook/...",
      "eventName": "company.updated",
      "objectMetadata": {
        "id": "8913832e-825b-4374-a527-f9e3524ef3a9",
        "nameSingular": "company"
      },
      "workspaceId": "20202020-1c25-4d02-bf25-6aeccf7ea419",
      "webhookId": "85124f96-2698-4368-8805-c2755070c1c1",
      "eventDate": "2025-06-26T04:51:21.005Z",
      "record": {
        // Complete record data with all fields
        "id": "2f51e0c3-6ed4-4ec7-8ecf-05f0282154fe",
        "name": "Acme Corp",
        "industry": "Technology",
        // ... all other fields
      },
      "updatedFields": [
        "address",
        "industry"
      ]
    }
  ]
  ```

  ### Key Webhook Fields

  #### eventName
  Identifies the specific event that occurred:
  - Format: `{entity}.{action}`
  - Examples: `company.created`, `people.updated`, `opportunity.deleted`
  - **Use Case**: Filter webhook processing based on event type

  #### updatedFields  
  Array of field names that were changed (only for update events):
  - **Use Case**: Process only specific field changes, ignore others
  - **Example**: Only send email notifications when contact info changes

  #### record
  Complete record data after the change:
  - **Create Events**: The newly created record
  - **Update Events**: Record with latest values  
  - **Delete Events**: The record before deletion

  #### eventDate
  ISO timestamp of when the event occurred:
  - **Use Case**: Order events, detect delayed processing

  ### Using Webhook Data

  **Example - Process Only Email Changes:**
  ```javascript
  // In your workflow's JavaScript code
  if (items[0].json.eventName === 'people.updated' && 
      items[0].json.updatedFields.includes('primaryEmail')) {
    // Send notification about email change
    return items;
  } else {
    // Skip processing
    return [];
  }
  ```

  **Example - Route by Event Type:**
  ```javascript
  const eventName = items[0].json.eventName;
  const [entity, action] = eventName.split('.');

  if (entity === 'company' && action === 'created') {
    // Handle new company
  } else if (entity === 'opportunity' && action === 'updated') {
    // Handle opportunity changes
  }
  ```

  ## Troubleshooting

  ### Common Issues

  #### Authentication Errors
  - **Symptom**: "Unauthorized" or credential errors
  - **Solution**: Verify API key

  #### Field Value Errors  
  - **Symptom**: "Invalid value" errors for select fields
  - **Solution**: Use API format values, not display labels
  - **Example**: Use "IN_PROGRESS" not "In Progress"

  #### Date Format Errors
  - **Symptom**: Date validation failures  
  - **Solution**: Use ISO 8601 format: "2024-01-15T10:30:00Z"
  - **Tools**: Use JavaScript `new Date().toISOString()`

  #### Relationship Errors
  - **Symptom**: "Record not found" when creating relations
  - **Solution**: Ensure referenced IDs exist and are valid UUIDs
  - **Check**: Verify record existence before creating relations

  #### Filter Syntax Errors
  - **Symptom**: No results or filter errors
  - **Solution**: Check comparator syntax and field names
  - **Example**: `name[eq]:value` not `name=value`


  ---

  This guide provides comprehensive coverage of the Dalil AI n8n node. For specific use cases or advanced configurations, refer to the API documentation or reach out to the support team.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of customer relationship management tasks by allowing integration with the Dalil AI CRM platform.","capabilities":["Create, Update, Delete, Get, Get Many operations for People","Create, Update, Delete, Get, Get Many operations for Company","Create, Update, Delete, Get, Get Many operations for Opportunity","Create, Update, Delete, Get, Get Many operations for Task","Create, Update, Delete, Get, Get Many operations for Note","Create, Update, Delete, Get, Get Many operations for Task Target Relations","Create, Update, Delete, Get, Get Many operations for Note Target Relations","Create, Update, Delete, Get, Get Many operations for Pipeline","Real-time webhook notifications for data changes","Many-to-many relationship management between tasks and records"],"authentication":"API Key required","commonUseCases":["Automating customer contact management and lead tracking","Managing sales pipeline and opportunity tracking","Automating task assignments and follow-ups","Storing and linking meeting notes to customers and deals","Creating custom workflow processes and support tickets"],"limitations":[],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook","n8n-nodes-crm"]}


node_type: n8n-nodes-google-search-console.googleSearchConsole
package_name: n8n-nodes-google-search-console
display_name: Google Search Console
description: Connect to Google Search Console API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: mrazari
author_github_url: https://github.com/mrazari/
npm_package_name: n8n-nodes-google-search-console
npm_version: 1.0.40
community_fetched_at: 2026-04-16T09:43:36.345Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "site",
      "options": [
        {
          "name": "Site",
          "value": "site"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSites",
      "options": [
        {
          "name": "Get Sites",
          "value": "getSites",
          "action": "List verified sites"
        },
        {
          "name": "Get Page Insights",
          "value": "getPageInsights",
          "action": "Query search analytics"
        },
        {
          "name": "Inspect URL",
          "value": "inspectUrl",
          "action": "Url inspection index status"
        },
        {
          "name": "Compare Page Insights",
          "value": "comparePageInsights",
          "action": "Compare search analytics between two date ranges"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Sites",
      "value": "getSites",
      "action": "List verified sites",
      "resource": "site"
    },
    {
      "name": "Get Page Insights",
      "value": "getPageInsights",
      "action": "Query search analytics",
      "resource": "site"
    },
    {
      "name": "Inspect URL",
      "value": "inspectUrl",
      "action": "Url inspection index status",
      "resource": "site"
    },
    {
      "name": "Compare Page Insights",
      "value": "comparePageInsights",
      "action": "Compare search analytics between two date ranges",
      "resource": "site"
    }
  ]

npm_readme:
  # Google Search Console - n8n Custom Node

  This custom node for n8n allows you to connect to the official Google Search Console API and retrieve information about registered sites and their page performance.

  ## Features

  🔹 Fetch a list of sites registered under your Google Search Console account

  🔹 Retrieve performance insights for specific pages within a defined date range (clicks, impressions, CTR, and position)

  ## Operations

  ### 1. Get Sites

  Retrieves the list of sites registered in your Google Search Console account.

  ### 2. Get Page Insights

  Analyzes page performance based on the following parameters:

  * **Site URL**: Exact URL or domain property
  * **Start/End Date**: Define the time period
  * **Search Type**: Web / Image / Video / News
  * **Row Limit**: Number of rows to return
  * **Dimensions**: Choose from Page, Query, Country, or Device

  ## Requirements

  You must configure the following credentials to use this node:

  * **GoogleSearchConsoleOAuth2Api**

  Make sure to set up the credential using OAuth2 with the appropriate scopes for Google Search Console access.

  ## Notes

  * The `Site URL` must match the format of the property in your GSC account:

    * For domain property: `sc-domain:example.com`
    * For URL-prefix property: `https://www.example.com/`

  * An incorrect format or unregistered site will result in an "Invalid URL" error.

  ## Node Icon

  This node uses a simplified version of the official Google Search Console icon.

  ## Author

  Developed by [mrazari](https://mrazari.com), member of the [n8nir.ir](https://n8nir.ir) community — specializing in custom n8n nodes with TypeScript and official API integrations.

  ---

  Feel free to reach out for improvements, suggestions, or new feature requests.

ai_documentation_summary:
  {"purpose":"Connects to the Google Search Console API to retrieve registered sites and analyze page performance metrics within a specified date range.","capabilities":["Fetch list of sites registered under a Google Search Console account","Retrieve page performance insights including clicks, impressions, CTR, and position","Filter performance data by site URL, date range, search type (Web/Image/Video/News), and dimensions (Page/Query/Country/Device)","Limit returned results using row limit parameter"],"authentication":"OAuth2 (GoogleSearchConsoleOAuth2Api credential required)","commonUseCases":["Monitor website search performance over time","Analyze user engagement metrics for specific pages","Track keyword rankings and click-through rates","Compare performance across different devices or countries"],"limitations":["Site URL must match the exact format of the property in the GSC account (e.g., 'sc-domain:example.com' or 'https://www.example.com/')","Incorrect URL format or unregistered sites will result in 'Invalid URL' errors","Relies on official Google Search Console API availability and rate limits"],"relatedNodes":["Google Search Console","Google Sheets","HTTP Request"]}


node_type: @waapi/n8n-nodes-waalaxy.waalaxy
package_name: @waapi/n8n-nodes-waalaxy
display_name: Waalaxy
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

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

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

operations:
  [
    {
      "name": "Import",
      "value": "importProspect",
      "action": "Import",
      "routing": {
        "send": {
          "type": "body",
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "prospects/addProspectFromIntegration",
          "method": "POST",
          "ignoreHttpStatusErrors": true
        }
      },
      "description": "Import a prospect in the Waalaxy CRM",
      "resource": "prospect"
    }
  ]

npm_readme:
  # n8n-nodes-waalaxy

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

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

  ## Table of Contents

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

  ## Features

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

  ## Installation

  ### Community Nodes (Recommended)

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

  ### Manual Installation

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

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

  Then restart your n8n instance.

  ## Credentials

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

  ### Setting Up Credentials

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

  ### Obtaining Your Access Token

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

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

  ## Operations

  ### Prospect

  #### Add to List and Campaign

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

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

  **Prospect Fields:**

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

  ## Usage Examples

  ### Example 1: Bulk Import from Google Sheets

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

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

  ### Example 2: Webhook Integration

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

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

  ### Example 3: CRM Integration

  Sync prospects from your CRM to Waalaxy campaigns:

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

  ## Development

  ### Prerequisites

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

  ### Setup

  1. Clone the repository:

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

  2. Install dependencies:

  ```bash
  npm install
  ```

  3. Build the project:

  ```bash
  npm run build
  ```

  ### Available Scripts

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

  ### Testing Locally

  To test the node locally with n8n:

  1. Build the node:

  ```bash
  npm run build
  ```

  2. Link the node to your global n8n installation:

  ```bash
  npm link
  ```

  3. In your n8n directory, link the package:

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

  4. Start n8n:

  ```bash
  n8n start
  ```

  Alternatively, use the development mode:

  ```bash
  npm run dev
  ```

  ### Project Structure

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

  ## Support

  If you encounter any issues or have questions:

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

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


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

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

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

npm_readme:
  # n8n-nodes-simplified

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

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

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

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

  ---

  ## Installation

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

  Option 2: Install the node from npm:

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

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

  ---

  ## Operations

  ### 1. Get Social Accounts

  Retrieve all social media accounts connected to your Simplified workspace.

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

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

  ---

  ### 2. Create Post

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

  **Input Parameters**:

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

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

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

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

  ---

  ## Credentials

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

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

  ---

  ## Compatibility

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

  ---

  ## Usage

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

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

  ---

  ## Resources

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

  ---

  ## Version history

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

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


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

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

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

npm_readme:
  # n8n-nodes-payfunnels

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

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

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

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

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

  ## Installation

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

  ## Operations

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

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

  ### Subscription
  - List Subscriptions
  - Cancel Subscription

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

  ## Credentials

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

  ## Resources

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

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


node_type: n8n-nodes-greip.greip
package_name: n8n-nodes-greip
display_name: Greip
description: Get fraud prevention, threat intelligence, and risk scoring data from Greip.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: greip
author_github_url: https://github.com/Greipio/
npm_package_name: n8n-nodes-greip
npm_version: 1.0.7
community_fetched_at: 2026-04-16T09:43:36.349Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "dataLookup",
      "options": [
        {
          "name": "Data Lookup",
          "value": "dataLookup"
        },
        {
          "name": "Risk Scoring",
          "value": "riskScoring"
        }
      ],
      "displayName": "Resources",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "ipLookup",
      "options": [
        {
          "name": "ASN Lookup",
          "value": "asnLookup",
          "action": "ASN Lookup",
          "description": "Lookup Autonomous System Number (ASN) data"
        },
        {
          "name": "BIN Lookup",
          "value": "binLookup",
          "action": "BIN Lookup",
          "description": "Retrieve comprehensive information associated with a debit or credit card"
        },
        {
          "name": "Country Lookup",
          "value": "countryLookup",
          "action": "Country lookup",
          "description": "Retrieve detailed information about a given country"
        },
        {
          "name": "Domain Lookup",
          "value": "domainLookup",
          "action": "Domain lookup",
          "description": "Lookup any domain name and retrieve associated data and risk evaluation metrics"
        },
        {
          "name": "IBAN Lookup",
          "value": "ibanLookup",
          "action": "IBAN Lookup",
          "description": "Validate a given IBAN and obtain essential information about the issuing country"
        },
        {
          "name": "IP Lookup",
          "value": "ipLookup",
          "action": "IP Lookup",
          "description": "Retrieve comprehensive information about a given IP address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dataLookup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "ipThreats",
      "options": [
        {
          "name": "Email Scoring",
          "value": "emailScoring",
          "action": "Email scoring",
          "description": "Score any email address and retrieve its risk evaluation metrics"
        },
        {
          "name": "IP Scoring",
          "value": "ipThreats",
          "action": "IP Scoring",
          "description": "Get threat intelligence and risk scoring for an IP address"
        },
        {
          "name": "Payment Fraud Detection",
          "value": "paymentFraudDetection",
          "action": "Payment fraud detection",
          "description": "Detect and score payment fraud risk for a transaction",
          "displayOptions": {
            "show": {
              "resource": [
                "riskScoring"
              ]
            }
          }
        },
        {
          "name": "Phone Scoring",
          "value": "phoneScoring",
          "action": "Phone number scoring",
          "description": "Score any phone number and retrieve its risk evaluation metrics"
        },
        {
          "name": "Profanity Detection",
          "value": "profanityDetection",
          "action": "Profanity detection",
          "description": "Detect offensive or inappropriate language in a given text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "riskScoring"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "ASN Lookup",
      "value": "asnLookup",
      "action": "ASN Lookup",
      "description": "Lookup Autonomous System Number (ASN) data",
      "resource": "dataLookup"
    },
    {
      "name": "BIN Lookup",
      "value": "binLookup",
      "action": "BIN Lookup",
      "description": "Retrieve comprehensive information associated with a debit or credit card",
      "resource": "dataLookup"
    },
    {
      "name": "Country Lookup",
      "value": "countryLookup",
      "action": "Country lookup",
      "description": "Retrieve detailed information about a given country",
      "resource": "dataLookup"
    },
    {
      "name": "Domain Lookup",
      "value": "domainLookup",
      "action": "Domain lookup",
      "description": "Lookup any domain name and retrieve associated data and risk evaluation metrics",
      "resource": "dataLookup"
    },
    {
      "name": "IBAN Lookup",
      "value": "ibanLookup",
      "action": "IBAN Lookup",
      "description": "Validate a given IBAN and obtain essential information about the issuing country",
      "resource": "dataLookup"
    },
    {
      "name": "IP Lookup",
      "value": "ipLookup",
      "action": "IP Lookup",
      "description": "Retrieve comprehensive information about a given IP address",
      "resource": "dataLookup"
    },
    {
      "name": "Email Scoring",
      "value": "emailScoring",
      "action": "Email scoring",
      "description": "Score any email address and retrieve its risk evaluation metrics",
      "resource": "riskScoring"
    },
    {
      "name": "IP Scoring",
      "value": "ipThreats",
      "action": "IP Scoring",
      "description": "Get threat intelligence and risk scoring for an IP address",
      "resource": "riskScoring"
    },
    {
      "name": "Payment Fraud Detection",
      "value": "paymentFraudDetection",
      "action": "Payment fraud detection",
      "description": "Detect and score payment fraud risk for a transaction",
      "displayOptions": {
        "show": {
          "resource": [
            "riskScoring"
          ]
        }
      },
      "resource": "riskScoring"
    },
    {
      "name": "Phone Scoring",
      "value": "phoneScoring",
      "action": "Phone number scoring",
      "description": "Score any phone number and retrieve its risk evaluation metrics",
      "resource": "riskScoring"
    },
    {
      "name": "Profanity Detection",
      "value": "profanityDetection",
      "action": "Profanity detection",
      "description": "Detect offensive or inappropriate language in a given text",
      "resource": "riskScoring"
    }
  ]

npm_readme:
  # n8n Nodes - Greip Integration

  This is an n8n community node that integrates with the Greip API, allowing users to interact with Greip's services directly from n8n workflows.

  [Greip](https://greip.io) is a platform that provides various services for fraud detection, proxy detection, content moderation, and more.

  ## Table of contents

  ## Installation (self-hosted)

  To install the Greip community node directly from the n8n Editor UI:

  1. Open your n8n instance.
  2. Go to Settings > Community Nodes
  3. Select Install.
  4. Enter the npm package name: n8n-nodes-greip to install the latest version.
  5. Agree to the risks of using community nodes and select Install.
  6. The node is now available to use in your workflows.

  ## Installation (n8n Cloud)

  If you're using n8n Cloud, installing community nodes is even simpler:

  1. Go to the Canvas and open the nodes panel.
  2. Search for Greip in the community node registry.
  3. Click Install node to add the Greip node to your instance.

  > On n8n cloud users can choose not to show verified community nodes. Instance owners can toggle this in the Cloud Admin Panel. To install the Greip node, make sure the installation of verified community nodes is enabled.

  ## Operations

  This node supports a wide range of Greip operations, organized by resource type:

  ### Data Lookup

  - ASN Lookup: Retrieve Autonomous System Number information and prefixes by AS number.
  - BIN Lookup: Get Bank Identification Number details.
  - IP Lookup: Retrieve information about an IP address, including location, ASN, security threats, and more.
  - Country Lookup: Get details about a country using its ISO code.
  - Domain Lookup: Fetch information about a domain, including its registration details and associated threats.
  - IBAN Lookup: Retrieve International Bank Account Number information.

  ### Risk Scoring

  - Email Scoring: Assess the risk associated with an email address.
  - IP Scoring: Evaluate the risk level of an IP address.
  - Phone Scoring: Determine the risk score of a phone number.
  - Payment Fraud Detection: Analyze payment details for potential fraud.
  - Profanity Detection: Check text for offensive language and profanity.

  ## AI Tools

  All Greip node operations can be combined with n8n's AI tools to create powerful workflows. For example, you can use AI to generate personalized marketing messages and then use the Greip Email Scoring operation to ensure the email addresses are valid and low-risk.

  ## Credentials

  To use the Greip node, you need to set up your Greip API credentials in n8n:

  1. Go to Settings > Credentials in n8n.
  2. Click on New Credential and select Greip API from the list.
  3. Enter your Greip API Key, which you can obtain from your Greip account dashboard.
  4. Save the credentials.

  ## Compatibility

  This node has been tested with n8n version `1.112.3`.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Greip API Documentation](https://docs.greip.io/knowledge-base/integrations/n8n)

  ## Troubleshooting

  ### Common issues

  1. Authentication errors
     - Ensure that your Greip API Key is correct and has the necessary permissions.
     - Check for any typos or formatting issues in the API Key.
  2. Resource Not Found
     - Verify that the resource you are trying to access exists and that you have the correct identifiers.
     - Ensure you have access to the resource based on your Greip account plan.
  3. Operation failures
     - Double-check the parameters you are passing to the operation.
     - Verify resource limits (memory, timeout)

  ### Getting help

  If you encounter any issues or need assistance with the Greip node, consider the following options:

  1. Check our [N8N integration guide](https://docs.greip.io/knowledge-base/integrations/n8n)
  2. Review the [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in the [GitHub repository](https://github.com/Greipio/n8n-nodes-greip)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Greip API to perform fraud detection, threat intelligence checks, and risk scoring on various data types.","capabilities":["ASN Lookup","BIN Lookup","IP Lookup","Country Lookup","Domain Lookup","IBAN Lookup","Email Scoring","IP Scoring","Phone Scoring","Payment Fraud Detection"],"authentication":"API Key required","commonUseCases":["Fraud prevention workflows","Threat intelligence gathering","Risk scoring for emails, IPs, and phone numbers","Content moderation using profanity detection"],"limitations":["Community node (requires installation in n8n Editor UI or n8n Cloud)","Requires active Greip API account and subscription","Resource access depends on Greip account plan permissions"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


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

updated_at: 2026-04-16 09:43:36
author_name: demianheygen
author_github_url: https://github.com/heygen-com/n8n-integration-heygen-node.git
npm_package_name: @heygenofficial/n8n-nodes-heygen-official
npm_version: 0.1.8
community_fetched_at: 2026-04-16T09:43:36.350Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Local development

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

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

  # Lint

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

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

  # Publish

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

  ## More information

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

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


node_type: n8n-nodes-kargo-entegrator.kargoEntegrator
package_name: n8n-nodes-kargo-entegrator
display_name: Kargo Entegratör
description: Interact with Kargo Entegratör API for shipment management
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: gurmesoftcom
author_github_url: https://github.com/gurmesoft/
npm_package_name: n8n-nodes-kargo-entegrator
npm_version: 0.1.4
community_fetched_at: 2026-04-16T09:43:36.351Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "shipment",
      "options": [
        {
          "name": "Cargo Integration",
          "value": "cargo",
          "description": "List cargo company integrations linked to your account. <a href=\"https://dev.kargoentegrator.com/api/integrations/kargo-listeleme\">API Docs</a>."
        },
        {
          "name": "Return",
          "value": "return",
          "description": "Create and manage return shipments. <a href=\"https://dev.kargoentegrator.com/api/returneds/olusturma\">API Docs</a>."
        },
        {
          "name": "Setting",
          "value": "settings",
          "description": "Get shipment and return settings for your account"
        },
        {
          "name": "Shipment",
          "value": "shipment",
          "description": "Create, list, and manage shipments. <a href=\"https://dev.kargoentegrator.com/api/shipments/olusturma\">API Docs</a>."
        },
        {
          "name": "Warehouse",
          "value": "warehouse",
          "description": "List warehouses linked to your account. <a href=\"https://dev.kargoentegrator.com/api/settings/depo-listeleme\">API Docs</a>."
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a shipment",
          "description": "Create a new shipment. <a href=\"https://dev.kargoentegrator.com/api/shipments/olusturma\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a shipment",
          "description": "Get shipment details by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many shipments",
          "description": "Get many shipments with pagination"
        },
        {
          "name": "Print PDF",
          "value": "printPdf",
          "action": "Print shipment PDF",
          "description": "Download label/barcode PDF for one or more shipments. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>."
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "shipment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a return shipment",
          "description": "Create a new return shipment. <a href=\"https://dev.kargoentegrator.com/api/returneds/olusturma\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a return shipment",
          "description": "Get a return shipment by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many return shipments",
          "description": "List many return shipments linked to your account. <a href=\"https://dev.kargoentegrator.com/api/returneds/listeleme\">API Docs</a>."
        },
        {
          "name": "Print Return PDF",
          "value": "printReturnedPdf",
          "action": "Print return PDF",
          "description": "Generate PDF label for a return shipment. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>."
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "return"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cargo integrations",
          "description": "List many cargo company integrations linked to your account. <a href=\"https://dev.kargoentegrator.com/api/integrations/kargo-listeleme\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a cargo integration",
          "description": "Get a specific cargo company integration by ID"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "cargo"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many warehouses",
          "description": "List many warehouses linked to your account. Use this to get warehouse_id values for shipment creation. <a href=\"https://dev.kargoentegrator.com/api/settings/depo-listeleme\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a warehouse",
          "description": "Get a specific warehouse by ID"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "warehouse"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getShipmentSettings",
      "options": [
        {
          "name": "Get Shipment Settings",
          "value": "getShipmentSettings",
          "action": "Get shipment settings",
          "description": "Get shipment configuration settings for your account"
        },
        {
          "name": "Get Return Settings",
          "value": "getReturnSettings",
          "action": "Get return settings",
          "description": "Get return shipment configuration settings for your account"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "settings"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a shipment",
      "description": "Create a new shipment. <a href=\"https://dev.kargoentegrator.com/api/shipments/olusturma\">API Docs</a>.",
      "resource": "shipment"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a shipment",
      "description": "Get shipment details by ID",
      "resource": "shipment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many shipments",
      "description": "Get many shipments with pagination",
      "resource": "shipment"
    },
    {
      "name": "Print PDF",
      "value": "printPdf",
      "action": "Print shipment PDF",
      "description": "Download label/barcode PDF for one or more shipments. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>.",
      "resource": "shipment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a return shipment",
      "description": "Create a new return shipment. <a href=\"https://dev.kargoentegrator.com/api/returneds/olusturma\">API Docs</a>.",
      "resource": "return"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a return shipment",
      "description": "Get a return shipment by ID",
      "resource": "return"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many return shipments",
      "description": "List many return shipments linked to your account. <a href=\"https://dev.kargoentegrator.com/api/returneds/listeleme\">API Docs</a>.",
      "resource": "return"
    },
    {
      "name": "Print Return PDF",
      "value": "printReturnedPdf",
      "action": "Print return PDF",
      "description": "Generate PDF label for a return shipment. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>.",
      "resource": "return"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cargo integrations",
      "description": "List many cargo company integrations linked to your account. <a href=\"https://dev.kargoentegrator.com/api/integrations/kargo-listeleme\">API Docs</a>.",
      "resource": "cargo"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a cargo integration",
      "description": "Get a specific cargo company integration by ID",
      "resource": "cargo"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many warehouses",
      "description": "List many warehouses linked to your account. Use this to get warehouse_id values for shipment creation. <a href=\"https://dev.kargoentegrator.com/api/settings/depo-listeleme\">API Docs</a>.",
      "resource": "warehouse"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a warehouse",
      "description": "Get a specific warehouse by ID",
      "resource": "warehouse"
    },
    {
      "name": "Get Shipment Settings",
      "value": "getShipmentSettings",
      "action": "Get shipment settings",
      "description": "Get shipment configuration settings for your account",
      "resource": "settings"
    },
    {
      "name": "Get Return Settings",
      "value": "getReturnSettings",
      "action": "Get return settings",
      "description": "Get return shipment configuration settings for your account",
      "resource": "settings"
    }
  ]

npm_readme:
  # n8n-nodes-kargo-entegrator

  This is an n8n community node. It lets you use Kargo Entegratör API in your n8n workflows.

  Kargo Entegratör is a Turkish cargo integration platform that allows you to manage shipments across multiple cargo companies from a single interface.

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

  ## Table of Contents

  - [Quick Start](#quick-start)
  - [Development Setup](#development-setup)
  - [Docker Environment](#docker-environment)
  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Scripts](#scripts)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)
  - [Version History](#version-history)
  - [License](#license)

  ## Quick Start

  ### Prerequisites
  - Node.js >= 20.15
  - npm or yarn
  - Docker (optional, for containerized development)

  ### Local Development

  1. **Clone and Install**
     ```bash
     git clone https://github.com/gurmesoft/n8n-nodes-kargo-entegrator.git
     cd n8n-nodes-kargo-entegrator
     npm install
     ```

  2. **Build the Project**
     ```bash
     npm run build
     ```

  3. **Start Development**
     ```bash
     npm run dev
     ```

  ### Docker Development (Recommended)

  1. **Quick Start with Docker**
     ```bash
     # Build and start development environment
     npm run dev:docker
     
     # Access N8N at http://localhost:5678
     # Username: admin
     # Password: admin123
     ```

  2. **View Logs**
     ```bash
     npm run dev:docker:logs
     ```

  3. **Stop Environment**
     ```bash
     npm run dev:docker:stop
     ```

  ## Development Setup

  ### Environment Requirements
  - **Node.js**: >= 20.15
  - **TypeScript**: ^5.8.2
  - **n8n-workflow**: Latest (peer dependency)

  ### Project Structure
  ```
  n8n-nodes-kargo-entegrator/
  ├── credentials/           # API credentials configuration
  ├── nodes/                # Node implementations
  │   └── KargoEntegrator/
  │       ├── *.node.ts     # Node logic
  │       ├── actions/      # Node actions
  │       └── resources/    # Node resources
  ├── dist/                 # Built files (generated)
  ├── docker-compose*.yml   # Docker configurations
  └── package.json          # Project configuration
  ```

  ### Development Workflow

  1. **Make Changes**: Edit TypeScript files in `nodes/` or `credentials/`
  2. **Build**: Run `npm run build` to compile TypeScript
  3. **Test**: Use Docker environment or local N8N instance
  4. **Format**: Run `npm run format` to format code
  5. **Lint**: Run `npm run lint` to check code quality

  ## Docker Environment

  Three Docker configurations are available:

  ### 1. Development Environment (Recommended)
  ```bash
  npm run dev:docker
  # or
  docker-compose -f docker-compose.dev.yml up -d
  ```
  - **Services**: N8N + PostgreSQL + Node development container
  - **Features**: Hot reload, debugging, persistent data
  - **Access**: http://localhost:5678

  ### 2. Simple Environment
  ```bash
  docker-compose -f docker-compose.simple.yml up -d
  ```
  - **Services**: N8N only (SQLite database)
  - **Use Case**: Quick testing
  - **Access**: http://localhost:5678

  ### 3. Production Environment
  ```bash
  docker-compose up -d
  ```
  - **Services**: N8N + PostgreSQL
  - **Use Case**: Production deployment
  - **Access**: http://localhost:5678

  ### Docker Commands
  ```bash
  # Start development environment
  npm run dev:docker

  # View logs
  npm run dev:docker:logs

  # Restart services
  npm run dev:docker:restart

  # Stop environment
  npm run dev:docker:stop

  # Build and restart with live reload
  npm run dev:live
  ```

  ### Access Information
  - **N8N Web Interface**: http://localhost:5678
  - **Username**: admin
  - **Password**: admin123
  - **PostgreSQL**: localhost:5432 (production) / localhost:5433 (development)
    - User: n8n
    - Password: n8n123
    - Database: n8n

  ## Scripts

  | Script | Description |
  |--------|-------------|
  | `npm run build` | Build TypeScript and copy icons |
  | `npm run dev` | Watch TypeScript files for changes |
  | `npm run dev:live` | Development with auto-restart |
  | `npm run dev:docker` | Start Docker development environment |
  | `npm run dev:docker:logs` | View Docker logs |
  | `npm run dev:docker:stop` | Stop Docker environment |
  | `npm run dev:docker:restart` | Restart Docker services |
  | `npm run format` | Format code with Prettier |
  | `npm run lint` | Lint code with ESLint |
  | `npm run lintfix` | Fix linting issues automatically |  

  ## 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-kargo-entegrator`
  4. Agree to the risks of using community nodes
  5. Select **Install**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-kargo-entegrator
  ```

  ## Operations

  ### Shipment
  - **Create**: Create a new shipment
  - **Get**: Retrieve shipment details
  - **Create Return**: Create a return shipment

  ### Customer
  - **Update**: Update customer information

  ### Cargo
  - **Get All**: Get all available cargo companies
  - **Get**: Get specific cargo company details

  ## Credentials

  To use this node, you need:

  1. Sign up for an account at [https://app.kargoentegrator.com](https://app.kargoentegrator.com)
  2. Get your API key from the dashboard
  3. Configure the credentials in n8n:
     - **API Key**: Your Kargo Entegratör API key
     - **Base URL**: https://app.kargoentegrator.com/api (default)

  ## Compatibility

  Tested against n8n version 1.0+.

  ## Usage

  ### Creating a Shipment

  1. Select "Shipment" as the resource
  2. Choose "Create" as the operation
  3. Fill in the required fields:
     - Receiver name, phone, and address
     - City and district
     - Cargo company ID
     - Package details (weight, count, description)

  ### Managing Returns

  Use the "Create Return" operation to create return shipments with the same interface as regular shipments.

  ### Getting Cargo Companies

  Use the "Cargo" resource to get information about available cargo companies and their IDs for use in shipment creation.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Kargo Entegratör API Documentation](https://documenter.getpostman.com/view/25047990/2sAY4vg2RR)
  * [Kargo Entegratör Website](https://kargoentegrator.com/)

  ## Version History

  ### 0.1.0
  - Initial release
  - Support for shipment creation, retrieval, and PDF generation
  - Support for return shipment management
  - Cargo company and warehouse information retrieval
  - Webhook trigger for shipment status changes
  - System settings access

  ## Contributing

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

  ## Support

  For support, please contact [destek@kargoentegrator.com](mailto:destek@kargoentegrator.com) or visit our [website](https://kargoentegrator.com/).

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation for managing shipments across multiple Turkish cargo companies via the Kargo Entegratör API.","capabilities":["Create new shipments","Retrieve shipment details","Create return shipments","Update customer information","List all available cargo companies","Retrieve specific cargo company details"],"authentication":"API key required","commonUseCases":["Automating cross-company logistics tracking","Managing return shipments for e-commerce","Centralizing cargo company data retrieval","Integrating Turkish shipping services into n8n workflows"],"limitations":["Community node (requires manual installation)","Requires separate account at Kargo Entegratör","Requires Node.js >= 20.15 for development"],"relatedNodes":["HTTP Request","Credentials","Shipment"]}


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

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

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

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

  # n8n-nodes-serpapi

  This repo contains SerpApi's community node for n8n.

  ## Installation

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

  ## Credentials

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

  https://serpapi.com/users/sign_up

  Once registered, you can find your API key here:

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

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

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

  ## Usage

  Add SerpApi to a workflow.

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

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

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

  ## API Resources / Search Engines

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

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

  ## Related Resources

  SerpApi's complete API documentation is available here:

  https://serpapi.com/search-api

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

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

  ## License

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

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


node_type: n8n-nodes-visualping.visualpingTrigger
package_name: n8n-nodes-visualping
display_name: Visualping Trigger
description: Triggers workflow on Visualping job events
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: ccomparon
author_github_url: https://github.com/webmonitoring/
npm_package_name: n8n-nodes-visualping
npm_version: 1.0.2
community_fetched_at: 2026-04-16T09:43:36.353Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-visualping

  This is an n8n community node that integrates [Visualping](https://visualping.io) with your n8n workflows, allowing you to trigger workflows when website changes are detected.

  [Visualping](https://visualping.io) is a web monitoring service that tracks changes on websites and sends notifications, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform that allows you to connect various services.

  ## Table of contents

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

  ## Installation

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

  ## Operations

  This node provides a trigger operation for Visualping.

  ### Triggers
  - **Visualping Trigger**: Automatically starts an n8n workflow when a Visualping job detects changes on a monitored website
    - Configure webhook notifications for specific Visualping jobs
    - Receive change detection events in real-time
    - Supports job selection from list or by ID

  ## Credentials

  To use this node, you need to authenticate with your Visualping account:

  1. **Email and Password Authentication**
     - Configure your Visualping account credentials in the n8n credentials section under `Visualping Credentials API`
     - Provide your Visualping account email and password

  ## Compatibility

  This node has been tested with n8n version 1.57.0 and requires Node.js version 20.15 or higher.

  ## Usage

  1. **Create a Visualping Job**: Set up a new monitoring job on [Visualping](https://visualping.io) to track changes on your target website.
  2. **Set up a workflow**: Create a new workflow in n8n.
  3. **Add the Visualping Trigger node**: Insert the Visualping Trigger node into your workflow.
  4. **Configure credentials**: Enter your Visualping account email and password.
  5. **Select a job**: Choose the Visualping job you want to monitor for changes.
  6. **Configure the trigger**: The node will automatically set up webhook notifications for the selected job.
  7. **Execute the workflow**: The workflow will trigger whenever Visualping detects changes on the monitored website.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Visualping API Documentation](https://api.visualping.io/doc.html)
  - [Visualping Authentication Guide](https://api.visualping.io/doc.html#section/Authentication)

  ## Version history

  Track changes and updates to the node here.

  ## Troubleshooting

  ### Common issues

  1. **Authentication errors**
     - Verify your Visualping email and password are correct
     - Ensure your Visualping account is active

  2. **Job not found**
     - Verify the job ID format (should be numeric)
     - Check if the job exists in your Visualping account
     - Ensure you have access to the job

  3. **Webhook configuration issues**
     - Check that your n8n instance is accessible from the internet
     - Verify the webhook URL is correctly configured
     - Review Visualping job settings for webhook notifications

  ### Getting help

  If you encounter issues:
  1. Check the [Visualping API documentation](https://api.visualping.io/doc.html)
  2. Review the [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in the [GitHub repository](https://github.com/webmonitoring/n8n-nodes-visualping)

ai_documentation_summary:
  {"purpose":"Triggers an n8n workflow automatically when Visualping detects changes on a monitored website.","capabilities":["Starts n8n workflow on Visualping job events","Receives change detection events in real-time","Supports job selection by ID or from a list","Configures webhook notifications for specific Visualping jobs"],"authentication":"Email and Password","commonUseCases":["Website change monitoring","Real-time alerts for content updates","Automated responses to site modifications"],"limitations":["Requires n8n version 1.57.0 or higher","Requires Node.js version 20.15 or higher","Requires active Visualping account with access to the monitored job"],"relatedNodes":["n8n-nodes-visualping.visualpingJob","n8n-nodes-visualping.visualpingJobList","n8n-nodes-visualping.visualpingJobStatus"]}


node_type: @docuseal/n8n-nodes-docuseal.docusealTrigger
package_name: @docuseal/n8n-nodes-docuseal
display_name: DocuSeal Trigger
description: Handle DocuSeal events via webhooks
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: petem
author_github_url: https://github.com/docusealco/n8n-nodes-docuseal.git
npm_package_name: @docuseal/n8n-nodes-docuseal
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:36.354Z
ai_summary_generated_at: 2026-03-25 22:47:20
npm_readme:
  # n8n-nodes-docuseal

  This is an **n8n community node** that allows you to integrate [DocuSeal](https://www.docuseal.com) with your n8n workflows.

  [DocuSeal](https://www.docuseal.com) is a modern document signing platform that lets you securely collect legally binding electronic signatures online. You can create templates, send signature requests, and automate your signing process with ease.

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

  ## Table of Contents

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

  ## Installation

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

  ### Community Nodes (Recommended)

  For n8n cloud or instances with UI access:

  1. Go to **Settings → Community Nodes** in your n8n dashboard.
  2. Click **Install**.
  3. Enter `@docuseal/n8n-nodes-docuseal` in the **Enter npm package name** field.
  4. Accept the [community node usage risks](https://docs.n8n.io/integrations/community-nodes/risks/).
  5. Click **Install** to complete setup.

  ### npm Installation

  To install manually in your n8n root directory:

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

  ### Docker Installation

  For Docker users, add the package to your setup using environment variables:

  **docker-compose.yml:**
  ```yaml
  services:
    n8n:
      image: docker.n8n.io/n8nio/n8n
      environment:
        - N8N_COMMUNITY_PACKAGES=@docuseal/n8n-nodes-docuseal
      ports:
        - "5678:5678"
      volumes:
        - ~/.n8n:/home/node/.n8n
  ```

  **Docker run command:**
  ```bash
  docker run -it --rm \
    --name n8n \
    -p 5678:5678 \
    -e N8N_COMMUNITY_PACKAGES="@docuseal/n8n-nodes-docuseal" \
    -v ~/.n8n:/home/node/.n8n \
    docker.n8n.io/n8nio/n8n
  ```

  ## Operations

  This package includes two nodes:

  ### DocuSeal Node

  The main node for creating and managing signature requests.

  #### Create Submission
  Create a signature request from an existing template.

  **Features:**
  - Select from your existing templates
  - Define multiple signers with their details
  - Pre-fill form fields
  - Customize email notifications
  - Set expiration dates
  - Configure signing order (sequential or random)

  #### Create Submission From DOCX
  Create a signature request from DOCX files with dynamic content.

  **Features:**
  - Upload DOCX or PDF files
  - Use dynamic variables for content replacement
  - Merge multiple documents
  - Define signers with roles
  - Support for template merging

  #### Create Submission From HTML
  Generate signature requests from HTML content.

  **Features:**
  - HTML document content with field tags
  - Custom headers and footers
  - Multiple page sizes (Letter, A4, Legal, etc.)
  - Merge with existing templates
  - Convert HTML to PDF automatically

  #### Create Submission From PDF
  Create signature requests from PDF documents.

  **Features:**
  - Upload PDF files (Base64 or URL)
  - Flatten PDF form fields
  - Remove or preserve text tags
  - Merge multiple PDFs
  - Template integration

  ### DocuSeal Trigger Node

  Webhook-based trigger for DocuSeal events.

  #### Signing Form Completed
  Triggers when a single signer completes their signing form.

  **Use cases:**
  - Send notifications to internal teams
  - Update CRM records
  - Trigger follow-up workflows

  #### Submission Completed
  Triggers when all parties complete the signing process.

  **Use cases:**
  - Archive completed documents
  - Send completion notifications
  - Update databases with signed document URLs
  - Generate invoices or contracts

  ## Credentials

  You'll need your **DocuSeal API key** to connect n8n to your account.

  ### Getting Your API Key

  1. Create an account at [DocuSeal Global](https://docuseal.com/sign_in) or [DocuSeal Europe](https://docuseal.eu/sign_in)
  2. Go to **Settings → Console → API**
  3. Copy an API key for your account

  ### Setting Up Credentials in n8n

  1. In n8n, click on **Credentials** in the left sidebar
  2. Click **Add Credential**
  3. Search for "DocuSeal" and select **DocuSeal API**
  4. Fill in the following fields:
     - **API Key** – your generated API key
     - **Server** – choose between *Global Server* or *Europe Server*
  5. Click **Save**

  ### Authentication Methods

  This node supports two authentication methods:

  - **Access Token** (recommended) - Use your API key directly
  - **OAuth2** - For more secure integrations (requires app setup)

  ## Compatibility

  - **n8n** version `0.187.0` or later
  - **Node.js** version `18.10` or later

  ## Usage Examples

  ### Example 1: Automated Contract Signing

  Send contracts for signing whenever a new deal is created in your CRM:

  1. **Trigger**: CRM Trigger (e.g., HubSpot, Salesforce)
  2. **DocuSeal Node**: Create Submission
     - Template: "Sales Contract"
     - Signer Email: `{{$json.contact_email}}`
     - Pre-fill fields with deal data
  3. **Slack Node**: Notify sales team

  ### Example 2: Onboarding Automation

  Automatically send onboarding documents to new employees:

  1. **Trigger**: HR System Webhook
  2. **DocuSeal Node**: Create Submission From DOCX
     - Upload employee handbook
     - Variables: Employee name, start date, department
     - Signers: New employee + HR manager
  3. **Email Node**: Send welcome email with signing link

  ### Example 3: Document Archive Workflow

  Archive completed documents automatically:

  1. **DocuSeal Trigger**: Submission Completed
  2. **HTTP Request Node**: Download signed PDF
  3. **Google Drive Node**: Upload to archive folder
  4. **Database Node**: Update records with document URL

  ### Example 4: Multi-Party Signing

  Send documents requiring multiple signatures in sequence:

  1. **Google Sheets Trigger**: New row in contracts sheet
  2. **DocuSeal Node**: Create Submission
     - Signers Order: "Preserved"
     - Signer 1: Client
     - Signer 2: Account Manager
     - Signer 3: Legal Team
  3. **Slack Node**: Notify when all parties sign

  ## Advanced Features

  ### Pre-filling Form Fields

  You can pre-fill form fields in your templates using the `Values` parameter in submitters:

  ```json
  {
    "field": "Company Name",
    "value": "{{$json.company}}"
  }
  ```

  ### Custom Email Notifications

  Customize the email sent to signers:

  - **Email Subject**: Your custom subject line
  - **Email Body**: Your custom message (supports plain text)
  - **Reply-To**: Set a custom reply-to address
  - **BCC**: Add BCC recipients for completed documents

  ### Metadata and External IDs

  Track your documents by adding:

  - **External ID**: Your internal reference ID
  - **Metadata**: Custom key-value pairs for additional data

  ### Expiration Dates

  Set expiration dates for signature requests:
  - After expiration, the signing link becomes unavailable
  - Use ISO 8601 format: `2025-12-31T23:59:59Z`

  ## Troubleshooting

  ### 🧩 Common Issues

  #### 🔑 Invalid API Key error
  **Solution:** Verify your API key is correct and matches the selected server (Global/Europe)

  #### 📄 Template not found
  **Solution:** Ensure the template exists in your DocuSeal account and is not archived

  #### 🌐 Webhook not triggering
  **Solution:** Check that your n8n instance is publicly accessible and the webhook is properly registered

  #### 📚 Documents not merging
  **Solution:** Verify that all documents are valid PDFs or DOCX files and properly encoded

  ### Getting Help

  If you encounter issues:

  1. Check the [DocuSeal API documentation](https://www.docuseal.com/docs/api)
  2. Visit the [n8n community forum](https://community.n8n.io/)
  3. Open an issue on [GitHub](https://github.com/docusealco/n8n-nodes-docuseal/issues)

  ## Resources

  - [DocuSeal Website](https://www.docuseal.com)
  - [DocuSeal API Reference](https://www.docuseal.com/docs/api)
  - [DocuSeal Webhooks Documentation](https://www.docuseal.com/docs/api#form-webhook)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n Community Forum](https://community.n8n.io/)

  ## Support

  - 📧 Email: support@docuseal.com
  - 💬 Community: [n8n Community Forum](https://community.n8n.io/)
  - 🐛 Issues: [GitHub Issues](https://github.com/docusealco/n8n-nodes-docuseal/issues)

  ## License

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

ai_documentation_summary:
  {"purpose":"The DocuSeal Trigger node listens for webhook events from DocuSeal document signing platform to automate workflows upon signature completion or form submission.","capabilities":["Triggers on single signer form completion","Triggers on full submission completion","Integrates with n8n workflows for post-signing automation","Supports multiple DocuSeal event types"],"authentication":"API key required (Access Token) or OAuth2","commonUseCases":["Send notifications to internal teams when documents are signed","Update CRM records with signed document status","Archive completed documents automatically","Generate invoices or contracts upon signature completion","Trigger follow-up workflows after signing"],"limitations":["Requires separate DocuSeal API key setup","Requires n8n version 0.187.0 or later","Requires Node.js version 18.10 or later"],"relatedNodes":["DocuSeal Node","HTTP Request Node","Google Drive Node","Database Node","Slack Node"]}


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

updated_at: 2026-04-16 09:43:36
author_name: legnext
author_github_url: https://github.com/legnext-ai/
npm_package_name: n8n-nodes-legnext
npm_version: 0.1.0
community_fetched_at: 2026-04-16T09:43:36.355Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Job",
          "value": "job"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBalance",
      "options": [
        {
          "name": "Get Balance",
          "value": "getBalance",
          "action": "Get account balance",
          "routing": {
            "request": {
              "url": "../account/balance",
              "method": "GET"
            }
          },
          "description": "Retrieve account balance information including credits and points"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "imagine",
      "options": [
        {
          "name": "Blend",
          "value": "blend",
          "action": "Blend",
          "routing": {
            "request": {
              "url": "/blend",
              "method": "POST"
            }
          },
          "description": "Blend 2-5 images together. Returns a new Job ID."
        },
        {
          "name": "Describe",
          "value": "describe",
          "action": "Describe",
          "routing": {
            "request": {
              "url": "/describe",
              "method": "POST"
            }
          },
          "description": "Generate text descriptions and prompts from an image. Returns a new Job ID."
        },
        {
          "name": "Imagine",
          "value": "imagine",
          "action": "Imagine",
          "routing": {
            "request": {
              "url": "/diffusion",
              "method": "POST"
            }
          },
          "description": "Generates a 2x2 image grid from a prompt. Returns the Job ID."
        },
        {
          "name": "Outpaint",
          "value": "outpaint",
          "action": "Outpaint",
          "routing": {
            "request": {
              "url": "/outpaint",
              "method": "POST"
            }
          },
          "description": "Generate an image in a specified direction with a scale ratio. Returns a new Job ID."
        },
        {
          "name": "Pan",
          "value": "pan",
          "action": "Pan extend canvas",
          "routing": {
            "request": {
              "url": "/pan",
              "method": "POST"
            }
          },
          "description": "Extend the image canvas in a specified direction with a scale ratio. Returns a new Job ID."
        },
        {
          "name": "Reroll",
          "value": "reroll",
          "action": "Reroll",
          "routing": {
            "request": {
              "url": "/reroll",
              "method": "POST"
            }
          },
          "description": "Regenerate images using the same prompt from a previous job. Returns a new Job ID."
        },
        {
          "name": "Shorten",
          "value": "shorten",
          "action": "Shorten",
          "routing": {
            "request": {
              "url": "/shorten",
              "method": "POST"
            }
          },
          "description": "Analyze and shorten a prompt to its key elements. Returns a new Job ID."
        },
        {
          "name": "Upscale",
          "value": "upscale",
          "action": "Upscale",
          "routing": {
            "request": {
              "url": "/upscale",
              "method": "POST"
            }
          },
          "description": "Upscale one of the grid images from a previous job. Returns a new Job ID."
        },
        {
          "name": "Variation",
          "value": "variation",
          "action": "Variation",
          "routing": {
            "request": {
              "url": "/variation",
              "method": "POST"
            }
          },
          "description": "Create variations of a selected image, optionally with a remix prompt. Returns a new Job ID."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get job status",
          "routing": {
            "request": {
              "url": "=/job/{{$parameter.jobId}}",
              "method": "GET"
            }
          },
          "description": "Fetch the status and result of a job by its ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "job"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "videoDiffusion",
      "options": [
        {
          "name": "Extend Video",
          "value": "extendVideo",
          "action": "Extend video",
          "routing": {
            "request": {
              "url": "/extend-video",
              "method": "POST"
            }
          },
          "description": "Extend existing videos with seamless continuation and motion. Returns a new Job ID."
        },
        {
          "name": "Upscale Video",
          "value": "upscaleVideo",
          "action": "Upscale video",
          "routing": {
            "request": {
              "url": "/video-upscale",
              "method": "POST"
            }
          },
          "description": "Enhance video resolution and quality using AI upscaling technology. Returns a new Job ID."
        },
        {
          "name": "Video Diffusion",
          "value": "videoDiffusion",
          "action": "Video diffusion",
          "routing": {
            "request": {
              "url": "/video-diffusion",
              "method": "POST"
            }
          },
          "description": "Generate dynamic videos from text prompts or existing images. Returns a new Job ID."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Balance",
      "value": "getBalance",
      "action": "Get account balance",
      "routing": {
        "request": {
          "url": "../account/balance",
          "method": "GET"
        }
      },
      "description": "Retrieve account balance information including credits and points",
      "resource": "account"
    },
    {
      "name": "Blend",
      "value": "blend",
      "action": "Blend",
      "routing": {
        "request": {
          "url": "/blend",
          "method": "POST"
        }
      },
      "description": "Blend 2-5 images together. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Describe",
      "value": "describe",
      "action": "Describe",
      "routing": {
        "request": {
          "url": "/describe",
          "method": "POST"
        }
      },
      "description": "Generate text descriptions and prompts from an image. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Imagine",
      "value": "imagine",
      "action": "Imagine",
      "routing": {
        "request": {
          "url": "/diffusion",
          "method": "POST"
        }
      },
      "description": "Generates a 2x2 image grid from a prompt. Returns the Job ID.",
      "resource": "image"
    },
    {
      "name": "Outpaint",
      "value": "outpaint",
      "action": "Outpaint",
      "routing": {
        "request": {
          "url": "/outpaint",
          "method": "POST"
        }
      },
      "description": "Generate an image in a specified direction with a scale ratio. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Pan",
      "value": "pan",
      "action": "Pan extend canvas",
      "routing": {
        "request": {
          "url": "/pan",
          "method": "POST"
        }
      },
      "description": "Extend the image canvas in a specified direction with a scale ratio. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Reroll",
      "value": "reroll",
      "action": "Reroll",
      "routing": {
        "request": {
          "url": "/reroll",
          "method": "POST"
        }
      },
      "description": "Regenerate images using the same prompt from a previous job. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Shorten",
      "value": "shorten",
      "action": "Shorten",
      "routing": {
        "request": {
          "url": "/shorten",
          "method": "POST"
        }
      },
      "description": "Analyze and shorten a prompt to its key elements. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Upscale",
      "value": "upscale",
      "action": "Upscale",
      "routing": {
        "request": {
          "url": "/upscale",
          "method": "POST"
        }
      },
      "description": "Upscale one of the grid images from a previous job. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Variation",
      "value": "variation",
      "action": "Variation",
      "routing": {
        "request": {
          "url": "/variation",
          "method": "POST"
        }
      },
      "description": "Create variations of a selected image, optionally with a remix prompt. Returns a new Job ID.",
      "resource": "image"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get job status",
      "routing": {
        "request": {
          "url": "=/job/{{$parameter.jobId}}",
          "method": "GET"
        }
      },
      "description": "Fetch the status and result of a job by its ID",
      "resource": "job"
    },
    {
      "name": "Extend Video",
      "value": "extendVideo",
      "action": "Extend video",
      "routing": {
        "request": {
          "url": "/extend-video",
          "method": "POST"
        }
      },
      "description": "Extend existing videos with seamless continuation and motion. Returns a new Job ID.",
      "resource": "video"
    },
    {
      "name": "Upscale Video",
      "value": "upscaleVideo",
      "action": "Upscale video",
      "routing": {
        "request": {
          "url": "/video-upscale",
          "method": "POST"
        }
      },
      "description": "Enhance video resolution and quality using AI upscaling technology. Returns a new Job ID.",
      "resource": "video"
    },
    {
      "name": "Video Diffusion",
      "value": "videoDiffusion",
      "action": "Video diffusion",
      "routing": {
        "request": {
          "url": "/video-diffusion",
          "method": "POST"
        }
      },
      "description": "Generate dynamic videos from text prompts or existing images. Returns a new Job ID.",
      "resource": "video"
    }
  ]

npm_readme:
  # n8n-nodes-legnext

  ![Legnext](https://i.ibb.co/Lzgsg5dY/image.png)

  This is an n8n community node that integrates [Legnext AI](https://legnext.ai) into your n8n workflows. Legnext AI is a powerful API service for AI-powered image and video generation using Midjourney models, enabling you to create stunning visuals and dynamic videos directly from your automation workflows.

  With the Legnext node, you can generate images from text prompts, create variations, upscale images, blend multiple images together, generate videos, and much more—all through a simple, declarative API interface.

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

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

  ## Installation

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

  To install the Legnext node:
  1. Go to **Settings** → **Community nodes** in your n8n instance
  2. Search for `n8n-nodes-legnext`
  3. Click **Install**

  ## Operations

  The Legnext node provides four main resources with comprehensive operations:

  ### 🖼️ Image Resource
  Generate and manipulate images using Midjourney models:
  - **Blend** - Blend 2-5 images together seamlessly
  - **Describe** - Generate text descriptions and prompts from images
  - **Imagine** - Generate a 2x2 image grid from text prompts
  - **Outpaint** - Extend images in specified directions
  - **Pan** - Extend the image canvas with scale ratio
  - **Reroll** - Regenerate images using the same prompt
  - **Shorten** - Analyze and shorten prompts to key elements
  - **Upscale** - Upscale images from generated grids
  - **Variation** - Create variations of selected images with optional remix prompts

  ### 🎬 Video Resource
  Create and enhance dynamic videos:
  - **Extend Video** - Extend existing videos with seamless continuation
  - **Upscale Video** - Enhance video resolution and quality using AI
  - **Video Diffusion** - Generate dynamic videos from text prompts or images

  ### 📋 Job Resource
  Monitor and manage your generation tasks:
  - **Get Job** - Retrieve the status and results of any generation job

  ### 💰 Account Resource
  Manage your Legnext account:
  - **Get Balance** - Check your account balance and usage

  ## Credentials

  To use the Legnext node, you need to authenticate with your Legnext API key:

  1. Create a free account at [Legnext AI](https://legnext.ai)
  2. Navigate to your API settings to generate an API key
  3. In n8n, add new credentials for **Legnext API**
  4. Enter your API key
  5. Test the connection to ensure it works

  ## Usage

  ### Basic Workflow Example

  Here's a simple example of generating an image and upscaling it:

  1. **Imagine Operation**: Generate a 2x2 grid of images
     - Resource: `Image`
     - Operation: `Imagine`
     - Text Prompt: `"A beautiful sunset over snow mountains"`

  2. **Get Job Operation**: Wait for the job to complete
     - Resource: `Job`
     - Operation: `Get Job`
     - Job ID: `{{ $json.job_id }}`

  3. **Upscale Operation**: Upscale your favorite image
     - Resource: `Image`
     - Operation: `Upscale`
     - Job ID: `{{ $json.job_id }}`
     - Image Number: `0` (first image in the grid)

  ### Webhook Integration

  All operations support optional webhook callbacks. Add a callback URL to receive notifications when tasks complete:

  ```
  callback: https://your-webhook-endpoint.com/notify
  ```

  ## Resources

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

  ## License

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

  ## Support

  For support, please:
  - Open an issue on [GitHub](https://github.com/legnext-ai/n8n-nodes-legnext/issues)
  - Contact Legnext support at [Legnext AI](https://legnext.ai)
  - Join the n8n community forum for general n8n questions

  ---

  Made with ❤️ by the Legnext team

ai_documentation_summary:
  {"purpose":"The Legnext n8n node integrates with the Legnext AI API to generate and manipulate images and videos using Midjourney models directly within n8n workflows.","capabilities":["Generate images from text prompts (Imagine)","Create image variations (Variation)","Blend multiple images together (Blend)","Upscale images and videos (Upscale)","Extend video content (Extend Video)","Generate dynamic videos from text or images (Video Diffusion)","Analyze images to generate text descriptions (Describe)","Extend images in specified directions (Outpaint)","Regenerate images with same prompt (Reroll)","Shorten text prompts to key elements (Shorten)"],"authentication":"API key required","commonUseCases":["Automated content creation for social media","Workflow-based image generation and editing","Video production automation","Prompt optimization and analysis","Account management and monitoring"],"limitations":["Requires a separate Legnext AI account and API key","Depends on external Legnext API availability and rate limits","Webhook support is optional and requires external endpoint configuration"],"relatedNodes":["n8n-nodes-core.webhook","n8n-nodes-core.httpRequest","n8n-nodes-core.waitUntil"]}


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

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

operations:
  [
    {
      "name": "GET",
      "value": "get",
      "action": "Scrape using HTML API",
      "description": "Scrape the webpage using our HTML API",
      "resource": "htmlAPI"
    },
    {
      "name": "POST",
      "value": "post",
      "action": "Send POST request using HTML API",
      "description": "Send a post request using our HTML API",
      "resource": "htmlAPI"
    },
    {
      "name": "PUT",
      "value": "put",
      "action": "Send PUT request using HTML API",
      "description": "Send a put request using our HTML API",
      "resource": "htmlAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get SERP data using GOOGLE SEARCH API",
      "description": "Get SERP data using our Google Search API",
      "resource": "googleSearchAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get products related to search query using WALMART SEARCH API",
      "description": "Search for products in Walmart",
      "resource": "walmartSearchAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get product information using WALMART PRODUCT API",
      "description": "Get product information from Walmart",
      "resource": "walmartProductAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get products related to search query using AMAZON SEARCH API",
      "description": "Search for products in Amazon",
      "resource": "amazonSearchAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get product information using AMAZON PRODUCT API",
      "description": "Get product information from Amazon",
      "resource": "amazonProductAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get AI response from CHATGPT for your prompt using our CHATGPT API",
      "description": "Get AI Response from ChatGPT based on your prompt",
      "resource": "chatgptAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get usage data",
      "description": "Get your API usage data",
      "resource": "usage"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get detailed video metadata from YOUTUBE using our YOUTUBE METADATA API",
      "description": "Get detailed video metadata",
      "resource": "youtubeMetadataAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get search results from YOUTUBE using our YOUTUBE SEARCH API",
      "description": "Get YouTube search results",
      "resource": "youtubeSearchAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get video transcript availability status from YOUTUBE using our YOUTUBE TRAINABILITY API",
      "description": "Check if a video has transcripts available for training purposes",
      "resource": "youtubeTrainabilityAPI"
    },
    {
      "name": "GET",
      "value": "get",
      "action": "Get video transcripts from YOUTUBE using our YOUTUBE TRANSCRIPT API",
      "description": "Get video transcripts (captions/subtitles)",
      "resource": "youtubeTranscriptAPI"
    }
  ]

npm_readme:
  # n8n-nodes-scrapingbee

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

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

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

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

  ## Installation

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

  ## Operations

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

  ## Credentials

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

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

  ## Compatibility

  n8n 1.101.2 and above

  ## Resources

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

  ## Version history

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

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


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

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

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

npm_readme:
  # n8n-nodes-awork

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

  ## Installation

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

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

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

  ## Authentication

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

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

  ## Available Operations

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

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

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

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

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

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

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

  ## Example Workflows

  Here are some common use cases for the awork nodes:

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

  ## Resources

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

  ## Support

  If you encounter any issues or have questions:

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

  ## Local Development

  For contributors and developers who want to test changes locally:

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

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

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

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

  ## License

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

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


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

updated_at: 2026-04-16 09:43:36
author_name: bcharleson
author_github_url: https://github.com/r-Howitzer/
npm_package_name: n8n-nodes-heyreach
npm_version: 1.0.5
community_fetched_at: 2026-04-16T09:43:36.359Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Inbox",
          "value": "inbox"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "LinkedIn Account",
          "value": "linkedInAccount"
        },
        {
          "name": "List",
          "value": "list"
        },
        {
          "name": "My Network",
          "value": "myNetwork"
        },
        {
          "name": "Stat",
          "value": "stats"
        },
        {
          "name": "Webhook",
          "value": "webhook"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getById",
      "options": [
        {
          "name": "Add Leads",
          "value": "addLeads",
          "action": "Add leads to campaign",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/campaign/AddLeadsToCampaign",
              "body": {
                "campaignId": "={{$parameter[\"campaignId\"]}}",
                "accountLeadPairs": "={{$parameter[\"accountLeadPairs\"].pair.map(pair => ({\n                                    linkedInAccountId: parseInt(pair.linkedInAccountId),\n                                    lead: {\n                                        ...pair.lead.details,\n                                        customUserFields: pair.lead.details.customUserFields?.field || []\n                                    }\n                                }))}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get",
          "value": "getById",
          "action": "Retrieve a campaign",
          "routing": {
            "request": {
              "qs": {
                "campaignId": "={{$parameter[\"campaignId\"]}}"
              },
              "url": "/campaign/GetById",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Leads",
          "value": "getLeads",
          "action": "Retrieve leads from campaign",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/campaign/GetLeadsFromCampaign",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "timeTo": "={{$parameter[\"additionalFields\"][\"timeTo\"]}}",
                "timeFrom": "={{$parameter[\"additionalFields\"][\"timeFrom\"]}}",
                "campaignId": "={{$parameter[\"campaignId\"]}}",
                "timeFilter": "={{$parameter[\"additionalFields\"][\"timeFilter\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Retrieve all campaigns",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/campaign/GetAll",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}",
                "statuses": "={{$parameter[\"additionalFields\"][\"statuses\"]}}",
                "accountIds": "={{$parameter[\"additionalFields\"][\"accountIds\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Many For Lead",
          "value": "getCampaignsForLead",
          "action": "Retrieve campaigns for a lead",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/campaign/GetCampaignsForLead",
              "body": {
                "email": "={{$parameter[\"additionalFields\"][\"email\"]}}",
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "linkedinId": "={{$parameter[\"additionalFields\"][\"linkedinId\"]}}",
                "profileUrl": "={{$parameter[\"profileUrl\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Pause",
          "value": "pause",
          "action": "Pause a campaign",
          "routing": {
            "request": {
              "qs": {
                "campaignId": "={{$parameter[\"campaignId\"]}}"
              },
              "url": "/campaign/Pause",
              "body": {},
              "method": "POST"
            }
          }
        },
        {
          "name": "Resume",
          "value": "resume",
          "action": "Resume a campaign",
          "routing": {
            "request": {
              "qs": {
                "campaignId": "={{$parameter[\"campaignId\"]}}"
              },
              "url": "/campaign/Resume",
              "body": {},
              "method": "POST"
            }
          }
        },
        {
          "name": "Stop Lead",
          "value": "stopLeadInCampaign",
          "action": "Stop a lead in campaign",
          "routing": {
            "request": {
              "url": "/campaign/StopLeadInCampaign",
              "body": {
                "leadUrl": "={{$parameter[\"leadUrl\"]}}",
                "campaignId": "={{$parameter[\"campaignId\"]}}",
                "leadMemberId": "={{$parameter[\"leadMemberId\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOverallStats",
      "options": [
        {
          "name": "Get Overall",
          "value": "getOverallStats",
          "action": "Retrieve overall statistics",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/stats/GetOverallStats",
              "body": {
                "endDate": "={{$parameter[\"additionalFields\"][\"endDate\"]}}",
                "startDate": "={{$parameter[\"additionalFields\"][\"startDate\"]}}",
                "accountIds": "={{$parameter[\"accountIds\"]}}",
                "campaignIds": "={{$parameter[\"campaignIds\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stats"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createWebhook",
      "options": [
        {
          "name": "Create",
          "value": "createWebhook",
          "action": "Create a new webhook",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/webhooks/CreateWebhook",
              "body": {
                "eventType": "={{$parameter[\"eventType\"]}}",
                "webhookUrl": "={{$parameter[\"webhookUrl\"]}}",
                "campaignIds": "={{ $parameter[\"campaignIds\"] ?? [] }}",
                "webhookName": "={{$parameter[\"webhookName\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete",
          "value": "deleteWebhook",
          "action": "Delete a webhook",
          "routing": {
            "request": {
              "qs": {
                "webhookId": "={{$parameter[\"webhookId\"]}}"
              },
              "url": "/webhooks/DeleteWebhook",
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get",
          "value": "getWebhookById",
          "action": "Retrieve a single webhook",
          "routing": {
            "request": {
              "qs": {
                "webhookId": "={{$parameter[\"webhookId\"]}}"
              },
              "url": "/webhooks/GetWebhookById",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAllWebhooks",
          "action": "Retrieve all webhooks",
          "routing": {
            "request": {
              "url": "/webhooks/GetAllWebhooks",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Update",
          "value": "updateWebhook",
          "action": "Update an existing webhook",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "qs": {
                "webhookId": "={{$parameter[\"webhookId\"]}}"
              },
              "url": "/webhooks/UpdateWebhook",
              "body": {
                "isActive": "={{$parameter[\"additionalFields\"][\"isActive\"]}}",
                "eventType": "={{$parameter[\"additionalFields\"][\"eventType\"]}}",
                "webhookUrl": "={{$parameter[\"additionalFields\"][\"webhookUrl\"]}}",
                "campaignIds": "={{ ($parameter[\"additionalFields\"]?.[\"eventType\"] === \"EVERY_MESSAGE_REPLY_RECEIVED\" || $parameter[\"additionalFields\"]?.[\"eventType\"] === \"LEAD_TAG_UPDATED\") ? [] : $parameter[\"additionalFields\"]?.[\"campaignIds\"] ?? null }}",
                "webhookName": "={{$parameter[\"additionalFields\"][\"webhookName\"]}}"
              },
              "method": "PATCH"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMyNetworkForSender",
      "options": [
        {
          "name": "Get",
          "value": "getMyNetworkForSender",
          "action": "Retrieve list of network connections for a sender account",
          "routing": {
            "request": {
              "url": "/MyNetwork/GetMyNetworkForSender",
              "body": {
                "pageSize": "={{$parameter[\"pageSize\"]}}",
                "senderId": "={{$parameter[\"senderId\"]}}",
                "pageNumber": "={{$parameter[\"pageNumber\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "myNetwork"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getListById",
      "options": [
        {
          "name": "Add Leads",
          "value": "addLeadsToList",
          "action": "Add leads to a list",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/list/AddLeadsToList",
              "body": {
                "leads": "={{$parameter[\"wrapperLeads\"][\"leads\"].map(lead => ({\n                                ...lead,\n                                customUserFields: lead.customUserFields?.field || []\n                            }))}}",
                "listId": "={{$parameter[\"listId\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Create Empty",
          "value": "createEmptyList",
          "action": "Create an empty list",
          "routing": {
            "request": {
              "url": "/list/CreateEmptyList",
              "body": {
                "name": "={{$parameter[\"listName\"]}}",
                "type": "={{$parameter[\"listType\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Delete Leads (By LinkedIn ID)",
          "value": "deleteLeadsFromList",
          "action": "Delete leads from a list by LinkedIn ID",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/list/DeleteLeadsFromList",
              "body": {
                "listId": "={{$parameter[\"listId\"]}}",
                "leadMemberIds": "={{$parameter[\"leadMemberIds\"]}}"
              },
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Delete Leads (By Profile URL)",
          "value": "deleteLeadsFromListByProfileUrl",
          "action": "Delete leads from a list by LinkedIn profile URL",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/list/DeleteLeadsFromListByProfileUrl",
              "body": {
                "listId": "={{$parameter[\"listId\"]}}",
                "profileUrls": "={{$parameter[\"leadProfileUrls\"]}}"
              },
              "method": "DELETE"
            }
          }
        },
        {
          "name": "Get",
          "value": "getListById",
          "action": "Retrieve a list",
          "routing": {
            "request": {
              "qs": {
                "listId": "={{$parameter[\"listId\"]}}"
              },
              "url": "/list/GetById",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Companies",
          "value": "getCompaniesFromList",
          "action": "Retrieve companies from a list",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/list/GetCompaniesFromList",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "listId": "={{$parameter[\"listId\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Leads",
          "value": "getLeadsFromList",
          "action": "Retrieve leads from a list",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/list/GetLeadsFromList",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "listId": "={{$parameter[\"listId\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}",
                "createdTo": "={{$parameter[\"additionalFields\"][\"createdTo\"]}}",
                "createdFrom": "={{$parameter[\"additionalFields\"][\"createdFrom\"]}}",
                "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
                "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"leadProfileUrl\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Lists",
          "value": "getListsForLead",
          "action": "Retrieve lists associated with a specific lead",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/list/GetListsForLead",
              "body": {
                "email": "={{$parameter[\"additionalFields\"][\"email\"]}}",
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "linkedinId": "={{$parameter[\"additionalFields\"][\"linkedinId\"]}}",
                "profileUrl": "={{$parameter[\"additionalFields\"][\"profileUrl\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAllLists",
          "action": "Retrieve all lists",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/list/GetAll",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}",
                "listType": "={{$parameter[\"additionalFields\"][\"listType\"]}}",
                "campaignIds": "={{$parameter[\"additionalFields\"][\"campaignIds\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "list"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getConversationsV2",
      "options": [
        {
          "name": "Get Many",
          "value": "getConversationsV2",
          "action": "Retrieve all LinkedIn conversations",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/inbox/GetConversations",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "filters": {
                  "seen": "={{$parameter[\"additionalFields\"][\"seen\"]}}",
                  "campaignIds": "={{$parameter[\"additionalFields\"][\"campaignIds\"]}}",
                  "searchString": "={{$parameter[\"additionalFields\"][\"searchString\"]}}",
                  "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
                  "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"leadProfileUrl\"]}}",
                  "linkedInAccountIds": "={{$parameter[\"additionalFields\"][\"linkedInAccountIds\"]}}"
                }
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Chatroom",
          "value": "getChatroom",
          "action": "Retrieve a specific LinkedIn conversation and messages",
          "routing": {
            "request": {
              "url": "=/inbox/GetChatroom/{{$parameter[\"accountId\"]}}/{{$parameter[\"conversationId\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send a message to a LinkedIn conversation",
          "routing": {
            "request": {
              "url": "/inbox/SendMessage",
              "body": {
                "message": "={{$parameter[\"message\"]}}",
                "subject": "={{$parameter[\"subject\"]}}",
                "conversationId": "={{$parameter[\"conversationId\"]}}",
                "linkedInAccountId": "={{$parameter[\"linkedInAccountId\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllLinkedInAccounts",
      "options": [
        {
          "name": "Get Many",
          "value": "getAllLinkedInAccounts",
          "action": "Retrieve a list of LinkedIn accounts",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/li_account/GetAll",
              "body": {
                "limit": "={{$parameter[\"limit\"]}}",
                "offset": "={{$parameter[\"offset\"]}}",
                "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get",
          "value": "getLinkedInAccountById",
          "action": "Retrieve a LinkedIn account",
          "routing": {
            "request": {
              "qs": {
                "accountId": "={{$parameter[\"accountId\"]}}"
              },
              "url": "/li_account/GetById",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedInAccount"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLead",
      "options": [
        {
          "name": "Get",
          "value": "getLead",
          "action": "Retrieve the details of a specific lead",
          "routing": {
            "request": {
              "url": "/lead/GetLead",
              "body": {
                "profileUrl": "={{$parameter[\"profileUrl\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Add Tags",
          "value": "addTagsToLead",
          "action": "Add tags to a lead",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/lead/AddTags",
              "body": {
                "tags": "={{$parameter[\"tags\"]}}",
                "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
                "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"profileUrl\"]}}",
                "createTagIfNotExisting": "={{$parameter[\"createTagIfNotExisting\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Get Tags",
          "value": "getTagsForLead",
          "action": "Retrieve all tags for a lead",
          "routing": {
            "request": {
              "url": "/lead/GetTags",
              "body": {
                "profileUrl": "={{$parameter[\"profileUrl\"]}}"
              },
              "method": "POST"
            }
          }
        },
        {
          "name": "Replace Tags",
          "value": "replaceTags",
          "action": "Replace all existing tags for a lead",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/lead/ReplaceTags",
              "body": {
                "tags": "={{$parameter[\"tags\"]}}",
                "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
                "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"profileUrl\"]}}",
                "createTagIfNotExisting": "={{$parameter[\"createTagIfNotExisting\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Leads",
      "value": "addLeads",
      "action": "Add leads to campaign",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/campaign/AddLeadsToCampaign",
          "body": {
            "campaignId": "={{$parameter[\"campaignId\"]}}",
            "accountLeadPairs": "={{$parameter[\"accountLeadPairs\"].pair.map(pair => ({\n                                    linkedInAccountId: parseInt(pair.linkedInAccountId),\n                                    lead: {\n                                        ...pair.lead.details,\n                                        customUserFields: pair.lead.details.customUserFields?.field || []\n                                    }\n                                }))}}"
          },
          "method": "POST"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Get",
      "value": "getById",
      "action": "Retrieve a campaign",
      "routing": {
        "request": {
          "qs": {
            "campaignId": "={{$parameter[\"campaignId\"]}}"
          },
          "url": "/campaign/GetById",
          "method": "GET"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Get Leads",
      "value": "getLeads",
      "action": "Retrieve leads from campaign",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/campaign/GetLeadsFromCampaign",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "timeTo": "={{$parameter[\"additionalFields\"][\"timeTo\"]}}",
            "timeFrom": "={{$parameter[\"additionalFields\"][\"timeFrom\"]}}",
            "campaignId": "={{$parameter[\"campaignId\"]}}",
            "timeFilter": "={{$parameter[\"additionalFields\"][\"timeFilter\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Retrieve all campaigns",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/campaign/GetAll",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}",
            "statuses": "={{$parameter[\"additionalFields\"][\"statuses\"]}}",
            "accountIds": "={{$parameter[\"additionalFields\"][\"accountIds\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Get Many For Lead",
      "value": "getCampaignsForLead",
      "action": "Retrieve campaigns for a lead",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/campaign/GetCampaignsForLead",
          "body": {
            "email": "={{$parameter[\"additionalFields\"][\"email\"]}}",
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "linkedinId": "={{$parameter[\"additionalFields\"][\"linkedinId\"]}}",
            "profileUrl": "={{$parameter[\"profileUrl\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Pause",
      "value": "pause",
      "action": "Pause a campaign",
      "routing": {
        "request": {
          "qs": {
            "campaignId": "={{$parameter[\"campaignId\"]}}"
          },
          "url": "/campaign/Pause",
          "body": {},
          "method": "POST"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Resume",
      "value": "resume",
      "action": "Resume a campaign",
      "routing": {
        "request": {
          "qs": {
            "campaignId": "={{$parameter[\"campaignId\"]}}"
          },
          "url": "/campaign/Resume",
          "body": {},
          "method": "POST"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Stop Lead",
      "value": "stopLeadInCampaign",
      "action": "Stop a lead in campaign",
      "routing": {
        "request": {
          "url": "/campaign/StopLeadInCampaign",
          "body": {
            "leadUrl": "={{$parameter[\"leadUrl\"]}}",
            "campaignId": "={{$parameter[\"campaignId\"]}}",
            "leadMemberId": "={{$parameter[\"leadMemberId\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "campaign"
    },
    {
      "name": "Get Overall",
      "value": "getOverallStats",
      "action": "Retrieve overall statistics",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/stats/GetOverallStats",
          "body": {
            "endDate": "={{$parameter[\"additionalFields\"][\"endDate\"]}}",
            "startDate": "={{$parameter[\"additionalFields\"][\"startDate\"]}}",
            "accountIds": "={{$parameter[\"accountIds\"]}}",
            "campaignIds": "={{$parameter[\"campaignIds\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "stats"
    },
    {
      "name": "Create",
      "value": "createWebhook",
      "action": "Create a new webhook",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/webhooks/CreateWebhook",
          "body": {
            "eventType": "={{$parameter[\"eventType\"]}}",
            "webhookUrl": "={{$parameter[\"webhookUrl\"]}}",
            "campaignIds": "={{ $parameter[\"campaignIds\"] ?? [] }}",
            "webhookName": "={{$parameter[\"webhookName\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "webhook"
    },
    {
      "name": "Delete",
      "value": "deleteWebhook",
      "action": "Delete a webhook",
      "routing": {
        "request": {
          "qs": {
            "webhookId": "={{$parameter[\"webhookId\"]}}"
          },
          "url": "/webhooks/DeleteWebhook",
          "method": "DELETE"
        }
      },
      "resource": "webhook"
    },
    {
      "name": "Get",
      "value": "getWebhookById",
      "action": "Retrieve a single webhook",
      "routing": {
        "request": {
          "qs": {
            "webhookId": "={{$parameter[\"webhookId\"]}}"
          },
          "url": "/webhooks/GetWebhookById",
          "method": "GET"
        }
      },
      "resource": "webhook"
    },
    {
      "name": "Get Many",
      "value": "getAllWebhooks",
      "action": "Retrieve all webhooks",
      "routing": {
        "request": {
          "url": "/webhooks/GetAllWebhooks",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "webhook"
    },
    {
      "name": "Update",
      "value": "updateWebhook",
      "action": "Update an existing webhook",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "qs": {
            "webhookId": "={{$parameter[\"webhookId\"]}}"
          },
          "url": "/webhooks/UpdateWebhook",
          "body": {
            "isActive": "={{$parameter[\"additionalFields\"][\"isActive\"]}}",
            "eventType": "={{$parameter[\"additionalFields\"][\"eventType\"]}}",
            "webhookUrl": "={{$parameter[\"additionalFields\"][\"webhookUrl\"]}}",
            "campaignIds": "={{ ($parameter[\"additionalFields\"]?.[\"eventType\"] === \"EVERY_MESSAGE_REPLY_RECEIVED\" || $parameter[\"additionalFields\"]?.[\"eventType\"] === \"LEAD_TAG_UPDATED\") ? [] : $parameter[\"additionalFields\"]?.[\"campaignIds\"] ?? null }}",
            "webhookName": "={{$parameter[\"additionalFields\"][\"webhookName\"]}}"
          },
          "method": "PATCH"
        }
      },
      "resource": "webhook"
    },
    {
      "name": "Get",
      "value": "getMyNetworkForSender",
      "action": "Retrieve list of network connections for a sender account",
      "routing": {
        "request": {
          "url": "/MyNetwork/GetMyNetworkForSender",
          "body": {
            "pageSize": "={{$parameter[\"pageSize\"]}}",
            "senderId": "={{$parameter[\"senderId\"]}}",
            "pageNumber": "={{$parameter[\"pageNumber\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "myNetwork"
    },
    {
      "name": "Add Leads",
      "value": "addLeadsToList",
      "action": "Add leads to a list",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/list/AddLeadsToList",
          "body": {
            "leads": "={{$parameter[\"wrapperLeads\"][\"leads\"].map(lead => ({\n                                ...lead,\n                                customUserFields: lead.customUserFields?.field || []\n                            }))}}",
            "listId": "={{$parameter[\"listId\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "list"
    },
    {
      "name": "Create Empty",
      "value": "createEmptyList",
      "action": "Create an empty list",
      "routing": {
        "request": {
          "url": "/list/CreateEmptyList",
          "body": {
            "name": "={{$parameter[\"listName\"]}}",
            "type": "={{$parameter[\"listType\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "list"
    },
    {
      "name": "Delete Leads (By LinkedIn ID)",
      "value": "deleteLeadsFromList",
      "action": "Delete leads from a list by LinkedIn ID",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/list/DeleteLeadsFromList",
          "body": {
            "listId": "={{$parameter[\"listId\"]}}",
            "leadMemberIds": "={{$parameter[\"leadMemberIds\"]}}"
          },
          "method": "DELETE"
        }
      },
      "resource": "list"
    },
    {
      "name": "Delete Leads (By Profile URL)",
      "value": "deleteLeadsFromListByProfileUrl",
      "action": "Delete leads from a list by LinkedIn profile URL",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/list/DeleteLeadsFromListByProfileUrl",
          "body": {
            "listId": "={{$parameter[\"listId\"]}}",
            "profileUrls": "={{$parameter[\"leadProfileUrls\"]}}"
          },
          "method": "DELETE"
        }
      },
      "resource": "list"
    },
    {
      "name": "Get",
      "value": "getListById",
      "action": "Retrieve a list",
      "routing": {
        "request": {
          "qs": {
            "listId": "={{$parameter[\"listId\"]}}"
          },
          "url": "/list/GetById",
          "method": "GET"
        }
      },
      "resource": "list"
    },
    {
      "name": "Get Companies",
      "value": "getCompaniesFromList",
      "action": "Retrieve companies from a list",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/list/GetCompaniesFromList",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "listId": "={{$parameter[\"listId\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "list"
    },
    {
      "name": "Get Leads",
      "value": "getLeadsFromList",
      "action": "Retrieve leads from a list",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/list/GetLeadsFromList",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "listId": "={{$parameter[\"listId\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}",
            "createdTo": "={{$parameter[\"additionalFields\"][\"createdTo\"]}}",
            "createdFrom": "={{$parameter[\"additionalFields\"][\"createdFrom\"]}}",
            "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
            "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"leadProfileUrl\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "list"
    },
    {
      "name": "Get Lists",
      "value": "getListsForLead",
      "action": "Retrieve lists associated with a specific lead",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/list/GetListsForLead",
          "body": {
            "email": "={{$parameter[\"additionalFields\"][\"email\"]}}",
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "linkedinId": "={{$parameter[\"additionalFields\"][\"linkedinId\"]}}",
            "profileUrl": "={{$parameter[\"additionalFields\"][\"profileUrl\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "list"
    },
    {
      "name": "Get Many",
      "value": "getAllLists",
      "action": "Retrieve all lists",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/list/GetAll",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}",
            "listType": "={{$parameter[\"additionalFields\"][\"listType\"]}}",
            "campaignIds": "={{$parameter[\"additionalFields\"][\"campaignIds\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "list"
    },
    {
      "name": "Get Many",
      "value": "getConversationsV2",
      "action": "Retrieve all LinkedIn conversations",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/inbox/GetConversations",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "filters": {
              "seen": "={{$parameter[\"additionalFields\"][\"seen\"]}}",
              "campaignIds": "={{$parameter[\"additionalFields\"][\"campaignIds\"]}}",
              "searchString": "={{$parameter[\"additionalFields\"][\"searchString\"]}}",
              "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
              "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"leadProfileUrl\"]}}",
              "linkedInAccountIds": "={{$parameter[\"additionalFields\"][\"linkedInAccountIds\"]}}"
            }
          },
          "method": "POST"
        }
      },
      "resource": "inbox"
    },
    {
      "name": "Get Chatroom",
      "value": "getChatroom",
      "action": "Retrieve a specific LinkedIn conversation and messages",
      "routing": {
        "request": {
          "url": "=/inbox/GetChatroom/{{$parameter[\"accountId\"]}}/{{$parameter[\"conversationId\"]}}",
          "method": "GET"
        }
      },
      "resource": "inbox"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send a message to a LinkedIn conversation",
      "routing": {
        "request": {
          "url": "/inbox/SendMessage",
          "body": {
            "message": "={{$parameter[\"message\"]}}",
            "subject": "={{$parameter[\"subject\"]}}",
            "conversationId": "={{$parameter[\"conversationId\"]}}",
            "linkedInAccountId": "={{$parameter[\"linkedInAccountId\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "inbox"
    },
    {
      "name": "Get Many",
      "value": "getAllLinkedInAccounts",
      "action": "Retrieve a list of LinkedIn accounts",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/li_account/GetAll",
          "body": {
            "limit": "={{$parameter[\"limit\"]}}",
            "offset": "={{$parameter[\"offset\"]}}",
            "keyword": "={{$parameter[\"additionalFields\"][\"keyword\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "linkedInAccount"
    },
    {
      "name": "Get",
      "value": "getLinkedInAccountById",
      "action": "Retrieve a LinkedIn account",
      "routing": {
        "request": {
          "qs": {
            "accountId": "={{$parameter[\"accountId\"]}}"
          },
          "url": "/li_account/GetById",
          "method": "GET"
        }
      },
      "resource": "linkedInAccount"
    },
    {
      "name": "Get",
      "value": "getLead",
      "action": "Retrieve the details of a specific lead",
      "routing": {
        "request": {
          "url": "/lead/GetLead",
          "body": {
            "profileUrl": "={{$parameter[\"profileUrl\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "lead"
    },
    {
      "name": "Add Tags",
      "value": "addTagsToLead",
      "action": "Add tags to a lead",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/lead/AddTags",
          "body": {
            "tags": "={{$parameter[\"tags\"]}}",
            "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
            "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"profileUrl\"]}}",
            "createTagIfNotExisting": "={{$parameter[\"createTagIfNotExisting\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "lead"
    },
    {
      "name": "Get Tags",
      "value": "getTagsForLead",
      "action": "Retrieve all tags for a lead",
      "routing": {
        "request": {
          "url": "/lead/GetTags",
          "body": {
            "profileUrl": "={{$parameter[\"profileUrl\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "lead"
    },
    {
      "name": "Replace Tags",
      "value": "replaceTags",
      "action": "Replace all existing tags for a lead",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/lead/ReplaceTags",
          "body": {
            "tags": "={{$parameter[\"tags\"]}}",
            "leadLinkedInId": "={{$parameter[\"additionalFields\"][\"leadLinkedInId\"]}}",
            "leadProfileUrl": "={{$parameter[\"additionalFields\"][\"profileUrl\"]}}",
            "createTagIfNotExisting": "={{$parameter[\"createTagIfNotExisting\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "lead"
    }
  ]

npm_readme:
  #  n8n-nodes-heyreach
  This is a **HeyReach** Community Node for n8n, enabling seamless integration with **HeyReach** in your workflows.  
  **HeyReach** is a powerful LinkedIn automation platform designed to help you scale and optimize your outreach campaigns.  
  This project make it easy to manage LinkedIn campaigns and automate your outreach directly from your workflows.

  [License](#license)  
  [Installation](#installation)  
  [Available Operations](#available-operations)  
  [Credentials](#credentials)  
  [Resources](#resources)  
  [Folder Structure](#folder-structure)

  ## License
  This project is licensed under the **MIT License**. See the [LICENSE](LICENSE.md) file for details.

  ## Installation
  ### Community Nodes (Recommended)
  1. Navigate to **n8n** and sign in.
  2. Go to Settings > Community Nodes
  3. Click Install
  4. Enter `n8n-nodes-heyreach` and click Download
  5. Restart your n8n instance
  6. The HeyReach node will appear in your node palette
  --- 

  ### Local Setup 
  1. Clone the repository.
  2. Run `npm install` to install dependencies.
  3. Before running locally make sure `baseURL` which can be found in `HeyReach.node.ts` is set to dev or staging endpoints.
  4. Run `npm run build` each time you have change or the for the very first time.
  5. Reference the official [n8n documentation](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for running and testing custom nodes locally

  ## Credentials
  Steps to obtain **API KEY** needed for authentication.
  1. Go to **[HeyReach app](https://app.heyreach.io/)** and sign in.
  2. Navigate to the **Integrations** section.
  3. Find the **n8n** card and click **Connect Now**.
  4. Click **New API Key** to generate an API key.
  5. **Copy** the generated API key.
  6. In **n8n**, create a new **HeyReach connection**.
  7. **Paste** the API key into the connection settings and save it.  

  ✅ That’s it — your HeyReach account is now connected to n8n! 🎉

  ## Available Operations

  ### 🔧 Campaign Management

  - **Retrieve all campaigns** – Get a list of all campaigns.
  - **Retrieve a campaign** – Get details of a specific campaign.
  - **Resume a campaign** – Resume a paused campaign.
  - **Pause a campaign** – Pause an active campaign.
  - **Stop a lead in campaign** – Stop a specific lead within a campaign.
  - **Add leads to campaign** – Add one or multiple leads to a campaign.
  - **Retrieve leads from campaign** – Get leads from a campaign.
  - **Retrieve campaigns for a lead** – Find all campaigns that a specific lead belongs to.
  ---

  ### 💬 Inbox

  - **Retrieve all LinkedIn conversations** - Get a list of all LinkedIn conversations.
  - **Retrieve a specific LinkedIn conversation and messages** - Retrieve details of a particular LinkedIn conversation along with all associated messages.
  - **Send a message to a LinkedIn conversation** - Send a new message to a specific LinkedIn conversation.
  ---

  ### 🧑‍💼 Lead

  - **Retrieve the details of a specific lead** - Get detailed information about a specific lead.
  - **Add tags to a lead** - Add one or more tags to a lead to help categorize or filter.
  - **Retrieve all tags for a lead** - Retrieve all tags associated with a specific lead.
  - **Replace all existing tags for a lead** - Replace the current tags on a lead with a new set of tags.
  ---

  ### 🔗 LinkedIn Account Actions

  - **Retrieve a list of LinkedIn accounts** - Get all LinkedIn accounts connected to the system.
  - **Retrieve a LinkedIn account** - Get details of a specific LinkedIn account.
  ---

  ### 📋 List Actions

  - **Retrieve a list** - Get a specific list of leads.
  - **Retrieve all lists** - Get all available lead lists.
  - **Retrieve leads from a list** - Get all leads within a specific list.
  - **Delete leads from a list by LinkedIn ID** - Remove one or more leads from a list using their LinkedIn IDs.
  - **Delete leads from a list by LinkedIn profile URL** - Remove leads from a list using their LinkedIn profile URLs.
  - **Retrieve companies from a list** - Get all associated companies from a specific list.
  - **Add leads to a list** - Add one or more leads to a given list.
  - **Retrieve lists associated with a specific lead** - Get all lists that include a specific lead.
  - **Create an empty list** - Create a new list with no leads.
  ---

  ### 🌐 My Network Actions

  - **Retrieve list of network connections for a sender account** - Get all network connections associated with a given sender LinkedIn account.

  ---

  ### 📊 Stats Actions

  - **Retrieve overall statistics** - Get general statistics across the system, such as lead or campaign performance.

  ---

  ### 🪝 Webhook Actions

  - **Retrieve all webhooks** - Get a list of all configured webhooks.
  - **Retrieve a single webhook** - Get the details of a specific webhook.

  ## Resources

    [HeyReach API documentation](https://documenter.getpostman.com/view/23808049/2sA2xb5F75#61f5ef5d-5f31-4da9-b6af-ef0a6f128146)    

  ## Folder Structure

  - `nodes/HeyReach/operations/` – Contains folders based on the available features.  
    - Each feature has its own folder.
    - `operations` files specify the category of the endpoints and request params for each API call.
    - `fields` files describe the fields required for each request.
  - The starting point for the integration is `HeyReach.node.ts`.  
    - Any new operations should be registered in this file.

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the HeyReach LinkedIn automation platform to manage outreach campaigns, handle conversations, and organize leads directly within n8n workflows.","capabilities":["Retrieve and manage LinkedIn campaigns (list, get details, pause, resume, stop)","Add, retrieve, and remove leads from campaigns","Manage LinkedIn conversations (list, retrieve messages, send messages)","Organize leads into lists (create, add, remove, retrieve)","Tag and categorize leads","Retrieve LinkedIn account details and network connections","Retrieve system statistics and webhook configurations","Retrieve lead details and associated companies"],"authentication":"API Key required (obtained from HeyReach app Integrations section)","commonUseCases":["Automating LinkedIn outreach campaigns from n8n","Managing lead lists and tagging for segmentation","Handling LinkedIn conversations and messaging","Retrieving campaign performance statistics"],"limitations":["Requires manual installation via n8n Community Nodes or local repository setup","Local development requires manual configuration of baseURL to dev or staging endpoints","Community node status may imply less official support compared to official n8n nodes"],"relatedNodes":["HTTP Request","Webhook","Code"]}


