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