Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-symbiosika-wiki
n8n community nodes to work with the Symbiosika Wiki / Knowledge Texts part of the
Symbiosika Suite.
BETA. Built and tested against the current Symbiosika framework (
/api/v1) and
n8nn8nNodesApiVersion: 1.
This package ships two nodes and one credential:
| Node | Type | Purpose |
|---|---|---|
| Symbiosika Wiki | action | Read, create, update, search and sync wiki pages (knowledge texts) |
| Symbiosika Wiki Trigger | trigger | Start a workflow on knowledge_text.* events |
| Symbiosika Wiki API | credential | API URL + API key (sent as X-API-KEY) |
Credentials
Create a Symbiosika Wiki API credential:
- API URL – base URL of your instance, e.g.
https://your-instance.symbiosika.de(no trailing slash) - API Key – a Symbiosika API key. It is sent as the
X-API-KEYheader.
The credential is verified against GET /api/v1/ping.
The API key needs the scopes matching the operations you use:knowledge:read, knowledge:write, webhooks:read, webhooks:write, user:read
(or the wildcard scope all).
Symbiosika Wiki (action node)
Pick an Organisation (tenant – loaded from GET /api/v1/user/tenants) and an operation:
| Operation | Endpoint | Notes |
|---|---|---|
| Create | POST /knowledge/texts |
Train a new page. Title + text + optional facets, parent, team, attributes, embedding. |
| Get | GET /knowledge/texts/:id |
Single page with full text. Optional versionId. |
| Get Content | GET /knowledge/texts/:id/content |
Text only, optional fromLine / maxLines. |
| Get Many | GET /knowledge/texts |
List pages (no text). Filters + real pagination via Return All. |
| Search | GET /knowledge/texts/search |
Hybrid / full-text / semantic search. |
| Recent Changes | GET /knowledge/texts/recent-changes |
Pages changed since a date. |
| Update | PUT /knowledge/texts/:id |
Update any field. |
| Edit Content | PATCH /knowledge/texts/:id/content |
Exact string replacement (oldString → newString). |
| Append Content | POST /knowledge/texts/:id/append |
Append text with an optional separator. |
| Delete | DELETE /knowledge/texts/:id |
Soft-delete a page. |
| Sync From Source | POST /knowledge/texts/sync |
Upsert a page by a stable Source ID. |
Sync From Source (training via a source ID)
The Sync From Source operation upserts a page identified by a Source ID
(sourceIdentifier). On every run the page is matched by that ID (optionally
scoped with Match Scope), and only rewritten when the title or text actually
changed. The response reports { id, created, changed }.
- Source ID – stable identifier of the item in the source system (URL, GUID, path).
- Match Scope (JSON) – e.g.
{"source":"confluence"}, so two source systems can reuse the same IDs without colliding, and so orphan cleanup stays bounded. - Last Change / Source Date – stored in the page
meta.lastChange(bookkeeping; change detection itself is content-based). - Delete Orphans – when a run carries the full set of active source IDs, deletes pages in the match scope whose source ID is not present.
One node run syncs one page per input item, so you can drive it from any upstream
list (e.g. rows from a database, files from a folder).
Symbiosika Wiki Trigger
Registers n8n webhooks in Symbiosika and starts the workflow when the selected
events fire. Payloads carry the page metadata (id, title, timestamps, …) but not
the page text – fetch it with the Get operation if you need the content.
Events:
- Knowledge Text Created –
knowledge_text.created - Knowledge Text Updated –
knowledge_text.updated - Knowledge Text Deleted –
knowledge_text.deleted
One webhook is registered per selected event via POST /api/v1/tenant/:tenantId/webhooks/register/n8n.
Use Organisation-Wide controls whether events from the whole organisation are
delivered or only those caused by the API key owner.
The delivered JSON envelope looks like:
{
"id": "…delivery id…",
"event": "knowledge_text.updated",
"source": "user",
"tenantId": "…",
"occurredAt": "2026-01-01T12:00:00.000Z",
"data": { "id": "…page id…", "title": "…", "updatedAt": "…", "...": "…" }
}
Build
pnpm install
pnpm run lint
pnpm run build
Development
Build the nodes and mount dist into a local n8n via Docker:
pnpm run build
docker-compose up
Then open http://localhost:5678 and add the credential + nodes.
License
MIT