LEG App Logo
LEG App

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 whatsapp und threema.
  • [ ] .env ist 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_events dedupliziert externe Event-IDs.
  • [ ] channel_message_logs bildet den Outbound-Lifecycle ab (queued/sent/delivered/read/failed).
  • [ ] channel_inbound_messages enthaelt Inbound-Text und Sender-ID.
  • [ ] channel_onboarding_sessions zeigt den korrekten State-Flow.
  • [ ] user_communication_settings enthaelt opt-ins und Kanal-IDs konsistent.

4) Funktionale End-to-End Checks

WhatsApp

  • [ ] Inbound START erzeugt Session und Event.
  • [ ] Onboarding-Sequenz kann bis onboarding_completed durchlaufen 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/tasks zeigt channel_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 = on fuer interne Testnutzer
  • [ ] Fehlerquote und Zustellstatus mindestens 24h beobachten

Phase C: Zweiter Kanal

  • [ ] messaging.threema = on
  • [ ] messaging.threema.inbound = on
  • [ ] messaging.threema.outbound = on fuer kleine Testgruppe
  • [ ] Danach schrittweise erweitern

6) Monitoring & Alerts

  • [ ] Dashboard/Log-Query fuer Failures vorhanden:
    • [ ] hoher Anteil status=failed in channel_message_logs
    • [ ] keine neuen Events trotz Traffic
    • [ ] stark steigende needs_review Backlog-Tasks
  • [ ] 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