Kundenbenachrichtigungen
Levy Fleets verwendet Push-Benachrichtigungen, um Kunden ueber ihre Fahrten, Kontostatus, Aktionen und wichtige Updates zu informieren. Dieser Leitfaden behandelt Benachrichtigungstypen, das Senden manueller Benachrichtigungen, automatische Systembenachrichtigungen und die Fehlerbehebung bei Zustellungsproblemen.
Ueberblick
Das Benachrichtigungssystem verwendet Expo Push Notifications, um Nachrichten an mobile Kundengeraete zu senden. Benachrichtigungen werden gesendet fuer:
- Fahrtbezogene Ereignisse (Start, Ende, Probleme)
- Zonenwarnungen (Betreten/Verlassen von Zonen)
- Zahlungsbenachrichtigungen (erfolgreiche Belastungen, fehlgeschlagene Zahlungen)
- Wallet-Updates (Guthaben hinzugefuegt)
- Werbebotschaften (Aktionen, Ankuendigungen)
- Systemwarnungen (Wartung, Updates)
- Identitaetspruefung (erforderlich, aufgehoben)
Benachrichtigungstypen
Systemgenerierte Benachrichtigungen
Diese werden automatisch durch Ereignisse im System ausgeloest:
| Typ | Ausloeser | Beispielnachricht |
|---|---|---|
ride | Fahrtereignisse | "Ihre Fahrt ist beendet. Gesamt: 5,00 $" |
zone | Zonengrenze ueberschritten | "Sie verlassen das Servicegebiet" |
payment | Zahlung verarbeitet | "Zahlung von 10,00 $ erfolgreich" |
wallet | Guthaben geaendert | "Sie haben 5,00 $ Guthaben erhalten" |
identity | Verifizierungsstatus | "Identitaetspruefung erforderlich" |
system | Plattformwarnungen | "Geplante Wartung heute Nacht" |
Manuelle Benachrichtigungen
Betreiber koennen benutzerdefinierte Benachrichtigungen an einzelne Kunden oder Gruppen senden:
| Anwendungsfall | Wann verwenden |
|---|---|
| Service-Updates | Ueber lokale Aenderungen informieren |
| Werbeangebote | Rabatte oder Veranstaltungen ankuendigen |
| Kontoprobleme | Aktion vom Kunden anfordern |
| Persoenliche Kontaktaufnahme | Kundenservice-Nachverfolgung |
Manuelle Benachrichtigungen senden
An einzelnen Kunden
- Navigieren Sie zu Dashboard > Kunden
- Klicken Sie auf den Kunden, um seine Detailseite zu oeffnen
- Klicken Sie auf Aktionen (Drei-Punkte-Menue)
- Waehlen Sie Benachrichtigung senden
- Fuellen Sie das Benachrichtigungsformular aus:
- Titel: Benachrichtigungsueberschrift (fett angezeigt)
- Text: Hauptnachrichtentext
- Typ: Kategorie fuer die Benachrichtigung
- Klicken Sie auf Senden
Benachrichtigungsformular-Felder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
| Titel | Ja | Kurze Ueberschrift, maximal 50 Zeichen |
| Text | Ja | Nachrichteninhalt, maximal 200 Zeichen |
| Typ | Nein | Benachrichtigungskategorie (beeinflusst Symbol/Behandlung) |
| Daten | Nein | Benutzerdefinierte JSON-Daten fuer Deep-Linking |
Typoptionen
| Typ | Symbol | Verwendung fuer |
|---|---|---|
promo | Geschenk | Werbeangebote, Rabatte |
system | Glocke | Allgemeine Ankuendigungen |
ride | Roller | Fahrtbezogene Nachrichten |
wallet | Wallet | Zahlungs-/Guthaben-Updates |
payment | Karte | Zahlungsmethoden-Probleme |
identity | Schild | Verifizierungsnachrichten |
API-Referenz
Benachrichtigung senden - Endpunkt
Endpunkt: POST /api/customers/notify
Anfragekoerper:
{
"customerId": "customer-uuid-here",
"title": "Special Offer!",
"body": "Get 20% off your next ride with code SAVE20",
"type": "promo"
}
Antwort (Erfolg):
{
"success": true,
"ticketId": "XXXX-XXXX-XXXX-XXXX"
}
Antwort (Fehler):
{
"success": false,
"error": "Customer has no push token"
}
Erforderliche Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
customerId | string | Kunden-UUID |
title | string | Benachrichtigungstitel |
body | string | Benachrichtigungstext |
Optionale Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
type | string | Benachrichtigungstyp (siehe Typen oben) |
data | object | Benutzerdefinierte Daten fuer Deep-Linking |
sound | string | Abzuspielender Ton (Standard/Benutzerdefiniert) |
badge | number | App-Badge-Anzahl |
Deep-Linking
Benachrichtigungen koennen Daten enthalten, die bestimmte Bildschirme in der App oeffnen:
Fahrtdetails
{
"customerId": "xxx",
"title": "Ride Complete",
"body": "View your ride summary",
"data": {
"screen": "ride",
"rideId": "ride-uuid"
}
}
Wallet
{
"customerId": "xxx",
"title": "Credit Added",
"body": "Check your new balance",
"data": {
"screen": "wallet"
}
}
Identitaetspruefung
{
"customerId": "xxx",
"title": "Verify Your Identity",
"body": "Complete verification to continue riding",
"data": {
"screen": "identity_verification"
}
}
Automatische Benachrichtigungen
Fahrtbenachrichtigungen
| Ereignis | Titel | Textbeispiel |
|---|---|---|
| Fahrt gestartet | "Fahrt gestartet" | "Geniessen Sie Ihre Fahrt mit [Fahrzeug-ID]" |
| Fahrt beendet | "Fahrt abgeschlossen" | "Ihre Fahrt: 5,00 $ fuer 15 Minuten" |
| Fahrt pausiert | "Fahrt pausiert" | "Ihre Fahrt ist pausiert" |
| Warnung bei niedrigem Akku | "Niedriger Akku" | "Fahrzeugakku ist niedrig, beenden Sie die Fahrt bald" |
| Ausserhalb der Zone | "Servicegebiet verlassen" | "Sie sind dabei, die Servicezone zu verlassen" |
| Warnung vor automatischem Ende | "Fahrt endet bald" | "Ihre Fahrt wird in 5 Minuten automatisch beendet" |
Zahlungsbenachrichtigungen
| Ereignis | Titel | Textbeispiel |
|---|---|---|
| Belastung erfolgreich | "Zahlung erfolgreich" | "Zahlung von 10,00 $ verarbeitet" |
| Belastung fehlgeschlagen | "Zahlung fehlgeschlagen" | "Wir konnten Ihre Zahlung nicht verarbeiten" |
| Karte laeuft ab | "Karte laeuft ab" | "Ihre Karte laeuft naechsten Monat ab" |
| Abonnement verlaengert | "Abonnement verlaengert" | "Ihr Monatsplan wurde verlaengert" |
Wallet-Benachrichtigungen
| Ereignis | Titel | Textbeispiel |
|---|---|---|
| Guthaben hinzugefuegt | "Guthaben hinzugefuegt" | "Sie haben 5,00 $ Guthaben erhalten" |
| Bonus angewendet | "Bonus-Guthaben" | "3,00 $ Bonus Ihrem Konto gutgeschrieben" |
| Niedriges Guthaben | "Niedriges Guthaben" | "Laden Sie Guthaben auf, um weiter zu fahren" |
| Rueckerstattung ausgestellt | "Rueckerstattung verarbeitet" | "2,50 $ wurden erstattet" |
| Negatives Guthaben | "Wallet-Guthaben negativ" | "Eine Gebuehr von 25,00 $ wurde angewendet..." |
| Automatische Aufladung | "Wallet aufgeladen" | "15,00 $ wurden Ihrem Wallet gutgeschrieben" |
Benachrichtigung bei negativem Guthaben
Automatische Warnung
Wenn ein Betreiber "Gebuehr erheben" verwendet und das Kundenguthaben von positiv zu negativ wechselt, wird automatisch eine Benachrichtigung gesendet, um sicherzustellen, dass Kunden ueber die Schulden informiert sind.
Ausloesebedingungen:
- Wallet-Guthaben war 0 $ oder positiv vor der Belastung
- Guthaben wird nach der Belastung negativ
- Wird nur durch "Gebuehr erheben"-Aktion ausgeloest, nicht durch "Guthaben reduzieren"
Benachrichtigungsinhalt:
- Titel: "Wallet-Guthaben negativ"
- Text: "Eine Gebuehr von X,XX $ wurde auf Ihr Konto angewendet. Ihr Wallet-Guthaben betraegt jetzt -Y,YY $."
- Typ:
wallet
Identitaetsbenachrichtigungen
| Ereignis | Titel | Textbeispiel |
|---|---|---|
| Verifizierung erforderlich | "Identitaet verifizieren" | "Schliessen Sie die Verifizierung ab, um zu fahren" |
| Verifizierung aufgehoben | "Alles klar!" | "Ihr Konto ist verifiziert" |
| Verifizierung fehlgeschlagen | "Verifizierungsproblem" | "Bitte versuchen Sie die Verifizierung erneut" |
Benachrichtigungseinstellungen
Kundenpraeferenzen
Kunden koennen Benachrichtigungen in der mobilen App steuern:
- Alle Benachrichtigungen: Hauptschalter
- Fahrt-Updates: Start, Ende, Warnungen
- Aktionen: Marketingnachrichten
- Zahlungswarnungen: Transaktionsbestaetigungen
Subaccount-Konfiguration
Betreiber koennen das Benachrichtigungsverhalten konfigurieren:
| Einstellung | Beschreibung |
|---|---|
notifications_enabled | Hauptschalter fuer Subaccount |
promo_notifications | Werbebotschaften erlauben |
marketing_frequency | Marketingbenachrichtigungen begrenzen |
Push-Token-Verwaltung
Wie Tokens funktionieren
- Kunde installiert App und erteilt Benachrichtigungsberechtigung
- App erhaelt Push-Token von Expo/APNs/FCM
- Token wird im Kundendatensatz gespeichert (
expo_push_token) - Benachrichtigungen werden an dieses Token gesendet
- Token kann sich aendern (Neuinstallation, Geraetewechsel)
Token-Status
| Status | Bedeutung | Aktion |
|---|---|---|
| Gueltiges Token | Kunde kann Benachrichtigungen empfangen | Keine Aktion erforderlich |
| Kein Token | App nicht installiert oder Berechtigungen verweigert | Kann nicht senden |
| Ungueltiges Token | Token abgelaufen oder widerrufen | Token wird aktualisiert |
Wann Tokens ungueltig werden
- Kunde deinstalliert die App
- Kunde widerruft Benachrichtigungsberechtigung
- Geraet wird zurueckgesetzt oder ersetzt
- Token laeuft ab (selten)
Zustellungsstatus
Expo Push-Belege
Wenn eine Benachrichtigung gesendet wird, liefert Expo:
- Ticket-ID: Sofortige Bestaetigung der Uebermittlung
- Beleg: Eventueller Zustellungsstatus
Beleg-Statuswerte
| Status | Bedeutung |
|---|---|
ok | Erfolgreich zugestellt |
error | Zustellung fehlgeschlagen |
DeviceNotRegistered | Token nicht mehr gueltig |
MessageTooBig | Payload ueberschritt Limit |
MessageRateExceeded | Zu viele Nachrichten gesendet |
Fehlerbehandlung
Haeufige Fehler und Loesungen:
| Fehler | Ursache | Loesung |
|---|---|---|
DeviceNotRegistered | App deinstalliert | Token vom Kunden entfernen |
InvalidCredentials | Expo-Konfigurationsproblem | Push-Anmeldedaten pruefen |
MessageTooBig | Payload > 4KB | Nachricht kuerzen |
TooManyRequests | Ratenbegrenzung | Haeufigkeit reduzieren |
Best Practices
Nachrichteninhalt
- Titel kurz halten: Maximal 30-50 Zeichen
- Spezifisch sein: Dem Kunden mitteilen, was passiert ist oder was zu tun ist
- Wert einbeziehen: Warum sollte es ihn interessieren?
- Personalisierung verwenden: Name oder relevante Details einbeziehen
- Handlungsaufforderung: Was soll er als naechstes tun?
Haeufigkeit
- Nicht zu oft benachrichtigen: Werbebotschaften begrenzen
- Wenn moeglich buendeln: Zusammengehoerige Updates kombinieren
- Zeitzonen respektieren: Waehrend der Wachzeiten senden
- Nur fuer Notfaelle: Fuer wirklich wichtige Warnungen reservieren
Timing
| Benachrichtigungstyp | Beste Zeit | Vermeiden |
|---|---|---|
| Werbung | 10-20 Uhr lokal | Vor 9 Uhr, nach 21 Uhr |
| Transaktional | Sofort | N/A |
| Fahrtwarnungen | Sofort | N/A |
| Woechentliche Zusammenfassung | Wochenendmorgen | Montag |
Tonfall
- Freundlich: "Ihre Fahrt ist abgeschlossen!"
- Klar: "Zahlung von 5,00 $ verarbeitet"
- Handlungsorientiert: "Verifizieren Sie Ihre Identitaet, um weiter zu fahren"
- Vermeiden: GROSSBUCHSTABEN, uebermäßige Satzzeichen, Emoji-Ueberflutung
Massenbenachrichtigungen
Aktuelle Einschraenkungen
Das Dashboard unterstuetzt derzeit nur Einzelbenachrichtigungen. Fuer Massenbenachrichtigungen:
- Verwenden Sie die API mit einer Schleife
- Implementieren Sie Ratenbegrenzung (max. 400/Minute an Expo)
- Erwaegen Sie ein separates Benachrichtigungskampagnen-Tool
API-Massenmuster
// Example: Send to multiple customers
const customerIds = ['cust1', 'cust2', 'cust3'];
const message = {
title: 'Special Offer',
body: 'Get 20% off this weekend!'
};
for (const customerId of customerIds) {
await fetch('/api/customers/notify', {
method: 'POST',
body: JSON.stringify({ customerId, ...message })
});
// Rate limit: wait 150ms between sends
await new Promise(r => setTimeout(r, 150));
}
Fehlerbehebung
Benachrichtigung nicht empfangen
Pruefen Sie diese in dieser Reihenfolge:
-
Hat der Kunde ein Push-Token?
- Kunden-Detailseite anzeigen
- Feld
expo_push_tokenpruefen - Wenn leer, hat der Kunde keine Berechtigung erteilt
-
Berechtigung aktiviert?
- Kunde muss Benachrichtigungsberechtigung in iOS/Android-Einstellungen erteilen
- Er kann sie nach der ersten Erteilung deaktiviert haben
-
App installiert?
- Token wird ungueltig, wenn die App deinstalliert wird
- Kunde muss neu installieren und Berechtigung erneut erteilen
-
Richtiger Kunde?
- Ueberpruefen Sie, ob die customerId mit dem beabsichtigten Empfaenger uebereinstimmt
- Auf doppelte Konten pruefen
-
Nachricht zugestellt?
- Expo Push-Belegstatus pruefen
- In Logs nach Zustellungsfehlern suchen
-
Geraeteprobleme?
- Bitte-nicht-stoeren-Modus auf dem Geraet
- Fokusmodus blockiert Benachrichtigungen
- Energiesparmodus begrenzt Hintergrundaktivitaet
Kunde sagt, er bekommt "zu viele" Benachrichtigungen
- Automatische Benachrichtigungsausloeser ueberpruefen
- In Logs auf doppelte Sendungen pruefen
- Ueberpruefen, ob Benachrichtigungspraeferenzen respektiert werden
- Drosselungskonfiguration in Betracht ziehen
Benachrichtigung zeigt falschen Inhalt
- Auf Kodierungsprobleme in Titel/Text pruefen
- Ueberpruefen, ob Daten nicht abgeschnitten sind
- Nach maskierten Sonderzeichen suchen
- Mit einfachem ASCII-Text testen
Benachrichtigungen verzoegert
- Expo verwendet Batchverarbeitung, kann bis zu einige Sekunden verzoegern
- APNs/FCM koennen je nach Geraet/Netzwerk verzoegern
- Pruefen, ob das Geraet im Energiesparmodus ist
- Netzwerkverbindung auf dem Geraet ueberpruefen
"DeviceNotRegistered"-Fehler
Dies ist normal, wenn:
- Kunde die App deinstalliert hat
- Kunde ein neues Geraet bekommen hat
- Token abgelaufen ist (selten)
Loesung: Ungueltiges Token aus dem Kundendatensatz entfernen. Token wird aktualisiert, wenn der Kunde die App wieder oeffnet.
Integration mit anderen Systemen
Fahrtsystem
Die Fahrt-Engine sendet Benachrichtigungen fuer:
- Fahrtstart-Bestaetigung
- Pause-/Fortsetzungsereignisse
- Akku-/Zonenwarnungen
- Fahrtabschluss mit Zusammenfassung
- Benachrichtigungen bei automatischem Ende
Zahlungssystem
Zahlungsverarbeitung loest aus:
- Bestaetigung erfolgreicher Belastung
- Warnungen bei fehlgeschlagener Zahlung
- Rueckerstattungsbenachrichtigungen
- Warnungen bei Kartenablauf
Identitaetssystem
Identitaetspruefung loest aus:
- Aufforderung zur Verifizierung
- Bestaetigung bei erfolgreicher Verifizierung
- Benachrichtigung bei aufgehobener Anforderung
- Benachrichtigung bei fehlgeschlagenem Versuch