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-cloudradial

v0.1.0

Published

n8n community nodes for CloudRadial (MSP client portal): full v2 API coverage, entity polling trigger, and form-submission webhook trigger

Readme

n8n-nodes-cloudradial

n8n community nodes for CloudRadial (MSP client portal platform). Full coverage of the CloudRadial v2 API plus two trigger nodes.

Building workflows against these nodes (human or LLM)? USAGE.md is the exact parameter-level contract: node type names, resource/operation/parameter values, output shapes, and gotchas.

Nodes:

  • CloudRadial — action node covering all 29 v2 API resources
  • CloudRadial Trigger — polling trigger: fires when records are created or updated
  • CloudRadial Form Trigger — webhook trigger for form submissions (requires a publicly reachable n8n instance)

Installation

Community node installation: Settings → Community Nodes → Installn8n-nodes-cloudradial. See the n8n docs for details.

Credentials

Generate an API key pair in CloudRadial under Partner > Settings > Integrations (under Configuration) > API > +Add API Key. The Private Key is shown only once.

| Field | Value | |---|---| | Public Key | API key pair public key (Basic auth username) | | Private Key | API key pair private key (Basic auth password) | | API Base URL | https://api.us.cloudradial.com unless CloudRadial tells you otherwise | | Portal Base URL | Your branded portal domain, e.g. https://portal.example.com — used to build formUrl deep links on Catalog items; optional |

The CloudRadial node

Resources: Archive Item, Article, Assessment, Catalog Item, Catalog Question, Certificate, Company, Company Group, Company Group Member, Course, Course Enrollment, Course Lesson, Course Lesson History, Domain, Endpoint, Endpoint Application, Endpoint Custom Property, Feedback, Flexible Asset, Flexible Asset Field, Flexible Asset Type, Media, Menu, Product, Quickstart, Service, Service Install, Token, User.

Semantics worth knowing:

  • Get Many uses the OData endpoints: optional Company filter, raw $filter, $orderby, $select, and Return All paging. Soft-deleted rows are excluded by default where the entity supports it (Options → Include Deleted).
  • Get looks the record up via OData on its key field — this avoids the API's hidden companyId query-parameter requirements on singular reads.
  • Create takes a raw JSON body matching the API schema. Update sends JSON Patch (RFC 6902): either simple field/value pairs or raw patch operations.
  • Catalog Items returned by Get/Get Many carry a computed formUrl — the per-company portal deep link (/app/service/request/{id} or /app/service/report/{id}) built from your Portal Base URL. Catalog rows are per-company: resolve the right company's row, never match forms by subject text (subjects are not unique).
  • Catalog Item → Get can attach the form's question definitions (Include Questions) and resolve Template-type questions to the partner template's real question set (Resolve Template Questions). Note: per-option conditional-reveal wiring is not exposed by the API — childQuestionIds lists all conditionally revealed questions of a parent without saying which option reveals which.
  • Tokens (@-prefixed template variables) are keyed by name + company scope; company scope 0 is the partner-level (global) scope. Get Many uses the REST list because the OData token entity omits partner-scope rows entirely.
  • Endpoints can be addressed by serial number, machine name + manufacturer, or endpoint ID. Update Warranty does not support ID addressing (API limitation).
  • There is no Ticket resource — by design. CloudRadial hands tickets to your PSA and keeps only routing/cross-reference data (psa* fields). Do ticket work in your PSA's node and join on the psa* keys.

CloudRadial Trigger (polling)

Watches a resource for Record Created or Record Updated events using dateCreated/dateModified cursors (Company and Endpoint use their monotonic integer IDs and support Created only, as do a few other resources without a modification timestamp). Optional per-company filtering and soft-delete inclusion. The first poll initializes the cursor and emits nothing — history is not replayed. Manual execution returns the newest matching record as a sample.

Form submissions are not pollable — submissions become PSA tickets, not CloudRadial records. Trigger those workflows from your PSA (submitted answers marked "include in ticket" are folded into the PSA ticket), or use the Form Trigger below if your n8n instance is publicly reachable.

CloudRadial Form Trigger (webhook)

Receives CloudRadial's outbound JSON webhooks, which fire on Problem Report / Service Request / Feedback submission (plus Policy and Report Archive alerts). Paste the node's webhook URL into the form's Routing settings in CloudRadial. Payload top-level objects: User, Company, Ticket, Feedback, Routing, Agent, and Questions[]; the node optionally adds a flattened questionsById map. CloudRadial does not sign webhooks — set a Secret Token and append ?token=... to the URL you paste.

Known limitations

  • Media/Assessment binary uploads are implemented but not yet exercised against a live instance — verify before relying on them.
  • Archive Item attachment upload exists only on CloudRadial's legacy v1 API and is not implemented; the v2 Create operation creates metadata-only items.
  • CloudRadial advertises no rate limits (no X-RateLimit-* headers). Poll conservatively.
  • Every API response carries an x-documentation-url header linking a per-request debug log — useful when working with CloudRadial support.

License

MIT