Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-opensolar
An n8n community node package for OpenSolar — a
regular node (OpenSolar) covering the OpenSolar REST API, and a webhook-based trigger node
(OpenSolar Trigger) that starts a workflow when OpenSolar pushes an event.
Installation
n8n Cloud / self-hosted, via the UI
In n8n, go to Settings > Community Nodes, select Install, and entern8n-nodes-opensolar.
Self-hosted, via npm
npm install n8n-nodes-opensolar
See n8n's community nodes installation guide
for more options (Docker, N8N_CUSTOM_EXTENSIONS, etc.).
Credentials
Both nodes use a single OpenSolar API credential: a bearer token sent asAuthorization: Bearer <token> on every request.
- Obtain a token via
POST https://api.opensolar.com/api-token-auth/with your OpenSolarusername/password(andtokenfor your current MFA code, if enabled) — see
Getting Bearer Tokens for the
full request/response shape, including the flow for Nearmap (NMOS) logins. - Standard user tokens expire after 7 days. For a token that doesn't expire — the normal
choice for an automation credential — set your OpenSolar user as a machine user:PATCH https://api.opensolar.com/auth/users/{user_id}/with body{"is_machine_user": true},
using the user's numeric ID (not a role ID). See
How to Set Machine User. - Paste the token into the credential's Token field in n8n.
As of March 2026, calling the OpenSolar API at all requires your org to be on a paid API
Access or Raw Data API Access plan (a 30-day free trial is available) — see
API Access Plans. A few fields and one
endpoint (Proposal Data) are gated to Raw Data API Access specifically; where that applies, the
relevant resource below calls it out.
Node: OpenSolar
Every operation is scoped to an Org ID (there is no "list my orgs" endpoint in the OpenSolar
API, so this is a plain required field, not a dropdown — find your org ID in the OpenSolar app
URL or via the Org resource's Get operation).
| Resource | Operations |
|---|---|
| Project | Get Many, Get, Create, Update, Update (Partial), Delete, Share/Unshare |
| Contact | Get Many, Get, Create, Update, Delete |
| System | Get Many, Get (read-only — systems are created via the OpenSolar design tool, not the API) |
| System Details | Get |
| System Image | Get |
| Generate Document | Generate (proposals, contracts, and other PDF/CSV project documents) |
| Proposal Data | Get (requires Raw Data API Access — returns HTTP 402 otherwise) |
| Org | Get, Update |
| Workflow | Get Many, Get, Create, Update, Delete |
| Role | Get Many, Get (read-only) |
| Costing | Get Many, Get, Create, Update, Delete |
| Payment Option | Get Many, Get, Create, Update, Delete |
| Pricing Scheme | Get Many, Get, Create, Update, Delete |
| Module Activation | Get Many, Get, Create, Update, Delete |
| Inverter Activation | Get Many, Get, Create, Update, Delete |
| Battery Activation | Get Many, Get, Create, Update, Delete |
| Other Component Activation | Get Many, Get, Create, Update, Delete |
| Private File | Get Many, Get, Create, Update, Delete |
| Connected Org | Get Many, List Pending Requests, Create Connection Request, Accept Pending Request, Enable/Disable Connection, Delete Connection |
| Permission Role | Create (no Get/Update/Delete is documented for this endpoint) |
| Bulk Share | Share/Unshare (share or unshare a batch of one entity type — pricing schemes, costings, adders, and more — with a connected org) |
| Webhook | Get Many, Get Many Process Logs, Get Many Queued, Create, Update (webhook registrations; see the Trigger node below to actually receive events) |
Node: OpenSolar Trigger
A proper n8n trigger node: it self-registers a webhook with OpenSolar on activation and starts
the workflow whenever a matching event arrives. Select which models to subscribe to —
Project, Contact, Event, Quote, QuoteActivityLog — and OpenSolar will POST to
n8n on every create/update/delete for those models (QuoteActivityLog is create/delete only; it's
never updated).
OpenSolar's Webhooks API has no documented delete endpoint. Deactivating or deleting this node
disables the webhook in OpenSolar (PATCH enabled=false) rather than removing it — the
subscription stays visible, disabled, under Control > Integrations > Webhooks in the
OpenSolar app. Re-activating the same node re-enables that same webhook rather than creating a
duplicate.
Compatibility
Requires n8n with community node support. Built and tested against n8n-workflow ^2.16.0. No
external runtime dependencies.