# nodes

node_type: @allscreenshots/n8n-nodes-allscreenshots.allscreenshots
package_name: @allscreenshots/n8n-nodes-allscreenshots
display_name: Allscreenshots
description: Capture and manage website screenshots with Allscreenshots API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: panilya
author_github_url: https://github.com/allscreenshots/n8n-nodes-allscreenshots.git
npm_package_name: @allscreenshots/n8n-nodes-allscreenshots
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:36.194Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "screenshot",
      "options": [
        {
          "name": "Screenshot",
          "value": "screenshot",
          "description": "Capture screenshots of webpages"
        },
        {
          "name": "Async Job",
          "value": "asyncJob",
          "description": "Manage asynchronous screenshot jobs"
        },
        {
          "name": "Bulk Screenshot",
          "value": "bulk",
          "description": "Capture multiple screenshots at once (up to 100 URLs)"
        },
        {
          "name": "Compose",
          "value": "compose",
          "description": "Combine multiple screenshots into one image"
        },
        {
          "name": "Usage",
          "value": "usage",
          "description": "Check API usage and quota"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "capture",
      "options": [
        {
          "name": "Capture",
          "value": "capture",
          "action": "Capture a screenshot",
          "description": "Take a screenshot of a webpage (synchronous)"
        },
        {
          "name": "Capture Async",
          "value": "captureAsync",
          "action": "Start async screenshot capture",
          "description": "Start an async screenshot capture job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "screenshot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getStatus",
      "options": [
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get job status",
          "description": "Get the status of an async screenshot job"
        },
        {
          "name": "Get Result",
          "value": "getResult",
          "action": "Get job result",
          "description": "Download the result of a completed job"
        },
        {
          "name": "Cancel",
          "value": "cancel",
          "action": "Cancel a job",
          "description": "Cancel a pending or running job"
        },
        {
          "name": "List All",
          "value": "list",
          "action": "List all jobs",
          "description": "List all screenshot jobs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "asyncJob"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create bulk screenshot job",
          "description": "Create a bulk screenshot job (up to 100 URLs)"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get bulk job status",
          "description": "Get the status of a bulk job"
        },
        {
          "name": "List All",
          "value": "list",
          "action": "List bulk jobs",
          "description": "List all bulk jobs"
        },
        {
          "name": "Cancel",
          "value": "cancel",
          "action": "Cancel bulk job",
          "description": "Cancel a bulk job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bulk"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create composed screenshot",
          "description": "Compose multiple screenshots into a single image"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get compose job status",
          "description": "Get the status of a compose job"
        },
        {
          "name": "List Jobs",
          "value": "list",
          "action": "List compose jobs",
          "description": "List all compose jobs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "compose"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getQuota",
      "options": [
        {
          "name": "Get Full Stats",
          "value": "getStats",
          "action": "Get usage statistics",
          "description": "Get complete usage statistics including history"
        },
        {
          "name": "Get Quota",
          "value": "getQuota",
          "action": "Get quota status",
          "description": "Get current quota status (screenshots and bandwidth)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "usage"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Capture",
      "value": "capture",
      "action": "Capture a screenshot",
      "description": "Take a screenshot of a webpage (synchronous)",
      "resource": "screenshot"
    },
    {
      "name": "Capture Async",
      "value": "captureAsync",
      "action": "Start async screenshot capture",
      "description": "Start an async screenshot capture job",
      "resource": "screenshot"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get job status",
      "description": "Get the status of an async screenshot job",
      "resource": "asyncJob"
    },
    {
      "name": "Get Result",
      "value": "getResult",
      "action": "Get job result",
      "description": "Download the result of a completed job",
      "resource": "asyncJob"
    },
    {
      "name": "Cancel",
      "value": "cancel",
      "action": "Cancel a job",
      "description": "Cancel a pending or running job",
      "resource": "asyncJob"
    },
    {
      "name": "List All",
      "value": "list",
      "action": "List all jobs",
      "description": "List all screenshot jobs",
      "resource": "asyncJob"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create bulk screenshot job",
      "description": "Create a bulk screenshot job (up to 100 URLs)",
      "resource": "bulk"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get bulk job status",
      "description": "Get the status of a bulk job",
      "resource": "bulk"
    },
    {
      "name": "List All",
      "value": "list",
      "action": "List bulk jobs",
      "description": "List all bulk jobs",
      "resource": "bulk"
    },
    {
      "name": "Cancel",
      "value": "cancel",
      "action": "Cancel bulk job",
      "description": "Cancel a bulk job",
      "resource": "bulk"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create composed screenshot",
      "description": "Compose multiple screenshots into a single image",
      "resource": "compose"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get compose job status",
      "description": "Get the status of a compose job",
      "resource": "compose"
    },
    {
      "name": "List Jobs",
      "value": "list",
      "action": "List compose jobs",
      "description": "List all compose jobs",
      "resource": "compose"
    },
    {
      "name": "Get Full Stats",
      "value": "getStats",
      "action": "Get usage statistics",
      "description": "Get complete usage statistics including history",
      "resource": "usage"
    },
    {
      "name": "Get Quota",
      "value": "getQuota",
      "action": "Get quota status",
      "description": "Get current quota status (screenshots and bandwidth)",
      "resource": "usage"
    }
  ]

npm_readme:
  # n8n-nodes-allscreenshots

  This is an n8n community node for [Allscreenshots](https://allscreenshots.com) - a powerful API for capturing and managing website screenshots at scale.

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

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**
  2. Click **Install**
  3. Enter `@allscreenshots/n8n-nodes-allscreenshots`
  4. Click **Install**

  ### Manual Installation

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

  ## Authentication

  1. Sign up at [allscreenshots.com](https://allscreenshots.com)
  2. Go to **Dashboard > API Keys**
  3. Create a new API key
  4. In n8n, go to **Settings > Credentials > Add Credential**
  5. Search for "Allscreenshots API"
  6. Enter your API key

  ## Nodes

  This package includes two nodes:

  ### Allscreenshots

  The main node for capturing and managing screenshots.

  #### Resources

  | Resource | Description |
  |----------|-------------|
  | **Screenshot** | Capture screenshots synchronously or asynchronously |
  | **Async Job** | Manage async screenshot jobs (status, result, cancel) |
  | **Bulk Screenshot** | Capture up to 100 URLs in a single operation |
  | **Compose** | Combine multiple screenshots into one image |
  | **Usage** | Check API usage and quota status |

  ### Allscreenshots Trigger

  Webhook trigger node for receiving notifications when screenshots are captured.

  #### Supported Events

  - Screenshot Completed
  - Screenshot Failed
  - Bulk Job Completed
  - Compose Completed

  ## Operations

  ### Screenshot

  | Operation | Description |
  |-----------|-------------|
  | **Capture** | Take a screenshot synchronously (returns image) |
  | **Capture Async** | Start an async capture job (returns job ID) |

  **Key Options:**
  - Device presets (iPhone, Galaxy, iPad, MacBook, Desktop sizes)
  - Custom viewport (width, height, scale)
  - Output format (PNG, JPEG, WebP, PDF)
  - Full page capture
  - Element selector
  - Wait options (delay, selector, network idle)
  - Page modifications (dark mode, custom CSS, hide elements)
  - Ad & cookie banner blocking

  ### Async Job

  | Operation | Description |
  |-----------|-------------|
  | **Get Status** | Check job completion status |
  | **Get Result** | Download the screenshot |
  | **Cancel** | Cancel a pending job |
  | **List All** | List all jobs with optional filters |

  ### Bulk Screenshot

  | Operation | Description |
  |-----------|-------------|
  | **Create** | Start a bulk job (up to 100 URLs) |
  | **Get Status** | Check bulk job progress |
  | **List All** | List all bulk jobs |
  | **Cancel** | Cancel a bulk job |

  ### Compose

  | Operation | Description |
  |-----------|-------------|
  | **Create** | Compose multiple screenshots into one |
  | **Get Status** | Check compose job status |
  | **List Jobs** | List all compose jobs |

  **Layout Options:**
  - Auto (intelligent layout selection)
  - Grid
  - Masonry (Pinterest-style)
  - Mondrian (artistic layout)

  ### Usage

  | Operation | Description |
  |-----------|-------------|
  | **Get Full Stats** | Complete usage statistics with history |
  | **Get Quota** | Current quota status |

  ## Usage Examples

  ### Basic Screenshot

  1. Add an **Allscreenshots** node
  2. Select Resource: **Screenshot**
  3. Select Operation: **Capture**
  4. Enter the URL to capture
  5. Configure options as needed
  6. Execute

  ### Bulk Screenshots with Notifications

  1. Add a **Trigger** node (Manual, Schedule, etc.)
  2. Add an **Allscreenshots** node
     - Resource: **Bulk Screenshot**
     - Operation: **Create**
     - Enter URLs (one per line)
  3. Add an **Allscreenshots Trigger** node
     - Event: **Bulk Job Completed**
  4. Connect to your notification service (Slack, Email, etc.)

  ### Compare Multiple Device Views

  1. Add an **Allscreenshots** node
     - Resource: **Compose**
     - Operation: **Create**
     - Enter the same URL multiple times
     - Layout: **Grid**
  2. Configure different device presets for each

  ## Device Presets

  The node includes presets for common devices:

  **Mobile:**
  - iPhone 12, 12 Pro, 13, 14, 14 Pro, 15, 15 Pro, 15 Pro Max
  - Samsung Galaxy S21, S23
  - Google Pixel 5, 6

  **Tablet:**
  - iPad, iPad Pro 11", iPad Pro 12.9", iPad Air
  - Samsung Galaxy Tab

  **Desktop:**
  - MacBook Air, MacBook Pro 14", MacBook Pro 16"
  - Desktop 1920x1080 (Full HD)
  - Desktop 2560x1440 (2K)
  - Desktop 3840x2160 (4K)

  ## Development

  For local development, testing, and publishing instructions, see [CONTRIBUTING.md](CONTRIBUTING.md).

  ## Resources

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

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Captures and manages website screenshots at scale using the Allscreenshots API, supporting synchronous/asynchronous captures, bulk operations, and image composition.","capabilities":["Capture screenshots synchronously","Start asynchronous screenshot jobs","Capture up to 100 URLs in a single bulk operation","Combine multiple screenshots into one image using various layouts (Auto, Grid, Masonry, Mondrian)","Check job status and download results","Cancel pending jobs","List all jobs with optional filters","Check API usage and quota status","Support device presets (iPhone, Galaxy, iPad, MacBook, Desktop)","Custom viewport settings (width, height, scale)"],"authentication":"API key required","commonUseCases":["Website screenshot monitoring","Product page visual inventory","Bulk screenshot generation for marketing","Cross-device comparison workflows","Screenshot composition for galleries"],"limitations":["Bulk operations limited to 100 URLs per job","Async jobs require separate trigger node for completion events","No mention of rate limiting beyond quota checks"],"relatedNodes":["Allscreenshots Trigger","Manual Trigger","Schedule Trigger","Slack Webhook","Email Webhook"]}


node_type: @ekyte/n8n-nodes-ekyte.eKyteAction
package_name: @ekyte/n8n-nodes-ekyte
display_name: eKyte
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: lucassebold
author_github_url: https://github.com/ekyte/n8n-nodes-ekyte.git
npm_package_name: @ekyte/n8n-nodes-ekyte
npm_version: 1.1.0
community_fetched_at: 2026-04-16T09:43:36.195Z
description:
  Create and retrieve data from eKyte (tasks, projects, tickets, boards, workspaces, notes, notifications)

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Board",
          "value": "board"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Notification",
          "value": "notifications"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Ticket",
          "value": "ticket"
        },
        {
          "name": "Workspace",
          "value": "workspaces"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createBoard",
      "options": [
        {
          "name": "Create",
          "value": "createBoard",
          "action": "Create board",
          "description": "Create a new board for organizing notes and planning content"
        },
        {
          "name": "Get All",
          "value": "getBoards",
          "action": "Get all boards",
          "description": "Retrieve all boards accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "board"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createNote",
      "options": [
        {
          "name": "Create",
          "value": "createNote",
          "action": "Create note",
          "description": "Create a new note inside a board with title, content, and category"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createProject",
      "options": [
        {
          "name": "Create",
          "value": "createProject",
          "action": "Create project",
          "description": "Create a new project to group related tasks and track progress"
        },
        {
          "name": "Get All",
          "value": "getProjects",
          "action": "Get all projects",
          "description": "Retrieve all projects accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTask",
      "options": [
        {
          "name": "Create",
          "value": "createTask",
          "action": "Create task",
          "description": "Create a new task in eKyte with title, dates, priority, and assignment"
        },
        {
          "name": "Get",
          "value": "getTask",
          "action": "Get task",
          "description": "Retrieve a single task by its unique ID"
        },
        {
          "name": "Get Many (with Filters)",
          "value": "getManyTasks",
          "action": "Get many tasks with filters",
          "description": "Search and filter tasks by title, status, workspace, executor, squad, project, or date range"
        },
        {
          "name": "Get Recent",
          "value": "getTasks",
          "action": "Get recent tasks",
          "description": "Get tasks created or updated in the last 15 minutes (basic info)"
        },
        {
          "name": "Get Recent (with Phase)",
          "value": "getTasksPhase",
          "action": "Get recent tasks with phase",
          "description": "Get tasks created or updated in the last 15 minutes including current phase/stage information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTicket",
      "options": [
        {
          "name": "Create",
          "value": "createTicket",
          "action": "Create ticket",
          "description": "Create a new ticket with subject, type, priority, and requester information"
        },
        {
          "name": "Get Concluded",
          "value": "getTicketsClosed",
          "action": "Get concluded tickets",
          "description": "Get tickets that were concluded/closed in the last 15 minutes"
        },
        {
          "name": "Get Updated",
          "value": "getTicketsChanged",
          "action": "Get updated tickets",
          "description": "Get tickets that had any changes/updates in the last 15 minutes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getNotifications",
      "options": [
        {
          "name": "Get All",
          "value": "getNotifications",
          "action": "Get all notifications",
          "description": "Retrieve all unread notifications for the specified user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notifications"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createWorkspace",
      "options": [
        {
          "name": "Create",
          "value": "createWorkspace",
          "action": "Create workspace",
          "description": "Create a new workspace for a team or department"
        },
        {
          "name": "Get All",
          "value": "getWorkspaces",
          "action": "Get all workspaces",
          "description": "Retrieve all workspaces accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspaces"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "createBoard",
      "action": "Create board",
      "description": "Create a new board for organizing notes and planning content",
      "resource": "board"
    },
    {
      "name": "Get All",
      "value": "getBoards",
      "action": "Get all boards",
      "description": "Retrieve all boards accessible to the authenticated user",
      "resource": "board"
    },
    {
      "name": "Create",
      "value": "createNote",
      "action": "Create note",
      "description": "Create a new note inside a board with title, content, and category",
      "resource": "note"
    },
    {
      "name": "Create",
      "value": "createProject",
      "action": "Create project",
      "description": "Create a new project to group related tasks and track progress",
      "resource": "project"
    },
    {
      "name": "Get All",
      "value": "getProjects",
      "action": "Get all projects",
      "description": "Retrieve all projects accessible to the authenticated user",
      "resource": "project"
    },
    {
      "name": "Create",
      "value": "createTask",
      "action": "Create task",
      "description": "Create a new task in eKyte with title, dates, priority, and assignment",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "getTask",
      "action": "Get task",
      "description": "Retrieve a single task by its unique ID",
      "resource": "task"
    },
    {
      "name": "Get Many (with Filters)",
      "value": "getManyTasks",
      "action": "Get many tasks with filters",
      "description": "Search and filter tasks by title, status, workspace, executor, squad, project, or date range",
      "resource": "task"
    },
    {
      "name": "Get Recent",
      "value": "getTasks",
      "action": "Get recent tasks",
      "description": "Get tasks created or updated in the last 15 minutes (basic info)",
      "resource": "task"
    },
    {
      "name": "Get Recent (with Phase)",
      "value": "getTasksPhase",
      "action": "Get recent tasks with phase",
      "description": "Get tasks created or updated in the last 15 minutes including current phase/stage information",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "createTicket",
      "action": "Create ticket",
      "description": "Create a new ticket with subject, type, priority, and requester information",
      "resource": "ticket"
    },
    {
      "name": "Get Concluded",
      "value": "getTicketsClosed",
      "action": "Get concluded tickets",
      "description": "Get tickets that were concluded/closed in the last 15 minutes",
      "resource": "ticket"
    },
    {
      "name": "Get Updated",
      "value": "getTicketsChanged",
      "action": "Get updated tickets",
      "description": "Get tickets that had any changes/updates in the last 15 minutes",
      "resource": "ticket"
    },
    {
      "name": "Get All",
      "value": "getNotifications",
      "action": "Get all notifications",
      "description": "Retrieve all unread notifications for the specified user",
      "resource": "notifications"
    },
    {
      "name": "Create",
      "value": "createWorkspace",
      "action": "Create workspace",
      "description": "Create a new workspace for a team or department",
      "resource": "workspaces"
    },
    {
      "name": "Get All",
      "value": "getWorkspaces",
      "action": "Get all workspaces",
      "description": "Retrieve all workspaces accessible to the authenticated user",
      "resource": "workspaces"
    }
  ]

npm_readme:
  # n8n-nodes-ekyte

  This is an n8n community node that lets you integrate with the eKyte API to manage tasks, projects, tickets, boards, workspaces, notes, and notifications.

  eKyte is a Digital Marketing Management Platform for High Performance.

  ## AI Tool Support

  This node is configured with `usableAsTool: true`, which means it can be used as a tool by AI agents in n8n. All operations have detailed descriptions to help AI understand and use each field correctly.

  ## Installation

  ### Community Nodes (Recommended)

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

  After installation, the eKyte node will be available in your n8n workflows.

  ### Manual Installation

  To install this node locally:

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

  ## Credentials

  You'll need to configure the eKyte API credentials:

  1. **API Key**: Your eKyte API key
  2. **Company ID**: Your eKyte company identifier

  To obtain these credentials:

  1. Log into your eKyte account
  2. Navigate to your API settings
  3. Generate an API key if you don't have one
  4. Note your Company ID

  ## Resources and Operations

  The eKyte node is organized by resources, each with specific operations:

  ### Board

  - **Create**: Create a new board for organizing notes and planning content
  - **Get All**: Retrieve all boards accessible to the authenticated user

  ### Note

  - **Create**: Create a new note inside a board with title, content, and category

  ### Project

  - **Create**: Create a new project to group related tasks and track progress
  - **Get All**: Retrieve all projects accessible to the authenticated user

  ### Task

  - **Create**: Create a new task with title, dates, priority, and assignment
  - **Get**: Retrieve a single task by its unique ID
  - **Get Many (with Filters)**: Search and filter tasks by title, status, workspace, executor, squad, project, or date range
  - **Get Recent**: Retrieve tasks created or updated in the last 15 minutes (basic info)
  - **Get Recent (with Phase)**: Retrieve tasks with phase/stage information from the last 15 minutes

  ### Ticket

  - **Create**: Create a new support ticket with subject, type, priority, and requester information
  - **Get Concluded**: Retrieve tickets that were concluded/closed in the last 15 minutes
  - **Get Updated**: Retrieve tickets that had any changes/updates in the last 15 minutes

  ### Notification

  - **Get All**: Retrieve all unread notifications for the specified user

  ### Workspace

  - **Create**: Create a new workspace for a team or department
  - **Get All**: Retrieve all workspaces accessible to the authenticated user

  ## Node Usage

  1. Add the eKyte node to your workflow
  2. Configure your eKyte API credentials
  3. Select the desired resource (Board, Note, Project, Task, Ticket, Notification, or Workspace)
  4. Choose the operation for the selected resource
  5. Provide the required user email (when applicable)
  6. Configure operation-specific parameters
  7. Execute the workflow

  ## API Reference

  This node integrates with the eKyte API at `https://api.ekyte.com/n8n`. For detailed API documentation, visit the [eKyte integration guide](https://www.ekyte.com/guide/pt-br/suporte/integracao-com-n8n/).

  ## Version History

  - **1.0.0**: Initial release with core eKyte operations

  ## Requirements

  - n8n version 1.0.0 or higher
  - Node.js 20.15 or higher
  - Valid eKyte account with API access

  ## Support

  For issues, questions, or feature requests:

  - Create an issue in the [GitHub repository](https://github.com/ekyte/n8n-nodes-ekyte)
  - Contact the eKyte support team at atendimento@ekyte.com

  ## License

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

  ## Contributing

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

  ## Rate Limiting

  This node implements rate limiting to prevent excessive calls and backend overload:

  - **Get Operations**: Have a 5-minute rate limit for the same operation to avoid excessive calls
  - **Create Operations**: No rate limiting applied, allowing unrestricted resource creation


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

updated_at: 2026-04-16 09:43:36
author_name: saber_kurama
author_github_url: https://github.com/Saber-Kurama/
npm_package_name: n8n-nodes-ada
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.195Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "data-analysis",
      "options": [
        {
          "name": "Data Analysis",
          "value": "data-analysis"
        },
        {
          "name": "Data Interpretation",
          "value": "data-interpretation"
        },
        {
          "name": "Data Visualization",
          "value": "data-visualization"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "jsonDataAnalysis",
      "options": [
        {
          "name": "JSON Data Analysis",
          "value": "jsonDataAnalysis",
          "action": "Analyze JSON data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/platform_api/PythonDataAnalysis",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "data-analysis"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "interpretJsonData",
      "options": [
        {
          "name": "Interpret JSON Data",
          "value": "interpretJsonData",
          "action": "Interpret JSON data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/platform_api/DataInterpretation",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "data-interpretation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "visualizeJsonData",
      "options": [
        {
          "name": "Visualize JSON Data",
          "value": "visualizeJsonData",
          "action": "Visualize JSON data",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/platform_api/EchartsVisualization",
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "data-visualization"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "JSON Data Analysis",
      "value": "jsonDataAnalysis",
      "action": "Analyze JSON data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/platform_api/PythonDataAnalysis",
          "method": "POST"
        }
      },
      "resource": "data-analysis"
    },
    {
      "name": "Interpret JSON Data",
      "value": "interpretJsonData",
      "action": "Interpret JSON data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/platform_api/DataInterpretation",
          "method": "POST"
        }
      },
      "resource": "data-interpretation"
    },
    {
      "name": "Visualize JSON Data",
      "value": "visualizeJsonData",
      "action": "Visualize JSON data",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/platform_api/EchartsVisualization",
          "method": "POST"
        }
      },
      "resource": "data-visualization"
    }
  ]

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

  # n8n-nodes-ada

  This repo contains AdaApi'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

  ### Apply for an API Key
  You can easily create and manage your API Key in the [ADA official website](https://ada.im/home?ada_data_=&utm_source=n8n&utm_medium=landingpage&utm_infeluncer=landingpage&utm_campain=landingpage&utm_content=landingpage) - API. To begin with, You need to register for an ADA account.

  Once on the homepage, click the bottom left corner to access the API management dashboard.

  ![apply_apikey_1.png](https://d1551jsgrpwivo.cloudfront.net/apply_apikey_1.png)

  Here, you can create new APIs and set the credit consumption limit for each API. A single account can create up to 10 APIs.

  ![apply_apikey_2.png](https://d1551jsgrpwivo.cloudfront.net/apply_apikey_2.png)

  After successful creation, you can copy the API Key to set credentials. You can also view the credit consumption of each API and manage your APIs.

  ![apply_apikey_3.png](https://d1551jsgrpwivo.cloudfront.net/apply_apikey_3.png)

  #### **Credit Rules:**

  - Calling a single tool consumes 20 credits.
  - You will get 500 free credits per month for ADA Free account,  with each batch of credits valid for three months.
  - When credits run out, you can purchase more or upgrade your account on the ADA Billing page. Each batch of purchased credits is valid for three months. Expiration dates and billing details are available on the [ADA website-Billing](https://ada.im/udsl/#/system/billing).
  ![apply_apikey_4.png](https://d1551jsgrpwivo.cloudfront.net/apply_apikey_4.png)

  ## Usage

  Add Ada to a workflow.


  ![Add Ada to Workflow](https://d1551jsgrpwivo.cloudfront.net/ada-workflow1.png)

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

  ![Add AdaApi](https://d1551jsgrpwivo.cloudfront.net/ada-workflow2.png)

  ![Test  AdaApi](https://d1551jsgrpwivo.cloudfront.net/ada-workflow2.png)


  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node allows users to interact with the Ada API for data analysis and AI-driven tasks within n8n workflows.","capabilities":["Execute queries via the Ada API","Perform data analysis tasks","Manage API credentials and credit limits","Support for batch credit consumption"],"authentication":"API Key required","commonUseCases":["Automated data analysis workflows","Integrating AI-driven insights into n8n processes","Credit-based API usage management"],"limitations":["Free accounts receive only 500 credits per month","Each API call consumes 20 credits","Credits expire after three months","Maximum of 10 APIs per account"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-ada.ada"]}


node_type: @allscreenshots/n8n-nodes-allscreenshots.allscreenshotsTrigger
package_name: @allscreenshots/n8n-nodes-allscreenshots
display_name: Allscreenshots Trigger
description: Receive webhook notifications from Allscreenshots when screenshots are captured
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: panilya
author_github_url: https://github.com/allscreenshots/n8n-nodes-allscreenshots.git
npm_package_name: @allscreenshots/n8n-nodes-allscreenshots
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:36.197Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-allscreenshots

  This is an n8n community node for [Allscreenshots](https://allscreenshots.com) - a powerful API for capturing and managing website screenshots at scale.

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

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**
  2. Click **Install**
  3. Enter `@allscreenshots/n8n-nodes-allscreenshots`
  4. Click **Install**

  ### Manual Installation

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

  ## Authentication

  1. Sign up at [allscreenshots.com](https://allscreenshots.com)
  2. Go to **Dashboard > API Keys**
  3. Create a new API key
  4. In n8n, go to **Settings > Credentials > Add Credential**
  5. Search for "Allscreenshots API"
  6. Enter your API key

  ## Nodes

  This package includes two nodes:

  ### Allscreenshots

  The main node for capturing and managing screenshots.

  #### Resources

  | Resource | Description |
  |----------|-------------|
  | **Screenshot** | Capture screenshots synchronously or asynchronously |
  | **Async Job** | Manage async screenshot jobs (status, result, cancel) |
  | **Bulk Screenshot** | Capture up to 100 URLs in a single operation |
  | **Compose** | Combine multiple screenshots into one image |
  | **Usage** | Check API usage and quota status |

  ### Allscreenshots Trigger

  Webhook trigger node for receiving notifications when screenshots are captured.

  #### Supported Events

  - Screenshot Completed
  - Screenshot Failed
  - Bulk Job Completed
  - Compose Completed

  ## Operations

  ### Screenshot

  | Operation | Description |
  |-----------|-------------|
  | **Capture** | Take a screenshot synchronously (returns image) |
  | **Capture Async** | Start an async capture job (returns job ID) |

  **Key Options:**
  - Device presets (iPhone, Galaxy, iPad, MacBook, Desktop sizes)
  - Custom viewport (width, height, scale)
  - Output format (PNG, JPEG, WebP, PDF)
  - Full page capture
  - Element selector
  - Wait options (delay, selector, network idle)
  - Page modifications (dark mode, custom CSS, hide elements)
  - Ad & cookie banner blocking

  ### Async Job

  | Operation | Description |
  |-----------|-------------|
  | **Get Status** | Check job completion status |
  | **Get Result** | Download the screenshot |
  | **Cancel** | Cancel a pending job |
  | **List All** | List all jobs with optional filters |

  ### Bulk Screenshot

  | Operation | Description |
  |-----------|-------------|
  | **Create** | Start a bulk job (up to 100 URLs) |
  | **Get Status** | Check bulk job progress |
  | **List All** | List all bulk jobs |
  | **Cancel** | Cancel a bulk job |

  ### Compose

  | Operation | Description |
  |-----------|-------------|
  | **Create** | Compose multiple screenshots into one |
  | **Get Status** | Check compose job status |
  | **List Jobs** | List all compose jobs |

  **Layout Options:**
  - Auto (intelligent layout selection)
  - Grid
  - Masonry (Pinterest-style)
  - Mondrian (artistic layout)

  ### Usage

  | Operation | Description |
  |-----------|-------------|
  | **Get Full Stats** | Complete usage statistics with history |
  | **Get Quota** | Current quota status |

  ## Usage Examples

  ### Basic Screenshot

  1. Add an **Allscreenshots** node
  2. Select Resource: **Screenshot**
  3. Select Operation: **Capture**
  4. Enter the URL to capture
  5. Configure options as needed
  6. Execute

  ### Bulk Screenshots with Notifications

  1. Add a **Trigger** node (Manual, Schedule, etc.)
  2. Add an **Allscreenshots** node
     - Resource: **Bulk Screenshot**
     - Operation: **Create**
     - Enter URLs (one per line)
  3. Add an **Allscreenshots Trigger** node
     - Event: **Bulk Job Completed**
  4. Connect to your notification service (Slack, Email, etc.)

  ### Compare Multiple Device Views

  1. Add an **Allscreenshots** node
     - Resource: **Compose**
     - Operation: **Create**
     - Enter the same URL multiple times
     - Layout: **Grid**
  2. Configure different device presets for each

  ## Device Presets

  The node includes presets for common devices:

  **Mobile:**
  - iPhone 12, 12 Pro, 13, 14, 14 Pro, 15, 15 Pro, 15 Pro Max
  - Samsung Galaxy S21, S23
  - Google Pixel 5, 6

  **Tablet:**
  - iPad, iPad Pro 11", iPad Pro 12.9", iPad Air
  - Samsung Galaxy Tab

  **Desktop:**
  - MacBook Air, MacBook Pro 14", MacBook Pro 16"
  - Desktop 1920x1080 (Full HD)
  - Desktop 2560x1440 (2K)
  - Desktop 3840x2160 (4K)

  ## Development

  For local development, testing, and publishing instructions, see [CONTRIBUTING.md](CONTRIBUTING.md).

  ## Resources

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

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"The Allscreenshots Trigger node receives webhook notifications from Allscreenshots when specific screenshot-related events occur, enabling automated workflows based on capture status.","capabilities":["Receives webhook notifications for Screenshot Completed events","Receives webhook notifications for Screenshot Failed events","Receives webhook notifications for Bulk Job Completed events","Receives webhook notifications for Compose Completed events","Triggers downstream actions when screenshot jobs finish or fail"],"authentication":"API key required (configured via n8n Credentials with 'Allscreenshots API' type)","commonUseCases":["Automated notification when a website screenshot is successfully captured","Alerting on failed screenshot captures for error monitoring","Triggering Slack/Email notifications upon bulk screenshot job completion","Automated social media posting when compose jobs finish"],"limitations":["Only supports webhook-based triggering; no direct screenshot capture functionality","Limited to predefined event types (Completed, Failed, Bulk Job, Compose)"],"relatedNodes":["Allscreenshots","Manual Trigger","Schedule Trigger","Slack","Email"]}


node_type: n8n-nodes-jetapi.jetapi
package_name: n8n-nodes-jetapi
display_name: JetAPI
description: Integrate with JetAPI for Telegram and WhatsApp messaging
category: Community
development_style: declarative
version: 6
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: jetapi
author_github_url: https://github.com/jetapi/
npm_package_name: n8n-nodes-jetapi
npm_version: 1.3.1
community_fetched_at: 2026-04-16T09:43:36.198Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "sendText",
      "options": [
        {
          "name": "Send Text Message",
          "value": "sendText",
          "action": "Send a text message"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Text Message",
      "value": "sendText",
      "action": "Send a text message"
    }
  ]

npm_readme:
  # n8n-nodes-jetapi
  This is an n8n community node for [JetAPI](https://jetapi.io/login?referral=n8n&subs_slug=jtp_individ&subs_type=temp) - send messages via Telegram and WhatsApp.

  ## Installation
  ```bash
  npm install n8n-nodes-jetapi

  ## 🎉 Get 10 Days Free Trial!

  [Sign up for JetAPI](https://jetapi.io/login?referral=n8n&subs_slug=jtp_individ&subs_type=temp) and get **10 days free trial** to test all messaging features.

  ## Usage

  Get your API credentials from [JetAPI Dashboard](https://jetapi.io/login?referral=n8n&subs_slug=jtp_individ&subs_type=temp) (10 days free!)
  Create JetAPI credentials in n8n with your Bearer Token
  Add JetAPI node to your workflow
  Configure the message parameters

  ## Features

  WhatsApp messaging - Send messages via phone number
  Telegram messaging - Send via phone number, username, user ID or group ID

  License
  MIT

ai_documentation_summary:
  {"purpose":"A community n8n node that enables sending messages via Telegram and WhatsApp using JetAPI.","capabilities":["Send WhatsApp messages via phone number","Send Telegram messages via phone number","Send Telegram messages via username","Send Telegram messages via user ID","Send Telegram messages via group ID"],"authentication":"API key required (Bearer Token)","commonUseCases":["Automated customer support notifications","Marketing campaigns via WhatsApp","Community updates via Telegram","Two-factor authentication codes delivery"],"limitations":["Requires external API key from JetAPI dashboard","Free tier includes 10-day trial period","No built-in support for media attachments mentioned in README"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-telegram"]}


node_type: n8n-nodes-docutray.docutray
package_name: n8n-nodes-docutray
display_name: Docutray
description: Process documents and search knowledge bases with Docutray services
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: rarce
author_github_url: https://github.com/docutray/
npm_package_name: n8n-nodes-docutray
npm_version: 0.5.2
community_fetched_at: 2026-04-16T09:43:36.199Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document",
          "description": "Process documents with OCR and identification"
        },
        {
          "name": "Knowledge Base",
          "value": "knowledgeBase",
          "description": "Search knowledge bases using RAG technology"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convert",
      "options": [
        {
          "name": "Convert",
          "value": "convert",
          "action": "Convert document to JSON",
          "routing": {
            "request": {
              "url": "/convert",
              "method": "POST"
            }
          },
          "description": "Extract text from document using OCR"
        },
        {
          "name": "Identify",
          "value": "identify",
          "action": "Identify document type",
          "routing": {
            "request": {
              "url": "/identify",
              "method": "POST"
            }
          },
          "description": "Identify document type from image"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search knowledge base",
          "routing": {
            "request": {
              "method": "POST"
            }
          },
          "description": "Search knowledge base using RAG"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "knowledgeBase"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Convert",
      "value": "convert",
      "action": "Convert document to JSON",
      "routing": {
        "request": {
          "url": "/convert",
          "method": "POST"
        }
      },
      "description": "Extract text from document using OCR",
      "resource": "document"
    },
    {
      "name": "Identify",
      "value": "identify",
      "action": "Identify document type",
      "routing": {
        "request": {
          "url": "/identify",
          "method": "POST"
        }
      },
      "description": "Identify document type from image",
      "resource": "document"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search knowledge base",
      "routing": {
        "request": {
          "method": "POST"
        }
      },
      "description": "Search knowledge base using RAG",
      "resource": "knowledgeBase"
    }
  ]

npm_readme:
  # n8n-nodes-docutray

  This is an n8n community node package that provides seamless integration with [Docutray](https://docutray.com/), a powerful document processing and OCR service. It includes a unified node with organized resource groups to automate document processing and knowledge base search workflows directly within your n8n automations.

  ## Features

  - **Document OCR**: Extract text from images and PDFs using advanced OCR technology
  - **Document Type Identification**: Automatically identify document types with confidence scores
  - **Knowledge Base Search**: RAG-based semantic search in knowledge bases for intelligent information retrieval
  - **Dynamic Knowledge Base Selector**: Dropdown selection from available knowledge bases with metadata
  - **Multiple Input Methods**: Support for file uploads, Base64 encoded images, and image URLs
  - **Wide Format Support**: JPEG, PNG, GIF, BMP, WebP, and PDF files (up to 100MB)

  ## Installation

  Follow the [n8n community nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) to install this package in your n8n instance.

  ## Credentials

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

  1. Sign up for a [Docutray account](https://docutray.com/)
  2. Navigate to your API settings in the dashboard
  3. Generate an API key
  4. Configure the "Docutray API" credentials in n8n with your API key

  ## Available Node

  This package includes a unified Docutray node with organized resource groups:

  ### Docutray Node

  A comprehensive node that provides access to all Docutray services through organized resource groups. Users first select a resource type, then choose from available operations for that resource.

  #### Document Resource

  Handles document OCR and type identification operations.

  #### Convert Operation
  Extract text from documents using OCR technology.

  **Supported Methods:**
  - Upload file directly
  - Provide Base64 encoded image
  - Specify image URL for automatic download

  **Parameters:**
  - Document type code (required)
  - Image content type (optional)
  - Document metadata (optional)

  #### Identify Operation
  Automatically identify document types from a list of options.

  **Supported Methods:**
  - Upload file directly
  - Provide Base64 encoded image
  - Specify image URL for automatic download

  **Parameters:**
  - Document type code options (array of possible document types)
  - Document metadata (optional)

  **Response includes:**
  - Primary document type with confidence score
  - Alternative document type suggestions

  #### Knowledge Base Resource

  Handles semantic search operations within knowledge bases using RAG technology.

  ##### Search Operation
  Perform semantic search within knowledge bases using RAG technology.

  **Parameters:**
  - Knowledge Base Name or ID (required) - Select from dropdown or enter ID manually
  - Query (required) - Search query text (max 1000 characters)
  - Limit (optional) - Maximum number of results (1-50, default: 50)
  - Similarity Threshold (optional) - Minimum similarity threshold (0-1, default: 0.7)
  - Include Metadata (optional) - Whether to include metadata in results (default: true)

  **Features:**
  - Dynamic knowledge base selector with dropdown showing available bases
  - Displays knowledge base name, description, and document count
  - Fallback to manual ID entry if API is unavailable

  **Response includes:**
  - Semantic search results with relevance scores
  - Document excerpts and content snippets
  - Optional metadata for each result

  ## Compatibility

  This node has been tested with n8n version 1.94.0 and newer.

  ## Resources

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

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Processes documents and searches knowledge bases using Docutray services, enabling OCR, document type identification, and RAG-based semantic search within n8n workflows.","capabilities":["Extract text from images and PDFs using OCR","Automatically identify document types with confidence scores","Perform RAG-based semantic search in knowledge bases","Support file uploads, Base64 encoded images, and image URLs as input","Handle JPEG, PNG, GIF, BMP, WebP, and PDF files up to 100MB","Dynamic knowledge base selection via dropdown with metadata"],"authentication":"API key required (Docutray API key configured in n8n credentials)","commonUseCases":["Automating document ingestion and text extraction","Classifying incoming documents by type","Retrieving relevant information from enterprise knowledge bases","Building document processing pipelines with OCR and search"],"limitations":["File size limit of 100MB for supported formats","Query length limit of 1000 characters for knowledge base search","Semantic search results limited to 50 entries maximum","Similarity threshold range restricted to 0-1"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.set"]}


node_type: n8n-nodes-cronlytic.cronlyticTrigger
package_name: n8n-nodes-cronlytic
display_name: Cronlytic Trigger
description: Trigger workflows using Cronlytic advanced cron scheduling
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: cronlytic
author_github_url: https://github.com/Cronlytic/
npm_package_name: n8n-nodes-cronlytic
npm_version: 0.1.4
community_fetched_at: 2026-04-16T09:43:36.199Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-cronlytic

  An n8n community node for integrating with [Cronlytic](https://cronlytic.com), providing advanced cron scheduling capabilities for n8n workflows through webhook triggers.

  ![n8n](https://img.shields.io/badge/n8n-community%20node-FF6D5A)
  ![npm](https://img.shields.io/npm/v/n8n-nodes-cronlytic)
  ![License](https://img.shields.io/npm/l/n8n-nodes-cronlytic)

  ## What is Cronlytic?

  Cronlytic is an advanced cron scheduling service that provides:
  - Robust, reliable cron job execution
  - Detailed execution logs and monitoring
  - Advanced scheduling features beyond basic cron
  - API-based job management
  - Webhook-based triggers for external systems

  ## Features

  This n8n node provides:

  - **Cronlytic Trigger**: Create scheduled workflows using Cronlytic's advanced cron scheduler
  - **Webhook Integration**: Automatically sets up webhooks between Cronlytic and n8n
  - **Advanced Scheduling**: Support for complex cron expressions
  - **Automatic Job Management**: Creates, updates, and deletes Cronlytic jobs as needed
  - **Custom Headers & Payloads**: Configure webhook requests with custom data

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Click **Install**
  3. Enter `n8n-nodes-cronlytic`
  4. Click **Install**

  ### Manual Installation

  ```bash
  # In your n8n installation directory
  npm install n8n-nodes-cronlytic

  # Restart your n8n instance
  ```

  ## Setup

  ### 1. Get Cronlytic API Credentials

  1. Sign up for a [Cronlytic account](https://cronlytic.com)
  2. Navigate to **API Keys** in your dashboard
  3. Click **Generate New API Key**
  4. Copy your **API Key** and **User ID**

  ### 2. Configure Credentials in n8n

  1. In n8n, go to **Credentials**
  2. Click **Create New Credential**
  3. Search for and select **Cronlytic API**
  4. Enter your **API Key** and **User ID**
  5. Test the connection and save

  ## Usage

  ### Cronlytic Trigger Node

  The Cronlytic Trigger node creates scheduled jobs on Cronlytic that trigger your n8n workflows via webhooks.

  #### Configuration Options:

  - **Job Name**: Unique identifier for the cron job (alphanumeric, hyphens, underscores only)
  - **Cron Expression**: 5-field cron expression (minute hour day month day-of-week)
  - **Webhook Body**: Optional JSON payload to send with the webhook
  - **Additional Headers**: Custom headers for webhook requests

  #### Example Cron Expressions:

  - `*/5 * * * *` - Every 5 minutes
  - `0 9 * * 1-5` - 9 AM on weekdays
  - `0 0 1 * *` - First day of every month
  - `30 14 * * 0` - 2:30 PM every Sunday

  ### Example Workflow

  1. Add a **Cronlytic Trigger** node to your workflow
  2. Configure credentials
  3. Set job name: `daily-report-generator`
  4. Set cron expression: `0 9 * * *` (daily at 9 AM)
  5. Add webhook body: `{"source": "cronlytic", "type": "daily_report"}`
  6. Connect to your processing nodes
  7. Activate the workflow

  When activated, this creates a job on Cronlytic that will trigger your workflow daily at 9 AM.

  ## Advanced Features

  ### Custom Webhook Payloads

  Include dynamic data in your webhook triggers:

  ```json
  {
    "trigger_time": "{{timestamp}}",
    "source": "cronlytic",
    "workflow_id": "daily-backup",
    "environment": "production"
  }
  ```

  ### Error Handling

  The node includes built-in error handling:
  - API connection retries with exponential backoff
  - Automatic lambda warming for reliable execution
  - Detailed error messages for troubleshooting

  ### Job Management

  Jobs are automatically managed by n8n:
  - **Created** when workflow is activated
  - **Updated** when node configuration changes
  - **Deleted** when workflow is deactivated or node is removed

  ## API Reference

  This node uses the [Cronlytic Programmatic API](https://api.cronlytic.com/prog/). For advanced usage, refer to the complete API documentation.

  ## Troubleshooting

  ### Common Issues

  1. **Authentication Failed**
     - Verify API Key and User ID are correct
     - Check that credentials are properly configured in n8n

  2. **Invalid Cron Expression**
     - Use 5-field format: `minute hour day month day-of-week`

  3. **Webhook Not Triggering**
     - Ensure workflow is activated
     - Check Cronlytic dashboard for job status and logs
     - Verify webhook URL is accessible

  4. **Job Limit Exceeded**
     - Check your Cronlytic plan limits
     - Delete unused jobs or upgrade your plan

  ### Support

  - **Node Issues**: [GitHub Issues](https://github.com/Cronlytic/n8n-nodes-cronlytic)
  - **Cronlytic API**: saleh@cronlytic.com
  - **n8n Community**: [n8n Community Forum](https://community.n8n.io/)

  ## Development

  ### Requirements

  - Node.js ≥ 20.15
  - n8n development environment

  ### Setup

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

  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local testing
  npm link
  n8n start
  ```

  ### Scripts

  - `npm run build` - Build the node
  - `npm run dev` - Build in watch mode
  - `npm run lint` - Run linter
  - `npm run format` - Format code

  ## Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Run linting and formatting
  6. Submit a pull request

  ## License

  [MIT](LICENSE.md)

  ## Author

  **Saleh Alsaihati**
  - GitHub: [@Cronlytic](https://github.com/Cronlytic/n8n-nodes-cronlytic)
  - Email: saleh@cronlytic.com

  ---

  *Built with ❤️ for the n8n community*

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows using Cronlytic's advanced cron scheduling service via webhook integration.","capabilities":["Create scheduled workflows using advanced cron expressions","Configure custom webhook payloads and headers","Automatic job creation, update, and deletion management","Support for complex cron scheduling (e.g., weekdays, specific times)","Built-in error handling with API retries"],"authentication":"API Key required (Cronlytic API Key and User ID)","commonUseCases":["Automated daily/weekly report generation","Scheduled data backups","Time-based automation tasks","Complex recurring job scheduling beyond basic cron"],"limitations":["Requires separate Cronlytic account and API credentials","Subject to Cronlytic plan limits on job count","Requires manual setup of Cronlytic credentials in n8n"],"relatedNodes":["Cron Trigger","Webhook","Credentials"]}


node_type: @telnyx/n8n-nodes-telnyx-ai.telnyxAi
package_name: @telnyx/n8n-nodes-telnyx-ai
display_name: Telnyx AI
description: Interact with Telnyx AI API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: team-telnyx
author_github_url: https://github.com/team-telnyx/n8n-nodes-telnyx-ai.git
npm_package_name: @telnyx/n8n-nodes-telnyx-ai
npm_version: 1.5.5
community_fetched_at: 2026-04-16T09:43:36.200Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Assistant",
          "value": "assistants"
        },
        {
          "name": "Assistant Event",
          "value": "assistantEvents"
        },
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Conversation",
          "value": "conversations"
        },
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many chat models",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "setKeyValue",
                  "enabled": "={{$parameter[\"simplify\"]}}",
                  "properties": {
                    "id": "={{$responseItem.id}}",
                    "created": "={{$responseItem.created}}",
                    "owned_by": "={{$responseItem.owned_by}}",
                    "languages": "={{$responseItem.languages}}",
                    "parameters": "={{$responseItem.parameters}}",
                    "context_length": "={{$responseItem.context_length}}"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/models",
              "method": "GET"
            }
          },
          "description": "Returns metadata about many chat models"
        },
        {
          "name": "Create Chat Completion",
          "value": "createChatCompletion",
          "action": "Create chat completion",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/ai/chat/completions",
              "method": "POST"
            }
          },
          "description": "Chat a new chat completion with a language model"
        },
        {
          "name": "Summarize File",
          "value": "summarizeFile",
          "action": "Summarize file content",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/summarize",
              "method": "POST"
            }
          },
          "description": "Generate a summary of a file's contents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many voices",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "voices"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/text-to-speech/voices",
              "method": "GET"
            }
          },
          "description": "Returns metadata about many voices"
        },
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/v2/text-to-speech/speech",
              "method": "POST",
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Converts text into speech and returns audio"
        },
        {
          "name": "Speech to Text",
          "value": "speechToText",
          "action": "Transcribe audio",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/ai/audio/transcriptions",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              }
            }
          },
          "description": "Transcribe an audio file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many assistants",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/assistants",
              "method": "GET"
            }
          },
          "description": "Returns a list of many AI Assistants configured by the user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an assistant",
          "routing": {
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}",
              "method": "GET"
            }
          },
          "description": "Returns a specific AI Assistant by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistants"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a scheduled event",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
              "method": "POST"
            }
          },
          "description": "Create a new scheduled event for an assistant"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many events",
          "routing": {
            "send": {
              "paginate": "page_number",
              "property": "page_size"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
              "method": "GET"
            }
          },
          "description": "Get scheduled events for an assistant with pagination and filtering"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an event",
          "routing": {
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a scheduled event by event ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an event",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"deleted\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
              "method": "DELETE",
              "returnFullResponse": true
            }
          },
          "description": "Delete a scheduled event by event ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistantEvents"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many conversations",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/conversations",
              "method": "GET"
            }
          },
          "description": "Returns a list of conversations"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}",
              "method": "GET"
            }
          },
          "description": "Returns a specific conversation by ID"
        },
        {
          "name": "Get Messages",
          "value": "getMessages",
          "action": "Get conversation messages",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/messages",
              "method": "GET"
            }
          },
          "description": "Retrieve messages for a specific conversation, including tool calls made by the assistant"
        },
        {
          "name": "Get Conversation Insights",
          "value": "getConversationInsights",
          "action": "Get insights for a conversation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/conversations-insights",
              "method": "GET"
            }
          },
          "description": "Retrieve insights for a specific conversation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversations"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many chat models",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            },
            {
              "type": "setKeyValue",
              "enabled": "={{$parameter[\"simplify\"]}}",
              "properties": {
                "id": "={{$responseItem.id}}",
                "created": "={{$responseItem.created}}",
                "owned_by": "={{$responseItem.owned_by}}",
                "languages": "={{$responseItem.languages}}",
                "parameters": "={{$responseItem.parameters}}",
                "context_length": "={{$responseItem.context_length}}"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/models",
          "method": "GET"
        }
      },
      "description": "Returns metadata about many chat models",
      "resource": "chat"
    },
    {
      "name": "Create Chat Completion",
      "value": "createChatCompletion",
      "action": "Create chat completion",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/ai/chat/completions",
          "method": "POST"
        }
      },
      "description": "Chat a new chat completion with a language model",
      "resource": "chat"
    },
    {
      "name": "Summarize File",
      "value": "summarizeFile",
      "action": "Summarize file content",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/summarize",
          "method": "POST"
        }
      },
      "description": "Generate a summary of a file's contents",
      "resource": "chat"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many voices",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "voices"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/text-to-speech/voices",
          "method": "GET"
        }
      },
      "description": "Returns metadata about many voices",
      "resource": "voice"
    },
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Convert text to speech",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/v2/text-to-speech/speech",
          "method": "POST",
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Converts text into speech and returns audio",
      "resource": "voice"
    },
    {
      "name": "Speech to Text",
      "value": "speechToText",
      "action": "Transcribe audio",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/ai/audio/transcriptions",
          "method": "POST",
          "headers": {
            "Content-Type": "multipart/form-data"
          }
        }
      },
      "description": "Transcribe an audio file",
      "resource": "voice"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many assistants",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/assistants",
          "method": "GET"
        }
      },
      "description": "Returns a list of many AI Assistants configured by the user",
      "resource": "assistants"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an assistant",
      "routing": {
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}",
          "method": "GET"
        }
      },
      "description": "Returns a specific AI Assistant by ID",
      "resource": "assistants"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a scheduled event",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
          "method": "POST"
        }
      },
      "description": "Create a new scheduled event for an assistant",
      "resource": "assistantEvents"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many events",
      "routing": {
        "send": {
          "paginate": "page_number",
          "property": "page_size"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
          "method": "GET"
        }
      },
      "description": "Get scheduled events for an assistant with pagination and filtering",
      "resource": "assistantEvents"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an event",
      "routing": {
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a scheduled event by event ID",
      "resource": "assistantEvents"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an event",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"deleted\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
          "method": "DELETE",
          "returnFullResponse": true
        }
      },
      "description": "Delete a scheduled event by event ID",
      "resource": "assistantEvents"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many conversations",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/conversations",
          "method": "GET"
        }
      },
      "description": "Returns a list of conversations",
      "resource": "conversations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a conversation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}",
          "method": "GET"
        }
      },
      "description": "Returns a specific conversation by ID",
      "resource": "conversations"
    },
    {
      "name": "Get Messages",
      "value": "getMessages",
      "action": "Get conversation messages",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/messages",
          "method": "GET"
        }
      },
      "description": "Retrieve messages for a specific conversation, including tool calls made by the assistant",
      "resource": "conversations"
    },
    {
      "name": "Get Conversation Insights",
      "value": "getConversationInsights",
      "action": "Get insights for a conversation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/conversations-insights",
          "method": "GET"
        }
      },
      "description": "Retrieve insights for a specific conversation",
      "resource": "conversations"
    }
  ]

