A platform first,
products second.
Every service desk is an app on the same foundation, so a capability built once — an SLA clock, an approval step, a report — is immediately available to every team.
Tenant, company, app.
Everything in the platform sits in a three-level hierarchy. Isolation is enforced on every query: one tenant never sees another’s data, and roles decide which companies and apps a person can reach.
Contract holder
For example a municipality or a holding. Isolation starts here: one tenant never sees another’s data.
municipality / holding / customerLegal or organizational unit
Has its own users, departments, sites and CMDB. A holding runs many companies on one installation.
users / departments / sites / calendarsWorkspace for one team
Created from a template in one step; fields, statuses, workflows, roles, SLAs and menu take shape through configuration.
ITSM / HR / CSM / facilities / events / SDLCHierarchy and the shared CMDB
isolationOne CMDB, every app.
The CMDB is shared by the whole company and fed by the platform’s own discovery. Apps consume the CMDB; they never own a private copy of it.
- One shared pool per company.
- Tenant and company isolation on every query.
- Role scopes: assigned to me, my team, my company.
One physical table per record kind.
Every request, incident, problem, change, case, work order, project, epic and sprint — across every tenant and every app — lives in the same record store and is told apart by its type. Team-specific fields live in flexible JSON columns that are indexed and searchable.
// one table, separated by type { "tenant_id": "acme-holding", "company_id": "acme-energy", "app_id": "itsm", "type": "incident", "number": "INC-0021299", "state": "in_progress", "assignment": { "team": "platform-ops" }, "fields": { // team-specific, indexed "impact": "high", "ci_ref": "SRV-EBLD-WEB01", "root_cause": "db_saturation" }, "sla_due_at": "2026-10-27T16:40:00Z" }
Assets, knowledge articles and CIs have their own shared stores because their lifecycles differ. Everything else uses the same engine.
- A new department is onboarded in hours.
- Cross-process reports need no integration.
- Upgrades never have to migrate customer-specific tables.
Relationship diagram
CMDBEvent-driven and durable.
A record change commits together with its history and a domain event in one transaction, so no rule and no SLA misses a change, even across restarts.
Committed as one transaction
Every change to a record commits together with its history and a domain event in one transaction, so a timer or a rule never misses a change, even across restarts.
Background worker
It relays events to SLAs, automation rules and workflows. Long-running sweeps (SLA breaches, schedules, discovery housekeeping) run on a single elected leader.
One data model
One physical table per record kind. Assets, knowledge articles and CIs have their own shared stores because their lifecycles differ.
Customisability without custom code.
Administrators shape each app through screens, not development projects. Every option below is configuration that survives upgrades and can be moved between environments as a package.
Fields & forms
More than 21 field types. Fields are defined in layers (record type → app → service template) and a more specific layer can override or hide an inherited field.
Custom tables
Lookup lists (vendors, cost centers) or full custom objects with numbering, references and forms. No database change is involved.
Statuses & lifecycle
Per-app status sets and a lifecycle workflow that defines which moves are allowed, who may make them, and what must be true first.
Process workflows
A visual designer for approvals, tasks, timers, parallel branches and joins, notifications, scripts and AI agent steps.
Automation rules
“When this happens and these conditions hold, do that.” 18 action types; any action can be delayed.
UI policies & validation
Make fields mandatory, read-only or hidden based on other values, and block invalid changes before they are saved.
Scripts
JavaScript for the cases configuration cannot cover, run in an isolated sandbox with a curated, tenant-guarded API. Script Includes work like libraries.
SLA / OLA / UC
Several policies per record type matched on any attribute; business-hour calendars with holidays; pause on hold; breach escalation and at-risk warnings.
Roles & access
A permission matrix per record type (view, create, edit, transition, approve, export …) with scopes such as assigned to me, my team, my company, plus field-level hiding.
Reports & dashboards
A safe query builder over any field of any object (following references two levels deep), charts, KPIs and drag-and-drop dashboards.
Configuration packages
Export a whole app or a single workflow, rule or template as a portable bundle and import it elsewhere with a full dry-run preview first.
Approvals, tasks, parallel branches.
The visual process designer combines approvals, tasks, timers, parallel branches and joins, notifications, scripts and AI agent steps. An approver can be a manager, a team, a department head or the result of a script.
- Two-level approval (manager, then head of department) is built in.
- Any action can be delayed; SLA clocks pause on hold.
- Script steps run in the sandbox with the curated API.
Steps
21+ field types, 18 action types.
Fields and actions are defined as data. Adding a field does not change a database schema, and writing a new automation does not open a code branch.
SLA compliance · last 12 weeks
%96,4A single Docker Compose stack is enough.
PostgreSQL 17, Node.js and a React web client. A single Docker Compose stack is enough for a full installation, and the data stays in the customer’s data center.
PostgreSQL 17
Data layer
Node.js
Application server
React
Web client
Docker Compose
Single-stack install
Roadmap: SAML/OIDC single sign-on, MFA and workforce SCIM. Local and AD/LDAP login with provisioning works today.
Enterprise scale, auditable governance.
In a multi-company installation, scale is not only about server count: who sees what, which change is audited, and which background job runs exactly once are scale too.
Isolation on every query
One tenant never sees another’s data; roles decide which companies and apps a person can reach.
Audit trail and history
Every record change is written together with its history; access changes and sign-ins are audited.
One leader, consistent background work
Long-running sweeps (SLA breaches, schedules, discovery housekeeping) run on a single elected leader, so multi-node installations never duplicate work.
Governance through configuration
Apps and workflows move between environments with a full dry-run preview, so test and production share the same configuration.
Test the architecture against your own scenario.
In the demo we walk through the record engine, approval designer and CMDB impact analysis using your own processes.