npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-superops

v0.1.7

Published

n8n community node for the SuperOps MSP GraphQL API. Covers tickets, clients, assets, alerts, worklogs, requesters, plus ticket attachments (upload/download).

Readme

n8n-nodes-superops

n8n community node for the SuperOps MSP GraphQL API.

This package provides a single SuperOps node that lets your n8n workflows interact with tickets, clients, assets, alerts, and worklog entries in your SuperOps tenant. Authentication is handled by a SuperOps API credential type that supports both the US and EU data centers.

Installation

In a self-hosted n8n instance:

  1. Open Settings → Community Nodes.
  2. Click Install.
  3. Enter n8n-nodes-superops and confirm.

Or install from the command line:

npm install n8n-nodes-superops

For development against this repository:

git clone https://gitlab.com/your-group/n8n-nodes-superops.git
cd n8n-nodes-superops
npm install
npm run build
npm link
# in your n8n install directory:
npm link n8n-nodes-superops

Credentials

Create a new credential of type SuperOps API with three fields:

| Field | Description | |---|---| | API Token | Generate from Settings → API Tokens in the SuperOps console. | | Data Center | US (api.superops.ai) or EU (euapi.superops.ai). | | Customer Subdomain | The subdomain portion of your SuperOps URL — for example, if you log in at acmemsp.superops.ai, enter acmemsp. |

The credential test runs a lightweight getStatusList query against the GraphQL endpoint to verify the token and subdomain.

Supported Resources and Operations

Ticket

  • Get
  • Get Many (with pagination, returns all pages or a single page)
  • Create
  • Update
  • Add Note (public or private, with optional attachments)
  • Add Conversation (reply or forward, with optional attachments)
  • Get Notes
  • Get Conversations
  • Upload Attachment (REST /upload, multipart)
  • Download Attachment (REST /download, returns binary)

Client

  • Get
  • Get Many
  • Create (uses createClientV2)
  • Update

Asset

  • Get
  • Get Many
  • Get Summary (CPU, memory, disk, interfaces, last user log)
  • Get Software (installed software list)
  • Get Patches
  • Get Alerts (alerts for a specific asset)
  • Update
  • Run Script

Alert

  • Get Many
  • Create
  • Resolve (one or more alert IDs)

Worklog

  • Get Many (filter by ticket or task)
  • Create
  • Update
  • Delete

Requester

  • Get
  • Get Many (filter by client)
  • Create
  • Update
  • Delete

(SuperOps calls these "Client Users" — people at your customer companies who can submit tickets and appear as the requester on a ticket. Roles are assigned via Role IDs.)

Attachments

SuperOps handles file attachments in two steps:

  1. Upload the file via REST /upload (multipart). The response contains the stored attachment metadata: fileName, originalFileName, fileSize.
  2. Reference that metadata in a CreateAttachmentInput array when creating a Note or Conversation.

The node exposes both pieces:

  • Ticket → Upload Attachment takes a binary input from the previous node, posts it to /upload, and returns the metadata. Use the Module selector to choose TICKET_CONVERSATION_ATTACHMENT or TICKET_NOTE_ATTACHMENT. If a Ticket ID is provided it's sent in the details payload (required for existing tickets).
  • Ticket → Add Note and Ticket → Add Conversation each accept an Attachments (Pre-Uploaded) JSON array. Pipe the metadata from the Upload step in via expression: ={{ [$node["Upload Attachment"].json] }} (or use a Set/Code node to shape the array yourself).
  • Ticket → Download Attachment takes a Ticket ID, conversation/note ID, and the stored fileName from an Attachment record, and returns the file as binary in your chosen output property.

Example flow: Read Binary File → SuperOps (Upload Attachment) → SuperOps (Add Note, with attachments referencing the previous output).

Pagination

For every "Get Many" operation the node exposes a Return All toggle. When enabled, the node walks the SuperOps listInfo.hasMore flag and returns every record across all pages. When disabled, you get a single page controlled by Page and Limit parameters.

Filtering

List operations expose a Filters (Raw GraphQL Condition) parameter that accepts a JSON object matching SuperOps' ListInfoInput.condition shape. Refer to the SuperOps API reference for valid condition keys per resource. Example for unresolved critical alerts:

{
  "rawQuery": "status:'OPEN' AND severity:'CRITICAL'"
}

Custom Fields

Create and Update operations on Tickets, Clients, and Assets expose a Custom Fields field that takes a JSON object mapping the SuperOps custom field column name (e.g. udf1text) to its value. Use the getTicketCustomFieldList, getClientCustomFieldList, or getAssetCustomFields queries against the API directly to discover the available column names for your tenant.

Example Workflows

Auto-create a ticket from a webhook: Webhook → SuperOps (Ticket → Create) with the requester email pulled from the payload.

Monitor critical alerts: Schedule (every 5 min) → SuperOps (Alert → Get Many, with severity condition) → IF (count > 0) → Microsoft Teams Notification.

Sync assets to a database: SuperOps (Asset → Get Many, Return All) → Postgres (upsert by assetId).

Auto-bill a worklog entry when a ticket is resolved: SuperOps Trigger (or polling) → SuperOps (Worklog → Create) with the resolved technician and ticket ID.

Supported n8n Versions

Tested against n8n 1.x. Requires Node.js 18.10 or newer.

Roadmap

This package currently covers the core MSP operations. Future versions may add:

  • Service catalog items, contracts, and invoices
  • IT Documentation and KB articles
  • Tasks and projects
  • Technicians and client users
  • Trigger node for SuperOps webhook events

License

MIT