Produkthandbuch · WAMOCON

Away

Professionelle Urlaubsplanung für Teams – Lite & Pro
Version
2.0.0
Status
Produktiv
Pläne
Lite · Pro
Trial
30 Tage kostenlos

01 Übersicht

Away ist eine webbasierte SaaS-Lösung für die digitale Urlaubsplanung in Teams und Organisationen. Sie automatisiert den gesamten Workflow von der Antragstellung über die Genehmigung bis zur Dokumentation.

Was Away löst: Papierbasierte oder Excel-gestützte Prozesse abschaffen, Echtzeit-Kalender für Teams, DSGVO-konforme Dokumentation, Zugriff von jedem Endgerät.
RolleBeschreibung
MitarbeiterAnträge stellen, Antragshistorie, Kalender einsehen
GenehmigerAnträge anderer genehmigen oder ablehnen
AdministratorOrganisation verwalten, Nutzer einladen, Rollen zuweisen
Super-AdminPlattform-übergreifende Subscription-Verwaltung (WAMOCON intern)

02 Business Model: Lite & Pro

Away ist in zwei Plänen verfügbar. Beide können 30 Tage kostenlos getestet werden.

2.1 Planübersicht

FeatureLitePro
Urlaubsanträge stellen & genehmigen
In-App Kalender
Rollen: Mitarbeiter, Genehmiger, Admin
Benutzereinstellungen & Urlaubsquote
DSGVO-Consent & Rechtliches
Max. Benutzer50Unbegrenzt
Organisationen1 (fest)Unbegrenzt
Externer Kalender-Sync (Outlook / Google)
E-Mail-Integration & Versand
Dokumentvorlagen (PDF / DOCX)
Reports & Analytics
Multi-Organisations-Verwaltung
DSGVO-Admin-Panel
Kalender-Einladungen (Outlook)

2.2 Trial-System

Jede Registrierung startet automatisch einen 30-Tage-Trial für den gewählten Plan.

Lebenszyklus

Registrierung → Trial (30 Tage) → Ablauf → Grace Period (30 Tage) → Datenlöschung
Bei Bestellung während Trial oder Grace Period: → Aktiv (unbegrenzt)

StatusBedeutungZugang
trialTestzeitraum läuft✓ Voll
activeBezahltes Abo aktiv✓ Voll
pending_orderUpgrade beantragt, Trial läuft noch✓ Bis Trial-Ende
graceNachfrist läuft (30 Tage)✗ Gesperrt
expiredAbgelaufen✗ Gesperrt

2.3 Upgrade-Prozess

  1. Klick auf „Auf Pro upgraden“ in /settings/subscription
  2. Status wird auf pending_order gesetzt
  3. Mit E-Mail-Provider: automatische Benachrichtigung an WAMOCON
  4. Ohne Provider: System-Mail-Client öffnet sich mit vorausgefüllter E-Mail
  5. Super-Admin schaltet Plan manuell im /admin/subscriptions-Panel frei

03 Tutorials – Erste Schritte

3.1 Mitarbeiter: Ersten Antrag stellen

  1. Einladungslink in der E-Mail anklicken
  2. Passwort vergeben (min. 8 Zeichen)
  3. AGB, Datenschutzerklärung und DSGVO akzeptieren
  4. Dashboard öffnet sich → „Neuer Antrag“ klicken
  5. Start- und Enddatum wählen
  6. Grund optional eintragen
  7. „Absenden“ – Genehmiger wird informiert
  8. Status unter Meine Anträge verfolgen

3.2 Administrator: Neue Organisation registrieren

  1. /auth/register öffnen
  2. Plan wählen: Lite oder Pro
  3. Organisations-Name, E-Mail und Passwort eingeben
  4. Alle rechtlichen Bedingungen akzeptieren
  5. „30 Tage kostenlos starten“ klicken

3.3 Admin: Ersten Genehmiger einladen

  1. Zu /admin/settings navigieren
  2. „Benutzer einladen“ klicken
  3. E-Mail eingeben, Rolle Genehmiger wählen
  4. „Einladung senden“

04 How-to Guides

4.1 Urlaubsantrag per E-Mail einreichen (ohne Provider)

  1. Antrag im Wizard stellen
  2. „Per E-Mail einreichen“ klicken
  3. System-Mail-Client öffnet sich: Empfänger = Genehmiger, Betreff + Text vorausgefüllt
  4. E-Mail prüfen und senden

4.2 Genehmiger: Antrag genehmigen oder ablehnen

  1. „Genehmigungen“ in der Navigation klicken
  2. Antrag anklicken → Detailansicht
  3. „Genehmigen“ oder „Ablehnen“ klicken
  4. Optional: Kommentar hinterlassen

4.3 Administrator: Probeabo upgraden

  1. /settings/subscription öffnen
  2. „Auf Pro upgraden“ klicken
  3. Mit E-Mail-Provider: automatisch versandt; ohne Provider: Mail-Client öffnet sich
  4. WAMOCON schaltet Plan frei

4.4 Pro: Kalender-Sync konfigurieren

  1. /settings → Tab OAuth / Kalender öffnen
  2. Anbieter wählen (Outlook oder Google)
  3. E-Mail und Token eingeben → Speichern
  4. Externe Termine erscheinen im Kalender

4.5 Super-Admin: Plan manuell freischalten

  1. /admin/subscriptions öffnen
  2. Organisation in der Liste suchen
  3. „Lite aktiv“ oder „Pro aktiv“ klicken → sofortige Freischaltung
  4. „+30d Trial“ verlängert den Testzeitraum um 30 Tage
  5. „Sperren“ setzt Status auf expired