npm_readme:
  # @telnyx/n8n-nodes-telnyx-ai

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

  Telnyx Voice AI is a comprehensive platform that provides advanced conversational AI capabilities, including text-to-speech, speech-to-text, chat completions, and voice assistants with real-time interaction features.

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

  You can install this package using npm:

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

  ## Operations

  This node supports the following resources and operations:

  ### Assistants

  - **Get Many**: Retrieve a list of AI Assistants configured by the user
  - **Get**: Get details of a specific assistant

  ### Assistant Events

  - **Create**: Create a scheduled event for an assistant
  - **Get Many**: Get a list of assistant events
  - **Get**: Get details of a specific event
  - **Delete**: Delete an assistant event

  ### Chat

  - **Get Many Models**: Get metadata about available chat models
  - **Create Chat Completion**: Generate chat completions using AI models
  - **Summarize**: Summarize file content using AI

  ### Conversations

  - **Get Many**: Retrieve a list of conversations
  - **Get**: Get details of a specific conversation
  - **Get Messages**: Get messages from a conversation
  - **Get Insights**: Get AI-generated insights for a conversation

  ### Voice

  - **Get Many Voices**: Get metadata about available voice models
  - **Text to Speech**: Convert text to speech audio
  - **Speech to Text**: Transcribe audio to text

  ## Credentials

  To use this node, you need to authenticate with the Telnyx API using your API key.

  ### Prerequisites

  1. Sign up for a [Telnyx account](https://telnyx.com)
  2. Navigate to your [API Keys page](https://portal.telnyx.com/#/app/api-keys) in the Telnyx Portal
  3. Generate a new API key or use an existing one

  ### Setting up credentials in n8n

  1. In n8n, go to **Credentials** and create new credentials
  2. Search for "Telnyx API" and select it
  3. Enter your Telnyx API key in the **API Key** field
  4. Test the credentials to ensure they work correctly

  For more information about Telnyx API keys, refer to the [official documentation](https://support.telnyx.com/en/articles/4305158-api-keys-and-how-to-use-them).

  ## Compatibility

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

  This node is built using n8n's programmatic-style node architecture and follows the latest n8n development best practices.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Telnyx Voice AI API documentation](https://developers.telnyx.com/docs/api/v2/ai)
  - [Telnyx Portal](https://portal.telnyx.com)
  - [Telnyx Support](https://support.telnyx.com)

  ## Version history

  ### 1.5.5 (Current)

  - Comprehensive Telnyx Voice AI integration
  - Support for Assistants, Chat, Voice, Conversations, and Assistant Events
  - Full CRUD operations for assistant events
  - Text-to-speech and speech-to-text capabilities
  - Chat completions and file summarization
  - Conversation insights and message management

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Telnyx Voice AI to perform conversational AI tasks including text-to-speech, speech-to-text, chat completions, and voice assistant management within n8n workflows.","capabilities":["Retrieve and manage AI Assistants (Get, Get Many)","Create, retrieve, delete, and list Assistant Events","Manage conversations (Get, Get Many, Get Messages, Get Insights)","Generate chat completions using AI models","Summarize file content using AI","Retrieve available chat models and voice models metadata","Perform Text-to-Speech conversion","Perform Speech-to-Text transcription"],"authentication":"API key required","commonUseCases":["Automated customer service interactions using voice assistants","Converting text documents or transcripts to speech for announcements","Transcribing audio recordings for analysis or storage","Integrating AI chatbots into n8n workflows for customer support","Generating summaries from large text files or conversation logs"],"limitations":["Node is a community node and may lack official n8n support updates","Requires valid Telnyx API key and account access"],"relatedNodes":["Telnyx Voice","Telnyx Twilio","Generic HTTP Request","Generic AI"]}


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

updated_at: 2026-04-16 09:43:36
author_name: mihailozepina
author_github_url: https://github.com/mihailozepina/
npm_package_name: n8n-nodes-aimfox
npm_version: 1.0.14
community_fetched_at: 2026-04-16T09:43:36.201Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "account",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Blacklist",
          "value": "blacklist"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Custom Variable",
          "value": "customVariable"
        },
        {
          "name": "Label",
          "value": "label"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Template",
          "value": "template"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAccounts",
      "options": [
        {
          "name": "Get Account Limits",
          "value": "getAccountLimits",
          "action": "Get account limits",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get the interaction limits for a specific account"
        },
        {
          "name": "List Accounts",
          "value": "listAccounts",
          "action": "List accounts",
          "routing": {
            "request": {
              "url": "/accounts",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all accounts in the workspace"
        },
        {
          "name": "Set Account Limits",
          "value": "setAccountLimits",
          "action": "Set account limits",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
              "body": {
                "inmail": "={{$parameter[\"inmailLimit\"]}}",
                "connect": "={{$parameter[\"connectLimit\"]}}",
                "message_request": "={{$parameter[\"messageRequestLimit\"]}}"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Update the weekly interaction limits for an account"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listBlacklist",
      "options": [
        {
          "name": "Add Companies to Blacklist",
          "value": "addCompaniesToBlacklist",
          "action": "Add companies to blacklist",
          "routing": {
            "request": {
              "url": "/blacklist-companies",
              "body": {
                "companies": "={{$parameter[\"companyUrls\"].split(\",\").map(url => url.trim())}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add multiple LinkedIn companies to the blacklist"
        },
        {
          "name": "Add Profile to Blacklist",
          "value": "addProfileToBlacklist",
          "action": "Add profile to blacklist",
          "routing": {
            "request": {
              "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add profile to the blacklist using the profile URN"
        },
        {
          "name": "List Blacklisted Companies",
          "value": "listBlacklistedCompanies",
          "action": "List blacklisted companies",
          "routing": {
            "request": {
              "url": "/blacklist-companies",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all blacklisted LinkedIn companies in the workspace"
        },
        {
          "name": "List Blacklisted Profiles",
          "value": "listBlacklist",
          "action": "List blacklisted profiles",
          "routing": {
            "request": {
              "url": "/blacklist",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all blacklisted profiles in the workspace"
        },
        {
          "name": "Remove Company From Blacklist",
          "value": "removeCompanyFromBlacklist",
          "action": "Remove company from blacklist",
          "routing": {
            "request": {
              "url": "=/blacklist-companies/{{$parameter[\"companyUrn\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a LinkedIn company from the blacklist using the company URN"
        },
        {
          "name": "Remove Profile From Blacklist",
          "value": "removeProfileFromBlacklist",
          "action": "Remove profile from blacklist",
          "routing": {
            "request": {
              "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove profile from the blacklist using the profile URN"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "blacklist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listConversations",
      "options": [
        {
          "name": "Get Conversation",
          "value": "getConversation",
          "action": "Get conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific conversation by URN"
        },
        {
          "name": "Get Lead Conversation",
          "value": "getLeadConversation",
          "action": "Get lead conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadId\"]}}/conversation",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific lead conversation URN"
        },
        {
          "name": "List Conversations",
          "value": "listConversations",
          "action": "List conversations",
          "routing": {
            "request": {
              "url": "/conversations",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all conversations for the selected workspace"
        },
        {
          "name": "Mark Conversation As Read",
          "value": "markConversationAsRead",
          "action": "Mark conversation as read",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}/mark-as-read",
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Mark an existing conversation as read"
        },
        {
          "name": "Send Message To Conversation",
          "value": "sendMessageToConversation",
          "action": "Send message to conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
              "body": {
                "message": "={{$parameter[\"conversationMessage\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Send a message to an existing conversation"
        },
        {
          "name": "Start Conversation",
          "value": "startConversation",
          "action": "Start conversation",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations",
              "body": {
                "message": "={{$parameter[\"conversationMessage\"]}}",
                "recipients": [
                  "={{$parameter[\"leadId\"]}}"
                ]
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Start a new conversation with the lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCampaigns",
      "options": [
        {
          "name": "Add Profile to Campaign",
          "value": "addProfileToCampaign",
          "action": "Add profile to campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience",
              "body": {
                "profile_url": "={{$parameter[\"profileUrl\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add profile to the selected campaign"
        },
        {
          "name": "Add Profile to Campaign with Custom Variables",
          "value": "addProfileToCampaignWithCustomVariables",
          "action": "Add profile to campaign with custom variables",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/multiple",
              "body": {
                "type": "profile_url",
                "profiles": [
                  {
                    "profile_url": "={{$parameter[\"profileUrl\"]}}",
                    "custom_variables": "={{JSON.parse($parameter[\"customVariables\"])}}"
                  }
                ]
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add profile to the selected campaign with custom variables"
        },
        {
          "name": "Create Campaign",
          "value": "createCampaign",
          "action": "Create a campaign",
          "routing": {
            "request": {
              "url": "/campaigns",
              "body": {
                "name": "={{$parameter[\"campaignName\"]}}",
                "type": "={{$parameter[\"campaignType\"]}}",
                "account_ids": "={{$parameter[\"accountIds\"].split(\",\").map(id => id.trim())}}",
                "audience_size": "={{$parameter[\"audienceSize\"]}}",
                "outreach_type": "={{$parameter[\"outreachType\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Create a new Aimfox campaign"
        },
        {
          "name": "Get Campaign",
          "value": "getCampaign",
          "action": "Get a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific campaign by ID"
        },
        {
          "name": "List Campaigns",
          "value": "listCampaigns",
          "action": "List campaigns",
          "routing": {
            "request": {
              "url": "/campaigns",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all campaigns in the workspace"
        },
        {
          "name": "Pause",
          "value": "pauseCampaign",
          "action": "Pause a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
              "body": {
                "state": "PAUSED"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Pause a running campaign"
        },
        {
          "name": "Remove Profile From Campaign",
          "value": "removeProfileFromCampaign",
          "action": "Remove profile from campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/{{$parameter[\"profileUrnOrIdentifier\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a profile from the selected campaign using URN or public identifier"
        },
        {
          "name": "Resume",
          "value": "resumeCampaign",
          "action": "Resume a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
              "body": {
                "state": "ACTIVE"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Resume a paused campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCampaignCustomVariables",
      "options": [
        {
          "name": "Add Custom Variables to Target",
          "value": "addCustomVariablesToTarget",
          "action": "Add custom variables to target",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
              "body": {
                "custom_variables": "={{[{ target_urn: $parameter[\"targetUrn\"], variables: JSON.parse($parameter[\"variables\"]) }]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add custom variables to a specific target in a campaign"
        },
        {
          "name": "Get Campaign Custom Variables",
          "value": "getCampaignCustomVariables",
          "action": "Get campaign custom variables",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get all custom variables for a specific campaign"
        },
        {
          "name": "Get Target Custom Variables",
          "value": "getTargetCustomVariables",
          "action": "Get target custom variables",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables/{{$parameter[\"targetUrn\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get custom variables for a specific target in a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customVariable"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listLabels",
      "options": [
        {
          "name": "Add Label",
          "value": "addLabel",
          "action": "Add label",
          "routing": {
            "request": {
              "url": "/labels",
              "body": {
                "name": "={{$parameter[\"labelName\"]}}",
                "color": "={{$parameter[\"labelColor\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add a new label to the selected workspace"
        },
        {
          "name": "Delete Label",
          "value": "deleteLabel",
          "action": "Delete label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Delete a label from the workspace"
        },
        {
          "name": "Edit Label",
          "value": "editLabel",
          "action": "Edit label",
          "routing": {
            "request": {
              "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
              "body": {
                "name": "={{$parameter[\"labelName\"]}}",
                "color": "={{$parameter[\"labelColor\"]}}"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Edit an existing label in the workspace"
        },
        {
          "name": "List Labels",
          "value": "listLabels",
          "action": "List labels",
          "routing": {
            "request": {
              "url": "/labels",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all labels for the selected workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "label"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listRecentLeads",
      "options": [
        {
          "name": "Add Label To Lead",
          "value": "addLabelToLead",
          "action": "Add label to lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add a new label to the selected lead"
        },
        {
          "name": "Add Note To Lead",
          "value": "addNoteToLead",
          "action": "Add note to lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
              "body": {
                "text": "={{$parameter[\"noteText\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Add a new note to the selected lead"
        },
        {
          "name": "Delete Note From Lead",
          "value": "deleteNoteFromLead",
          "action": "Delete note from lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Delete a note from the selected lead"
        },
        {
          "name": "Get Lead",
          "value": "getLead",
          "action": "Get lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific lead by ID"
        },
        {
          "name": "Get Lead Custom Variables",
          "value": "getLeadCustomVariables",
          "action": "Get lead custom variables",
          "routing": {
            "request": {
              "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadUrn\"]}}/custom-variables",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get custom variables for a specific lead"
        },
        {
          "name": "List Lead Notes",
          "value": "listLeadNotes",
          "action": "List lead notes",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all notes for the selected lead"
        },
        {
          "name": "List Recent Leads",
          "value": "listRecentLeads",
          "action": "List recent leads",
          "routing": {
            "request": {
              "url": "/analytics/recent-leads",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List recent leads for the selected workspace"
        },
        {
          "name": "Remove Label From Lead",
          "value": "removeLabelFromLead",
          "action": "Remove label from lead",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a label from the selected lead"
        },
        {
          "name": "Search Leads",
          "value": "searchLeads",
          "action": "Search leads",
          "routing": {
            "request": {
              "qs": {
                "count": "={{$parameter[\"count\"]}}",
                "start": "={{$parameter[\"start\"]}}"
              },
              "url": "/leads:search",
              "body": {
                "labels": "={{$parameter[\"additionalFilters\"]?.filterLabels ? $parameter[\"additionalFilters\"].filterLabels.split(\",\").map(l => l.trim()) : []}}",
                "skills": "={{$parameter[\"additionalFilters\"]?.skills ? $parameter[\"additionalFilters\"].skills.split(\",\").map(s => s.trim()) : []}}",
                "lead_of": "={{$parameter[\"additionalFilters\"]?.leadOf ? $parameter[\"additionalFilters\"].leadOf.split(\",\").map(l => l.trim()) : []}}",
                "origins": "={{$parameter[\"additionalFilters\"]?.origins ? $parameter[\"additionalFilters\"].origins.split(\",\").map(o => o.trim()) : []}}",
                "keywords": "={{$parameter[\"keywords\"] || \"\"}}",
                "optimize": "={{$parameter[\"optimize\"]}}",
                "education": "={{$parameter[\"additionalFilters\"]?.education ? $parameter[\"additionalFilters\"].education.split(\",\").map(e => e.trim()) : []}}",
                "interests": "={{$parameter[\"additionalFilters\"]?.interests ? $parameter[\"additionalFilters\"].interests.split(\",\").map(i => i.trim()) : []}}",
                "languages": "={{$parameter[\"additionalFilters\"]?.languages ? $parameter[\"additionalFilters\"].languages.split(\",\").map(l => l.trim()) : []}}",
                "locations": "={{$parameter[\"additionalFilters\"]?.locations ? $parameter[\"additionalFilters\"].locations.split(\",\").map(l => l.trim()) : []}}",
                "past_companies": "={{$parameter[\"additionalFilters\"]?.pastCompanies ? $parameter[\"additionalFilters\"].pastCompanies.split(\",\").map(c => c.trim()) : []}}",
                "current_companies": "={{$parameter[\"additionalFilters\"]?.currentCompanies ? $parameter[\"additionalFilters\"].currentCompanies.split(\",\").map(c => c.trim()) : []}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Search through all leads in the workspace"
        },
        {
          "name": "Update Note",
          "value": "updateNote",
          "action": "Update note",
          "routing": {
            "request": {
              "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
              "body": {
                "text": "={{$parameter[\"noteText\"]}}"
              },
              "method": "PATCH",
              "headers": {}
            }
          },
          "description": "Update a note for the selected lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTemplates",
      "options": [
        {
          "name": "List Templates",
          "value": "listTemplates",
          "action": "List templates",
          "routing": {
            "request": {
              "url": "/templates",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "List all templates in the selected workspace"
        },
        {
          "name": "Get Template",
          "value": "getTemplate",
          "action": "Get template",
          "routing": {
            "request": {
              "url": "=/templates/{{$parameter[\"templateId\"]}}",
              "method": "GET",
              "headers": {}
            }
          },
          "description": "Get a specific template by ID"
        },
        {
          "name": "Create Template",
          "value": "createTemplate",
          "action": "Create template",
          "routing": {
            "request": {
              "url": "/templates",
              "body": {
                "ai": "={{$parameter[\"templateAi\"]}}",
                "name": "={{$parameter[\"templateName\"]}}",
                "type": "={{$parameter[\"templateType\"]}}",
                "message": "={{$parameter[\"templateMessage\"]}}",
                "subject": "={{$parameter[\"templateSubject\"]}}"
              },
              "method": "POST",
              "headers": {}
            }
          },
          "description": "Create a new template in the selected workspace"
        },
        {
          "name": "Remove Template",
          "value": "removeTemplate",
          "action": "Remove template",
          "routing": {
            "request": {
              "url": "=/templates/{{$parameter[\"templateId\"]}}",
              "method": "DELETE",
              "headers": {}
            }
          },
          "description": "Remove a template from the workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Account Limits",
      "value": "getAccountLimits",
      "action": "Get account limits",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get the interaction limits for a specific account",
      "resource": "account"
    },
    {
      "name": "List Accounts",
      "value": "listAccounts",
      "action": "List accounts",
      "routing": {
        "request": {
          "url": "/accounts",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all accounts in the workspace",
      "resource": "account"
    },
    {
      "name": "Set Account Limits",
      "value": "setAccountLimits",
      "action": "Set account limits",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/limits",
          "body": {
            "inmail": "={{$parameter[\"inmailLimit\"]}}",
            "connect": "={{$parameter[\"connectLimit\"]}}",
            "message_request": "={{$parameter[\"messageRequestLimit\"]}}"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Update the weekly interaction limits for an account",
      "resource": "account"
    },
    {
      "name": "Add Companies to Blacklist",
      "value": "addCompaniesToBlacklist",
      "action": "Add companies to blacklist",
      "routing": {
        "request": {
          "url": "/blacklist-companies",
          "body": {
            "companies": "={{$parameter[\"companyUrls\"].split(\",\").map(url => url.trim())}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add multiple LinkedIn companies to the blacklist",
      "resource": "blacklist"
    },
    {
      "name": "Add Profile to Blacklist",
      "value": "addProfileToBlacklist",
      "action": "Add profile to blacklist",
      "routing": {
        "request": {
          "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add profile to the blacklist using the profile URN",
      "resource": "blacklist"
    },
    {
      "name": "List Blacklisted Companies",
      "value": "listBlacklistedCompanies",
      "action": "List blacklisted companies",
      "routing": {
        "request": {
          "url": "/blacklist-companies",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all blacklisted LinkedIn companies in the workspace",
      "resource": "blacklist"
    },
    {
      "name": "List Blacklisted Profiles",
      "value": "listBlacklist",
      "action": "List blacklisted profiles",
      "routing": {
        "request": {
          "url": "/blacklist",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all blacklisted profiles in the workspace",
      "resource": "blacklist"
    },
    {
      "name": "Remove Company From Blacklist",
      "value": "removeCompanyFromBlacklist",
      "action": "Remove company from blacklist",
      "routing": {
        "request": {
          "url": "=/blacklist-companies/{{$parameter[\"companyUrn\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a LinkedIn company from the blacklist using the company URN",
      "resource": "blacklist"
    },
    {
      "name": "Remove Profile From Blacklist",
      "value": "removeProfileFromBlacklist",
      "action": "Remove profile from blacklist",
      "routing": {
        "request": {
          "url": "=/blacklist/{{$parameter[\"profileUrn\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove profile from the blacklist using the profile URN",
      "resource": "blacklist"
    },
    {
      "name": "Get Conversation",
      "value": "getConversation",
      "action": "Get conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific conversation by URN",
      "resource": "conversation"
    },
    {
      "name": "Get Lead Conversation",
      "value": "getLeadConversation",
      "action": "Get lead conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadId\"]}}/conversation",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific lead conversation URN",
      "resource": "conversation"
    },
    {
      "name": "List Conversations",
      "value": "listConversations",
      "action": "List conversations",
      "routing": {
        "request": {
          "url": "/conversations",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all conversations for the selected workspace",
      "resource": "conversation"
    },
    {
      "name": "Mark Conversation As Read",
      "value": "markConversationAsRead",
      "action": "Mark conversation as read",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}/mark-as-read",
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Mark an existing conversation as read",
      "resource": "conversation"
    },
    {
      "name": "Send Message To Conversation",
      "value": "sendMessageToConversation",
      "action": "Send message to conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations/{{$parameter[\"conversationUrn\"]}}",
          "body": {
            "message": "={{$parameter[\"conversationMessage\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Send a message to an existing conversation",
      "resource": "conversation"
    },
    {
      "name": "Start Conversation",
      "value": "startConversation",
      "action": "Start conversation",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/conversations",
          "body": {
            "message": "={{$parameter[\"conversationMessage\"]}}",
            "recipients": [
              "={{$parameter[\"leadId\"]}}"
            ]
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Start a new conversation with the lead",
      "resource": "conversation"
    },
    {
      "name": "Add Profile to Campaign",
      "value": "addProfileToCampaign",
      "action": "Add profile to campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience",
          "body": {
            "profile_url": "={{$parameter[\"profileUrl\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add profile to the selected campaign",
      "resource": "campaign"
    },
    {
      "name": "Add Profile to Campaign with Custom Variables",
      "value": "addProfileToCampaignWithCustomVariables",
      "action": "Add profile to campaign with custom variables",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/multiple",
          "body": {
            "type": "profile_url",
            "profiles": [
              {
                "profile_url": "={{$parameter[\"profileUrl\"]}}",
                "custom_variables": "={{JSON.parse($parameter[\"customVariables\"])}}"
              }
            ]
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add profile to the selected campaign with custom variables",
      "resource": "campaign"
    },
    {
      "name": "Create Campaign",
      "value": "createCampaign",
      "action": "Create a campaign",
      "routing": {
        "request": {
          "url": "/campaigns",
          "body": {
            "name": "={{$parameter[\"campaignName\"]}}",
            "type": "={{$parameter[\"campaignType\"]}}",
            "account_ids": "={{$parameter[\"accountIds\"].split(\",\").map(id => id.trim())}}",
            "audience_size": "={{$parameter[\"audienceSize\"]}}",
            "outreach_type": "={{$parameter[\"outreachType\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Create a new Aimfox campaign",
      "resource": "campaign"
    },
    {
      "name": "Get Campaign",
      "value": "getCampaign",
      "action": "Get a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific campaign by ID",
      "resource": "campaign"
    },
    {
      "name": "List Campaigns",
      "value": "listCampaigns",
      "action": "List campaigns",
      "routing": {
        "request": {
          "url": "/campaigns",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all campaigns in the workspace",
      "resource": "campaign"
    },
    {
      "name": "Pause",
      "value": "pauseCampaign",
      "action": "Pause a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
          "body": {
            "state": "PAUSED"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Pause a running campaign",
      "resource": "campaign"
    },
    {
      "name": "Remove Profile From Campaign",
      "value": "removeProfileFromCampaign",
      "action": "Remove profile from campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/audience/{{$parameter[\"profileUrnOrIdentifier\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a profile from the selected campaign using URN or public identifier",
      "resource": "campaign"
    },
    {
      "name": "Resume",
      "value": "resumeCampaign",
      "action": "Resume a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}",
          "body": {
            "state": "ACTIVE"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Resume a paused campaign",
      "resource": "campaign"
    },
    {
      "name": "Add Custom Variables to Target",
      "value": "addCustomVariablesToTarget",
      "action": "Add custom variables to target",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
          "body": {
            "custom_variables": "={{[{ target_urn: $parameter[\"targetUrn\"], variables: JSON.parse($parameter[\"variables\"]) }]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add custom variables to a specific target in a campaign",
      "resource": "customVariable"
    },
    {
      "name": "Get Campaign Custom Variables",
      "value": "getCampaignCustomVariables",
      "action": "Get campaign custom variables",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get all custom variables for a specific campaign",
      "resource": "customVariable"
    },
    {
      "name": "Get Target Custom Variables",
      "value": "getTargetCustomVariables",
      "action": "Get target custom variables",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter[\"campaignId\"]}}/custom-variables/{{$parameter[\"targetUrn\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get custom variables for a specific target in a campaign",
      "resource": "customVariable"
    },
    {
      "name": "Add Label",
      "value": "addLabel",
      "action": "Add label",
      "routing": {
        "request": {
          "url": "/labels",
          "body": {
            "name": "={{$parameter[\"labelName\"]}}",
            "color": "={{$parameter[\"labelColor\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add a new label to the selected workspace",
      "resource": "label"
    },
    {
      "name": "Delete Label",
      "value": "deleteLabel",
      "action": "Delete label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Delete a label from the workspace",
      "resource": "label"
    },
    {
      "name": "Edit Label",
      "value": "editLabel",
      "action": "Edit label",
      "routing": {
        "request": {
          "url": "=/labels/{{$parameter[\"workspaceLabelId\"]}}",
          "body": {
            "name": "={{$parameter[\"labelName\"]}}",
            "color": "={{$parameter[\"labelColor\"]}}"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Edit an existing label in the workspace",
      "resource": "label"
    },
    {
      "name": "List Labels",
      "value": "listLabels",
      "action": "List labels",
      "routing": {
        "request": {
          "url": "/labels",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all labels for the selected workspace",
      "resource": "label"
    },
    {
      "name": "Add Label To Lead",
      "value": "addLabelToLead",
      "action": "Add label to lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add a new label to the selected lead",
      "resource": "lead"
    },
    {
      "name": "Add Note To Lead",
      "value": "addNoteToLead",
      "action": "Add note to lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
          "body": {
            "text": "={{$parameter[\"noteText\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Add a new note to the selected lead",
      "resource": "lead"
    },
    {
      "name": "Delete Note From Lead",
      "value": "deleteNoteFromLead",
      "action": "Delete note from lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Delete a note from the selected lead",
      "resource": "lead"
    },
    {
      "name": "Get Lead",
      "value": "getLead",
      "action": "Get lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific lead by ID",
      "resource": "lead"
    },
    {
      "name": "Get Lead Custom Variables",
      "value": "getLeadCustomVariables",
      "action": "Get lead custom variables",
      "routing": {
        "request": {
          "url": "=/accounts/{{$parameter[\"accountId\"]}}/leads/{{$parameter[\"leadUrn\"]}}/custom-variables",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get custom variables for a specific lead",
      "resource": "lead"
    },
    {
      "name": "List Lead Notes",
      "value": "listLeadNotes",
      "action": "List lead notes",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all notes for the selected lead",
      "resource": "lead"
    },
    {
      "name": "List Recent Leads",
      "value": "listRecentLeads",
      "action": "List recent leads",
      "routing": {
        "request": {
          "url": "/analytics/recent-leads",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List recent leads for the selected workspace",
      "resource": "lead"
    },
    {
      "name": "Remove Label From Lead",
      "value": "removeLabelFromLead",
      "action": "Remove label from lead",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/labels/{{$parameter[\"labelId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a label from the selected lead",
      "resource": "lead"
    },
    {
      "name": "Search Leads",
      "value": "searchLeads",
      "action": "Search leads",
      "routing": {
        "request": {
          "qs": {
            "count": "={{$parameter[\"count\"]}}",
            "start": "={{$parameter[\"start\"]}}"
          },
          "url": "/leads:search",
          "body": {
            "labels": "={{$parameter[\"additionalFilters\"]?.filterLabels ? $parameter[\"additionalFilters\"].filterLabels.split(\",\").map(l => l.trim()) : []}}",
            "skills": "={{$parameter[\"additionalFilters\"]?.skills ? $parameter[\"additionalFilters\"].skills.split(\",\").map(s => s.trim()) : []}}",
            "lead_of": "={{$parameter[\"additionalFilters\"]?.leadOf ? $parameter[\"additionalFilters\"].leadOf.split(\",\").map(l => l.trim()) : []}}",
            "origins": "={{$parameter[\"additionalFilters\"]?.origins ? $parameter[\"additionalFilters\"].origins.split(\",\").map(o => o.trim()) : []}}",
            "keywords": "={{$parameter[\"keywords\"] || \"\"}}",
            "optimize": "={{$parameter[\"optimize\"]}}",
            "education": "={{$parameter[\"additionalFilters\"]?.education ? $parameter[\"additionalFilters\"].education.split(\",\").map(e => e.trim()) : []}}",
            "interests": "={{$parameter[\"additionalFilters\"]?.interests ? $parameter[\"additionalFilters\"].interests.split(\",\").map(i => i.trim()) : []}}",
            "languages": "={{$parameter[\"additionalFilters\"]?.languages ? $parameter[\"additionalFilters\"].languages.split(\",\").map(l => l.trim()) : []}}",
            "locations": "={{$parameter[\"additionalFilters\"]?.locations ? $parameter[\"additionalFilters\"].locations.split(\",\").map(l => l.trim()) : []}}",
            "past_companies": "={{$parameter[\"additionalFilters\"]?.pastCompanies ? $parameter[\"additionalFilters\"].pastCompanies.split(\",\").map(c => c.trim()) : []}}",
            "current_companies": "={{$parameter[\"additionalFilters\"]?.currentCompanies ? $parameter[\"additionalFilters\"].currentCompanies.split(\",\").map(c => c.trim()) : []}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Search through all leads in the workspace",
      "resource": "lead"
    },
    {
      "name": "Update Note",
      "value": "updateNote",
      "action": "Update note",
      "routing": {
        "request": {
          "url": "=/leads/{{$parameter[\"leadId\"]}}/notes/{{$parameter[\"noteId\"]}}",
          "body": {
            "text": "={{$parameter[\"noteText\"]}}"
          },
          "method": "PATCH",
          "headers": {}
        }
      },
      "description": "Update a note for the selected lead",
      "resource": "lead"
    },
    {
      "name": "List Templates",
      "value": "listTemplates",
      "action": "List templates",
      "routing": {
        "request": {
          "url": "/templates",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "List all templates in the selected workspace",
      "resource": "template"
    },
    {
      "name": "Get Template",
      "value": "getTemplate",
      "action": "Get template",
      "routing": {
        "request": {
          "url": "=/templates/{{$parameter[\"templateId\"]}}",
          "method": "GET",
          "headers": {}
        }
      },
      "description": "Get a specific template by ID",
      "resource": "template"
    },
    {
      "name": "Create Template",
      "value": "createTemplate",
      "action": "Create template",
      "routing": {
        "request": {
          "url": "/templates",
          "body": {
            "ai": "={{$parameter[\"templateAi\"]}}",
            "name": "={{$parameter[\"templateName\"]}}",
            "type": "={{$parameter[\"templateType\"]}}",
            "message": "={{$parameter[\"templateMessage\"]}}",
            "subject": "={{$parameter[\"templateSubject\"]}}"
          },
          "method": "POST",
          "headers": {}
        }
      },
      "description": "Create a new template in the selected workspace",
      "resource": "template"
    },
    {
      "name": "Remove Template",
      "value": "removeTemplate",
      "action": "Remove template",
      "routing": {
        "request": {
          "url": "=/templates/{{$parameter[\"templateId\"]}}",
          "method": "DELETE",
          "headers": {}
        }
      },
      "description": "Remove a template from the workspace",
      "resource": "template"
    }
  ]

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

  # n8n-nodes-aimfox

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

  Aimfox is a LinkedIn automation platform that helps businesses automate their LinkedIn outreach, lead generation, and social selling activities.

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

  ### Account
  - **Get Account Limits**: Get the interaction limits for a specific account
  - **List Accounts**: List all accounts in the workspace
  - **Set Account Limits**: Update the weekly interaction limits for an account

  ### Blacklist
  - **Add Companies to Blacklist**: Add multiple LinkedIn companies to the blacklist
  - **Add Profile to Blacklist**: Add profile to the blacklist using the profile URN
  - **List Blacklisted Companies**: List all blacklisted LinkedIn companies in the workspace
  - **List Blacklisted Profiles**: List all blacklisted profiles in the workspace
  - **Remove Company From Blacklist**: Remove a LinkedIn company from the blacklist using the company URN
  - **Remove Profile From Blacklist**: Remove profile from the blacklist using the profile URN

  ### Campaign
  - **Add Profile to Campaign**: Add profile to the selected campaign
  - **Add Profile to Campaign with Custom Variables**: Add profile to the selected campaign with custom variables
  - **Create Campaign**: Create a new Aimfox campaign
  - **Get Campaign**: Get a specific campaign by ID
  - **List Campaigns**: List all campaigns in the workspace
  - **Pause**: Pause a running campaign
  - **Remove Profile From Campaign**: Remove a profile from the selected campaign using URN or public identifier
  - **Resume**: Resume a paused campaign

  ### Conversation
  - **Get Conversation**: Get a specific conversation by URN
  - **Get Lead Conversation**: Get a specific lead conversation URN
  - **List Conversations**: List all conversations for the selected workspace
  - **Mark Conversation As Read**: Mark an existing conversation as read
  - **Send Message To Conversation**: Send a message to an existing conversation
  - **Start Conversation**: Start a new conversation with the lead

  ### Custom Variable
  - **Add Custom Variables to Target**: Add custom variables to a specific target in a campaign
  - **Get Campaign Custom Variables**: Get all custom variables for a specific campaign
  - **Get Target Custom Variables**: Get custom variables for a specific target in a campaign

  ### Label
  - **Add Label**: Add a new label to the selected workspace
  - **Delete Label**: Delete a label from the workspace
  - **Edit Label**: Edit an existing label in the workspace
  - **List Labels**: List all labels for the selected workspace

  ### Lead
  - **Add Label To Lead**: Add a new label to the selected lead
  - **Add Note To Lead**: Add a new note to the selected lead
  - **Delete Note From Lead**: Delete a note from the selected lead
  - **Get Lead**: Get a specific lead by ID
  - **Get Lead Custom Variables**: Get custom variables for a specific lead
  - **List Lead Notes**: List all notes for the selected lead
  - **List Recent Leads**: List recent leads for the selected workspace
  - **Remove Label From Lead**: Remove a label from the selected lead
  - **Search Leads**: Search for leads in the workspace with advanced filters
  - **Update Note**: Update a note for the selected lead

  ### Template
  - **Create Template**: Create a new template in the selected workspace
  - **Get Template**: Get a specific template by ID
  - **List Templates**: List all templates in the selected workspace
  - **Remove Template**: Remove a template from the workspace

  ## Triggers

  This node supports the following triggers:
  - **Account Logged In**: This event triggers when a LinkedIn profile successfully logs into the system.
  - **Account Logged Out**: This event triggers when a LinkedIn profile is logged out of the system.
  - **Connect Accepted**: This event triggers when a LinkedIn connection request is accepted, establishing a new connection between profiles.
  - **Connect Sent**: This event triggers when a LinkedIn connection request is successfully sent.
  - **Inmail Reply**: This event triggers when a user replies to a LinkedIn Inmail message, initiating a conversation.
  - **Inmail**: This event triggers when a LinkedIn Inmail message is successfully sent.
  - **Message Request**: This event triggers when a message request is sent.
  - **Message Sent**: This event triggers when a message is successfully sent to a LinkedIn profile.
  - **New Connection**: This event triggers when a new connection is acquired through Aimfox, indicating the successful addition of a LinkedIn connection.
  - **New Reply**: This event triggers when a user replies to a LinkedIn message, initiating a conversation.
  - **Profile Viewed**: This event triggers when a LinkedIn profile is viewed.

  ## Credentials

  To use this node, you need to authenticate with Aimfox using an API key.

  ### Prerequisites
  1. Sign up for an Aimfox account at [https://aimfox.com](https://aimfox.com)
  2. Generate an API key from your Aimfox dashboard

  ### Setup
  1. In n8n, go to **Settings** > **Credentials**
  2. Click **Create New Credential**
  3. Search for "Aimfox API" and select it
  4. Enter your Aimfox API key
  5. Click **Save**

  The API key will be used to authenticate all requests to the Aimfox API with Bearer token authentication.

  ## Compatibility

  - Minimum n8n version: 0.198.0
  - Tested with n8n versions: 0.198.0+

  ## Usage

  ### Basic Workflow Example
  1. Start with a **Manual Trigger** or **Schedule Trigger**
  2. Add the **Aimfox** node
  3. Select your workspace first (required for most operations)
  4. Choose your desired operation (Account, Campaign, Profile, or Workspace)
  5. Configure the specific operation parameters

  ## Resources

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of LinkedIn outreach, lead generation, and social selling activities through the Aimfox platform.","capabilities":["Manage account limits and list accounts","Manage blacklist of companies and profiles","Create, pause, resume, and manage campaigns","Start, list, and manage conversations with leads","Add custom variables to targets and leads","Manage labels and notes for leads","Create and manage templates","Trigger on LinkedIn events like connection requests, Inmails, and profile views"],"authentication":"API key required (Bearer token)","commonUseCases":["Automated LinkedIn lead generation","Social selling campaigns","LinkedIn outreach automation","Lead management and labeling","Conversation tracking and messaging"],"limitations":["Requires a paid Aimfox account","Requires manual setup of API credentials in n8n"],"relatedNodes":["n8n-nodes-aimfox.aimfox","n8n-nodes-aimfox.aimfox.account","n8n-nodes-aimfox.aimfox.campaign","n8n-nodes-aimfox.aimfox.lead","n8n-nodes-aimfox.aimfox.conversation"]}


node_type: n8n-nodes-belakeai.belakeAi
package_name: n8n-nodes-belakeai
display_name: Belake.ai
description: Belake.ai API operations
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: rique29
author_github_url: https://github.com/belakeaiservicos/
npm_package_name: n8n-nodes-belakeai
npm_version: 1.0.7
community_fetched_at: 2026-04-16T09:43:36.203Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Datasource",
          "value": "datasource"
        },
        {
          "name": "Group",
          "value": "group"
        },
        {
          "name": "Language Model",
          "value": "languageModel"
        },
        {
          "name": "Workspace",
          "value": "workspace"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Agents",
      "options": [
        {
          "name": "Get Agent by ID",
          "value": "Get Agent by ID",
          "action": "Get agent by id"
        },
        {
          "name": "Get Agents",
          "value": "Get Agents",
          "action": "Get agents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Send Message",
      "options": [
        {
          "name": "Get Chat by ID",
          "value": "Get Chat by ID",
          "action": "Get chat by id"
        },
        {
          "name": "Get Chats",
          "value": "Get Chats",
          "action": "Get chats"
        },
        {
          "name": "Send Message",
          "value": "Send Message",
          "action": "Send message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Datasources",
      "options": [
        {
          "name": "Get Datasource by ID",
          "value": "Get Datasource by ID",
          "action": "Get datasource by id"
        },
        {
          "name": "Get Datasources",
          "value": "Get Datasources",
          "action": "Get datasources"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "datasource"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Groups",
      "options": [
        {
          "name": "Get Group by ID",
          "value": "Get Group by ID",
          "action": "Get group by id"
        },
        {
          "name": "Get Groups",
          "value": "Get Groups",
          "action": "Get groups"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Language Models",
      "options": [
        {
          "name": "Get Language Model by ID",
          "value": "Get Language Model by ID",
          "action": "Get language model by id"
        },
        {
          "name": "Get Language Models",
          "value": "Get Language Models",
          "action": "Get language models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "languageModel"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Get Workspaces",
      "options": [
        {
          "name": "Get Workspace by ID",
          "value": "Get Workspace by ID",
          "action": "Get workspace by id"
        },
        {
          "name": "Get Workspaces",
          "value": "Get Workspaces",
          "action": "Get workspaces"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Agent by ID",
      "value": "Get Agent by ID",
      "action": "Get agent by id",
      "resource": "agent"
    },
    {
      "name": "Get Agents",
      "value": "Get Agents",
      "action": "Get agents",
      "resource": "agent"
    },
    {
      "name": "Get Chat by ID",
      "value": "Get Chat by ID",
      "action": "Get chat by id",
      "resource": "chat"
    },
    {
      "name": "Get Chats",
      "value": "Get Chats",
      "action": "Get chats",
      "resource": "chat"
    },
    {
      "name": "Send Message",
      "value": "Send Message",
      "action": "Send message",
      "resource": "chat"
    },
    {
      "name": "Get Datasource by ID",
      "value": "Get Datasource by ID",
      "action": "Get datasource by id",
      "resource": "datasource"
    },
    {
      "name": "Get Datasources",
      "value": "Get Datasources",
      "action": "Get datasources",
      "resource": "datasource"
    },
    {
      "name": "Get Group by ID",
      "value": "Get Group by ID",
      "action": "Get group by id",
      "resource": "group"
    },
    {
      "name": "Get Groups",
      "value": "Get Groups",
      "action": "Get groups",
      "resource": "group"
    },
    {
      "name": "Get Language Model by ID",
      "value": "Get Language Model by ID",
      "action": "Get language model by id",
      "resource": "languageModel"
    },
    {
      "name": "Get Language Models",
      "value": "Get Language Models",
      "action": "Get language models",
      "resource": "languageModel"
    },
    {
      "name": "Get Workspace by ID",
      "value": "Get Workspace by ID",
      "action": "Get workspace by id",
      "resource": "workspace"
    },
    {
      "name": "Get Workspaces",
      "value": "Get Workspaces",
      "action": "Get workspaces",
      "resource": "workspace"
    }
  ]

npm_readme:
  # n8n-nodes-belakeai

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

  Belake.ai is an AI platform that provides intelligent agents, chat interactions, data source management, group organization, language model integration, and workspace management to enhance your automation workflows.

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

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

  ## Installation

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

  ## Operations

  ### Agent

  * **Get Agent by ID** - Retrieves detailed information about a specific agent using its identifier
  * **Get Agents** - Retrieves a list of all available agents

  ### Chat

  * **Get Chat by ID** - Retrieves a specific chat conversation using its identifier
  * **Get Chats** - Retrieves a list of all chats
  * **Send Message** - Sends a message to AI agents, with support for multiple agents, language specification, optional chat continuation, and chat visibility control

  ### Datasource

  * **Get Datasource by ID** - Retrieves detailed information about a specific datasource using its identifier
  * **Get Datasources** - Retrieves a list of all available datasources

  ### Group

  * **Get Group by ID** - Retrieves detailed information about a specific group using its identifier
  * **Get Groups** - Retrieves a list of all groups

  ### Language Model

  * **Get Language Model by ID** - Retrieves detailed information about a specific language model using its identifier
  * **Get Language Models** - Retrieves a list of all available language models

  ### Workspace

  * **Get Workspace by ID** - Retrieves detailed information about a specific workspace using its identifier
  * **Get Workspaces** - Retrieves a list of all workspaces

  ## Credentials

  To use this node, you need to authenticate with Belake.ai using API key authentication.

  ### Prerequisites

  1. **Belake.ai Account**: You need an active Belake.ai account. If you don't have one, sign up at [https://www.belake.ai/](https://www.belake.ai/)
  2. **Backend URL**: Your Belake.ai backend instance URL (e.g., `https://[instance].belake.ai`). All API routes use the `/v1` prefix automatically.
  3. **API Key**: Obtain your API key from the Belake.ai portal

  ### Authentication Method

  **API Key Authentication** - This node uses API key-based authentication where:

  * You provide your Backend URL and API Key in the credential configuration
  * The credentials securely store your API key (no HTTP requests are made at credential level)
  * When executing a workflow, the node automatically exchanges your API key for a bearer token using n8n's built-in HTTP helpers
  * The bearer token is then used for all subsequent API requests within that execution
  * Authentication is handled transparently on each workflow execution

  ### Setting Up Credentials

  1. In n8n, create a new credential and select "Belake API"
  2. Enter your **Backend URL** (must include protocol, e.g., `https://[your-instance].belake.ai`)
  3. Enter your **API Key** from the Belake.ai portal
  4. Click "Test" to verify your credentials work correctly
  5. Save the credential

  For detailed credential setup instructions, see the [credentials documentation](credentials/README.md).

  ## Compatibility

  This node requires n8n version 1.0.0 or higher. It has been tested with n8n versions 1.0.0 and above.

  The node uses the n8n Nodes API version 1 with strict mode enabled.

  ### Technical Implementation

  * **Credentials**: Store API key and backend URL without making HTTP requests (compliant with n8n best practices)
  * **Authentication**: Token exchange is performed at node execution time using `this.helpers.httpRequest()`
  * **Request Handling**: Declarative operations map with centralized authentication helper
  * **Type Safety**: Full TypeScript support with `IDataObject` types (no `any` types)
  * **Error Handling**: Proper error handling with support for "Continue on Fail" mode

  ## Usage

  ### Basic Workflow Example

  A common use case is to send a message to AI agents and process the response:

  1. Add a Belake.ai node to your workflow
  2. Select your Belake API credentials
  3. Choose the **Chat** resource and **Send Message** operation
  4. Configure the message parameters:

     * **Message**: The message content to send
     * **Agent IDs**: Array of agent IDs to send the message to
     * **Language**: Language code (default: `pt-br`)
     * **Chat ID** (optional): For continuing an existing conversation
     * **Hide Chat**: Boolean to control chat visibility in response
  5. Execute the workflow

  ### Retrieving Information

  To retrieve information about available resources:

  1. Select the appropriate resource (Agent, Chat, Datasource, Group, Language Model, or Workspace)
  2. Choose **Get [Resource]s** to list all available items
  3. Use **Get [Resource] by ID** to retrieve specific item details using its identifier
  4. Many operations accept an optional **Workspace ID** to filter results by workspace

  ### Best Practices

  * Use descriptive names for your credentials to distinguish between different Belake.ai instances or environments
  * Store sensitive information like API keys securely
  * Handle errors appropriately in your workflows
  * Use the chat continuation feature (Chat ID) to maintain conversation context across multiple messages

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Belake.ai homepage](https://www.belake.ai/)
  * [Belake.ai API credentials documentation](credentials/README.md)

  ## Version history

  * **v1.0.3** - API v1 routes and Workspace resource (current)
    * Migrated all API endpoints to `/v1` prefix
    * Replaced Department resource with Group resource
    * Added Workspace resource with Get Workspace by ID and Get Workspaces operations
    * Workspace ID field available across resources for filtering

  * **v1.0.2** - Architecture improvements
    * Refactored authentication to comply with n8n best practices
    * Moved token exchange from credentials to node execution
    * Implemented declarative operations map for cleaner code
    * Enhanced type safety (removed `any` types)
    * Improved error handling and code maintainability

  * **v1.0.1** - Repository updates
    * Renamed repository references and added lint file

  * **v1.0.0** - First release
    * Support for Agent, Chat, Datasource, Department, and Language Model resources
    * API key authentication
    * Operations for retrieving and managing Belake.ai resources
    * Chat message sending with multi-agent support and language specification

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Belake.ai, an AI platform for managing agents, chats, datasources, groups, language models, and workspaces within automation workflows.","capabilities":["Retrieve agent information by ID or list all agents","Retrieve chat information by ID or list all chats","Send messages to AI agents with language specification and chat continuation support","Retrieve datasource information by ID or list all datasources","Retrieve group information by ID or list all groups","Retrieve language model information by ID or list all language models","Retrieve workspace information by ID or list all workspaces","Filter resource queries by workspace ID","Control chat visibility in responses"],"authentication":"API Key Authentication","commonUseCases":["Sending messages to AI agents for chat interactions","Managing and listing AI agents, chats, and workspaces","Retrieving configuration details for datasources, groups, and language models","Maintaining conversation context using chat continuation"],"limitations":["Requires an active Belake.ai account and backend instance URL","Requires n8n version 1.0.0 or higher","Only read operations (Get) and message sending (Send Message) are documented; other CRUD operations may not be available"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.credential"]}


node_type: @emvion/n8n-nodes-venabo.emvionVenabo
package_name: @emvion/n8n-nodes-venabo
display_name: Emvion Venabo
description: Interact with the emvion venabo API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: frerichs
author_github_url: https://github.com/emvion-group/n8n-nodes-venabo.git
npm_package_name: @emvion/n8n-nodes-venabo
npm_version: 0.2.0
community_fetched_at: 2026-04-16T09:43:36.204Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "department",
      "options": [
        {
          "name": "Address",
          "value": "address"
        },
        {
          "name": "Department",
          "value": "department"
        },
        {
          "name": "Employee",
          "value": "employee"
        },
        {
          "name": "Object",
          "value": "object"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Ticket",
          "value": "ticket"
        },
        {
          "name": "Ticket Entry",
          "value": "ticket_entries"
        },
        {
          "name": "Time Entry",
          "value": "time_entry"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an address",
          "routing": {
            "request": {
              "url": "/addresses",
              "method": "POST"
            }
          },
          "description": "Create a new address"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an address",
          "routing": {
            "request": {
              "url": "=/addresses/{{$parameter.addressId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete an address"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an address",
          "routing": {
            "request": {
              "url": "=/addresses/{{$parameter.addressId}}",
              "method": "GET"
            }
          },
          "description": "Get a single address"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many addresses",
          "routing": {
            "request": {
              "url": "/addresses",
              "method": "GET"
            }
          },
          "description": "Get many addresses"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an address",
          "routing": {
            "request": {
              "url": "=/addresses/{{$parameter.addressId}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "address"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a department",
          "routing": {
            "request": {
              "url": "/departments",
              "method": "POST"
            }
          },
          "description": "Create a new department"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a department",
          "routing": {
            "request": {
              "url": "=/departments/{{$parameter.departmentId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a department"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a department",
          "routing": {
            "request": {
              "url": "=/departments/{{$parameter.departmentId}}",
              "method": "GET"
            }
          },
          "description": "Get a single department"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many departments",
          "routing": {
            "request": {
              "url": "/departments",
              "method": "GET"
            }
          },
          "description": "Get many departments"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a department",
          "routing": {
            "request": {
              "url": "=/departments/{{$parameter.departmentId}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing department"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "department"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an employee",
          "routing": {
            "request": {
              "url": "/employees",
              "method": "POST"
            }
          },
          "description": "Create a new employee"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an employee",
          "routing": {
            "request": {
              "url": "=/employees/{{$parameter.employeeId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete an employee"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an employee",
          "routing": {
            "request": {
              "url": "=/employees/{{$parameter.employeeId}}",
              "method": "GET"
            }
          },
          "description": "Get a single employee"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many employees",
          "routing": {
            "request": {
              "url": "/employees",
              "method": "GET"
            }
          },
          "description": "Get many employees"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an employee",
          "routing": {
            "request": {
              "url": "=/employees/{{$parameter.employeeId}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing employee"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "employee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an object",
          "routing": {
            "request": {
              "url": "/objects",
              "method": "POST"
            }
          },
          "description": "Create a new object"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an object",
          "routing": {
            "request": {
              "url": "=/objects/{{$parameter.objectId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete an object"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an object",
          "routing": {
            "request": {
              "url": "=/objects/{{$parameter.objectId}}",
              "method": "GET"
            }
          },
          "description": "Get a single object"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many objects",
          "routing": {
            "request": {
              "url": "/objects",
              "method": "GET"
            }
          },
          "description": "Get many objects"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an object",
          "routing": {
            "request": {
              "url": "=/objects/{{$parameter.objectId}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing object"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project",
          "routing": {
            "request": {
              "url": "/projects",
              "method": "POST"
            }
          },
          "description": "Create a new project"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a project"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "method": "GET"
            }
          },
          "description": "Get a single project"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many projects",
          "routing": {
            "request": {
              "url": "/projects",
              "method": "GET"
            }
          },
          "description": "Get many projects"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project",
          "routing": {
            "request": {
              "url": "=/projects/{{$parameter.projectId}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a ticket",
          "routing": {
            "request": {
              "url": "/tickets",
              "method": "POST"
            }
          },
          "description": "Create a new ticket"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a ticket",
          "routing": {
            "request": {
              "url": "=/tickets/{{$parameter.ticketId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a ticket"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a ticket",
          "routing": {
            "request": {
              "url": "=/tickets/{{$parameter.ticketId}}",
              "method": "GET"
            }
          },
          "description": "Get a single ticket"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tickets",
          "routing": {
            "request": {
              "url": "/tickets",
              "method": "GET"
            }
          },
          "description": "Get many tickets"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a ticket",
          "routing": {
            "request": {
              "url": "=/tickets/{{$parameter.ticketId}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing ticket"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a ticket entry",
          "routing": {
            "request": {
              "url": "=/ticket_entries/{{$parameter.ticketEntryId}}",
              "method": "GET"
            }
          },
          "description": "Get a single ticket entry"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many ticket entries",
          "routing": {
            "request": {
              "url": "/ticket_entries",
              "method": "GET"
            }
          },
          "description": "Get many ticket entries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket_entries"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a time entry",
          "routing": {
            "request": {
              "url": "/time_entry",
              "method": "POST"
            }
          },
          "description": "Create a new time entry"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a time entry",
          "routing": {
            "request": {
              "url": "=/time_entry/{{$parameter.timeEntryId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a time entry"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a time entry",
          "routing": {
            "request": {
              "url": "=/time_entry/{{$parameter.timeEntryId}}",
              "method": "GET"
            }
          },
          "description": "Get a single time entry"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many time entries",
          "routing": {
            "request": {
              "url": "/time_entry",
              "method": "GET"
            }
          },
          "description": "Get many time entries"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a time entry",
          "routing": {
            "request": {
              "url": "=/time_entry/{{$parameter.timeEntryId}}",
              "method": "PUT"
            }
          },
          "description": "Update an existing time entry"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "time_entry"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an address",
      "routing": {
        "request": {
          "url": "/addresses",
          "method": "POST"
        }
      },
      "description": "Create a new address",
      "resource": "address"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an address",
      "routing": {
        "request": {
          "url": "=/addresses/{{$parameter.addressId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete an address",
      "resource": "address"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an address",
      "routing": {
        "request": {
          "url": "=/addresses/{{$parameter.addressId}}",
          "method": "GET"
        }
      },
      "description": "Get a single address",
      "resource": "address"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many addresses",
      "routing": {
        "request": {
          "url": "/addresses",
          "method": "GET"
        }
      },
      "description": "Get many addresses",
      "resource": "address"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an address",
      "routing": {
        "request": {
          "url": "=/addresses/{{$parameter.addressId}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing address",
      "resource": "address"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a department",
      "routing": {
        "request": {
          "url": "/departments",
          "method": "POST"
        }
      },
      "description": "Create a new department",
      "resource": "department"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a department",
      "routing": {
        "request": {
          "url": "=/departments/{{$parameter.departmentId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a department",
      "resource": "department"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a department",
      "routing": {
        "request": {
          "url": "=/departments/{{$parameter.departmentId}}",
          "method": "GET"
        }
      },
      "description": "Get a single department",
      "resource": "department"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many departments",
      "routing": {
        "request": {
          "url": "/departments",
          "method": "GET"
        }
      },
      "description": "Get many departments",
      "resource": "department"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a department",
      "routing": {
        "request": {
          "url": "=/departments/{{$parameter.departmentId}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing department",
      "resource": "department"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an employee",
      "routing": {
        "request": {
          "url": "/employees",
          "method": "POST"
        }
      },
      "description": "Create a new employee",
      "resource": "employee"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an employee",
      "routing": {
        "request": {
          "url": "=/employees/{{$parameter.employeeId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete an employee",
      "resource": "employee"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an employee",
      "routing": {
        "request": {
          "url": "=/employees/{{$parameter.employeeId}}",
          "method": "GET"
        }
      },
      "description": "Get a single employee",
      "resource": "employee"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many employees",
      "routing": {
        "request": {
          "url": "/employees",
          "method": "GET"
        }
      },
      "description": "Get many employees",
      "resource": "employee"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an employee",
      "routing": {
        "request": {
          "url": "=/employees/{{$parameter.employeeId}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing employee",
      "resource": "employee"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an object",
      "routing": {
        "request": {
          "url": "/objects",
          "method": "POST"
        }
      },
      "description": "Create a new object",
      "resource": "object"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an object",
      "routing": {
        "request": {
          "url": "=/objects/{{$parameter.objectId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete an object",
      "resource": "object"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an object",
      "routing": {
        "request": {
          "url": "=/objects/{{$parameter.objectId}}",
          "method": "GET"
        }
      },
      "description": "Get a single object",
      "resource": "object"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many objects",
      "routing": {
        "request": {
          "url": "/objects",
          "method": "GET"
        }
      },
      "description": "Get many objects",
      "resource": "object"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an object",
      "routing": {
        "request": {
          "url": "=/objects/{{$parameter.objectId}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing object",
      "resource": "object"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project",
      "routing": {
        "request": {
          "url": "/projects",
          "method": "POST"
        }
      },
      "description": "Create a new project",
      "resource": "project"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a project",
      "resource": "project"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}",
          "method": "GET"
        }
      },
      "description": "Get a single project",
      "resource": "project"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many projects",
      "routing": {
        "request": {
          "url": "/projects",
          "method": "GET"
        }
      },
      "description": "Get many projects",
      "resource": "project"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project",
      "routing": {
        "request": {
          "url": "=/projects/{{$parameter.projectId}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing project",
      "resource": "project"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a ticket",
      "routing": {
        "request": {
          "url": "/tickets",
          "method": "POST"
        }
      },
      "description": "Create a new ticket",
      "resource": "ticket"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a ticket",
      "routing": {
        "request": {
          "url": "=/tickets/{{$parameter.ticketId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a ticket",
      "resource": "ticket"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a ticket",
      "routing": {
        "request": {
          "url": "=/tickets/{{$parameter.ticketId}}",
          "method": "GET"
        }
      },
      "description": "Get a single ticket",
      "resource": "ticket"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tickets",
      "routing": {
        "request": {
          "url": "/tickets",
          "method": "GET"
        }
      },
      "description": "Get many tickets",
      "resource": "ticket"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a ticket",
      "routing": {
        "request": {
          "url": "=/tickets/{{$parameter.ticketId}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing ticket",
      "resource": "ticket"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a ticket entry",
      "routing": {
        "request": {
          "url": "=/ticket_entries/{{$parameter.ticketEntryId}}",
          "method": "GET"
        }
      },
      "description": "Get a single ticket entry",
      "resource": "ticket_entries"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many ticket entries",
      "routing": {
        "request": {
          "url": "/ticket_entries",
          "method": "GET"
        }
      },
      "description": "Get many ticket entries",
      "resource": "ticket_entries"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a time entry",
      "routing": {
        "request": {
          "url": "/time_entry",
          "method": "POST"
        }
      },
      "description": "Create a new time entry",
      "resource": "time_entry"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a time entry",
      "routing": {
        "request": {
          "url": "=/time_entry/{{$parameter.timeEntryId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a time entry",
      "resource": "time_entry"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a time entry",
      "routing": {
        "request": {
          "url": "=/time_entry/{{$parameter.timeEntryId}}",
          "method": "GET"
        }
      },
      "description": "Get a single time entry",
      "resource": "time_entry"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many time entries",
      "routing": {
        "request": {
          "url": "/time_entry",
          "method": "GET"
        }
      },
      "description": "Get many time entries",
      "resource": "time_entry"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a time entry",
      "routing": {
        "request": {
          "url": "=/time_entry/{{$parameter.timeEntryId}}",
          "method": "PUT"
        }
      },
      "description": "Update an existing time entry",
      "resource": "time_entry"
    }
  ]

npm_readme:
  # @emvion/n8n-nodes-venabo

  n8n Community Node for integration with **venabo.Zeit** and **venabo.Service** - a software for time tracking and service management.

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

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

  ## Installation

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

  ```bash
  npm install @emvion/n8n-nodes-venabo
  ```

  ## Operations

  This node supports the following resources and operations:

  | Resource         | Description             |
  |------------------|-------------------------|
  | **Address**      | Manage addresses        |
  | **Department**   | Manage departments      |
  | **Employee**     | Manage employees        |
  | **Object**       | Manage objects          |
  | **Project**      | Manage projects         |
  | **Ticket**       | Manage tickets          |
  | **Ticket Entry** | Manage ticket entries   |
  | **Time Entry**   | Manage time entries     |

  Each resource supports the following operations:

  - **Create** - Create a new entry
  - **Get** - Retrieve a single entry
  - **Get Many** - Retrieve multiple entries
  - **Update** - Update an entry
  - **Delete** - Delete an entry

  ## Credentials

  To use this node, you need the following credentials:

  | Field       | Description                                                               |
  |-------------|---------------------------------------------------------------------------|
  | **API URL** | The base URL of your venabo instance (e.g. `https://domain.venabo.cloud`) |
  | **API Key** | The API key for authentication                                            |

  ### Creating an API Key

  1. Log in to your venabo instance
  2. Navigate to users
  3. Create a new API user with appropriate permissions
  4. Copy the key and paste it into n8n

  ## Compatibility

  - Tested with n8n version 2.4.0
  - Requires n8n version 2.4.0 or higher

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [venabo Website](https://www.venabo.de/)
  - [emvion Business Software GmbH](https://www.emvion.de/)

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community n8n node that enables automation workflows to interact with the emvion venabo API for time tracking and service management.","capabilities":["Create new entries for addresses, departments, employees, objects, projects, tickets, ticket entries, and time entries","Retrieve single or multiple entries for all supported resources","Update existing entries across all resources","Delete entries from all supported resources","Manage organizational data including addresses, departments, employees, objects, projects, and tickets"],"authentication":"API Key required (along with API URL)","commonUseCases":["Automating time entry creation and tracking","Managing project and employee records","Handling ticket workflows and updates","Synchronizing organizational data between venabo and other systems"],"limitations":["Requires n8n version 2.4.0 or higher","Requires manual creation of API users with appropriate permissions in the venabo instance"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code Node"]}


node_type: n8n-nodes-deeptagger.deepTagger
package_name: n8n-nodes-deeptagger
display_name: DeepTagger
description: Extract structured data from documents using DeepTagger
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: deeptagger
author_github_url: https://github.com/deeptaggerhq/
npm_package_name: n8n-nodes-deeptagger
npm_version: 0.1.7
community_fetched_at: 2026-04-16T09:43:36.205Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "extractData",
      "options": [
        {
          "name": "Extract Data",
          "value": "extractData",
          "action": "Extract data from document",
          "description": "Extract structured data from a document"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract Data",
      "value": "extractData",
      "action": "Extract data from document",
      "description": "Extract structured data from a document"
    }
  ]

npm_readme:
  <div align="center">
    <img src="https://raw.githubusercontent.com/deeptaggerhq/n8n-nodes-deeptagger/master/nodes/DeepTagger/deeptagger.svg" alt="DeepTagger Logo" width="200"/>
    <h1>DeepTagger</h1>
    <p><strong>n8n-nodes-deeptagger</strong></p>
  </div>

  This is an n8n community node that integrates [DeepTagger](https://deeptagger.com) into your n8n workflows. DeepTagger is an AI-powered document intelligence platform that automatically extracts structured data from documents like invoices, receipts, forms, and contracts.

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

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

  ## What is DeepTagger?

  DeepTagger uses machine learning to extract structured information from documents automatically. Instead of writing complex extraction rules, you simply annotate a few example documents, and DeepTagger learns to extract similar data from new documents. It's perfect for automating data entry from invoices, receipts, forms, contracts, and other business documents.

  ## What does this node do?

  The DeepTagger node allows you to:
  - **Extract structured data** from documents (PDF, images, text) using pre-trained DeepTagger projects
  - **Process both files and text** - upload documents or send text directly
  - **Return structured JSON** - get clean, structured data ready for use in your workflows
  - **Automate document processing** - integrate document intelligence into your automation workflows

  ## Prerequisites

  - An active [DeepTagger account](https://deeptagger.com)
  - A DeepTagger API key (available in your account settings)
  - At least one trained DeepTagger project with a Project ID

  ## Installation

  ### For n8n Cloud users

  n8n Cloud users can install this node directly from the n8n interface once it has been verified by the n8n team.

  ### For self-hosted n8n instances

  Install the node using npm:

  ```bash
  npm install n8n-nodes-deeptagger
  ```

  Then restart your n8n instance. The DeepTagger node should now appear in your node list.

  Alternatively, you can install it directly from the n8n interface by going to **Settings > Community Nodes** and entering `n8n-nodes-deeptagger`.

  ## Credentials

  To use this node, you'll need to configure your DeepTagger API credentials:

  1. In n8n, click on **Credentials** in the left sidebar
  2. Click **New Credential**
  3. Search for and select **DeepTagger API**
  4. Enter your credentials:
     - **API Key**: Your DeepTagger API key (find this in your DeepTagger account settings)
     - **Base URL**: Leave as default (`https://deeptagger.com/api/v1`) unless using a custom deployment
  5. Click **Save**

  ## Operations

  ### Extract Data

  Extracts structured data from a document or text using a trained DeepTagger project.

  **Parameters:**
  - **Project ID** (required): The ID of your DeepTagger project (e.g., `fo_1759714105892`)
    - Find your Project ID by browsing to https://deeptagger.com/das/fos and opening a project - the ID will be in the URL
  - **Input Type**: Choose between `File` (default) or `Text`
    - **File**: Upload a document (PDF, image, etc.) from a binary property
    - **Text**: Send raw text for extraction
  - **Binary Property** (for File input): Name of the binary property containing the file (default: `data`)
  - **Text** (for Text input): The text content to extract data from

  ## Usage

  ### Example 1: Extract Invoice Data from Uploaded Files

  **Workflow:**
  1. **Webhook Trigger** - Receive file upload
  2. **DeepTagger Node** - Extract invoice data
     - Operation: `Extract Data`
     - Project ID: `fo_1759714105892` (your invoice extraction project)
     - Input Type: `File`
     - Binary Property: `data`
  3. **Process Data** - Use extracted fields (invoice number, total, date, etc.) in subsequent nodes

  **Use Case:** Automatically extract invoice details from uploaded PDFs and save them to your accounting system or database.

  ### Example 2: Extract Receipt Data from Email Attachments

  **Workflow:**
  1. **Email Trigger** - Monitor inbox for new emails with attachments
  2. **Filter** - Only process emails with PDF or image attachments
  3. **DeepTagger Node** - Extract receipt data
     - Project ID: Your receipt extraction project ID
     - Input Type: `File`
  4. **Spreadsheet Node** - Add extracted data to Google Sheets or Airtable

  **Use Case:** Process expense receipts sent via email and automatically log them in a spreadsheet.

  ### Example 3: Extract Form Data from Text

  **Workflow:**
  1. **Webhook Trigger** - Receive form submission as text
  2. **DeepTagger Node** - Extract structured fields
     - Operation: `Extract Data`
     - Project ID: Your form extraction project ID
     - Input Type: `Text`
     - Text: `{{$json["formContent"]}}`
  3. **CRM Node** - Create or update contact with extracted data

  **Use Case:** Parse unstructured form submissions and create structured records in your CRM.

  ### Example 4: Batch Process Documents from Cloud Storage

  **Workflow:**
  1. **Schedule Trigger** - Run daily at midnight
  2. **Google Drive Node** - List new PDFs in a specific folder
  3. **Loop Over Items**
  4. **DeepTagger Node** - Extract data from each document
  5. **Database Node** - Insert extracted data
  6. **Google Drive Node** - Move processed files to archive folder

  **Use Case:** Automatically process new documents uploaded to a shared drive overnight.

  ### Example 5: Extract Contract Details for Legal Review

  **Workflow:**
  1. **Dropbox Trigger** - Monitor contracts folder
  2. **DeepTagger Node** - Extract key contract terms
     - Project ID: Your contract extraction project ID
     - Input Type: `File`
  3. **Slack Node** - Send notification with extracted terms to legal team
  4. **Airtable Node** - Create contract record with extracted metadata

  **Use Case:** Automatically extract and catalog key terms from new contracts for review and tracking.

  ## Troubleshooting

  ### Error: "No API key found in request"

  **Solution:** Make sure you've configured your DeepTagger API credentials correctly. The API key must be set in the credentials and properly selected in the node.

  ### Error: "Project not found" or 404

  **Solution:** Verify your Project ID is correct. You can find it in the URL when viewing your project at https://deeptagger.com/das/fos.

  ### Node not appearing in n8n

  **Solution:**
  - Restart your n8n instance after installation
  - Check that the package is installed: `npm list n8n-nodes-deeptagger`
  - For n8n Cloud, wait for the node to be verified by the n8n team

  ### Extraction results are not accurate

  **Solution:**
  - This node uses your trained DeepTagger projects. If results aren't accurate, you may need to:
    - Add more training examples in DeepTagger
    - Review and correct annotations in your project
    - Check that you're using the correct Project ID for the document type

  ### Binary data / file upload issues

  **Solution:**
  - Ensure the previous node outputs binary data in the property you specified (default: `data`)
  - Use the **Move Binary Data** node if needed to reorganize your binary properties
  - Check that the file type is supported by your DeepTagger project

  ## Resources

  - [DeepTagger Documentation](https://deeptagger.com/docs)
  - [DeepTagger Dashboard](https://deeptagger.com/das/fos)
  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community Forum](https://community.n8n.io)

  ## Support

  For issues related to:
  - **This n8n node**: Open an issue on [GitHub](https://github.com/deeptaggerhq/n8n-nodes-deeptagger/issues)
  - **DeepTagger API or platform**: Contact support@deeptagger.com
  - **n8n platform**: Visit the [n8n community forum](https://community.n8n.io)

  ## License

  [MIT](LICENSE)

  ## Version History

  ### 0.1.0 (2025-01-06)
  - Initial release
  - Extract Data operation with file and text input support

ai_documentation_summary:
  {"purpose":"The DeepTagger node extracts structured data from documents (PDFs, images) or text using pre-trained AI models to automate data entry for invoices, receipts, forms, and contracts.","capabilities":["Extract structured data from uploaded files (PDF, images)","Extract structured data from raw text input","Return clean JSON output","Support multiple input types (File vs Text)","Integrate with various triggers (Webhook, Email, Schedule, Dropbox, Google Drive)"],"authentication":"API key required (DeepTagger API key)","commonUseCases":["Automate invoice data extraction from uploaded PDFs","Process expense receipts from email attachments","Parse unstructured form submissions into structured records","Batch process documents from cloud storage (Google Drive, Dropbox)","Extract contract terms for legal review"],"limitations":["Requires a pre-trained DeepTagger project with a Project ID","Requires an active DeepTagger account","Node is a community node and may not be available in all n8n environments"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.email","n8n-nodes-base.spreadsheet","n8n-nodes-base.googleDrive","n8n-nodes-base.dropbox"]}


node_type: n8n-nodes-kinderpedia.kinderpedia
package_name: n8n-nodes-kinderpedia
display_name: Kinderpedia
description: Interact with Kinderpedia 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-kinderpedia.git
npm_package_name: n8n-nodes-kinderpedia
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.206Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "student",
      "options": [
        {
          "name": "Student",
          "value": "student"
        },
        {
          "name": "Parent",
          "value": "parent"
        },
        {
          "name": "Family",
          "value": "family"
        },
        {
          "name": "Group",
          "value": "group"
        },
        {
          "name": "Custom Field",
          "value": "customField"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a student",
          "description": "Create a new student"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a student",
          "description": "Get a student"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many students",
          "description": "Get many students"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search students",
          "description": "Search for students with filters"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a student",
          "description": "Update a student"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "student"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a parent",
          "description": "Create a new parent"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a parent",
          "description": "Get a parent"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many parents",
          "description": "Get many parents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "parent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a group",
          "description": "Get a group"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many groups",
          "description": "Get many groups"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Value",
          "value": "addValue",
          "action": "Add a custom field value",
          "description": "Add a custom field value"
        },
        {
          "name": "Delete Value",
          "value": "deleteValue",
          "action": "Delete a custom field value",
          "description": "Delete a custom field value"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get custom field definitions",
          "description": "Get custom field definitions"
        },
        {
          "name": "Get Values",
          "value": "getValues",
          "action": "Get custom field values",
          "description": "Get custom field values for an entity"
        },
        {
          "name": "Update Value",
          "value": "updateValue",
          "action": "Update a custom field value",
          "description": "Update a custom field value"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customField"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a family",
          "description": "Get a family"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many families",
          "description": "Get many families"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "family"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a student",
      "description": "Create a new student",
      "resource": "student"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a student",
      "description": "Get a student",
      "resource": "student"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many students",
      "description": "Get many students",
      "resource": "student"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search students",
      "description": "Search for students with filters",
      "resource": "student"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a student",
      "description": "Update a student",
      "resource": "student"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a parent",
      "description": "Create a new parent",
      "resource": "parent"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a parent",
      "description": "Get a parent",
      "resource": "parent"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many parents",
      "description": "Get many parents",
      "resource": "parent"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a group",
      "description": "Get a group",
      "resource": "group"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many groups",
      "description": "Get many groups",
      "resource": "group"
    },
    {
      "name": "Add Value",
      "value": "addValue",
      "action": "Add a custom field value",
      "description": "Add a custom field value",
      "resource": "customField"
    },
    {
      "name": "Delete Value",
      "value": "deleteValue",
      "action": "Delete a custom field value",
      "description": "Delete a custom field value",
      "resource": "customField"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get custom field definitions",
      "description": "Get custom field definitions",
      "resource": "customField"
    },
    {
      "name": "Get Values",
      "value": "getValues",
      "action": "Get custom field values",
      "description": "Get custom field values for an entity",
      "resource": "customField"
    },
    {
      "name": "Update Value",
      "value": "updateValue",
      "action": "Update a custom field value",
      "description": "Update a custom field value",
      "resource": "customField"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a family",
      "description": "Get a family",
      "resource": "family"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many families",
      "description": "Get many families",
      "resource": "family"
    }
  ]

npm_readme:
  # n8n-nodes-kinderpedia

  This is an n8n community node that allows you to use Kinderpedia API in your n8n workflows.

  [Kinderpedia](https://kinderpedia.co/) is a platform for managing educational institutions.

  ## Installation

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

  ## Operations

  ### Student
  - **Get Many**: Retrieve multiple students

  ### Parent
  - **Get Many**: Retrieve multiple parents

  ### Group
  - **Get Many**: Retrieve multiple groups

  ## Credentials

  To use this node, you need:
  - **API Key**: Your Kinderpedia API key
  - **School ID**: Your school identifier
  - **Environment**: Choose between Production or Sandbox

  ## Compatibility

  Tested with n8n version 1.0.0 and above.

  ## Usage

  1. Add your Kinderpedia credentials in n8n
  2. Add the Kinderpedia node to your workflow
  3. Select the resource (Student, Parent, or Group)
  4. Configure the operation parameters
  5. Execute your workflow

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Kinderpedia API documentation](https://openapi-documentation.kinderpedia.co/)

  ## Version history

  - 0.1.0: Initial release with basic GET operations for Students, Parents, and Groups

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation by interacting with the Kinderpedia API to manage educational institution data.","capabilities":["Retrieve multiple students","Retrieve multiple parents","Retrieve multiple groups","Support for Production and Sandbox environments"],"authentication":"API Key required","commonUseCases":["Bulk student data retrieval for enrollment management","Parent contact information gathering","Group or class data extraction"],"limitations":["Only supports GET operations (no POST, PUT, DELETE, or PATCH operations)","Limited to basic data retrieval without modification capabilities","Requires manual configuration of School ID and Environment per workflow"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-kinderpedia.student","n8n-nodes-kinderpedia.parent","n8n-nodes-kinderpedia.group"]}


node_type: n8n-nodes-velatir.velatir
package_name: n8n-nodes-velatir
display_name: Velatir
description: Human approval gate with decision routing - routes workflow based on approval decision
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main",
  "main",
  "main"
  ]

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

  ![Velatir](https://img.shields.io/badge/Velatir-Human--Approval--Gate-blue?style=flat-square)
  ![n8n-community-node-package](https://img.shields.io/badge/n8n-community--node-ff6d5a?style=flat-square)
  ![npm version](https://img.shields.io/npm/v/n8n-nodes-velatir?style=flat-square)
  ![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)

  **Human approval gate for n8n workflows with decision routing.** This community node integrates [Velatir](https://velatir.com) to pause your workflow until a human makes a decision, then routes the data to different outputs based on that decision.

  ## What does it do?

  The Velatir node provides **smart decision routing**:

  1. **Data flows in** → Gets sent to Velatir for human review
  2. **Workflow pauses** → Waits for human decision
  3. **Routes to different outputs** based on approval decision:
     - **Output 1**: Approved requests
     - **Output 2**: Declined requests
     - **Output 3**: Change requests with feedback

  This gives you maximum flexibility to handle each decision type differently in your workflow.

  ## Installation

  ### Option 1: Community Nodes Panel (Recommended)
  1. Go to **Settings > Community Nodes** in n8n
  2. Select **Install**
  3. Enter `n8n-nodes-velatir`
  4. Select **Install**

  ### Option 2: Manual Installation
  ```bash
  npm install n8n-nodes-velatir
  ```

  ## Setup

  ### 1. Get your Velatir API Key
  - Sign up at [velatir.com](https://velatir.com)
  - Get your API key from the dashboard

  ### 2. Add Credentials in n8n
  - Go to **Settings > Credentials**
  - Create new **Velatir API** credential
  - Enter your API key
  - Save

  ## Usage

  ### Basic Usage
  Drag the **Velatir** node into your workflow and connect nodes to the outputs you need:

  ```
  Trigger → [Your Data] → **Velatir** → [Approved: Process Data]
                                    → [Declined: Send Rejection Email]  
                                    → [Change Requested: Request More Info]
  ```

  **The node will:**
  - Automatically use your input data as the approval context
  - Show the node name and description to approvers  
  - Route data to different outputs based on the approval decision
  - Include decision metadata in all outputs

  ### Simple Example
  If you only care about approved requests, just connect the first output:

  ```
  Trigger → [Your Data] → **Velatir** → [Process Approved Data]
  ```

  ### Configuration Options

  | Field | Description | Default |
  |-------|-------------|---------|
  | **Function Name** | Name shown to approvers | Node name |
  | **Description** | What this step does | Empty |
  | **Polling Interval** | Check frequency (seconds) | 5 |
  | **Timeout** | Max wait time (minutes) | 10 |
  | **LLM Explanation** | AI context for approval decision | Empty |

  ## Examples

  ### Example 1: Content Review Workflow
  ```
  Webhook → **Velatir** → [Approved: Publish Content]
                        → [Declined: Archive Content]
                        → [Changes Requested: Send to Editor]
  ```

  ### Example 2: User Registration with Feedback  
  ```
  Form Submit → **Velatir** → [Approved: Create Account + Welcome Email]
                            → [Declined: Send Rejection Email]
                            → [Changes Requested: Request Additional Info]
  ```

  ### Example 3: Invoice Processing
  ```
  New Invoice → **Velatir** → [Approved: Auto-Pay Invoice]
                            → [Declined: Mark as Disputed]  
                            → [Changes Requested: Request Clarification]
  ```

  ### Example 4: Simple Approval Gate
  If you only need to process approved requests:
  ```
  Manual Trigger → Set (Campaign Data) → **Velatir** → [Send Email]
  ```
  Just connect the first output and leave the others unconnected.

  ## What Approvers See

  When a request needs approval, your team will see:

  - **Function Name**: "Send Email Campaign" (or whatever you set)
  - **Description**: "Send marketing email to 1,500 customers" 
  - **Arguments**: All the input data from your workflow
  - **LLM Explanation**: AI context about why approval is needed (if provided)
  - **Metadata**: Workflow context (ID, execution, behavior mode, etc.)

  ## Data Output

  All outputs include the original data plus `_velatir` metadata:

  ```json
  {
    "originalData": "your workflow data",
    "_velatir": {
      "reviewTaskId": "uuid-of-review-task",
      "state": "approved|declined|change_requested",
      "requestedChange": "feedback from approver (if any)"
    }
  }
  ```

  ## Best Practices

  ### ✅ Do:
  - Use descriptive node names (they become the function name)
  - Add helpful descriptions for complex operations
  - Place approval gates before critical/irreversible actions
  - Set appropriate timeouts for your team's response time
  - Provide LLM explanations for better approval context
  - Connect the outputs you need (you don't have to use all three)
  - Use the change requested output to implement feedback loops

  ### ❌ Don't:
  - Put approval gates in loops (can create many approval requests)
  - Set very short timeouts for non-urgent operations
  - Forget that unconnected outputs will lose their data
  - Ignore the `_velatir` metadata when processing decisions

  ## Error Handling

  The node uses **decision routing** for all scenarios:

  - **If approved**: Data flows to "Approved" output (Output 1)
  - **If declined**: Data flows to "Declined" output (Output 2)  
  - **If changes requested**: Data flows to "Change Requested" output (Output 3) with feedback
  - **If timeout**: Workflow stops after the configured timeout
  - **If API error**: With "Continue on Fail" enabled, errors flow to "Declined" output
  - **If API error**: With "Continue on Fail" disabled, workflow stops with error message

  ## Workflow Patterns

  ### Pattern 1: Simple Approval
  ```
  Data → **Velatir** → [Approved: Process Data]
  ```
  Only connect the approved output for basic approval gates.

  ### Pattern 2: Full Decision Handling
  ```
  Data → **Velatir** → [Approved: Process Data]
                     → [Declined: Log Rejection]
                     → [Changes: Request Info]
  ```
  Handle all three decision types differently.

  ### Pattern 3: Feedback Loop
  ```
  Data → **Velatir** → [Approved: Process]
                     → [Declined: Archive]
                     → [Changes: Edit] → **Velatir** (New Review)
  ```
  Use change requests to improve and resubmit.

  ### Pattern 4: Escalation Workflow
  ```
  Data → **Velatir** → [Approved: Execute]
                     → [Declined: End]
                     → [Changes: Escalate] → Senior **Velatir** → Execute
  ```
  Escalate change requests to higher approval levels.

  ### Pattern 5: Conditional Approval
  ```
  Data → IF (high_value?) → **Velatir** → [Process]
                          → Direct Process
  ```
  Only require approval for certain conditions.

  ## Troubleshooting

  | Issue | Solution |
  |-------|----------|
  | "Request timeout" | Increase timeout or check if approvers are available |
  | "API key invalid" | Verify credential configuration in n8n |
  | "Request declined" | Data flows to declined output - check approver feedback |
  | Node doesn't appear | Restart n8n after installation |
  | "Unexpected state" | Update to latest node version (API may have changed) |
  | Data not flowing to expected output | Check the `_velatir.state` field in your data |
  | Missing data on outputs | Connect only the outputs you need, unconnected outputs lose data |

  ## Minimal Examples

  ### Simple Approval
  1. **Manual Trigger** 
  2. **Set** node with: `{"message": "Hello World"}`
  3. **Velatir** node (default settings)
  4. **No Op** node connected to "Approved" output

  When you run this:
  - Your approver sees: Function "Velatir" needs approval with args `{"message": "Hello World"}`
  - If approved: Data flows to No Op with `_velatir` metadata
  - If declined/changed: Data flows to unconnected outputs (lost)

  ### Full Decision Routing
  1. **Manual Trigger**
  2. **Set** node with: `{"message": "Hello World"}`
  3. **Velatir** node 
  4. **No Op** node connected to "Approved" output
  5. **Set** node connected to "Declined" output with message "Request declined"
  6. **Set** node connected to "Change Requested" output with message "Changes needed"

  When you run this, the workflow routes to different paths based on the approval decision, and you can handle each case appropriately.

  ## Support

  - 📖 [Velatir Documentation](https://www.velatir.com/docs)
  - 💬 [n8n Community Forum](https://community.n8n.io)
  - 🐛 [Report Issues](https://github.com/velatir/n8n-nodes-velatir/issues)
  - 📧 [Contact Support](mailto:hello@velatir.com)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with Velatir to pause workflows for human approval and route data to different outputs based on the decision (approved, declined, or change requested).","capabilities":["Pauses workflow execution for human review","Routes data to three distinct outputs based on approval decision","Supports configurable polling intervals and timeout limits","Includes optional LLM-generated explanations for approvers","Adds metadata to output data including review task ID and decision state","Handles API errors with configurable continue-on-fail behavior"],"authentication":"API key required (Velatir API key)","commonUseCases":["Content moderation and review workflows","User registration approval with feedback loops","Invoice and payment dispute management","Marketing campaign approval gates","Simple binary approval switches"],"limitations":["Not suitable for approval loops (can create infinite approval requests)","Unconnected outputs will lose their data","Requires external Velatir account setup","Workflow stops if timeout is reached"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-manualTrigger","n8n-nodes-set","n8n-nodes-ai","n8n-nodes-conditionalBranches"]}


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

updated_at: 2026-04-16 09:43:36
author_name: buddiesd
author_github_url: https://github.com/BuddiesD/
npm_package_name: n8n-nodes-tanss
npm_version: 1.1.7
community_fetched_at: 2026-04-16T09:43:36.207Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "availability",
      "options": [
        {
          "name": "Availability",
          "value": "availability"
        },
        {
          "name": "Call",
          "value": "calls"
        },
        {
          "name": "Call User",
          "value": "callsuser"
        },
        {
          "name": "Callback",
          "value": "callbacks"
        },
        {
          "name": "Chat",
          "value": "chats"
        },
        {
          "name": "Checklist",
          "value": "checklists"
        },
        {
          "name": "Company Category",
          "value": "companyCategories"
        },
        {
          "name": "Component",
          "value": "components"
        },
        {
          "name": "CPU",
          "value": "cpus"
        },
        {
          "name": "Domain",
          "value": "domain"
        },
        {
          "name": "Employee",
          "value": "employees"
        },
        {
          "name": "HDD Type",
          "value": "hddTypes"
        },
        {
          "name": "IP",
          "value": "ips"
        },
        {
          "name": "Mail",
          "value": "mails"
        },
        {
          "name": "Manufacturer",
          "value": "manufacturers"
        },
        {
          "name": "Operating System",
          "value": "operatingSystems"
        },
        {
          "name": "PC",
          "value": "pc"
        },
        {
          "name": "Periphery",
          "value": "peripheries"
        },
        {
          "name": "Remote Support",
          "value": "remoteSupports"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Software License",
          "value": "softwareLicenses"
        },
        {
          "name": "Ticket",
          "value": "ticket"
        },
        {
          "name": "Ticket Content",
          "value": "ticketContent"
        },
        {
          "name": "Ticket List",
          "value": "ticketList"
        },
        {
          "name": "Ticket State",
          "value": "ticketStates"
        },
        {
          "name": "Timestamp",
          "value": "timestamps"
        }
      ],
      "description": "Select which TANSS API resource to interact with",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getPcById",
      "options": [
        {
          "name": "Create PC",
          "value": "createPc",
          "action": "Creates a PC",
          "description": "Creates a new PC or server"
        },
        {
          "name": "Delete PC",
          "value": "deletePc",
          "action": "Deletes a PC",
          "description": "Deletes a PC or server"
        },
        {
          "name": "Get PC by ID",
          "value": "getPcById",
          "action": "Fetches a PC by ID",
          "description": "Fetches a PC or server by a given ID"
        },
        {
          "name": "List PCs",
          "value": "listPcs",
          "action": "List pcs",
          "description": "Gets a list of PCs or servers"
        },
        {
          "name": "Update PC",
          "value": "updatePc",
          "action": "Updates a PC",
          "description": "Updates a PC or server"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pc"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTicketById",
      "options": [
        {
          "name": "Create Comment",
          "value": "createComment",
          "action": "Creates a comment for a specific ticket",
          "description": "Creates a comment for a specific ticket"
        },
        {
          "name": "Create Ticket",
          "value": "createTicket",
          "action": "Creates a new ticket",
          "description": "Creates a new Ticket in TANSS"
        },
        {
          "name": "Delete Ticket",
          "value": "deleteTicket",
          "action": "Deletes a ticket",
          "description": "Deletes a ticket"
        },
        {
          "name": "Get Ticket by ID",
          "value": "getTicketById",
          "action": "Fetches a ticket by ID",
          "description": "Fetches a ticket by ID"
        },
        {
          "name": "Get Ticket History",
          "value": "getTicketHistory",
          "action": "Fetches the history of a ticket",
          "description": "Fetches the history of a ticket"
        },
        {
          "name": "Merge Tickets",
          "value": "mergeTickets",
          "action": "Merges one ticket into another",
          "description": "Merges one ticket into another"
        },
        {
          "name": "Update Ticket",
          "value": "updateTicket",
          "action": "Updates a ticket with the provided details",
          "description": "Updates a ticket with the provided details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createDomain",
      "options": [
        {
          "name": "Create Domain",
          "value": "createDomain",
          "action": "Creates a new domain",
          "description": "Creates a new Domain in TANSS"
        },
        {
          "name": "Get Domain by ID",
          "value": "getDomainById",
          "action": "Fetches a domain by ID",
          "description": "Fetches a domain by ID"
        },
        {
          "name": "Update Domain",
          "value": "updateDomain",
          "action": "Updates a domain",
          "description": "Updates a domain"
        },
        {
          "name": "Delete Domain",
          "value": "deleteDomain",
          "action": "Deletes a domain",
          "description": "Deletes a domain"
        },
        {
          "name": "List Domains By Company",
          "value": "listDomainsByCompany",
          "action": "Lists domains of a company",
          "description": "Lists domains for a company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "assignChecklist",
      "options": [
        {
          "name": "Assign Checklist",
          "value": "assignChecklist",
          "action": "Assigns a checklist to a ticket",
          "description": "Assigns a checklist to a ticket"
        },
        {
          "name": "Remove Checklist",
          "value": "removeChecklist",
          "action": "Removes a checklist assignment from a ticket",
          "description": "Removes a checklist assignment from a ticket"
        },
        {
          "name": "Get Assigned Checklists",
          "value": "getAssignedChecklists",
          "action": "Gets all checklists assigned to a ticket",
          "description": "Gets all checklists assigned to a ticket"
        },
        {
          "name": "Get Checklist Process",
          "value": "getChecklistProcess",
          "action": "Gets checklist details for processing within a ticket",
          "description": "Gets checklist details for processing within a ticket"
        },
        {
          "name": "Check Item",
          "value": "checkItem",
          "action": "Checks/unchecks an item",
          "description": "Checks or unchecks an item in a checklist"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "checklists"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTicketDocuments",
      "options": [
        {
          "name": "Get Ticket Documents",
          "value": "getTicketDocuments",
          "action": "Get ticket documents",
          "description": "Gets all documents attached to a ticket (list)"
        },
        {
          "name": "Get Ticket Document",
          "value": "getTicketDocument",
          "action": "Get a ticket document",
          "description": "Generates a one-time download URL for a specific ticket document"
        },
        {
          "name": "Get Ticket Images",
          "value": "getTicketImages",
          "action": "Get ticket images",
          "description": "Gets all images (screenshots) attached to a ticket (list)"
        },
        {
          "name": "Get Ticket Image",
          "value": "getTicketImage",
          "action": "Get a ticket image",
          "description": "Generates a one-time download URL for a specific ticket image"
        },
        {
          "name": "Upload Document / Image",
          "value": "uploadTicketContent",
          "action": "Upload document or image to ticket",
          "description": "Uploads a document or image into a ticket (multipart/form-data)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticketContent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOwnTickets",
      "options": [
        {
          "name": "Get All Project Tickets",
          "value": "getProjectTickets",
          "action": "Get a list of all projects",
          "description": "Get a list of all projects"
        },
        {
          "name": "Get Company Tickets",
          "value": "getCompanyTickets",
          "action": "Get tickets for a specific company",
          "description": "Get tickets for a specific company"
        },
        {
          "name": "Get Custom Ticket List",
          "value": "getCustomTicketList",
          "action": "Get a custom ticket list",
          "description": "Get a custom ticket list with query parameters"
        },
        {
          "name": "Get General Tickets",
          "value": "getGeneralTickets",
          "action": "Get general tickets assigned to no employee",
          "description": "Get general tickets assigned to no employee"
        },
        {
          "name": "Get Local Admin Tickets",
          "value": "getLocalAdminTickets",
          "action": "Get a list of local admin tickets",
          "description": "Gets a list of all tickets which are assigned to local ticket admins"
        },
        {
          "name": "Get Not Identified Tickets",
          "value": "getNotIdentifiedTickets",
          "action": "Get tickets not assigned to any company",
          "description": "Get tickets not assigned to any company"
        },
        {
          "name": "Get Own Tickets",
          "value": "getOwnTickets",
          "action": "Get tickets assigned to the current employee",
          "description": "Get tickets assigned to the current employee"
        },
        {
          "name": "Get Repair Tickets",
          "value": "getRepairTickets",
          "action": "Get a list of repair tickets",
          "description": "Gets a list of repair tickets"
        },
        {
          "name": "Get Technician Tickets",
          "value": "getTechnicianTickets",
          "action": "Get tickets assigned to other technicians",
          "description": "Get tickets assigned to other technicians"
        },
        {
          "name": "Get Tickets With Role",
          "value": "getTicketsWithRole",
          "action": "Get a list of tickets with technician role",
          "description": "Gets a list of all tickets which a technician has a role in"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticketList"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTicketStates",
      "options": [
        {
          "name": "Get Ticket States",
          "value": "getTicketStates",
          "action": "Get ticket states",
          "description": "Gets a list of all ticket states"
        },
        {
          "name": "Create Ticket State",
          "value": "createTicketState",
          "action": "Create a ticket state",
          "description": "Creates a new ticket state"
        },
        {
          "name": "Update Ticket State",
          "value": "updateTicketState",
          "action": "Update a ticket state",
          "description": "Updates an existing ticket state"
        },
        {
          "name": "Delete Ticket State",
          "value": "deleteTicketState",
          "action": "Delete a ticket state",
          "description": "Deletes a ticket state"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticketStates"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTimestamps",
      "options": [
        {
          "name": "Get Timestamps",
          "value": "getTimestamps",
          "action": "Get timestamps",
          "description": "Gets a list of timestamps from a given period"
        },
        {
          "name": "Get Timestamp Info",
          "value": "getTimestampInfo",
          "action": "Get timestamp info",
          "description": "Gets the timestamp infos for a given time period"
        },
        {
          "name": "Get Timestamp Statistics",
          "value": "getTimestampStatistics",
          "action": "Get timestamp statistics",
          "description": "Gets the timestamp infos for a given time period (with statistical values)"
        },
        {
          "name": "Create Timestamp",
          "value": "createTimestamp",
          "action": "Create timestamp",
          "description": "Writes a timestamp into the database"
        },
        {
          "name": "Update Timestamp",
          "value": "updateTimestamp",
          "action": "Update timestamp",
          "description": "Edits a single timestamp"
        },
        {
          "name": "Save Day Timestamps",
          "value": "saveDayTimestamps",
          "action": "Save day timestamps",
          "description": "Writes the timestamps of a whole day into the database at once"
        },
        {
          "name": "Create Day Closing(s)",
          "value": "createDayClosing",
          "action": "Create day closing(s)",
          "description": "Creates one or more day closings"
        },
        {
          "name": "Delete Day Closing(s)",
          "value": "deleteDayClosing",
          "action": "Delete day closing(s)",
          "description": "Deletes one or more day closings (undo)"
        },
        {
          "name": "Get Day Closing Till Date",
          "value": "getDayClosingTillDate",
          "action": "Get day closing till date",
          "description": "Gets all infos about last dayclosings for employees"
        },
        {
          "name": "Create Day Closings Till Date",
          "value": "createDayClosingsTillDate",
          "action": "Create day closings till date",
          "description": "Creates missing dayClosings for given employees till a date"
        },
        {
          "name": "Set Initial Balance",
          "value": "setInitialBalance",
          "action": "Set initial balance",
          "description": "Sets the initial balance for an employee"
        },
        {
          "name": "Get Pause Configs",
          "value": "getPauseConfigs",
          "action": "Get pause configs",
          "description": "Gets a list of all pause configs"
        },
        {
          "name": "Create Pause Config",
          "value": "createPauseConfig",
          "action": "Create pause config",
          "description": "Creates a pause config"
        },
        {
          "name": "Update Pause Config",
          "value": "updatePauseConfig",
          "action": "Update pause config",
          "description": "Updates a pause config"
        },
        {
          "name": "Delete Pause Config",
          "value": "deletePauseConfig",
          "action": "Delete pause config",
          "description": "Deletes a pause config"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "timestamps"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAvailability",
      "options": [
        {
          "name": "Get Availability",
          "value": "getAvailability",
          "action": "Get availability",
          "description": "Fetch availability information for employees"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "availability"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTechnicians",
      "options": [
        {
          "name": "Get Technicians",
          "value": "getTechnicians",
          "action": "Get technicians",
          "description": "Gets all technicians of this system"
        },
        {
          "name": "Create Employee",
          "value": "createEmployee",
          "action": "Create employee",
          "description": "Creates a new employee"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "employees"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "testSmtp",
      "options": [
        {
          "name": "Test SMTP Settings",
          "value": "testSmtp",
          "action": "Test SMTP",
          "description": "Send a test email using specified SMTP settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mails"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createCall",
      "options": [
        {
          "name": "Create / Import Call",
          "value": "createCall",
          "action": "Create call",
          "description": "Creates/imports a phone call into the database"
        },
        {
          "name": "Get a List of Phone Calls",
          "value": "getCalls",
          "action": "Get calls",
          "description": "Retrieves a list of phone calls using filter settings"
        },
        {
          "name": "Get Phone Call By ID",
          "value": "getCallById",
          "action": "Get call by id",
          "description": "Gets a specific phone call by its ID"
        },
        {
          "name": "Update Phone Call",
          "value": "updateCall",
          "action": "Update call",
          "description": "Updates an existing phone call by ID"
        },
        {
          "name": "Identify Phone Call",
          "value": "identifyCall",
          "action": "Identify call",
          "description": "Identifies a phone call and resolves company / employee IDs"
        },
        {
          "name": "Get All Employee Assignments",
          "value": "getEmployeeAssignments",
          "action": "Get employee assignments",
          "description": "Get all assignments between idStrings and TANSS employees"
        },
        {
          "name": "Create Employee Assignment",
          "value": "createEmployeeAssignment",
          "action": "Create employee assignment",
          "description": "Creates a new assignment between an idString and a TANSS employee"
        },
        {
          "name": "Delete Employee Assignment",
          "value": "deleteEmployeeAssignment",
          "action": "Delete employee assignment",
          "description": "Deletes an assignment between an idString and a TANSS employee"
        },
        {
          "name": "Creates a Call Notification",
          "value": "createNotification",
          "action": "Create call notification",
          "description": "Generates a notification (popup) for an incoming or outgoing call"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "calls"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCalls",
      "options": [
        {
          "name": "Get a List of Phone Calls",
          "value": "getCalls",
          "action": "Get calls",
          "description": "Retrieves a list of phone calls using filter settings"
        },
        {
          "name": "Get Phone Call By ID",
          "value": "getCallById",
          "action": "Get call by id",
          "description": "Gets a specific phone call by its ID"
        },
        {
          "name": "Identifies a Phone Call",
          "value": "identifyCall",
          "action": "Identify call",
          "description": "Tries to identify a phone call and resolve company and employeeId"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "callsuser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllCpus",
      "options": [
        {
          "name": "Create CPU",
          "value": "createCpu",
          "action": "Create a CPU",
          "description": "Creates a new CPU"
        },
        {
          "name": "Delete CPU",
          "value": "deleteCpu",
          "action": "Delete a CPU",
          "description": "Deletes a CPU"
        },
        {
          "name": "Get All CPUs",
          "value": "getAllCpus",
          "action": "Get all CPUs",
          "description": "Gets a list of all CPUs"
        },
        {
          "name": "Get CPU",
          "value": "getCpuById",
          "action": "Get a CPU",
          "description": "Gets a specific CPU"
        },
        {
          "name": "Update CPU",
          "value": "updateCpu",
          "action": "Update a CPU",
          "description": "Updates an existing CPU"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "cpus"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllHddTypes",
      "options": [
        {
          "name": "Create HDD Type",
          "value": "createHddType",
          "action": "Create an HDD type",
          "description": "Creates a new hdd type"
        },
        {
          "name": "Delete HDD Type",
          "value": "deleteHddType",
          "action": "Delete an HDD type",
          "description": "Deletes a hdd type"
        },
        {
          "name": "Get All HDD Types",
          "value": "getAllHddTypes",
          "action": "Get all HDD types",
          "description": "Gets a list of all hdd types"
        },
        {
          "name": "Get HDD Type",
          "value": "getHddTypeById",
          "action": "Get an HDD type",
          "description": "Gets a specific hdd type"
        },
        {
          "name": "Update HDD Type",
          "value": "updateHddType",
          "action": "Update an HDD type",
          "description": "Updates an existing hdd type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "hddTypes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getIps",
      "options": [
        {
          "name": "Get IPs",
          "value": "getIps",
          "action": "Get IPs",
          "description": "Gets all ip addresses of a device"
        },
        {
          "name": "Create IP",
          "value": "createIp",
          "action": "Create IP",
          "description": "Creates an ip address for a pc/periphery"
        },
        {
          "name": "Update IP",
          "value": "updateIp",
          "action": "Update IP",
          "description": "Updates a specific ip address"
        },
        {
          "name": "Delete IP",
          "value": "deleteIp",
          "action": "Delete IP",
          "description": "Deletes an ip address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ips"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getComponent",
      "options": [
        {
          "name": "Get Component",
          "value": "getComponent",
          "action": "Get component"
        },
        {
          "name": "Create Component",
          "value": "createComponent",
          "action": "Create component"
        },
        {
          "name": "Update Component",
          "value": "updateComponent",
          "action": "Update component"
        },
        {
          "name": "Delete Component",
          "value": "deleteComponent",
          "action": "Delete component"
        },
        {
          "name": "List Components",
          "value": "listComponents",
          "action": "List components"
        },
        {
          "name": "Get Component Types",
          "value": "getComponentTypes",
          "action": "Get component types"
        },
        {
          "name": "Create Component Type",
          "value": "createComponentType",
          "action": "Create component type"
        },
        {
          "name": "Update Component Type",
          "value": "updateComponentType",
          "action": "Update component type"
        },
        {
          "name": "Delete Component Type",
          "value": "deleteComponentType",
          "action": "Delete component type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "components"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCategories",
      "options": [
        {
          "name": "List Categories",
          "value": "listCategories",
          "action": "List categories"
        },
        {
          "name": "Create Category",
          "value": "createCategory",
          "action": "Create category"
        },
        {
          "name": "Get Category",
          "value": "getCategory",
          "action": "Get category"
        },
        {
          "name": "Update Category",
          "value": "updateCategory",
          "action": "Update category"
        },
        {
          "name": "Delete Category",
          "value": "deleteCategory",
          "action": "Delete category"
        },
        {
          "name": "List Company Types",
          "value": "listCompanyTypes",
          "action": "List company types"
        },
        {
          "name": "Create Company Type",
          "value": "createCompanyType",
          "action": "Create company type"
        },
        {
          "name": "Get Company Type",
          "value": "getCompanyType",
          "action": "Get company type"
        },
        {
          "name": "Update Company Type",
          "value": "updateCompanyType",
          "action": "Update company type"
        },
        {
          "name": "Delete Company Type",
          "value": "deleteCompanyType",
          "action": "Delete company type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companyCategories"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getPeriphery",
      "options": [
        {
          "name": "Get Periphery",
          "value": "getPeriphery",
          "action": "Get periphery",
          "description": "Fetches a periphery by ID"
        },
        {
          "name": "List Peripheries",
          "value": "listPeripheries",
          "action": "List peripheries",
          "description": "Gets a list of peripheries with filters"
        },
        {
          "name": "Get Periphery Types",
          "value": "getPeripheryTypes",
          "action": "Get periphery types",
          "description": "Gets a list of all periphery types"
        },
        {
          "name": "Create Periphery Type",
          "value": "createPeripheryType",
          "action": "Create periphery type",
          "description": "Creates a new periphery type"
        },
        {
          "name": "Update Periphery Type",
          "value": "updatePeripheryType",
          "action": "Update periphery type",
          "description": "Updates a periphery type"
        },
        {
          "name": "Delete Periphery Type",
          "value": "deletePeripheryType",
          "action": "Delete periphery type",
          "description": "Deletes a periphery type"
        },
        {
          "name": "Assign Periphery",
          "value": "assignPeriphery",
          "action": "Assign periphery",
          "description": "Assigns a periphery to another pc or periphery"
        },
        {
          "name": "Delete Periphery Assignment",
          "value": "deletePeripheryAssignment",
          "action": "Delete periphery assignment",
          "description": "Deletes a periphery assignment to another pc or periphery"
        },
        {
          "name": "Update Periphery",
          "value": "updatePeriphery",
          "action": "Update periphery",
          "description": "Updates a periphery"
        },
        {
          "name": "Create Periphery",
          "value": "createPeriphery",
          "action": "Create periphery",
          "description": "Creates a periphery"
        },
        {
          "name": "Delete Periphery",
          "value": "deletePeriphery",
          "action": "Delete periphery",
          "description": "Deletes a periphery"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "peripheries"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllManufacturers",
      "options": [
        {
          "name": "Create Manufacturer",
          "value": "createManufacturer",
          "action": "Create a manufacturer",
          "description": "Creates a new manufacturer"
        },
        {
          "name": "Delete Manufacturer",
          "value": "deleteManufacturer",
          "action": "Delete a manufacturer",
          "description": "Deletes a manufacturer"
        },
        {
          "name": "Get All Manufacturers",
          "value": "getAllManufacturers",
          "action": "Get all manufacturers",
          "description": "Gets a list of all manufacturers"
        },
        {
          "name": "Get Manufacturer",
          "value": "getManufacturerById",
          "action": "Get a manufacturer",
          "description": "Gets a specific manufacturer"
        },
        {
          "name": "Update Manufacturer",
          "value": "updateManufacturer",
          "action": "Update a manufacturer",
          "description": "Updates an existing manufacturer"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "manufacturers"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAllOs",
      "options": [
        {
          "name": "Create OS",
          "value": "createOs",
          "action": "Create an OS",
          "description": "Creates a new operating system"
        },
        {
          "name": "Delete OS",
          "value": "deleteOs",
          "action": "Delete an OS",
          "description": "Deletes a specific operating system"
        },
        {
          "name": "Get All OS",
          "value": "getAllOs",
          "action": "Get all OS",
          "description": "Gets a list of all operating systems"
        },
        {
          "name": "Get OS",
          "value": "getOsById",
          "action": "Get an OS",
          "description": "Gets a specific operating system"
        },
        {
          "name": "Update OS",
          "value": "updateOs",
          "action": "Update an OS",
          "description": "Updates an existing operating system"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "operatingSystems"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createCallback",
      "options": [
        {
          "name": "Create Callback",
          "value": "createCallback",
          "action": "Creates a new callback",
          "description": "Creates a new callback in TANSS"
        },
        {
          "name": "Get a List of Callbacks",
          "value": "getCallbacks",
          "action": "Get callbacks",
          "description": "Retrieves a list of callback from the database, using misc. filter settings."
        },
        {
          "name": "Get Callback by ID",
          "value": "getCallbackById",
          "action": "Get callback by id",
          "description": "Gets a single callback by its ID"
        },
        {
          "name": "Update Callback",
          "value": "updateCallback",
          "action": "Update callback",
          "description": "Updates an existing callback"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "callbacks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createChat",
      "options": [
        {
          "name": "Create Chat",
          "value": "createChat",
          "action": "Create a chat",
          "description": "Creates a new chat"
        },
        {
          "name": "Get Chats",
          "value": "getChats",
          "action": "Get chats",
          "description": "Get a list of chats"
        },
        {
          "name": "Get Chat",
          "value": "getChat",
          "action": "Get a chat",
          "description": "Gets a chat"
        },
        {
          "name": "Get Chat Close Requests",
          "value": "getChatCloseRequests",
          "action": "Get chat close requests",
          "description": "Gets chat close requests"
        },
        {
          "name": "Create Chat Message",
          "value": "createChatMessage",
          "action": "Create a chat message",
          "description": "Creates a new chat message"
        },
        {
          "name": "Add Participant",
          "value": "addChatParticipant",
          "action": "Add a participant",
          "description": "Adds a participant"
        },
        {
          "name": "Delete Participant",
          "value": "deleteChatParticipant",
          "action": "Delete a participant",
          "description": "Deletes a participant"
        },
        {
          "name": "Close Chat",
          "value": "closeChat",
          "action": "Close a chat",
          "description": "Closes a chat"
        },
        {
          "name": "Accept/Decline Close Request",
          "value": "acceptDeclineCloseRequest",
          "action": "Accept or decline close request",
          "description": "Accepts or declines a chat closing request"
        },
        {
          "name": "Re-Open Chat",
          "value": "reOpenChat",
          "action": "Re-open a chat",
          "description": "Re-opens a chat"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chats"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "globalSearch",
      "options": [
        {
          "name": "Global Search",
          "value": "globalSearch",
          "action": "Global search",
          "description": "Executes a global search using the provided configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSoftwareLicenses",
      "options": [
        {
          "name": "Get Software Licenses",
          "value": "getSoftwareLicenses",
          "action": "Get a list of software licenses",
          "description": "Get a list of software licenses"
        },
        {
          "name": "Create Software License",
          "value": "createSoftwareLicense",
          "action": "Create a software license",
          "description": "Creates a software license"
        },
        {
          "name": "Get Software License by ID",
          "value": "getSoftwareLicenseById",
          "action": "Get a software license by ID",
          "description": "Gets a single software license by ID"
        },
        {
          "name": "Update Software License",
          "value": "updateSoftwareLicense",
          "action": "Update a software license",
          "description": "Updates a software license"
        },
        {
          "name": "Delete Software License",
          "value": "deleteSoftwareLicense",
          "action": "Delete a software license",
          "description": "Deletes a software license"
        },
        {
          "name": "Get Software License Types",
          "value": "getSoftwareLicenseTypes",
          "action": "Get software license types",
          "description": "Gets all software license types"
        },
        {
          "name": "Create Software License Type",
          "value": "createSoftwareLicenseType",
          "action": "Create a software license type",
          "description": "Creates a new software license type"
        },
        {
          "name": "Get Software License Type",
          "value": "getSoftwareLicenseTypeById",
          "action": "Get a software license type",
          "description": "Gets a single software license type"
        },
        {
          "name": "Update Software License Type",
          "value": "updateSoftwareLicenseType",
          "action": "Update a software license type",
          "description": "Updates a software license type"
        },
        {
          "name": "Delete Software License Type",
          "value": "deleteSoftwareLicenseType",
          "action": "Delete a software license type",
          "description": "Deletes a software license type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "softwareLicenses"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createRemoteSupport",
      "options": [
        {
          "name": "Create / Import Remote Support",
          "value": "createRemoteSupport",
          "action": "Create remote support",
          "description": "Creates/imports a remote support into the TANSS database"
        },
        {
          "name": "Get List of Remote Supports",
          "value": "getRemoteSupports",
          "action": "Get remote supports",
          "description": "Gets a list of remote supports based on filter settings"
        },
        {
          "name": "Get Remote Support by ID",
          "value": "getRemoteSupportById",
          "action": "Get remote support by id",
          "description": "Gets a remote support from the database by its ID"
        },
        {
          "name": "Update Remote Support",
          "value": "updateRemoteSupport",
          "action": "Update remote support",
          "description": "Updates a remote support by ID and sets the new values"
        },
        {
          "name": "Delete Remote Support",
          "value": "deleteRemoteSupport",
          "action": "Delete remote support",
          "description": "Deletes a remote support by ID"
        },
        {
          "name": "Get Device Assignments",
          "value": "getDeviceAssignments",
          "action": "Get device assignments",
          "description": "Gets all device assignments for the remote support type"
        },
        {
          "name": "Create Device Assignment",
          "value": "createAssignDevice",
          "action": "Create device assignment",
          "description": "Creates a device assignment mapping deviceId -> company/link"
        },
        {
          "name": "Delete Device Assignment",
          "value": "deleteAssignDevice",
          "action": "Delete device assignment",
          "description": "Deletes a device assignment by deviceId"
        },
        {
          "name": "Get Technician Assignments",
          "value": "getEmployeeAssignments",
          "action": "Get technician assignments",
          "description": "Gets all employee (technician) assignments for the remote support type"
        },
        {
          "name": "Create Technician Assignment",
          "value": "createAssignEmployee",
          "action": "Create technician assignment",
          "description": "Creates an assignment mapping userId -> employeeId"
        },
        {
          "name": "Delete Technician Assignment",
          "value": "deleteAssignEmployee",
          "action": "Delete technician assignment",
          "description": "Deletes a technician assignment by userId"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "remoteSupports"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create PC",
      "value": "createPc",
      "action": "Creates a PC",
      "description": "Creates a new PC or server",
      "resource": "pc"
    },
    {
      "name": "Delete PC",
      "value": "deletePc",
      "action": "Deletes a PC",
      "description": "Deletes a PC or server",
      "resource": "pc"
    },
    {
      "name": "Get PC by ID",
      "value": "getPcById",
      "action": "Fetches a PC by ID",
      "description": "Fetches a PC or server by a given ID",
      "resource": "pc"
    },
    {
      "name": "List PCs",
      "value": "listPcs",
      "action": "List pcs",
      "description": "Gets a list of PCs or servers",
      "resource": "pc"
    },
    {
      "name": "Update PC",
      "value": "updatePc",
      "action": "Updates a PC",
      "description": "Updates a PC or server",
      "resource": "pc"
    },
    {
      "name": "Create Comment",
      "value": "createComment",
      "action": "Creates a comment for a specific ticket",
      "description": "Creates a comment for a specific ticket",
      "resource": "ticket"
    },
    {
      "name": "Create Ticket",
      "value": "createTicket",
      "action": "Creates a new ticket",
      "description": "Creates a new Ticket in TANSS",
      "resource": "ticket"
    },
    {
      "name": "Delete Ticket",
      "value": "deleteTicket",
      "action": "Deletes a ticket",
      "description": "Deletes a ticket",
      "resource": "ticket"
    },
    {
      "name": "Get Ticket by ID",
      "value": "getTicketById",
      "action": "Fetches a ticket by ID",
      "description": "Fetches a ticket by ID",
      "resource": "ticket"
    },
    {
      "name": "Get Ticket History",
      "value": "getTicketHistory",
      "action": "Fetches the history of a ticket",
      "description": "Fetches the history of a ticket",
      "resource": "ticket"
    },
    {
      "name": "Merge Tickets",
      "value": "mergeTickets",
      "action": "Merges one ticket into another",
      "description": "Merges one ticket into another",
      "resource": "ticket"
    },
    {
      "name": "Update Ticket",
      "value": "updateTicket",
      "action": "Updates a ticket with the provided details",
      "description": "Updates a ticket with the provided details",
      "resource": "ticket"
    },
    {
      "name": "Create Domain",
      "value": "createDomain",
      "action": "Creates a new domain",
      "description": "Creates a new Domain in TANSS",
      "resource": "domain"
    },
    {
      "name": "Get Domain by ID",
      "value": "getDomainById",
      "action": "Fetches a domain by ID",
      "description": "Fetches a domain by ID",
      "resource": "domain"
    },
    {
      "name": "Update Domain",
      "value": "updateDomain",
      "action": "Updates a domain",
      "description": "Updates a domain",
      "resource": "domain"
    },
    {
      "name": "Delete Domain",
      "value": "deleteDomain",
      "action": "Deletes a domain",
      "description": "Deletes a domain",
      "resource": "domain"
    },
    {
      "name": "List Domains By Company",
      "value": "listDomainsByCompany",
      "action": "Lists domains of a company",
      "description": "Lists domains for a company",
      "resource": "domain"
    },
    {
      "name": "Assign Checklist",
      "value": "assignChecklist",
      "action": "Assigns a checklist to a ticket",
      "description": "Assigns a checklist to a ticket",
      "resource": "checklists"
    },
    {
      "name": "Remove Checklist",
      "value": "removeChecklist",
      "action": "Removes a checklist assignment from a ticket",
      "description": "Removes a checklist assignment from a ticket",
      "resource": "checklists"
    },
    {
      "name": "Get Assigned Checklists",
      "value": "getAssignedChecklists",
      "action": "Gets all checklists assigned to a ticket",
      "description": "Gets all checklists assigned to a ticket",
      "resource": "checklists"
    },
    {
      "name": "Get Checklist Process",
      "value": "getChecklistProcess",
      "action": "Gets checklist details for processing within a ticket",
      "description": "Gets checklist details for processing within a ticket",
      "resource": "checklists"
    },
    {
      "name": "Check Item",
      "value": "checkItem",
      "action": "Checks/unchecks an item",
      "description": "Checks or unchecks an item in a checklist",
      "resource": "checklists"
    },
    {
      "name": "Get Ticket Documents",
      "value": "getTicketDocuments",
      "action": "Get ticket documents",
      "description": "Gets all documents attached to a ticket (list)",
      "resource": "ticketContent"
    },
    {
      "name": "Get Ticket Document",
      "value": "getTicketDocument",
      "action": "Get a ticket document",
      "description": "Generates a one-time download URL for a specific ticket document",
      "resource": "ticketContent"
    },
    {
      "name": "Get Ticket Images",
      "value": "getTicketImages",
      "action": "Get ticket images",
      "description": "Gets all images (screenshots) attached to a ticket (list)",
      "resource": "ticketContent"
    },
    {
      "name": "Get Ticket Image",
      "value": "getTicketImage",
      "action": "Get a ticket image",
      "description": "Generates a one-time download URL for a specific ticket image",
      "resource": "ticketContent"
    },
    {
      "name": "Upload Document / Image",
      "value": "uploadTicketContent",
      "action": "Upload document or image to ticket",
      "description": "Uploads a document or image into a ticket (multipart/form-data)",
      "resource": "ticketContent"
    },
    {
      "name": "Get All Project Tickets",
      "value": "getProjectTickets",
      "action": "Get a list of all projects",
      "description": "Get a list of all projects",
      "resource": "ticketList"
    },
    {
      "name": "Get Company Tickets",
      "value": "getCompanyTickets",
      "action": "Get tickets for a specific company",
      "description": "Get tickets for a specific company",
      "resource": "ticketList"
    },
    {
      "name": "Get Custom Ticket List",
      "value": "getCustomTicketList",
      "action": "Get a custom ticket list",
      "description": "Get a custom ticket list with query parameters",
      "resource": "ticketList"
    },
    {
      "name": "Get General Tickets",
      "value": "getGeneralTickets",
      "action": "Get general tickets assigned to no employee",
      "description": "Get general tickets assigned to no employee",
      "resource": "ticketList"
    },
    {
      "name": "Get Local Admin Tickets",
      "value": "getLocalAdminTickets",
      "action": "Get a list of local admin tickets",
      "description": "Gets a list of all tickets which are assigned to local ticket admins",
      "resource": "ticketList"
    },
    {
      "name": "Get Not Identified Tickets",
      "value": "getNotIdentifiedTickets",
      "action": "Get tickets not assigned to any company",
      "description": "Get tickets not assigned to any company",
      "resource": "ticketList"
    },
    {
      "name": "Get Own Tickets",
      "value": "getOwnTickets",
      "action": "Get tickets assigned to the current employee",
      "description": "Get tickets assigned to the current employee",
      "resource": "ticketList"
    },
    {
      "name": "Get Repair Tickets",
      "value": "getRepairTickets",
      "action": "Get a list of repair tickets",
      "description": "Gets a list of repair tickets",
      "resource": "ticketList"
    },
    {
      "name": "Get Technician Tickets",
      "value": "getTechnicianTickets",
      "action": "Get tickets assigned to other technicians",
      "description": "Get tickets assigned to other technicians",
      "resource": "ticketList"
    },
    {
      "name": "Get Tickets With Role",
      "value": "getTicketsWithRole",
      "action": "Get a list of tickets with technician role",
      "description": "Gets a list of all tickets which a technician has a role in",
      "resource": "ticketList"
    },
    {
      "name": "Get Ticket States",
      "value": "getTicketStates",
      "action": "Get ticket states",
      "description": "Gets a list of all ticket states",
      "resource": "ticketStates"
    },
    {
      "name": "Create Ticket State",
      "value": "createTicketState",
      "action": "Create a ticket state",
      "description": "Creates a new ticket state",
      "resource": "ticketStates"
    },
    {
      "name": "Update Ticket State",
      "value": "updateTicketState",
      "action": "Update a ticket state",
      "description": "Updates an existing ticket state",
      "resource": "ticketStates"
    },
    {
      "name": "Delete Ticket State",
      "value": "deleteTicketState",
      "action": "Delete a ticket state",
      "description": "Deletes a ticket state",
      "resource": "ticketStates"
    },
    {
      "name": "Get Timestamps",
      "value": "getTimestamps",
      "action": "Get timestamps",
      "description": "Gets a list of timestamps from a given period",
      "resource": "timestamps"
    },
    {
      "name": "Get Timestamp Info",
      "value": "getTimestampInfo",
      "action": "Get timestamp info",
      "description": "Gets the timestamp infos for a given time period",
      "resource": "timestamps"
    },
    {
      "name": "Get Timestamp Statistics",
      "value": "getTimestampStatistics",
      "action": "Get timestamp statistics",
      "description": "Gets the timestamp infos for a given time period (with statistical values)",
      "resource": "timestamps"
    },
    {
      "name": "Create Timestamp",
      "value": "createTimestamp",
      "action": "Create timestamp",
      "description": "Writes a timestamp into the database",
      "resource": "timestamps"
    },
    {
      "name": "Update Timestamp",
      "value": "updateTimestamp",
      "action": "Update timestamp",
      "description": "Edits a single timestamp",
      "resource": "timestamps"
    },
    {
      "name": "Save Day Timestamps",
      "value": "saveDayTimestamps",
      "action": "Save day timestamps",
      "description": "Writes the timestamps of a whole day into the database at once",
      "resource": "timestamps"
    },
    {
      "name": "Create Day Closing(s)",
      "value": "createDayClosing",
      "action": "Create day closing(s)",
      "description": "Creates one or more day closings",
      "resource": "timestamps"
    },
    {
      "name": "Delete Day Closing(s)",
      "value": "deleteDayClosing",
      "action": "Delete day closing(s)",
      "description": "Deletes one or more day closings (undo)",
      "resource": "timestamps"
    },
    {
      "name": "Get Day Closing Till Date",
      "value": "getDayClosingTillDate",
      "action": "Get day closing till date",
      "description": "Gets all infos about last dayclosings for employees",
      "resource": "timestamps"
    },
    {
      "name": "Create Day Closings Till Date",
      "value": "createDayClosingsTillDate",
      "action": "Create day closings till date",
      "description": "Creates missing dayClosings for given employees till a date",
      "resource": "timestamps"
    },
    {
      "name": "Set Initial Balance",
      "value": "setInitialBalance",
      "action": "Set initial balance",
      "description": "Sets the initial balance for an employee",
      "resource": "timestamps"
    },
    {
      "name": "Get Pause Configs",
      "value": "getPauseConfigs",
      "action": "Get pause configs",
      "description": "Gets a list of all pause configs",
      "resource": "timestamps"
    },
    {
      "name": "Create Pause Config",
      "value": "createPauseConfig",
      "action": "Create pause config",
      "description": "Creates a pause config",
      "resource": "timestamps"
    },
    {
      "name": "Update Pause Config",
      "value": "updatePauseConfig",
      "action": "Update pause config",
      "description": "Updates a pause config",
      "resource": "timestamps"
    },
    {
      "name": "Delete Pause Config",
      "value": "deletePauseConfig",
      "action": "Delete pause config",
      "description": "Deletes a pause config",
      "resource": "timestamps"
    },
    {
      "name": "Get Availability",
      "value": "getAvailability",
      "action": "Get availability",
      "description": "Fetch availability information for employees",
      "resource": "availability"
    },
    {
      "name": "Get Technicians",
      "value": "getTechnicians",
      "action": "Get technicians",
      "description": "Gets all technicians of this system",
      "resource": "employees"
    },
    {
      "name": "Create Employee",
      "value": "createEmployee",
      "action": "Create employee",
      "description": "Creates a new employee",
      "resource": "employees"
    },
    {
      "name": "Test SMTP Settings",
      "value": "testSmtp",
      "action": "Test SMTP",
      "description": "Send a test email using specified SMTP settings",
      "resource": "mails"
    },
    {
      "name": "Create / Import Call",
      "value": "createCall",
      "action": "Create call",
      "description": "Creates/imports a phone call into the database",
      "resource": "calls"
    },
    {
      "name": "Get a List of Phone Calls",
      "value": "getCalls",
      "action": "Get calls",
      "description": "Retrieves a list of phone calls using filter settings",
      "resource": "calls"
    },
    {
      "name": "Get Phone Call By ID",
      "value": "getCallById",
      "action": "Get call by id",
      "description": "Gets a specific phone call by its ID",
      "resource": "calls"
    },
    {
      "name": "Update Phone Call",
      "value": "updateCall",
      "action": "Update call",
      "description": "Updates an existing phone call by ID",
      "resource": "calls"
    },
    {
      "name": "Identify Phone Call",
      "value": "identifyCall",
      "action": "Identify call",
      "description": "Identifies a phone call and resolves company / employee IDs",
      "resource": "calls"
    },
    {
      "name": "Get All Employee Assignments",
      "value": "getEmployeeAssignments",
      "action": "Get employee assignments",
      "description": "Get all assignments between idStrings and TANSS employees",
      "resource": "calls"
    },
    {
      "name": "Create Employee Assignment",
      "value": "createEmployeeAssignment",
      "action": "Create employee assignment",
      "description": "Creates a new assignment between an idString and a TANSS employee",
      "resource": "calls"
    },
    {
      "name": "Delete Employee Assignment",
      "value": "deleteEmployeeAssignment",
      "action": "Delete employee assignment",
      "description": "Deletes an assignment between an idString and a TANSS employee",
      "resource": "calls"
    },
    {
      "name": "Creates a Call Notification",
      "value": "createNotification",
      "action": "Create call notification",
      "description": "Generates a notification (popup) for an incoming or outgoing call",
      "resource": "calls"
    },
    {
      "name": "Get a List of Phone Calls",
      "value": "getCalls",
      "action": "Get calls",
      "description": "Retrieves a list of phone calls using filter settings",
      "resource": "callsuser"
    },
    {
      "name": "Get Phone Call By ID",
      "value": "getCallById",
      "action": "Get call by id",
      "description": "Gets a specific phone call by its ID",
      "resource": "callsuser"
    },
    {
      "name": "Identifies a Phone Call",
      "value": "identifyCall",
      "action": "Identify call",
      "description": "Tries to identify a phone call and resolve company and employeeId",
      "resource": "callsuser"
    },
    {
      "name": "Create CPU",
      "value": "createCpu",
      "action": "Create a CPU",
      "description": "Creates a new CPU",
      "resource": "cpus"
    },
    {
      "name": "Delete CPU",
      "value": "deleteCpu",
      "action": "Delete a CPU",
      "description": "Deletes a CPU",
      "resource": "cpus"
    },
    {
      "name": "Get All CPUs",
      "value": "getAllCpus",
      "action": "Get all CPUs",
      "description": "Gets a list of all CPUs",
      "resource": "cpus"
    },
    {
      "name": "Get CPU",
      "value": "getCpuById",
      "action": "Get a CPU",
      "description": "Gets a specific CPU",
      "resource": "cpus"
    },
    {
      "name": "Update CPU",
      "value": "updateCpu",
      "action": "Update a CPU",
      "description": "Updates an existing CPU",
      "resource": "cpus"
    },
    {
      "name": "Create HDD Type",
      "value": "createHddType",
      "action": "Create an HDD type",
      "description": "Creates a new hdd type",
      "resource": "hddTypes"
    },
    {
      "name": "Delete HDD Type",
      "value": "deleteHddType",
      "action": "Delete an HDD type",
      "description": "Deletes a hdd type",
      "resource": "hddTypes"
    },
    {
      "name": "Get All HDD Types",
      "value": "getAllHddTypes",
      "action": "Get all HDD types",
      "description": "Gets a list of all hdd types",
      "resource": "hddTypes"
    },
    {
      "name": "Get HDD Type",
      "value": "getHddTypeById",
      "action": "Get an HDD type",
      "description": "Gets a specific hdd type",
      "resource": "hddTypes"
    },
    {
      "name": "Update HDD Type",
      "value": "updateHddType",
      "action": "Update an HDD type",
      "description": "Updates an existing hdd type",
      "resource": "hddTypes"
    },
    {
      "name": "Get IPs",
      "value": "getIps",
      "action": "Get IPs",
      "description": "Gets all ip addresses of a device",
      "resource": "ips"
    },
    {
      "name": "Create IP",
      "value": "createIp",
      "action": "Create IP",
      "description": "Creates an ip address for a pc/periphery",
      "resource": "ips"
    },
    {
      "name": "Update IP",
      "value": "updateIp",
      "action": "Update IP",
      "description": "Updates a specific ip address",
      "resource": "ips"
    },
    {
      "name": "Delete IP",
      "value": "deleteIp",
      "action": "Delete IP",
      "description": "Deletes an ip address",
      "resource": "ips"
    },
    {
      "name": "Get Component",
      "value": "getComponent",
      "action": "Get component",
      "resource": "components"
    },
    {
      "name": "Create Component",
      "value": "createComponent",
      "action": "Create component",
      "resource": "components"
    },
    {
      "name": "Update Component",
      "value": "updateComponent",
      "action": "Update component",
      "resource": "components"
    },
    {
      "name": "Delete Component",
      "value": "deleteComponent",
      "action": "Delete component",
      "resource": "components"
    },
    {
      "name": "List Components",
      "value": "listComponents",
      "action": "List components",
      "resource": "components"
    },
    {
      "name": "Get Component Types",
      "value": "getComponentTypes",
      "action": "Get component types",
      "resource": "components"
    },
    {
      "name": "Create Component Type",
      "value": "createComponentType",
      "action": "Create component type",
      "resource": "components"
    },
    {
      "name": "Update Component Type",
      "value": "updateComponentType",
      "action": "Update component type",
      "resource": "components"
    },
    {
      "name": "Delete Component Type",
      "value": "deleteComponentType",
      "action": "Delete component type",
      "resource": "components"
    },
    {
      "name": "List Categories",
      "value": "listCategories",
      "action": "List categories",
      "resource": "companyCategories"
    },
    {
      "name": "Create Category",
      "value": "createCategory",
      "action": "Create category",
      "resource": "companyCategories"
    },
    {
      "name": "Get Category",
      "value": "getCategory",
      "action": "Get category",
      "resource": "companyCategories"
    },
    {
      "name": "Update Category",
      "value": "updateCategory",
      "action": "Update category",
      "resource": "companyCategories"
    },
    {
      "name": "Delete Category",
      "value": "deleteCategory",
      "action": "Delete category",
      "resource": "companyCategories"
    },
    {
      "name": "List Company Types",
      "value": "listCompanyTypes",
      "action": "List company types",
      "resource": "companyCategories"
    },
    {
      "name": "Create Company Type",
      "value": "createCompanyType",
      "action": "Create company type",
      "resource": "companyCategories"
    },
    {
      "name": "Get Company Type",
      "value": "getCompanyType",
      "action": "Get company type",
      "resource": "companyCategories"
    },
    {
      "name": "Update Company Type",
      "value": "updateCompanyType",
      "action": "Update company type",
      "resource": "companyCategories"
    },
    {
      "name": "Delete Company Type",
      "value": "deleteCompanyType",
      "action": "Delete company type",
      "resource": "companyCategories"
    },
    {
      "name": "Get Periphery",
      "value": "getPeriphery",
      "action": "Get periphery",
      "description": "Fetches a periphery by ID",
      "resource": "peripheries"
    },
    {
      "name": "List Peripheries",
      "value": "listPeripheries",
      "action": "List peripheries",
      "description": "Gets a list of peripheries with filters",
      "resource": "peripheries"
    },
    {
      "name": "Get Periphery Types",
      "value": "getPeripheryTypes",
      "action": "Get periphery types",
      "description": "Gets a list of all periphery types",
      "resource": "peripheries"
    },
    {
      "name": "Create Periphery Type",
      "value": "createPeripheryType",
      "action": "Create periphery type",
      "description": "Creates a new periphery type",
      "resource": "peripheries"
    },
    {
      "name": "Update Periphery Type",
      "value": "updatePeripheryType",
      "action": "Update periphery type",
      "description": "Updates a periphery type",
      "resource": "peripheries"
    },
    {
      "name": "Delete Periphery Type",
      "value": "deletePeripheryType",
      "action": "Delete periphery type",
      "description": "Deletes a periphery type",
      "resource": "peripheries"
    },
    {
      "name": "Assign Periphery",
      "value": "assignPeriphery",
      "action": "Assign periphery",
      "description": "Assigns a periphery to another pc or periphery",
      "resource": "peripheries"
    },
    {
      "name": "Delete Periphery Assignment",
      "value": "deletePeripheryAssignment",
      "action": "Delete periphery assignment",
      "description": "Deletes a periphery assignment to another pc or periphery",
      "resource": "peripheries"
    },
    {
      "name": "Update Periphery",
      "value": "updatePeriphery",
      "action": "Update periphery",
      "description": "Updates a periphery",
      "resource": "peripheries"
    },
    {
      "name": "Create Periphery",
      "value": "createPeriphery",
      "action": "Create periphery",
      "description": "Creates a periphery",
      "resource": "peripheries"
    },
    {
      "name": "Delete Periphery",
      "value": "deletePeriphery",
      "action": "Delete periphery",
      "description": "Deletes a periphery",
      "resource": "peripheries"
    },
    {
      "name": "Create Manufacturer",
      "value": "createManufacturer",
      "action": "Create a manufacturer",
      "description": "Creates a new manufacturer",
      "resource": "manufacturers"
    },
    {
      "name": "Delete Manufacturer",
      "value": "deleteManufacturer",
      "action": "Delete a manufacturer",
      "description": "Deletes a manufacturer",
      "resource": "manufacturers"
    },
    {
      "name": "Get All Manufacturers",
      "value": "getAllManufacturers",
      "action": "Get all manufacturers",
      "description": "Gets a list of all manufacturers",
      "resource": "manufacturers"
    },
    {
      "name": "Get Manufacturer",
      "value": "getManufacturerById",
      "action": "Get a manufacturer",
      "description": "Gets a specific manufacturer",
      "resource": "manufacturers"
    },
    {
      "name": "Update Manufacturer",
      "value": "updateManufacturer",
      "action": "Update a manufacturer",
      "description": "Updates an existing manufacturer",
      "resource": "manufacturers"
    },
    {
      "name": "Create OS",
      "value": "createOs",
      "action": "Create an OS",
      "description": "Creates a new operating system",
      "resource": "operatingSystems"
    },
    {
      "name": "Delete OS",
      "value": "deleteOs",
      "action": "Delete an OS",
      "description": "Deletes a specific operating system",
      "resource": "operatingSystems"
    },
    {
      "name": "Get All OS",
      "value": "getAllOs",
      "action": "Get all OS",
      "description": "Gets a list of all operating systems",
      "resource": "operatingSystems"
    },
    {
      "name": "Get OS",
      "value": "getOsById",
      "action": "Get an OS",
      "description": "Gets a specific operating system",
      "resource": "operatingSystems"
    },
    {
      "name": "Update OS",
      "value": "updateOs",
      "action": "Update an OS",
      "description": "Updates an existing operating system",
      "resource": "operatingSystems"
    },
    {
      "name": "Create Callback",
      "value": "createCallback",
      "action": "Creates a new callback",
      "description": "Creates a new callback in TANSS",
      "resource": "callbacks"
    },
    {
      "name": "Get a List of Callbacks",
      "value": "getCallbacks",
      "action": "Get callbacks",
      "description": "Retrieves a list of callback from the database, using misc. filter settings.",
      "resource": "callbacks"
    },
    {
      "name": "Get Callback by ID",
      "value": "getCallbackById",
      "action": "Get callback by id",
      "description": "Gets a single callback by its ID",
      "resource": "callbacks"
    },
    {
      "name": "Update Callback",
      "value": "updateCallback",
      "action": "Update callback",
      "description": "Updates an existing callback",
      "resource": "callbacks"
    },
    {
      "name": "Create Chat",
      "value": "createChat",
      "action": "Create a chat",
      "description": "Creates a new chat",
      "resource": "chats"
    },
    {
      "name": "Get Chats",
      "value": "getChats",
      "action": "Get chats",
      "description": "Get a list of chats",
      "resource": "chats"
    },
    {
      "name": "Get Chat",
      "value": "getChat",
      "action": "Get a chat",
      "description": "Gets a chat",
      "resource": "chats"
    },
    {
      "name": "Get Chat Close Requests",
      "value": "getChatCloseRequests",
      "action": "Get chat close requests",
      "description": "Gets chat close requests",
      "resource": "chats"
    },
    {
      "name": "Create Chat Message",
      "value": "createChatMessage",
      "action": "Create a chat message",
      "description": "Creates a new chat message",
      "resource": "chats"
    },
    {
      "name": "Add Participant",
      "value": "addChatParticipant",
      "action": "Add a participant",
      "description": "Adds a participant",
      "resource": "chats"
    },
    {
      "name": "Delete Participant",
      "value": "deleteChatParticipant",
      "action": "Delete a participant",
      "description": "Deletes a participant",
      "resource": "chats"
    },
    {
      "name": "Close Chat",
      "value": "closeChat",
      "action": "Close a chat",
      "description": "Closes a chat",
      "resource": "chats"
    },
    {
      "name": "Accept/Decline Close Request",
      "value": "acceptDeclineCloseRequest",
      "action": "Accept or decline close request",
      "description": "Accepts or declines a chat closing request",
      "resource": "chats"
    },
    {
      "name": "Re-Open Chat",
      "value": "reOpenChat",
      "action": "Re-open a chat",
      "description": "Re-opens a chat",
      "resource": "chats"
    },
    {
      "name": "Global Search",
      "value": "globalSearch",
      "action": "Global search",
      "description": "Executes a global search using the provided configuration",
      "resource": "search"
    },
    {
      "name": "Get Software Licenses",
      "value": "getSoftwareLicenses",
      "action": "Get a list of software licenses",
      "description": "Get a list of software licenses",
      "resource": "softwareLicenses"
    },
    {
      "name": "Create Software License",
      "value": "createSoftwareLicense",
      "action": "Create a software license",
      "description": "Creates a software license",
      "resource": "softwareLicenses"
    },
    {
      "name": "Get Software License by ID",
      "value": "getSoftwareLicenseById",
      "action": "Get a software license by ID",
      "description": "Gets a single software license by ID",
      "resource": "softwareLicenses"
    },
    {
      "name": "Update Software License",
      "value": "updateSoftwareLicense",
      "action": "Update a software license",
      "description": "Updates a software license",
      "resource": "softwareLicenses"
    },
    {
      "name": "Delete Software License",
      "value": "deleteSoftwareLicense",
      "action": "Delete a software license",
      "description": "Deletes a software license",
      "resource": "softwareLicenses"
    },
    {
      "name": "Get Software License Types",
      "value": "getSoftwareLicenseTypes",
      "action": "Get software license types",
      "description": "Gets all software license types",
      "resource": "softwareLicenses"
    },
    {
      "name": "Create Software License Type",
      "value": "createSoftwareLicenseType",
      "action": "Create a software license type",
      "description": "Creates a new software license type",
      "resource": "softwareLicenses"
    },
    {
      "name": "Get Software License Type",
      "value": "getSoftwareLicenseTypeById",
      "action": "Get a software license type",
      "description": "Gets a single software license type",
      "resource": "softwareLicenses"
    },
    {
      "name": "Update Software License Type",
      "value": "updateSoftwareLicenseType",
      "action": "Update a software license type",
      "description": "Updates a software license type",
      "resource": "softwareLicenses"
    },
    {
      "name": "Delete Software License Type",
      "value": "deleteSoftwareLicenseType",
      "action": "Delete a software license type",
      "description": "Deletes a software license type",
      "resource": "softwareLicenses"
    },
    {
      "name": "Create / Import Remote Support",
      "value": "createRemoteSupport",
      "action": "Create remote support",
      "description": "Creates/imports a remote support into the TANSS database",
      "resource": "remoteSupports"
    },
    {
      "name": "Get List of Remote Supports",
      "value": "getRemoteSupports",
      "action": "Get remote supports",
      "description": "Gets a list of remote supports based on filter settings",
      "resource": "remoteSupports"
    },
    {
      "name": "Get Remote Support by ID",
      "value": "getRemoteSupportById",
      "action": "Get remote support by id",
      "description": "Gets a remote support from the database by its ID",
      "resource": "remoteSupports"
    },
    {
      "name": "Update Remote Support",
      "value": "updateRemoteSupport",
      "action": "Update remote support",
      "description": "Updates a remote support by ID and sets the new values",
      "resource": "remoteSupports"
    },
    {
      "name": "Delete Remote Support",
      "value": "deleteRemoteSupport",
      "action": "Delete remote support",
      "description": "Deletes a remote support by ID",
      "resource": "remoteSupports"
    },
    {
      "name": "Get Device Assignments",
      "value": "getDeviceAssignments",
      "action": "Get device assignments",
      "description": "Gets all device assignments for the remote support type",
      "resource": "remoteSupports"
    },
    {
      "name": "Create Device Assignment",
      "value": "createAssignDevice",
      "action": "Create device assignment",
      "description": "Creates a device assignment mapping deviceId -> company/link",
      "resource": "remoteSupports"
    },
    {
      "name": "Delete Device Assignment",
      "value": "deleteAssignDevice",
      "action": "Delete device assignment",
      "description": "Deletes a device assignment by deviceId",
      "resource": "remoteSupports"
    },
    {
      "name": "Get Technician Assignments",
      "value": "getEmployeeAssignments",
      "action": "Get technician assignments",
      "description": "Gets all employee (technician) assignments for the remote support type",
      "resource": "remoteSupports"
    },
    {
      "name": "Create Technician Assignment",
      "value": "createAssignEmployee",
      "action": "Create technician assignment",
      "description": "Creates an assignment mapping userId -> employeeId",
      "resource": "remoteSupports"
    },
    {
      "name": "Delete Technician Assignment",
      "value": "deleteAssignEmployee",
      "action": "Delete technician assignment",
      "description": "Deletes a technician assignment by userId",
      "resource": "remoteSupports"
    }
  ]

npm_readme:
  # Important for the old Tanss Node Users

  A new **TANSS Node** was released on **October 27, 2025** [here](https://github.com/BuddiesD/n8n-nodes-tanss).  
  Please note that **existing credentials are not compatible** due to the introduction of **2FA (Two-Factor Authentication)**.

  You can install both versions, but **2FA functionality will only be visible after uninstalling** the old package.

  Old: [n8n-nodes-tanss-api](https://www.npmjs.com/package/n8n-nodes-tanss-api)<br>
  New: [n8n-nodes-tanss](https://www.npmjs.com/package/n8n-nodes-tanss)

  ### Breaking Changes (Credentials & Auth)

  **Important:** Updating from older versions to versions **greater than 1.1.0** can break existing workflows until credentials and auth setup are migrated.

  - The legacy credential `TanssApi` is removed.
  - Authentication is now handled via `Auth Mode` and two credential types:
    - `TANSS User API` (username/password, optional 2FA, auto refresh)
    - `TANSS Generated Token API` (static generated token)
  - Existing workflows using old credentials must be reconfigured with one of the new credential types.
  - The old dedicated Authentication resource/node operations were removed.
  - If your workflow previously used Authentication operations to obtain tokens manually, switch to normal resource operations with the configured credentials.
  - TANSS credentials are now also usable in the normal n8n `HTTP Request` node.


  # n8n-nodes-tanss

  <div align="center">
  <img src="./docs/images/n8n_tanss.png" width="70%">
  </div>
  <br>
  This is an n8n community node. It lets you use the TANSS API in your n8n workflows.<br>
  TANSS is a professional ticket and service management system for handling support tickets, customer communication, and internal processes.

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

  ## Contents

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Resources](#resources)
  - [ToDo](#to-do--progress)
  - [Changelog](CHANGELOG.md)
  - [Contributing](#contributing)

  ## Installation

  ### For installation in n8n

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

  ---

  ### For Local Development

  This project is an **n8n community node** and must be run from source for local development.

  #### Prerequisites

  - Node.js (v22.20.0 recommended)
  - npm

  #### 1. Clone the repository

  You can clone the repository anywhere on your system — it does **not** need to be inside the n8n directory.
  ```bash
  git clone https://github.com/BuddiesD/n8n-nodes-tanss.git
  cd n8n-nodes-tanss
  ```
  #### 2. Install dependencies
  ```bash
  npm install
  ```
  #### 3. Start development mode

  Run the node in development mode with live reloading:

  ```bash
  npm run dev
  ```
  This command uses `n8n-node dev` to build the node, start a local n8n instance, and automatically apply code changes during development.

  `npm run dev` is equivalent to running `n8n-node dev` directly.

  ### Development (Dev Container)
  To start **n8n** with the custom node, run: `npm run dev`

  Note: The first startup may time out because n8n is being downloaded and set up.

  ## Operations

  The following operations are supported by this node and are documented in the **ToDo list** and the **TANSS API documentation**.

  **Operations currently implemented** in the node are marked as **Done** or **Testing** in the **ToDo list**.
  A complete overview of all available operations can be found in the TANSS API documentation.

  - [ToDo](#to-do--progress)
  - [Tanss API documentation](https://api-doc.tanss.de/)

  ## Credentials

  Authentication is now fully credential-based and also works with n8n `HTTP Request` using TANSS credentials.

  Use the node parameter `Auth Mode` and select one credential type:

  - `User Login (Auto Refresh)`
    - Credential: `TANSS User API`
    - Fields: `Base URL`, `Username`, `Password`, optional `2FA Secret`
    - Automatically refreshes tokens using `refreshToken` when possible

  - `Generated Token`
    - Credential: `TANSS Generated Token API`
    - Fields: `Base URL`, `Generated API Token`
    - Uses static generated token scopes (no refresh)

  ## Compatibility

  Compatible with n8n@1.60.0 or later<br>
  Tested with TANSS API. Version: 10.12.0

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Tanss API documentation](https://api-doc.tanss.de/)

  ## To-Do / Progress

  **Status / Progress**  
  Progress: **163 / 271 (1 not in API Docs)** (60%)

  <details>
  <summary><strong>Complete overview</strong></summary>

  <br>
  <details>
  <summary><strong>security [1/1] - Done</strong></summary>

    - [x] Login with Username & Password
    - [x] 2FA Auth Support  
  </details>
  <details>
  <summary><strong>tickets [6/6] - Done</strong></summary>

    - [x] [POST] Creates a ticket in the database
    - [x] [GET] Gets a ticket by id
    - [x] [DEL] Deletes a ticket by id
    - [x] [PUT] Updates a ticket
    - [x] [GET] Gets a ticket history
    - [x] [POST] Creates a comment
    - [x] [PUT] Merge two Tickets (not in API Docs)
  </details>
  <details>
  <summary><strong>ticket lists [10/10] - Done</strong></summary>

    - [x] [GET] gets a list of own tickets (assigned to currently logged in employee)
    - [x] [GET] gets a list of general tickets (assigned to no employee)
    - [x] [GET] gets a list of company tickets
    - [x] [GET] gets a list of tickets of all technicians
    - [x] [GET] gets a list of repair tickets
    - [x] [GET] gets a list of not identified tickets
    - [x] [GET] gets a list of all projects
    - [x] [GET] gets a list of all tickets which are assigned to local ticket admins
    - [x] [GET] gets a list of all ticket which a technician has a role in
    - [x] [PUT] Get a (custom) ticket list
  </details>
  <details>
  <summary><strong>ticket content [5/5] - Done</strong></summary>

    - [x] [GET] Gets all ticket documents
    - [x] [GET] Gets a ticket document
    - [x] [GET] Gets all ticket images
    - [x] [GET] Gets a ticket image
    - [x] [POST] upload a document/image
  </details>
  <details>
  <summary><strong>ticket states [4/4] - Done</strong></summary>

    - [x] [GET] Gets a list of all ticket states
    - [x] [POST] Creates a ticket state
    - [x] [PUT] Updates a ticket state
    - [x] [DEL] Deletes a ticket state
  </details>
  <details>
  <summary><strong>timestamp [15/15] - Done</strong></summary>

    - [x] [GET] gets a list of timestamps from a given period
    - [x] [POST] writes a timestamp into the database
    - [x] [PUT] edits a single timestamp
    - [x] [PUT] writes the timstamps of a whole day into the database at once
    - [x] [GET] gets the timestamp infos for a given time period
    - [x] [GET] gets the timestamp infos for a given time period (with statistical values)
    - [x] [POST] does one or more "day closings" for the timestamp module
    - [x] [DEL] remove / undo one or more "day closings" for the timestamp module
    - [x] [GET] gets all infos about last dayclosings for employees
    - [x] [POST] created dayClosings to a given date
    - [x] [POST] sets the initial balance for this employee
    - [x] [GET] gets a list of all pause configs
    - [x] [POST] creates a pause config
    - [x] [PUT] updates a pause config
    - [x] [DEL] deletes a pause config
  </details>
  <details>
  <summary><strong>calls [9/9] - Done</strong></summary>

    - [x] [POST] Creates/imports a phone call into the database
    - [x] [PUT] Get a list of phone calls
    - [x] [GET] Get phone call by id
    - [x] [PUT] Update phone call
    - [x] [POST] identifies a phone call
    - [x] [GET] Get all employee assignments
    - [x] [POST] Creates a new employee assignment
    - [x] [DEL] Deletes an employee assignment
    - [x] [POST] Creates a call notification
  </details>
  <details>
  <summary><strong>calls (user context) [3/3] - Done</strong></summary>

    - [x] [PUT] Get a list of phone calls
    - [x] [GET] Get phone call by id
    - [x] [POST] identifies a phone call
  </details>
  <details>
  <summary><strong>remote supports [11/11] - Done</strong></summary>

    - [x] [POST] Creates/imports a remote support into the database
    - [x] [PUT] Get list of remote supports
    - [x] [GET] Get remote support by id
    - [x] [PUT] Updates a remote support
    - [x] [DEL] Delete remote support
    - [x] [GET] Gets all device assignments
    - [x] [POST] Creates a device assignment
    - [x] [DEL] Deletes a device assignment
    - [x] [GET] Gets all technician assignments
    - [x] [POST] Creates a technician assignment
    - [x] [DEL] Delets a technician assignment
  </details>
  <details>
  <summary><strong>monitoring [0/7] - ToDo</strong></summary>

    - [ ] [POST] Creates a ticket, using the monitoring api
    - [ ] [POST] Assigns a groupName to a company or device
    - [ ] [DEL] Delete a group assignment
    - [ ] [GET] Gets all group assignments
    - [ ] [GET] Gets ticket(s), based on a given group
    - [ ] [GET] Gets a ticket (created by the monitoring api) by id
    - [ ] [PUT] Updates a ticket (created by the monitoring api) by id
  </details>
  <details>
  <summary><strong>erp [0/16] - ?</strong></summary>

    - [ ] [POST] Insert new invoices
    - [ ] [GET] Gets a list of billable supports
    - [ ] [GET] Get a list of customers and employees
    - [ ] [POST] Insert new customers
    - [ ] [POST] create a new ticket
    - [ ] [GET] gets a list of tickets states
    - [ ] [GET] gets a list of tickets types
    - [ ] [POST] upload a document/image into a ticket
    - [ ] [GET] get all employees from the own company
    - [ ] [GET] gets all departments
    - [ ] [GET] list of company categories
    - [ ] [POST] Creates a new company category
    - [ ] [GET] gets all employees of a department
    - [ ] [GET] search for a company
    - [ ] [GET] gets all departments of a employee
    - [ ] [GET] gets all users with the associated departments
  </details>
  <details>
  <summary><strong>chats [10/10] - Testing</strong></summary>

    - [x] [POST] Creates a new chat
    - [x] [PUT] Get a list of chats
    - [x] [GET] Gets a chat
    - [x] [GET] Gets chat close requests
    - [x] [POST] Creates a new chat message
    - [x] [POST] Adds a participant
    - [x] [DEL] Deletes a participant
    - [x] [POST] Closes a chat
    - [x] [PUT] Accept/decline close request
    - [x] [POST] re-opens a chat
  </details>
  <details>
  <summary><strong>offer [0/16] - ?</strong></summary>

    - [ ] [POST] Creates a new erp selection
    - [ ] [GET] Fetches an erp selection
    - [ ] [PUT] Updates an erp selection
    - [ ] [DEL] Deletes an erp selection
    - [ ] [GET] Gets list of offer templates
    - [ ] [POST] Creates an offer template
    - [ ] [GET] Gets an offer templates
    - [ ] [PUT] Updates an offer templates
    - [ ] [DEL] Deletes an offer template
    - [ ] [GET] material picker
    - [ ] [GET] material picker for erp selection
    - [ ] [PUT] Gets list of offers
    - [ ] [POST] Creates an offer
    - [ ] [GET] Gets an offer
    - [ ] [PUT] Updates an offer
    - [ ] [DEL] Deletes an offer
  </details>
  <details>
  <summary><strong>availability [1/1] - Done</strong></summary>

    - [x] [GET] Fetches availability infos
  </details>
  <details>
  <summary><strong>employees [2/2] - Done</strong></summary>

    - [x] [GET] Gets all technicians
    - [x] [POST] creates an employee
  </details>
  <details>
  <summary><strong>mails [1/1] - Done</strong></summary>

    - [x] [POST] Test email smtp settings
  </details>
  <details>
  <summary><strong>tags [0/10] - ToDo</strong></summary>

    - [ ] [POST] Creates a new tag
    - [ ] [GET] Get all tags
    - [ ] [GET] Gets a tag
    - [ ] [PUT] Edits a tag
    - [ ] [DEL] Deletes a tag
    - [ ] [POST] Assigns a tag
    - [ ] [DEL] Removes a tag
    - [ ] [GET] List of tags to an assignment
    - [ ] [PUT] Assigns multiple tags
    - [ ] [GET] List of tags logs to an assignment
  </details>
  <details>
  <summary><strong>callback [4/4] - Done</strong></summary>

    - [x] [POST] Creates a callback
    - [x] [PUT] Get a list of callbacks
    - [x] [GET] Gets a callback
    - [x] [PUT] Updates a callback
  </details>
  <details>
  <summary><strong>search [1/1] - Done</strong></summary>

    - [x] [PUT] global search
  </details>
  <details>
  <summary><strong>checklists [5/5] - Done</strong></summary>

    - [x] [POST] Assigns a checklist to a ticket
    - [x] [DEL] Removes a checklist from a ticket
    - [x] [GET] Gets checklists for a ticket
    - [x] [GET] Gets checklist for ticket
    - [x] [PUT] Check an item
  </details>
  <details>
  <summary><strong>supports [0/5] - ToDo</strong></summary>

    - [ ] [PUT] Get a support list
    - [ ] [POST] Creates a support/appointment
    - [ ] [GET] Gets a support/appointment
    - [ ] [PUT] Edits a support/appointment
    - [ ] [POST] Uploads a signature for supports
  </details>
  <details>
  <summary><strong>timers [0/8] - ?</strong></summary>

    - [ ] [GET] Get all timers of current user
    - [ ] [POST] Creates a timer
    - [ ] [DEL] Deletes a timer
    - [ ] [GET] Get a specific timer
    - [ ] [PUT] Starts/stops timer
    - [ ] [GET] Get all timer fragments
    - [ ] [DEL] Deletes a timer fragment
    - [ ] [PUT] Updates a timer fragment
  </details>
  <details>
  <summary><strong>pc [5/5] - Done</strong></summary>

    - [x] [GET] Gets a pc by id
    - [x] [PUT] Updates a pc
    - [x] [DEL] Deletes a pc
    - [x] [POST] Creates a pc
    - [x] [PUT] Gets a list of pcs
  </details>
  <details>
  <summary><strong>periphery [11/11] - Done</strong></summary>

    - [x] [GET] Gets a periphery by id
    - [x] [PUT] Updates a periphery
    - [x] [DEL] Deletes a periphery
    - [x] [POST] Creates a periphery
    - [x] [PUT] Gets a list of peripheries
    - [x] [GET] Get periphery types
    - [x] [POST] Create periphery type
    - [x] [PUT] Update periphery type
    - [x] [DEL] Delete periphery type
    - [x] [POST] Assign periphery
    - [x] [DEL] Delete periphery assignment
  </details>
  <details>
  <summary><strong>components [9/9] - Done</strong></summary>

    - [x] [GET] Gets a component by id
    - [x] [PUT] Updates a component
    - [x] [DEL] Deletes a component
    - [x] [POST] Creates a component
    - [x] [PUT] Gets a list of components
    - [x] [GET] Gets a list of component types
    - [x] [POST] Create component type
    - [x] [PUT] Update component type
    - [x] [DEL] Delete component type
  </details>
  <details>
  <summary><strong>services [0/5] - ?</strong></summary>

    - [ ] [POST] Creates a service
    - [ ] [GET] Gets a list of all services
    - [ ] [GET] Gets a service by id
    - [ ] [PUT] Updates a service
    - [ ] [DEL] Deletes a service
  </details>
  <details>
  <summary><strong>ips [4/4] - Done</strong></summary>

    - [x] [GET] Gets ip addresses
    - [x] [POST] Creates an ip address
    - [x] [PUT] Update ip address
    - [x] [DEL] Deletes an ip address
  </details>
  <details>
  <summary><strong>company [0/2] - ToDo</strong></summary>

    - [ ] [POST] Creates a new company
    - [ ] [GET] Gets all employees of a company
  </details>
  <details>
  <summary><strong>company category [10/10] - Done</strong></summary>

    - [x] [GET] list of categories
    - [x] [POST] Creates a new company category
    - [x] [GET] gets a category
    - [x] [PUT] updates a category
    - [x] [DEL] Deletes a company category
    - [x] [GET] list of company types
    - [x] [POST] Creates a new company type -- This option is experiencing a error right now. A fix will be included in the next Tanss update.
    - [x] [GET] gets a company type
    - [x] [PUT] updates a company type
    - [x] [DEL] Deletes a company type
  </details>
  <details>
  <summary><strong>documents [0/6] - ?</strong></summary>

    - [ ] [PUT] Get a list of company documents
    - [ ] [POST] Creates a document
    - [ ] [GET] Get a single document (including content)
    - [ ] [PUT] Updates a document
    - [ ] [DEL] Deletes a document
    - [ ] [POST] Uploads a file
  </details>
  <details>
  <summary><strong>webHooks [0/6] - ?</strong></summary>

    - [ ] [POST] creates a rule
    - [ ] [PUT] get a list of rules
    - [ ] [PUT] updates a rule
    - [ ] [GET] gets a rule
    - [ ] [DEL] deletes a rule
    - [ ] [PUT] test a rule
  </details>
  <details>
  <summary><strong>ticket board [0/10] - ?</strong></summary>

    - [ ] [GET] Gets the ticket board with all panels
    - [ ] [GET] Gets an empty ticket board panel
    - [ ] [POST] Creates a new ticket board panel
    - [ ] [PUT] Updates a ticket board panel
    - [ ] [GET] Gets a ticket board panel
    - [ ] [DEL] Deletes a ticket board panel
    - [ ] [GET] Gets all registers from a ticket board panel
    - [ ] [GET] Gets a ticket board from a project
    - [ ] [GET] Gets all registers from a ticket board project
    - [ ] [GET] Get global ticket panels
  </details>
  <details>
  <summary><strong>operating systems [5/5] - Done</strong></summary>

    - [x] [POST] Creates a new os
    - [x] [GET] Get a list of all os
    - [x] [PUT] Updates a os
    - [x] [GET] Get a specific os
    - [x] [DEL] Deletes a specific os
  </details>
  <details>
  <summary><strong>manufacturer [5/5] - Done</strong></summary>

    - [x] [POST] Creates a new manufacturer
    - [x] [GET] Get a list of all manufacturers
    - [x] [PUT] Updates a manufacturer
    - [x] [GET] Get a manufacturer
    - [x] [DEL] Deletes a manufacturer
  </details>
  <details>
  <summary><strong>cpus [5/5] - Done</strong></summary>

    - [x] [POST] Creates a new cpu
    - [x] [GET] Get a list of all cpus
    - [x] [PUT] Updates a cpu
    - [x] [GET] Get a cpu
    - [x] [DEL] Deletes a cpu
  </details>
  <details>
  <summary><strong>hddTypes [5/5] - Done</strong></summary>

    - [x] [POST] Creates a new hdd type
    - [x] [GET] Get a list of all hdd types
    - [x] [PUT] Updates a hdd type
    - [x] [GET] Get a hdd type
    - [x] [DEL] Deletes a hdd type
  </details>
  <details>
  <summary><strong>identify [0/1] - ToDo</strong></summary>

    - [ ] [POST] identifies items
  </details>
  <details>
  <summary><strong>emailAccounts [0/6] - ?</strong></summary>

    - [ ] [POST] Creates an email account
    - [ ] [GET] List accounts of company
    - [ ] [GET] Gets an account
    - [ ] [PUT] Edit an accounts
    - [ ] [DEL] Deletes an account
    - [ ] [GET] List account types
  </details>
  <details>
  <summary><strong>vacationRequests [0/7] - ToDo</strong></summary>

    - [ ] [PUT] Gets a list of vacation requests
    - [ ] [GET] Gets a list of absence/custom types
    - [ ] [POST] creates a vacation request
    - [ ] [PUT] updates a vacation request
    - [ ] [DEL] deletes a vacation request
    - [ ] [GET] gets the available vacation days per year
    - [ ] [POST] sets the available vacation days per year
  </details>
  <details>
  <summary><strong>activityFeed [0/3] - ?</strong></summary>

    - [ ] [PUT] List of user items
    - [ ] [GET] Number of unseen events
    - [ ] [POST] Marks all as seen
  </details>
  <details>
  <summary><strong>domains [5/5] - Done</strong></summary>

    - [x] [POST] Creates a domain -- This option is experiencing a error right now, Waiting for Support
    - [x] [GET] Gets a single domain
    - [x] [PUT] Updates a domain
    - [x] [DEL] Deletes a domain
    - [x] [GET] List of domains of a company
  </details>
  <details>
  <summary><strong>software licenses [10/10] - Testing</strong></summary>

    - [x] [PUT] Get a list of software licenses
    - [x] [POST] Creates a software license
    - [x] [GET] Gets a single software license by id
    - [x] [PUT] Updates a software license
    - [x] [DEL] Deletes a software license
    - [x] [GET] Gets all software license types
    - [x] [POST] Creates a new software license type
    - [x] [GET] Gets a single software license type
    - [x] [PUT] Updates a software license type
    - [x] [DEL] Deletes a software license type
  </details>

  </details>

  ## Contributing

  Thank you for considering contributing to this project! Community contributions are what keep open-source projects growing and improving, and every contribution is highly appreciated.

  When submitting bug reports, please make sure they are:

  - **Reproducible** – clearly describe the steps required to reproduce the issue.
  - **Detailed** – include relevant information such as versions, environment, and setup.
  - **Unique** – avoid creating duplicate issues by checking existing ones first.
  - **Focused** – report one bug per issue to keep discussions clear and effective.


node_type: n8n-nodes-liveblocks.liveblocks
package_name: n8n-nodes-liveblocks
display_name: Liveblocks
description: Call the Liveblocks REST API (rooms, comments, Yjs, AI, and more)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: nvie
author_github_url: https://github.com/liveblocks/
npm_package_name: n8n-nodes-liveblocks
npm_version: 0.1.7
community_fetched_at: 2026-04-16T09:43:36.208Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "room",
      "options": [
        {
          "name": "AI Copilot",
          "value": "aiCopilot",
          "description": "AI copilots"
        },
        {
          "name": "AI Knowledge",
          "value": "aiKnowledge",
          "description": "Knowledge sources"
        },
        {
          "name": "Attachment",
          "value": "attachment",
          "description": "Attachment metadata and URLs"
        },
        {
          "name": "Comment",
          "value": "comment",
          "description": "Comments and reactions"
        },
        {
          "name": "Group",
          "value": "group",
          "description": "Groups and membership"
        },
        {
          "name": "Inbox",
          "value": "inbox",
          "description": "Trigger and system inbox actions"
        },
        {
          "name": "Room",
          "value": "room",
          "description": "Rooms, presence, and broadcast"
        },
        {
          "name": "Storage",
          "value": "storage",
          "description": "Liveblocks Storage document"
        },
        {
          "name": "Thread",
          "value": "thread",
          "description": "Comment threads"
        },
        {
          "name": "User",
          "value": "user",
          "description": "Inbox notifications, settings, and subscriptions"
        },
        {
          "name": "Yjs",
          "value": "yjs",
          "description": "Yjs documents and versions"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAiCopilots",
      "options": [
        {
          "name": "Get Many",
          "value": "getAiCopilots",
          "action": "Get many AI copilots",
          "description": "List AI copilots"
        },
        {
          "name": "Create",
          "value": "createAiCopilot",
          "action": "Create AI copilot",
          "description": "Create an AI copilot"
        },
        {
          "name": "Delete",
          "value": "deleteAiCopilot",
          "action": "Delete AI copilot",
          "description": "Delete an AI copilot"
        },
        {
          "name": "Get",
          "value": "getAiCopilot",
          "action": "Get AI copilot",
          "description": "Get an AI copilot"
        },
        {
          "name": "Update",
          "value": "updateAiCopilot",
          "action": "Update AI copilot",
          "description": "Update AI copilot configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiCopilot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getKnowledgeSources",
      "options": [
        {
          "name": "Get Many",
          "value": "getKnowledgeSources",
          "action": "Get many knowledge sources",
          "description": "List knowledge sources"
        },
        {
          "name": "Get",
          "value": "getKnowledgeSource",
          "action": "Get knowledge source",
          "description": "Get one knowledge source"
        },
        {
          "name": "Create Web Source",
          "value": "createWebKnowledgeSource",
          "action": "Create web knowledge source",
          "description": "Create web knowledge source"
        },
        {
          "name": "Create File Source",
          "value": "createFileKnowledgeSource",
          "action": "Create file knowledge source",
          "description": "Upload file knowledge source (binary input)"
        },
        {
          "name": "Delete File Source",
          "value": "deleteFileKnowledgeSource",
          "action": "Delete file knowledge source",
          "description": "Delete file knowledge source"
        },
        {
          "name": "Get File Markdown",
          "value": "getFileKnowledgeSourceMarkdown",
          "action": "Get file knowledge markdown",
          "description": "Get markdown content for file source"
        },
        {
          "name": "Delete Web Source",
          "value": "deleteWebKnowledgeSource",
          "action": "Delete web knowledge source",
          "description": "Delete web knowledge source"
        },
        {
          "name": "Get Web Links",
          "value": "getWebKnowledgeSourceLinks",
          "action": "Get web knowledge source links",
          "description": "List indexed links for web source"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiKnowledge"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAttachment",
      "options": [
        {
          "name": "Get",
          "value": "getAttachment",
          "action": "Get attachment",
          "description": "Attachment metadata and presigned URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createComment",
      "options": [
        {
          "name": "Create",
          "value": "createComment",
          "action": "Create a comment",
          "description": "Add a comment to a thread"
        },
        {
          "name": "Delete",
          "value": "deleteComment",
          "action": "Delete a comment",
          "description": "Delete a comment"
        },
        {
          "name": "Get",
          "value": "getComment",
          "action": "Get a comment",
          "description": "Get a comment"
        },
        {
          "name": "Edit",
          "value": "editComment",
          "action": "Edit a comment",
          "description": "Edit a comment body"
        },
        {
          "name": "Add Reaction",
          "value": "addCommentReaction",
          "action": "Add comment reaction",
          "description": "Add emoji reaction"
        },
        {
          "name": "Remove Reaction",
          "value": "removeCommentReaction",
          "action": "Remove comment reaction",
          "description": "Remove emoji reaction"
        },
        {
          "name": "Edit Metadata",
          "value": "editCommentMetadata",
          "action": "Edit comment metadata",
          "description": "Edit comment metadata"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "comment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getGroups",
      "options": [
        {
          "name": "Get Many",
          "value": "getGroups",
          "action": "Get many groups",
          "description": "List groups"
        },
        {
          "name": "Create",
          "value": "createGroup",
          "action": "Create a group",
          "description": "Create a group"
        },
        {
          "name": "Delete",
          "value": "deleteGroup",
          "action": "Delete a group",
          "description": "Delete a group"
        },
        {
          "name": "Get",
          "value": "getGroup",
          "action": "Get a group",
          "description": "Get a group"
        },
        {
          "name": "Add Members",
          "value": "addGroupMembers",
          "action": "Add group members",
          "description": "Add members to group"
        },
        {
          "name": "Remove Members",
          "value": "removeGroupMembers",
          "action": "Remove group members",
          "description": "Remove members from group"
        },
        {
          "name": "Get User Groups",
          "value": "getUserGroups",
          "action": "Get user groups",
          "description": "List groups for a user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "triggerInboxNotification",
      "options": [
        {
          "name": "Trigger Notification",
          "value": "triggerInboxNotification",
          "action": "Trigger inbox notification",
          "description": "Trigger an inbox notification"
        },
        {
          "name": "Mark As Read",
          "value": "markInboxNotificationAsRead",
          "action": "Mark inbox notification read",
          "description": "Mark an inbox notification as read"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRooms",
      "options": [
        {
          "name": "Get Many",
          "value": "getRooms",
          "action": "Get many rooms",
          "description": "List rooms with optional filters and pagination"
        },
        {
          "name": "Create",
          "value": "createRoom",
          "action": "Create a room",
          "description": "Create a room (enable Idempotent Create in parameters when needed)"
        },
        {
          "name": "Delete",
          "value": "deleteRoom",
          "action": "Delete a room",
          "description": "Permanently delete a room"
        },
        {
          "name": "Get",
          "value": "getRoom",
          "action": "Get a room",
          "description": "Get a room by ID"
        },
        {
          "name": "Update",
          "value": "updateRoom",
          "action": "Update a room",
          "description": "Update room properties"
        },
        {
          "name": "Prewarm",
          "value": "prewarmRoom",
          "action": "Prewarm a room",
          "description": "Prewarm a room for faster connections"
        },
        {
          "name": "Upsert",
          "value": "upsertRoom",
          "action": "Upsert a room",
          "description": "Create or update a room by ID"
        },
        {
          "name": "Update Room ID",
          "value": "updateRoomId",
          "action": "Update room ID",
          "description": "Change a room ID"
        },
        {
          "name": "Update Organization ID",
          "value": "updateRoomOrganizationId",
          "action": "Update room organization ID",
          "description": "Move a room to another organization"
        },
        {
          "name": "Get Active Users",
          "value": "getActiveUsers",
          "action": "Get active users in a room",
          "description": "Users currently present in the room"
        },
        {
          "name": "Set Presence",
          "value": "setPresence",
          "action": "Set presence in a room",
          "description": "Set ephemeral REST presence for a user"
        },
        {
          "name": "Broadcast Event",
          "value": "broadcastEvent",
          "action": "Broadcast event to room",
          "description": "Broadcast a custom event to everyone in the room"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "room"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "deleteStorageDocument",
      "options": [
        {
          "name": "Delete",
          "value": "deleteStorageDocument",
          "action": "Delete room storage",
          "description": "Delete all Storage data for a room"
        },
        {
          "name": "Get",
          "value": "getStorageDocument",
          "action": "Get room storage",
          "description": "Get Storage document (choose Format in query parameters)"
        },
        {
          "name": "Initialize",
          "value": "initializeStorageDocument",
          "action": "Initialize room storage",
          "description": "Initialize or reinitialize Storage (LiveObject root and initial data required)"
        },
        {
          "name": "JSON Patch",
          "value": "patchStorageDocument",
          "action": "Patch room storage",
          "description": "Apply JSON Patch operations to Storage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "storage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getThreads",
      "options": [
        {
          "name": "Get Many",
          "value": "getThreads",
          "action": "Get many threads",
          "description": "List threads in a room"
        },
        {
          "name": "Create",
          "value": "createThread",
          "action": "Create a thread",
          "description": "Create a thread with first comment"
        },
        {
          "name": "Delete",
          "value": "deleteThread",
          "action": "Delete a thread",
          "description": "Delete a thread"
        },
        {
          "name": "Get",
          "value": "getThread",
          "action": "Get a thread",
          "description": "Get a thread"
        },
        {
          "name": "Edit Metadata",
          "value": "editThreadMetadata",
          "action": "Edit thread metadata",
          "description": "Edit thread metadata"
        },
        {
          "name": "Mark Resolved",
          "value": "markThreadAsResolved",
          "action": "Mark thread resolved",
          "description": "Mark thread resolved"
        },
        {
          "name": "Mark Unresolved",
          "value": "markThreadAsUnresolved",
          "action": "Mark thread unresolved",
          "description": "Mark thread unresolved"
        },
        {
          "name": "Subscribe",
          "value": "subscribeToThread",
          "action": "Subscribe to thread",
          "description": "Subscribe a user to a thread"
        },
        {
          "name": "Unsubscribe",
          "value": "unsubscribeFromThread",
          "action": "Unsubscribe from thread",
          "description": "Unsubscribe from a thread"
        },
        {
          "name": "Get Subscriptions",
          "value": "getThreadSubscriptions",
          "action": "Get thread subscriptions",
          "description": "List thread subscriptions"
        },
        {
          "name": "Get Inbox Notifications",
          "value": "getThreadInboxNotifications",
          "action": "Get thread inbox notifications",
          "description": "Inbox notifications for a thread"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "thread"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "deleteInboxNotification",
      "options": [
        {
          "name": "Delete Inbox Notification",
          "value": "deleteInboxNotification",
          "action": "Delete inbox notification",
          "description": "Delete one inbox notification"
        },
        {
          "name": "Get Inbox Notification",
          "value": "getInboxNotification",
          "action": "Get inbox notification",
          "description": "Get one inbox notification"
        },
        {
          "name": "Delete All Inbox Notifications",
          "value": "deleteAllInboxNotifications",
          "action": "Delete all inbox notifications",
          "description": "Delete all inbox notifications for user"
        },
        {
          "name": "Get Many Inbox Notifications",
          "value": "getInboxNotifications",
          "action": "Get many inbox notifications",
          "description": "List inbox notifications"
        },
        {
          "name": "Delete Notification Settings",
          "value": "deleteNotificationSettings",
          "action": "Delete notification settings",
          "description": "Delete user notification settings"
        },
        {
          "name": "Get Notification Settings",
          "value": "getNotificationSettings",
          "action": "Get notification settings",
          "description": "Get user notification settings"
        },
        {
          "name": "Update Notification Settings",
          "value": "updateNotificationSettings",
          "action": "Update notification settings",
          "description": "Update user notification settings"
        },
        {
          "name": "Delete Room Subscription Settings",
          "value": "deleteRoomSubscriptionSettings",
          "action": "Delete room subscription settings",
          "description": "Delete per-room subscription settings"
        },
        {
          "name": "Get Room Subscription Settings",
          "value": "getRoomSubscriptionSettings",
          "action": "Get room subscription settings",
          "description": "Get subscription settings for user in room"
        },
        {
          "name": "Update Room Subscription Settings",
          "value": "updateRoomSubscriptionSettings",
          "action": "Update room subscription settings",
          "description": "Update subscription settings for user in room"
        },
        {
          "name": "Get Many Room Subscription Settings",
          "value": "getUserRoomSubscriptionSettings",
          "action": "Get many room subscription settings",
          "description": "List room subscription settings for user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getYjsDocument",
      "options": [
        {
          "name": "Get Document (JSON)",
          "value": "getYjsDocument",
          "action": "Get Yjs document",
          "description": "Yjs document as JSON"
        },
        {
          "name": "Send Binary Update",
          "value": "sendYjsBinaryUpdate",
          "action": "Send Yjs binary update",
          "description": "Upload a Yjs binary update (binary input)"
        },
        {
          "name": "Get Binary Update",
          "value": "getYjsDocumentAsBinaryUpdate",
          "action": "Get Yjs document as binary",
          "description": "Download Yjs state as a binary update"
        },
        {
          "name": "List Versions",
          "value": "getYjsVersions",
          "action": "List Yjs versions",
          "description": "List Yjs version snapshots"
        },
        {
          "name": "Get Version (Binary)",
          "value": "getYjsVersion",
          "action": "Get Yjs version binary",
          "description": "Download a specific Yjs version as binary"
        },
        {
          "name": "Create Version Snapshot",
          "value": "createYjsVersion",
          "action": "Create Yjs version snapshot",
          "description": "Create a new Yjs version snapshot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "yjs"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAiCopilots",
      "action": "Get many AI copilots",
      "description": "List AI copilots",
      "resource": "aiCopilot"
    },
    {
      "name": "Create",
      "value": "createAiCopilot",
      "action": "Create AI copilot",
      "description": "Create an AI copilot",
      "resource": "aiCopilot"
    },
    {
      "name": "Delete",
      "value": "deleteAiCopilot",
      "action": "Delete AI copilot",
      "description": "Delete an AI copilot",
      "resource": "aiCopilot"
    },
    {
      "name": "Get",
      "value": "getAiCopilot",
      "action": "Get AI copilot",
      "description": "Get an AI copilot",
      "resource": "aiCopilot"
    },
    {
      "name": "Update",
      "value": "updateAiCopilot",
      "action": "Update AI copilot",
      "description": "Update AI copilot configuration",
      "resource": "aiCopilot"
    },
    {
      "name": "Get Many",
      "value": "getKnowledgeSources",
      "action": "Get many knowledge sources",
      "description": "List knowledge sources",
      "resource": "aiKnowledge"
    },
    {
      "name": "Get",
      "value": "getKnowledgeSource",
      "action": "Get knowledge source",
      "description": "Get one knowledge source",
      "resource": "aiKnowledge"
    },
    {
      "name": "Create Web Source",
      "value": "createWebKnowledgeSource",
      "action": "Create web knowledge source",
      "description": "Create web knowledge source",
      "resource": "aiKnowledge"
    },
    {
      "name": "Create File Source",
      "value": "createFileKnowledgeSource",
      "action": "Create file knowledge source",
      "description": "Upload file knowledge source (binary input)",
      "resource": "aiKnowledge"
    },
    {
      "name": "Delete File Source",
      "value": "deleteFileKnowledgeSource",
      "action": "Delete file knowledge source",
      "description": "Delete file knowledge source",
      "resource": "aiKnowledge"
    },
    {
      "name": "Get File Markdown",
      "value": "getFileKnowledgeSourceMarkdown",
      "action": "Get file knowledge markdown",
      "description": "Get markdown content for file source",
      "resource": "aiKnowledge"
    },
    {
      "name": "Delete Web Source",
      "value": "deleteWebKnowledgeSource",
      "action": "Delete web knowledge source",
      "description": "Delete web knowledge source",
      "resource": "aiKnowledge"
    },
    {
      "name": "Get Web Links",
      "value": "getWebKnowledgeSourceLinks",
      "action": "Get web knowledge source links",
      "description": "List indexed links for web source",
      "resource": "aiKnowledge"
    },
    {
      "name": "Get",
      "value": "getAttachment",
      "action": "Get attachment",
      "description": "Attachment metadata and presigned URL",
      "resource": "attachment"
    },
    {
      "name": "Create",
      "value": "createComment",
      "action": "Create a comment",
      "description": "Add a comment to a thread",
      "resource": "comment"
    },
    {
      "name": "Delete",
      "value": "deleteComment",
      "action": "Delete a comment",
      "description": "Delete a comment",
      "resource": "comment"
    },
    {
      "name": "Get",
      "value": "getComment",
      "action": "Get a comment",
      "description": "Get a comment",
      "resource": "comment"
    },
    {
      "name": "Edit",
      "value": "editComment",
      "action": "Edit a comment",
      "description": "Edit a comment body",
      "resource": "comment"
    },
    {
      "name": "Add Reaction",
      "value": "addCommentReaction",
      "action": "Add comment reaction",
      "description": "Add emoji reaction",
      "resource": "comment"
    },
    {
      "name": "Remove Reaction",
      "value": "removeCommentReaction",
      "action": "Remove comment reaction",
      "description": "Remove emoji reaction",
      "resource": "comment"
    },
    {
      "name": "Edit Metadata",
      "value": "editCommentMetadata",
      "action": "Edit comment metadata",
      "description": "Edit comment metadata",
      "resource": "comment"
    },
    {
      "name": "Get Many",
      "value": "getGroups",
      "action": "Get many groups",
      "description": "List groups",
      "resource": "group"
    },
    {
      "name": "Create",
      "value": "createGroup",
      "action": "Create a group",
      "description": "Create a group",
      "resource": "group"
    },
    {
      "name": "Delete",
      "value": "deleteGroup",
      "action": "Delete a group",
      "description": "Delete a group",
      "resource": "group"
    },
    {
      "name": "Get",
      "value": "getGroup",
      "action": "Get a group",
      "description": "Get a group",
      "resource": "group"
    },
    {
      "name": "Add Members",
      "value": "addGroupMembers",
      "action": "Add group members",
      "description": "Add members to group",
      "resource": "group"
    },
    {
      "name": "Remove Members",
      "value": "removeGroupMembers",
      "action": "Remove group members",
      "description": "Remove members from group",
      "resource": "group"
    },
    {
      "name": "Get User Groups",
      "value": "getUserGroups",
      "action": "Get user groups",
      "description": "List groups for a user",
      "resource": "group"
    },
    {
      "name": "Trigger Notification",
      "value": "triggerInboxNotification",
      "action": "Trigger inbox notification",
      "description": "Trigger an inbox notification",
      "resource": "inbox"
    },
    {
      "name": "Mark As Read",
      "value": "markInboxNotificationAsRead",
      "action": "Mark inbox notification read",
      "description": "Mark an inbox notification as read",
      "resource": "inbox"
    },
    {
      "name": "Get Many",
      "value": "getRooms",
      "action": "Get many rooms",
      "description": "List rooms with optional filters and pagination",
      "resource": "room"
    },
    {
      "name": "Create",
      "value": "createRoom",
      "action": "Create a room",
      "description": "Create a room (enable Idempotent Create in parameters when needed)",
      "resource": "room"
    },
    {
      "name": "Delete",
      "value": "deleteRoom",
      "action": "Delete a room",
      "description": "Permanently delete a room",
      "resource": "room"
    },
    {
      "name": "Get",
      "value": "getRoom",
      "action": "Get a room",
      "description": "Get a room by ID",
      "resource": "room"
    },
    {
      "name": "Update",
      "value": "updateRoom",
      "action": "Update a room",
      "description": "Update room properties",
      "resource": "room"
    },
    {
      "name": "Prewarm",
      "value": "prewarmRoom",
      "action": "Prewarm a room",
      "description": "Prewarm a room for faster connections",
      "resource": "room"
    },
    {
      "name": "Upsert",
      "value": "upsertRoom",
      "action": "Upsert a room",
      "description": "Create or update a room by ID",
      "resource": "room"
    },
    {
      "name": "Update Room ID",
      "value": "updateRoomId",
      "action": "Update room ID",
      "description": "Change a room ID",
      "resource": "room"
    },
    {
      "name": "Update Organization ID",
      "value": "updateRoomOrganizationId",
      "action": "Update room organization ID",
      "description": "Move a room to another organization",
      "resource": "room"
    },
    {
      "name": "Get Active Users",
      "value": "getActiveUsers",
      "action": "Get active users in a room",
      "description": "Users currently present in the room",
      "resource": "room"
    },
    {
      "name": "Set Presence",
      "value": "setPresence",
      "action": "Set presence in a room",
      "description": "Set ephemeral REST presence for a user",
      "resource": "room"
    },
    {
      "name": "Broadcast Event",
      "value": "broadcastEvent",
      "action": "Broadcast event to room",
      "description": "Broadcast a custom event to everyone in the room",
      "resource": "room"
    },
    {
      "name": "Delete",
      "value": "deleteStorageDocument",
      "action": "Delete room storage",
      "description": "Delete all Storage data for a room",
      "resource": "storage"
    },
    {
      "name": "Get",
      "value": "getStorageDocument",
      "action": "Get room storage",
      "description": "Get Storage document (choose Format in query parameters)",
      "resource": "storage"
    },
    {
      "name": "Initialize",
      "value": "initializeStorageDocument",
      "action": "Initialize room storage",
      "description": "Initialize or reinitialize Storage (LiveObject root and initial data required)",
      "resource": "storage"
    },
    {
      "name": "JSON Patch",
      "value": "patchStorageDocument",
      "action": "Patch room storage",
      "description": "Apply JSON Patch operations to Storage",
      "resource": "storage"
    },
    {
      "name": "Get Many",
      "value": "getThreads",
      "action": "Get many threads",
      "description": "List threads in a room",
      "resource": "thread"
    },
    {
      "name": "Create",
      "value": "createThread",
      "action": "Create a thread",
      "description": "Create a thread with first comment",
      "resource": "thread"
    },
    {
      "name": "Delete",
      "value": "deleteThread",
      "action": "Delete a thread",
      "description": "Delete a thread",
      "resource": "thread"
    },
    {
      "name": "Get",
      "value": "getThread",
      "action": "Get a thread",
      "description": "Get a thread",
      "resource": "thread"
    },
    {
      "name": "Edit Metadata",
      "value": "editThreadMetadata",
      "action": "Edit thread metadata",
      "description": "Edit thread metadata",
      "resource": "thread"
    },
    {
      "name": "Mark Resolved",
      "value": "markThreadAsResolved",
      "action": "Mark thread resolved",
      "description": "Mark thread resolved",
      "resource": "thread"
    },
    {
      "name": "Mark Unresolved",
      "value": "markThreadAsUnresolved",
      "action": "Mark thread unresolved",
      "description": "Mark thread unresolved",
      "resource": "thread"
    },
    {
      "name": "Subscribe",
      "value": "subscribeToThread",
      "action": "Subscribe to thread",
      "description": "Subscribe a user to a thread",
      "resource": "thread"
    },
    {
      "name": "Unsubscribe",
      "value": "unsubscribeFromThread",
      "action": "Unsubscribe from thread",
      "description": "Unsubscribe from a thread",
      "resource": "thread"
    },
    {
      "name": "Get Subscriptions",
      "value": "getThreadSubscriptions",
      "action": "Get thread subscriptions",
      "description": "List thread subscriptions",
      "resource": "thread"
    },
    {
      "name": "Get Inbox Notifications",
      "value": "getThreadInboxNotifications",
      "action": "Get thread inbox notifications",
      "description": "Inbox notifications for a thread",
      "resource": "thread"
    },
    {
      "name": "Delete Inbox Notification",
      "value": "deleteInboxNotification",
      "action": "Delete inbox notification",
      "description": "Delete one inbox notification",
      "resource": "user"
    },
    {
      "name": "Get Inbox Notification",
      "value": "getInboxNotification",
      "action": "Get inbox notification",
      "description": "Get one inbox notification",
      "resource": "user"
    },
    {
      "name": "Delete All Inbox Notifications",
      "value": "deleteAllInboxNotifications",
      "action": "Delete all inbox notifications",
      "description": "Delete all inbox notifications for user",
      "resource": "user"
    },
    {
      "name": "Get Many Inbox Notifications",
      "value": "getInboxNotifications",
      "action": "Get many inbox notifications",
      "description": "List inbox notifications",
      "resource": "user"
    },
    {
      "name": "Delete Notification Settings",
      "value": "deleteNotificationSettings",
      "action": "Delete notification settings",
      "description": "Delete user notification settings",
      "resource": "user"
    },
    {
      "name": "Get Notification Settings",
      "value": "getNotificationSettings",
      "action": "Get notification settings",
      "description": "Get user notification settings",
      "resource": "user"
    },
    {
      "name": "Update Notification Settings",
      "value": "updateNotificationSettings",
      "action": "Update notification settings",
      "description": "Update user notification settings",
      "resource": "user"
    },
    {
      "name": "Delete Room Subscription Settings",
      "value": "deleteRoomSubscriptionSettings",
      "action": "Delete room subscription settings",
      "description": "Delete per-room subscription settings",
      "resource": "user"
    },
    {
      "name": "Get Room Subscription Settings",
      "value": "getRoomSubscriptionSettings",
      "action": "Get room subscription settings",
      "description": "Get subscription settings for user in room",
      "resource": "user"
    },
    {
      "name": "Update Room Subscription Settings",
      "value": "updateRoomSubscriptionSettings",
      "action": "Update room subscription settings",
      "description": "Update subscription settings for user in room",
      "resource": "user"
    },
    {
      "name": "Get Many Room Subscription Settings",
      "value": "getUserRoomSubscriptionSettings",
      "action": "Get many room subscription settings",
      "description": "List room subscription settings for user",
      "resource": "user"
    },
    {
      "name": "Get Document (JSON)",
      "value": "getYjsDocument",
      "action": "Get Yjs document",
      "description": "Yjs document as JSON",
      "resource": "yjs"
    },
    {
      "name": "Send Binary Update",
      "value": "sendYjsBinaryUpdate",
      "action": "Send Yjs binary update",
      "description": "Upload a Yjs binary update (binary input)",
      "resource": "yjs"
    },
    {
      "name": "Get Binary Update",
      "value": "getYjsDocumentAsBinaryUpdate",
      "action": "Get Yjs document as binary",
      "description": "Download Yjs state as a binary update",
      "resource": "yjs"
    },
    {
      "name": "List Versions",
      "value": "getYjsVersions",
      "action": "List Yjs versions",
      "description": "List Yjs version snapshots",
      "resource": "yjs"
    },
    {
      "name": "Get Version (Binary)",
      "value": "getYjsVersion",
      "action": "Get Yjs version binary",
      "description": "Download a specific Yjs version as binary",
      "resource": "yjs"
    },
    {
      "name": "Create Version Snapshot",
      "value": "createYjsVersion",
      "action": "Create Yjs version snapshot",
      "description": "Create a new Yjs version snapshot",
      "resource": "yjs"
    }
  ]

npm_readme:
  <p align="center">
    <a href="https://liveblocks.io#gh-light-mode-only">
      <img src="https://raw.githubusercontent.com/liveblocks/liveblocks/main/.github/assets/header-light.svg" alt="Liveblocks" />
    </a>
    <a href="https://liveblocks.io#gh-dark-mode-only">
      <img src="https://raw.githubusercontent.com/liveblocks/liveblocks/main/.github/assets/header-dark.svg" alt="Liveblocks" />
    </a>
  </p>

  # Liveblocks n8n nodes

  <p>
    <a href="https://npmjs.org/package/n8n-nodes-liveblocks"><img src="https://img.shields.io/npm/v/n8n-nodes-liveblocks?style=flat&label=npm&color=c33" alt="NPM" /></a>
    <a href="https://github.com/liveblocks/n8n-nodes-liveblocks/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License" /></a>
  </p>

  Official Liveblocks [n8n](https://n8n.io/) node repository. Use these nodes to download and modify room storage, interact with threads, comments, and attachments, send notifications and more in realtime.

  ## Install

  Install this package as a [community node](https://docs.n8n.io/integrations/community-nodes/installation/) in your n8n instance.

  1. Open n8n and go to **Settings** → **Community nodes**.
  2. Select **Install** and enter `n8n-nodes-liveblocks` as the npm package name.
  3. Check **☑︎ I understand…** and click **Install**.

  _Liveblocks_ and _Liveblocks Trigger_ will now appear in the node palette.

  ## Operations

  The package provides two nodes.

  ### Liveblocks (action node)

  Calls the [Liveblocks REST API](https://liveblocks.io/docs/api-reference/rest-api-endpoints). Choose a **resource**, then an **operation**. Operations map to the API (rooms, storage, Yjs, comments, inbox, webhooks-related server flows, etc.).

  | Resource | What you can do (examples) |
  | --- | --- |
  | **Room** | List, create, update, delete, and upsert rooms; change room or organization IDs; prewarm; list active users; **set presence**; **broadcast** custom events to the room. |
  | **Storage** | Get, initialize, patch (JSON Patch), or delete Liveblocks storage documents. |
  | **Yjs** | Read Yjs state, send binary updates, list versions, and create or fetch specific versions. |
  | **Thread** | CRUD threads; edit metadata; resolve/unresolve; subscribe/unsubscribe; list subscriptions and thread inbox notifications. |
  | **Comment** | Create, read, edit, and delete comments; add/remove reactions; edit metadata. |
  | **Attachment** | Download comment attachments (binary response when applicable). |
  | **User** | Identify users for Liveblocks features that require user metadata. |
  | **Inbox** | Inbox notifications, notification settings, room subscription settings, mark-as-read, and related triggers. |
  | **Group** | Manage groups and membership; list a user’s groups. |
  | **AI Copilot** | List, create, read, update, and delete AI copilot configurations. |
  | **AI Knowledge** | Manage web and file knowledge sources, fetch markdown or links, and delete sources. |

  The node builds requests from the fields you configure in the UI; some endpoints accept raw JSON for advanced bodies (for example JSON Patch or broadcast payloads). Refer to the [Liveblocks REST API reference](https://liveblocks.io/docs/api-reference/rest-api-endpoints) for request and response shapes.

  ### Liveblocks Trigger (webhook)

  Starts a workflow when Liveblocks sends a **webhook** to n8n. Configure the webhook URL from the trigger in your [Liveblocks dashboard](https://liveblocks.io/dashboard) webhook settings. You can filter by **event type** or leave the filter empty to receive all supported types.

  Supported event filters include: `commentCreated`, `commentDeleted`, `commentEdited`, `notification`, `storageUpdated`, `threadCreated`, `threadDeleted`, `threadMetadataUpdated`, `userEntered`, `userLeft`, `yjsUpdate`. The trigger verifies the request using your **webhook signing secret** before running the workflow.

  ## Credentials

  ### Liveblocks API (required for the Liveblocks action node)

  1. Create or open a project in the [Liveblocks dashboard](https://liveblocks.io/dashboard).
  2. Copy the **secret key** (`sk_…`) from project settings.
  3. In n8n, create a credential of type **Liveblocks API** and paste the secret key.

  The credential test calls the REST API (for example listing rooms) to confirm the key works.

  ### Liveblocks Webhook Signing Secret (required for Liveblocks Trigger)

  1. In the Liveblocks dashboard, open your project’s **webhook** configuration and copy the **signing secret** (`whsec_…`).
  2. In n8n, create a credential of type **Liveblocks Webhook Signing Secret API** and paste that value.

  This secret is only used to verify incoming webhook signatures; it is not validated with a live HTTP test in the credentials UI.

  ## Compatibility

  - This package declares **`n8nNodesApiVersion` 1** in `package.json`, in line with current n8n community node conventions.
  - It lists **`n8n-workflow`** as a peer dependency (version resolved by your n8n install).

  Use a [current n8n release](https://docs.n8n.io/release-notes/) that supports community nodes and API version 1. If you hit a compatibility issue, report it with your n8n version and this package version.

  ## Usage

  - **Action node**: Add **Liveblocks**, select **resource** and **operation**, then fill the parameters. Map data from previous nodes into room IDs, user IDs, and bodies as needed. Use **Execute step** while designing to inspect API responses and errors.
  - **Trigger**: Add **Liveblocks Trigger**, set credentials, copy the **webhook URL** into the Liveblocks dashboard, and choose which events to listen for. Use n8n’s test URL while building, then switch to the production URL when the workflow is active.
  - **Errors**: Failed API calls surface as n8n errors with HTTP status and message when the API returns them. If webhooks fail verification, check that the signing secret matches the project and that the request is actually from Liveblocks.

  New to n8n? See [Try it out](https://docs.n8n.io/try-it-out/) in the n8n docs.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Liveblocks documentation](https://liveblocks.io/docs)
  - [Liveblocks REST API reference](https://liveblocks.io/docs/api-reference/rest-api-endpoints)
  - [Liveblocks webhooks](https://liveblocks.io/docs/platform/webhooks)
  - [Liveblocks dashboard](https://liveblocks.io/dashboard)

  ## Local development

  For local development of this repository, clone the project and use the [n8n node CLI](https://docs.n8n.io/integrations/creating-nodes/build/n8n-node-cli/) (`n8n-node dev`, `n8n-node build`) as described in the project’s contributor docs.

  ## Version history

  See [CHANGELOG.md](CHANGELOG.md) for a complete changelog.


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

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

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

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

  # n8n-nodes-lavatop

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

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

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


  ## Installation

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

  ## Operations

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

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

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

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

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

  ## Credentials

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

  ## Compatibility

  n8n version - 1.86.1

  ## Resources

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

  ## Version history

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

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

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


node_type: n8n-nodes-parallel.parallel
package_name: n8n-nodes-parallel
display_name: Parallel
description: Highest accuracy web search tools for AI agents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: janwilmake
author_github_url: https://github.com/parallel-web/paralllel-n8n-nodes.git
npm_package_name: n8n-nodes-parallel
npm_version: 0.1.0
community_fetched_at: 2026-04-16T09:43:36.211Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "webEnrichment",
      "options": [
        {
          "name": "Sync Web Enrichment",
          "value": "webEnrichment",
          "action": "Sync Web Enrichment",
          "description": "Execute a Task with the Parallel Task API and retrieve its result."
        },
        {
          "name": "Async Web Enrichment",
          "value": "asyncWebEnrichment",
          "action": "Async Web Enrichment",
          "description": "Create a Task with the Parallel Task API and retrieve its Run ID for async retrieval."
        },
        {
          "name": "Web Search",
          "value": "webSearch",
          "action": "Web Search",
          "description": "Search the web with the Parallel Search API and retrieve a list of results with excerpts."
        },
        {
          "name": "Web Chat",
          "value": "webChat",
          "action": "Web Chat",
          "description": "AI-powered chat completions API with web access (<5 seconds)"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Sync Web Enrichment",
      "value": "webEnrichment",
      "action": "Sync Web Enrichment",
      "description": "Execute a Task with the Parallel Task API and retrieve its result."
    },
    {
      "name": "Async Web Enrichment",
      "value": "asyncWebEnrichment",
      "action": "Async Web Enrichment",
      "description": "Create a Task with the Parallel Task API and retrieve its Run ID for async retrieval."
    },
    {
      "name": "Web Search",
      "value": "webSearch",
      "action": "Web Search",
      "description": "Search the web with the Parallel Search API and retrieve a list of results with excerpts."
    },
    {
      "name": "Web Chat",
      "value": "webChat",
      "action": "Web Chat",
      "description": "AI-powered chat completions API with web access (<5 seconds)"
    }
  ]

npm_readme:
  # n8n-nodes-parallel

  This is an n8n community node for [Parallel Web Systems](https://parallel.ai/) - the AI-powered web research platform. Transform your n8n workflows with intelligent data extraction, competitive analysis, lead enrichment, and automated research capabilities.

  Try Parallel in the [playground](https://platform.parallel.ai/play) before integrating into your workflows.

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

  ## Installation

  Install this community node package in n8n:

  ```bash
  npm install n8n-nodes-parallel
  ```

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

  ### Prerequisites

  1. **Get API Access**: Sign up at [platform.parallel.ai](https://platform.parallel.ai/) and generate an API key
  2. **Add Credentials**: In n8n, create new credentials of type "Parallel API" and enter your API key
  3. **Webhook Secret**: In your Parallel n8n credential, include a webhook secret (created via [Platform Settings](https://platform.parallel.ai/settings)) in order to be notified when an Async Web Enrichment Task is completed

  ## Available Nodes

  This package provides two powerful nodes for your n8n workflows:

  ### 🔍 **Parallel Node** - Multi-Purpose AI Research

  The main Parallel node offers four distinct operations:

  #### **1. Sync Web Enrichment** - [Task API](https://docs.parallel.ai/task-api/task-quickstart.md)

  Execute tasks synchronously and get immediate results (up to 5 minutes):

  - **Lead Enrichment**: Company profiles, contact information, financials
  - **Competitive Analysis**: Product features, pricing, market positioning
  - **Content Research**: Article summaries, fact-checking, data validation
  - **Market Intelligence**: Industry trends, company updates, regulatory changes

  **Available Processors**: `lite`, `base`, `core`

  #### **2. Async Web Enrichment** - [Task API](https://docs.parallel.ai/task-api/task-quickstart.md)

  Start long-running research tasks asynchronously (up to 30 minutes):

  - Complex multi-source research
  - Deep competitive intelligence
  - Comprehensive due diligence
  - Large-scale data enrichment

  **Available Processors**: `lite`, `base`, `core`, `pro`, `ultra`, `ultra2x`, `ultra4x`, `ultra8x`
  Learn about each Parallel Task API Processor [here](https://docs.parallel.ai/task-api/core-concepts/choose-a-processor).

  #### **3. Web Search** - [Search API](https://docs.parallel.ai/search-api/search-quickstart.md)

  Intelligent web search with AI-powered processing:

  - Natural language search objectives
  - Traditional keyword queries
  - Domain filtering for trusted sources
  - Structured results with excerpts and citations

  **Available Processors**: `base`, `pro`
  Learn about each Parallel Search API Processor [here](https://docs.parallel.ai/search-api/processors).

  #### **4. Web Chat**

  AI-powered chat completions with web access (< 5 seconds):

  - Real-time web-informed responses
  - Fact-checking and verification
  - Current events and news queries
  - Research-backed conversations

  Read the Parallel Chat API documentation [here](https://docs.parallel.ai/chat-api/chat-quickstart).

  ### 🔔 **Parallel Task Run Completion Trigger**

  Automatically trigger workflows when Parallel tasks complete, best paired with Async Web Enrichment:

  - **Real-time notifications**: Instant updates when async tasks finish
  - **Automatic result fetching**: Retrieves full task results automatically
  - **Webhook security**: Built-in signature validation for secure webhooks
  - **Flexible filtering**: Option to trigger only on successful completions

  Perfect for long-running research workflows where you want to process results as soon as they're ready.

  ## Key Features

  ### **Flexible Output Schemas**

  - **Text**: Single text output field with evidence and citations
  - **JSON**: [Custom structured schemas](https://docs.parallel.ai/task-api/core-concepts/specify-a-task.md) for precise data extraction
  - **Auto**: AI-optimized JSON output with nested citations (Pro+ processors only)

  ### **Research Quality & Transparency**

  Every result includes [confidence scores and evidence](https://docs.parallel.ai/task-api/core-concepts/access-research-basis.md) with source citations, so you can validate and trust your automated research.

  ### **Source Control**

  Use [source policies](https://docs.parallel.ai/features/source-policy.md) to include trusted domains (like Wikipedia, Reuters) or exclude unreliable ones.

  ### **Smart Polling & Async Support**

  - Automatically handles long-running research tasks with intelligent retry logic
  - Webhook triggers for immediate notification when async tasks complete
  - No manual polling required

  ## Quick Start Examples

  ### Example 1: Company Research Workflow

  ```text
  1. HTTP Request node → Get company domain from CRM
  2. Parallel node (Sync Web Enrichment) → Enrich company data
  3. Set node → Format results  
  4. HTTP Request node → Update CRM with enriched data
  ```

  ### Example 2: Async Research with Webhook

  ```text
  1. Parallel node (Async Web Enrichment) → Start deep research task
  2. Parallel Task Run Completion Trigger → Wait for completion
  3. Code node → Process comprehensive results
  4. Email node → Send research report
  ```

  ### Example 3: Web Search Pipeline

  ```text
  1. Manual Trigger → Input search query
  2. Parallel node (Web Search) → Search with AI processing
  3. Code node → Extract top results
  4. HTTP Request → Post to knowledge base
  ```

  ## Getting Started

  1. **Install**: `npm install n8n-nodes-parallel`
  2. **Get API Access**: Sign up at [platform.parallel.ai](https://platform.parallel.ai/) and generate an API key
  3. **Try the Playground**: Test your research tasks at [platform.parallel.ai/play](https://platform.parallel.ai/play)
  4. **Add Credentials**: Configure your API key in n8n's credential manager  
  5. **Build Workflows**: Start with simple enrichment tasks and scale to complex research pipelines

  ## Processor Selection Guide

  Choose the right processor based on your use case complexity and timing needs:

  | Processor | Latency | Max Fields | Cost | Best For |
  |-----------|---------|------------|------|----------|
  | **Lite** | 5s-60s | 2 | $5/1000 | Basic metadata, quick lookups |
  | **Base** | 15s-100s | 5 | $10/1000 | Standard enrichment, reliable data |
  | **Core** | 1-5min | 10 | $25/1000 | Cross-referenced research |
  | **Pro** | 3-9min | 20 | $100/1000 | Exploratory research, analysis |
  | **Ultra** | 5-25min | 20 | $300/1000 | Advanced multi-source research |
  | **Ultra 2x** | 5-25min | 25 | $600/1000 | Difficult research tasks |
  | **Ultra 4x** | 8-30min | 25 | $1200/1000 | Very difficult research |
  | **Ultra 8x** | 8-30min | 25 | $2400/1000 | Most complex research |

  > **Note**: Sync operations support up to Core level. Async operations support all processor levels.

  ## n8n Workflow Use Cases

  ### **Sales & CRM Automation**

  - **Lead Scoring**: Enrich incoming leads with company data, funding, employee count
  - **Account Research**: Deep dive on prospects before sales calls
  - **Contact Discovery**: Find decision-makers and their contact information
  - **Competitive Intelligence**: Monitor competitor product updates and pricing

  ### **Content & Marketing**

  - **Content Research**: Gather supporting data and citations for articles
  - **Fact-Checking**: Validate claims and statistics in real-time
  - **Trend Analysis**: Monitor industry trends and news for content ideas
  - **SEO Research**: Find trending topics and keyword opportunities

  ### **Operations & Monitoring**

  - **Vendor Research**: Evaluate potential suppliers and partners
  - **Risk Assessment**: Monitor companies for regulatory changes or news
  - **Market Intelligence**: Track industry developments and competitor moves
  - **Due Diligence**: Comprehensive background checks for business decisions

  ### **Customer Support Enhancement**

  - **Real-time Information**: Answer customer questions with current web data
  - **Documentation**: Auto-generate help articles from web research
  - **Competitive Comparisons**: Provide accurate competitor information

  ## Advanced Configuration

  ### Webhook Setup for Async Tasks

  When using async enrichment with the trigger node:

  1. Add a **Parallel Task Run Completion Trigger** to your workflow
  2. Copy the webhook URL from the trigger node
  3. In the **Parallel node** (Async Web Enrichment), paste the URL in the "Webhook URL" field
  4. Enable "Validate Webhook Signatures" for security (recommended)

  ### JSON Schema Examples

  For structured data extraction, use JSON schemas in the output configuration:

  ```json
  {
    "type": "object",
    "properties": {
      "company_name": {
        "type": "string", 
        "description": "Official company name from recent filings or website."
      },
      "ceo_name": {
        "type": "string",
        "description": "Current CEO full name from company website or recent news."
      },
      "employee_count": {
        "type": "string", 
        "description": "Number of employees as range (e.g., '500-1000') or exact number."
      }
    },
    "required": ["company_name", "ceo_name", "employee_count"],
    "additionalProperties": false
  }
  ```

  ### Source Policies

  Control which websites are used for research:

  - **Include domains**: `wikipedia.org, reuters.com, bloomberg.com`
  - **Exclude domains**: `reddit.com, quora.com`

  ## Resources

  - [Parallel Documentation](https://docs.parallel.ai/)
  - [Task API Quickstart](https://docs.parallel.ai/task-api/task-quickstart.md)
  - [Search API Quickstart](https://docs.parallel.ai/search-api/search-quickstart.md)
  - [Processor Selection Guide](https://docs.parallel.ai/task-api/core-concepts/choose-a-processor.md)
  - [Understanding Task Specifications](https://docs.parallel.ai/task-api/core-concepts/specify-a-task.md)
  - [Webhook Configuration](https://docs.parallel.ai/task-api/features/webhooks)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Support & Community

  - **Issues**: [GitHub Issues](https://github.com/parallel-web/parallel-n8n-nodes/issues)
  - **Documentation**: [docs.parallel.ai](https://docs.parallel.ai/)
  - **Platform**: [platform.parallel.ai](https://platform.parallel.ai/)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with Parallel Web Systems to perform AI-powered web research, including lead enrichment, competitive analysis, and intelligent web search.","capabilities":["Sync Web Enrichment for immediate results","Async Web Enrichment for long-running complex research","AI-powered web search with natural language processing","Web Chat for real-time, web-informed responses","Lead enrichment (company profiles, contacts, financials)","Competitive analysis (product features, pricing, market positioning)","Content research (summaries, fact-checking, data validation)","Market intelligence (trends, regulatory changes)","Custom JSON schema output","Webhook-based task completion triggers"],"authentication":"API key required (entered in n8n credentials)","commonUseCases":["Automated lead enrichment and CRM updates","Competitive intelligence gathering","Market research and trend analysis","Real-time fact-checking and verification","Automated research reporting via email"],"limitations":["Sync Web Enrichment has a maximum execution time of 5 minutes","Async Web Enrichment has a maximum execution time of 30 minutes","Web Chat responses take less than 5 seconds but may be limited by API rate limits","Some advanced features like Auto JSON output require Pro+ processors","Processor availability varies by operation (e.g., 'pro' processor not available for Sync Web Enrichment)"],"relatedNodes":["HTTP Request","Set","Code","Email","Manual Trigger"]}


node_type: n8n-nodes-coresignal-api.coresignal
package_name: n8n-nodes-coresignal-api
display_name: Coresignal
description: Interact with Coresignal API for company, employee, job, and post data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: coresignal
author_github_url: https://github.com/Coresignal-com/
npm_package_name: n8n-nodes-coresignal-api
npm_version: 1.1.1
community_fetched_at: 2026-04-16T09:43:36.212Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "employee",
      "options": [
        {
          "name": "Company",
          "value": "company",
          "description": "Access company data and profiles"
        },
        {
          "name": "Employee",
          "value": "employee",
          "description": "Access employee data and profiles"
        },
        {
          "name": "Employee Post",
          "value": "post",
          "description": "Access employee posts data"
        },
        {
          "name": "Job",
          "value": "job",
          "description": "Access jobs data"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_by_id",
      "options": [
        {
          "name": "Enrich by Website",
          "value": "enrich",
          "action": "Enrich company by website URL",
          "description": "Enrich company data using a website URL"
        },
        {
          "name": "Get by ID",
          "value": "get_by_id",
          "action": "Get company by ID",
          "description": "Retrieve a full company profile using a company ID"
        },
        {
          "name": "Get by Slug",
          "value": "get_by_slug",
          "action": "Get company by URL slug",
          "description": "Retrieve a full company profile using a URL slug"
        },
        {
          "name": "Search with Elasticsearch DSL",
          "value": "search_es_dsl",
          "action": "Search companies using elasticsearch DSL",
          "description": "Search companies using an Elasticsearch DSL query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_by_id",
      "options": [
        {
          "name": "Get by ID",
          "value": "get_by_id",
          "action": "Get employee by ID",
          "description": "Retrieve a full employee profile using an employee ID"
        },
        {
          "name": "Get by Slug",
          "value": "get_by_slug",
          "action": "Get employee by URL slug",
          "description": "Retrieve a full employee profile using a URL slug"
        },
        {
          "name": "Search with Elasticsearch DSL",
          "value": "search_es_dsl",
          "action": "Search employees using elasticsearch DSL",
          "description": "Search employees using an Elasticsearch DSL query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "employee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_by_id",
      "options": [
        {
          "name": "Get by ID",
          "value": "get_by_id",
          "action": "Get job by ID",
          "description": "Retrieve a full job posting using a job ID"
        },
        {
          "name": "Search with Elasticsearch DSL",
          "value": "search_es_dsl",
          "action": "Search jobs using elasticsearch DSL",
          "description": "Search jobs using an Elasticsearch DSL query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "job"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_by_id",
      "options": [
        {
          "name": "Get by ID",
          "value": "get_by_id",
          "action": "Get employee post by ID",
          "description": "Retrieve a full employee post using a post ID"
        },
        {
          "name": "Search with Elasticsearch DSL",
          "value": "search_es_dsl",
          "action": "Search employee posts using elasticsearch DSL",
          "description": "Search employee posts using an Elasticsearch DSL query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Enrich by Website",
      "value": "enrich",
      "action": "Enrich company by website URL",
      "description": "Enrich company data using a website URL",
      "resource": "company"
    },
    {
      "name": "Get by ID",
      "value": "get_by_id",
      "action": "Get company by ID",
      "description": "Retrieve a full company profile using a company ID",
      "resource": "company"
    },
    {
      "name": "Get by Slug",
      "value": "get_by_slug",
      "action": "Get company by URL slug",
      "description": "Retrieve a full company profile using a URL slug",
      "resource": "company"
    },
    {
      "name": "Search with Elasticsearch DSL",
      "value": "search_es_dsl",
      "action": "Search companies using elasticsearch DSL",
      "description": "Search companies using an Elasticsearch DSL query",
      "resource": "company"
    },
    {
      "name": "Get by ID",
      "value": "get_by_id",
      "action": "Get employee by ID",
      "description": "Retrieve a full employee profile using an employee ID",
      "resource": "employee"
    },
    {
      "name": "Get by Slug",
      "value": "get_by_slug",
      "action": "Get employee by URL slug",
      "description": "Retrieve a full employee profile using a URL slug",
      "resource": "employee"
    },
    {
      "name": "Search with Elasticsearch DSL",
      "value": "search_es_dsl",
      "action": "Search employees using elasticsearch DSL",
      "description": "Search employees using an Elasticsearch DSL query",
      "resource": "employee"
    },
    {
      "name": "Get by ID",
      "value": "get_by_id",
      "action": "Get job by ID",
      "description": "Retrieve a full job posting using a job ID",
      "resource": "job"
    },
    {
      "name": "Search with Elasticsearch DSL",
      "value": "search_es_dsl",
      "action": "Search jobs using elasticsearch DSL",
      "description": "Search jobs using an Elasticsearch DSL query",
      "resource": "job"
    },
    {
      "name": "Get by ID",
      "value": "get_by_id",
      "action": "Get employee post by ID",
      "description": "Retrieve a full employee post using a post ID",
      "resource": "post"
    },
    {
      "name": "Search with Elasticsearch DSL",
      "value": "search_es_dsl",
      "action": "Search employee posts using elasticsearch DSL",
      "description": "Search employee posts using an Elasticsearch DSL query",
      "resource": "post"
    }
  ]

npm_readme:
  # n8n-nodes-coresignal-api

  This is an [n8n](https://n8n.io/) community node for the [Coresignal API](https://coresignal.com/). It provides access to company, employee, job posting, and employee post data from Coresignal's multi-source datasets.

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

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

  ## Installation

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

  ## Operations

  ### Company Data

  - **Collect by ID** - Retrieve a full company profile using a company ID
  - **Collect by slug** - Retrieve a full company profile using a URL slug
  - **Enrich by website** - Enrich company data using a website URL
  - **Search with Elasticsearch DSL** - Search companies using an Elasticsearch DSL query

  ### Employee Data

  - **Collect by ID** - Retrieve a full employee profile using an employee ID
  - **Collect by slug** - Retrieve a full employee profile using a URL slug
  - **Search with Elasticsearch DSL** - Search employees using an Elasticsearch DSL query

  ### Job Data

  - **Collect by ID** - Retrieve a full job posting using a job ID
  - **Search with Elasticsearch DSL** - Search jobs using an Elasticsearch DSL query

  ### Employee Posts

  - **Collect by ID** - Retrieve a full employee post using a post ID
  - **Search with Elasticsearch DSL** - Search employee posts using an Elasticsearch DSL query

  ## Credentials

  To use this node, you need a Coresignal API key.

  1. Sign up at [Coresignal](https://coresignal.com/) and obtain an API key
  2. In n8n, go to **Credentials** > **Add Credential** > **Coresignal API**
  3. Enter your API key
  4. The default Base URL is `https://api.coresignal.com` (change only if instructed by Coresignal)

  ## Usage

  ### Collect by ID

  Select a category (Company, Employee, Job, or Post), choose "Collect by ID", and enter the entity ID. Optionally specify fields to return only specific data.

  ### Collect by slug

  Available for Company and Employee categories. Enter the URL slug (e.g., `microsoft` for a company or `john-smith` for an employee).

  ### Enrich by website

  Available for the Company category. Enter a company website URL to enrich with Coresignal data.

  ### Search with Elasticsearch DSL

  Use an Elasticsearch DSL query to search across any category. Enable **Preview mode** for quick testing (returns up to 20 results with essential fields only).

  Build your queries using the Coresignal Playground:
  - [Employee Playground](https://dashboard.coresignal.com/apis/employees/playground)
  - [Company Playground](https://dashboard.coresignal.com/apis/company/playground)
  - [Jobs Playground](https://dashboard.coresignal.com/apis/jobs/playground)

  ## Resources

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


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

updated_at: 2026-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.213Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "video",
      "options": [
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "List",
          "value": "list"
        },
        {
          "name": "Asset",
          "value": "asset"
        },
        {
          "name": "OAuth",
          "value": "oauth"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAvatarVideo",
      "options": [
        {
          "name": "Create Avatar Video",
          "value": "createAvatarVideo",
          "action": "Create avatar video a video"
        },
        {
          "name": "Create Template Video",
          "value": "createTemplateVideo",
          "action": "Create template video a video"
        },
        {
          "name": "Create a Video From Video Agent",
          "value": "createVideoAgent",
          "action": "Create a video from video agent a video"
        },
        {
          "name": "Get Video Status",
          "value": "getVideoStatus",
          "action": "Get video status a video"
        },
        {
          "name": "Translate Video",
          "value": "translateVideo",
          "action": "Translate video a video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAvatars",
      "options": [
        {
          "name": "List Avatars",
          "value": "listAvatars",
          "action": "List avatars a list"
        },
        {
          "name": "List Avatars Groups",
          "value": "listAvatarsGroups",
          "action": "List avatars groups a list"
        },
        {
          "name": "List Voices",
          "value": "listVoices",
          "action": "List voices a list"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "list"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadAssets",
      "options": [
        {
          "name": "Upload Assets",
          "value": "uploadAssets",
          "action": "Upload assets an asset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "asset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "registerOAuthClient",
      "options": [
        {
          "name": "Register OAuth Client",
          "value": "registerOAuthClient",
          "action": "Register oauth client an oauth"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "oauth"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Avatar Video",
      "value": "createAvatarVideo",
      "action": "Create avatar video a video",
      "resource": "video"
    },
    {
      "name": "Create Template Video",
      "value": "createTemplateVideo",
      "action": "Create template video a video",
      "resource": "video"
    },
    {
      "name": "Create a Video From Video Agent",
      "value": "createVideoAgent",
      "action": "Create a video from video agent a video",
      "resource": "video"
    },
    {
      "name": "Get Video Status",
      "value": "getVideoStatus",
      "action": "Get video status a video",
      "resource": "video"
    },
    {
      "name": "Translate Video",
      "value": "translateVideo",
      "action": "Translate video a video",
      "resource": "video"
    },
    {
      "name": "List Avatars",
      "value": "listAvatars",
      "action": "List avatars a list",
      "resource": "list"
    },
    {
      "name": "List Avatars Groups",
      "value": "listAvatarsGroups",
      "action": "List avatars groups a list",
      "resource": "list"
    },
    {
      "name": "List Voices",
      "value": "listVoices",
      "action": "List voices a list",
      "resource": "list"
    },
    {
      "name": "Upload Assets",
      "value": "uploadAssets",
      "action": "Upload assets an asset",
      "resource": "asset"
    },
    {
      "name": "Register OAuth Client",
      "value": "registerOAuthClient",
      "action": "Register oauth client an oauth",
      "resource": "oauth"
    }
  ]

npm_readme:
  # Local development

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

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

  # Lint

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

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

  # Publish

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

  ## More information

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

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


