Zum Hauptinhalt springen

Notification-System konfigurieren

SpeamCore versendet automatisch Benachrichtigungen — bei Compliance-Ablauf, Mahnung, Auftragsabschluss, etc. Diese Anleitung zeigt Ihnen den Admin-Setup.

Compliance-Notification-Settings konfigurieren

Pro Use-Case gibt es zwei Settings im keyGroup: 'complianceNotifications': ein Enabled-Flag und eine LeadDays-Vorlauffrist. Code-verifiziert in complianceNotification.service.ts:

Use-CaseEnabled-SettingLeadDays-SettingDefault
Probezeit-EndecomplianceProbationEndNoticeEnabledcomplianceProbationEndNoticeLeadDaysaktiv, 30 Tage
JubiläumcomplianceJubileeNoticeEnabledcomplianceJubileeNoticeLeadDaysaktiv, 90 Tage
VertragsendecomplianceContractEndNoticeEnabledcomplianceContractEndNoticeLeadDaysaktiv, 60 Tage
Urlaubsverfall (BAG)complianceVacationExpiryNoticeEnabledcomplianceVacationExpiryNoticeLeadDaysaktiv, 90 Tage
§3 ArbZG-VerstoßenforceMaxWorkingHours(kein LeadDays — Live-Hook)inaktiv (Default false)

So konfigurieren Sie die Settings

  1. Sidebar → Settings (Aufrufpfad /settings).
  2. Tab Compliance-Notifications.
  3. Pro Use-Case:
    • Enabled-Toggle — aktiviert / deaktiviert die Engine für diesen Check
    • LeadDays-Wert — wie viele Tage vor dem Trigger-Datum die Notification erscheinen soll
  4. Speichern.

Wichtig — Settings-Cache: Der Service lädt die Settings beim Engine-Lauf neu (kein langer Cache). Aktivierungen sind ab dem nächsten Engine-Lauf wirksam (max. 24h via Daily-Cron, sofort via manuellem Trigger über POST /api/compliance-checks/run-daily).

Beispiele für sinnvolle LeadDays-Werte

Use-CaseLeadDaysBegründung
Probezeit-Ende14-30 Tagegenug Zeit für Übernahme-/Kündigungs-Entscheidung
Jubiläum60-90 TageVorlauf für Geschenk / Feier-Vorbereitung
Vertragsende60-90 Tagegesetzliche Kündigungsfrist nicht vergessen
Urlaubsverfall (BAG)60-120 TageBAG-Hinweispflicht-Zeit wahren, MA Zeit zum Verbrauch geben
§3 ArbZG(kein LeadDays)Live-Hook beim Stempeln, keine Vorab-Warnung

enforceMaxWorkingHours — Sonderfall §3 ArbZG

Im Gegensatz zu den anderen Use-Cases ist enforceMaxWorkingHours standardmäßig aktiviert (true)? Nein — Default ist false, d. h. ohne Aktivierung läuft die §3-ArbZG-Cap-Logik nicht. Bei Aktivierung:

  • Live-Hook in workTimeBalance.service triggert beim Stempel-Speichern
  • Daily-Cron 02:00 läuft runDailyComplianceChecks mit ArbZG-Engine
  • Bei Cap-Überschreitung wird WorkTimeOvertimeApproval-Eintrag erzeugt + arbzgViolation-ComplianceCheck mit Severity violation

Mehr Hintergrund: §3 ArbZG-Cap-Konzept.

Manueller Trigger-Endpoint

Für Tests oder Sofort-Sweeps:

POST /api/compliance-checks/run-daily

Erzeugt sofort alle ausstehenden Checks für den heutigen Tag. Idempotent — ein zweiter Aufruf erzeugt keine Duplikate.

POST /api/compliance-checks/simulate

Simulations-Modus für Konfigurations-Tests — was würde die Engine bei aktuellen Settings + Stamm-Daten erzeugen, ohne tatsächlich Checks anzulegen. Ideal um vor Aktivierung im Live-System zu prüfen, wie viele Notifications Mitarbeiter bekommen würden.