05 Funktionsreferenz

5.1 Routen-Übersicht

RouteBeschreibungZugriff
/auth/loginAnmeldungAlle
/auth/registerTrial-RegistrierungÖffentlich
/auth/accept-inviteEinladung annehmenEingeladene
/dashboardStartseiteAlle
/dashboard/requestsMeine AnträgeAlle
/dashboard/admin-requestsGenehmigungsuebersichtGenehmiger+
/dashboard/calendarTeamkalenderAlle
/dashboard/organizationsOrganisations-VerwaltungAdmin [Pro]
/dashboard/reportsReports & AnalyticsGenehmiger+ [Pro]
/settings/subscriptionAbonnement & PlanAlle
/admin/settingsOrganisations-AdminAdmin, CIO
/admin/consentsDSGVO-Audit-PanelAdmin [Pro]
/admin/subscriptionsSubscription-VerwaltungSuper-Admin only

5.2 Rollen & Berechtigungen

BerechtigungEmployeeApproverAdminCIO
Eigene Anträge stellen
Anträge genehmigen
Nutzer einladen
Admin-Einstellungen
Reports [Pro]
DSGVO-Panel [Pro]

06 Technische Architektur

Away baut auf einem modernen, serverlosen Stack auf, der auf Performance, Skalierbarkeit und Datensicherheit ausgelegt ist.

6.1 Stack

SchichtTechnologieAufgabe
FrontendNext.js 15 (App Router)SSR/SSG, Routing, Server Actions
AuthSupabase AuthE-Mail-Login, Invite-Flow, JWT
DatenbankSupabase PostgreSQLMulti-Schema (dev/test/prod), RLS
StylingTailwind CSSUtility-first, Dark Mode
HostingVercelEdge Functions, Cron Jobs, CDN
DocsGitHub PagesStatisches HTML-Handbuch

6.2 Subscription-Middleware

Die Middleware prüft bei jedem Request:

  1. Ist der Nutzer authentifiziert?
  2. Hat seine Organisation ein aktives Abo (active oder laufender trial)?
  3. Hat der Plan Zugriff auf die angefragte Route (Lite vs. Pro-only)?
Fail-Open

Bei Datenbankfehler während der Subscription-Prüfung wird der Zugang gewährt (fail-open), um Ausfälle nicht auf Nutzer abzuwälzen.

6.3 Cron Job: Automatischer Ablauf

Vercel führt täglich um 02:00 UTC den Endpunkt /api/cron/check-subscriptions aus:

  • Abgelaufene Trials (trial_end < now()) werden auf expired gesetzt
  • Expired-Orgs erhalten eine Grace Period von 30 Tagen (grace_end)
  • Nach Grace-Ablauf: Urlaubsanträge, Rollen und Einstellungen werden gelöscht; Org wird soft-deleted

07 Compliance & DSGVO

7.1 Einwilligungsverwaltung

Jeder Nutzer muss beim Eintritt in eine Organisation explizit AGB, Datenschutzerklärung und DSGVO-Einwilligung akzeptieren. Die Zustimmungen werden versioniert in der Datenbank gespeichert.

7.2 Audit-Trail

Administratoren können im DSGVO-Panel (/admin/consents, Pro-Feature) einsehen:

  • Wer hat wann welche Version akzeptiert?
  • Gibt es Accounts ohne vollständige Zustimmung (Legacy)?
  • Zeitstempel aller Einwilligungen

7.3 Row Level Security (RLS)

Alle Tabellen sind durch PostgreSQL-RLS geschützt. Nutzer können ausschließlich Daten ihrer eigenen Organisation lesen und schreiben. Schema-Isolation (dev/test/prod) verhindert Datenlecks zwischen Umgebungen.

7.4 Datenlöschung (Recht auf Vergessenwerden)

Nach Ablauf der Grace Period werden automatisch gelöscht:

  • Alle Urlaubsanträge der Organisation
  • Alle Benutzerrollen und -einstellungen
  • Die Organisation wird soft-deleted (Name: [DELETED] {id})
Hinweis

Auth-User-Accounts bleiben bestehen (Supabase Auth). Nur organisationsbezogene Daten werden entfernt.

08 Glossar

BegriffErklärung
Trial30-tägige kostenlose Testphase nach Registrierung
Grace Period30-tägige Nachfrist nach Trial-/Abo-Ablauf; kein Zugang, aber keine sofortige Löschung
PlanGateReact-Komponente, die Inhalte nur bei genügender Plan-Berechtigung anzeigt
Super-AdminWAMOCON-interner Account, der Subscriptions plattformweit verwalten kann
SubscriptionDatenbankzeile, die Plan, Status und Laufzeit einer Organisation speichert
pending_orderStatus nach Upgrade-Anfrage; Trial läuft weiter bis zum Ende
RLSRow Level Security – PostgreSQL-Mechanismus zur Zeilensicherheit
Cron JobAutomatisch ausgeführte Aufgabe (hier: täglich Subscription-Ablauf prüfen)
Mailto-FallbackÖffnet nativen Mail-Client, wenn kein OAuth-Provider konfiguriert ist
Soft-DeleteOrganisation wird nicht gelöscht, sondern als [DELETED] markiert
fail-openBei Systemfehler wird Zugang gewährt statt gesperrt (keine Betriebsunterbrechung)