OTRS CRM Wizard — KI-gestütztes Kundendienst-Cockpit
CASE STUDY·April 2026

OTRS CRM Wizard — KI-gestütztes Kundendienst-Cockpit

Wie ich mit einem lokalen 26B-LLM, fünf Microservices und einem Wort-Diff ein komplettes Agent-Cockpit gebaut habe

PROJEKT

OTRS CRM Wizard — KI-gestütztes Kundendienst-Cockpit

TECHNOLOGIEN

Next.js 16Gemma 4 26BMLXPrisma 7PostgreSQLSSEStreamingTailwind v4PHP/Slim 3Prompt Engineering

Herausforderung

Im Kundendienst eines großen E-Commerce-Unternehmens laufen täglich hunderte Tickets über OTRS ein — Versandprobleme, Retouren, Zahlungsfragen, Rückrufwünsche. Jedes Ticket muss gelesen, eingeordnet und beantwortet werden. Dieser Prozess ist repetitiv, zeitintensiv und fehleranfällig, besonders bei hohem Volumen.

Mein Auftrag: ein KI-gestütztes Cockpit für die Kundendienst-Agents, das jedes eingehende Ticket automatisch analysiert, klassifiziert, eine Stimmungs- und Dringlichkeitseinschätzung liefert und einen Antwort-Entwurf vorschlägt — alles in Echtzeit, alles lokal gehostet, kein Cloud-LLM, keine Kundendaten verlassen das Netzwerk.

Zusätzliche Anforderungen machten das Projekt komplex:

  • Kundendaten aus der Shop-Datenbank (Bestellhistorie, Bonuspunkte, Adressen) mussten in die KI-Analyse einfließen
  • Die KI durfte keine Fakten erfinden — jede unsichere Aussage musste als Warnung markiert werden
  • Mehrere Shops mit unterschiedlichen Sprachen (Deutsch, Polnisch) und eigenen Grußformeln mussten unterstützt werden
  • Alle Agent-Aktionen (wer hat was geändert, welchen KI-Entwurf wie editiert) mussten nachvollziehbar protokolliert werden
  • Das System musste auf Apple Silicon lokal laufen — reine Inferenz, kein GPU-Cluster

Lösung

Ich entwarf und implementierte eine Toolchain aus fünf Komponenten, die über Bearer-Token und SSE miteinander kommunizieren. Jede Komponente hat eine klare Verantwortung — von der Webhook-Verarbeitung bis zur Antwortgenerierung.

1. Webhook Sink — die zentrale Datenhaltung

Ein Next.js 16 Service empfängt ArticleCreate-Webhooks vom Ticketsystem, speichert Tickets und Artikel in PostgreSQL via Prisma 7 und streamt Änderungen in Echtzeit via Server-Sent Events (pg_notify). Der Sink ist die Single Source of Truth: hier landen KI-Insights, Drafts, Kundendaten und Audit-Logs. Eine Public API mit 22 Filter-Parametern macht die Daten für alle anderen Services zugänglich.

2. LLM Tools — der KI-Orchestrator

Ein eigener Service baut die Prompts, injiziert Shop-Wissen aus 19 internen Wissensartikeln (rule-basiert gematcht, max. 2 Artikel, 3000-Char-Budget) und streamt die Ergebnisse als strukturiertes JSON. Insights liefern ein 11-Feld-Schema: Sentiment, Dringlichkeit, Zusammenfassung, empfohlene Aktionen, Klassifikation (10 Kategorien) und ein draftNeeded-Gate, das bei Spam oder irrelevanten Nachrichten den Entwurf unterdrückt. Drafts werden mit Anti-Halluzinations-Prompt, Gender-Erkennung aus dem Vornamen und shopspezifischen Grußformeln generiert.

3. CRM Helper — das Agent-Frontend

Das Herzstück: ein Next.js 16 Frontend mit Tailwind v4, Framer Motion und einer eigenen User-Datenbank (JWT, drei Rollen). Agents sehen eine Ticket-Liste mit farbigen Brain-Indikatoren (5 Zustände), klicken ein Ticket an und bekommen sofort die KI-Einschätzung plus einen editierbaren Antwort-Entwurf. Ein dreistufiger Auto-Worker (SSE-getriggert, 10s Fallback-Poll) analysiert neue Tickets automatisch im Hintergrund: Prio 1 Insights, Prio 2 Kundendaten aus der Shop-API, Prio 3 Antwort-Entwurf.

