# nodes

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

updated_at: 2026-07-14 14:40:33
author_name: sysmonitor
author_github_url: https://github.com/CaspioInnovations/n8n-node-caspioofficial.git
npm_package_name: n8n-nodes-caspioofficial
npm_version: 1.0.4
community_fetched_at: 2026-07-14T14:40:33.408Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "record",
      "options": [
        {
          "name": "Attachment",
          "value": "attachment"
        },
        {
          "name": "Data Import/Export Task",
          "value": "task"
        },
        {
          "name": "Directory",
          "value": "directory"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Record",
          "value": "record"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create record",
          "description": "Create a new record in a table"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete records",
          "description": "Delete a record from a table"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many records",
          "description": "Returns records from a table or a view"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update records",
          "description": "Update a record in a table"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "record"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFiles",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete file",
          "description": "Delete a file from Files area"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download file",
          "description": "Download a file from Files area"
        },
        {
          "name": "Get File Properties",
          "value": "listFiles",
          "action": "Get file properties",
          "description": "Returns file properties from Fiels area"
        },
        {
          "name": "Get Folder Properties",
          "value": "listFolders",
          "action": "Get folder properties",
          "description": "Returns folder properties from Files area"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload file",
          "description": "Upload a file to Files area"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete attachments",
          "description": "Delete files from an attachment field"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download attachments",
          "description": "Download files from an attachment field"
        },
        {
          "name": "Get Properties",
          "value": "list",
          "action": "Get attachment properties",
          "description": "Returns file properties stored in an attachment field"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload attachment",
          "description": "Upload a file to an attachment field"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Many",
          "value": "get",
          "action": "Get many data import export tasks",
          "description": "Returns the list of data import/export tasks"
        },
        {
          "name": "Run",
          "value": "run",
          "action": "Run data import export task",
          "description": "Run a chosen data import export task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getUsers",
      "options": [
        {
          "name": "Activate User",
          "value": "activateUser",
          "action": "Activate user",
          "description": "Activate a user in a directory"
        },
        {
          "name": "Create User",
          "value": "createUser",
          "action": "Create user",
          "description": "Create a new user in a directory"
        },
        {
          "name": "Delete User",
          "value": "deleteUsers",
          "action": "Delete users",
          "description": "Delete users from a directory"
        },
        {
          "name": "Get Many Directories",
          "value": "list",
          "action": "Get many directories",
          "description": "Returns the list of directories"
        },
        {
          "name": "Get Many Users",
          "value": "getUsers",
          "action": "Get many users",
          "description": "Returns the list of users in a directory"
        },
        {
          "name": "Update User",
          "value": "updateUsers",
          "action": "Update users",
          "description": "Update a user in a directory"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "directory"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create record",
      "description": "Create a new record in a table",
      "resource": "record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete records",
      "description": "Delete a record from a table",
      "resource": "record"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many records",
      "description": "Returns records from a table or a view",
      "resource": "record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update records",
      "description": "Update a record in a table",
      "resource": "record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete file",
      "description": "Delete a file from Files area",
      "resource": "file"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download file",
      "description": "Download a file from Files area",
      "resource": "file"
    },
    {
      "name": "Get File Properties",
      "value": "listFiles",
      "action": "Get file properties",
      "description": "Returns file properties from Fiels area",
      "resource": "file"
    },
    {
      "name": "Get Folder Properties",
      "value": "listFolders",
      "action": "Get folder properties",
      "description": "Returns folder properties from Files area",
      "resource": "file"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload file",
      "description": "Upload a file to Files area",
      "resource": "file"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete attachments",
      "description": "Delete files from an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download attachments",
      "description": "Download files from an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Get Properties",
      "value": "list",
      "action": "Get attachment properties",
      "description": "Returns file properties stored in an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload attachment",
      "description": "Upload a file to an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Get Many",
      "value": "get",
      "action": "Get many data import export tasks",
      "description": "Returns the list of data import/export tasks",
      "resource": "task"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run data import export task",
      "description": "Run a chosen data import export task",
      "resource": "task"
    },
    {
      "name": "Activate User",
      "value": "activateUser",
      "action": "Activate user",
      "description": "Activate a user in a directory",
      "resource": "directory"
    },
    {
      "name": "Create User",
      "value": "createUser",
      "action": "Create user",
      "description": "Create a new user in a directory",
      "resource": "directory"
    },
    {
      "name": "Delete User",
      "value": "deleteUsers",
      "action": "Delete users",
      "description": "Delete users from a directory",
      "resource": "directory"
    },
    {
      "name": "Get Many Directories",
      "value": "list",
      "action": "Get many directories",
      "description": "Returns the list of directories",
      "resource": "directory"
    },
    {
      "name": "Get Many Users",
      "value": "getUsers",
      "action": "Get many users",
      "description": "Returns the list of users in a directory",
      "resource": "directory"
    },
    {
      "name": "Update User",
      "value": "updateUsers",
      "action": "Update users",
      "description": "Update a user in a directory",
      "resource": "directory"
    }
  ]

npm_readme:
  # n8n-nodes-caspioofficial

  This is an n8n community node for integrating with [Caspio](https://www.caspio.com/). Caspio is a low-code platform that helps you create custom business applications fast, combining database management, application building, and workflow automation in a single platform.

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

  ## Installation

  ### Community Nodes (n8n Cloud)

  For verified community nodes on n8n Cloud:

  1. Open your n8n workflow editor
  2. Select the **+** button or press **Tab** to open the nodes panel
  3. Search for "Caspio" and select it
  4. Select **Install** to add the node

  ### Self-Hosted

  For self-hosted n8n instances:

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

  Note: Only the instance owner can install community nodes. Admin accounts can uninstall nodes if needed.

  ## Documentation

  This node provides comprehensive integration with Caspio's REST API:

  - **[Credentials Setup](https://howto.caspio.com/integrate-your-apps/integration-with-n8n/n8n-integration-credentials)** - Configure OAuth2 authentication with your Caspio account
  - **[Action Node Operations](https://howto.caspio.com/integrate-your-apps/integration-with-n8n/n8n-integration-actions)** - Work with tables, views, directories, files, attachments, and tasks
  - **[Trigger Node Setup](https://howto.caspio.com/integrate-your-apps/integration-with-n8n/n8n-integration-triggers)** - Set up webhooks for real-time event notifications

  ## Compatibility

  This node uses Caspio REST API v3.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Caspio REST API documentation](https://howto.caspio.com/web-services-api/rest-api/)
  - [Caspio homepage](https://www.caspio.com/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Caspio's REST API v3 for integrating low-code business applications with n8n workflows.","capabilities":["OAuth2 authentication with Caspio accounts","Work with Caspio tables","Work with Caspio views","Work with Caspio directories","Work with Caspio files","Work with Caspio attachments","Work with Caspio tasks","Set up webhooks for real-time event notifications"],"authentication":"OAuth2","commonUseCases":["Automate data entry and updates in Caspio applications","Trigger Caspio workflows via n8n webhooks","Sync data between n8n and Caspio databases","Manage Caspio files and attachments programmatically"],"limitations":["Requires manual installation via npm package (n8n-nodes-caspioofficial)","Only available as a community node (not official n8n node)","Limited to Caspio REST API v3"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Credentials"]}


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

updated_at: 2026-07-14 14:40:33
author_name: level-dev
author_github_url: https://github.com/levelrmm/n8n-nodes-level.git
npm_package_name: @levelrmm/n8n-nodes-level
npm_version: 0.2.8
community_fetched_at: 2026-07-14T14:40:33.409Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "devices",
      "options": [
        {
          "name": "Alert",
          "value": "alerts"
        },
        {
          "name": "Automation",
          "value": "automation"
        },
        {
          "name": "Device",
          "value": "devices"
        },
        {
          "name": "Group",
          "value": "groups"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an alert",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/alerts/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "List",
          "value": "list",
          "action": "List alerts",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/alerts",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "alerts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "triggerWebhook",
      "options": [
        {
          "name": "Trigger Webhook",
          "value": "triggerWebhook",
          "action": "Trigger a webhook automation",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/automations/webhooks/{{$parameter[\"token\"]}}",
              "method": "POST"
            }
          },
          "description": "Invoke a Level automation webhook by token"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "automation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List devices",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/devices",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a device",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/devices",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "devices"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a group",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/groups/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "List",
          "value": "list",
          "action": "List groups",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/groups",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "groups"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an alert",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/alerts/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "alerts"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List alerts",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/alerts",
          "method": "GET"
        }
      },
      "resource": "alerts"
    },
    {
      "name": "Trigger Webhook",
      "value": "triggerWebhook",
      "action": "Trigger a webhook automation",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/automations/webhooks/{{$parameter[\"token\"]}}",
          "method": "POST"
        }
      },
      "description": "Invoke a Level automation webhook by token",
      "resource": "automation"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List devices",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/devices",
          "method": "GET"
        }
      },
      "resource": "devices"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a device",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/devices",
          "method": "GET"
        }
      },
      "resource": "devices"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a group",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/groups/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "groups"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List groups",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/groups",
          "method": "GET"
        }
      },
      "resource": "groups"
    }
  ]

npm_readme:
  ![Level Logo](https://media.level.io/i/logo/logo-bg.jpg)
  # n8n-nodes-level

  Official [n8n](https://n8n.io) community nodes for [Level.io](https://level.io), the RMM and automation platform for modern MSPs. These nodes let you orchestrate Level alerts, devices, groups, automations, and webhook events directly from your n8n workflows.

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

  ## Installation

  Follow the [community node installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) to add `n8n-nodes-level` to your n8n instance. Once installed, the Level nodes appear in the n8n editor under **Level**.

  ## Operations

  ### Level node

  | Resource | Operations |
  | --- | --- |
  | Alert | Get alert by ID, List alerts |
  | Automation | Trigger webhook |
  | Device | Get device by ID, List devices |
  | Group | Get group by ID, List groups |

  ### Level Trigger node

  The trigger node listens for signed webhook events from Level and emits them into your workflows. Supported event types include alert, device, group, and automation lifecycle notifications.

  ## Credentials

  Create the following credentials in n8n:

  - **Level API** – Generate an API key from the Level dashboard (**Settings → API Keys**) and store it in this credential. Assign it to the Level node (and to the trigger if you enrich incoming events with REST calls).
  - **Level Webhook Secret** – Copy the signing secret from **Settings → Webhooks** in Level and store it in this credential. Assign it to the Level Trigger node to verify incoming webhook signatures.

  ## Compatibility

  These nodes target `n8nNodesApiVersion` 1 and are developed against n8n v1.60.0 and later. Earlier releases of n8n might not expose all required node features.

  ## Usage

  1. **Add credentials** – In n8n, open *Settings → Credentials* and create both a **Level API** credential (API key) and a **Level Webhook Secret** credential (webhook signing secret).
  2. **Automate API calls** – Place the **Level** node in a workflow to query alerts, devices, or groups, or to invoke an automation webhook by token. Use the *Response Property Name* parameter to reshape the API response when needed.
  3. **React to webhooks** – Add the **Level Trigger** node, select the event types you want to handle, and copy the webhook URL generated by n8n. Configure this URL and the shared secret in Level so events flow into your workflow securely.
  4. **Chain actions** – Combine Level data with other n8n nodes to notify teams, update tickets, or enrich records in downstream systems.

  Refer to the [Level API reference](https://levelapi.readme.io/reference/getting-started-with-your-api) for endpoint details, pagination behavior, and payload schemas when building workflows.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Level API reference](https://levelapi.readme.io/reference/getting-started-with-your-api)
  - [Level help center](https://help.level.io/)

  ## Version history

  | Version | Changes |
  | --- | --- |
  | 0.1.0 | Initial release of the Level community nodes for n8n. |

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Level.io API to manage alerts, devices, groups, and automations for MSPs.","capabilities":["Get alert by ID","List alerts","Trigger automation webhook","Get device by ID","List devices","Get group by ID","List groups","Listen for signed webhook events (alert, device, group, automation lifecycle)"],"authentication":"API key required (Level API) and Webhook secret required (Level Webhook Secret)","commonUseCases":["Automate Level.io alerts and device management","React to webhook events from Level.io","Orchestrate Level automations via n8n workflows","Integrate Level data with other n8n nodes for notifications or ticket updates"],"limitations":["Developed against n8n v1.60.0 and later; earlier versions may not expose all required node features","Requires manual setup of both API credentials and webhook secrets in n8n"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n If","n8n Set"]}


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

updated_at: 2026-07-14 14:40:33
author_name: docuprox
author_github_url: https://github.com/docuprox/n8n-docuprox.git
npm_package_name: n8n-nodes-docuprox
npm_version: 1.1.0
community_fetched_at: 2026-07-14T14:40:33.410Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  AI-powered document data extraction using DocuProx. Use AI Agents with natural language prompts or AI-driven template extraction to pull structured data from documents in real-time or via high-volume batch processing.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document",
          "description": "Process individual document images in real-time. Supports both predefined Template IDs and AI-powered extraction without templates."
        },
        {
          "name": "Job",
          "value": "job",
          "description": "Submit and manage high-volume batch processing for multiple documents within a ZIP file"
        }
      ],
      "required": true,
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "process_agent",
      "options": [
        {
          "name": "Process Agent",
          "value": "process_agent",
          "action": "Process with agent",
          "description": "Process documents via the DocuProx API. Extract structured data using manual or AI-generated prompts, no template required."
        },
        {
          "name": "Process",
          "value": "process",
          "action": "Process a document",
          "description": "Extract document data in real-time by providing a Template ID (UUID) from your DocuProx dashboard"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "options",
      "default": "processJob",
      "options": [
        {
          "name": "Submit Job",
          "value": "processJob",
          "action": "Submit a job",
          "description": "Submit a batch job containing multiple documents in a ZIP file to the DocuProx API for background processing"
        },
        {
          "name": "Get Job Status",
          "value": "jobStatus",
          "action": "Get job status",
          "description": "Get the current processing status, progress percentage, and result metadata for a submitted batch job"
        },
        {
          "name": "Get Job Results",
          "value": "jobResults",
          "action": "Get job results",
          "description": "Retrieve the fully extracted structured data (JSON/CSV) for all documents contained in a completed batch job"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "job"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "Process Agent",
      "value": "process_agent",
      "action": "Process with agent",
      "description": "Process documents via the DocuProx API. Extract structured data using manual or AI-generated prompts, no template required.",
      "resource": "document"
    },
    {
      "name": "Process",
      "value": "process",
      "action": "Process a document",
      "description": "Extract document data in real-time by providing a Template ID (UUID) from your DocuProx dashboard",
      "resource": "document"
    },
    {
      "name": "Submit Job",
      "value": "processJob",
      "action": "Submit a job",
      "description": "Submit a batch job containing multiple documents in a ZIP file to the DocuProx API for background processing",
      "resource": "job"
    },
    {
      "name": "Get Job Status",
      "value": "jobStatus",
      "action": "Get job status",
      "description": "Get the current processing status, progress percentage, and result metadata for a submitted batch job",
      "resource": "job"
    },
    {
      "name": "Get Job Results",
      "value": "jobResults",
      "action": "Get job results",
      "description": "Retrieve the fully extracted structured data (JSON/CSV) for all documents contained in a completed batch job",
      "resource": "job"
    }
  ]

npm_readme:
  # n8n-nodes-docuprox

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-docuprox.svg)](https://www.npmjs.com/package/n8n-nodes-docuprox)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![n8n community node](https://img.shields.io/badge/n8n-community%20node-orange)](https://www.npmjs.com/package/n8n-nodes-docuprox)

  An **n8n community node** for AI-powered document processing and data extraction via the [DocuProx API](https://docuprox.com). Extract structured data from documents using manual or AI-generated prompts — no template required.

  > Automate document data extraction in your n8n workflows. Supports invoices, passports, ID cards, receipts, contracts, and more.

  ## What is DocuProx?

  [DocuProx](https://docuprox.com) is an AI-powered document extraction platform. This n8n node lets you integrate DocuProx directly into your automation workflows — extract structured fields from any document image in real-time or process thousands of documents via batch jobs.

  ## Features

  - **AI Agent Extraction** — Extract any field using natural language prompts. No dashboard template needed.
  - **Template-Based Extraction** — Use a pre-built Template ID (UUID) from your DocuProx dashboard for consistent, structured extraction.
  - **Batch Processing** — Submit a ZIP of documents for high-volume background processing and retrieve results in JSON or CSV.
  - **Flexible Input** — Supports binary file uploads and Base64 encoded images.
  - **Real-Time Results** — Synchronous processing returns structured data immediately.

  ## Supported Document Types

  Works with any document type, including:

  - Passports & ID Cards
  - Invoices & Receipts
  - Contracts & Agreements
  - Bank Statements
  - Medical Records
  - Custom document types via AI prompts

  ## Installation

  ### Via n8n Community Nodes (Recommended)

  1. Open your n8n instance
  2. Go to **Settings → Community Nodes**
  3. Search for `n8n-nodes-docuprox`
  4. Click **Install**
  5. Restart n8n

  ### Manual Installation

  ```bash
  npm install n8n-nodes-docuprox
  ```

  ## Credentials Setup

  1. Go to **Settings → Credentials** in your n8n instance
  2. Create a new credential of type **DocuProx API**
  3. Enter your [DocuProx API key](https://docuprox.com)
  4. Save the credential

  ## Usage

  ### Document → Process Agent _(AI extraction, no template needed)_

  Use natural language prompts to extract any field from a document without creating a dashboard template.

  1. Select **Resource**: `Document`
  2. Select **Operation**: `Process Agent`
  3. Choose **Selection Method**: `Structured Form`
  4. Set **Document Type** (e.g. `passport`, `invoice`)
  5. Add **Prompts** — define fields to extract:
     - Key: `passport_number` → Instruction: `Extract the passport number`
     - Key: `full_name` → Instruction: `Extract the full name`
  6. Upload your document image

  ### Document → Process _(Template-based extraction)_

  Use a Template ID (UUID) from your DocuProx dashboard for structured extraction.

  1. Select **Resource**: `Document`
  2. Select **Operation**: `Process`
  3. Enter your **Template ID** (UUID)
  4. Upload your document image

  ### Job → Batch Processing

  Submit a ZIP file containing multiple documents for high-volume background processing.

  1. **Submit Job** — Upload ZIP + Template ID → returns a `Job ID`
  2. **Get Job Status** — Poll with `Job ID` until status is `SUCCESS`
  3. **Get Job Results** — Retrieve extracted data in JSON or CSV format

  ## Node Properties

  **Document → Process**
  | Field | Required | Description |
  |---|---|---|
  | Template ID | Yes | UUID from your DocuProx dashboard |
  | Image Source | Yes | Binary file upload or Base64 string |
  | Static Values | No | Additional key-value metadata |

  **Document → Process Agent**
  | Field | Required | Description |
  |---|---|---|
  | Selection Method | Yes | Structured Form or Manual JSON |
  | Document Type | Yes | e.g. `passport`, `invoice`, `receipt` |
  | Custom Instructions | No | Natural language guidance for the AI |
  | Prompts | Yes | Field name + extraction instruction pairs |
  | Static Values | No | Additional key-value metadata |

  **Job → Submit Job**
  | Field | Required | Description |
  |---|---|---|
  | Template ID | Yes | UUID from your DocuProx dashboard |
  | Binary Property Name | Yes | Property containing the ZIP file |
  | Static Values | No | Additional key-value metadata |

  **Job → Get Job Status / Get Job Results**
  | Field | Required | Description |
  |---|---|---|
  | Job ID | Yes | UUID returned from Submit Job |
  | Result Format | No | `json` (default) or `csv` |

  ## Job Status Values

  | Status | Description |
  |---|---|
  | `NEW` | Job created and queued for processing |
  | `UNZIP FILE` | Extracting files from the uploaded ZIP archive |
  | `UNZIP FILE SUCCESS` | ZIP extraction completed successfully |
  | `UNZIP FILE FAILED` | ZIP extraction failed |
  | `PROCESS IMAGE` | Processing document images for data extraction |
  | `PROCESS IMAGE SUCCESS` | Image processing completed successfully |
  | `PROCESS IMAGE FAILED` | Image processing failed |
  | `SUCCESS` | Job completed — results are ready to retrieve |
  | `FAILED` | Job processing failed |

  ## API Reference

  ### Input

  | Operation | Key Inputs |
  |---|---|
  | Process | Template ID (UUID), Image (binary or Base64), Static Values (optional) |
  | Process Agent | Document Type, Custom Instructions, Prompts (key-value), Image |
  | Submit Job | Template ID (UUID), ZIP file (binary), Static Values (optional) |
  | Get Job Status | Job ID (UUID) |
  | Get Job Results | Job ID (UUID), Result Format (JSON or CSV) |

  ### Output

  | Operation | Output Fields |
  |---|---|
  | Process | `success`, `templateId`, `response`, `timestamp` |
  | Process Agent | `success`, `response`, `timestamp` |
  | Submit Job | `success`, `templateId`, `response`, `timestamp` |
  | Get Job Status | `success`, `jobId`, `response`, `timestamp` |
  | Get Job Results | `success`, `jobId`, `resultFormat`, `total_records`, `results` / `results_csv` |

  ### Error Handling

  The node includes built-in error handling. Enable **Continue on Fail** in the node settings to handle errors gracefully within your workflow.

  ## Resources

  - [DocuProx Documentation](https://docuprox.com/docs/)
  - [Getting Started Guide](https://docuprox.com/docs/getting-started/)
  - [n8n Integration Guide](https://docuprox.com/docs/integration/n8n/)
  - [DocuProx Dashboard](https://app.docuprox.com/login)

  ## Development

  ```bash
  npm install       # Install dependencies
  npm run build     # Build TypeScript
  npm run dev       # Watch mode
  ```

  ### Project Structure

  ```
  ├── credentials/
  │   └── DocuProxApi.credentials.ts    # API credentials definition
  ├── nodes/
  │   └── DocuProx/
  │       ├── DocuProx.node.ts          # Main node implementation
  │       └── douprox-logo.svg          # Node icon
  ├── dist/                             # Built files
  ├── package.json
  └── README.md
  ```

  ### Release & npm Publish

  1. Add `NPM_TOKEN` to GitHub repository secrets
  2. Bump `version` in `package.json`
  3. Push a tag in `vX.Y.Z` format (e.g. `v1.1.0`)
  4. GitHub Actions will build and run `npm publish --provenance`

  ## License

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

ai_documentation_summary:
  {"purpose":"Processes documents using the DocuProx API by applying AI-powered document processing templates to extract structured data from uploaded images.","capabilities":["Process documents using predefined DocuProx templates","Accept image input as binary file uploads","Accept image input as Base64 encoded strings","Extract structured data from documents","Return processed document data with success status and API response","Handle API errors with configurable workflow continuation"],"authentication":"API key required (via n8n Credentials system)","commonUseCases":["Extracting text and data from invoices","Processing ID documents for verification","Analyzing receipts or forms","Automating document data entry into databases"],"limitations":["Requires a valid DocuProx API key and template ID","Input must be provided as an image file or Base64 string","Dependent on DocuProx API availability and template support"],"relatedNodes":["n8n-nodes-base.credential","n8n-nodes-base.binaryData","n8n-nodes-base.httpRequest"]}


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

updated_at: 2026-07-14 14:40:33
author_name: peektravel
author_github_url: https://github.com/peek-travel/
npm_package_name: n8n-nodes-peek-pro
npm_version: 0.4.1
community_fetched_at: 2026-07-14T14:40:33.411Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "booking",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Booking",
          "value": "booking"
        },
        {
          "name": "Daily Note",
          "value": "dailyNote"
        },
        {
          "name": "Membership",
          "value": "membership"
        },
        {
          "name": "Product",
          "value": "product"
        },
        {
          "name": "Promo Code",
          "value": "promoCode"
        },
        {
          "name": "Reseller",
          "value": "reseller"
        },
        {
          "name": "Timeslot",
          "value": "timeslot"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get: current account",
      "options": [
        {
          "name": "Get Current",
          "value": "get: current account",
          "action": "Get the current account information",
          "routing": {
            "request": {
              "url": "/accounts/current",
              "method": "GET"
            }
          },
          "description": "Get the current account information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: users",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: users",
          "action": "Get all users",
          "routing": {
            "request": {
              "url": "/users",
              "method": "GET"
            }
          },
          "description": "Get all users"
        },
        {
          "name": "Get One",
          "value": "get: user",
          "action": "Get the data of a user",
          "routing": {
            "request": {
              "url": "=/users/{{$parameter.userId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany: bookings (dates)",
      "options": [
        {
          "name": "Get All for Time Range",
          "value": "getMany: bookings (dates)",
          "action": "Get bookings within time range",
          "routing": {
            "request": {
              "qs": {
                "end": "={{$parameter[\"endTime\"]}}",
                "email": "={{$parameter[\"email\"]}}",
                "start": "={{$parameter[\"startTime\"]}}",
                "searchBy": "={{$parameter[\"searchBy\"]}}",
                "productId": "={{$parameter[\"productId\"]}}",
                "searchString": "={{$parameter[\"searchString\"]}}",
                "includeGuests": "={{$parameter[\"includeGuests\"]}}"
              },
              "url": "/bookings",
              "method": "GET"
            }
          },
          "description": "Get all bookings for a given time range"
        },
        {
          "name": "Get All for Timeslot",
          "value": "getMany: bookings (timeslot)",
          "action": "Get bookings for a timeslot",
          "routing": {
            "request": {
              "qs": {
                "timeslotId": "={{$parameter[\"timeslotId\"]}}",
                "includeGuests": "={{$parameter[\"includeGuests\"]}}"
              },
              "url": "/bookings",
              "method": "GET"
            }
          },
          "description": "Get all bookings for a given timeslot"
        },
        {
          "name": "Get One",
          "value": "get: booking",
          "action": "Get one booking",
          "routing": {
            "request": {
              "qs": {
                "includeGuests": "={{$parameter[\"includeGuests\"]}}"
              },
              "url": "=/bookings/{{$parameter.bookingId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single booking"
        },
        {
          "name": "Add Note",
          "value": "set: booking notes",
          "action": "Append a note to the booking notes",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/notes",
              "body": {
                "note": "={{$parameter[\"note\"]}}",
                "appendOrOverwrite": "={{$parameter[\"appendOrOverwrite\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Append a note to the booking notes"
        },
        {
          "name": "Update Checkin Status",
          "value": "set: booking checkin",
          "action": "Update the checkin status of a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/checkin",
              "body": {
                "checkedIn": "={{$parameter[\"checkedIn\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the checkin status of a single booking"
        },
        {
          "name": "Cancel Booking",
          "value": "cancel: booking",
          "action": "Cancel a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/cancel",
              "method": "POST"
            }
          },
          "description": "Cancel a booking"
        },
        {
          "name": "Get Payments On File",
          "value": "get: booking payments on file",
          "action": "Get payments on file for a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/paymentsOnFile",
              "method": "GET"
            }
          },
          "description": "Get the payment sources and associated payments for a booking"
        },
        {
          "name": "Get Invoice Link",
          "value": "get: booking invoice link",
          "action": "Get the invoice link for a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/invoiceLink",
              "method": "GET"
            }
          },
          "description": "Get the invoice link for a booking"
        },
        {
          "name": "Make Payment",
          "value": "create: booking payment",
          "action": "Make a payment on a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/makePayment",
              "body": {
                "amount": "={{$parameter[\"amount\"]}}",
                "currency": "={{$parameter[\"currency\"]}}",
                "liveMode": "={{$parameter[\"liveMode\"]}}",
                "idempotencyKey": "={{$parameter[\"idempotencyKey\"]}}",
                "customerMessage": "={{$parameter[\"customerMessage\"]}}",
                "paymentSourceId": "={{$parameter[\"paymentSourceId\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Charge a saved payment source for a booking"
        },
        {
          "name": "Refund Payment",
          "value": "create: booking refund",
          "action": "Refund a payment on a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/refund",
              "body": {
                "amount": "={{$parameter[\"amount\"]}}",
                "currency": "={{$parameter[\"currency\"]}}",
                "liveMode": "={{$parameter[\"liveMode\"]}}",
                "paymentId": "={{$parameter[\"paymentId\"]}}",
                "idempotencyKey": "={{$parameter[\"idempotencyKey\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Refund a payment on a booking"
        },
        {
          "name": "Add Add-On",
          "value": "create: booking addon",
          "action": "Add an addon to a booking",
          "routing": {
            "request": {
              "url": "=/bookings/{{$parameter.bookingId}}/addons",
              "body": {
                "addonId": "={{$parameter[\"addonId\"]}}",
                "quantity": "={{$parameter[\"quantity\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Attach an add-on to an existing booking"
        },
        {
          "name": "Create Booking",
          "value": "create: booking",
          "action": "Create a new booking",
          "routing": {
            "request": {
              "url": "=/bookings/create",
              "body": {
                "end": "={{$parameter[\"end\"]}}",
                "date": "={{$parameter[\"date\"]}}",
                "email": "={{$parameter[\"email\"]}}",
                "notes": "={{$parameter[\"notes\"]}}",
                "phone": "={{$parameter[\"phone\"]}}",
                "start": "={{$parameter[\"start\"]}}",
                "country": "={{$parameter[\"country\"]}}",
                "product": "={{$parameter[\"product\"]}}",
                "tickets": "={{$parameter[\"tickets\"]}}",
                "optinSms": "={{$parameter[\"optinSms\"]}}",
                "externalId": "={{$parameter[\"externalId\"]}}",
                "postalCode": "={{$parameter[\"postalCode\"]}}",
                "customerName": "={{$parameter[\"customerName\"]}}",
                "parentOrderId": "={{$parameter[\"parentOrderId\"]}}",
                "optinMarketing": "={{$parameter[\"optinMarketing\"]}}",
                "shouldSendEmails": "={{$parameter[\"shouldSendEmails\"]}}",
                "markBookingAsPaid": "={{$parameter[\"markBookingAsPaid\"]}}",
                "partialPaymentAmount": "={{$parameter[\"partialPaymentAmount\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new booking"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "booking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany: timeslots",
      "options": [
        {
          "name": "Get All for Date",
          "value": "getMany: timeslots",
          "action": "Get all timeslots on a date",
          "routing": {
            "request": {
              "qs": {
                "date": "={{$parameter[\"date\"]}}",
                "productId": "={{$parameter[\"productId\"]}}",
                "filterBookings": "={{$parameter[\"filterBookings\"]}}"
              },
              "url": "/timeslots",
              "method": "GET"
            }
          },
          "description": "Get all timeslots for a date and product"
        },
        {
          "name": "Get One",
          "value": "get: timeslot",
          "action": "Get a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single timeslot"
        },
        {
          "name": "Set Availability Status",
          "value": "set: timeslot availability",
          "action": "Set timeslot availability",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "body": {
                "status": "={{$parameter[\"status\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the availability of a timeslot"
        },
        {
          "name": "Set Notes",
          "value": "set: timeslot notes",
          "action": "Update the notes of a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/{{$parameter.timeslotId}}",
              "body": {
                "note": "={{$parameter[\"note\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Update the notes of a timeslot"
        },
        {
          "name": "Set Guide or Resource",
          "value": "set: timeslot guide",
          "action": "Set a guide to a timeslot",
          "routing": {
            "request": {
              "url": "=/timeslots/guideAssign",
              "body": {
                "guideIds": "={{$parameter[\"guideOrResourceIds\"].map(e => $evaluateExpression(e)).map(s => s.replace(/^=/, \"\")) }}",
                "timeslotIds": "={{$parameter[\"timeslotIds\"].map(e => $evaluateExpression(e)).map(s => s.replace(/^=/, \"\")) }}",
                "assignOrUnassign": "={{$parameter[\"assignOrUnassign\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Set a guide to a timeslot"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "timeslot"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: products",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: products",
          "action": "Get all products",
          "routing": {
            "request": {
              "url": "/products",
              "method": "GET"
            }
          },
          "description": "Get all products"
        },
        {
          "name": "Get One",
          "value": "get: product",
          "action": "Get the data of a product",
          "routing": {
            "request": {
              "url": "=/products/{{$parameter.productId}}",
              "method": "GET"
            }
          },
          "description": "Get the data of a single product"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: promoCode",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: promoCode",
          "action": "Get all promo codes",
          "routing": {
            "request": {
              "url": "/promocode",
              "method": "GET"
            }
          },
          "description": "Get all promo codes"
        },
        {
          "name": "Create Promo Code",
          "value": "create: promoCode",
          "action": "Create a new promo code",
          "routing": {
            "request": {
              "url": "=/promocode/create",
              "body": {
                "code": "={{$parameter[\"code\"]}}",
                "name": "={{$parameter[\"name\"]}}",
                "amount": "={{$parameter[\"amount\"]}}",
                "currency": "={{$parameter[\"currency\"]}}",
                "discountType": "={{$parameter[\"discountType\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a new promo code"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "promoCode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get: daily note",
      "options": [
        {
          "name": "Get Today's Daily Note",
          "value": "get: daily note",
          "action": "Get daily note for today",
          "routing": {
            "request": {
              "url": "/dailyNote/today",
              "method": "GET"
            }
          }
        },
        {
          "name": "Update Today's Daily Note",
          "value": "set: daily note",
          "action": "Update daily note for today",
          "routing": {
            "request": {
              "url": "/dailyNote/today",
              "body": {
                "note": "={{$parameter[\"note\"]}}"
              },
              "method": "POST"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dailyNote"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: reseller",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: reseller",
          "action": "Get all resellers",
          "routing": {
            "request": {
              "url": "/reseller",
              "method": "GET"
            }
          },
          "description": "Get all resellers"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reseller"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll: memberships",
      "options": [
        {
          "name": "Get All",
          "value": "getAll: memberships",
          "action": "Get all memberships",
          "routing": {
            "request": {
              "url": "/memberships",
              "method": "GET"
            }
          },
          "description": "List all membership variants configured on the account"
        },
        {
          "name": "Create",
          "value": "create: membership",
          "action": "Purchase a membership for a customer",
          "routing": {
            "request": {
              "url": "=/memberships/create",
              "body": {
                "email": "={{$parameter[\"email\"]}}",
                "phone": "={{$parameter[\"additionalFields\"][\"phone\"] || undefined}}",
                "address": "={{$parameter[\"additionalFields\"][\"address\"] || undefined}}",
                "country": "={{$parameter[\"additionalFields\"][\"country\"] || undefined}}",
                "importId": "={{$parameter[\"importId\"]}}",
                "customerName": "={{$parameter[\"additionalFields\"][\"customerName\"] || undefined}}",
                "membershipCode": "={{$parameter[\"additionalFields\"][\"membershipCode\"] || undefined}}",
                "membershipVariantId": "={{$parameter[\"membershipVariantId\"]}}"
              },
              "method": "POST"
            }
          },
          "description": "Purchase a membership for a customer"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "membership"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Current",
      "value": "get: current account",
      "action": "Get the current account information",
      "routing": {
        "request": {
          "url": "/accounts/current",
          "method": "GET"
        }
      },
      "description": "Get the current account information",
      "resource": "account"
    },
    {
      "name": "Get All",
      "value": "getAll: users",
      "action": "Get all users",
      "routing": {
        "request": {
          "url": "/users",
          "method": "GET"
        }
      },
      "description": "Get all users",
      "resource": "user"
    },
    {
      "name": "Get One",
      "value": "get: user",
      "action": "Get the data of a user",
      "routing": {
        "request": {
          "url": "=/users/{{$parameter.userId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single user",
      "resource": "user"
    },
    {
      "name": "Get All for Time Range",
      "value": "getMany: bookings (dates)",
      "action": "Get bookings within time range",
      "routing": {
        "request": {
          "qs": {
            "end": "={{$parameter[\"endTime\"]}}",
            "email": "={{$parameter[\"email\"]}}",
            "start": "={{$parameter[\"startTime\"]}}",
            "searchBy": "={{$parameter[\"searchBy\"]}}",
            "productId": "={{$parameter[\"productId\"]}}",
            "searchString": "={{$parameter[\"searchString\"]}}",
            "includeGuests": "={{$parameter[\"includeGuests\"]}}"
          },
          "url": "/bookings",
          "method": "GET"
        }
      },
      "description": "Get all bookings for a given time range",
      "resource": "booking"
    },
    {
      "name": "Get All for Timeslot",
      "value": "getMany: bookings (timeslot)",
      "action": "Get bookings for a timeslot",
      "routing": {
        "request": {
          "qs": {
            "timeslotId": "={{$parameter[\"timeslotId\"]}}",
            "includeGuests": "={{$parameter[\"includeGuests\"]}}"
          },
          "url": "/bookings",
          "method": "GET"
        }
      },
      "description": "Get all bookings for a given timeslot",
      "resource": "booking"
    },
    {
      "name": "Get One",
      "value": "get: booking",
      "action": "Get one booking",
      "routing": {
        "request": {
          "qs": {
            "includeGuests": "={{$parameter[\"includeGuests\"]}}"
          },
          "url": "=/bookings/{{$parameter.bookingId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single booking",
      "resource": "booking"
    },
    {
      "name": "Add Note",
      "value": "set: booking notes",
      "action": "Append a note to the booking notes",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/notes",
          "body": {
            "note": "={{$parameter[\"note\"]}}",
            "appendOrOverwrite": "={{$parameter[\"appendOrOverwrite\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Append a note to the booking notes",
      "resource": "booking"
    },
    {
      "name": "Update Checkin Status",
      "value": "set: booking checkin",
      "action": "Update the checkin status of a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/checkin",
          "body": {
            "checkedIn": "={{$parameter[\"checkedIn\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Update the checkin status of a single booking",
      "resource": "booking"
    },
    {
      "name": "Cancel Booking",
      "value": "cancel: booking",
      "action": "Cancel a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/cancel",
          "method": "POST"
        }
      },
      "description": "Cancel a booking",
      "resource": "booking"
    },
    {
      "name": "Get Payments On File",
      "value": "get: booking payments on file",
      "action": "Get payments on file for a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/paymentsOnFile",
          "method": "GET"
        }
      },
      "description": "Get the payment sources and associated payments for a booking",
      "resource": "booking"
    },
    {
      "name": "Get Invoice Link",
      "value": "get: booking invoice link",
      "action": "Get the invoice link for a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/invoiceLink",
          "method": "GET"
        }
      },
      "description": "Get the invoice link for a booking",
      "resource": "booking"
    },
    {
      "name": "Make Payment",
      "value": "create: booking payment",
      "action": "Make a payment on a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/makePayment",
          "body": {
            "amount": "={{$parameter[\"amount\"]}}",
            "currency": "={{$parameter[\"currency\"]}}",
            "liveMode": "={{$parameter[\"liveMode\"]}}",
            "idempotencyKey": "={{$parameter[\"idempotencyKey\"]}}",
            "customerMessage": "={{$parameter[\"customerMessage\"]}}",
            "paymentSourceId": "={{$parameter[\"paymentSourceId\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Charge a saved payment source for a booking",
      "resource": "booking"
    },
    {
      "name": "Refund Payment",
      "value": "create: booking refund",
      "action": "Refund a payment on a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/refund",
          "body": {
            "amount": "={{$parameter[\"amount\"]}}",
            "currency": "={{$parameter[\"currency\"]}}",
            "liveMode": "={{$parameter[\"liveMode\"]}}",
            "paymentId": "={{$parameter[\"paymentId\"]}}",
            "idempotencyKey": "={{$parameter[\"idempotencyKey\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Refund a payment on a booking",
      "resource": "booking"
    },
    {
      "name": "Add Add-On",
      "value": "create: booking addon",
      "action": "Add an addon to a booking",
      "routing": {
        "request": {
          "url": "=/bookings/{{$parameter.bookingId}}/addons",
          "body": {
            "addonId": "={{$parameter[\"addonId\"]}}",
            "quantity": "={{$parameter[\"quantity\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Attach an add-on to an existing booking",
      "resource": "booking"
    },
    {
      "name": "Create Booking",
      "value": "create: booking",
      "action": "Create a new booking",
      "routing": {
        "request": {
          "url": "=/bookings/create",
          "body": {
            "end": "={{$parameter[\"end\"]}}",
            "date": "={{$parameter[\"date\"]}}",
            "email": "={{$parameter[\"email\"]}}",
            "notes": "={{$parameter[\"notes\"]}}",
            "phone": "={{$parameter[\"phone\"]}}",
            "start": "={{$parameter[\"start\"]}}",
            "country": "={{$parameter[\"country\"]}}",
            "product": "={{$parameter[\"product\"]}}",
            "tickets": "={{$parameter[\"tickets\"]}}",
            "optinSms": "={{$parameter[\"optinSms\"]}}",
            "externalId": "={{$parameter[\"externalId\"]}}",
            "postalCode": "={{$parameter[\"postalCode\"]}}",
            "customerName": "={{$parameter[\"customerName\"]}}",
            "parentOrderId": "={{$parameter[\"parentOrderId\"]}}",
            "optinMarketing": "={{$parameter[\"optinMarketing\"]}}",
            "shouldSendEmails": "={{$parameter[\"shouldSendEmails\"]}}",
            "markBookingAsPaid": "={{$parameter[\"markBookingAsPaid\"]}}",
            "partialPaymentAmount": "={{$parameter[\"partialPaymentAmount\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a new booking",
      "resource": "booking"
    },
    {
      "name": "Get All for Date",
      "value": "getMany: timeslots",
      "action": "Get all timeslots on a date",
      "routing": {
        "request": {
          "qs": {
            "date": "={{$parameter[\"date\"]}}",
            "productId": "={{$parameter[\"productId\"]}}",
            "filterBookings": "={{$parameter[\"filterBookings\"]}}"
          },
          "url": "/timeslots",
          "method": "GET"
        }
      },
      "description": "Get all timeslots for a date and product",
      "resource": "timeslot"
    },
    {
      "name": "Get One",
      "value": "get: timeslot",
      "action": "Get a timeslot",
      "routing": {
        "request": {
          "url": "=/timeslots/{{$parameter.timeslotId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single timeslot",
      "resource": "timeslot"
    },
    {
      "name": "Set Availability Status",
      "value": "set: timeslot availability",
      "action": "Set timeslot availability",
      "routing": {
        "request": {
          "url": "=/timeslots/{{$parameter.timeslotId}}",
          "body": {
            "status": "={{$parameter[\"status\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Update the availability of a timeslot",
      "resource": "timeslot"
    },
    {
      "name": "Set Notes",
      "value": "set: timeslot notes",
      "action": "Update the notes of a timeslot",
      "routing": {
        "request": {
          "url": "=/timeslots/{{$parameter.timeslotId}}",
          "body": {
            "note": "={{$parameter[\"note\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Update the notes of a timeslot",
      "resource": "timeslot"
    },
    {
      "name": "Set Guide or Resource",
      "value": "set: timeslot guide",
      "action": "Set a guide to a timeslot",
      "routing": {
        "request": {
          "url": "=/timeslots/guideAssign",
          "body": {
            "guideIds": "={{$parameter[\"guideOrResourceIds\"].map(e => $evaluateExpression(e)).map(s => s.replace(/^=/, \"\")) }}",
            "timeslotIds": "={{$parameter[\"timeslotIds\"].map(e => $evaluateExpression(e)).map(s => s.replace(/^=/, \"\")) }}",
            "assignOrUnassign": "={{$parameter[\"assignOrUnassign\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Set a guide to a timeslot",
      "resource": "timeslot"
    },
    {
      "name": "Get All",
      "value": "getAll: products",
      "action": "Get all products",
      "routing": {
        "request": {
          "url": "/products",
          "method": "GET"
        }
      },
      "description": "Get all products",
      "resource": "product"
    },
    {
      "name": "Get One",
      "value": "get: product",
      "action": "Get the data of a product",
      "routing": {
        "request": {
          "url": "=/products/{{$parameter.productId}}",
          "method": "GET"
        }
      },
      "description": "Get the data of a single product",
      "resource": "product"
    },
    {
      "name": "Get All",
      "value": "getAll: promoCode",
      "action": "Get all promo codes",
      "routing": {
        "request": {
          "url": "/promocode",
          "method": "GET"
        }
      },
      "description": "Get all promo codes",
      "resource": "promoCode"
    },
    {
      "name": "Create Promo Code",
      "value": "create: promoCode",
      "action": "Create a new promo code",
      "routing": {
        "request": {
          "url": "=/promocode/create",
          "body": {
            "code": "={{$parameter[\"code\"]}}",
            "name": "={{$parameter[\"name\"]}}",
            "amount": "={{$parameter[\"amount\"]}}",
            "currency": "={{$parameter[\"currency\"]}}",
            "discountType": "={{$parameter[\"discountType\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a new promo code",
      "resource": "promoCode"
    },
    {
      "name": "Get Today's Daily Note",
      "value": "get: daily note",
      "action": "Get daily note for today",
      "routing": {
        "request": {
          "url": "/dailyNote/today",
          "method": "GET"
        }
      },
      "resource": "dailyNote"
    },
    {
      "name": "Update Today's Daily Note",
      "value": "set: daily note",
      "action": "Update daily note for today",
      "routing": {
        "request": {
          "url": "/dailyNote/today",
          "body": {
            "note": "={{$parameter[\"note\"]}}"
          },
          "method": "POST"
        }
      },
      "resource": "dailyNote"
    },
    {
      "name": "Get All",
      "value": "getAll: reseller",
      "action": "Get all resellers",
      "routing": {
        "request": {
          "url": "/reseller",
          "method": "GET"
        }
      },
      "description": "Get all resellers",
      "resource": "reseller"
    },
    {
      "name": "Get All",
      "value": "getAll: memberships",
      "action": "Get all memberships",
      "routing": {
        "request": {
          "url": "/memberships",
          "method": "GET"
        }
      },
      "description": "List all membership variants configured on the account",
      "resource": "membership"
    },
    {
      "name": "Create",
      "value": "create: membership",
      "action": "Purchase a membership for a customer",
      "routing": {
        "request": {
          "url": "=/memberships/create",
          "body": {
            "email": "={{$parameter[\"email\"]}}",
            "phone": "={{$parameter[\"additionalFields\"][\"phone\"] || undefined}}",
            "address": "={{$parameter[\"additionalFields\"][\"address\"] || undefined}}",
            "country": "={{$parameter[\"additionalFields\"][\"country\"] || undefined}}",
            "importId": "={{$parameter[\"importId\"]}}",
            "customerName": "={{$parameter[\"additionalFields\"][\"customerName\"] || undefined}}",
            "membershipCode": "={{$parameter[\"additionalFields\"][\"membershipCode\"] || undefined}}",
            "membershipVariantId": "={{$parameter[\"membershipVariantId\"]}}"
          },
          "method": "POST"
        }
      },
      "description": "Purchase a membership for a customer",
      "resource": "membership"
    }
  ]

npm_readme:
  # n8n-nodes-peek-pro

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

  ## Installation

  In your n8n instance:

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

  ## Credentials

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

  To configure it in n8n:

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

  ## Features

  This package supports:

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

  ## Usage

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

  ## Requirements

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

  ## License

  MIT

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


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

updated_at: 2026-07-14 14:40:33
author_name: inlife
author_github_url: https://github.com/nexrender/nexrender-n8n-node.git
npm_package_name: @nexrender/n8n-nodes-nexrender
npm_version: 0.1.6
community_fetched_at: 2026-07-14T14:40:33.412Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create template",
          "description": "Create a new template"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete template",
          "description": "Delete a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get template",
          "description": "Get a template by ID"
        },
        {
          "name": "Get Download URL",
          "value": "getDownloadUrl",
          "action": "Get template download URL",
          "description": "Get a presigned download URL for the template file"
        },
        {
          "name": "Get Upload URL",
          "value": "getUploadUrl",
          "action": "Get template upload URL",
          "description": "Get a fresh upload URL for the template file"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List templates",
          "description": "List templates"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update template",
          "description": "Update a template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create job",
          "description": "Create a new job"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List jobs",
          "description": "List jobs"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get job",
          "description": "Get a job by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "job"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload font",
          "description": "Upload a new font"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List fonts",
          "description": "List fonts"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get font",
          "description": "Get a font by ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete font",
          "description": "Delete a font"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "font"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List secrets",
          "description": "List secrets"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create secret",
          "description": "Create or update secret"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete secret",
          "description": "Delete secret"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "secret"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "job",
      "options": [
        {
          "name": "Template",
          "value": "template"
        },
        {
          "name": "Job",
          "value": "job"
        },
        {
          "name": "Font",
          "value": "font"
        },
        {
          "name": "Secret",
          "value": "secret"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create template",
      "description": "Create a new template",
      "resource": "template"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete template",
      "description": "Delete a template",
      "resource": "template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get template",
      "description": "Get a template by ID",
      "resource": "template"
    },
    {
      "name": "Get Download URL",
      "value": "getDownloadUrl",
      "action": "Get template download URL",
      "description": "Get a presigned download URL for the template file",
      "resource": "template"
    },
    {
      "name": "Get Upload URL",
      "value": "getUploadUrl",
      "action": "Get template upload URL",
      "description": "Get a fresh upload URL for the template file",
      "resource": "template"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List templates",
      "description": "List templates",
      "resource": "template"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update template",
      "description": "Update a template",
      "resource": "template"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create job",
      "description": "Create a new job",
      "resource": "job"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List jobs",
      "description": "List jobs",
      "resource": "job"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get job",
      "description": "Get a job by ID",
      "resource": "job"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload font",
      "description": "Upload a new font",
      "resource": "font"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List fonts",
      "description": "List fonts",
      "resource": "font"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get font",
      "description": "Get a font by ID",
      "resource": "font"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete font",
      "description": "Delete a font",
      "resource": "font"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List secrets",
      "description": "List secrets",
      "resource": "secret"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create secret",
      "description": "Create or update secret",
      "resource": "secret"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete secret",
      "description": "Delete secret",
      "resource": "secret"
    }
  ]

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

  # n8n-nodes-nexrender

  This is an n8n community node. It lets you use the Nexrender Cloud API in your n8n workflows to manage templates, render jobs, fonts, and secrets.

  Nexrender is a cloud rendering platform for Adobe After Effects projects, providing API-based control for template upload, job creation, asset injection, and more.

  Note that this node requires an active subscription with [Nexrender Cloud](https://nexrender.com/). Get your trial [today](https://www.nexrender.com/contact)!

  [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 official guide to install community nodes in n8n:

  https://docs.n8n.io/integrations/community-nodes/installation/

  Package name: `@nexrender/n8n-nodes-nexrender`

  ## Operations

  The node exposes the following resources and operations:

  - Template
    - Create: POST /templates — register a template and get upload info
    - List: GET /templates — list templates for your team
    - Get: GET /templates/{id} — get template details
    - Update: PATCH /templates/{id} — update display name
    - Delete: DELETE /templates/{id} — delete a template
    - Get Download URL: GET /templates/{id}/upload — presigned URL to download the raw file
    - Get Upload URL: PUT /templates/{id}/upload — fresh presigned upload URL

  - Job
    - Create: POST /jobs — create a render job with template, assets, settings, upload + webhook
    - List: GET /jobs — supports filters: minimal, from, limit, from_date, to_date, states, exclude_states, sort, tags
    - Get: GET /jobs/{id} — job details, progress, stats, output URL
    - Wait For Job (separate node): polls a job ID until status is finished or error

  - Font
    - Upload: POST /fonts — upload a TTF font (multipart/form-data)
    - List: GET /fonts — list fonts
    - Get: GET /fonts/{id} — get font metadata
    - Delete: DELETE /fonts/{id} — delete a font

  - Secret
    - List: GET /secrets — list secrets (values not returned)
    - Create: PUT /secrets — create/update secret (name + value)
    - Delete: DELETE /secrets/{id} — delete a secret

  ## Credentials

  Credential: “Nexrender API”

  - API Token (required): Bearer token used to authenticate. You can generate a token in the Nexrender app: https://app.nexrender.com/team/settings
  - Base URL (optional): Defaults to `https://api.nexrender.com/api/v2`. Override for on-prem environments.

  ## Compatibility

  - Node.js: >= 20 (per package engines)
  - n8n: built with Nodes API v1

  ## Usage

  1) Add the Nexrender node to your workflow and select a Resource and Operation.

  2) Set up “Nexrender API” credentials with your team API token.

  3) Typical flows:

  - Upload a new template
    - Operation: Template → Create (returns upload info)
    - Use the returned upload info to upload your file (via HTTP Request or custom logic)

  - Render a job
    - Operation: Job → Create
    - Provide the Job body including `template.id`, `assets`, optional `settings`, `webhook` and `upload` configuration
    - Optionally add “Nexrender: Wait For Job” node after Create to block until completion

  - Monitor a job
    - Operation: Job → Get with `jobId`, or use Job → List with filters

  - Manage fonts
    - Operation: Font → Upload (multipart/form-data with TTF)
    - Then reference fonts by file name in your job payload if needed

  ## Resources

  - n8n community nodes docs: https://docs.n8n.io/integrations/#community-nodes
  - Nexrender Cloud product site: https://nexrender.com/
  - Generate an API token: https://app.nexrender.com/team/settings

  ## Version history

  - 0.1.0 — Initial release: Templates, Jobs, Fonts, Secrets operations

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Nexrender Cloud API operations for managing Adobe After Effects templates, rendering jobs, fonts, and secrets.","capabilities":["Create, list, get, update, and delete templates","Create, list, get, and wait for render jobs with progress tracking","Upload and manage TTF fonts","Create, list, and delete secrets","Generate presigned URLs for file uploads","Filter and sort jobs by state, date, and tags"],"authentication":"API Token (Bearer token required)","commonUseCases":["Automated video template management","Scheduled rendering workflows with progress monitoring","Dynamic asset injection for production pipelines","Secure credential management for rendering jobs"],"limitations":["Requires active Nexrender Cloud subscription","Wait for job functionality requires separate node","Font upload requires multipart/form-data","Secret values are not returned in list operations"],"relatedNodes":["HTTP Request","Nexrender: Wait For Job","n8n: Code"]}


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

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

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

npm_readme:
  # n8n-nodes-inboxplus

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

  ## Features

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

  ## Installation

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

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

  ## Credentials

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

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

  ## Operations

  ### 1. Prepare Email

  Loads an InboxPlus template and generates tracking.

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

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

  ### 2. Start Sequence

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

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

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

  ## Workflow Example

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

  ## How It Works

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

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

  ## Field Mapping

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

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

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

  ## Important Notes

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

  ## API Endpoints Used

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

  ## Troubleshooting

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

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

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

  ## Version

  Current version: 1.1.2

  ## Author

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

  ## License

  MIT

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


node_type: @onlyfansapi/n8n-nodes-onlyfansapi.onlyFans
package_name: @onlyfansapi/n8n-nodes-onlyfansapi
display_name: OnlyFans API
description: Consume the OnlyFans API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: onlyfans-dev
author_github_url: https://github.com/onlyfansapi/n8n-nodes-onlyfansapi.git
npm_package_name: @onlyfansapi/n8n-nodes-onlyfansapi
npm_version: 1.1.1
community_fetched_at: 2026-07-14T14:40:33.415Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Connect OnlyFans Account",
          "value": "connectOnlyfansAccount"
        },
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Chats",
          "value": "chats"
        },
        {
          "name": "Chat Messages",
          "value": "chatMessages"
        },
        {
          "name": "Mass Messaging",
          "value": "massMessaging"
        },
        {
          "name": "Saved For Later (Messages)",
          "value": "savedForLaterMessages"
        },
        {
          "name": "Posts",
          "value": "posts"
        },
        {
          "name": "Post Labels",
          "value": "postLabels"
        },
        {
          "name": "Post Comments",
          "value": "postComments"
        },
        {
          "name": "Saved For Later (Posts)",
          "value": "savedForLaterPosts"
        },
        {
          "name": "Queue",
          "value": "queue"
        },
        {
          "name": "Fans",
          "value": "fans"
        },
        {
          "name": "Following",
          "value": "following"
        },
        {
          "name": "User List Collections",
          "value": "userListCollections"
        },
        {
          "name": "Media Vault",
          "value": "mediaVault"
        },
        {
          "name": "Media Vault Lists",
          "value": "mediaVaultLists"
        },
        {
          "name": "Media",
          "value": "media"
        },
        {
          "name": "Free Trial Links",
          "value": "freeTrialLinks"
        },
        {
          "name": "Tracking Links",
          "value": "trackingLinks"
        },
        {
          "name": "Transactions",
          "value": "transactions"
        },
        {
          "name": "Statistics",
          "value": "statistics"
        },
        {
          "name": "Chargebacks",
          "value": "chargebacks"
        },
        {
          "name": "Banking",
          "value": "banking"
        },
        {
          "name": "Payouts",
          "value": "payouts"
        },
        {
          "name": "Users",
          "value": "users"
        },
        {
          "name": "Public Profiles",
          "value": "publicProfiles"
        },
        {
          "name": "Notifications",
          "value": "notifications"
        },
        {
          "name": "OnlyFans Settings",
          "value": "onlyFansSettings"
        },
        {
          "name": "Social Media Buttons",
          "value": "socialMediaButtons"
        },
        {
          "name": "Webhooks",
          "value": "webhooks"
        },
        {
          "name": "API Keys",
          "value": "apiKeys"
        },
        {
          "name": "Client Sessions",
          "value": "clientSessions"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Poll Authentication Status",
          "value": "pollAuthenticationStatus"
        },
        {
          "name": "Submit 2FA",
          "value": "submit2FA"
        },
        {
          "name": "Re-authenticate Account",
          "value": "reAuthenticateAccount"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "connectOnlyfansAccount"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Accounts",
          "value": "listAccounts"
        },
        {
          "name": "Get Current Account",
          "value": "getCurrentAccount"
        },
        {
          "name": "Get Model Start Date",
          "value": "getModelStartDate"
        },
        {
          "name": "Get Top Percentage",
          "value": "getTopPercentage"
        },
        {
          "name": "Disconnect Account",
          "value": "disconnectAccount"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Chats",
          "value": "listChats"
        },
        {
          "name": "List Chat Media (Gallery)",
          "value": "listChatMediaGallery"
        },
        {
          "name": "Mute Chat Notifications",
          "value": "muteChatNotifications"
        },
        {
          "name": "Unmute Chat Notifications",
          "value": "unmuteChatNotifications"
        },
        {
          "name": "Start Typing Indicator",
          "value": "startTypingIndicator"
        },
        {
          "name": "Hide Chat",
          "value": "hideChat"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chats"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Chat Messages",
          "value": "listChatMessages"
        },
        {
          "name": "Search Chat Messages",
          "value": "searchChatMessages"
        },
        {
          "name": "Send Message",
          "value": "sendMessage"
        },
        {
          "name": "Delete Message",
          "value": "deleteMessage"
        },
        {
          "name": "Like Message",
          "value": "likeMessage"
        },
        {
          "name": "Unlike Message",
          "value": "unlikeMessage"
        },
        {
          "name": "Pin Message",
          "value": "pinMessage"
        },
        {
          "name": "Unpin Message",
          "value": "unpinMessage"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chatMessages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get Mass Message Overview",
          "value": "getMassMessageOverview"
        },
        {
          "name": "List Mass Message Queue",
          "value": "listMassMessageQueue"
        },
        {
          "name": "Get Mass Message",
          "value": "getMassMessage"
        },
        {
          "name": "Send Mass Message",
          "value": "sendMassMessage"
        },
        {
          "name": "Update Mass Message",
          "value": "updateMassMessage"
        },
        {
          "name": "Unsend/Delete Mass Message",
          "value": "unsendDeleteMassMessage"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "massMessaging"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Saved For Later Messages",
          "value": "listSavedForLaterMessages"
        },
        {
          "name": "Get Chat Message Settings",
          "value": "getMessageSettings"
        },
        {
          "name": "Enable/Update Automatic Messaging",
          "value": "enableUpdateAutomaticMessaging"
        },
        {
          "name": "Disable Automatic Messaging",
          "value": "disableAutomaticMessaging"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "savedForLaterMessages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Posts",
          "value": "listPosts"
        },
        {
          "name": "Get Post",
          "value": "getPost"
        },
        {
          "name": "Send Post",
          "value": "sendPost"
        },
        {
          "name": "Update Post",
          "value": "updatePost"
        },
        {
          "name": "Show Post Statistics",
          "value": "showPostStatistics"
        },
        {
          "name": "Pin/Unpin Post",
          "value": "pinUnpinPost"
        },
        {
          "name": "Archive Post",
          "value": "archivePost"
        },
        {
          "name": "Unarchive Post",
          "value": "unarchivePost"
        },
        {
          "name": "Delete Post",
          "value": "deletePost"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "posts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Labels",
          "value": "listLabels"
        },
        {
          "name": "Create Label",
          "value": "createLabel"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "postLabels"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Post Comments",
          "value": "listPostComments"
        },
        {
          "name": "Create Post Comment",
          "value": "createPostComment"
        },
        {
          "name": "Delete Post Comment",
          "value": "deletePostComment"
        },
        {
          "name": "Like Post Comment",
          "value": "likePostComment"
        },
        {
          "name": "Unlike Post Comment",
          "value": "unlikePostComment"
        },
        {
          "name": "Pin Post Comment",
          "value": "pinPostComment"
        },
        {
          "name": "Unpin Post Comment",
          "value": "unpinPostComment"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "postComments"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Saved For Later Posts",
          "value": "listSavedForLaterPosts"
        },
        {
          "name": "Get Post Settings",
          "value": "getPostSettings"
        },
        {
          "name": "Enable/Update Automatic Posting",
          "value": "enableUpdateAutomaticPosting"
        },
        {
          "name": "Disable Automatic Posting",
          "value": "disableAutomaticPosting"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "savedForLaterPosts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Count Queue Items",
          "value": "countQueueItems"
        },
        {
          "name": "List Queue Items",
          "value": "listQueueItems"
        },
        {
          "name": "Publish Queue Item",
          "value": "publishQueueItem"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "queue"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Active Fans",
          "value": "listActiveFans"
        },
        {
          "name": "List All Fans",
          "value": "listAllFans"
        },
        {
          "name": "List Expired Fans",
          "value": "listExpiredFans"
        },
        {
          "name": "List Latest Fans",
          "value": "listLatestFans"
        },
        {
          "name": "Set Fan's Custom Name",
          "value": "setFansCustomName"
        },
        {
          "name": "Get Fan Notes",
          "value": "getFanNotes"
        },
        {
          "name": "Create/Edit Fan Notes",
          "value": "createEditFanNotes"
        },
        {
          "name": "Clear Fan Notes",
          "value": "clearFanNotes"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "fans"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Active Following",
          "value": "listActiveFollowings"
        },
        {
          "name": "List All Following",
          "value": "listAllFollowings"
        },
        {
          "name": "List Expired Following",
          "value": "listExpiredFollowings"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "following"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List User Lists",
          "value": "listUserLists"
        },
        {
          "name": "Create User List",
          "value": "createUserList"
        },
        {
          "name": "Get User List",
          "value": "getUserList"
        },
        {
          "name": "Update User List",
          "value": "updateUserList"
        },
        {
          "name": "Delete User List",
          "value": "deleteUserList"
        },
        {
          "name": "List User List Users",
          "value": "listUserListUsers"
        },
        {
          "name": "Add Users To User List",
          "value": "addUsersToUserList"
        },
        {
          "name": "Remove User from a User List",
          "value": "removeUserFromAUserList"
        },
        {
          "name": "Clear User List",
          "value": "clearUserList"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "userListCollections"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Vault Media",
          "value": "listVaultMedia"
        },
        {
          "name": "Get Vault Media",
          "value": "getVaultMedia"
        },
        {
          "name": "Delete Vault Media",
          "value": "deleteVaultMedia"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mediaVault"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Add Media To List",
          "value": "addMediaToList"
        },
        {
          "name": "Create Vault List",
          "value": "createVaultList"
        },
        {
          "name": "Delete Vault List",
          "value": "deleteVaultList"
        },
        {
          "name": "List Vault Lists",
          "value": "listVaultLists"
        },
        {
          "name": "Remove Media From List",
          "value": "removeMediaFromList"
        },
        {
          "name": "Rename Vault List",
          "value": "renameVaultList"
        },
        {
          "name": "Show Vault List",
          "value": "showVaultList"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mediaVaultLists"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Scrape media from the OnlyFans CDN",
          "value": "scrapeMediaFromTheOnlyFansCDN"
        },
        {
          "name": "Upload media to the OnlyFans CDN",
          "value": "uploadMediaToTheOnlyFansCDN"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "media"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Create Free Trial Link",
          "value": "createFreeTrialLink"
        },
        {
          "name": "Delete Free Trial Link",
          "value": "deleteFreeTrialLink"
        },
        {
          "name": "List Free Trial Link Spenders",
          "value": "listFreeTrialLinkSpenders"
        },
        {
          "name": "List Free Trial Link Subscribers",
          "value": "listFreeTrialLinkSubscribers"
        },
        {
          "name": "List Free Trial Links",
          "value": "listFreeTrialLinks"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "freeTrialLinks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Create Tracking Link",
          "value": "createTrackingLink"
        },
        {
          "name": "Delete Tracking Link",
          "value": "deleteTrackingLink"
        },
        {
          "name": "List Tracking Link Spenders",
          "value": "listTrackingLinkSpenders"
        },
        {
          "name": "List Tracking Link Subscribers",
          "value": "listTrackingLinkSubscribers"
        },
        {
          "name": "List Tracking Links",
          "value": "listTrackingLinks"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "trackingLinks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Transactions",
          "value": "listTransactions"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transactions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Calculate Total Transactions",
          "value": "calculateTotalTransactions"
        },
        {
          "name": "Get Earnings",
          "value": "getEarnings"
        },
        {
          "name": "Get Profile Visitors",
          "value": "getProfileVisitors"
        },
        {
          "name": "Get Subscriber Metrics",
          "value": "getSubscriberMetrics"
        },
        {
          "name": "Get Subscriber Statistics",
          "value": "getSubscriberStatistics"
        },
        {
          "name": "Overview",
          "value": "statisticsOverview"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "statistics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Calculate Chargeback Ratio",
          "value": "calculateChargebackRatio"
        },
        {
          "name": "List Chargeback Statistics",
          "value": "listChargebackStatistics"
        },
        {
          "name": "List Chargebacks",
          "value": "listChargebacks"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chargebacks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get Account Country Details",
          "value": "getAccountCountryDetails"
        },
        {
          "name": "Get Bank Payout Details",
          "value": "getBankPayoutDetails"
        },
        {
          "name": "Get DAC7 Form Details",
          "value": "getDAC7FormDetails"
        },
        {
          "name": "Get Legal and Tax Status",
          "value": "getLegalAndTaxStatus"
        },
        {
          "name": "Get Legal Form Details",
          "value": "getLegalFormDetails"
        },
        {
          "name": "List Available Payout Systems",
          "value": "listAvailablePayoutSystems"
        },
        {
          "name": "List Countries",
          "value": "listCountries"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "banking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get Account Balances",
          "value": "getAccountBalances"
        },
        {
          "name": "Get Earning Statistics",
          "value": "getEarningStatistics"
        },
        {
          "name": "Get Eligibility",
          "value": "getEligibility"
        },
        {
          "name": "List Payout Requests",
          "value": "listPayoutRequests"
        },
        {
          "name": "List Transactions (Earnings)",
          "value": "listTransactionsEarnings"
        },
        {
          "name": "Request Manual Withdrawal",
          "value": "requestManualWithdrawal"
        },
        {
          "name": "Update Payout Frequency",
          "value": "updatePayoutFrequency"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "payouts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get User Details",
          "value": "getUserDetails"
        },
        {
          "name": "Restrict User",
          "value": "restrictUser"
        },
        {
          "name": "Unrestrict User",
          "value": "unrestrictUser"
        },
        {
          "name": "Block User",
          "value": "blockUser"
        },
        {
          "name": "Unblock User",
          "value": "unblockUser"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get Profile Details",
          "value": "getProfileDetails"
        },
        {
          "name": "Search Profiles",
          "value": "searchProfiles"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "publicProfiles"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get Notification Counts",
          "value": "getNotificationCounts"
        },
        {
          "name": "Get Notification Tabs Order",
          "value": "getNotificationTabsOrder"
        },
        {
          "name": "List Notifications",
          "value": "listNotifications"
        },
        {
          "name": "Mark All Notifications As Read",
          "value": "markAllNotificationsAsRead"
        },
        {
          "name": "Search Users In Notifications",
          "value": "searchUsersInNotifications"
        },
        {
          "name": "Update Notification Tabs Order",
          "value": "updateNotificationTabsOrder"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notifications"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get Settings",
          "value": "getSettings"
        },
        {
          "name": "Update Profile",
          "value": "updateProfile"
        },
        {
          "name": "Check Username Availability",
          "value": "checkUsernameAvailability"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "onlyFansSettings"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Social Media Buttons",
          "value": "listSocialMediaButtons"
        },
        {
          "name": "Add Social Media Button",
          "value": "addSocialMediaButton"
        },
        {
          "name": "Update Social Media Button",
          "value": "updateSocialMediaButton"
        },
        {
          "name": "Delete Social Media Button",
          "value": "deleteSocialMediaButton"
        },
        {
          "name": "Reorder Social Media Button",
          "value": "reorderSocialMediaButtons"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "socialMediaButtons"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "List Webhooks",
          "value": "listWebhooks"
        },
        {
          "name": "List Available Events",
          "value": "listAvailableEvents"
        },
        {
          "name": "Create Webhook",
          "value": "createWebhook"
        },
        {
          "name": "Show Webhook",
          "value": "showWebhook"
        },
        {
          "name": "Update Webhook",
          "value": "updateWebhook"
        },
        {
          "name": "Delete Webhook",
          "value": "deleteWebhook"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Whoami",
          "value": "whoami"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "apiKeys"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Create Client Session",
          "value": "createClientSession"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clientSessions"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Poll Authentication Status",
      "value": "pollAuthenticationStatus",
      "resource": "connectOnlyfansAccount"
    },
    {
      "name": "Submit 2FA",
      "value": "submit2FA",
      "resource": "connectOnlyfansAccount"
    },
    {
      "name": "Re-authenticate Account",
      "value": "reAuthenticateAccount",
      "resource": "connectOnlyfansAccount"
    },
    {
      "name": "List Accounts",
      "value": "listAccounts",
      "resource": "account"
    },
    {
      "name": "Get Current Account",
      "value": "getCurrentAccount",
      "resource": "account"
    },
    {
      "name": "Get Model Start Date",
      "value": "getModelStartDate",
      "resource": "account"
    },
    {
      "name": "Get Top Percentage",
      "value": "getTopPercentage",
      "resource": "account"
    },
    {
      "name": "Disconnect Account",
      "value": "disconnectAccount",
      "resource": "account"
    },
    {
      "name": "List Chats",
      "value": "listChats",
      "resource": "chats"
    },
    {
      "name": "List Chat Media (Gallery)",
      "value": "listChatMediaGallery",
      "resource": "chats"
    },
    {
      "name": "Mute Chat Notifications",
      "value": "muteChatNotifications",
      "resource": "chats"
    },
    {
      "name": "Unmute Chat Notifications",
      "value": "unmuteChatNotifications",
      "resource": "chats"
    },
    {
      "name": "Start Typing Indicator",
      "value": "startTypingIndicator",
      "resource": "chats"
    },
    {
      "name": "Hide Chat",
      "value": "hideChat",
      "resource": "chats"
    },
    {
      "name": "List Chat Messages",
      "value": "listChatMessages",
      "resource": "chatMessages"
    },
    {
      "name": "Search Chat Messages",
      "value": "searchChatMessages",
      "resource": "chatMessages"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "resource": "chatMessages"
    },
    {
      "name": "Delete Message",
      "value": "deleteMessage",
      "resource": "chatMessages"
    },
    {
      "name": "Like Message",
      "value": "likeMessage",
      "resource": "chatMessages"
    },
    {
      "name": "Unlike Message",
      "value": "unlikeMessage",
      "resource": "chatMessages"
    },
    {
      "name": "Pin Message",
      "value": "pinMessage",
      "resource": "chatMessages"
    },
    {
      "name": "Unpin Message",
      "value": "unpinMessage",
      "resource": "chatMessages"
    },
    {
      "name": "Get Mass Message Overview",
      "value": "getMassMessageOverview",
      "resource": "massMessaging"
    },
    {
      "name": "List Mass Message Queue",
      "value": "listMassMessageQueue",
      "resource": "massMessaging"
    },
    {
      "name": "Get Mass Message",
      "value": "getMassMessage",
      "resource": "massMessaging"
    },
    {
      "name": "Send Mass Message",
      "value": "sendMassMessage",
      "resource": "massMessaging"
    },
    {
      "name": "Update Mass Message",
      "value": "updateMassMessage",
      "resource": "massMessaging"
    },
    {
      "name": "Unsend/Delete Mass Message",
      "value": "unsendDeleteMassMessage",
      "resource": "massMessaging"
    },
    {
      "name": "List Saved For Later Messages",
      "value": "listSavedForLaterMessages",
      "resource": "savedForLaterMessages"
    },
    {
      "name": "Get Chat Message Settings",
      "value": "getMessageSettings",
      "resource": "savedForLaterMessages"
    },
    {
      "name": "Enable/Update Automatic Messaging",
      "value": "enableUpdateAutomaticMessaging",
      "resource": "savedForLaterMessages"
    },
    {
      "name": "Disable Automatic Messaging",
      "value": "disableAutomaticMessaging",
      "resource": "savedForLaterMessages"
    },
    {
      "name": "List Posts",
      "value": "listPosts",
      "resource": "posts"
    },
    {
      "name": "Get Post",
      "value": "getPost",
      "resource": "posts"
    },
    {
      "name": "Send Post",
      "value": "sendPost",
      "resource": "posts"
    },
    {
      "name": "Update Post",
      "value": "updatePost",
      "resource": "posts"
    },
    {
      "name": "Show Post Statistics",
      "value": "showPostStatistics",
      "resource": "posts"
    },
    {
      "name": "Pin/Unpin Post",
      "value": "pinUnpinPost",
      "resource": "posts"
    },
    {
      "name": "Archive Post",
      "value": "archivePost",
      "resource": "posts"
    },
    {
      "name": "Unarchive Post",
      "value": "unarchivePost",
      "resource": "posts"
    },
    {
      "name": "Delete Post",
      "value": "deletePost",
      "resource": "posts"
    },
    {
      "name": "List Labels",
      "value": "listLabels",
      "resource": "postLabels"
    },
    {
      "name": "Create Label",
      "value": "createLabel",
      "resource": "postLabels"
    },
    {
      "name": "List Post Comments",
      "value": "listPostComments",
      "resource": "postComments"
    },
    {
      "name": "Create Post Comment",
      "value": "createPostComment",
      "resource": "postComments"
    },
    {
      "name": "Delete Post Comment",
      "value": "deletePostComment",
      "resource": "postComments"
    },
    {
      "name": "Like Post Comment",
      "value": "likePostComment",
      "resource": "postComments"
    },
    {
      "name": "Unlike Post Comment",
      "value": "unlikePostComment",
      "resource": "postComments"
    },
    {
      "name": "Pin Post Comment",
      "value": "pinPostComment",
      "resource": "postComments"
    },
    {
      "name": "Unpin Post Comment",
      "value": "unpinPostComment",
      "resource": "postComments"
    },
    {
      "name": "List Saved For Later Posts",
      "value": "listSavedForLaterPosts",
      "resource": "savedForLaterPosts"
    },
    {
      "name": "Get Post Settings",
      "value": "getPostSettings",
      "resource": "savedForLaterPosts"
    },
    {
      "name": "Enable/Update Automatic Posting",
      "value": "enableUpdateAutomaticPosting",
      "resource": "savedForLaterPosts"
    },
    {
      "name": "Disable Automatic Posting",
      "value": "disableAutomaticPosting",
      "resource": "savedForLaterPosts"
    },
    {
      "name": "Count Queue Items",
      "value": "countQueueItems",
      "resource": "queue"
    },
    {
      "name": "List Queue Items",
      "value": "listQueueItems",
      "resource": "queue"
    },
    {
      "name": "Publish Queue Item",
      "value": "publishQueueItem",
      "resource": "queue"
    },
    {
      "name": "List Active Fans",
      "value": "listActiveFans",
      "resource": "fans"
    },
    {
      "name": "List All Fans",
      "value": "listAllFans",
      "resource": "fans"
    },
    {
      "name": "List Expired Fans",
      "value": "listExpiredFans",
      "resource": "fans"
    },
    {
      "name": "List Latest Fans",
      "value": "listLatestFans",
      "resource": "fans"
    },
    {
      "name": "Set Fan's Custom Name",
      "value": "setFansCustomName",
      "resource": "fans"
    },
    {
      "name": "Get Fan Notes",
      "value": "getFanNotes",
      "resource": "fans"
    },
    {
      "name": "Create/Edit Fan Notes",
      "value": "createEditFanNotes",
      "resource": "fans"
    },
    {
      "name": "Clear Fan Notes",
      "value": "clearFanNotes",
      "resource": "fans"
    },
    {
      "name": "List Active Following",
      "value": "listActiveFollowings",
      "resource": "following"
    },
    {
      "name": "List All Following",
      "value": "listAllFollowings",
      "resource": "following"
    },
    {
      "name": "List Expired Following",
      "value": "listExpiredFollowings",
      "resource": "following"
    },
    {
      "name": "List User Lists",
      "value": "listUserLists",
      "resource": "userListCollections"
    },
    {
      "name": "Create User List",
      "value": "createUserList",
      "resource": "userListCollections"
    },
    {
      "name": "Get User List",
      "value": "getUserList",
      "resource": "userListCollections"
    },
    {
      "name": "Update User List",
      "value": "updateUserList",
      "resource": "userListCollections"
    },
    {
      "name": "Delete User List",
      "value": "deleteUserList",
      "resource": "userListCollections"
    },
    {
      "name": "List User List Users",
      "value": "listUserListUsers",
      "resource": "userListCollections"
    },
    {
      "name": "Add Users To User List",
      "value": "addUsersToUserList",
      "resource": "userListCollections"
    },
    {
      "name": "Remove User from a User List",
      "value": "removeUserFromAUserList",
      "resource": "userListCollections"
    },
    {
      "name": "Clear User List",
      "value": "clearUserList",
      "resource": "userListCollections"
    },
    {
      "name": "List Vault Media",
      "value": "listVaultMedia",
      "resource": "mediaVault"
    },
    {
      "name": "Get Vault Media",
      "value": "getVaultMedia",
      "resource": "mediaVault"
    },
    {
      "name": "Delete Vault Media",
      "value": "deleteVaultMedia",
      "resource": "mediaVault"
    },
    {
      "name": "Add Media To List",
      "value": "addMediaToList",
      "resource": "mediaVaultLists"
    },
    {
      "name": "Create Vault List",
      "value": "createVaultList",
      "resource": "mediaVaultLists"
    },
    {
      "name": "Delete Vault List",
      "value": "deleteVaultList",
      "resource": "mediaVaultLists"
    },
    {
      "name": "List Vault Lists",
      "value": "listVaultLists",
      "resource": "mediaVaultLists"
    },
    {
      "name": "Remove Media From List",
      "value": "removeMediaFromList",
      "resource": "mediaVaultLists"
    },
    {
      "name": "Rename Vault List",
      "value": "renameVaultList",
      "resource": "mediaVaultLists"
    },
    {
      "name": "Show Vault List",
      "value": "showVaultList",
      "resource": "mediaVaultLists"
    },
    {
      "name": "Scrape media from the OnlyFans CDN",
      "value": "scrapeMediaFromTheOnlyFansCDN",
      "resource": "media"
    },
    {
      "name": "Upload media to the OnlyFans CDN",
      "value": "uploadMediaToTheOnlyFansCDN",
      "resource": "media"
    },
    {
      "name": "Create Free Trial Link",
      "value": "createFreeTrialLink",
      "resource": "freeTrialLinks"
    },
    {
      "name": "Delete Free Trial Link",
      "value": "deleteFreeTrialLink",
      "resource": "freeTrialLinks"
    },
    {
      "name": "List Free Trial Link Spenders",
      "value": "listFreeTrialLinkSpenders",
      "resource": "freeTrialLinks"
    },
    {
      "name": "List Free Trial Link Subscribers",
      "value": "listFreeTrialLinkSubscribers",
      "resource": "freeTrialLinks"
    },
    {
      "name": "List Free Trial Links",
      "value": "listFreeTrialLinks",
      "resource": "freeTrialLinks"
    },
    {
      "name": "Create Tracking Link",
      "value": "createTrackingLink",
      "resource": "trackingLinks"
    },
    {
      "name": "Delete Tracking Link",
      "value": "deleteTrackingLink",
      "resource": "trackingLinks"
    },
    {
      "name": "List Tracking Link Spenders",
      "value": "listTrackingLinkSpenders",
      "resource": "trackingLinks"
    },
    {
      "name": "List Tracking Link Subscribers",
      "value": "listTrackingLinkSubscribers",
      "resource": "trackingLinks"
    },
    {
      "name": "List Tracking Links",
      "value": "listTrackingLinks",
      "resource": "trackingLinks"
    },
    {
      "name": "List Transactions",
      "value": "listTransactions",
      "resource": "transactions"
    },
    {
      "name": "Calculate Total Transactions",
      "value": "calculateTotalTransactions",
      "resource": "statistics"
    },
    {
      "name": "Get Earnings",
      "value": "getEarnings",
      "resource": "statistics"
    },
    {
      "name": "Get Profile Visitors",
      "value": "getProfileVisitors",
      "resource": "statistics"
    },
    {
      "name": "Get Subscriber Metrics",
      "value": "getSubscriberMetrics",
      "resource": "statistics"
    },
    {
      "name": "Get Subscriber Statistics",
      "value": "getSubscriberStatistics",
      "resource": "statistics"
    },
    {
      "name": "Overview",
      "value": "statisticsOverview",
      "resource": "statistics"
    },
    {
      "name": "Calculate Chargeback Ratio",
      "value": "calculateChargebackRatio",
      "resource": "chargebacks"
    },
    {
      "name": "List Chargeback Statistics",
      "value": "listChargebackStatistics",
      "resource": "chargebacks"
    },
    {
      "name": "List Chargebacks",
      "value": "listChargebacks",
      "resource": "chargebacks"
    },
    {
      "name": "Get Account Country Details",
      "value": "getAccountCountryDetails",
      "resource": "banking"
    },
    {
      "name": "Get Bank Payout Details",
      "value": "getBankPayoutDetails",
      "resource": "banking"
    },
    {
      "name": "Get DAC7 Form Details",
      "value": "getDAC7FormDetails",
      "resource": "banking"
    },
    {
      "name": "Get Legal and Tax Status",
      "value": "getLegalAndTaxStatus",
      "resource": "banking"
    },
    {
      "name": "Get Legal Form Details",
      "value": "getLegalFormDetails",
      "resource": "banking"
    },
    {
      "name": "List Available Payout Systems",
      "value": "listAvailablePayoutSystems",
      "resource": "banking"
    },
    {
      "name": "List Countries",
      "value": "listCountries",
      "resource": "banking"
    },
    {
      "name": "Get Account Balances",
      "value": "getAccountBalances",
      "resource": "payouts"
    },
    {
      "name": "Get Earning Statistics",
      "value": "getEarningStatistics",
      "resource": "payouts"
    },
    {
      "name": "Get Eligibility",
      "value": "getEligibility",
      "resource": "payouts"
    },
    {
      "name": "List Payout Requests",
      "value": "listPayoutRequests",
      "resource": "payouts"
    },
    {
      "name": "List Transactions (Earnings)",
      "value": "listTransactionsEarnings",
      "resource": "payouts"
    },
    {
      "name": "Request Manual Withdrawal",
      "value": "requestManualWithdrawal",
      "resource": "payouts"
    },
    {
      "name": "Update Payout Frequency",
      "value": "updatePayoutFrequency",
      "resource": "payouts"
    },
    {
      "name": "Get User Details",
      "value": "getUserDetails",
      "resource": "users"
    },
    {
      "name": "Restrict User",
      "value": "restrictUser",
      "resource": "users"
    },
    {
      "name": "Unrestrict User",
      "value": "unrestrictUser",
      "resource": "users"
    },
    {
      "name": "Block User",
      "value": "blockUser",
      "resource": "users"
    },
    {
      "name": "Unblock User",
      "value": "unblockUser",
      "resource": "users"
    },
    {
      "name": "Get Profile Details",
      "value": "getProfileDetails",
      "resource": "publicProfiles"
    },
    {
      "name": "Search Profiles",
      "value": "searchProfiles",
      "resource": "publicProfiles"
    },
    {
      "name": "Get Notification Counts",
      "value": "getNotificationCounts",
      "resource": "notifications"
    },
    {
      "name": "Get Notification Tabs Order",
      "value": "getNotificationTabsOrder",
      "resource": "notifications"
    },
    {
      "name": "List Notifications",
      "value": "listNotifications",
      "resource": "notifications"
    },
    {
      "name": "Mark All Notifications As Read",
      "value": "markAllNotificationsAsRead",
      "resource": "notifications"
    },
    {
      "name": "Search Users In Notifications",
      "value": "searchUsersInNotifications",
      "resource": "notifications"
    },
    {
      "name": "Update Notification Tabs Order",
      "value": "updateNotificationTabsOrder",
      "resource": "notifications"
    },
    {
      "name": "Get Settings",
      "value": "getSettings",
      "resource": "onlyFansSettings"
    },
    {
      "name": "Update Profile",
      "value": "updateProfile",
      "resource": "onlyFansSettings"
    },
    {
      "name": "Check Username Availability",
      "value": "checkUsernameAvailability",
      "resource": "onlyFansSettings"
    },
    {
      "name": "List Social Media Buttons",
      "value": "listSocialMediaButtons",
      "resource": "socialMediaButtons"
    },
    {
      "name": "Add Social Media Button",
      "value": "addSocialMediaButton",
      "resource": "socialMediaButtons"
    },
    {
      "name": "Update Social Media Button",
      "value": "updateSocialMediaButton",
      "resource": "socialMediaButtons"
    },
    {
      "name": "Delete Social Media Button",
      "value": "deleteSocialMediaButton",
      "resource": "socialMediaButtons"
    },
    {
      "name": "Reorder Social Media Button",
      "value": "reorderSocialMediaButtons",
      "resource": "socialMediaButtons"
    },
    {
      "name": "List Webhooks",
      "value": "listWebhooks",
      "resource": "webhooks"
    },
    {
      "name": "List Available Events",
      "value": "listAvailableEvents",
      "resource": "webhooks"
    },
    {
      "name": "Create Webhook",
      "value": "createWebhook",
      "resource": "webhooks"
    },
    {
      "name": "Show Webhook",
      "value": "showWebhook",
      "resource": "webhooks"
    },
    {
      "name": "Update Webhook",
      "value": "updateWebhook",
      "resource": "webhooks"
    },
    {
      "name": "Delete Webhook",
      "value": "deleteWebhook",
      "resource": "webhooks"
    },
    {
      "name": "Whoami",
      "value": "whoami",
      "resource": "apiKeys"
    },
    {
      "name": "Create Client Session",
      "value": "createClientSession",
      "resource": "clientSessions"
    }
  ]

npm_readme:
  # n8n-nodes-onlyfansapi
  ![Example workflow](/images/example.png)

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

  OnlyFans API is an unofficial API for OnlyFans, a popular content subscription service, to automate your workflows with ease.

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

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

  ## Installation

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

  ## Operations

  This node supports the following resources and operations:

  ### Account
  - **Get Account** - Get OnlyFans Profile details for an Account
  - **Get Many** - List many connected OnlyFans accounts
  - **Get Model Start Date** - Get the start date of the model (the date+time monetization was enabled)
  - **Disconnect Account** - Disconnect an OnlyFans account

  ### API Key
  - **Whoami** - Get details about the currently used API Key & the relevant Team

  ### Banking
  - **Get Account Country Details** - Returns the account owner's country details for banking
  - **Get Bank Payout Details** - Returns the account owner's bank payout details
  - **Get DAC7 Form Details** - Returns the account owner's DAC7 form information required for tax reporting
  - **Get Legal and Tax Status** - Returns the account owner's legal and tax status required for banking
  - **Get Legal Form Details** - Returns the account owner's legal form details for banking
  - **List Available Payout Systems** - Returns a list of available payout systems for the account
  - **List Countries** - Returns a list of countries available for banking configuration

  ### Chargeback
  - **Calculate Chargeback Ratio** - Calculate the chargeback ratio (chargebacks vs total payments)
  - **Get Many** - Retrieve a list of chargebacks within a specified date range
  - **List Chargeback Statistics** - List chargeback counts & amounts per hour, day or month

  ### Chat
  - **Get Many** - Get the list of chats for an Account
  - **List Chat Media (Gallery)** - List media files shared in a specific chat
  - **Mute Chat Notifications** - Mute notifications for a specific chat
  - **Start Typing Indicator** - Start the typing indicator for a specific chat
  - **Unmute Chat Notifications** - Unmute notifications for a specific chat

  ### Chat Message
  - **Delete Message** - Delete a message from a chat (only messages sent less than 24 hours ago)
  - **Get Many** - Get messages from a specific chat
  - **Like Message** - Like a chat message
  - **Pin Message** - Pin a message from a chat
  - **Send Message** - Send a new message to a chat
  - **Unlike Message** - Unlike a chat message
  - **Unpin Message** - Unpin a message from a chat

  ### Client Session
  - **Create Client Session** - Create Client Session Token for later use in embedded auth components

  ### Connect OnlyFans Account
  - **Poll Authentication Status** - Poll the status of the authentication process
  - **Re-Authenticate Account** - Trigger account reauthentication without the need to submit email & password again
  - **Start Authentication** - Start the authentication process for a new account
  - **Submit 2FA** - Submit the 2FA code for the authentication process

  ### Fan
  - **List Active Fans** - Get a paginated list of active fans for an Account
  - **List All Fans** - Get a paginated list of all fans for an Account
  - **List Expired Fans** - Get a paginated list of expired fans for an Account
  - **List Latest Fans** - Get a paginated list of latest fans for an Account
  - **Set Custom Name** - Change the fan's custom name shown in OnlyFans

  ### Following
  - **List Active Followings** - Get a paginated list of active followings for an Account
  - **List All Followings** - Get a paginated list of all followings for an Account
  - **List Expired Followings** - Get a paginated list of expired followings for an Account

  ### Free Trial Link
  - **Create Free Trial Link** - Create a free trial link for the account
  - **Delete Free Trial Link** - Delete a free trial link by its ID
  - **Get Many** - List many free trial links for the account, including the details and statistics
  - **List Free Trial Link Spenders** - Only available if we already scraped subscribers and calculated revenue per fan
  - **List Free Trial Link Subscribers** - Get list of subscribers who joined through a Free Trial Link

  ### Mass Messaging
  - **Get Mass Message** - Get the content of a mass message
  - **List Mass Message Queue** - List the pending or recently sent mass messages in the message queue
  - **List Mass Message Statistics** - List mass messaging statistics, showing the send count and view count
  - **Send Mass Message** - Send a mass message to lists and/or users
  - **Unsend/Delete Mass Message** - Unsend a recently sent mass message, or delete a scheduled/saved message
  - **Update Mass Message** - Update a mass message

  ### Media
  - **Scrape Media From The OnlyFans CDN** - Scrapes a https://cdn*.onlyfans.com/* URL and uploads it to the OnlyFans API CDN (max file size: 500MB)

  ### Media Vault
  - **Delete Vault Media** - Delete one or multiple media from your vault
  - **Get Many** - List media items stored in your vault

  ### Media Vault List
  - **Add Media To List** - Add one or multiple media to a list
  - **Create Vault List** - Create a new Vault list
  - **Delete Vault List** - Delete a Vault list
  - **Get Many** - List your Vault lists (categories)
  - **Remove Media From List** - Remove one or multiple media from a list
  - **Rename Vault List** - Rename a Vault list
  - **Show Vault List** - Show a Vault list

  ### Notification
  - **Get Many** - List many notifications for the account
  - **Get Notification Counts** - Get a quick overview of all unread notification types
  - **Get Notification Tabs Order** - Get the order of an account's notification tabs
  - **Mark All Notifications As Read** - Mark all notifications of this account as read
  - **Search Users In Notifications** - Search users that have appeared in your notifications
  - **Update Notification Tabs Order** - Update the order of an account's notification tabs

  ### Payout
  - **Get Account Balances** - Get the current available and pending balances for the account
  - **Get Earning Statistics** - Get total and monthly time-series earning statistics for the account
  - **Get Eligibility** - Get the eligibility details for receiving payouts
  - **List Payout Requests** - List all payout requests for the account
  - **List Transactions (Earnings)** - List all transactions for the account
  - **Request Manual Withdrawal** - Request a payout withdrawal, if the frequency is set to manual
  - **Update Payout Frequency** - Update the payout frequency for the account (Manual, Weekly or Monthly)

  ### Post
  - **Archive Post** - Archive a post from your account
  - **Delete Post** - Delete a post from your account
  - **Get** - Retrieve details of a post from your account
  - **Get Many** - Get posts from your OnlyFans account
  - **Pin/Unpin Post** - Pin or unpin a post to your account
  - **Send Post** - Compose and send a new post to your OnlyFans account
  - **Show Post Statistics** - Get statistics for a specific post
  - **Unarchive Post** - Unarchive a post from your account
  - **Update Post** - Update a posted, queued, or "saved for later" post

  ### Post Comment
  - **Create Comment** - Create a comment on one of your posts
  - **Delete Comment** - Delete a comment on one of your posts
  - **Get Many** - Get comments from one of your posts
  - **Like Comment** - Like a comment on one of your posts
  - **Pin Comment** - Pin a comment on one of your posts
  - **Unlike Comment** - Unlike a comment on one of your posts
  - **Unpin Comment** - Unpin a comment from one of your posts

  ### Post Label
  - **Create Label** - Create a new post label
  - **Get Many** - List the labels that you can use to organize your posts

  ### Public Profile
  - **Get** - Get profile details by username
  - **Search** - Full-text search for profiles with filters

  ### Queue
  - **Count Items** - Count posts and messages in the queue
  - **Get Many** - List posts and messages in the queue
  - **Publish Item** - Publish a queue item or "saved for later" item immediately

  ### Saved For Later Message
  - **Disable Automatic Messaging** - Disable automatic messaging of Saved For Later messages
  - **Enable Automatic Messaging** - Enable or update automatic messaging of Saved For Later messages
  - **Get Many** - List many messages that are marked as "Save For Later"
  - **Get Settings** - Get the Saved For Later message settings

  ### Saved For Later Post
  - **Disable Automatic Posting** - Disable automatic posting of Saved For Later posts
  - **Enable Automatic Posting** - Enable or update automatic posting of Saved For Later posts
  - **Get Many** - List many posts that are marked as "Save For Later"
  - **Get Settings** - Get the Saved For Later post settings

  ### Setting
  - **Check Username Availability** - Check if a username is taken
  - **Get Settings** - Returns the account settings
  - **Update Profile** - Update the account profile

  ### Statistic
  - **Calculate Total Transactions** - Calculate the total transactions and amounts
  - **Get Earnings** - Get the earnings for a given period
  - **Get Profile Visitors** - Get the number of profile visitors for a given period
  - **Get Subscriber Metrics** - Get subscriber metrics for a given period
  - **Get Subscriber Statistics** - Get subscriber statistics for a given period
  - **Overview** - Get an overview of statistics

  ### Tracking Link
  - **Create** - Create a new tracking link
  - **Delete** - Delete a tracking link
  - **Get Many** - List many tracking links for the account with revenue data
  - **Get Spenders** - Get list of spenders who made purchases through a tracking link
  - **Get Subscribers** - Get list of subscribers who joined through a tracking link

  ### Transaction
  - **Get Many** - Get a paginated list of transactions for an account (newest first)

  ### User
  - **Get** - Get OnlyFans profile details for a given username

  ### User List
  - **Add Users to User List** - Add multiple Users To OnlyFans User List
  - **Create User List** - Create a OnlyFans User List
  - **Delete User List** - Delete a OnlyFans User List
  - **Get** - Get a single user list
  - **Get Many** - Get a list of OnlyFans Collections - User Lists
  - **Get Users in List** - Get all users in a OnlyFans user list
  - **Remove User From a User List** - Remove User from OnlyFans User List
  - **Update User List** - Update a OnlyFans User List

  ### Webhook
  - **Create** - Create a new webhook for your team
  - **Delete** - Delete an existing webhook

  ## Credentials

  To make use of the OnlyFans API node, you must have an OnlyFans API account. Follow these simple steps:
  1. Sign up for an account at [OnlyFans API](https://app.onlyfansapi.com)
  2. Go to the OnlyFans API console -> API Keys
      ![API Keys navigation item](/images/api-keys/api-keys-nav-item.png)
  3. Create a new API key
      ![Create API Key button](/images/api-keys/create-api-key-button.png)
  4. Give it a name, and press "Add"
      ![API Key creation form](/images/api-keys/api-key-creation-form.png)
  5. Copy the API key to your clipboard
      ![Save API Key](/images/api-keys/save-api-key.png)
  6. In n8n, create a new credential for the OnlyFans API node, and paste the API key into the "API Key" field.

  ## Compatibility
  Tested with n8n version 1.115.0 and above. Earlier versions may work but are not officially supported.

  ## Usage
  ### Getting Started with n8n

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

  ### Understanding OnlyFans API

  Before using this node, we recommend familiarizing yourself with the [OnlyFans API documentation](https://docs.onlyfansapi.com/introduction) to understand:

  - What OnlyFans API is and what it offers
  - The available features and capabilities
  - How to work with OnlyFans accounts
  - Best practices for API usage

  The OnlyFans API platform provides a comprehensive REST API that allows you to interact with OnlyFans without needing to build your own proxy management system or reverse engineer the API. With this n8n node, you can easily integrate these capabilities into your automated workflows.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [OnlyFans API introduction](https://docs.onlyfansapi.com/introduction)
  * [Connecting an OnlyFans account](https://docs.onlyfansapi.com/introduction/guides/connect-onlyfans-account)
  * [OnlyFans API credit structure](https://docs.onlyfansapi.com/introduction/essentials/credits)
  * [API reference](https://docs.onlyfansapi.com/api-reference)
  * [Webhooks](https://docs.onlyfansapi.com/webhooks)
  * [FAQ](https://docs.onlyfansapi.com/faq)

  ## Version history
  ### 0.1
  - Initial release with support for all OnlyFans API resources and operations.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of OnlyFans workflows by providing access to the unofficial OnlyFans API for managing accounts, fans, media, messaging, and banking operations.","capabilities":["Manage OnlyFans accounts (create, disconnect, re-authenticate)","Retrieve account profile details and model start dates","List and manage fans (active, expired, latest)","Handle chat interactions (messages, media, notifications)","Send and manage mass messages","Manage media vault and CDN uploads (up to 500MB)","Configure banking and payout details","Generate and manage free trial links","Monitor chargeback statistics and ratios","Create client sessions for embedded authentication"],"authentication":"API Key required","commonUseCases":["Automated content distribution via mass messaging","Fan engagement and management workflows","Media organization and CDN uploads","Banking and tax compliance automation","Free trial link subscriber tracking"],"limitations":["Unofficial API (may not be fully supported by OnlyFans)","Chat message deletion limited to messages sent within 24 hours","Media upload size limit of 500MB","Free trial link features require prior scraping of subscribers"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code Node"]}


node_type: @mookielianhd/n8n-nodes-instagram.instagram
package_name: @mookielianhd/n8n-nodes-instagram
display_name: Instagram
description: Publish media to Instagram using Facebook Graph API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: mookielian
author_github_url: https://github.com/MookieLian/n8n-nodes-instagram.git
npm_package_name: @mookielianhd/n8n-nodes-instagram
npm_version: 3.4.0
community_fetched_at: 2026-07-14T14:40:33.416Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Auth",
          "value": "auth",
          "description": "Exchange and refresh Instagram access tokens; call /me"
        },
        {
          "name": "Carousel",
          "value": "carousel",
          "description": "Publish a carousel (album) post with up to 10 images or videos"
        },
        {
          "name": "Comment",
          "value": "comments",
          "description": "Moderate comments on Instagram media"
        },
        {
          "name": "IG Hashtag",
          "value": "igHashtag",
          "description": "Search hashtags and fetch top or recent media for a hashtag"
        },
        {
          "name": "IG User",
          "value": "igUser",
          "description": "Read profile and media for an Instagram Business or Creator account"
        },
        {
          "name": "Image",
          "value": "image",
          "description": "Publish image posts to Instagram"
        },
        {
          "name": "Messaging",
          "value": "messaging",
          "description": "Send direct messages via the Instagram Messaging API"
        },
        {
          "name": "Page",
          "value": "page",
          "description": "Work with the connected Facebook Page and its Instagram account"
        },
        {
          "name": "Reel",
          "value": "reels",
          "description": "Publish Reels videos to Instagram"
        },
        {
          "name": "Story",
          "value": "stories",
          "description": "Publish story videos to Instagram"
        }
      ],
      "required": true,
      "description": "Select what you want to do with the Instagram API",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish",
          "description": "Publish the selected media type (image, reel, or story) to Instagram"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image",
            "reels",
            "stories"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInstagramAccount",
      "options": [
        {
          "name": "Get Instagram Account",
          "value": "getInstagramAccount",
          "action": "Get instagram account",
          "description": "Get the Instagram business/creator account connected to a Facebook Page"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish",
          "description": "Publish a carousel (album) post with up to 10 images or videos"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "carousel"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete",
          "value": "deleteComment",
          "action": "Delete a comment",
          "description": "Delete a comment from an Instagram media object"
        },
        {
          "name": "Disable Comments",
          "value": "disableComments",
          "action": "Disable comments on media",
          "description": "Disable comments on an Instagram media object"
        },
        {
          "name": "Enable Comments",
          "value": "enableComments",
          "action": "Enable comments on media",
          "description": "Enable comments on an Instagram media object"
        },
        {
          "name": "Hide",
          "value": "hideComment",
          "action": "Hide a comment",
          "description": "Hide a comment from an Instagram media object"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List comments",
          "description": "List comments on an Instagram media object"
        },
        {
          "name": "Send Private Reply",
          "value": "sendPrivateReply",
          "action": "Send a private reply",
          "description": "Send a private reply message to a commenter using the comment ID"
        },
        {
          "name": "Unhide",
          "value": "unhideComment",
          "action": "Unhide a comment",
          "description": "Unhide a previously hidden comment"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "comments"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get IG user",
          "description": "Get basic profile information for an Instagram Business or Creator account"
        },
        {
          "name": "Get Media",
          "value": "getMedia",
          "action": "Get media",
          "description": "List media objects owned by an Instagram Business or Creator account"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "igUser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "refreshAccessToken",
      "options": [
        {
          "name": "Exchange Access Token",
          "value": "exchangeAccessToken",
          "action": "Exchange short lived token",
          "description": "Exchange a short-lived Instagram User access token for a long-lived token using the Instagram Platform access token endpoint"
        },
        {
          "name": "Get Me",
          "value": "getMe",
          "action": "Get me profile",
          "description": "Call the Graph API /me endpoint using the access token from the Instagram API credential"
        },
        {
          "name": "Refresh Access Token",
          "value": "refreshAccessToken",
          "action": "Refresh access token",
          "description": "Refresh a long-lived Instagram User access token using the Instagram Platform refresh endpoint"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "auth"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search hashtags",
          "description": "Search for a hashtag by name and return its ID"
        },
        {
          "name": "Get Recent Media",
          "value": "getRecentMedia",
          "action": "Get recent media for hashtag",
          "description": "Get the most recent media tagged with a hashtag"
        },
        {
          "name": "Get Top Media",
          "value": "getTopMedia",
          "action": "Get top media for hashtag",
          "description": "Get the most popular media tagged with a hashtag"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "igHashtag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send direct message",
          "description": "Send a text message to an Instagram user via the Messaging API"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "messaging"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish",
      "description": "Publish the selected media type (image, reel, or story) to Instagram",
      "resource": "image"
    },
    {
      "name": "Get Instagram Account",
      "value": "getInstagramAccount",
      "action": "Get instagram account",
      "description": "Get the Instagram business/creator account connected to a Facebook Page",
      "resource": "page"
    },
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish",
      "description": "Publish a carousel (album) post with up to 10 images or videos",
      "resource": "carousel"
    },
    {
      "name": "Delete",
      "value": "deleteComment",
      "action": "Delete a comment",
      "description": "Delete a comment from an Instagram media object",
      "resource": "comments"
    },
    {
      "name": "Disable Comments",
      "value": "disableComments",
      "action": "Disable comments on media",
      "description": "Disable comments on an Instagram media object",
      "resource": "comments"
    },
    {
      "name": "Enable Comments",
      "value": "enableComments",
      "action": "Enable comments on media",
      "description": "Enable comments on an Instagram media object",
      "resource": "comments"
    },
    {
      "name": "Hide",
      "value": "hideComment",
      "action": "Hide a comment",
      "description": "Hide a comment from an Instagram media object",
      "resource": "comments"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List comments",
      "description": "List comments on an Instagram media object",
      "resource": "comments"
    },
    {
      "name": "Send Private Reply",
      "value": "sendPrivateReply",
      "action": "Send a private reply",
      "description": "Send a private reply message to a commenter using the comment ID",
      "resource": "comments"
    },
    {
      "name": "Unhide",
      "value": "unhideComment",
      "action": "Unhide a comment",
      "description": "Unhide a previously hidden comment",
      "resource": "comments"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get IG user",
      "description": "Get basic profile information for an Instagram Business or Creator account",
      "resource": "igUser"
    },
    {
      "name": "Get Media",
      "value": "getMedia",
      "action": "Get media",
      "description": "List media objects owned by an Instagram Business or Creator account",
      "resource": "igUser"
    },
    {
      "name": "Exchange Access Token",
      "value": "exchangeAccessToken",
      "action": "Exchange short lived token",
      "description": "Exchange a short-lived Instagram User access token for a long-lived token using the Instagram Platform access token endpoint",
      "resource": "auth"
    },
    {
      "name": "Get Me",
      "value": "getMe",
      "action": "Get me profile",
      "description": "Call the Graph API /me endpoint using the access token from the Instagram API credential",
      "resource": "auth"
    },
    {
      "name": "Refresh Access Token",
      "value": "refreshAccessToken",
      "action": "Refresh access token",
      "description": "Refresh a long-lived Instagram User access token using the Instagram Platform refresh endpoint",
      "resource": "auth"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search hashtags",
      "description": "Search for a hashtag by name and return its ID",
      "resource": "igHashtag"
    },
    {
      "name": "Get Recent Media",
      "value": "getRecentMedia",
      "action": "Get recent media for hashtag",
      "description": "Get the most recent media tagged with a hashtag",
      "resource": "igHashtag"
    },
    {
      "name": "Get Top Media",
      "value": "getTopMedia",
      "action": "Get top media for hashtag",
      "description": "Get the most popular media tagged with a hashtag",
      "resource": "igHashtag"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send direct message",
      "description": "Send a text message to an Instagram user via the Messaging API",
      "resource": "messaging"
    }
  ]

npm_readme:
  ![Banner image](assets/banner_instagram_node.jpeg)

  # @mookielianhd/n8n-nodes-instagram

  This package’s Instagram nodes for n8n let you publish and manage content, moderate comments, send DMs, and react to real-time events (comments, messages, mentions, story insights, etc.) on Instagram Business and Creator accounts via the Facebook/Instagram Graph API.

  All functionality is built on the Facebook/Instagram Graph API, including media publishing (images, Reels, Stories, carousels), comment moderation, private replies, messaging, hashtag search, IG User/Page helpers, and webhook-based triggers for Business and Creator accounts.

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

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

  ## Installation

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

  ## Operations

  The node exposes several resources:

  | Resource | Description |
  | --- | --- |
  | `Image` | Publish a single image with an optional caption. Uses the two-step container → publish flow. Supports alt text, location, user tags, and product tags. |
  | `Reels` | Publish a reel video. Handles container polling until the video is processed before publishing. Supports product tags and **Trial Reels** via `trial_params`. |
  | `Stories` | Publish a story video using the same logic as reels with `media_type=STORIES`. |
  | `Carousel` | Publish a carousel (album) post with up to 10 images and/or videos. The node creates child containers, builds a carousel container, waits for it to be ready, then publishes it. Includes detailed per-item error reporting and progress messages. |
  | `Comments` | List comments on media, hide/unhide or delete individual comments, disable/enable comments on media, and send **private replies** to commenters. |
  | `IG User` | Read basic profile data for an Instagram Business/Creator account and list its media using the IG User Graph API. |
  | `IG Hashtag` | Search for hashtags by name and fetch top or recent media for a hashtag with paging and limit/return-all support. |
  | `Messaging` | Send direct messages (DMs) to Instagram users via the Instagram Messaging API. |
  | `Page` | Given a Facebook Page ID, fetch the connected Instagram Business/Creator account (`instagram_business_account`). |
  | `Auth` | Exchange short-lived Instagram User tokens for long-lived tokens, refresh long-lived tokens, and call the Graph API `/me` endpoint. |
  | **Instagram Trigger** | **Trigger:** receive real-time webhook events from Meta (comments, messages, mentions, story insights, etc.) and run a workflow for each event. Requires a separate **Instagram Webhook** credential (App Secret) and Meta App Dashboard webhook configuration. |

  ## Credentials

  Create an **Instagram API** credential that stores a long-lived Facebook Graph API user access token with at least:

  * `instagram_basic`
  * `pages_show_list`
  * `instagram_content_publish`
  * `pages_read_engagement`
  * `instagram_manage_comments` (or `instagram_business_manage_comments` if using Instagram Login)
  Steps:

  1. Make sure the Instagram account is a Business/Creator account connected to a Facebook Page.  
  2. Use Meta’s Graph Explorer or your own app to generate an access token that includes the scopes listed above.  
  3. Convert it to a long-lived token and paste it into the credential’s **Access Token** field.  
  4. The built-in credential test hits `https://graph.facebook.com/v22.0/me` to confirm the token works.

  ### Instagram Webhook Trigger credentials

  For the **Instagram Trigger** node you need a separate **Instagram Webhook** credential that stores your Meta **App Secret** (from App Dashboard → Settings → Basic). The App Secret is used to verify the `X-Hub-Signature-256` header on incoming webhook POSTs from Meta. The **Verify Token** is set in the node parameters (see below) and must match the value you enter in the Meta App Dashboard when configuring the webhook URL.

  ## Instagram Webhook Trigger

  This package’s Instagram nodes for n8n let you publish and manage content, moderate comments, send DMs, and react to real-time events (comments, messages, mentions, story insights, etc.) on Instagram Business and Creator accounts via the Facebook/Instagram Graph API.

  The **Instagram Trigger** node listens for real-time webhook events from Meta and starts a workflow when an event is received.

  ### Setup

  1. **Create the credential**  
     Add an **Instagram Webhook** credential and enter your Meta **App Secret** (from your app’s Settings → Basic in the Meta App Dashboard).

  2. **Add the trigger to your workflow**  
     Add the **Instagram Trigger** node. Set **Verify Token** to any string you will use in the Meta Dashboard (e.g. a random secret). Copy the **Webhook URL** shown in the node (Production or Test URL).

  3. **Configure Webhooks in Meta App Dashboard**  
     - In [Meta for Developers](https://developers.facebook.com/), open your app and go to **Webhooks** (or add the Webhooks product).  
     - For **Instagram**, set:  
       - **Callback URL**: paste the n8n Webhook URL from the trigger node.  
       - **Verify Token**: the same string you set in the node’s **Verify Token** parameter.  
     - Subscribe to the Instagram fields you need (e.g. `comments`, `messages`, `mentions`, `story_insights`).  
     - Save. Meta will send a GET request to your URL; the node responds with the challenge so verification succeeds.

  4. **Optional: filter events**  
     Use **Events to Include** on the node to pass only selected event types (e.g. only `messages` and `mentions`) to the workflow. If left empty, all received events are output.

  Each event is output as an item with `object`, `field`, `value`, `id`, `time` and the raw change payload, so you can use the **Instagram** node (e.g. Messaging, Comments) in the same workflow to reply or moderate. To return a custom response to the caller instead of the default 200 OK, add a **Respond to Webhook** node after the trigger.

  ## Compatibility

  - Built and tested against **n8n 2.6.x–2.8.x**.  
  - Declares a peer dependency on **`n8n-workflow >=2.6.1`** (the first secure stream-enabled version suggested by Snyk).  
  - Requires n8n with community nodes enabled (recommended `>=2.x`).  
  - Uses only built-in n8n dependencies, so it is Cloud-compatible.

  ## Usage

  ### Publishing media (Image / Reels / Stories)

  1. Add the **Instagram** node to your workflow and select one of the resources (`Image` / `Reels` / `Stories`).  
  2. Provide the Instagram Business Account ID (the `Node` parameter), media URL and caption.  
  3. The node first creates the media container, polls Graph API until processing completes, then triggers `media_publish`.  
  4. For long-running uploads (large videos), the node uses robust polling and retry logic and surfaces progress via the n8n execution logs (for example, when publishing Reels or Trial Reels).  
  5. Handle any errors returned by the API (rate limits, permissions, validation) via the node’s error output or `Continue On Fail`.

  ### Publishing carousel posts (Carousel)

  1. Add the **Instagram** node and set **Resource** to `Carousel`, **Operation** to `Publish`.  
  2. Provide:
     - `Node` – the IG User ID to publish from.  
     - `Graph API Version` – for example `v24.0`.  
     - `Caption` – the carousel caption.  
     - `Carousel Media` – 2–10 items, each with:
       - `Media Type` – `Image` or `Video`.  
       - `Image URL` or `Video URL` – public URLs Meta can fetch.  
  3. The node:
     - Creates one child container per image/video (`is_carousel_item=true` for each).  
     - Waits for each child container to become ready.  
     - Creates a carousel container (`media_type=CAROUSEL`, `children=<child_ids>`) with the caption.  
     - Waits for the carousel container to be ready, then calls `/{ig-user-id}/media_publish`.  
  4. Errors during any step are annotated with **which child item failed** (for example, “Carousel item 3 (video)…”), making it easier to debug problematic URLs.

  ### Comment moderation and private replies (Comments)

  1. Add the **Instagram** node and set **Resource** to `Comments`.  
  2. Choose an **Operation**:
     - `List` – fetch comments for a given media ID.  
     - `Hide` / `Unhide` / `Delete` – moderate a specific comment by its comment ID.  
     - `Disable Comments` / `Enable Comments` – toggle comments on a media object by its media ID.  
     - `Send Private Reply` – send a private reply message to a commenter using their comment ID.  
  3. Provide the required IDs:
     - `Media ID` for listing comments or enabling/disabling comments.  
     - `Comment ID` for hide/unhide/delete/private reply operations.  
  4. For **Send Private Reply**, also fill in:
     - `Node` – the Instagram professional account ID that owns the commented media.  
     - `Message` – the private reply text that will be sent to the commenter’s inbox/request folder (subject to the 7‑day and messaging window rules defined by Meta).  

  ### Reading IG User profile and media (IG User)

  1. Add the **Instagram** node and set **Resource** to `IG User`.  
  2. Choose an **Operation**:
     - `Get` – fetch basic profile information for an Instagram Business/Creator account (username, name, bio, website, media_count, followers/follows, profile picture URL).  
     - `Get Media` – list media owned by that account, including media type, URLs, caption, permalink, timestamp and username.  
  3. Provide:
     - `Node` – the IG User ID of the professional account you want to read (or `me` if your credential token belongs to that account).  
     - `Graph API Version` – the Graph version to use (for example `v24.0`).  

  ### Searching hashtags and fetching hashtag media (IG Hashtag)

  1. Add the **Instagram** node and set **Resource** to `IG Hashtag`.  
  2. Choose an **Operation**:
     - `Search` – look up a hashtag by name and get its global hashtag ID.  
     - `Get Recent Media` – get the most recently published media tagged with a hashtag.  
     - `Get Top Media` – get the most popular media tagged with a hashtag.  
  3. For **Search**, provide:
     - `Node` – the IG User ID performing the query.  
     - `Hashtag Name` – the hashtag name, without `#`.  
  4. For **Get Recent Media** / **Get Top Media**, provide:
     - `Node` – the IG User ID performing the query.  
     - `Hashtag ID` – the ID returned from the search operation.  
     - `Return All` / `Limit` – choose whether to fetch all available media (within a safety cap) or only up to a limit.  

  ### Sending direct messages (Messaging)

  1. Add the **Instagram** node and set **Resource** to `Messaging`.  
  2. Choose **Operation** `Send Message`.  
  3. Provide:
     - `Node` – the IG professional account ID that will send the message.  
     - `Graph API Version` – the Graph version to use (for example `v24.0`).  
     - `Recipient IG User ID` – the Instagram-scoped user ID (IGSID) of the recipient, typically obtained from Messaging webhook events.  
     - `Message Text` – the text body of the direct message.  

  ### Token exchange, refresh and `/me` (Auth)

  1. Add the **Instagram** node and set **Resource** to `Auth`.  
  2. Choose an **Operation**:
     - `Exchange Access Token` – exchange a **short-lived** Instagram User access token for a **long-lived** token.  
     - `Refresh Access Token` – refresh an existing long-lived token using the Instagram Platform refresh endpoint.  
     - `Get Me` – call the Graph API `/me` endpoint using the `instagramApi` credential’s access token.  
  3. For **Exchange Access Token**, provide:
     - `Short-Lived Access Token` – the short-lived token from your login flow.  
     - `App Secret` – the Instagram App Secret from your Meta App Dashboard.  
  4. For **Refresh Access Token**, optionally provide:
     - `Access Token` – the long-lived token to refresh. Leave empty to use the token from the credential.  
  5. For **Get Me**, the node uses a fixed, versioned `/me` URL under the hood and does **not** depend on any UI parameters, so older workflows remain compatible.

  ### Getting the Instagram account for a Facebook Page (Page)

  1. Add the **Instagram** node and set **Resource** to `Page`, **Operation** to `Get Instagram Account`.  
  2. Provide:
     - `Graph API Version` – for example `v24.0`.  
     - `Page ID` – the Facebook Page ID that is linked to your Instagram professional account.  
  3. The node calls:
     - `GET /{page-id}?fields=instagram_business_account`
     and returns the `instagram_business_account` object (including the Instagram User ID) so you can feed it into other resources (Image/Reels/Stories/Carousel/IG User).

  ### Trial Reels (Reels with `trial_params`)

  1. Add the **Instagram** node and set **Resource** to `Reels`, **Operation** to `Publish`.  
  2. Under **Additional Fields**, set **Trial Reel – Graduation Strategy**:
     - `MANUAL` – you will decide in the Instagram app when (or if) to graduate the trial reel.  
     - `SS_PERFORMANCE` – Instagram will automatically graduate the trial reel if it performs well.  
  3. The node sends a `trial_params` JSON object in the create-container request, as documented in the IG User Media reference.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)  
  * [Instagram Graph API - Publishing](https://developers.facebook.com/docs/instagram-api/reference/ig-user/media)  
  * [Video/Reels publishing guide](https://developers.facebook.com/docs/instagram-api/guides/content-publishing/reels/)  
  * [Comment Moderation](https://developers.facebook.com/docs/instagram-platform/comment-moderation)  
  * [Private Replies](https://developers.facebook.com/docs/instagram-platform/private-replies)  
  * [IG User](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user)  
  * [IG Hashtag Search](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-hashtag-search/)  
  * [IG Hashtag Recent Media](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-hashtag/recent-media/)  
  * [IG Hashtag Top Media](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-hashtag/top-media/)  
  * [Instagram Messaging API](https://developers.facebook.com/docs/messenger-platform/instagram/features/)  
  * [Instagram Platform Access Token](https://developers.facebook.com/docs/instagram-platform/reference/access_token/)  
  * [Instagram Platform Refresh Access Token](https://developers.facebook.com/docs/instagram-platform/reference/refresh_access_token/)  
  * [Instagram Platform /me](https://developers.facebook.com/docs/instagram-platform/reference/me/)  
  * [Webhooks from Meta (getting started)](https://developers.facebook.com/docs/graph-api/webhooks/getting-started)  
  * [Instagram webhook reference](https://developers.facebook.com/docs/graph-api/webhooks/reference/instagram)

  ## Version history

  | Version | Notes |
  | --- | --- |
  | 3.1.1 | Fixes overlapping description text in the node UI; documentation/layout-only cleanup with no runtime behavior changes. |
  | 3.1.0 | Sets `skipSignatureVerification` to `true` by default for the Instagram Trigger node and ensures webhook executions are correctly registered. |
  | 3.0.0 | Introduces the Instagram Trigger node for webhook-based events (comments, messages, mentions, story insights) and updates underlying dependencies. |
  | 2.6.2 | Documentation-only release. Adds or updates `CONTRIBUTING.md` contributor guidance and refreshes this README to reflect recent changes; does not modify runtime behavior or node functionality. |
  | 2.6.1 | Patch release that keeps all execution-time, polling and error-reporting improvements from 2.6.0 and updates docs/readme to reflect the current behavior and supported resources. |
  | 2.6.0 | Shortens polling intervals across resources, adds general execution time optimizations, introduces URL validation before making Graph API calls, and adds more detailed error messages to make debugging easier. |
  | 2.5.4 | Further shortens the container health polling interval in the **Reels** resource to reduce average execution time when publishing videos. |
  | 2.5.3 | Adds `CODE_OF_CONDUCT.md` and `LICENSE`. This is a documentation/compliance update and does not change runtime behavior. |
  | 2.5.2 | Bumps the required `n8n-workflow` peer dependency to `>=2.6.1` to address security advisories (arbitrary file upload, RCE, prototype pollution, etc.) and updates the README to describe the latest features. |
  | 2.5.1 | Introduces the `Page` resource to retrieve the connected Instagram Business/Creator account for a Facebook Page and adds the **Trial Reel – Graduation Strategy** option for Reels (via `trial_params`), alongside the first stable release of Carousel publishing, extended tagging options, and streaming-style progress messages. |
  | 2.4.0 | Adds `IG Hashtag` (search, recent media, top media), `Messaging` (send DMs), and `Auth` helpers for token exchange/refresh and `/me`. |
  | 2.3.0 | Adds `Comments` resource with comment moderation (list/hide/unhide/delete, enable/disable comments) and **Private Replies** support, and an `IG User` resource for reading profile data and listing media. |
  | 2.2.0 | Improves publishing UX and adds alt text, location ID, user tags, and product tags support for media publishing. |
  | 2.1.0 | Stable release of Instagram publishing (Image/Reels/Stories) using the container → publish flow with robust polling and error handling. |
  | 0.1.0 | Initial release with Image, Reels and Stories publishing & built-in container polling. |

ai_documentation_summary:
  {"purpose":"This n8n node package enables publishing media, managing comments, sending DMs, and reacting to real-time events on Instagram Business and Creator accounts via the Facebook/Instagram Graph API.","capabilities":["Publish single images with captions, alt text, location, and tags","Publish Reels and Stories with product tags and trial support","Publish carousels (albums) with up to 10 media items","List, hide, delete, and moderate comments on media","Send private replies to commenters","Read profile data and list media for IG User accounts","Search hashtags and fetch top or recent media","Send direct messages (DMs) to users","Fetch connected Instagram accounts from Facebook Page IDs","Manage authentication tokens (short-lived to long-lived exchange)"],"authentication":"Long-lived Facebook Graph API user access token with specific scopes (instagram_basic, pages_show_list, instagram_content_publish, pages_read_engagement, instagram_manage_comments); Webhook triggers require Meta App Secret.","commonUseCases":["Automated social media posting schedules for images, reels, and carousels","Automated comment moderation and private replies","Real-time monitoring and workflow triggers for new comments or messages","Hashtag research and content discovery","Direct messaging automation for customer engagement"],"limitations":["Requires Instagram Business or Creator account connected to a Facebook Page","Webhook triggers require manual configuration in Meta App Dashboard","Carousel publishing requires handling container polling and child container creation","Reels and Stories require container polling before publishing"],"relatedNodes":["n8n Webhook","n8n Facebook","n8n HTTP Request"]}


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

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

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

npm_readme:
  # n8n-nodes-air

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

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

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

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

  ## Installation

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



  ## Operations


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

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

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

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

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

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

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

  ## Credentials

  Air's API uses:

  \- x-api-key

  \- x-air-workspace-id

  ## Compatibility

  _No known compatibility issues._

  ## Usage
      
  ### Basic Upload Workflow

  Steps to upload assets using binary input.

  ### Metadata Enrichment

  Fetch assets, enrich metadata, update Air.

  ### Board Syncing

  Sync boards with data from project tools.

  ## Compatibility

  \- Works with modern n8n 1.x builds.

  \- Best for self-hosted installations.

  ## Resources

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


  ## Version history

  _See CHANGELOG.md for version notes._

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


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-07-14 14:40:33
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-07-14T14:40:33.418Z
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: n8n-nodes-neo.neo
package_name: n8n-nodes-neo
display_name: docunite® NEO
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: patrickpenn
author_github_url: https://github.com/docunite/neo-n8n-node.git
npm_package_name: n8n-nodes-neo
npm_version: 0.1.9
community_fetched_at: 2026-07-14T14:40:33.419Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Manage documents and use AI features with the docunite® NEO API. Supports upload, OCR extraction, classification, enrichment, chat and more. Perfect for automated document processing and intelligent data extraction.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Entity",
          "value": "entity"
        },
        {
          "name": "Webhook",
          "value": "webhook"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBalance",
      "options": [
        {
          "name": "Get Balance",
          "value": "getBalance",
          "action": "Get balance",
          "description": "Retrieve the credit balance of the current tenant"
        },
        {
          "name": "Get Usage",
          "value": "getUsage",
          "action": "Get usage",
          "description": "Retrieve usage data with daily, monthly, and yearly breakdowns"
        },
        {
          "name": "Get Usage With Process Steps",
          "value": "getUsageWithProcessSteps",
          "action": "Get usage with process steps",
          "description": "Retrieve detailed usage information with process step breakdowns"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload document",
          "description": "Upload and process documents"
        },
        {
          "name": "Get document",
          "value": "get",
          "action": "Get document",
          "description": "Get a document by ID"
        },
        {
          "name": "Get document batch",
          "value": "getBatch",
          "action": "Get batch documents",
          "description": "Get documents by correlation ID f.e. extracted attachments from a document"
        },
        {
          "name": "Get Document PDF Blob",
          "value": "getBlob",
          "action": "Get document blob",
          "description": "Get a PDF version of the document blob"
        },
        {
          "name": "Get Document Original Blob",
          "value": "getBlobOriginal",
          "action": "Get original blob",
          "description": "Get a original version of the document blob"
        },
        {
          "name": "Get Document OCR",
          "value": "getContent",
          "action": "Get OCR content",
          "description": "Get document OCR content"
        },
        {
          "name": "Get Document Markdown",
          "value": "getMarkdown",
          "action": "Get markdown content",
          "description": "Get document markdown content"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete documents",
          "description": "Delete documents"
        },
        {
          "name": "Chat",
          "value": "chat",
          "action": "Chat with documents",
          "description": "Chat with documents using AI"
        },
        {
          "name": "Classify",
          "value": "classify",
          "action": "Classify documents",
          "description": "Classify documents"
        },
        {
          "name": "Enrichment",
          "value": "enrichment",
          "action": "Enrich documents",
          "description": "Initiate document enrichment"
        },
        {
          "name": "Extraction",
          "value": "extraction",
          "action": "OCR documents",
          "description": "Extract OCR from documents"
        },
        {
          "name": "Split",
          "value": "split",
          "action": "Split documents",
          "description": "Split documents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create entity",
          "description": "Create a new entity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete entity",
          "description": "Delete an entity"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get entity",
          "description": "Get an entity by ID"
        },
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all entities",
          "description": "Get all entities"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update entity",
          "description": "Update an entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "entity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create webhook",
          "description": "Create a new webhook"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete webhook",
          "description": "Delete a webhook"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get webhook",
          "description": "Get a webhook by ID"
        },
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all webhooks",
          "description": "Get all webhooks"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update webhook",
          "description": "Update a webhook"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Balance",
      "value": "getBalance",
      "action": "Get balance",
      "description": "Retrieve the credit balance of the current tenant",
      "resource": "account"
    },
    {
      "name": "Get Usage",
      "value": "getUsage",
      "action": "Get usage",
      "description": "Retrieve usage data with daily, monthly, and yearly breakdowns",
      "resource": "account"
    },
    {
      "name": "Get Usage With Process Steps",
      "value": "getUsageWithProcessSteps",
      "action": "Get usage with process steps",
      "description": "Retrieve detailed usage information with process step breakdowns",
      "resource": "account"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload document",
      "description": "Upload and process documents",
      "resource": "document"
    },
    {
      "name": "Get document",
      "value": "get",
      "action": "Get document",
      "description": "Get a document by ID",
      "resource": "document"
    },
    {
      "name": "Get document batch",
      "value": "getBatch",
      "action": "Get batch documents",
      "description": "Get documents by correlation ID f.e. extracted attachments from a document",
      "resource": "document"
    },
    {
      "name": "Get Document PDF Blob",
      "value": "getBlob",
      "action": "Get document blob",
      "description": "Get a PDF version of the document blob",
      "resource": "document"
    },
    {
      "name": "Get Document Original Blob",
      "value": "getBlobOriginal",
      "action": "Get original blob",
      "description": "Get a original version of the document blob",
      "resource": "document"
    },
    {
      "name": "Get Document OCR",
      "value": "getContent",
      "action": "Get OCR content",
      "description": "Get document OCR content",
      "resource": "document"
    },
    {
      "name": "Get Document Markdown",
      "value": "getMarkdown",
      "action": "Get markdown content",
      "description": "Get document markdown content",
      "resource": "document"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete documents",
      "description": "Delete documents",
      "resource": "document"
    },
    {
      "name": "Chat",
      "value": "chat",
      "action": "Chat with documents",
      "description": "Chat with documents using AI",
      "resource": "document"
    },
    {
      "name": "Classify",
      "value": "classify",
      "action": "Classify documents",
      "description": "Classify documents",
      "resource": "document"
    },
    {
      "name": "Enrichment",
      "value": "enrichment",
      "action": "Enrich documents",
      "description": "Initiate document enrichment",
      "resource": "document"
    },
    {
      "name": "Extraction",
      "value": "extraction",
      "action": "OCR documents",
      "description": "Extract OCR from documents",
      "resource": "document"
    },
    {
      "name": "Split",
      "value": "split",
      "action": "Split documents",
      "description": "Split documents",
      "resource": "document"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create entity",
      "description": "Create a new entity",
      "resource": "entity"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete entity",
      "description": "Delete an entity",
      "resource": "entity"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get entity",
      "description": "Get an entity by ID",
      "resource": "entity"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all entities",
      "description": "Get all entities",
      "resource": "entity"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update entity",
      "description": "Update an entity",
      "resource": "entity"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create webhook",
      "description": "Create a new webhook",
      "resource": "webhook"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete webhook",
      "description": "Delete a webhook",
      "resource": "webhook"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get webhook",
      "description": "Get a webhook by ID",
      "resource": "webhook"
    },
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all webhooks",
      "description": "Get all webhooks",
      "resource": "webhook"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update webhook",
      "description": "Update a webhook",
      "resource": "webhook"
    }
  ]

npm_readme:
  # n8n-nodes-neo

  This is an n8n Community Node for integrating the **docunite® NEO API** by [docunite.com](https://docunite.com/neo).

  **docunite® NEO** is an intelligent document management platform with AI-powered classification, extraction, and processing. This node allows you to use all docunite® NEO API features directly in your n8n workflows.

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

  ## 🚀 Installation

  ### For n8n Cloud Users

  **Note**: This community node will be available in n8n Cloud after it has been verified by n8n. We have submitted it for verification and will update this section once approved.

  Once verified, you will be able to install it directly from the n8n node panel.

  ### For Self-hosted n8n Instances

  You can install this node manually on your self-hosted n8n instance (requires n8n v0.187+):

  #### Option 1: Using Community Nodes Feature

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-neo` in the "Enter npm package name" field
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using Community Nodes
  5. Install the node

  After installation, the docunite® NEO node will be available in your n8n instance.

  #### Option 2: Manual Installation

  For self-hosted n8n instances, you can also install the node manually:

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

  Restart n8n for the changes to take effect.

  ## 🔑 Credentials

  To use the docunite® NEO node, you need:

  1. **API Key**: Your docunite® NEO API Key
  2. **Base URL**: Defaults to `https://api.docunite.ai`

  ### Setting up Credentials

  1. Go to **Credentials > New**
  2. Search for "docunite® NEO API"
  3. Enter your API Key
  4. Save the credentials

  ## 📚 Nodes

  This package provides two nodes:

  ### 1. **docunite® NEO** (Regular Node)
  The main node for API operations.

  ### 2. **docunite® NEO Trigger** (Trigger Node)
  Automatically starts workflows when docunite® NEO sends events.

  ## 📚 Operations

  The **docunite® NEO** node supports the following resources and operations:

  ### 📊 Account Management

  - **Get Balance**: Retrieve credit balance
  - **Get Usage**: Retrieve usage statistics (daily, monthly, yearly)
  - **Get Usage With Process Steps**: Detailed usage information with process step breakdown

  ### 📄 Document Management

  - **Upload**: Upload and process documents
    - Supports automatic classification
    - Intelligent document splitting
    - Custom prompts
    - Optional original path storage
  - **Get**: Retrieve document by ID
  - **Get Batch**: Retrieve documents by correlation ID (e.g., extracted attachments)
  - **Get Document PDF Blob**: Get a PDF version of the document
  - **Get Document Original Blob**: Get the original version of the document
  - **Get Document OCR**: Get document OCR content
  - **Get Document Markdown**: Get document markdown content
  - **Delete**: Delete single document
  - **Chat**: Chat with a document using AI
    - Supports custom prompts
    - Optional chat history
  - **Classify**: Classify documents
    - Custom prompt support
    - Batch processing with file IDs
  - **Enrichment**: Initiate document enrichment
    - Batch processing with file IDs
  - **Extraction**: Extract OCR from documents
    - Batch processing with file IDs
  - **Split**: Split documents into multiple parts
    - Batch processing with file IDs

  ### 🏢 Entity Management

  - **Get All**: Retrieve all entities
  - **Get**: Retrieve entity by ID
  - **Create**: Create new entity
  - **Update**: Update entity
  - **Delete**: Delete entity

  ### 🔔 Webhook Management

  - **Get All**: Retrieve all webhooks
  - **Get**: Retrieve webhook by ID
  - **Create**: Create new webhook
  - **Update**: Update webhook
  - **Delete**: Delete webhook

  ## 💻 Usage Examples

  ### Example 1: Upload and Classify a Document

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "upload",
          "entityId": "your-entity-id",
          "binaryPropertyName": "data",
          "classify": true,
          "splitDocuments": false
        },
        "name": "docunite® NEO - Upload Document",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 2: Chat with a Document

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "chat",
          "documentId": "document-id-here",
          "prompt": "What are the key points in this document?"
        },
        "name": "docunite® NEO - Chat with Document",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 3: Classify Multiple Documents

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "classify",
          "fileIds": "[\"file-id-1\", \"file-id-2\"]",
          "promptId": "your-classification-prompt-id"
        },
        "name": "docunite® NEO - Classify Documents",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 4: Manage Entities

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "entity",
          "operation": "create",
          "entityName": "My Project"
        },
        "name": "docunite® NEO - Create Entity",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ### Example 5: Extract OCR from Documents

  ```json
  {
    "nodes": [
      {
        "parameters": {
          "resource": "document",
          "operation": "extraction",
          "fileIds": "[\"file-id-1\", \"file-id-2\"]"
        },
        "name": "docunite® NEO - Extract OCR",
        "type": "n8n-nodes-neo.neo",
        "credentials": {
          "neoApi": "docunite® NEO API Credentials"
        }
      }
    ]
  }
  ```

  ## 🔔 docunite® NEO Trigger Node

  The **docunite® NEO Trigger** node automatically starts your workflow when NEO sends events.

  ### Features

  - ✅ Automatic webhook registration when activating workflow
  - ✅ Automatic webhook removal when deactivating workflow
  - ✅ Event type filtering (EXTRACTION, CLASSIFICATION, ENRICHMENT)
  - ✅ Secret validation via x-neo-secret header
  - ✅ Test mode support with "Listen for Test Event"
  - ✅ No generic webhook setup required

  ### Configuration

  1. Add the **docunite® NEO Trigger** node to your workflow
  2. Configure credentials (docunite® NEO API)
  3. Select event types to listen for
  4. Set a webhook name
  5. Choose a secret for authentication
  6. Activate the workflow → Webhook is automatically registered in NEO

  ### Test Mode

  Click "Listen for Test Event" to get a test webhook URL. You must manually register this URL in NEO for testing. Secret validation is automatically disabled in test mode.

  ### Production Mode

  When you activate the workflow, the webhook is automatically registered in NEO with the production URL. The webhook is removed when you deactivate the workflow.

  ## 📖 API Documentation

  The complete API documentation can be found at:
  - Swagger UI: [https://api.docunite.ai/](https://api.docunite.ai/)
  - Swagger JSON: [https://api.docunite.ai/swagger.json](https://api.docunite.ai/swagger.json)

  ## 🛠️ Compatibility

  - Tested with n8n v0.187.0+
  - Node.js 18.17.0+
  - n8n-workflow 1.0.0+

  ## 📝 License

  [MIT](LICENSE.md)

  ## 🤝 Support

  For questions or issues:
  - GitHub Issues: [https://github.com/docunite/neo-n8n-node/issues](https://github.com/docunite/neo-n8n-node/issues)
  - docunite Support: [support@docunite.com](mailto:support@docunite.com)

  ## 🔗 Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [docunite.com Website](https://docunite.com)
  - [docunite® NEO API Documentation](https://api.docunite.ai/)

  ## 🌟 Features

  - ✅ Full docunite® NEO API integration for core resources
  - ✅ **NEO Trigger Node** - Automatic workflow starts on NEO events
  - ✅ Account Management (Balance & Usage tracking)
  - ✅ Document Management (Upload, Processing, Chat, OCR, etc.)
  - ✅ Entity Management (Full CRUD operations)
  - ✅ Webhook Management (Full CRUD operations)
  - ✅ API Key authentication
  - ✅ Comprehensive error handling
  - ✅ Binary Data support (Upload/Download)
  - ✅ AI-powered document processing and chat
  - ✅ Batch operations support
  - ✅ Automatic webhook registration and cleanup

  ## 📦 Version History

  ### 0.1.0 (Initial Release)
  - Full integration of core docunite® NEO API endpoints
  - Account Management (Balance, Usage, Usage with Process Steps)
  - Document Management (Upload, Get, Chat, Classify, Enrichment, Extraction, Split, etc.)
  - Entity Management (CRUD operations)
  - Webhook Management (CRUD operations)

  ## 👨‍💻 Development

  If you want to contribute to development:

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

  # Install dependencies
  npm install

  # Build
  npm run build

  # Link to local n8n instance
  npm link
  ```

  Start n8n in development mode:

  ```bash
  n8n start
  ```

  ## ⚠️ Important Notes

  - File uploads use Binary Data from n8n workflows
  - Chat operations support streaming responses
  - All JSON parameters can be set dynamically via n8n expressions
  - Document processing operations support batch processing with file IDs

  ---

  Developed with ❤️ for the n8n community by [docunite GmbH](https://docunite.com)

ai_documentation_summary:
  {"purpose":"This n8n node integrates with the docunite® NEO API to automate document processing tasks including upload, OCR extraction, classification, enrichment, and AI-powered document chat.","capabilities":["Document upload with automatic classification and intelligent splitting","OCR extraction and text retrieval from documents","Document classification with custom prompts","Document enrichment and data extraction","AI-powered document chat and Q&A","Entity management (create, update, delete, retrieve)","Webhook management and event triggering","Usage statistics and balance tracking","Batch processing for multiple documents","PDF and original blob retrieval"],"authentication":"API Key required","commonUseCases":["Automated invoice processing and data extraction","Contract review and clause identification","Document indexing and search optimization","Automated customer support document Q&A","Compliance document classification"],"limitations":["Community node status may affect availability in n8n Cloud until verified","Requires n8n v0.187+ for manual installation","Base URL defaults to https://api.docunite.ai"],"relatedNodes":["docunite® NEO Trigger","HTTP Request","Code"]}


node_type: @neosapience/n8n-nodes-typecast.typecast
package_name: @neosapience/n8n-nodes-typecast
display_name: Typecast
description: Interact with Typecast TTS API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: neosapience-owner
author_github_url: https://github.com/neosapience/n8n-nodes-typecast.git
npm_package_name: @neosapience/n8n-nodes-typecast
npm_version: 1.2.3
community_fetched_at: 2026-07-14T14:40:33.420Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "speech",
      "options": [
        {
          "name": "Speech",
          "value": "speech"
        },
        {
          "name": "Subscription",
          "value": "subscription"
        },
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Clone Voice",
          "value": "clone",
          "action": "Clone a voice",
          "description": "Create a quick-cloned custom voice from an audio sample"
        },
        {
          "name": "Delete Cloned Voice",
          "value": "delete",
          "action": "Delete a cloned voice",
          "description": "Delete a quick-cloned custom voice by ID"
        },
        {
          "name": "Get All Voices",
          "value": "getMany",
          "action": "Get all voices",
          "description": "Get all available voice models"
        },
        {
          "name": "Get Voice",
          "value": "getOne",
          "action": "Get a voice",
          "description": "Get detailed information about a single voice by ID"
        },
        {
          "name": "Recommend Voices",
          "value": "recommend",
          "action": "Recommend voices",
          "description": "Recommend voices from a text description"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "textToSpeech",
      "options": [
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "description": "Convert text to speech using a specified voice"
        },
        {
          "name": "Text to Speech (Streaming)",
          "value": "textToSpeechStream",
          "action": "Convert text to speech streaming",
          "description": "Convert text to speech via the streaming endpoint for low-latency chunked audio delivery"
        },
        {
          "name": "Text to Speech with Timestamps",
          "value": "textToSpeechWithTimestamps",
          "action": "Convert text to speech with timestamps",
          "description": "Convert text to speech and return word/character-level timestamp alignment for caption generation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMy",
      "options": [
        {
          "name": "Get My Subscription",
          "value": "getMy",
          "action": "Get my subscription",
          "description": "Return the authenticated user plan tier, credits, and concurrency limit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subscription"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Clone Voice",
      "value": "clone",
      "action": "Clone a voice",
      "description": "Create a quick-cloned custom voice from an audio sample",
      "resource": "voice"
    },
    {
      "name": "Delete Cloned Voice",
      "value": "delete",
      "action": "Delete a cloned voice",
      "description": "Delete a quick-cloned custom voice by ID",
      "resource": "voice"
    },
    {
      "name": "Get All Voices",
      "value": "getMany",
      "action": "Get all voices",
      "description": "Get all available voice models",
      "resource": "voice"
    },
    {
      "name": "Get Voice",
      "value": "getOne",
      "action": "Get a voice",
      "description": "Get detailed information about a single voice by ID",
      "resource": "voice"
    },
    {
      "name": "Recommend Voices",
      "value": "recommend",
      "action": "Recommend voices",
      "description": "Recommend voices from a text description",
      "resource": "voice"
    },
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Convert text to speech",
      "description": "Convert text to speech using a specified voice",
      "resource": "speech"
    },
    {
      "name": "Text to Speech (Streaming)",
      "value": "textToSpeechStream",
      "action": "Convert text to speech streaming",
      "description": "Convert text to speech via the streaming endpoint for low-latency chunked audio delivery",
      "resource": "speech"
    },
    {
      "name": "Text to Speech with Timestamps",
      "value": "textToSpeechWithTimestamps",
      "action": "Convert text to speech with timestamps",
      "description": "Convert text to speech and return word/character-level timestamp alignment for caption generation",
      "resource": "speech"
    },
    {
      "name": "Get My Subscription",
      "value": "getMy",
      "action": "Get my subscription",
      "description": "Return the authenticated user plan tier, credits, and concurrency limit",
      "resource": "subscription"
    }
  ]

npm_readme:
  # n8n-nodes-typecast

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

  Integrate [Typecast](https://typecast.ai/) AI TTS into your [n8n](https://n8n.io/) workflows with this community node.

  ## Features

  - **Voice Resource**
    - Clone Voice: create a quick-cloned custom voice from a WAV or MP3 binary input
    - Delete Cloned Voice: delete a quick-cloned voice by its `uc_...` voice ID
    - Get All Voices: list voices with `model` / `gender` / `age` / `use_case` filters
    - Get Voice: look up a single voice by ID via the V2 API
    - Recommend Voices: find voice candidates from a text description
  - **Speech Resource**
    - Text to Speech: convert text to speech using a selected voice
    - Text to Speech (Streaming): low-latency chunked audio via `POST /v1/text-to-speech/stream`
    - Text to Speech with Timestamps: audio + word / character alignment for SRT / WebVTT caption generation
  - **Subscription Resource**
    - Get My Subscription: plan tier, credit usage, and concurrency limit at runtime
  - **Output controls**
    - `target_lufs`: absolute loudness normalization (`-70.0 ~ 0.0` LUFS); mutually exclusive with Volume on the non-streaming endpoint

  ## Node Structure

  - Node: `Typecast`
    - Resources: `voice`, `speech`, `subscription`
    - Operations:
      - `voice`: `clone`, `delete`, `getMany`, `getOne`, `recommend`
      - `speech`: `textToSpeech`, `textToSpeechStream`, `textToSpeechWithTimestamps`
      - `subscription`: `getMy`

  ## Credentials Setup

  1. Get your API key from [Typecast Dashboard](https://typecast.ai/developers/api/api-key)
  2. In n8n, add new credentials of type **Typecast API**
  3. Enter your API key

  ## Usage Example

  1. Add the **Typecast** node to your workflow
  2. Select a resource and operation (e.g., Speech > Text to Speech)
  3. Provide required parameters (e.g., Voice ID, Text)
  4. Connect and run your workflow

  ### Quick Cloning Example

  1. Add a node that outputs an audio file as binary data, such as **Read/Write Files from Disk** or an HTTP download node.
  2. Add **Typecast > Voice > Clone Voice**.
  3. Set **Audio Binary Property** to the binary property name from the previous node, usually `data`.
  4. Set **Voice Name** and **Model**, then run the node.
  5. Use the returned `voice_id` (`uc_...`) in a following **Typecast > Speech > Text to Speech** node by selecting Voice ID **By ID**.
  6. When the cloned voice is no longer needed, pass the same `uc_...` ID to **Typecast > Voice > Delete Cloned Voice**.

  ## Installation

  ### Via npm

  ```bash
  npm install @neosapience/n8n-nodes-typecast
  ```

  ### Via n8n Community Nodes

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

  In n8n, go to **Settings > Community Nodes** and install:

  ```
  @neosapience/n8n-nodes-typecast
  ```

  ## Compatibility

  - n8n v1.0+

  ## Development

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Lint & format
  npm run lint
  npm run format

  # Run development mode
  npm run dev
  ```

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Typecast API Docs](https://typecast.ai/docs/api-reference/endpoint/text-to-speech/text-to-speech)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the Typecast TTS API to retrieve available voice models and convert text to speech.","capabilities":["List all available voice models","Convert text to speech using a selected voice"],"authentication":"API key required","commonUseCases":["Text-to-speech generation for audio content","Voice model selection and testing"],"limitations":[],"relatedNodes":["Text to Speech","API Request"]}


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

updated_at: 2026-07-14 14:40:33
author_name: rye-api
author_github_url: https://github.com/rye-com/
npm_package_name: n8n-nodes-rye
npm_version: 1.0.3
community_fetched_at: 2026-07-14T14:40:33.421Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "checkoutIntent",
      "options": [
        {
          "name": "Checkout Intent",
          "value": "checkoutIntent"
        },
        {
          "name": "Brand",
          "value": "brand"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a checkout intent",
          "description": "Create a new checkout intent"
        },
        {
          "name": "Get State",
          "value": "getState",
          "action": "Get checkout intent state",
          "description": "Get the state of a checkout intent"
        },
        {
          "name": "Confirm",
          "value": "confirm",
          "action": "Confirm a checkout intent",
          "description": "Confirm a checkout intent with payment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "checkoutIntent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "verifyBrandSupport",
      "options": [
        {
          "name": "Verify Support",
          "value": "verifyBrandSupport",
          "action": "Verify brand support",
          "description": "Check if a brand/domain is supported"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "brand"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a checkout intent",
      "description": "Create a new checkout intent",
      "resource": "checkoutIntent"
    },
    {
      "name": "Get State",
      "value": "getState",
      "action": "Get checkout intent state",
      "description": "Get the state of a checkout intent",
      "resource": "checkoutIntent"
    },
    {
      "name": "Confirm",
      "value": "confirm",
      "action": "Confirm a checkout intent",
      "description": "Confirm a checkout intent with payment",
      "resource": "checkoutIntent"
    },
    {
      "name": "Verify Support",
      "value": "verifyBrandSupport",
      "action": "Verify brand support",
      "description": "Check if a brand/domain is supported",
      "resource": "brand"
    }
  ]

npm_readme:
  # n8n-nodes-rye

  This is an n8n community node that lets you use the Rye Universal Checkout API in your n8n workflows.

  The Rye Universal Checkout API turns any product URL into a completed checkout. Instantly retrieve price, tax, and shipping for any product, and let users buy without ever leaving your native AI experience.

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

  **Table of Contents**

  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Example Workflows](#example-workflows)
  - [Resources](#resources)
  - [Support](#support)

  ## Installation

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

  ## Operations

  This node provides the following operations:

  ### Checkout Intent

  - **Create**: Submit a new checkout with a product URL and buyer information
  - **Get State**: Check the state of a checkout intent (with optional automatic polling)
  - **Confirm**: Confirm a checkout intent with a payment method

  ### Brand

  - **Verify Support**: Check if a merchant domain is supported by the Rye API

  ## Credentials

  To use this node, you need a Rye API account and access token.

  ### Prerequisites

  1. Sign up for a Rye API staging account from the [developer console](https://staging.console.rye.com/register)
  2. Generate an API access token from your [Rye account](https://staging.console.rye.com/account)

  For more information, refer to the official [Rye Account Registration](https://docs.rye.com/api-v2/account-registration) documentation.

  ### Setting up credentials in n8n

  1. In n8n, go to **Credentials** → **New**
  2. Search for "Rye API"
  3. Enter your **API URL**:
     - Staging: `https://staging.api.rye.com/api/v1`
     - Production: `https://api.rye.com/api/v1`
  4. Enter your **Access Token** (without the HTTP authentication scheme prefix, e.g., "Basic")
  5. Click **Save**

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested against**: n8n 1.115.3

  ## Usage

  ### Basic Checkout Flow

  The typical checkout flow involves these steps:

  1. **Create a Checkout Intent** with a product URL and buyer details
  2. **Poll for State** until the checkout reaches `awaiting_confirmation` state
  3. **Confirm the Checkout** with a payment token
  4. **Poll for State** again until the checkout reaches `completed` state

  ### Using the Get State Operation with Polling

  The "Get State" operation includes automatic polling functionality to wait for the checkout to reach a terminal state.

  #### Polling Parameters

  - **Enable Polling**: When enabled, the node automatically retries checking the state
  - **Max Attempts**: Maximum number of times to check (default: 20). Note: Some merchants may take up to 45 minutes to process.
  - **Initial Interval (Seconds)**: Starting wait time (default: 5 seconds)
  - **Max Interval (Seconds)**: Maximum wait time between attempts (default: 60 seconds)

  #### Checkout States

  **Terminal States** (polling stops automatically):

  - `awaiting_confirmation` - Checkout is ready and awaiting payment confirmation
  - `completed` - Checkout successfully completed
  - `failed` - Checkout failed

  **Processing States** (polling continues):

  - `retrieving_offer` - Initial state after creating a checkout intent; Rye is retrieving the offer from the merchant

  > **💡 Tip**: If polling times out in the `retrieving_offer` state, increase the **Max Attempts** value or handle this state explicitly in your workflow.

  #### Polling Behavior

  The "Get State" node uses exponential backoff to space out polling attempts, giving you flexibility to manage the [Rye API rate limits](https://docs.rye.com/api-v2/developer-notes#ordering-%26-checkout) more effectively.

  Wait time starts at `initialIntervalSeconds` and doubles with each attempt up to `maxIntervalSeconds`

  Example timing: 5s → 10s → 20s → 40s → 60s → 60s...

  Note: using the default parameter values (`maxAttempts = 20`, `initialIntervalSeconds = 5`, `maxIntervalSeconds = 60`), the node will poll for up to ~17 minutes

  #### Best Practice

  After polling completes, use a **Switch** or **IF** node to route your workflow based on the final state.

  ### Address Validation

  > **⚠️ Important**: The Rye API currently only supports US addresses. The node will validate this and throw an error if a non-US country code is provided.

  ## Example Workflows

  ### Complete Checkout with State Routing

  ```
  Manual Trigger
    ↓
  Verify Brand Support (Rye)
    ↓
  Create Checkout Intent (Rye)
    ↓
  Get State with Polling (Rye)
    ↓
  Switch (based on state)
    ├─ awaiting_confirmation → Confirm Checkout (Rye)
    │                            ↓
    │                         Get State with Polling (Rye)
    │                            ↓
    │                         Switch (based on final state)
    │                            ├─ completed → Success notification
    │                            └─ failed → Error notification
    │
    └─ failed → Error notification
  ```

  ### Step-by-Step Configuration

  #### 1. Verify Brand Support

  - **Resource**: Brand
  - **Operation**: Verify Support
  - **Domain**: `amazon.com` (or your target merchant domain)

  #### 2. Create Checkout Intent

  - **Resource**: Checkout Intent
  - **Operation**: Create
  - **Product URL**: Full URL of the product to purchase
  - **Buyer Email**: Customer's email address
  - **Shipping Address**: Complete US address details

  #### 3. Get State (with Polling) - First Check

  - **Resource**: Checkout Intent
  - **Operation**: Get State
  - **Checkout Intent ID**: `{{ $json.id }}` (from Create step)
  - **Enable Polling**: `true`
  - **Max Attempts**: `20`
  - **Initial Interval (Seconds)**: `5`
  - **Max Interval (Seconds)**: `60`

  #### 4. Switch Node - Route Based on Initial State

  Configure switch rules:

  - **Rule 1**: `{{ $json.state === "awaiting_confirmation" }}` → Continue to Confirm
  - **Rule 2**: `{{ $json.state === "failed" }}` → Error handling

  #### 5. Confirm Checkout (if awaiting_confirmation)

  - **Resource**: Checkout Intent
  - **Operation**: Confirm
  - **Checkout Intent ID**: `{{ $('Get State').item.json.id }}`
  - **Payment Token**: Payment method token from your payment processor (e.g., Stripe)

  #### 6. Get State (with Polling) - Final Check

  - **Resource**: Checkout Intent
  - **Operation**: Get State
  - **Checkout Intent ID**: `{{ $('Confirm Checkout').item.json.id }}`
  - **Enable Polling**: `true`
  - **Max Attempts**: `20`
  - **Initial Interval (Seconds)**: `5`
  - **Max Interval (Seconds)**: `60`

  #### 7. Switch Node - Route Based on Final State

  Configure switch rules:

  - **Rule 1**: `{{ $json.state === "completed" }}` → Success handling
  - **Rule 2**: `{{ $json.state === "failed" }}` → Error handling

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Rye API Documentation](https://docs.rye.com)
  - [Rye Universal Checkout Guide](https://docs.rye.com/api-v2/introduction)

  ## Support

  For issues or questions:

  - **Node Issues**: [GitHub Issues](https://github.com/rye-com/n8n-nodes-rye/issues)
  - **n8n Community**: [n8n Forum](https://community.n8n.io/)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the Rye Universal Checkout API to create, track, and confirm checkout intents for e-commerce products without leaving the user's AI experience.","capabilities":["Create checkout intent with product URL and buyer information","Get and poll checkout state with automatic retry logic","Confirm checkout with payment method","Verify merchant domain support","Exponential backoff polling for rate limit management","State-based workflow routing (awaiting_confirmation, completed, failed)"],"authentication":"API key required (Access Token from Rye developer console)","commonUseCases":["E-commerce checkout automation within AI workflows","Product purchase initiation without leaving the application","Automated order tracking and confirmation","Merchant support validation before checkout"],"limitations":["Only supports US addresses (non-US country codes will cause errors)","Some merchants may take up to 45 minutes to process checkouts","Polling timeout in 'retrieving_offer' state may require manual intervention or increased max attempts","Requires separate Rye API account and access token setup"],"relatedNodes":["Switch","IF","Manual Trigger","Wait"]}


node_type: n8n-nodes-onenote.onenote
package_name: n8n-nodes-onenote
display_name: OneNote
description: Work with the Microsoft OneNote (Microsoft Graph) API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: weilchen
author_github_url: https://github.com/Elliotes/
npm_package_name: n8n-nodes-onenote
npm_version: 0.2.1
community_fetched_at: 2026-07-14T14:40:33.422Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "page",
      "options": [
        {
          "name": "Page",
          "value": "page"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a page",
          "description": "Get a page"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many pages",
          "description": "Get many pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a page",
      "description": "Get a page",
      "resource": "page"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many pages",
      "description": "Get many pages",
      "resource": "page"
    }
  ]

npm_readme:
  # n8n-nodes-onenote

  This package provides nodes for **n8n** that enable full integration with **Microsoft OneNote** through the **Microsoft Graph API**.  
  It allows automation, integration, and orchestration of note-related operations directly within n8n workflows.

  ---

  ## About the Author

  This community node was created and shared by **Liam Chen** for the n8n community.  
  It was designed to simplify the complexity of using Microsoft Graph OneNote APIs by providing a clean and easy-to-use interface.

  ---

  ## Table of Contents

  - [Features](#features)
  - [Available Resources](#available-resources)
  - [Authentication Methods](#authentication-methods)
  - [Setting up the Application in Microsoft Entra ID (Azure AD)](#setting-up-the-application-in-microsoft-entra-id-azure-ad)
  - [Using the Node](#using-the-node)
  - [Limitations and Troubleshooting](#limitations-and-troubleshooting)
  - [Additional Resources](#additional-resources)
  - [License](#license)

  ---

  ## Features

  This package provides a simple **OneNote** node with flexible authentication and OneNote functionality.

  ### OneNote Node

  Comprehensive node supporting two authentication methods:

  1. **OAuth2 Authentication** – Secure connection through Microsoft Entra ID (formerly Azure AD).  
  2. **Bearer Token Authentication** – Direct token-based integration for advanced users.

  #### Available Features

  - Notebook, Section, and Page listing  
  - Page creation with plain text or HTML  
  - Retrieve page metadata and content  
  - Dynamic dropdowns for Notebook → Section → Page (list search with pagination)  
  - Optional support for multiple scopes (e.g., `/me`, `/users/{id}`, `/sites/{id}`)

  ---

  ## Available Resources

  ### Notebook Resources
  - **List Notebooks** – Retrieves all available notebooks for the authenticated user  
  - **Get Notebook Details** – Retrieves information about a specific notebook  

  ### Section Resources
  - **List Sections** – Retrieves all sections within a notebook  
  - **Get Section Details** – Retrieves metadata for a specific section  

  ### Page Resources
  - **List Pages** – Lists all pages within a section  
  - **Get Page** – Retrieves a specific page by ID  
  - **Create Page** – Creates a new page under the selected section  
  - **Get Page Content** – Retrieves the full HTML content of a page  

  ---

  ## Authentication Methods

  The OneNote node supports two authentication types:

  ### 1. OAuth2 Authentication

  **Use case:**  
  Recommended for most scenarios — enables secure, refreshable access via Microsoft Entra ID.

  **Credential type:**  
  `OneNote OAuth2 API`

  **Token management:**  
  Automatically refreshed when tokens expire.

  ### 2. Bearer Token Authentication

  **Use case:**  
  For advanced integrations or quick API testing.

  **Credential type:**  
  `OneNote API`

  **Token management:**  
  Manual — you must refresh the token periodically.

  ### Selecting Authentication Method

  1. In the node configuration, choose **Authentication** (OAuth2 or Bearer Token).  
  2. The appropriate credential type will automatically appear.  
  3. Fill in the corresponding credential fields.

  ---

  ## Setting up the Application in Microsoft Entra ID (Azure AD)

  To use OAuth2 authentication, you must register your application in **Microsoft Entra ID (Azure AD)**.

  ### 1. Register a New Application

  1. Go to the [Azure Portal](https://portal.azure.com).  
  2. Navigate to **Microsoft Entra ID → App registrations → New registration**.  
  3. Enter a name, e.g., `n8n OneNote Integration`.  
  4. Under **Supported account types**, choose your desired access scope (e.g., single organization).  
  5. Under **Redirect URI**, select **Web** and enter:  
     - For cloud-hosted n8n:  
       `https://your-n8n-domain/rest/oauth2-credential/callback`  
     - For local development:  
       `http://localhost:5678/rest/oauth2-credential/callback`  
  6. Click **Register**.

  ### 2. Configure API Permissions

  1. In your app’s menu, select **API Permissions → Add a permission → Microsoft Graph**.  
  2. Select **Delegated permissions**, then add:
     - `Notes.Read` or `Notes.ReadWrite` (required)
     - `offline_access`, `openid`, `profile` (recommended for OAuth2)
     - If you plan to access other users’ notebooks: `Sites.Read.All`, `Users.Read.All`
  3. Click **Add permissions**, and request **Admin consent** if necessary.

  ### 3. Create a Client Secret

  1. Go to **Certificates & secrets → New client secret**.  
  2. Add a description and choose an expiration period.  
  3. Click **Add**, and **copy the secret value immediately** (you cannot see it again).

  ### 4. Gather Required Values

  You’ll need the following for n8n configuration:

  - **Client ID** – Found under **Overview → Application (client) ID**  
  - **Client Secret** – The value you just copied  
  - **Tenant ID** – Found under **Overview → Directory (tenant) ID**

  ---

  #### For Bearer Token Authentication:
  - **Credential type:** OneNote API  
  - **Access Token:** Paste your Microsoft Graph access token manually.  
  - Select **Resource** (Notebook, Section, Page) and **Operation**.  
  - Configure operation-specific parameters (Notebook ID, Section ID, etc.).  
  - Execute the node and verify the output.

  ---

  ## Limitations and Troubleshooting

  ### Microsoft Graph OneNote API Limitations

  - **Rate limits:** Standard Graph API rate limits apply. Reduce frequency or use pagination for large queries.  
  - **Permissions:** Ensure your app has `Notes.ReadWrite` and admin consent if required.  
  - **HTML format requirements:** For `Create Page`, your content must include valid HTML (`<html><head>...</head><body>...</body></html>`).  
  - **Access scope:** To access shared notebooks or other users’ data, proper delegated permissions and consent are required.  
  - **Bearer Token expiry:** Tokens expire unless obtained via OAuth2 refresh flow.

  ---

  ## Additional Resources

  - [Microsoft Graph – OneNote API Overview](https://learn.microsoft.com/graph/onenote-concept-overview)  
  - [Microsoft Graph Explorer](https://developer.microsoft.com/graph/graph-explorer)  
  - [Microsoft Graph Permissions Reference](https://learn.microsoft.com/graph/permissions-reference)  
  - [n8n Custom Node Development Guide](https://docs.n8n.io/integrations/creating-nodes/)  

  ---

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n node enables full integration with Microsoft OneNote via the Microsoft Graph API, allowing automation of note-related operations such as listing, creating, and retrieving pages, sections, and notebooks.","capabilities":["List notebooks, sections, and pages","Get details for specific notebooks, sections, and pages","Create new pages with plain text or HTML content","Retrieve page content and metadata","Dynamic dropdowns for Notebook → Section → Page selection with pagination","Support for multiple scopes (e.g., /me, /users/{id}, /sites/{id})","OAuth2 authentication via Microsoft Entra ID","Bearer token authentication for advanced use cases"],"authentication":"OAuth2 (via Microsoft Entra ID) or Bearer Token","commonUseCases":["Automating note-taking workflows in n8n","Syncing notes between systems and OneNote","Creating structured documentation pages","Integrating OneNote with other Microsoft 365 services","Centralizing note management across multiple notebooks"],"limitations":["Subject to Microsoft Graph API rate limits","Requires valid HTML format for page creation","Bearer tokens require manual refresh","Access to shared notebooks requires proper permissions and admin consent","Limited support for advanced OneNote features not exposed via Graph API"],"relatedNodes":["Microsoft Graph","Microsoft 365","Office 365","Azure AD"]}


node_type: @docuseal/n8n-nodes-docuseal.docuseal
package_name: @docuseal/n8n-nodes-docuseal
display_name: DocuSeal
description: Create, send, and sign documents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: petem
author_github_url: https://github.com/docusealco/n8n-nodes-docuseal.git
npm_package_name: @docuseal/n8n-nodes-docuseal
npm_version: 1.0.4
community_fetched_at: 2026-07-14T14:40:33.423Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "createSubmission",
      "options": [
        {
          "name": "Create Submission",
          "value": "createSubmission",
          "action": "Create submission",
          "description": "Create a signature request from template"
        },
        {
          "name": "Create Submission From DOCX",
          "value": "createSubmissionFromDocx",
          "action": "Create submission from DOCX",
          "description": "Create a signature request from DOCX file with dynamic variables"
        },
        {
          "name": "Create Submission From HTML",
          "value": "createSubmissionFromHtml",
          "action": "Create submission from HTML",
          "description": "Create a signature request from HTML content"
        },
        {
          "name": "Create Submission From PDF",
          "value": "createSubmissionFromPdf",
          "action": "Create submission from PDF",
          "description": "Create a signature request from PDF document"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Submission",
      "value": "createSubmission",
      "action": "Create submission",
      "description": "Create a signature request from template"
    },
    {
      "name": "Create Submission From DOCX",
      "value": "createSubmissionFromDocx",
      "action": "Create submission from DOCX",
      "description": "Create a signature request from DOCX file with dynamic variables"
    },
    {
      "name": "Create Submission From HTML",
      "value": "createSubmissionFromHtml",
      "action": "Create submission from HTML",
      "description": "Create a signature request from HTML content"
    },
    {
      "name": "Create Submission From PDF",
      "value": "createSubmissionFromPdf",
      "action": "Create submission from PDF",
      "description": "Create a signature request from PDF document"
    }
  ]

npm_readme:
  # n8n-nodes-docuseal

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

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

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

  ## Table of Contents

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

  ## Installation

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

  ### Community Nodes (Recommended)

  For n8n cloud or instances with UI access:

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

  ### npm Installation

  To install manually in your n8n root directory:

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

  ### Docker Installation

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

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

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

  ## Operations

  This package includes two nodes:

  ### DocuSeal Node

  The main node for creating and managing signature requests.

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

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

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

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

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

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

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

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

  ### DocuSeal Trigger Node

  Webhook-based trigger for DocuSeal events.

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

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

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

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

  ## Credentials

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

  ### Getting Your API Key

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

  ### Setting Up Credentials in n8n

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

  ### Authentication Methods

  This node supports two authentication methods:

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

  ## Compatibility

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

  ## Usage Examples

  ### Example 1: Automated Contract Signing

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

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

  ### Example 2: Onboarding Automation

  Automatically send onboarding documents to new employees:

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

  ### Example 3: Document Archive Workflow

  Archive completed documents automatically:

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

  ### Example 4: Multi-Party Signing

  Send documents requiring multiple signatures in sequence:

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

  ## Advanced Features

  ### Pre-filling Form Fields

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

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

  ### Custom Email Notifications

  Customize the email sent to signers:

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

  ### Metadata and External IDs

  Track your documents by adding:

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

  ### Expiration Dates

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

  ## Troubleshooting

  ### 🧩 Common Issues

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

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

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

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

  ### Getting Help

  If you encounter issues:

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

  ## Resources

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

  ## Support

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

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node integrates DocuSeal, a document signing platform, to create, send, and manage legally binding electronic signature requests within automated workflows.","capabilities":["Create signature requests from existing templates","Create signature requests from DOCX files with dynamic content","Create signature requests from HTML content","Create signature requests from PDF files","Define multiple signers with roles and signing order (sequential or random)","Pre-fill form fields with dynamic variables","Configure email notifications and expiration dates","Merge multiple documents","Webhook triggers for signing form completion","Webhook triggers for full submission completion"],"authentication":"API Key (Access Token) or OAuth2","commonUseCases":["Automated contract signing for sales deals","Employee onboarding document collection","Multi-party document signing workflows","Document archiving after signing completion","CRM integration for signature status updates"],"limitations":["Community node (may have fewer updates or support than official nodes)","Requires separate DocuSeal account and API key setup","Minimum n8n version 0.187.0 required","Minimum Node.js version 18.10 required"],"relatedNodes":["HTTP Request Node","Email Node","Google Drive Node","Database Node","Slack Node"]}


node_type: n8n-nodes-gatus-trigger.gatusTrigger
package_name: n8n-nodes-gatus-trigger
display_name: Gatus Trigger
description: Receives webhook alerts from Gatus monitoring system
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: twin.sh
author_github_url: https://github.com/TwiN/
npm_package_name: n8n-nodes-gatus-trigger
npm_version: 1.0.4
community_fetched_at: 2026-07-14T14:40:33.424Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-gatus-trigger
  [![npm package version](https://img.shields.io/npm/v/n8n-nodes-gatus-trigger)](https://www.npmjs.com/package/n8n-nodes-gatus-trigger)

  This is a n8n community node that lets you receive webhook alerts from [Gatus](https://github.com/TwiN/gatus), a developer-oriented health monitoring and status page system.


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

  ### npm

  ```bash
  npm install n8n-nodes-gatus-trigger
  ```

  ### n8n Cloud
  For n8n cloud users, follow the [n8n Cloud installation guide](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/).

  ## Operations
  This node provides a single trigger operation:

  - **Webhook Trigger**: Receives HTTP POST webhooks from Gatus when alerts are triggered or resolved

  ## Configuring Gatus
  To send alerts to this n8n trigger node, configure Gatus to use the n8n alerting provider:

  ### 1. Get Your Webhook URL
  After adding the Gatus Trigger node to your n8n workflow:
  1. Click "Listen for Test Event" to get the test webhook URL
  2. Once your workflow is activated, use the Production webhook URL

  ### 2. Configure Gatus
  Add the following to your Gatus configuration file (`config.yaml`):

  ```yaml
  alerting:
    n8n:
      webhook-url: "https://your-n8n-instance.com/webhook/your-webhook-path"
    default-alert:
      send-on-resolved: true 

  endpoints:
    - name: example-api
      url: "https://api.example.com/health"
      interval: 1m
      conditions:
        - "[STATUS] == 200"
      alerts:
        - type: n8n
          description: "API health check failed"
  ```

  ### Gatus Webhook Payload Structure
  Gatus automatically sends webhooks with the following JSON structure (based on the [official n8n provider implementation](https://github.com/TwiN/gatus/blob/master/alerting/provider/n8n/n8n.go)):

  - `title`: Title of the alert (configurable in Gatus, defaults to "Gatus")
  - `endpoint_name`: Name of the monitored endpoint
  - `endpoint_group`: Group the endpoint belongs to (optional)
  - `endpoint_url`: URL being monitored
  - `alert_description`: Description from your alert configuration (optional)
  - `resolved`: Boolean - `true` if alert is resolved, `false` if triggered
  - `message`: Auto-generated message describing the alert
  - `condition_results`: Array of condition check results (optional)

  **Note:** You typically don't need to customize the payload - Gatus sends the correct structure automatically. However, if you need to customize the title, you can configure it in your Gatus config:

  ```yaml
  alerting:
    n8n:
      webhook-url: "https://your-n8n-instance.com/webhook/your-webhook-path"
      title: "Production Monitoring"  # Optional: customize the title
  ```

  ## Node Parameters

  ### Path
  - **Optional**: Custom webhook path
  - **Default**: Auto-generated
  - Leave empty to use an automatically generated webhook path, or specify a custom path for easier management

  ### Options

  #### Alert Type Filter
  - **All**: Receive both triggered and resolved alerts (default)
  - **Triggered Only**: Only receive alerts when endpoints fail
  - **Resolved Only**: Only receive alerts when endpoints recover

  #### Endpoint Group Filter
  - Filter alerts by endpoint group
  - Leave empty to receive alerts from all groups
  - Example: Set to "production" to only receive alerts for production endpoints

  #### Endpoint Name Filter
  - Filter alerts by endpoint name
  - Leave empty to receive alerts from all endpoints
  - Example: Set to "api-server" to only receive alerts for that specific endpoint

  ## Example Workflows

  ### Basic Alert Notification

  ```
  Gatus Trigger → Send Email
  ```

  Send an email whenever a Gatus alert is triggered.

  ### Conditional Response Based on Alert Type

  ```
  Gatus Trigger → IF Node → Send Slack Message / Log to Database
  ```

  Send Slack notifications for triggered alerts and log resolved alerts to a database.

  ### Alert Management

  ```
  Gatus Trigger → Set Variables → HTTP Request → Update Dashboard
  ```

  Process the alert data and update an external monitoring dashboard.

  ## Output Data

  The trigger node outputs the following data structure:

  ```json
  {
    "title": "Gatus",
    "endpoint_name": "api-server",
    "endpoint_group": "production",
    "endpoint_url": "https://api.example.com/health",
    "alert_description": "API health check failed",
    "resolved": false,
    "message": "An alert for api-server has been triggered due to having failed 3 time(s) in a row",
    "condition_results": [
      {
        "condition": "[STATUS] == 200",
        "success": false
      },
      {
        "condition": "[RESPONSE_TIME] < 500",
        "success": true
      }
    ]
  }
  ```

  ### Field Descriptions

  - **title**: The configured title from Gatus (defaults to "Gatus")
  - **endpoint_name**: Name of the endpoint that triggered the alert
  - **endpoint_group**: Optional group classification
  - **endpoint_url**: The URL being monitored
  - **alert_description**: Custom description from your Gatus alert configuration
  - **resolved**: `true` when an alert is resolved, `false` when triggered
  - **message**: Human-readable message generated by Gatus
  - **condition_results**: Array of all condition checks with their results

  ## Development

  ### Setup

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local development
  npm link
  cd ~/.n8n/nodes
  npm link n8n-nodes-gatus-trigger
  ```

  ### Testing

  To test the node locally:

  1. Start n8n with `n8n start`
  2. Add the Gatus Trigger node to a workflow
  3. Click "Listen for Test Event"
  4. Send a test webhook using curl:

  ```bash
  curl -X POST https://your-n8n-instance.com/webhook/your-webhook-path \
    -H "Content-Type: application/json" \
    -d '{
      "title": "Gatus",
      "endpoint_name": "test-api",
      "endpoint_group": "test",
      "endpoint_url": "https://test.example.com",
      "alert_description": "Test alert",
      "resolved": false,
      "message": "An alert for test-api has been triggered due to having failed 3 time(s) in a row",
      "condition_results": [
        {
          "condition": "[STATUS] == 200",
          "success": false
        }
      ]
    }'
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Gatus documentation](https://gatus.io/docs/)
  - [Gatus GitHub repository](https://github.com/TwiN/gatus)
  - [Gatus alerting configuration](https://gatus.io/docs/alerting-getting-started)

ai_documentation_summary:
  {"purpose":"Receives webhook alerts from the Gatus monitoring system when endpoints fail or recover, enabling automated responses to infrastructure health events.","capabilities":["Receives HTTP POST webhooks from Gatus for triggered alerts","Receives HTTP POST webhooks from Gatus for resolved alerts","Filters alerts by alert type (All, Triggered Only, Resolved Only)","Filters alerts by endpoint group","Filters alerts by endpoint name","Outputs structured JSON data including alert details and condition results","Supports custom webhook path configuration"],"authentication":"None","commonUseCases":["Send email notifications when services go down","Trigger Slack messages for critical infrastructure failures","Update external monitoring dashboards with real-time status","Log resolved alerts to a database for historical tracking","Automatically restart failed services via HTTP requests"],"limitations":["Requires Gatus to be configured with the n8n alerting provider","Does not support authentication between Gatus and n8n","Webhook payload structure is fixed and may not match all custom Gatus configurations","Only supports basic filtering options (alert type, endpoint group, endpoint name)"],"relatedNodes":["Gatus","HTTP Request","IF","Send Email","Send Slack"]}


node_type: @klardaten/n8n-nodes-datevconnect.masterData
package_name: @klardaten/n8n-nodes-datevconnect
display_name: Klardaten DATEVconnect: Master Data
description: Interact with master data resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: johannespfeiffer
author_github_url: https://github.com/Klardaten/n8n-nodes-datevconnect.git
npm_package_name: @klardaten/n8n-nodes-datevconnect
npm_version: 1.0.13
community_fetched_at: 2026-07-14T14:40:33.425Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "client",
      "options": [
        {
          "name": "Addressee",
          "value": "addressee"
        },
        {
          "name": "Area of Responsibility",
          "value": "areaOfResponsibility"
        },
        {
          "name": "Bank",
          "value": "bank"
        },
        {
          "name": "Client",
          "value": "client"
        },
        {
          "name": "Client Category Type",
          "value": "clientCategoryType"
        },
        {
          "name": "Client Group Type",
          "value": "clientGroupType"
        },
        {
          "name": "Corporate Structure",
          "value": "corporateStructure"
        },
        {
          "name": "Country Code",
          "value": "countryCode"
        },
        {
          "name": "Employee",
          "value": "employee"
        },
        {
          "name": "Legal Form",
          "value": "legalForm"
        },
        {
          "name": "Relationship",
          "value": "relationship"
        },
        {
          "name": "Tax Authority",
          "value": "taxAuthority"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a client",
          "description": "Create a new client"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client",
          "description": "Retrieve a specific client"
        },
        {
          "name": "Get Categories",
          "value": "getClientCategories",
          "action": "Get client categories",
          "description": "Retrieve client categories"
        },
        {
          "name": "Get Deletion Log",
          "value": "getDeletionLog",
          "action": "Get client deletion log",
          "description": "Retrieve deleted clients"
        },
        {
          "name": "Get Groups",
          "value": "getClientGroups",
          "action": "Get client groups",
          "description": "Retrieve client groups"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many clients",
          "description": "Retrieve a list of clients"
        },
        {
          "name": "Get Next Free Number",
          "value": "getNextFreeNumber",
          "action": "Get next free client number",
          "description": "Retrieve the next available client number"
        },
        {
          "name": "Get Responsibilities",
          "value": "getResponsibilities",
          "action": "Get client responsibilities",
          "description": "Retrieve responsibilities for a client"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a client",
          "description": "Update a specific client"
        },
        {
          "name": "Update Categories",
          "value": "updateClientCategories",
          "action": "Update client categories",
          "description": "Replace a client's category assignments"
        },
        {
          "name": "Update Groups",
          "value": "updateClientGroups",
          "action": "Update client groups",
          "description": "Replace a client's group assignments"
        },
        {
          "name": "Update Responsibilities",
          "value": "updateResponsibilities",
          "action": "Update client responsibilities",
          "description": "Replace a client's responsibilities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tax authorities",
          "description": "Retrieve a list of tax authorities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "taxAuthority"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many relationships",
          "description": "Retrieve a list of relationships"
        },
        {
          "name": "Get Types",
          "value": "getTypes",
          "action": "Get relationship types",
          "description": "Retrieve a list of relationship types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "relationship"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many legal forms",
          "description": "Retrieve a list of legal forms"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "legalForm"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many corporate structures",
          "description": "Retrieve a list of corporate structures"
        },
        {
          "name": "Get Organization",
          "value": "get",
          "action": "Get an organization",
          "description": "Retrieve a specific organization"
        },
        {
          "name": "Get Establishment",
          "value": "getEstablishment",
          "action": "Get an establishment",
          "description": "Retrieve a specific establishment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "corporateStructure"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many employees",
          "description": "Retrieve a list of employees"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an employee",
          "description": "Retrieve a specific employee"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create an employee",
          "description": "Create a new employee"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an employee",
          "description": "Update a specific employee"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "employee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many countries",
          "description": "Retrieve a list of countries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "countryCode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many client group types",
          "description": "Retrieve a list of client group types"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client group type",
          "description": "Retrieve a specific client group type"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a client group type",
          "description": "Create a new client group type"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a client group type",
          "description": "Update a specific client group type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clientGroupType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many client category types",
          "description": "Retrieve a list of client category types"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client category type",
          "description": "Retrieve a specific client category type"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a client category type",
          "description": "Create a new client category type"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a client category type",
          "description": "Update a specific client category type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clientCategoryType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many banks",
          "description": "Retrieve a list of banks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "bank"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many areas of responsibility",
          "description": "Retrieve a list of areas of responsibility"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "areaOfResponsibility"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an addressee",
          "description": "Create a new addressee"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an addressee",
          "description": "Retrieve a specific addressee"
        },
        {
          "name": "Get Deletion Log",
          "value": "getDeletionLog",
          "action": "Get addressee deletion log",
          "description": "Retrieve a list of deleted addressees"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many addressees",
          "description": "Retrieve a list of addressees"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an addressee",
          "description": "Update a specific addressee"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "addressee"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a client",
      "description": "Create a new client",
      "resource": "client"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client",
      "description": "Retrieve a specific client",
      "resource": "client"
    },
    {
      "name": "Get Categories",
      "value": "getClientCategories",
      "action": "Get client categories",
      "description": "Retrieve client categories",
      "resource": "client"
    },
    {
      "name": "Get Deletion Log",
      "value": "getDeletionLog",
      "action": "Get client deletion log",
      "description": "Retrieve deleted clients",
      "resource": "client"
    },
    {
      "name": "Get Groups",
      "value": "getClientGroups",
      "action": "Get client groups",
      "description": "Retrieve client groups",
      "resource": "client"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many clients",
      "description": "Retrieve a list of clients",
      "resource": "client"
    },
    {
      "name": "Get Next Free Number",
      "value": "getNextFreeNumber",
      "action": "Get next free client number",
      "description": "Retrieve the next available client number",
      "resource": "client"
    },
    {
      "name": "Get Responsibilities",
      "value": "getResponsibilities",
      "action": "Get client responsibilities",
      "description": "Retrieve responsibilities for a client",
      "resource": "client"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a client",
      "description": "Update a specific client",
      "resource": "client"
    },
    {
      "name": "Update Categories",
      "value": "updateClientCategories",
      "action": "Update client categories",
      "description": "Replace a client's category assignments",
      "resource": "client"
    },
    {
      "name": "Update Groups",
      "value": "updateClientGroups",
      "action": "Update client groups",
      "description": "Replace a client's group assignments",
      "resource": "client"
    },
    {
      "name": "Update Responsibilities",
      "value": "updateResponsibilities",
      "action": "Update client responsibilities",
      "description": "Replace a client's responsibilities",
      "resource": "client"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tax authorities",
      "description": "Retrieve a list of tax authorities",
      "resource": "taxAuthority"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many relationships",
      "description": "Retrieve a list of relationships",
      "resource": "relationship"
    },
    {
      "name": "Get Types",
      "value": "getTypes",
      "action": "Get relationship types",
      "description": "Retrieve a list of relationship types",
      "resource": "relationship"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many legal forms",
      "description": "Retrieve a list of legal forms",
      "resource": "legalForm"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many corporate structures",
      "description": "Retrieve a list of corporate structures",
      "resource": "corporateStructure"
    },
    {
      "name": "Get Organization",
      "value": "get",
      "action": "Get an organization",
      "description": "Retrieve a specific organization",
      "resource": "corporateStructure"
    },
    {
      "name": "Get Establishment",
      "value": "getEstablishment",
      "action": "Get an establishment",
      "description": "Retrieve a specific establishment",
      "resource": "corporateStructure"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many employees",
      "description": "Retrieve a list of employees",
      "resource": "employee"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an employee",
      "description": "Retrieve a specific employee",
      "resource": "employee"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an employee",
      "description": "Create a new employee",
      "resource": "employee"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an employee",
      "description": "Update a specific employee",
      "resource": "employee"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many countries",
      "description": "Retrieve a list of countries",
      "resource": "countryCode"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many client group types",
      "description": "Retrieve a list of client group types",
      "resource": "clientGroupType"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client group type",
      "description": "Retrieve a specific client group type",
      "resource": "clientGroupType"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a client group type",
      "description": "Create a new client group type",
      "resource": "clientGroupType"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a client group type",
      "description": "Update a specific client group type",
      "resource": "clientGroupType"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many client category types",
      "description": "Retrieve a list of client category types",
      "resource": "clientCategoryType"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client category type",
      "description": "Retrieve a specific client category type",
      "resource": "clientCategoryType"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a client category type",
      "description": "Create a new client category type",
      "resource": "clientCategoryType"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a client category type",
      "description": "Update a specific client category type",
      "resource": "clientCategoryType"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many banks",
      "description": "Retrieve a list of banks",
      "resource": "bank"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many areas of responsibility",
      "description": "Retrieve a list of areas of responsibility",
      "resource": "areaOfResponsibility"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an addressee",
      "description": "Create a new addressee",
      "resource": "addressee"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an addressee",
      "description": "Retrieve a specific addressee",
      "resource": "addressee"
    },
    {
      "name": "Get Deletion Log",
      "value": "getDeletionLog",
      "action": "Get addressee deletion log",
      "description": "Retrieve a list of deleted addressees",
      "resource": "addressee"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many addressees",
      "description": "Retrieve a list of addressees",
      "resource": "addressee"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an addressee",
      "description": "Update a specific addressee",
      "resource": "addressee"
    }
  ]

npm_readme:
  # n8n DATEVConnect

  This repository provides custom n8n nodes for integrating with the DATEVconnect APIs. It requires the [Klardaten DATEVconnect Gateway](https://klardaten.com/products/datevconnect-gateway) to be set up.

  ## Available Nodes

  | Node                           | Description                                                                                                             |
  | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
  | `Accounting`                   | Access DATEV Accounting API for clients, fiscal years, accounts receivable, account postings, and accounting sequences. |
  | `MasterData`                   | Fetches master data entities from DATEV using the configured credentials.                                               |
  | `Document Management`          | Access DATEV Document Management or DMS for documents, structure items, property templates.                             |
  | `Order Management`             | Read and manage orders, suborders, invoices, fees, and related employee data.                                           |
  | `Identity & Access Management` | Manage SCIM-based DATEV IAM resources such as service configuration, schemas, users, and groups.                        |

  Refer to the node descriptions inside the n8n editor for input parameters and output structure.

  ## Installation

  ### Through the n8n UI

  1. Navigate to **Settings → Community Nodes → Install** inside your n8n instance.
  2. Enter `@klardaten/n8n-nodes-datevconnect` as the package name.
  3. Confirm the warning prompt and restart n8n so the nodes are registered.

  ### Manual (filesystem) installation

  ```bash
  cd ~/.n8n
  npm install @klardaten/n8n-nodes-datevconnect
  ```

  Copy or symlink the contents of the installed `node_modules/@klardaten/n8n-nodes-datevconnect/dist/{nodes,credentials}` directories into your `~/.n8n/custom/` folder if you prefer the legacy custom-nodes workflow, then restart n8n.

  ## Development

  1. **Install dependencies**
     ```bash
     npm install
     ```
  2. **Build** (optional during development; n8n compiles on the fly)
     ```bash
     npm run dev
     ```

  ## Required Credentials

  You need a Klardaten account and an instance id (of the DATEV instance you want to access).

  - `email`
  - `password`
  - `clientInstanceId`

  ## Running Tests

  Use the npm test runner to execute the automated tests:

  ```bash
  npm test
  ```

  ## Releasing

  Releases are prepared locally and published to npm from GitHub Actions with npm provenance.
  Do not run `npm publish` locally.

  1. Ensure the npm Trusted Publisher for `@klardaten/n8n-nodes-datevconnect` points to the `Klardaten/n8n-nodes-datevconnect` repository and the `publish.yml` workflow.
  2. Start from an up-to-date `main` branch.
     ```bash
     git switch main
     git pull
     ```
  3. Run the release command and follow the prompts.
     ```bash
     npm run release
     ```

  The local release command updates the version and changelog, creates the release commit and tag, pushes them, and creates the GitHub release. It does not publish to npm locally. The pushed version tag triggers the `Publish` workflow, which publishes the tagged package version to npm with the `latest` dist-tag and provenance.

  ## Usage in n8n

  1. Create a new workflow in n8n.
  2. Add the **Klardaten DATEVconnect: Master Data** or **Accounting** etc. node and choose the credential you configured.
  3. Select the desired operation (e.g., list client entries) and configure any filters.
  4. Execute the workflow or schedule it as part of a larger automation.

  All nodes authenticate using the stored credentials and interact with their respective DATEVconnect APIs.

  ## Additional Notes

  DATEV provides endpoint reference details under

  - [Accounting](https://developer.datev.de/en/product-detail/accounting/1.7.4/reference)
  - [Client Master Data](https://developer.datev.de/en/product-detail/client-master-data/1.7.0/reference).
  - [Document Management](https://developer.datev.de/en/product-detail/document-management/2.3.0/reference)
  - [Order Management](https://developer.datev.de/en/product-detail/order-management/1.4.7/reference)
  - [Identity & Access Management – User Administration](https://developer.datev.de/en/product-detail/identity-and-access-management-user-administration/1.1.2/reference)

ai_documentation_summary:
  {"purpose":"The Klardaten DATEVconnect: Master Data node allows users to fetch and manage master data entities from DATEV systems via the DATEVconnect API.","capabilities":["Fetch master data entities from DATEV","Access DATEV client information","Retrieve fiscal year data","Access account receivable records","Access account postings","Access accounting sequences"],"authentication":"OAuth2 (via email, password, and clientInstanceId credentials)","commonUseCases":["Automating client master data retrieval","Synchronizing accounting data with external systems","Managing DATEV-based business entity records"],"limitations":["Requires a Klardaten DATEVconnect Gateway setup","Requires a Klardaten account and valid DATEV instance ID","Requires n8n restart after installation"],"relatedNodes":["Klardaten DATEVconnect: Accounting","Klardaten DATEVconnect: Document Management","Klardaten DATEVconnect: Order Management","Klardaten DATEVconnect: Identity & Access Management"]}


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

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

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

npm_readme:
  # Simplesat's n8n node

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

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

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

  ## Installation

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

  ## Operations

  ### Surveys

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

  ### Questions

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

  ### Responses

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

  ### Answers

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

  ### Customers

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

  ### Team Members

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

  ## Credentials

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

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

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

  ## Usage

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

  ## Resources

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

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


node_type: n8n-nodes-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-07-14 14:40:33
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-07-14T14:40:33.431Z
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: @picsart/n8n-nodes-picsart-creative-apis.picsartImage
package_name: @picsart/n8n-nodes-picsart-creative-apis
display_name: Picsart Image AI
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: romiksar
author_github_url: https://github.com/PicsArt/n8n-plugin.git
npm_package_name: @picsart/n8n-nodes-picsart-creative-apis
npm_version: 5.4.8
community_fetched_at: 2026-07-14T14:40:33.432Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Image processing with Picsart API: convert formats, crop, resize, remove backgrounds, enhance, upscale, restore faces, watermark, and analyze images

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "Remove Background",
      "options": [
        {
          "name": "Car Classify",
          "value": "Car Classify",
          "action": "Classify car image",
          "description": "Classify a car image into categories (exterior, interior, engine, undercarriage, other)"
        },
        {
          "name": "Convert PNG to JPG",
          "value": "Convert PNG to JPG",
          "action": "Convert PNG image to JPG format",
          "description": "Convert PNG images to JPG format"
        },
        {
          "name": "Convert PNG to WEBP",
          "value": "Convert PNG to WEBP",
          "action": "Convert PNG image to WEBP format",
          "description": "Convert PNG images to WEBP format"
        },
        {
          "name": "Crop Image",
          "value": "Crop Image",
          "action": "Crop image to specific dimensions",
          "description": "Crop image to specified width and height"
        },
        {
          "name": "Describe Image",
          "value": "Describe Image",
          "action": "Generate text description from image",
          "description": "Generate a detailed text description for the provided image (image-to-text)"
        },
        {
          "name": "Enhance",
          "value": "Enhance",
          "action": "Enhance and upscale an image",
          "description": "Enhance and upscale an image"
        },
        {
          "name": "Face Enhance",
          "value": "Face Enhance",
          "action": "Enhance faces in photos",
          "description": "Turn old, blurry photos into clear portraits with AI face restoration"
        },
        {
          "name": "Hashtag",
          "value": "Hashtag",
          "action": "Generate hashtags from image",
          "description": "Analyze image and suggest relevant hashtags for the content"
        },
        {
          "name": "Remove Background",
          "value": "Remove Background",
          "action": "Remove background from an image",
          "description": "Remove background from an image"
        },
        {
          "name": "Resize Image",
          "value": "Resize Image",
          "action": "Resize image to specific dimensions",
          "description": "Resize image to specified width and height"
        },
        {
          "name": "Ultra Enhance",
          "value": "Ultra Enhance",
          "action": "Ultra enhance with generative model",
          "description": "Generative upscaling with high frequency detail (2x-16x, up to 64Mpx)"
        },
        {
          "name": "Ultra Upscale",
          "value": "Ultra Upscale",
          "action": "Ultra upscale an image up to 16x",
          "description": "Ultra upscale an image with advanced AI (2x-16x)"
        },
        {
          "name": "Watermark",
          "value": "Watermark",
          "action": "Add watermark to image",
          "description": "Add a watermark or logo to protect images from unauthorized usage"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Image URL",
      "options": [
        {
          "name": "DATA",
          "value": "DATA"
        },
        {
          "name": "Image URL",
          "value": "Image URL"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "operation": [
            "Remove Background",
            "Enhance",
            "Car Classify",
            "Describe Image",
            "Watermark",
            "Hashtag",
            "Convert PNG to JPG",
            "Convert PNG to WEBP",
            "Crop Image",
            "Resize Image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Image URL",
      "options": [
        {
          "name": "Image URL",
          "value": "Image URL"
        },
        {
          "name": "Binary Data",
          "value": "DATA"
        }
      ],
      "description": "Choose whether to provide an image URL or binary image data",
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "operation": [
            "Ultra Upscale"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Image URL",
      "options": [
        {
          "name": "Image URL",
          "value": "Image URL"
        },
        {
          "name": "Binary Data",
          "value": "DATA"
        }
      ],
      "description": "Choose whether to provide an image URL or binary image data",
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "operation": [
            "Ultra Enhance"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Image URL",
      "options": [
        {
          "name": "Image URL",
          "value": "Image URL"
        },
        {
          "name": "Binary Data",
          "value": "DATA"
        }
      ],
      "description": "Choose whether to provide an image URL or binary image data",
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "operation": [
            "Face Enhance"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Car Classify",
      "value": "Car Classify",
      "action": "Classify car image",
      "description": "Classify a car image into categories (exterior, interior, engine, undercarriage, other)"
    },
    {
      "name": "Convert PNG to JPG",
      "value": "Convert PNG to JPG",
      "action": "Convert PNG image to JPG format",
      "description": "Convert PNG images to JPG format"
    },
    {
      "name": "Convert PNG to WEBP",
      "value": "Convert PNG to WEBP",
      "action": "Convert PNG image to WEBP format",
      "description": "Convert PNG images to WEBP format"
    },
    {
      "name": "Crop Image",
      "value": "Crop Image",
      "action": "Crop image to specific dimensions",
      "description": "Crop image to specified width and height"
    },
    {
      "name": "Describe Image",
      "value": "Describe Image",
      "action": "Generate text description from image",
      "description": "Generate a detailed text description for the provided image (image-to-text)"
    },
    {
      "name": "Enhance",
      "value": "Enhance",
      "action": "Enhance and upscale an image",
      "description": "Enhance and upscale an image"
    },
    {
      "name": "Face Enhance",
      "value": "Face Enhance",
      "action": "Enhance faces in photos",
      "description": "Turn old, blurry photos into clear portraits with AI face restoration"
    },
    {
      "name": "Hashtag",
      "value": "Hashtag",
      "action": "Generate hashtags from image",
      "description": "Analyze image and suggest relevant hashtags for the content"
    },
    {
      "name": "Remove Background",
      "value": "Remove Background",
      "action": "Remove background from an image",
      "description": "Remove background from an image"
    },
    {
      "name": "Resize Image",
      "value": "Resize Image",
      "action": "Resize image to specific dimensions",
      "description": "Resize image to specified width and height"
    },
    {
      "name": "Ultra Enhance",
      "value": "Ultra Enhance",
      "action": "Ultra enhance with generative model",
      "description": "Generative upscaling with high frequency detail (2x-16x, up to 64Mpx)"
    },
    {
      "name": "Ultra Upscale",
      "value": "Ultra Upscale",
      "action": "Ultra upscale an image up to 16x",
      "description": "Ultra upscale an image with advanced AI (2x-16x)"
    },
    {
      "name": "Watermark",
      "value": "Watermark",
      "action": "Add watermark to image",
      "description": "Add a watermark or logo to protect images from unauthorized usage"
    }
  ]

npm_readme:
  # @picsart/n8n-nodes-picsart-creative-apis

  [![npm version](https://img.shields.io/npm/v/@picsart/n8n-nodes-picsart-creative-apis.svg)](https://www.npmjs.com/package/@picsart/n8n-nodes-picsart-creative-apis)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

  n8n community nodes for image processing and generation using Picsart APIs.
  ## 💻 Development

  ### Setup
  ```bash
  git clone <repository-url>
  cd n8n-nodes-picsart-creative-apis
  pnpm install
  pnpm run build
  ```

  ### Available Scripts
  ```bash
  pnpm run dev        # Watch mode
  pnpm run build      # Build
  pnpm run lint       # Lint code
  pnpm run lintfix    # Fix linting issues
  ```

  ### Docker Development
  ```bash
  ./rebuild.sh
  # Open http://localhost:5678
  ```

  ## 🚀 Release

  Use the automated release script:

  ```bash
  ./release.sh patch    # Bug fixes (0.1.0 → 0.1.1)
  ./release.sh minor    # New features (0.1.0 → 0.2.0)
  ./release.sh major    # Breaking changes (0.1.0 → 1.0.0)
  ```

  Then push:
  ```bash
  git push && git push --tags
  ```

  CI/CD will automatically publish to npm.

  ## 📖 Resources

  - [Picsart API Documentation](https://docs.picsart.io/)
  - [n8n Documentation](https://docs.n8n.io/)
  - [Creating n8n Nodes](https://docs.n8n.io/integrations/creating-nodes/)
    
  ## Installation

  **For n8n Cloud:**
  1. Settings > Community Nodes > Install
  2. Enter: `@picsart/n8n-nodes-picsart-creative-apis`

  **For Self-hosted:**

  npm install @picsart/n8n-nodes-picsart-creative-apis

  Then restart n8n.

  **Setup Credentials:**
  1. Get API key from [Picsart Console](https://console.picsart.io/dashboard)
  2. In n8n: Settings → Credentials → Add "Picsart API"
  3. Paste your API key


  ## 📚 Nodes

  ### Picsart Text2Image
  Generate images from text prompts using Picsart GenAI API.

  **Key Parameters:**
  - Prompt (required): Text description of the image to generate
  - Width: Image width in pixels (default: 1024, max: 1024)
  - Height: Image height in pixels (default: 1024, max: 1024)

  **Output:** Binary image + JSON with prompt, dimensions, transaction ID, and image URL

  **Documentation:** [Picsart Text2Image API](https://docs.picsart.io/reference/genai-text2image-1)

  ### Picsart Enhance
  Upscale and enhance images with AI.

  **Key Parameters:**
  - Image URL (required, supports JPG/PNG/WEBP)
  - Upscale Factor: 2x, 4x, 6x, 8x, 16x
  - Format: JPG | PNG | WEBP

  **Output:** Binary image + JSON with URL and credits

  ### Picsart Remove Background

  **Key Parameters:**
  - Image URL (required)
  - Output Type: cutout | mask
  - Background: color, image URL, or transparent
  - Effects: blur, stroke, shadow
  - Format: JPG | PNG | WEBP

  **Output:** Binary image + JSON with URL and credit

ai_documentation_summary:
  {"purpose":"This n8n community node enables image processing and generation using the Picsart API, supporting tasks like format conversion, cropping, resizing, background removal, enhancement, upscaling, face restoration, watermarking, and image analysis.","capabilities":["Text-to-image generation from text prompts","Image upscaling and enhancement","Background removal with customizable outputs","Format conversion (JPG/PNG/WEBP)","Image cropping and resizing","Face restoration","Watermarking","Image analysis"],"authentication":"API key required","commonUseCases":["Generating images from text descriptions for content creation","Upscaling low-resolution images for high-quality output","Removing backgrounds from product photos for e-commerce","Enhancing image quality for social media posts"],"limitations":["Text-to-image generation limited to 1024x1024 maximum dimensions","Upscale factors limited to specific multipliers (2x, 4x, 6x, 8x, 16x)","Background removal output types restricted to cutout or mask formats"],"relatedNodes":["Picsart Text2Image","Picsart Enhance","Picsart Remove Background"]}


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

updated_at: 2026-07-14 14:40:33
author_name: gr33ndev
author_github_url: https://github.com/Gr33ndev/
npm_package_name: n8n-nodes-teamupcalendar
npm_version: 0.4.2
community_fetched_at: 2026-07-14T14:40:33.433Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "event",
      "options": [
        {
          "name": "Event",
          "value": "event",
          "description": "Work with calendar events"
        },
        {
          "name": "Subcalendar",
          "value": "subcalendar",
          "description": "Work with subcalendars"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an event",
          "description": "Create a new event"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an event",
          "description": "Delete an event"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an event",
          "description": "Retrieve a single event by ID"
        },
        {
          "name": "Get Auxiliary Info",
          "value": "getAuxiliaryInfo",
          "action": "Get auxiliary event info",
          "description": "Get an event's history, comments, and signups"
        },
        {
          "name": "Get Changed Events",
          "value": "getChanged",
          "action": "Get changed events",
          "description": "Get events that changed since a timestamp"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many events",
          "description": "Retrieve multiple events"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search events",
          "description": "Search events by keyword"
        },
        {
          "name": "Undo",
          "value": "undo",
          "action": "Undo an event action",
          "description": "Undo the last action on an event"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an event",
          "description": "Update an existing event"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an subcalendar",
          "description": "Create a new subcalendar"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a subcalendar",
          "description": "Delete a subcalendar"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a subcalendar",
          "description": "Retrieve a single subcalendar by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many subcalendars",
          "description": "Retrieve all subcalendars"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a subcalendar",
          "description": "Update an existing subcalendar"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subcalendar"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create an event",
      "description": "Create a new event",
      "resource": "event"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an event",
      "description": "Delete an event",
      "resource": "event"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an event",
      "description": "Retrieve a single event by ID",
      "resource": "event"
    },
    {
      "name": "Get Auxiliary Info",
      "value": "getAuxiliaryInfo",
      "action": "Get auxiliary event info",
      "description": "Get an event's history, comments, and signups",
      "resource": "event"
    },
    {
      "name": "Get Changed Events",
      "value": "getChanged",
      "action": "Get changed events",
      "description": "Get events that changed since a timestamp",
      "resource": "event"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many events",
      "description": "Retrieve multiple events",
      "resource": "event"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search events",
      "description": "Search events by keyword",
      "resource": "event"
    },
    {
      "name": "Undo",
      "value": "undo",
      "action": "Undo an event action",
      "description": "Undo the last action on an event",
      "resource": "event"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an event",
      "description": "Update an existing event",
      "resource": "event"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an subcalendar",
      "description": "Create a new subcalendar",
      "resource": "subcalendar"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a subcalendar",
      "description": "Delete a subcalendar",
      "resource": "subcalendar"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a subcalendar",
      "description": "Retrieve a single subcalendar by ID",
      "resource": "subcalendar"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many subcalendars",
      "description": "Retrieve all subcalendars",
      "resource": "subcalendar"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a subcalendar",
      "description": "Update an existing subcalendar",
      "resource": "subcalendar"
    }
  ]

npm_readme:
  # n8n-nodes-teamupcalendar

  This is a n8n community node. It lets you use [Teamup Calendar](https://teamup.com) in your n8n workflows.

  Teamup Calendar is a collaborative calendar platform that allows teams to share calendars, manage events, and coordinate
  schedules. It offers powerful features like subcalendars and flexible access controls.

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

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

  ## Installation

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

  ## Operations

  ### Event Operations

  - **Create**: Create a new calendar event with title, dates, subcalendar assignment, and optional fields like location,
    notes, and attendees
  - **Delete**: Remove events from the calendar
  - **Get**: Retrieve details of a specific event by its ID
  - **Get Auxiliary Info**: Fetch additional information related to an event
  - **Get Changed Events**: Retrieve events that have changed since a specified timestamp (max 30 days ago)
  - **Get Many**: Retrieve multiple events with filtering options by date range, subcalendar, and result limits
  - **Search events**: Find events based on keywords in titles or notes
  - **Undo**: Undo an event action
  - **Update**: Modify existing events including changing dates, titles, subcalendars, and other properties

  ### Subcalendar Operations

  - **Create**: Add a new subcalendar to the Teamup calendar
  - **Delete**: Remove a subcalendar from the Teamup calendar
  - **Get**: Retrieve details of a specific subcalendar by its ID
  - **Get Many**: Fetch all available subcalendars for the connected Teamup calendar
  - **Update**: Change properties of an existing subcalendar such as name and color

  ## Credentials

  To use this node, you need:

  1. **Teamup Calendar Account**: Sign up at [Teamup Calendar](https://teamup.com/register) and get your API key from
     there
  2. **Calendar Key**: The unique identifier for your Teamup calendar (found in your share calendar URL, Settings >
     Sharing > Create Link)

  ### Setting up credentials:

  1. Create a Teamup calendar or use an existing one
  2. Share your calendar via Settings > Sharing > Create Link
  3. Note your calendar key from that sharing URL (e.g., `https://teamup.com/ks1234567890` → key is `ks1234567890`)
  4. In n8n, create new "Teamup API" credentials with your calendar key and API token

  ## Compatibility

  - **Minimum n8n version**: 1.117.3
  - **Tested with**: n8n version 1.117.3 & 1.123.5

  ## Usage

  ### Basic Event Creation

  1. Select "Event" as resource and "Create" as operation
  2. Choose the target subcalendar
  3. Set event title, start date/time, and end date/time
  4. Optionally add location, notes, attendees, or mark as all-day event

  ### Filtering Events

  When using "Get Many" for events:

  - **Start Date**: Events starting on or after this date (defaults to today)
  - **End Date**: Events starting before this date (defaults to today's end of the day)
  - **Subcalendar**: Filter by specific subcalendar (optional)
  - **Limit**: Maximum number of events to return (default: 50, max: 1000)

  ### Date/Time Handling

  - All dates are automatically formatted for the Teamup API
  - Supports both date-only and full datetime values
  - Timezone handling follows your n8n instance settings

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Teamup Calendar API Documentation](https://apidocs.teamup.com/)
  * [Teamup Calendar Help Center](https://support.teamup.com/)

ai_documentation_summary:
  {"purpose":"A community n8n node that enables interaction with the Teamup Calendar API to manage collaborative calendar events and subcalendars.","capabilities":["Create calendar events with title, dates, subcalendar, location, notes, and attendees","Delete calendar events","Retrieve event details by ID","Fetch auxiliary information for events","Retrieve changed events since a specified timestamp","Retrieve multiple events with filtering by date range, subcalendar, and limits","Search events by keywords in titles or notes","Undo event actions","Update existing event properties","Create subcalendars"],"authentication":"API key required (Teamup API token and Calendar Key)","commonUseCases":["Automating meeting scheduling within a team","Syncing calendar events from other sources to Teamup","Retrieving and filtering team availability","Managing subcalendars for different teams or projects"],"limitations":["Event change retrieval is limited to events changed within the last 30 days","Event retrieval limit is capped at 1000 events per request","Requires a Teamup Calendar account and API token"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.splitInBatches"]}


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

updated_at: 2026-07-14 14:40:33
author_name: remyabyssale
author_github_url: https://github.com/getabyssale/
npm_package_name: n8n-nodes-abyssale
npm_version: 1.0.3
community_fetched_at: 2026-07-14T14:40:33.434Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "banner",
      "options": [
        {
          "name": "Banner",
          "value": "banner"
        },
        {
          "name": "Design",
          "value": "design"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateSingle",
      "options": [
        {
          "name": "Export Banners",
          "value": "exportBanners",
          "action": "Export banners",
          "description": "Export one or multiple previously generated visuals in .zip format"
        },
        {
          "name": "Generate HTML5 Banner Ads",
          "value": "generateHTML5BannerAds",
          "action": "Generate html5 banner ads",
          "description": "Generate HTML5 banner ads from an animated design"
        },
        {
          "name": "Generate Multi-Format Animated GIFs",
          "value": "generateMultiFormatGIFs",
          "action": "Generate multi format animated gifs",
          "description": "Generate multiple animated GIFs at once from a design created in Abyssale"
        },
        {
          "name": "Generate Multi-Format Images",
          "value": "generateMultiFormatImages",
          "action": "Generate multiple images",
          "description": "Generate a multiple images (JPEG, PNG, PDF,..) from a design"
        },
        {
          "name": "Generate Multi-Format PDFs for Printing",
          "value": "generateMultiFormatPDFs",
          "action": "Generate multi format pdfs for printing",
          "description": "Generate multiple printable PDFs at once from a design created in Abyssale"
        },
        {
          "name": "Generate Multi-Format Videos",
          "value": "generateMultiFormatVideos",
          "action": "Generate multi format videos",
          "description": "Generate multiple videos at once from an animated design created in Abyssale"
        },
        {
          "name": "Generate Single Image",
          "value": "generateSingle",
          "action": "Generate a single image",
          "description": "Generate a single image (JPEG, PNG, PDF) from a design"
        },
        {
          "name": "Get Banner",
          "value": "getBanner",
          "action": "Get banner",
          "description": "Retrieves the details about a previously generated banner"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "banner"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDesign",
      "options": [
        {
          "name": "Get a Design",
          "value": "getDesign",
          "action": "Get a design",
          "description": "Retrieves the details about a design you created on Abyssale"
        },
        {
          "name": "Get a Design Format",
          "value": "getDesignFormat",
          "action": "Get a design format",
          "description": "Retrieves the details about a format added to a design you created on Abyssale"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "design"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Export Banners",
      "value": "exportBanners",
      "action": "Export banners",
      "description": "Export one or multiple previously generated visuals in .zip format",
      "resource": "banner"
    },
    {
      "name": "Generate HTML5 Banner Ads",
      "value": "generateHTML5BannerAds",
      "action": "Generate html5 banner ads",
      "description": "Generate HTML5 banner ads from an animated design",
      "resource": "banner"
    },
    {
      "name": "Generate Multi-Format Animated GIFs",
      "value": "generateMultiFormatGIFs",
      "action": "Generate multi format animated gifs",
      "description": "Generate multiple animated GIFs at once from a design created in Abyssale",
      "resource": "banner"
    },
    {
      "name": "Generate Multi-Format Images",
      "value": "generateMultiFormatImages",
      "action": "Generate multiple images",
      "description": "Generate a multiple images (JPEG, PNG, PDF,..) from a design",
      "resource": "banner"
    },
    {
      "name": "Generate Multi-Format PDFs for Printing",
      "value": "generateMultiFormatPDFs",
      "action": "Generate multi format pdfs for printing",
      "description": "Generate multiple printable PDFs at once from a design created in Abyssale",
      "resource": "banner"
    },
    {
      "name": "Generate Multi-Format Videos",
      "value": "generateMultiFormatVideos",
      "action": "Generate multi format videos",
      "description": "Generate multiple videos at once from an animated design created in Abyssale",
      "resource": "banner"
    },
    {
      "name": "Generate Single Image",
      "value": "generateSingle",
      "action": "Generate a single image",
      "description": "Generate a single image (JPEG, PNG, PDF) from a design",
      "resource": "banner"
    },
    {
      "name": "Get Banner",
      "value": "getBanner",
      "action": "Get banner",
      "description": "Retrieves the details about a previously generated banner",
      "resource": "banner"
    },
    {
      "name": "Get a Design",
      "value": "getDesign",
      "action": "Get a design",
      "description": "Retrieves the details about a design you created on Abyssale",
      "resource": "design"
    },
    {
      "name": "Get a Design Format",
      "value": "getDesignFormat",
      "action": "Get a design format",
      "description": "Retrieves the details about a format added to a design you created on Abyssale",
      "resource": "design"
    }
  ]

npm_readme:
  # n8n-nodes-abyssale

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

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

  [Abyssale](https://www.abyssale.com/) helps you generate creative content at scale.

  [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

  - Banner
    - Export banners
    - Generate html5 banner ads
    - Generate multi format animated gifs
    - Generate multiple images
    - Generate multiple format pds for printing
    - Generate multiple format videos
    - Generate a single image
    - Get banner
    - Watch banner creation
    - Watch banner batch creation
    - Watch banners export
  - Design
    - Get a design
    - Get a design format
    - Watch design status changes

  ## Credentials

  You can use abyssale access token to use this node.

  ### Access token

  1. Follow this [tutorial](https://help.abyssale.com/en/articles/329008-how-to-create-your-abyssale-api-key) to generate your api key.
  2. Copy the token.

  ## Compatibility

  Compatible with n8n@1.117.3 or later

  ## Usage

  ### Generate marketing visuals with n8n
  Transform your n8n workflows with automated visual generation. 
  Pull data from any source and turn it into engaging visuals for every channel - from social posts to email campaigns.

  #### Basic image generation
  1. Add an **Abyssale** node to your workflow.
  2. Select the **Generate a single image** operation from the node's dropdown menu.
  3. Add your Abyssale API credential.
  4. Choose a static design. The design must be created in the Abyssale app beforehand and will be used as the base for your generated images.
  5. Select your desired format you want to use.
  6. Configure the design elements you want to customize. Map input data to specific elements like text, images, or colors to personalize each generated visual.
  7. Execute the node by clicking **Execute step**.
  8. Abyssale will automatically generate an image with your specified element modifications applied.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables the consumption of the Abyssale API to generate creative marketing visuals, including banners, images, videos, and animated GIFs.","capabilities":["Generate HTML5 banner ads","Generate multi-format animated GIFs","Generate multiple images","Generate multiple format PDFs for printing","Generate multiple format videos","Generate a single image","Export banners","Get banner details","Watch banner creation status","Watch banner batch creation status"],"authentication":"API key (Abyssale access token)","commonUseCases":["Automated social media post generation","Email campaign visual creation","Dynamic marketing material personalization","Multi-channel content scaling"],"limitations":["Static designs must be created in the Abyssale app beforehand","Requires n8n version 1.117.3 or later","Community node (not official n8n product)"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: @serphouse/n8n-nodes-serphouse.serphouse
package_name: @serphouse/n8n-nodes-serphouse
display_name: SERPHouse
description: Scrape Google and other search engines from SERPHouse's official node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: serphouse
author_github_url: https://github.com/SERPHouse/n8n-node-serphouse.git
npm_package_name: @serphouse/n8n-nodes-serphouse
npm_version: 1.0.3
community_fetched_at: 2026-07-14T14:40:33.435Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "serpLiveSearchPost",
      "options": [
        {
          "name": "Serp Live Search (POST)",
          "value": "serpLiveSearchPost",
          "action": "Serp Live Search (POST)",
          "routing": {
            "request": {
              "url": "/serp/live",
              "method": "POST"
            }
          }
        },
        {
          "name": "Google SERP (Top 100 Results)",
          "value": "googleSerpTopHundred",
          "action": "Google SERP (Top 100 results)",
          "routing": {
            "request": {
              "url": "/serp/google_advanced",
              "method": "POST"
            }
          }
        },
        {
          "name": "Google Jobs API",
          "value": "googleJobs",
          "action": "Google Jobs API",
          "routing": {
            "request": {
              "url": "/google-jobs-api",
              "method": "POST"
            }
          }
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Serp Live Search (POST)",
      "value": "serpLiveSearchPost",
      "action": "Serp Live Search (POST)",
      "routing": {
        "request": {
          "url": "/serp/live",
          "method": "POST"
        }
      },
      "resource": "search"
    },
    {
      "name": "Google SERP (Top 100 Results)",
      "value": "googleSerpTopHundred",
      "action": "Google SERP (Top 100 results)",
      "routing": {
        "request": {
          "url": "/serp/google_advanced",
          "method": "POST"
        }
      },
      "resource": "search"
    },
    {
      "name": "Google Jobs API",
      "value": "googleJobs",
      "action": "Google Jobs API",
      "routing": {
        "request": {
          "url": "/google-jobs-api",
          "method": "POST"
        }
      },
      "resource": "search"
    }
  ]

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

  # n8n-nodes-serphouse

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

  SERPHouse is a powerful SERP API that allows you to scrape Google, Bing, Yahoo, and other search engines with ease. Get real-time search results, job listings, and comprehensive SERP data.

  ## Installation

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

  ## Prerequisites

  You need a SERPHouse account and API key. You can sign up at [serphouse.com](https://serphouse.com/register).

  ## Operations

  The SERPHouse node supports the following operations:

  ### Serp Live Search (POST)

  Perform real-time searches across Google, Bing, and Yahoo search engines.

  **Supported Search Engines:**

  - Google
  - Bing
  - Yahoo

  **Features:**

  - Multiple search types: Web, News, Image, Shop
  - Device-specific results: Desktop, Tablet, Mobile
  - Location targeting
  - Date range filtering
  - Customizable result count and pagination
  - Verbatim search and GFilter options

  ### Google SERP (Top 100 Results)

  Retrieve comprehensive Google search results with up to 100 results per query.

  **Features:**

  - Multi-page scraping (max_pages parameter)
  - Device-specific results: Desktop, Tablet, Mobile
  - Location targeting
  - Date range filtering
  - Verbatim search and GFilter options
  - JSON or HTML response formats

  ### Google Jobs API

  Search and retrieve job listings from Google Jobs.

  **Features:**

  - Location-based job search
  - Date range filtering
  - Multi-language and domain support
  - JSON or HTML response formats

  ## Credentials

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

  1. Go to **Credentials** → **New**
  2. Select **SERPHouse API**
  3. Enter your API key from your [SERPHouse account](https://www.serphouse.com/home)

  ## Usage

  ### Example 1: Basic Search

  ```
  1. Add SERPHouse node to your workflow
  2. Select "Serp Live Search (POST)" operation
  3. Enter your search query
  4. Choose your search engine from Google, Bing and Yahoo
  5. Select domain and language
  6. Choose your location
  7. Execute the node
  ```

  ### Example 2: Multi-page SERP Results

  ```
  1. Add SERPHouse node to your workflow
  2. Select "Google SERP (Top 100 Results)" operation
  3. Enter your search query
  4. Configure domain, language, and location
  5. In Additional Fields, set "Max Pages" to desired value
  6. Execute the node to get comprehensive results
  ```

  ### Example 3: Google Jobs Search

  ```
  1. Add SERPHouse node to your workflow
  2. Select "Google Jobs API" operation
  3. Enter job search query (e.g., "software engineer")
  4. Select domain and language
  5. Choose location
  6. Optionally add date range filtering
  7. Execute the node
  ```

  ## Resources

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

  ## Version History

  ### 1.0.0

  - Initial release
  - Serp Live Search (POST) operation
  - Google SERP (Top 100 Results) operation
  - Google Jobs API operation

  ## License

  [MIT](https://github.com/SERPHouse/n8n-node-serphouse/blob/master/LICENSE.md)

  ## Support

  For issues or questions:

  - Contact SERPHouse support at [serphouse.com/contact-us](https://www.serphouse.com/contact-us)
  - You contact send your suggestions to [serphouse](accounts@serphouse.com)

ai_documentation_summary:
  {"purpose":"This n8n community node enables scraping search results from Google, Bing, and Yahoo, as well as retrieving job listings, using SERPHouse's API.","capabilities":["Real-time search across Google, Bing, and Yahoo","Support for Web, News, Image, and Shop search types","Device-specific results (Desktop, Tablet, Mobile)","Location targeting","Date range filtering","Multi-page SERP result retrieval (up to 100 results)","Google Jobs API for job listing searches","Verbatim search and GFilter options","JSON or HTML response formats"],"authentication":"API key required","commonUseCases":["Real-time keyword research and competitor analysis","Job market analysis and recruitment","Market trend monitoring across multiple search engines","Automated data collection for SEO or marketing campaigns"],"limitations":["Requires a paid SERPHouse account and API key","Google SERP operation limited to top 100 results per query","No built-in rate limiting or retry logic mentioned in README"],"relatedNodes":["HTTP Request","Code","Split In Batches"]}


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

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

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

npm_readme:
  # n8n-nodes-nexlev

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

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

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

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

  ## Installation

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

  ## Operations

  The Nexlev node supports the following operations:

  ### Channel Analysis

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

  ### Channel Analytics

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

  ### Channel Content

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

  ### Niche Overview

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

  ### Similar Channels

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

  ### Similar Thumbnails

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

  ### Similar Videos

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

  ### Videos and Shorts

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

  ## Credentials

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

  ### Prerequisites

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

  ### Authentication Method

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

  ## Compatibility

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

  ## Usage

  ### Basic Setup

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

  ### Example: Getting Similar Videos

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

  ## Resources

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

  ## Version history

  ### 0.2.0

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

  ### 0.1.10

  - Fixed channel analysis job creation endpoint to use GET method

  ### 0.1.9

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

  ### 0.1.8

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

  ### 0.1.7

  - Bug fixes and improvements
  - Enhanced stability

  ### 0.1.6

  - Improvements and updates

  ### 0.1.0

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

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


