stadtwerke/ONBOARDING_FLOWS.md

9.5 KiB

InnungsApp — Onboarding Flows


1. Flow: Neue Innung einrichten (Admin)

Dauer: ~15 Minuten | Kanal: Web Admin Dashboard

Schritt 1: Registrierung (Admin-Konto)
─────────────────────────────────────
→ Admin bekommt Einladungslink von InnungsApp-Team
→ Klickt Link → Magic Link Login → Konto aktiviert

Schritt 2: Setup-Wizard (Innung konfigurieren)
──────────────────────────────────────────────
Screen 1: "Willkommen! Wie heißt Ihre Innung?"
  └─ Eingabe: Innungsname, Slug (auto-generiert)

Screen 2: "Laden Sie Ihr Logo hoch"
  └─ Upload: PNG/SVG, max 2 MB
  └─ Vorschau sofort sichtbar

Screen 3: "Welche Sparten hat Ihre Innung?"
  └─ Multi-Select: Elektro, SHK, Bau, Dachdecker, Maler, ...
  └─ Freitext: eigene Sparte hinzufügen

Screen 4: "Kontaktdaten der Innung"
  └─ Felder: Adresse, Telefon, E-Mail, Website

Screen 5: "Mitglieder importieren"
  └─ Option A: CSV hochladen (Vorlage herunterladen)
  └─ Option B: "Ich füge Mitglieder später manuell hinzu"
  └─ Validierung: Fehlende Felder anzeigen, Duplikate warnen

Screen 6: "Einladungen senden"
  └─ Liste der importierten Mitglieder mit E-Mail
  └─ Checkbox: "Einladungsmail sofort senden"
  └─ Button: "Setup abschließen"

→ Dashboard wird gezeigt: "Ihre Innung ist bereit!"

2. Flow: Mitglied lädt sich ein (Erstkontakt)

Dauer: ~2 Minuten | Kanal: E-Mail → Mobile App

E-Mail bei Mitglied
────────────────────
Betreff: "Sie sind eingeladen: [Innungsname] in der InnungsApp"
Absender: noreply@innungsapp.de

Inhalt:
  "Liebe/r [Vorname],
   [Innungsname] hat Sie zur InnungsApp eingeladen.
   Klicken Sie den Button, um Ihren kostenlosen Zugang zu aktivieren."

  [Jetzt beitreten] ← Magic Link (7 Tage gültig)

  "Kein Konto anlegen, kein Passwort nötig."

──────────────────────────────────────────────

Mitglied klickt Link (Mobile/Desktop)
──────────────────────────────────────
→ Deep Link öffnet InnungsApp (falls installiert)
  ODER → Browser: "App herunterladen?" Popup

→ Account wird automatisch erstellt
→ Redirect zu: First-Use-Onboarding

──────────────────────────────────────────────

First-Use Onboarding (Mobile App)
──────────────────────────────────
Screen 1: "Willkommen bei [Innungsname]!"
  └─ Logo der Innung wird angezeigt
  └─ "Sie sind jetzt Mitglied der [Innungsname] in der App"
  [Weiter]

Screen 2: "Push-Benachrichtigungen erlauben?"
  └─ Erklärung: "Erhalten Sie wichtige Mitteilungen sofort"
  └─ System-Dialog für Erlaubnis
  [Erlauben] / [Später]

