Zum Hauptinhalt springen

Benachrichtigungssystem

Die Hoffnungsträger Sprachbrücke verfügt über ein umfassendes Multi-Channel-Benachrichtigungssystem mit 37 verschiedenen Benachrichtigungstypen.

Übersicht​

Benachrichtigungskanäle​

  • Email: Via Mailgun mit PDF-Anhängen (z.B. Rechnungen)
  • Push: Via OneSignal für die mobile App (nur Sprachmittler)
  • Database: In-App-Benachrichtigungen für Web und Mobile

Benutzerkontrolle​

Jeder Benutzer kann in seinen Einstellungen für jeden Benachrichtigungstyp individuell festlegen, über welche Kanäle er informiert werden möchte.

Standard-Einstellungen nach Rolle:

  • Auftraggeber: Email + Database aktiviert, keine Push
  • Sprachmittler: Email + Push + Database aktiviert
  • Admin: Nur Database aktiviert

Benachrichtigungstypen​

1. Account-Benachrichtigungen​

WelcomeMessage​

  • Zweck: Willkommensnachricht bei Registrierung
  • Empfänger: Neue Benutzer (alle Rollen)
  • Kanäle: Email, Database, Push (nur Sprachmittler)

AccountActivated​

  • Zweck: Benachrichtigung bei Freischaltung durch Admin
  • Empfänger: Freigeschalteter Benutzer
  • Kanäle: Email, Database

AccountDeactivated​

  • Zweck: Benachrichtigung bei Deaktivierung
  • Empfänger: Deaktivierter Benutzer
  • Kanäle: Email, Database

InterpreterRegistrationReceived​

  • Zweck: Bestätigung der Sprachmittler-Registrierung
  • Empfänger: Registrierender Sprachmittler
  • Kanäle: Email, Database

RequesterRegistrationReceived​

  • Zweck: Bestätigung der Auftraggeber-Registrierung
  • Empfänger: Registrierender Auftraggeber
  • Kanäle: Email, Database

ResetPasswordNotification​

  • Zweck: Passwort-Reset-Link
  • Empfänger: Benutzer, der Passwort zurücksetzen möchte
  • Kanäle: Nur Email

2. Auftrags-Benachrichtigungen​

NewOrderCreated​

  • Zweck: Bestätigung der Auftragserstellung
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database
  • Zeitpunkt: Sofort nach Auftragserstellung

OrderCreatedSuccessfully​

  • Zweck: Alternative Bestätigung (bei expliziter Aktion)
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database

NewOrderAvailable / UrgentOrderAvailable / RegularOrderAvailable​

  • Zweck: Neue Aufträge verfügbar zum Annehmen
  • Empfänger: Passende Sprachmittler (nach Matching-Algorithmus)
  • Kanäle: Push (primär), Database, Email (optional)
  • Zeitpunkt: Nach Interpreter-Matching
  • Standard: Push aktiviert, Email deaktiviert
  • Besonderheit: Urgent-Orders haben höhere Priorität

OrderAcceptedOrRejected​

  • Zweck: Rückmeldung über Sprachmittler-Entscheidung
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database
  • Zeitpunkt: Nach Annahme/Ablehnung durch Sprachmittler

InterpreterDeclined​

  • Zweck: Sprachmittler hat abgelehnt
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database

NoInterpreterFound​

  • Zweck: Kein passender Sprachmittler gefunden
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database
  • Zeitpunkt: Nach erfolglosem Matching

UpcomingAppointment​

  • Zweck: Terminerinnerung
  • Empfänger: Auftraggeber UND Sprachmittler
  • Kanäle: Push (Sprachmittler), Database, Email (optional)
  • Zeitpunkt: 24h, 2h und 30min vor Termin
  • Standard: Push aktiviert (Sprachmittler), Email deaktiviert

