Package Information
Documentation
n8n-nodes-xippo-open-suite
This package provides an n8n community node for Xippo Open Suite.
It lets you read and write Axelor records from n8n workflows and receive events pushed by the Axelor xippo-n8n module.
n8n is a fair-code licensed workflow automation platform.
What this node does
The Xippo Axelor node talks to Axelor's native REST web services
(/ws/rest/:model) and lets you load and write records directly from n8n:
- Resource:
Record - Operations:
Get—GET /ws/rest/{dataType}/{id}Create—PUT /ws/rest/{dataType}(payload withoutid)Update—POST /ws/rest/{dataType}/{id}(payload merged withid)Delete—DELETE /ws/rest/{dataType}/{id}Search—POST /ws/rest/{dataType}/search(list of field/operator/value
criteria combined with AND, plus an optionallimit)
Data Type expects the fully qualified Axelor model class name (for examplecom.axelor.apps.base.db.Partner). Data (JSON) holds the record fields as a
JSON object. For Search, add one or more Criteria (field, operator, value);
supported operators are =, !=, <, <=, >, >=, like, notLike,ilike, notIlike, in, notIn, isNull and isNotNull (value is ignored
for the null checks). Outbound requests are authenticated with Axelor's native
API key (see below).
The Xippo Axelor Trigger node receives events pushed by the Axelorxippo-n8n module and validates them against a shared Bearer token and signing
secret.
Installation
Follow the official n8n guide for community nodes:
Credentials
Authentication is split by direction so that each side uses Axelor's own
native mechanism:
Xippo Axelor API (xippoAxelorApi) — n8n → Axelor
Used by the Xippo Axelor node for outbound calls. Authenticates against
Axelor's native REST web services via the API-KEY HTTP header.
Axelor URL: Base URL of your Xippo Open Suite instanceAPI Key: An Axelor API key generated per user from the
User Preferences → Manage API key form (see
https://docs.axelor.com/adk/latest/dev-guide/web-services/auth.html).
Xippo N8n Webhook API (xippoN8nApi) — Axelor → n8n
Used by the Xippo Axelor Trigger node to validate incoming webhook requests
pushed by the Axelor xippo-n8n module.
Bearer Token: shared secret expected in theAuthorization: BearerheaderSigning Secret: shared secret expected in theX-Xippo-Signature-Secret
header
Both secrets must match the Bearer token and Signing secret configured in
the Axelor n8n app (AppN8n). Leave a field empty to skip that specific check.
Usage
- Add the
Xippo Axelornode to a workflow. - Create/select
Xippo Axelor APIcredentials (Axelor URL + API key). - Choose a
Recordoperation (Get,Create,Update,Delete,Search)
and setData Type(fully qualified class name) plus the relevant parameters. - Execute the node to read or write Axelor records.
- To receive events from Axelor, add the
Xippo Axelor Triggernode and
select aXippo N8n Webhook APIcredential.
Compatibility
Built as an n8n community node package (n8nNodesApiVersion: 1).
Use with current n8n versions that support community nodes.
Development
Useful scripts from package.json:
pnpm build
pnpm dev
pnpm lint
pnpm lint:fix
Resources
- n8n community nodes: https://docs.n8n.io/integrations/#community-nodes
- n8n node development: https://docs.n8n.io/integrations/creating-nodes/
- Xippo Open Suite web services auth: https://docs.axelor.com/adk/latest/dev-guide/web-services/auth.html
GitLab CI Release
Die Pipeline in .gitlab-ci.yml baut und lintet das Package automatisch auf Branch-Pipelines. Der Job publish:npm läuft nur auf dem Default-Branch und ist bewusst manuell, damit nicht jeder Push automatisch eine neue npm-Version veröffentlicht.
Für den Publish müssen in GitLab unter Settings > CI/CD > Variables diese Variablen hinterlegt werden:
NPM_TOKEN: npm Access Token mit Publish-Rechten fürn8n-nodes-xippo-open-suite.GITLAB_TOKEN: GitLab Project Access Token oder Personal Access Token mitwrite_repository, damit die Pipeline den Tagv<package.json version>erstellen und pushen kann.
Beim manuellen Start von publish:npm wird die Version aus package.json gelesen, z. B. 0.7.0, daraus der Git-Tag v0.7.0 erstellt und danach das Package nach npm publiziert. Existiert der Tag bereits, wird er nicht erneut erstellt.