4. Shop CRM API — Kundendaten aus der Quelle

Um dem LLM und den Agents Kontext zu geben, baute ich eine REST-API in das bestehende PHP/Slim 3 Shop-Backend ein. Sie liefert per verschlüsseltem Email-Lookup das vollständige Kundenprofil: Bestellhistorie mit Produkten und Tracking, Bonuspunkte, Adressen. Die Daten fließen automatisch in den Insight-Prompt ein und werden als Kundenprofil-Karte mit Tier-Badge (Bronze/Silver/Gold basierend auf Umsatz/Monat) in der Sidebar angezeigt.

5. Lokale Inferenz mit MLX

Alle KI-Operationen laufen lokal auf Apple Silicon über mlx_lm.server mit Gemma 4 26B-A4B (Mixture of Experts, 4-bit). Kein Token verlässt das Netzwerk. Das Modell liefert ~15 tok/s Output bei Streaming. Token-Verbrauch wird pro Request getrackt und im Dashboard aggregiert (tok/s, tok/h). Ein entdecktes Prompt-Cache-Problem nach tagelangem Betrieb löste ich durch den --prompt-cache-size 1 Parameter.

6. Audit-Log mit Wort-Diff

Wenn ein Agent einen KI-Entwurf editiert und abschickt, berechnet das System einen wortbasierten Diff (Longest Common Subsequence) zwischen Original und editierter Version. Administratoren sehen im Audit-Log genau was die KI vorgeschlagen hat und was der Agent geändert hat — grün für hinzugefügt, rot für entfernt. Ticket-Zuweisungen werden mit assign/reassign/unassign differenziert.

Code-Beispiele

Ergebnisse

Innerhalb von zehn Tagen entstand ein produktionsreifes System mit 53 API-Endpoints über fünf Komponenten:

  • 53 dokumentierte API-Endpoints (15 Sink, 5 LLM Tools, 32 CRM Helper, 1 Shop API)
  • 11-Feld KI-Analyse pro Ticket: Sentiment, Dringlichkeit, Zusammenfassung, Klassifikation, empfohlene Aktionen, draftNeeded-Gate
  • Automatische Antwort-Entwürfe in Deutsch und Polnisch mit shopspezifischen Grußformeln und Gender-Erkennung
  • ~15 tok/s Inference-Geschwindigkeit mit Gemma 4 26B lokal auf Apple Silicon — keine Cloud, keine Kundendaten verlassen das Netzwerk
  • Dreistufiger Auto-Worker: neue Tickets werden ohne manuelle Aktion analysiert, mit Kundendaten angereichert und mit Entwurf versehen
  • Vollständiges Audit-Log mit Wort-Diff — nachvollziehbar was die KI vorgeschlagen hat und was der Agent geändert hat
  • Kundenprofil-Integration mit Tier-Klassifizierung direkt aus der Shop-Datenbank
  • KI-Tagesbriefing: automatisch generierte Zusammenfassung der Ticket-Lage (stündlich aktualisiert)

Das System läuft auf Coolify (Docker) im internen Netzwerk und wird über Webhooks mit Tickets versorgt. Die Agents arbeiten ausschließlich im Browser — Login, Analyse, Entwurf, Versand, alles in einer Oberfläche. Die KI entscheidet nie alleine: jede Antwort wird vor dem Versand vom Agent geprüft und ggf. angepasst.

Visuelle Eindrücke

CRM Wizard Systemarchitektur

Fünf Komponenten, verbunden über Bearer-Token und SSE: Webhook Sink (Datenhaltung), LLM Tools (KI-Orchestrator), CRM Helper (Agent-UI), Shop CRM API (Kundendaten), MLX Server (lokale Inferenz).

CRM Wizard Systemarchitektur
Ticket-Detail-Ansicht mit KI-Analyse
Audit-Log mit Wort-Diff