Zum Hauptinhalt springen

Notifications

[notifications] [admin] [portal]

In-App-Benachrichtigungen für Kunden — Wartungshinweise, Ticket-Antworten, allgemeine Updates. Optional auch als Mail.

Für wen

  • Admin erstellt + verwaltet Notifications
  • Kunde sieht sie im Portal-Header (Glocke-Icon mit Counter)

Notification-Typen

  • manual — Admin schreibt eine eigene Notification (Standardfall)
  • maintenance — System-generiert wenn Wartungsmodus aktiviert (🔧 Icon)
  • ticket_reply — auto-generiert wenn Admin auf Ticket antwortet (💬 Icon)
  • package_change — wenn sich das Paket des Kunden ändert
  • invoice — Stripe-bezogene Hinweise (Phase 2)

Schritt für Schritt — Admin

1. Notifications-Übersicht öffnen

Sidebar → Notifications.

2. Neue Notification erstellen

+ Neue Notification:

  • Audience: Alle Kunden / Spezifische Pakete / Einzelne Kunden
  • Titel + Nachricht
  • Priorität: low / medium / high
  • Gültigkeitszeitraum: starts_at + ends_at (optional, sonst ab sofort unbegrenzt)
  • Auch per Mail senden: Checkbox

3. Veröffentlichen

Veröffentlichen klicken. Kunden sehen die Notification:

  • Sofort im Portal (Glocke-Icon im Header zeigt Counter)
  • Als Mail wenn der Send-Toggle aktiv war

4. Verwalten

  • Archivieren — Notification ist nicht mehr aktiv (verschwindet aus Portal-Glocke), aber bleibt im Archiv
  • Bearbeiten — vor Veröffentlichung anpassbar; danach nur noch limitiert (Konsistenz)

Was Kunden sehen

Portal-Header

Glocke-Icon mit Counter (= ungelesene Notifications). Klick öffnet Drawer mit Liste.

Notification-Item

  • Icon (typabhängig: 💬 ticket_reply, 🔧 maintenance, ✅ package_change, 🔔 manual, 📄 invoice)
  • Titel + Nachricht
  • Zeitstempel
  • Gelesen-Button (markiert als gelesen, Counter sinkt)
  • Löschen-Button (✕) (persistent — pro Kunde "weggeklickt")

Pro-Kunde-Dismiss

Wenn ein Kunde eine Notification "wegklickt" (✕), wird die Notification-ID in seinem dismissed_notifications-Array gespeichert (Migration 048). Andere Kunden sehen sie weiterhin.

Häufige Fragen

Wie sieht eine Ticket-Antwort als Notification aus? Synthetic-ID-Format: ticket_<ticket_id> (nicht <message_id>). Pro Ticket nur die NEUESTE Admin-Antwort als Notification — sonst würde jede Antwort eine neue Notification erzeugen. Wenn Kunde das Ticket öffnet, wird die Notification automatisch als gelesen markiert.

Kann ich Notifications nur an bestimmte Kunden senden? Ja — Audience-Filter erlaubt:

  • Alle (Standard)
  • Pro Paket (z.B. nur Pro-Kunden)
  • Einzelne Kunden (Multi-Select)

Werden archivierte Notifications gelöscht? Nein. is_archived=true blendet sie nur aus Portal-Glocke aus. Im Admin-Archiv weiterhin sichtbar.

Mail wird nicht versandt — was tun?

  • Resend-Domain licensio.io muss im Resend-Dashboard verifiziert sein
  • ENV RESEND_API_KEY muss korrekt sein
  • Audience nicht leer (Kunden ohne aktive Mail kriegen nichts)

Ich sehe als Admin eine Notification "Neues Ticket" — wo kommt die her? DSGVO-Trennung: Admin-Notifications haben audience='admin', sind nicht für Kunden sichtbar. Werden System-generiert für Tenant-Admins (z.B. neuer Ticket eingegangen).

Verwandt

  • Tickets — wie Ticket-Antworten zu Notifications werden
  • Einstellungen — Wartungsmodus → Maintenance-Notification