Multi-Channel Staging Go-Live Checklist
Diese Checkliste dient als Freigabe- und Betriebsleitfaden fuer den Rollout von WhatsApp + Threema in Staging.
1) Release-Voraussetzungen
- [ ] Datenbankmigrationen sind in Staging ausgefuehrt.
- [ ] Queue-Worker/Horizon verarbeitet
whatsappundthreema. - [ ]
.envist vollstaendig mit produktionsnahen Staging-Credentials:- [ ]
WHATSAPP_ACCESS_TOKEN - [ ]
WHATSAPP_PHONE_NUMBER_ID - [ ]
WHATSAPP_VERIFY_TOKEN - [ ]
THREEMA_GATEWAY_ID - [ ]
THREEMA_GATEWAY_SECRET - [ ]
THREEMA_WEBHOOK_TOKEN
- [ ]
- [ ] Flags sind zunaechst konservativ gesetzt (siehe Rollout-Phasen unten).
2) Security & Webhooks
- [ ] WhatsApp Verify-Endpunkt antwortet korrekt auf Challenge.
- [ ] Threema Webhook verlangt gueltiges
X-Webhook-Token. - [ ] CSRF-Ausnahmen sind gesetzt fuer:
- [ ]
webhooks/whatsapp/* - [ ]
webhooks/threema/*
- [ ]
- [ ] Webhook-Requests werden geloggt (ohne Secrets im Klartext).
3) Datenintegritaet
- [ ]
channel_webhook_eventsdedupliziert externe Event-IDs. - [ ]
channel_message_logsbildet den Outbound-Lifecycle ab (queued/sent/delivered/read/failed). - [ ]
channel_inbound_messagesenthaelt Inbound-Text und Sender-ID. - [ ]
channel_onboarding_sessionszeigt den korrekten State-Flow. - [ ]
user_communication_settingsenthaelt opt-ins und Kanal-IDs konsistent.
4) Funktionale End-to-End Checks
- [ ] Inbound
STARTerzeugt Session und Event. - [ ] Onboarding-Sequenz kann bis
onboarding_completeddurchlaufen werden. - [ ] Outbound-Nachrichten werden gesendet und im Log erfasst.
Threema
- [ ] Inbound mit gueltigem Token erzeugt Session und Event.
- [ ] Onboarding-Sequenz funktioniert analog zu WhatsApp.
- [ ] Outbound-Nachrichten werden gesendet und im Log erfasst.
Admin
- [ ]
admin/taskszeigtchannel_onboarding_review. - [ ] Statusmapping funktioniert:
- [ ]
approved/merged_duplicate -> done - [ ]
rejected -> dismissed
- [ ]
5) Pennant-Rollout-Strategie (empfohlen)
Phase A: Beobachteter Inbound-Start
- [ ]
messaging.whatsapp = on - [ ]
messaging.whatsapp.inbound = on - [ ]
messaging.whatsapp.outbound = off - [ ]
onboarding.chatbot.whatsapp = on - [ ] Threema vorerst komplett
off(oder spiegelgleich in kleiner Testgruppe)
Phase B: Kontrollierter Outbound
- [ ]
messaging.whatsapp.outbound = onfuer interne Testnutzer - [ ] Fehlerquote und Zustellstatus mindestens 24h beobachten
Phase C: Zweiter Kanal
- [ ]
messaging.threema = on - [ ]
messaging.threema.inbound = on - [ ]
messaging.threema.outbound = onfuer kleine Testgruppe - [ ] Danach schrittweise erweitern
6) Monitoring & Alerts
- [ ] Dashboard/Log-Query fuer Failures vorhanden:
- [ ] hoher Anteil
status=failedinchannel_message_logs - [ ] keine neuen Events trotz Traffic
- [ ] stark steigende
needs_reviewBacklog-Tasks
- [ ] hoher Anteil
- [ ] Alarmierung an Betriebsverantwortliche definiert.
- [ ] Triage-Prozess festgelegt (wer analysiert, wer entscheidet Rollback).
7) Rollback-Plan (sofort wirksam)
- [ ] Outbound hart stoppen via Flags:
- [ ]
messaging.whatsapp.outbound = off - [ ]
messaging.threema.outbound = off
- [ ]
- [ ] Optional Inbound aktiv lassen fuer forensische Analyse.
- [ ] Fallback auf E-Mail-Kommunikation aktiv.
- [ ] Incident-Notiz und Ursache dokumentieren.
8) Rechtliches & Kommunikation
- [ ] Datenschutzerklaerung enthaelt Kanalhinweise (WhatsApp + Threema).
- [ ] AGB erwaehnen optionale Kanaele inkl. Abbestellbarkeit.
- [ ] Opt-in/Widerruf im UI und Bot-Texten konsistent.
- [ ] Support-Team kennt den Widerrufspfad.
9) Go-Live-Abnahme
- [ ] Technischer Verantwortlicher gibt frei.
- [ ] Produktverantwortlicher gibt frei.
- [ ] Datenschutz/Legal gibt frei.
- [ ] Abnahmedatum und Verantwortliche sind dokumentiert.
Kurzprotokoll (Template)
- Datum/Zeit:
- Environment: Staging
- Getestete Kanaele: WhatsApp / Threema
- Flags aktiv:
- Ergebnis E2E:
- Offene Punkte:
- Go-Live Entscheidung: Freigegeben / Blockiert