Screen 3: "Was finden Sie in der App?"
  └─ Quick Tour: 4 Slides mit Icons
    1. "Mitglieder — Alle Betriebe auf einen Blick"
    2. "Mitteilungen — Keine wichtige Info mehr verpassen"
    3. "Termine — Anmelden mit einem Klick"
    4. "Lehrlingsbörse — Azubis finden oder werden"
  [Los geht's]

→ Redirect zu: Dashboard (Tab Bar)

3. Flow: Admin lädt Mitglied manuell ein

Kanal: Admin Web Dashboard

1. Admin navigiert zu: Mitglieder → Neues Mitglied

2. Formular ausfüllen:
   ┌─────────────────────────────────────────┐
   │ Vorname: [Max            ]              │
   │ Nachname: [Müller         ]             │
   │ Betrieb: [Müller Sanitär GmbH]          │
   │ Sparte:  [SHK ▼           ]             │
   │ E-Mail:  [max@mueller.de  ]             │
   │ Telefon: [0711-98765      ]             │
   │ Ort:     [Stuttgart       ]             │
   │ Status:  [Aktiv ▼         ]             │
   │ ☑ Ausbildungsbetrieb                    │
   └─────────────────────────────────────────┘
   [Speichern & Einladung senden]
   [Nur Speichern]

3. Einladungsmail wird sofort gesendet (oder bei Button "Einladung senden" im Mitglied-Profil)

4. Admin sieht in der Mitgliederliste:
   - "Eingeladen am: 15.03.2026" (solange noch kein Login)
   - Wechselt zu "Aktiv seit: 15.03.2026" nach erstem Login

4. Flow: Passwortloser Login (Wiederkehrender Nutzer)

App öffnen
────────────
→ Gespeicherte Session vorhanden?
  JA → Direkt zu Dashboard (kein Login nötig, Supabase Session ~7 Tage)
  NEIN → Login Screen

Login Screen
────────────
┌────────────────────────────────────────┐
│          [Innung Logo]                  │
│                                         │
│     Melden Sie sich an                  │
│                                         │
│  E-Mail: [________________]             │
│                                         │
│  [Link anfordern]                       │
│                                         │
│  "Wir schicken Ihnen einen Login-Link." │
└────────────────────────────────────────┘

→ E-Mail erscheint im Postfach innerhalb ~10 Sekunden
→ Klickt Link → App öffnet sich → Eingeloggt

Fallback: "Kein Link erhalten?"
→ "Link erneut anfordern" (nach 60 Sekunden)
→ "Wenden Sie sich an Ihren Innungsgeschäftsführer"

5. Flow: Lehrstellenanzeige aufgeben (Mitglied)

Voraussetzung: Mitglied hat "ausbildungsbetrieb = true"

1. Tab "Lehrlingsbörse" öffnen
2. Button: "Stelle anbieten" (nur sichtbar wenn ausbildungsbetrieb)

3. Formular:
   ┌──────────────────────────────────────────┐
   │ Beruf: [Elektroniker für Energie- u...]  │
   │ Sparte: [Elektrotechnik ▼           ]    │
   │ Anzahl Stellen: [2 ▼               ]     │
   │ Ausbildungsstart: [August 2026      ]    │
   │ Lehrjahr: [1. Lehrjahr ▼           ]     │
   │                                          │
   │ Vergütung:                               │
   │   1. Lehrjahr: [800  ] €/Monat          │
   │   2. Lehrjahr: [920  ] €/Monat          │
   │   3. Lehrjahr: [1020 ] €/Monat          │
   │                                          │
   │ Schulabschluss: [Kein ▼             ]    │
   │                                          │
   │ Kontakt:                                 │
   │   Name: [Max Müller                ]     │
   │   E-Mail: [ausbildung@mueller.de   ]     │
   │   Telefon: [0711-98765             ]     │
   └──────────────────────────────────────────┘
   [Stelle veröffentlichen]

4. Stelle erscheint sofort in der öffentlichen Lehrlingsbörse
5. Push-Notification an Admin: "Neue Lehrstellenanzeige von Müller Sanitär"

6. Flow: Azubi-Bewerber (ohne Login)

Einstieg: Browser oder App (öffentlicher Bereich)
───────────────────────────────────────────────────
Landing Page: "Ausbildungsplätze bei [Innung]"

→ Suchzeile: [Beruf oder Ort suchen]
→ Filter: Sparte | Ort | Ausbildungsstart | Lehrjahr

Suchergebnis:
┌──────────────────────────────────────────────────┐
│ 🔧 Elektroniker/in                               │
│    Müller Elektro GmbH · Stuttgart               │
│    2 Stellen · ab August 2026                    │
│    Vergütung: 800 € → 920 € → 1.020 €           │
│    [Mehr erfahren]   [Jetzt bewerben]            │
└──────────────────────────────────────────────────┘

Detailansicht:
→ Vollständige Berufsbeschreibung
→ Vergütungstabelle alle Lehrjahre
→ Anforderungen
→ Betriebsprofil

Kontaktaufnahme (ohne Login):
Option A: [Anrufen]  → tel: Link
Option B: [E-Mail]   → mailto: Link
Option C: [Bewerben] → (Post-MVP: In-App-Profil + Chat)

7. Fehler-Flows

Nutzer klickt alten Link
─────────────────────────
→ App/Browser zeigt: "Dieser Link ist abgelaufen."
→ "Neuen Link anfordern" Button
→ Gibt E-Mail ein → Neuer Link wird gesendet

Nutzer nicht in der Innung (falsche E-Mail)

→ Login erfolgreich ABER kein user_roles-Eintrag gefunden
→ Screen: "Kein Innungszugang gefunden"
→ "Wenden Sie sich an Ihren Innungsgeschäftsführer"
→ E-Mail-Adresse Ihres Ansprechpartners anzeigen
→ Smart App Banner / Universal Link Fallback
→ Browser zeigt: "Öffnen Sie den Link in der InnungsApp"
→ [App im App Store herunterladen] Button
→ Nach Installation: Deep Link wird verarbeitet (Token im Clipboard)