Package Information
Available Nodes
Documentation
n8n-nodes-exia
An n8n community node for Exia. It talks to the Exia third-party
integration API (/api/v1) using a scoped API key, so n8n workflows can drive Exia
without touching the database directly.
This is the recommended integration path (a first-party community node, like the HubSpot
or Google nodes) — not a fork of n8n. Your workflows stay maintainable across n8n
upgrades, and the licensing is clean: this package is your own code under its own license,
it merely consumes n8n's public node API.
Operations
Action Node (the main use case — invoke any Exia ActionNode by name):
- Execute — run an ActionNode with parameters. Synchronous nodes return their rows;
background nodes return a job, and the node can poll until it finishes (Wait for Background Job). - List — list the ActionNodes the key may execute.
- Get Schema — inputs/outputs for one ActionNode.
- Get Job — read a background job's status.
Record (menu-backed CRUD):
- Get Many / Get / Create / Update / Delete against a menu's data source by Menu ID.
Company:
- Get Many — list visible companies.
Backup:
- Get Many — list available database backups.
- Download — pull a completed dump as binary data (into an output field, default
data),
ready to send offsite (S3, FTP, email, …). Requires thebackups:readscope.
Triggers
Three trigger nodes start workflows from Exia.
Exia Menu Save Trigger (push)
Fires when a record is saved on a menu — through the Exia back-office UI or the
integration API. On activation it registers its webhook URL with Exia; Exia POSTs the event
fire-and-forget, so it never slows a save. Filters:
- Menu ID — only saves on that menu (0 = any).
- Operation — any / created / updated.
- Only If These Columns Changed — comma-separated columns; fire only when one of them was
written by the save (leave empty for any column).
Payload: { event, menuId, recordId, operation, columns }.
Exia Node Executed Trigger (push)
Fires when an ActionNode finishes (UI button, API call, or background job). Same
register/fire-and-forget model. Filters: a specific ActionNode (or any) and Status
(any / success only / failure only). Payload: { event, node, ok, durationMs, source }.
Both push triggers need the webhooks:manage scope, and Exia must be able to reach n8n's
webhook URL on the network.
Exia Trigger (polling)
Polls a synchronous ActionNode on n8n's schedule and emits its rows — useful when you want
to pull on an interval rather than receive a push. Detect "new" either by leaving
Deduplicate By Field empty (the node returns only-new rows) or by setting it to a monotonic
column (the trigger tracks the highest value seen). Background ActionNodes can't be polled.
Credentials
Create an Exia API credential:
- Base URL — your Exia host, e.g.
https://exia.example.com(no/api/v1suffix). - API Key — a scoped key from Exia → Admin → Integration Keys. Sent as the
X-API-Keyheader. - Ignore SSL Issues — for local/dev instances with self-signed certs.
The key's scopes (nodes:execute, records:read, records:write, records:delete,backups:read, webhooks:manage) and optional node/menu allowlists are enforced
server-side; give each key only what its workflow needs.
Install
Self-hosted, this instance (no verification needed):
# in your n8n install / custom-extensions dir
npm install n8n-nodes-exia
Or build and point N8N_CUSTOM_EXTENSIONS at the package:
npm install
npm run build
# then set N8N_CUSTOM_EXTENSIONS=/path/to/n8n-nodes-exia in n8n's env
GUI install / public registry: optional — see n8n's
community node verification (verified
nodes need zero runtime deps, a README, and GitHub Actions provenance publishing).
Development
npm install
npm run build # tsc + copies the icon into dist/
npm run dev # tsc --watch
Notes
/api/v1is plain JSON (it is exempt from Exia's SPA CBOR wire format), so this is a
straightforward JSON client.- Credential test calls
GET /api/v1/companies, which only requires a live, non-revoked key.