Self-hosted · AGPL-3.0 · Python + React

Modern helpdesk. Znuny/OTRS-compatible.

Tiqora is a clean-room reimplementation of a ticket system that speaks the OTRS / Znuny 6.0–7.3 database — with a first-class web UI, AI-assisted replies & summaries, and a path to run alongside your existing instance.

Built for teams leaving the Perl era

Same familiar ticket data model when you need it — a modern stack and UI when you work in it every day.

UI

Modern web UI

Agent workspace, admin console, and customer portal — a clear step up from classic OTRS/Znuny screens, in dark and light themes built for daily agent use.

DB

OTRS/Znuny 6.0–7.3 DB compatible

Runtime schema profile adapts to peers from OTRS 6.0 through Znuny 7.3 on MariaDB/MySQL and PostgreSQL. Parallel operation on the same database is first-class. See matrix ↓

AI

AI-ready search & MCP

Fast ticket search via Meilisearch, plus an MCP server so AI agents use the same permission engine as humans.

✎

AI agent assistance

Per-queue policies drive draft replies, summaries, triage and optional autonomous auto-replies; agents refine their own text and review the changes as a diff, and can pause the AI per ticket. Each task routes to its own model profile, PII is masked before every LLM call, and the full audit log exports to a PII-aware PDF.

CI

ITSM & CMDB

Incidents, problems, major incidents and a priority matrix. Read the CIs from Znuny ITSM 6.5/7.3 (“Znuny führt das ITSM”) or keep them in Tiqora's own CMDB (“Tiqora führt das ITSM”) with versioned classes and impact analysis. An importer moves them over, with a dry run and a way back. The ITSM mode can also be off. Screens ↓

Δ

Change management

While Tiqora leads the ITSM: a change is a ticket plus a change record with type, phases, plans, time window, risk and impact. Tasks, templates and standard changes, a calendar with freeze windows and conflict checks, CAB meetings with agenda and minutes. Znuny's changes stay read-only, live or in an archive; Tiqora never writes them. Narrower than Znuny's: no change conditions or notification rules of its own. It has its own off-switch.

✓

Approvals

One engine for approval requests on a ticket: stages and parallel steps, rules (one, all, at least n, majority), deadlines with reminders and escalation, substitutes. People decide in their inbox, in the ticket, through a single-use e-mail link, in the portal if you allow customers, over REST or MCP. Not yet as a process step. An admin switch turns the module off and deletes nothing. Screens ↓

⇢

Process management

Runs Znuny processes from their deployed state, for agents and in the portal. A designer for steps, forms, transitions and actions, with validation, Znuny YAML import/export and versions; deploy from Tiqora while Znuny still runs via the TiqoraSync add-on.

▤

Reports & dashboards

25 core and 16 ITSM built-in reports (the ones on CIs and changes need Tiqora to lead the ITSM), a report builder, saved reports and searches, import of Znuny statistics including the ITSM ones, PDF/XLSX/CSV export and scheduled delivery by e-mail. Widget dashboards per agent with role templates, report widgets, a TV mode and read-only wallboard links. Screens ↓

☎

Web chat, Telegram & phone

An embeddable web chat with opening hours, offline messages, uploads and recognised visitors; an AI assistant can answer first and hand over to the team. A real chat view for Telegram tickets; CTI call popups, caller lookup and compact phone tickets for the hotline. Screens ↓

🔐

PGP & S/MIME

Verify and decrypt inbound mail, sign and encrypt replies, notifications and auto-responses — with per-queue defaults and the key stores shared with Znuny. Screens ↓

GD

GDPR tooling

Customer anonymization, retention jobs, and audit trails — built into admin workflows.

🔒

SSO, provisioning & MFA

SAML 2.0 and OIDC for agents and customers with several identity providers, just-in-time accounts and role rules; SCIM 2.0 provisioning; step-up MFA and a session lifetime per provider. Also LDAP/AD, Kerberos/SPNEGO, legacy password hashes, TOTP and passkeys.

⇄

Integration friendly

REST /api/v1 and webhooks. GenericInterface REST/SOAP compatibility on both sides: the ticket and ConfigItem* operations as a provider, ticket-event invokers with a debugger and dry run as a requester. Channel plugins (email, Telegram, phone/CTI, SMS, WhatsApp, web chat).

⧉

Plugins

Python plugins with their own settings, routes, jobs, MCP tools, UI slots and database tables, plus extension points for hooks, process actions, channels, dynamic field types, report sources and more. Admins install signed packages (unsigned only when explicitly allowed) or add package repositories in the web UI.

文

49 UI languages

Full Znuny language catalogue in the agent UI: all 48 Znuny .po locales plus English source — RTL (Arabic, Persian, Hebrew) included. Preference syncs with Znuny UserLanguage.

λ

No Perl app stack

Python FastAPI backend, React frontend, Redis, Meilisearch. Clean-room code — not a Znuny fork.

P

Customer portal & KB

Optional self-service portal (opt-in) with tickets, process tickets, web chat and the customer's own systems from the CMDB, and a Markdown knowledge base with agent editing and portal search.

Compatibility matrix

Supported peer databases for parallel operation. Preferred peers: Znuny 6.5 or 7.3. Full details in docs/support-matrix.md.

Peer product Profile Parallel-op Notes
OTRS 6.0.x / Znuny 6.0 otrs-znuny-6.0 Yes Table groups (hardest adapter)
Znuny 6.1 – 6.4 znuny-6.1 … 6.4 Yes Optional mail OAuth / tables per minor
Znuny 6.5 znuny-6.5 Yes Baseline · LTS, preferred peer
Znuny 7.0 – 7.3 znuny-7.0 … 7.3 Yes State/priority colour (7.0+); preferred 7.x: 7.3 (current release)
MariaDB / MySQL · full matrix PostgreSQL · schema matrix TiqoraSync 6.0.x–7.3.x Layer A + B golden validated

See it in action

Pick a topic, then click through its screens. Click the large image to view it full size; arrow keys step through the topic.

Three ways to run

Greenfield, side-by-side with Znuny, or a controlled migration path.

Fresh install

Empty database, bootstrap with tiqora bootstrap, and run Tiqora standalone.

Parallel to Znuny

Share one OTRS/Znuny 6.0–7.3 database. Additive tiqora_* tables only — no peer schema changes until you choose ownership.

Migrate away

Take over daemons feature-flag by feature-flag, then follow the cutover runbook when you are ready. How it works →

Try it locally in two minutes

curl -fsSLO https://raw.githubusercontent.com/CygnusNetworks/tiqora/main/docker-compose.quickstart.yml
docker compose -f docker-compose.quickstart.yml up -d

Then open http://localhost:8000/ and sign in as root@localhost / tiqora-demo. Comes with 40 demo tickets; evaluation only (fixed passwords, plain HTTP).

Python 3.12 · FastAPI React · TypeScript · Vite PostgreSQL / MariaDB Meilisearch Redis Docker AGPL-3.0

Explore the interactive demo

Full agent, admin, and portal UI in your browser — mock data only, nothing is saved.