Wann mache ich das?

  • Initial-Setup des Mandanten.
  • Bei neuen Anforderungen — neue Notification-Use-Cases.
  • Periodisch — Verteiler-Listen aktualisieren.

Konzept

Notification-System
├─ Channels (wie wird versendet?)
│ ├─ E-Mail (SMTP)
│ ├─ SMS (z.B. Twilio)
│ ├─ Push (z.B. Firebase)
│ └─ In-App (SpeamCore-Notification-Center)
├─ Event-Types (was triggert Notification?)
│ ├─ Compliance läuft ab
│ ├─ Mahnung Stufe X
│ ├─ Auftrag abgeschlossen
│ └─ ...
├─ Templates (was steht drin?)
│ └─ pro Event-Type + Channel ein Template
└─ Subscriptions (wer bekommt was?)
└─ User / Rolle abonniert Event-Types

So richten Sie das System ein

Channels einrichten

In der Sidebar Notification-Channels. Pro Channel-Typ:

Notification-Channels-Modul mit Tabelle der konfigurierten Mail / SMS / Push-Channels.

  • E-Mail-Channel — SMTP-Server, Absender-Adresse.
  • SMS-Channel — Provider, API-Key.
  • Push-Channel — Firebase-Konfiguration.

Mehrere Channels desselben Typs möglich (z.B. zwei SMTP-Server).

Notification-Channels-Übersicht mit Filter und Spalten-Toolbar.

Event-Types definieren

In Notification-Event-Types sehen Sie alle möglichen Ereignisse:

  • Compliance läuft ab in 30 Tagen
  • Mahnung Stufe 1 erstellt
  • Auftrag abgeschlossen mit Unterschrift
  • Eingangsrechnung wartet auf Freigabe
  • etc.

Standard-Events kommen mit SpeamCore — Custom-Events bei Bedarf entwickeln.

Templates pflegen

In Notification-Templates: pro Event-Type + Channel-Kombination ein Template.

Notification-Templates-Modul mit Liste der Template-Definitionen.

Beispiel: „Compliance läuft ab" + Mail-Channel:

Betreff: Ihre {compliance_type}-Bescheinigung läuft am {expiry_date} ab

Hallo {user_name},

Ihre {compliance_type}-Bescheinigung läuft am {expiry_date} ab —
das ist in {days_until_expiry} Tagen. Bitte organisieren Sie zeitnah
einen Schulungs-Termin oder erneuern Sie die Bescheinigung.

Bei Fragen wenden Sie sich an {hr_contact}.

Mit freundlichen Grüßen,
{firm_name}

Variablen {...} werden zur Laufzeit ersetzt.

Subscriptions zuordnen

In Notification-Subscriptions — wer bekommt was?

Notification-Subscriptions-Modul mit Tabelle der Empfänger-Zuordnungen.

  • Pro User explizit abonniert.
  • Pro Rolle alle Mitglieder.
  • Pro Bedingung (z.B. „nur Mitarbeiter der Niederlassung X").

Beispiel:

  • Compliance-Reminder → eingeschriebener Mitarbeiter + HR-Leitung.
  • Mahnung erstellt → Buchhaltungs-SB + Buchhaltungs-Leitung.
  • Auftrag abgeschlossen → Innendienst-Verantwortlicher.

Notification-Logs überwachen

In Notification-Logs sehen Sie versendete Notifications mit Status:

Notification-Logs-Modul mit Tabelle der versendeten Notifications und Status pro Eintrag.

  • Versand erfolgreich / fehlgeschlagen.
  • Lesebestätigung (sofern aktiviert).
  • Bounce-Ursachen.

Bei wiederholten Fehlern: Channel-Konfiguration prüfen, ggf. Provider-Support.

Tipps

  • Reduzierte Notifications — zu viele = wirken wie Spam, werden ignoriert. Wirklich wichtige.
  • Channel-Mix — Compliance-Reminder per Mail + In-App. SMS nur für Akut-Fälle.
  • Test-Versand vor Produktiv — eigenes Postfach als Empfänger.
  • Provider-Kosten im Blick — SMS sind teurer als Mails.

Verwandte Tutorials

Für Entwickler: technische Details