CheckInOutReminder​

  • Zweck: Erinnerung an Zeiterfassung
  • Empfänger: Sprachmittler
  • Kanäle: Push (primär), Database
  • Zeitpunkt: Wenn Check-in/out fehlt
  • Standard: Push aktiviert

OrderCompleted​

  • Zweck: Auftrag abgeschlossen
  • Empfänger: Auftraggeber UND Sprachmittler
  • Kanäle: Email, Database, Push (Sprachmittler)
  • Zeitpunkt: Bei Statusänderung zu "Completed"

OrderStatusChanged​

  • Zweck: Generische Statusänderung
  • Empfänger: Auftraggeber UND zugewiesener Sprachmittler
  • Kanäle: Email, Database, Push (Sprachmittler)
  • Standard: Email deaktiviert, nur Database aktiviert

3. Stornierungen​

OrderCancelledByRequester​

  • Zweck: Auftraggeber hat storniert
  • Empfänger: Zugewiesener Sprachmittler
  • Kanäle: Email, Database

OrderCancelledByInterpreter​

  • Zweck: Sprachmittler hat storniert
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database

OrderCancelledEnhanced​

  • Zweck: Generische Stornierung (Admin/System)
  • Empfänger: Beide Parteien
  • Kanäle: Email, Database

4. Rechnungs-Benachrichtigungen​

InvoiceGenerated​

  • Zweck: Rechnung erstellt und eingereicht
  • Empfänger: Auftraggeber (Zahlung) + Sprachmittler (Dokumentation)
  • Kanäle: Email (mit PDF-Anhang), Database
  • Zeitpunkt: Wenn Rechnung auf "Pending" gesetzt wird
  • Besonderheit: PDF wird als Email-Anhang mitgeschickt

InvoiceStatusChanged​

  • Zweck: Rechnungsstatus hat sich geändert
  • Empfänger: Auftraggeber + Sprachmittler
  • Kanäle: Email (mit PDF bei "sent"), Database
  • Besonderheit: PDF-Anhang bei Status "sent"

InvoiceRejected​

  • Zweck: Rechnung wurde abgelehnt
  • Empfänger: Sprachmittler
  • Kanäle: Email, Push, Database
  • Zeitpunkt: Wenn Admin/Auftraggeber Rechnung ablehnt

InvoiceQuery​

  • Zweck: Rückfrage zur Rechnung
  • Empfänger: Sprachmittler
  • Kanäle: Email, Push, Database

NewInvoiceAfterDispute​

  • Zweck: Neue Rechnungsversion nach Klärung
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database, Push

5. Zahlungs-Benachrichtigungen​

PaymentInstructed​

  • Zweck: Zahlung wurde angewiesen
  • Empfänger: Sprachmittler
  • Kanäle: Email, Push, Database
  • Zeitpunkt: Wenn Admin Zahlung anweist

PaymentReceived​

  • Zweck: Zahlung ist eingegangen
  • Empfänger: Auftraggeber (Bestätigung) + Sprachmittler (Auszahlung)
  • Kanäle: Email, Database
  • Zeitpunkt: Wenn Zahlung bestätigt wird

PaymentReminder​

  • Zweck: Zahlungserinnerung bei Verzug
  • Empfänger: Auftraggeber
  • Kanäle: Email, Database
  • Zeitpunkt: 7, 14 und 21 Tage nach Fälligkeit
  • Automatisch: Täglich 09:00 Uhr via Cron

BillingStatusChanged​

  • Zweck: Abrechnungsstatus hat sich geändert
  • Empfänger: Sprachmittler
  • Kanäle: Email, Database
  • Status-Übergänge: pending → processing → approved → paid

6. Bewertungen​

RatingRequest​

  • Zweck: Bitte um Bewertung nach Auftragsabschluss
  • Empfänger: Auftraggeber UND Sprachmittler (separate Benachrichtigungen)
  • Kanäle: Email, Database
  • Zeitpunkt: Nach Zahlungseingang (PaymentReceived)
  • Besonderheit: Token-basierter Link ohne Login-Erfordernis

