Skip to content

Kundenportal

Das Kundenportal ist ein Self-Service-Portal fuer Endkunden mit eigener Authentifizierung, getrennt von den internen Agent-Konten.

Zugang

Das Portal ist unter /portal/login erreichbar. Kundenportal-Benutzer werden in einer separaten Tabelle (customer_portal_users) gespeichert und haben keinen Zugriff auf die interne ITSM-Oberflaeche.

Demo-Zugang (Seed-Daten):

Funktionen

Meine Tickets

  • Liste aller Tickets des Benutzerkunden
  • Filter nach Status
  • Ticket-Detail mit Kommentaren

Sichtbarkeit: Nur externe Kommentare (keine internen Agent-Notizen)

Neues Ticket erstellen

Portal-Benutzer koennen Tickets einreichen:

  • Typ (Incident / Change)
  • Titel und Beschreibung
  • Prioritaet

Das Ticket wird mit source: 'portal' und der customer_id des Portal-Benutzers erstellt.

Kommentare

Portal-Benutzer koennen externe Kommentare hinterlassen. Agents sehen diese Kommentare in der regulaeren Ticket-Ansicht.

Wissensdatenbank

Alle veroeffentlichten, oeffentlichen KB-Artikel sind im Portal sichtbar:

  • Suche
  • Artikelkarten mit Kategorie und Tags
  • Vollstaendige Artikelansicht (Markdown-gerendert)

Authentifizierung

Das Portal nutzt eigene JWT-Tokens mit dem portal: true-Flag. Die Mandantenzuordnung erfolgt ueber den tenantSlug beim Login.

json
{
  "sub": "portal-user-id",
  "email": "user@customer.example",
  "displayName": "Max Mustermann",
  "customerId": "customer-uuid",
  "tenantId": "tenant-uuid",
  "portal": true
}

Portal-Benutzer verwalten

Portal-Benutzer werden derzeit direkt in der Datenbank erstellt. Eine Admin-Oberflaeche fuer die Portal-Benutzerverwaltung ist geplant.

REST API (Portal-Endpunkte)

POST /api/v1/portal/auth/login         # Portal-Login (gibt JWT zurueck)
GET  /api/v1/portal/auth/me            # Eigenes Profil + Kundeninfo
GET  /api/v1/portal/tickets            # Eigene Tickets (paginiert)
GET  /api/v1/portal/tickets/:id        # Ticket-Detail + externe Kommentare
POST /api/v1/portal/tickets            # Neues Ticket erstellen
POST /api/v1/portal/tickets/:id/comments # Kommentar hinzufuegen
GET  /api/v1/portal/kb                 # Oeffentliche KB-Artikel (optional: ?q=)

Veröffentlicht unter der AGPL-3.0 Lizenz.