Benachrichtigungs-Template-System​

Template-Verwaltung​

Alle Benachrichtigungen verwenden anpassbare Templates, die im Admin-Panel bearbeitet werden können:

  • Datenbank-Tabelle: notification_templates
  • Sprachen: Deutsch (Standard), Englisch (Fallback)
  • Pro Template: Betreff, Titel, Inhalt
  • Variablen: Mustache-Style (z.B. {{user_name}}, {{order_number}})
  • Markdown-Support: Templates werden in HTML konvertiert

Häufige Template-Variablen​

VariableBedeutungBeispiel
user_nameName des Empfängers"Max Mustermann"
order_numberAuftragsnummer"ORD-2025-001"
order_urlLink zum Auftraghttps://...
appointment_dateTermin-Datum"30.10.2025"
appointment_timeTermin-Uhrzeit"14:30"
locationEinsatzort"Musterstraße 1..."
invoice_numberRechnungsnummer"INV-2025-001"
invoice_amountRechnungsbetrag"150,00 €"
interpreter_nameName Sprachmittler"Maria Müller"

Benachrichtigungs-Präferenzen​

Einstellungsmöglichkeiten​

Jeder Benutzer kann für jeden Benachrichtigungstyp einzeln festlegen:

{
"notification_type": "OrderCompleted",
"channels": {
"database": true, // In-App (immer empfohlen)
"mail": true, // Email
"push": false // Push (nur Sprachmittler)
}
}

Verwaltung​

  • Web-Portal: Einstellungen → Benachrichtigungen
  • Mobile App: Einstellungen → Push-Benachrichtigungen
  • Admin-Panel: Benutzerverwaltung → Benachrichtigungseinstellungen

Global-Schalter​

Administratoren können Benachrichtigungen global deaktivieren:

  • NOTIFICATIONS_DISABLED=true - Alle Benachrichtigungen
  • EMAIL_NOTIFICATIONS_DISABLED=true - Nur Email
  • PUSH_NOTIFICATIONS_DISABLED=true - Nur Push

Automatische Benachrichtigungen (Cron-Jobs)​

BenachrichtigungZeitplanZweck
UpcomingAppointmentStündlichTerminerinnerungen (24h, 2h, 30min)
PaymentReminderTäglich 09:00Zahlungserinnerungen (7, 14, 21 Tage)
CheckInOutReminderStündlichCheck-in/out-Erinnerungen

Technische Details​

Versand-Mechanismus​

  • Synchron: Benachrichtigungen werden sofort versendet (nicht in Queue)
  • Idempotenz: Caching verhindert Duplikate (z.B. Terminerinnerungen)
  • Fehlerbehandlung: Fehlgeschlagene Benachrichtigungen werden geloggt

OneSignal Push-Integration​

  • Player-IDs: Werden in devices-Tabelle gespeichert
  • Deep-Links: Öffnen spezifische Seiten in der App
  • Targeting: Nach User-ID und Player-ID
  • Plattformen: iOS + Android

Email-Anhänge​

Folgende Benachrichtigungen können PDF-Anhänge enthalten:

  • InvoiceGenerated - Rechnung als PDF
  • InvoiceStatusChanged - Rechnung als PDF (bei Status "sent")
  • InvoiceGenerated und InvoiceStatusChanged enthalten temporäre Download-URLs
  • Gültigkeit: 7 Tage
  • Signed URLs: Laravel signed routes für Sicherheit

Zusammenfassung​

KategorieAnzahl Benachrichtigungen
Account-Management7
Auftrags-Lifecycle10
Stornierungen3
Rechnungen5
Zahlungen4
Bewertungen1
Gesamt37

Kanäle: 3 (Email, Push, Database)
Sprachen: 2 (Deutsch, Englisch)
Templates: Anpassbar im Admin-Panel
Benutzerkontrolle: Ja, pro Typ und Kanal


Letzte Aktualisierung: Oktober 2025