Team-Hub

Euer zentraler Ort für Kundendaten, Aufträge und Teamverwaltung. Hier findest du eine Übersicht aller Funktionen und Tipps für die tägliche Arbeit.

Rollen im Komplizen Hub

Je nach Rolle siehst du unterschiedliche Bereiche und hast verschiedene Berechtigungen.

Externer Komplize

  • Sieht nur zugewiesene Aufträge und deren Organisationen
  • Kann eigene Zeiten erfassen
  • Kann Aufgaben erstellen und bearbeiten
  • Kann Rechnungsnummern zu eigenen Anteilen hinterlegen
  • Kein Zugriff auf Produkte oder Netzwerk-Explorer

Interner Komplize

  • Voller Zugriff auf alle Organisationen, Personen und Aufträge
  • Kann Komplizen Aufträgen und Organisationen zuweisen
  • Zugriff auf Produkte und Netzwerk-Explorer
  • Kann interne Zeiten erfassen (IT, Marketing, etc.)
  • Kann Abrechnungszyklen erstellen und verwalten

Admin

  • Alles, was interne Komplizen können
  • Neue Komplizen anlegen und verwalten
  • Produkte erstellen und bearbeiten
  • Systemeinstellungen konfigurieren (Akquise-%, Verwaltungs-%)
  • Kontaktrollen verwalten

Was ist neu

Jede neue Version entspricht einem produktiven Rollout. Aktuelle Releases zuerst. Technische Hinweise (Migrationen, Infra) richten sich an die Komplizen, die den Rollout fahren.

v18

Vier gemeldete Fehler aus dem Alltag: Die offene Abrechnung zeigt endlich alle Aufträge statt nur der ersten Seite, ein hängender Timer lässt sich wieder loswerden, und Admins können die Rolle von Komplizen umstellen.

🧾 Offene Abrechnung

  • Es fehlten Zeiten — jetzt nicht mehr. Die Seite blätterte durch die einzelnen Zeiteinträge, 25 pro Seite, und gruppierte erst danach nach Auftrag. Aufträge, deren Einträge weiter hinten lagen, tauchten gar nicht auf; andere wurden mittendrin abgeschnitten. Wer die erste Seite ansah, sah einen Ausschnitt und wusste es nicht.
  • Eine Zeile je Position statt einer Zeile je Eintrag. Du siehst jetzt pro Position, wie viele Zeiteinträge dahinterstehen und was sie zusammen wert sind. Alle Aufträge sind immer sichtbar, eine Blätterleiste gibt es nicht mehr.
  • Die Summen stimmen mit dem überein, was dasteht. Je Auftrag wird summiert und darunter der offene Gesamtbetrag — beides aus genau den Zahlen, die in der Tabelle stehen.
  • Positionen ohne Stundensatz fallen auf. Zeiteinträge, für die kein Satz hinterlegt ist, bringen zwar Stunden, aber kein Geld. Sie werden jetzt getrennt ausgewiesen, statt stillschweigend als null Euro mitzulaufen.

⏱ Timer

  • Ein Timer, der sich nicht stoppen ließ. Wenn der Hub in einem zweiten Fenster offen war und du den Timer dort bereits beendet hattest, blieb die Leiste unten stehen — und der Stopp-Knopf tat nichts. Kein Hinweis, keine Reaktion.
  • Jetzt bekommst du eine Rückmeldung. Schlägt das Stoppen fehl, erscheint eine Meldung, und die Anzeige räumt sich selbst auf. Neu laden musst du nichts mehr.

🔐 Rollen

  • Admins können Rollen umstellen. Auf der Detailseite eines Komplizen gibt es im Bearbeitungsmodus das Feld „Rolle" mit drei Möglichkeiten: Externer Komplize, Komplize und Admin. Bisher ließ sich das nur direkt in der Datenbank ändern.
  • Die Rolle steht auch in der Leseansicht. Eine Plakette neben dem Status, kein Rätselraten mehr.
  • Die eigene Rolle ist gesperrt. Sonst könnte sich der letzte Admin mit einem Klick aussperren, und niemand käme mehr an Systemeinstellungen und Abrechnung.
  • Wer auf extern gestellt wird, verliert die Admin-Rechte mit. Sie bleiben nicht im Hintergrund stehen und greifen später wieder.

⚙️ Systemeinstellungen

  • Akquise- und Verwaltungsanteil lassen sich wieder speichern. Der Versuch endete bisher mit einer Fehlermeldung. Grund war kein Programmfehler, sondern dass die beiden Werte in der produktiven Datenbank schlicht fehlten. Sie sind am 31.07. eingetragen worden — 20 % Akquise, 5 % Verwaltung —, der Abrechnungslauf war damit sofort wieder möglich.
🛠 Migrationen & Rollout. Keine Datenbank-Migrationen in diesem Release. Prod-Deploy läuft nicht automatisch: Hub-Service nach dem Promote manuell neu ausrollen. Keine neuen Umgebungsvariablen.

Zu wissen: Der Akquisesatz von 20 % wurde bewusst ohne Migration gesetzt, weil er nur für wenige Monate gilt. Er ist damit nicht aus supabase/migrations/ reproduzierbar — wer die produktive Datenbank neu aufbaut, landet bei 15 % und muss den Wert von Hand nachziehen (TASK-222). Staging läuft weiter mit 15 %; Abrechnungsbeträge sind zwischen den beiden Umgebungen deshalb nicht vergleichbar.

Offen und getrennt zu entscheiden: Die 17 bereits abgeschlossenen Abrechnungszyklen auf Prod haben mit 15 % statt 20 % Akquise gerechnet, weil der Wert fehlte und das Programm auf einen Standardwert zurückfiel. Der Satz wird beim Abschließen eingefroren und lässt sich nicht nachträglich ändern — das ist eine kaufmännische Frage (TASK-225).

Enthaltene PRs: #468 (Projektanleitung umgebaut), #469 (Rollen umstellen), #470 (Anteile auf Prod festgehalten), #471 (offene Abrechnung), #472 (Timer-Stopp).
Backlog-Milestone: v18-abrechnung-rollen (m-8) mit TASK-221, TASK-222, TASK-223, TASK-224 und TASK-225.
v17

Schwerpunkt Zeiterfassung: Du kannst Zeiten jetzt als Tabelle nacherfassen, statt jeden Eintrag einzeln zu tippen. Zeiten lassen sich schon auf beauftragte Aufträge buchen, freie Komplizen können interne Zeiten erfassen — und dieselbe Stunde kann nicht mehr versehentlich doppelt gebucht werden.

🕓 Zeiten als Tabelle nacherfassen

  • Ganze Wochen auf einmal eintragen. In der Zeiterfassung gibt es jetzt „Importieren“: Du lädst eine Vorlage herunter, füllst sie in Excel aus und lädst sie wieder hoch. Gedacht für vergessene Wochen, Nacherfassung nach einer Reise oder den Umzug aus einem anderen Programm.
  • Die Vorlage ist schon ausgefüllt. Sie enthält für jeden deiner bebuchbaren Aufträge und jede interne Tätigkeit eine eigene Zeile — du trägst nur noch Datum, Von und Bis ein, dazu bei Bedarf eine Beschreibung.
  • Zeilen, die du nicht brauchst, lässt du einfach stehen. Ohne Datum und Uhrzeit werden sie beim Import übersprungen. Und wenn du gegen dieselbe Position mehrfach buchen willst, kopierst du die Zeile so oft, wie du sie brauchst. Kein Aufräumen nötig.
  • Erst prüfen, dann übernehmen. Nach dem Hochladen siehst du eine Vorschau: wie viele Zeilen importierbar sind, welche einen Fehler haben (mit der Zeilennummer, die auch Excel anzeigt) und wie viele übersprungen werden. Erst wenn keine Zeile mehr einen Fehler hat, lässt sich der Import starten — es landet also nie die Hälfte im Hub.

🕓 Zeiterfassung im Alltag

  • Zeiten schon auf beauftragte Aufträge buchen. Bisher ging das erst, wenn ein Auftrag auf „Laufend“ stand. Vorbereitung und Abstimmung fallen aber schon nach der Beauftragung an — deshalb kannst du jetzt auch auf Aufträge im Status „Beauftragt“ buchen.
  • Interne Zeiten auch für freie Komplizen. Tätigkeiten ohne Auftragsbezug wie Vertrieb, Marketing oder Weiterbildung stehen jetzt auch freien Komplizen offen. Welche Tätigkeiten freigegeben sind, legt die Administration in den Einstellungen fest. Interne Zeiten sind wie bisher nicht abrechenbar.

⏱ Keine doppelt gebuchten Stunden mehr

  • Zeiten dürfen sich nicht überschneiden. Eine Zeit, die in einen bereits erfassten Zeitraum hineinreicht, wird abgelehnt — mit einem Hinweis, welcher Eintrag im Weg steht. So landet dieselbe Stunde nicht zweimal in einer Abrechnung. Das gilt überall: beim Timer, beim manuellen Erfassen, in der Wochenansicht und beim Import.
  • Direkt anschließende Zeiten sind selbstverständlich in Ordnung. Ein Eintrag von 9 bis 11 Uhr und der nächste ab 11 Uhr passen zusammen.
  • Deine bestehenden Zeiten bleiben, wie sie sind. Die Prüfung greift nur bei neuen Einträgen. Und beim Bearbeiten nur dann, wenn du die Zeiten selbst änderst — eine Beschreibung anpassen oder einen Eintrag löschen geht immer.

🧾 Reisekosten

  • Du siehst, wann abgerechnet und ausgezahlt wurde. Jede Reisekosten-Position zeigt jetzt ihren Stand — in der Detailansicht wie in der Liste. Damit musst du nicht mehr nachfragen, ob eine Auslage schon durch ist.
🛠 Migrationen & Rollout. Dieses Release enthält drei Datenbank-Migrationen. Reihenfolge beachten: erst den Hub-Service ausrollen, dann migrieren — nicht umgekehrt. Der bisher laufende Code schreibt bei jeder Zeitbuchung noch in die Kategorie-Spalte; wird sie vorher entfernt, schlagen alle Zeitbuchungen fehl. Nach dem Deploy also aus solutions/hub:
make db-apply-pending ENV=prod
In der kurzen Spanne zwischen Deploy und Migration lassen sich interne Zeiten nicht buchen und die Tätigkeiten-Liste bleibt leer; Buchungen auf Aufträge laufen normal weiter. Die beiden Schritte deshalb direkt nacheinander fahren.

Die einzelnen Migrationen:
20260721100000_drop_time_entries_category.sql — entfernt die abgelöste Kategorie-Spalte bei Zeiteinträgen; interne Tätigkeiten hängen jetzt allein an der Tätigkeiten-Tabelle.
20260725100000_internal_activities_visible_to_external.sql — Freigabe-Kennzeichen je interner Tätigkeit (Startbelegung: Vertrieb, Marketing, Weiterbildung).
20260725110000_harden_time_entries_insert_policy.sql — schärft die Schreibregel für Zeiteinträge nach.
Prod-Deploy läuft nicht automatisch: Hub-Service nach dem Promote manuell neu ausrollen. Keine neuen Umgebungsvariablen.
Enthaltene PRs: #449 (Marken-Design-System als Projekt-Skill), #450 (Kategorie-Spalte abgelöst), #451 (beauftragte Aufträge bebuchbar), #452 (interne Zeiten für freie Komplizen), #453 und #454 (Reisekosten-Status), #456 (Deliberation: Sitzungen wieder öffnen), #457 (Überschneidungs-Sperre), #458 (CSV-Import).
Backlog-Milestone: v17-zeiterfassung (m-7) mit TASK-101, TASK-133, TASK-192, TASK-193, TASK-194 und TASK-195.
v16

Schwerpunkt Handy: Der Hub lässt sich jetzt unterwegs auf dem Smartphone voll bedienen — Formulare, Reiter, Tabellen und die Anmeldung sind für kleine Bildschirme gemacht. Außerdem heißt der Hub jetzt Komplizen Hub und lässt sich als App auf den Startbildschirm legen.

📱 Der Hub auf dem Handy

  • Kein Verrutschen mehr beim Tippen. Sobald du auf dem iPhone in ein Eingabefeld getippt hast, zoomte die Seite bisher hinein und blieb verrutscht. Das ist behoben — die Ansicht bleibt ruhig, egal in welches Feld du tippst.
  • Formulare einspaltig statt gequetscht. Eingabefelder stehen auf schmalen Bildschirmen untereinander und in voller Breite, nichts wird mehr abgeschnitten.
  • Übersichtliche Reiter. In Aufträgen, Organisationen, Personen und Co. zeigen die Reiter unterwegs nur noch ein Symbol — der aktive Reiter behält seine Beschriftung, damit du immer weißt, wo du bist.
  • Buttons brauchen weniger Platz. Die gelben Aktions-Buttons in den Kopfzeilen (etwa „Neuer Auftrag“ oder „Speichern“) zeigen auf dem Handy nur noch ihr Symbol und laufen nicht mehr über den Rand.
  • Wochen-Zeiterfassung nutzbar. Die Zuordnungs-Spalte bleibt beim seitlichen Scrollen stehen, sodass du die Zeile nicht mehr verlierst.
  • Reisekosten als Karten. Die Reisekosten-Liste erscheint auf dem Handy als übersichtliche Karten statt als breite Tabelle; die Verpflegungs-Tabelle lässt sich seitlich wischen (mit dezentem Hinweis am Rand).
  • Netzwerk-Ansicht nur auf Großgeräten. Der Beziehungs-Browser, der sich auf dem Handy ohnehin kaum bedienen lässt, wird dort ausgeblendet — auf Tablet und Rechner bleibt er.
  • Lange Titel überdecken nichts mehr. Auf Detailseiten (Auftrag, Person, Organisation, Komplize, Interaktionszyklus) stand ein langer Titel bisher quer über den Aktions-Buttons. Jetzt rutschen die Buttons auf dem Handy sauber unter den Titel, und der Titel bricht um statt abgeschnitten zu werden.

🔐 Anmeldung

  • Code erneut anfordern. Kommt die Anmelde-Mail nicht an, kannst du den Code jetzt direkt erneut senden (mit kurzer Wartezeit, damit nichts blockiert). Das E-Mail-Feld ist beim Öffnen gleich aktiv, und bei zu vielen Versuchen bekommst du einen klaren Wartehinweis statt einer verwirrenden Fehlermeldung.
  • Aufgeräumte Anmeldeseite. Logo über dem Titel, angenehm platziert — auch auf dem Handy.

📲 Als App installieren

  • Zum Startbildschirm hinzufügen. Der Hub lässt sich jetzt wie eine App auf den Startbildschirm deines Handys legen — mit eigenem Icon und Namen — und öffnet sich dann im Vollbild. Die Anmeldung läuft dort über die Code-Eingabe.

✨ Neuer Name

  • Aus „Team-Hub“ wird „Komplizen Hub“. Der Hub trägt jetzt überall — Anmeldung, Menü, App-Name — den Namen Komplizen Hub. An den Funktionen ändert sich dadurch nichts.
🛠 Migrationen & Rollout. Keine Datenbankänderungen in diesem Release — reine Oberflächen-Arbeit. Hub-Service einfach neu ausrollen. Keine neuen Umgebungsvariablen.
Enthaltene PRs: #439 (Layout: Grids, Dialoge, Timesheet, Reisekosten-Karten), #440 (Anmelde-Politur & App-Installierbarkeit), #442 (Rand-Überläufe), #444 (Handy-Härtung Runde 2), #445 (Name & Logo, Anmelde-Feinschliff), #446 (Detail-Header stapeln).
Backlog-Milestone: hub-mobile (m-6), TASK-190 und TASK-191.
v15

Schwerpunkt Struktur & Korrektheit: der Hub wird im Inneren aufgeräumt, damit neue Funktionen künftig schneller und mit weniger Fehlern kommen. Sichtbar für dich sind vor allem zwei Dinge — korrekte Uhrzeiten auf der Reisekostenabrechnung und eine noch verlässlichere Rechnungserstellung.

🧳 Geschäftsreisen

  • Korrekte Uhrzeiten auf der Abrechnung. Abfahrt und Rückkunft standen im exportierten Reisekosten-Dokument bisher in UTC — also je nach Jahreszeit ein bis zwei Stunden zu früh. Jetzt erscheinen sie in deutscher Zeit, passend zum Rest des Dokuments.
  • Reise + Aufträge werden gemeinsam gespeichert. Beim Anlegen einer Reise mit verknüpften Aufträgen kann kein halbfertiger Zustand mehr entstehen — entweder beides wird gespeichert oder nichts.

📄 Abrechnung

  • Verlässlicher abschließen. Wenn jemand die Umsatzverteilung eines Auftrags genau in dem Moment ändert, in dem ein anderer die Abrechnung abschließt, rechnet der Hub jetzt nicht mehr mit veralteten Werten. Statt eines stillen Fehlers bekommst du einen klaren Hinweis, die Verteilung neu zu laden und es erneut zu versuchen.

💬 Interaktionen

  • Eigener Menüpunkt „Interaktionen“ mit zwei Tabs. Der frühere Menüpunkt „Interaktionszyklen“ heißt jetzt „Interaktionen“ und hat zwei Ansichten: Interaktionen (alle einzelnen Interaktionen) und Interaktionszyklen (wie bisher).
  • Verwaiste Interaktionen sind wieder auffindbar. Eine Interaktion, die an nichts hängt — kein Auftrag, keine Person, kein Zyklus — war bisher nirgends sichtbar. In der neuen Interaktionen-Liste tauchen jetzt alle auf; du kannst filtern (Kanal, Richtung, Suche) und direkt bearbeiten.

🧪 unter der Haube

  • Großer Frühjahrsputz im Code. Der umfangreichste Teil des Hub-Rechnungscodes wurde in kleine, einzeln testbare Bausteine zerlegt, doppelter und toter Code entfernt. Für dich ändert sich nichts an den Abläufen — aber Änderungen daran sind künftig sicherer und schneller.
  • Mehr automatische Tests. Die kniffligen Rechenkerne (Anteile, Nachkorrekturen, Reisekosten) sind jetzt direkt durch Tests abgesichert, sodass Umbauten nichts verschieben.
🛠 Migrationen & Rollout. Vor dem Produktiv-Deploy werden sieben additive, rückwärtskompatible Datenbankänderungen angewendet — eine neue Spalte plus Funktionen für den Abrechnungs- und Reise-Ablauf: 20260711120000…120400 (Abrechnungs-Race, TASK-175) und 20260712100000/100100 (atomares Anlegen von Reisen, TASK-163). Keine neuen Umgebungsvariablen.
Enthaltene PRs: #400 / #406 / #409 (Zerlegung der Abrechnung), #410 (Race-Absicherung), #414 (Geschäftsreisen), #416 / #417 / #419 / #421 / #424 (Aufräumen der API-Basis).
Backlog-Milestone: hub-optimization (m-5), Welle 3 (Struktur & Korrektheit).
v14

Schwerpunkt Tempo: keine neuen Funktionen, dafür lädt der Hub spürbar schneller und lässt sich flüssiger bedienen — auch dann, wenn mit der Zeit viele Einträge zusammenkommen. An der Oberfläche und an den Funktionen ändert sich nichts.

⚡ Schneller & flüssiger

  • Der Hub startet spürbar schneller. Aufwändige Teile wie der große Text-Editor und die Kartenansicht laden erst, wenn du sie wirklich öffnest — der Start ist dadurch leichter und der Hub schneller da. Auch nach einem Update ist er zügiger bereit.
  • Ansichten reagieren flotter. Detailansichten und Listen — etwa die Abrechnungs-Details, die Interaktionen oder die Geschäftsreisen — sind jetzt schneller da.
  • Suchen bleibt flüssig. In langen Listen wie Aufgaben oder Organisationen ruckelt das Tippen im Suchfeld nicht mehr.
  • Auch bei vielen Einträgen flott. Der Hub bleibt schnell, wenn die Datenmengen wachsen — ein Bremsklotz, der sich sonst mit der Zeit bemerkbar gemacht hätte, ist beseitigt.

🧪 unter der Haube

  • Reine Tempo-Verbesserungen. An Funktionen, Abläufen und Berechtigungen ändert sich nichts. Automatische Tests stellen sicher, dass die Beschleunigung nichts verschiebt.
🛠 Migrationen & Rollout. Vor dem Produktiv-Deploy werden zwei Datenbankänderungen angewendet: gezielte Index-Optimierung (20260708120000_index_tuning_wave2.sql) und effizientere Zugriffsprüfungen (20260708140000_rls_initplan_caching.sql). Beide sind additiv bzw. rückwärtskompatibel — kein Risiko, keine neuen Umgebungsvariablen.
Enthaltene PRs: #393 (Index-Optimierung), #394 (Web-Ladezeit), #395 (Zugriffs-Caching), #396 (API-Parallelisierung).
Backlog-Milestone: hub-optimization (m-5), Welle 2 (Performance). TASK-157 (Zugriffs-Kaskade für externe Nutzer) ist bewusst auf eine Messung an Produktiv-Datenmengen verschoben.
v13

Schwerpunkt Sicherheit & Verlässlichkeit: keine neuen Funktionen, dafür eine gründliche Durchsicht des ganzen Hubs. Eine Datenschutz-Lücke ist geschlossen, das Abrechnungs-Festschreiben ist gegen technische Aussetzer abgesichert, die Suche und Fehlermeldungen funktionieren wieder korrekt — und ein neues Test-Sicherheitsnetz sorgt dafür, dass solche Fehler künftig vor dem Rollout auffallen.

🔐 Sicherheit

  • Datenschutz-Lücke bei Budget-Zahlen geschlossen. Die Budget- und Verbrauchs-Auswertung der Aufträge (geplante vs. verbrauchte Stunden, Budget-Status) war technisch ohne Anmeldung abrufbar — für alle Aufträge, unabhängig vom Zugriffsrecht. Das ist behoben: Die Auswertung richtet sich jetzt strikt nach deinen Zugriffsrechten, ohne Anmeldung ist nichts mehr sichtbar. In der Oberfläche ändert sich nichts.
  • Zugänge von Via wirken sofort ab. Wird ein Agent-Schlüssel von Via widerrufen, verlieren auch bereits ausgestellte Zugänge innerhalb von Sekunden ihre Gültigkeit — bisher galt das nur für einen Teil der Zugänge, der Rest blieb bis zu einer Stunde nutzbar. Der Notaus-Schalter greift jetzt zuverlässig.

🧾 Abrechnung & Wertvertrag

  • Festschreiben ist gegen technische Aussetzer abgesichert. Falls beim Abschließen einer Abrechnung eine Datenbank-Abfrage kurz aussetzt, bricht der Vorgang jetzt sauber mit einer Fehlermeldung ab — statt still mit unvollständigen Zahlen weiterzurechnen und Anteile falsch zuzuordnen. Eine festgeschriebene Abrechnung ist unveränderlich, deshalb ist dieser Schutz besonders wichtig.
  • Fehlgeschlagenes Festschreiben zerstört keine Entwurfs-Version mehr. Schlug ein Abschluss unterwegs fehl, konnte die editierbare Wertvertrag-Version des Auftrags trotzdem gesperrt zurückbleiben und beim nächsten Bearbeiten eine „Geister-Version“ erzeugen. Jetzt gehören Sperre und Abschluss untrennbar zusammen: Scheitert der Abschluss, bleibt dein Entwurf ein Entwurf.

🔎 Suche & Formulare

  • Suche mit Komma oder Klammer funktioniert wieder. Eine Suche wie „Planung, Q3“ oder „Workshop (intern)“ führte bisher zu einem Serverfehler statt zu Treffern. Das ist behoben — Sonderzeichen im Suchbegriff sind kein Problem mehr.
  • Klare Meldung statt Serverfehler. Fehlerhafte Eingaben liefern jetzt eine verständliche „Ungültige Eingabe“-Rückmeldung statt eines generischen Serverfehlers.

✨ Oberfläche & Aktualität

  • Kein falsches „Gespeichert“ mehr. Wenn ein Speichern-Vorgang serverseitig scheitert (z. B. bei einem kurzen Verbindungsabbruch), zeigt der Hub jetzt zuverlässig einen Fehler an — vorher konnte fälschlich „gespeichert“ erscheinen, obwohl nichts gespeichert wurde.
  • Listen aktualisieren sich sofort. Nach dem Anlegen, Ändern oder Löschen eines Auftrags sind die zugehörigen Listen (z. B. die Aufträge bei einer Person, offene Abrechnungsposten, der Pauschal-Fortschritt) sofort aktuell — statt bis zu fünf Minuten veraltet zu bleiben.
  • Löschen fragt überall nach. Das Löschen eines Zeiteintrags im Wochen-Erfassungsfenster verlangt jetzt — wie überall sonst — eine kurze Bestätigung, damit ein Fehlklick keine Daten kostet.

🧪 Qualität & unter der Haube

  • Neues Test-Sicherheitsnetz. Die abrechnungs- und geldnahen Bereiche (Rechnungszyklen, Reisekosten, Zeiterfassung, Umsatz-Auswertungen, Personen/Organisationen) sind jetzt umfassend mit automatischen Tests abgedeckt. Diese laufen ab sofort bei jeder Änderung automatisch mit — dadurch fallen Fehler vor dem Rollout auf, nicht danach.
  • Sicherere Datenbank-Updates. Datenbank-Änderungen werden beim Rollout jetzt „ganz oder gar nicht“ angewendet; ein Aussetzer mittendrin hinterlässt keinen halb fertigen Zustand mehr.
🛠 Migrationen & Rollout. Vor dem Produktiv-Deploy müssen einmal mehrere Datenbankänderungen angewendet werden: Absicherung der Budget-Auswertung gegen anonymen Zugriff (20260705120000_order_budget_health_security_invoker.sql) und die atomare Versions-Sperre beim Abrechnungs-Abschluss (20260705130000/130100/130200, Drop + Neudefinition + Grant der Abschluss-Funktion). Weil dabei die alte Abschluss-Funktion abgelöst wird, sollten Migration und Deploy eng nacheinander erfolgen — am besten in einem ruhigen Moment ohne laufendes Festschreiben; die neue Funktion ist rückwärtskompatibel, ein kurzer Versatz ist unkritisch. Keine neuen Umgebungsvariablen.
Enthaltene PRs: #373 (Audit-Bericht), #374 (Integrationstests in CI), #375–#380 (Test-Sicherheitsnetz), #381 (Money-Path-Absicherung), #382 (Agent-Widerruf), #383 (Budget-View-Sicherheit), #384 (API-Fehlerpfade/Suche), #385 (Web-Korrektheit), #386 (atomare Migrationen), #387 (atomare Versions-Sperre).
Backlog-Milestone: hub-optimization (m-5).
v12

Schwerpunkt Wertvertrag & Umsatztransparenz: Für jeden Auftrag legt eine Matrix fest, wer welchen Anteil am Umsatz bekommt (Akquise, Pauschal-Positionen, Verwaltung — inklusive Vitale Arbeitskultur selbst). Abrechnungen teilen jeden Euro strikt und nachvollziehbar auf, und jede:r Komplize sieht rollengerecht den eigenen Beitrag.

💶 Wertvertrag

  • Verteilungs-Matrix je Auftrag. Im Auftrag legst du unter „Wertvertrag“ fest, wer welchen Anteil bekommt: eine Spalte für Akquise, je eine für jede Pauschal-Position und eine für Verwaltung. Zeilen sind die beteiligten Komplizen und Vitale Arbeitskultur selbst. Jede Spalte muss genau 100 % ergeben. Stunden-Positionen sind bewusst nicht Teil der Matrix — sie werden nach gebuchten Stunden verteilt.
  • Festschreiben & Versionen. Mit „Festschreiben“ wird eine Verteilung verbindlich. Änderst du sie danach, entsteht automatisch eine neue Version — die alte bleibt als Nachweis erhalten. Jede Abrechnung merkt sich, welche Version zum Zeitpunkt galt.
  • Automatischer Ausgleich bei Änderungen. Wird eine Position über mehrere Abrechnungen verteilt abgerechnet und du änderst zwischendurch die Verteilung, gleicht die nächste Abrechnung den Unterschied automatisch mit Korrekturposten aus — so entspricht die Gesamtverteilung am Ende immer dem aktuellen Stand. Das gilt für alle Spalten (Akquise, Verwaltung, Pauschal).
  • Abrechnungs-Fortschritt sichtbar. Bei jeder Pauschal-Position siehst du direkt in der Matrix, wie viel Prozent schon abgerechnet wurde und wie viel Euro noch offen ist.
  • Externe können mitlesen. Bist du extern und einem Auftrag als Team-Mitglied oder Eigner zugeordnet, kannst du dessen Wertvertrag jetzt einsehen (nur lesen) — bearbeiten bleibt den internen Komplizen vorbehalten.

🧾 Abrechnung & Umsatz

  • Jeder Euro genau einmal zugeordnet. Eine Abrechnung teilt den Betrag strikt auf: 15 % Akquise an den Auftragseigner, 5 % Verwaltung an Vitale Arbeitskultur, 80 % Wertschöpfung (Stunden nach Aufwand, Pauschalen über den Wertvertrag). Die Anteile erscheinen als übersichtliche Matrix, Korrekturposten aus Versionswechseln in einem eigenen Block darunter.
  • „Verbleibt bei Vitale Arbeitskultur“. Die Abrechnung weist eigens aus, wie viel des Betrags bei Vitale Arbeitskultur bleibt.
  • Rollengerechte Umsatz-Sicht. Unter „Umsatz“ siehst du als Externe:r deinen rechnungsrelevanten Claim und die Firmen-Marge („was wir durch dich verdient haben“). Als interne:r Komplize siehst du deinen generierten Umsatz und deinen Anteil am Gesamtumsatz des Jahres — klar als „vor Kosten und Steuern“ gekennzeichnet.
🛠 Migrationen & Rollout. Vor dem Produktiv-Deploy müssen einmal mehrere Datenbankänderungen angewendet werden (Wertvertrag-Versionen, erweiterte Abrechnungs-Anteile inkl. Vitale-Arbeitskultur-Zeile und Korrektur-Kennzeichnung sowie eine Neudefinition der Abrechnungs-Abschluss-Funktion). Weil dabei die alte Abschluss-Funktion abgelöst wird, sollten Migration und Deploy eng nacheinander erfolgen — am besten in einem ruhigen Moment ohne laufendes Abrechnung-Festschreiben. Keine neuen Umgebungsvariablen.
Enthaltene PRs: #357, #359, #361, #362, #363, #364, #366, #367.
Backlog-Milestone: v12 — Wertvertrag & Umsatztransparenz (m-4).
v11

Schwerpunkt Komfort & Übersicht: nicht-auftragsbezogene Zeit lässt sich jetzt als „interne Tätigkeit“ erfassen (Administration, Vertrieb, Weiterbildung …), Personen zeigen ihre Kontaktdaten schon beim Überfahren, die Benachrichtigungen sind aufgeräumter, und Checklisten in Aufgaben werden endlich richtig dargestellt.

🕓 Zeiterfassung

  • Interne Tätigkeiten erfassen. Zeit, die zu keinem Auftrag gehört — Administration, Vertrieb, Weiterbildung und mehr — buchst du jetzt direkt auf eine interne Tätigkeit, statt sie wegzulassen oder einem unpassenden Auftrag zuzuordnen. Im Zeiterfassungs-Fenster wählst du dafür „Intern“ statt „Auftrag“. Admins pflegen die Liste der Tätigkeiten in den Einstellungen: anlegen, umbenennen, Farbe wählen, deaktivieren.
  • Interne Zeiten sauber getrennt. Interne Tätigkeiten zählen als Arbeitszeit, fließen aber nicht in den Auftragsumsatz. Im Monatsbericht erscheinen sie in einem eigenen Abschnitt „Interne Tätigkeiten“ (Stunden, ohne Umsatz), und die Wochenstunden zeigen die Aufteilung Auftrag/Intern.

👥 Personen & Kontakte

  • Schnellvorschau für Personen. Fährst du mit der Maus über einen Personen-Namen (in Organisationen, Aufträgen, Personenliste), erscheint eine kleine Karte mit Foto, Rolle, Organisation und Kontaktdaten — ohne erst auf die Detailseite zu wechseln. Auf dem Handy öffnet sie sich per langem Tippen; ein Klick führt weiterhin zur Detailseite.
  • Aufgeräumte Kontaktlisten. In Auftrags- und Organisations-Kontakten sind die kleinen E-Mail-/Anruf-Symbole pro Zeile entfallen — diese Infos zeigt jetzt die Vorschau-Karte. Die Zeilen wirken dadurch ruhiger und übersichtlicher.

🔔 Benachrichtigungen

  • Einzeln als gelesen markieren. Du kannst eine Benachrichtigung jetzt direkt als gelesen markieren, ohne sie zu öffnen und wegzunavigieren — über ein kleines Häkchen pro Eintrag.
  • Aufgeräumtere Darstellung. Lange Nachrichten werden auf zwei Zeilen gekürzt (den vollen Text siehst du, wenn du mit der Maus darüber gehst), und die Zeitangaben sind einheitlich ausgeschrieben („vor 2 Stunden“, „vor 3 Tagen“) statt gemischter Abkürzungen.

✅ Aufgaben

  • Checklisten werden richtig dargestellt. Abgehakte Punkte in einer Aufgaben-Beschreibung sehen jetzt klar anders aus als offene — mit Häkchen und durchgestrichenem Text. Vorher sahen beide gleich aus, was Checklisten praktisch unbrauchbar machte.
🛠 Migrationen & Rollout. Vor dem Produktiv-Deploy muss einmal eine Datenbankänderung angewendet werden: eine neue Tabelle für die internen Tätigkeiten (20260604100000_internal_activities.sql) und eine Verknüpfung der Zeiteinträge darauf (20260604100100_time_entries_internal_activity_id.sql). Bestehende interne Zeiten werden dabei automatisch übernommen — kein Datenverlust. Keine neuen Umgebungsvariablen; danach kann der Hub einfach neu bereitgestellt werden.
Enthaltene PRs: #336, #337, #338, #339, #341, #344, #346, #347.
Backlog-Milestone: v11 — User Polish & Feedback (m-3).
v10

Schwerpunkt Abrechnung: abgerechnete Zeiten lassen sich jetzt aufrunden (global oder pro Auftrag), offene Abrechnungsposten sind für Admins gesammelt sichtbar, der Abrechnungs-Export ist als Nachweis lesbar, und eine neue Abrechnung startet direkt im Vormonat. Dazu mehr Komfort in der Zeiterfassung — Filter merken sich, und Einträge lassen sich mit einem Klick direkt in der Tabelle bearbeiten.

🧾 Abrechnung

  • Zeiten werden aufgerundet. Abgerechnete Zeiten kannst du jetzt auf die Viertelstunde oder die ganze Stunde aufrunden lassen. Den Standard stellst du einmal in den Einstellungen ein (Voreinstellung: Viertelstunde); einzelne Aufträge dürfen davon abweichen. Aufgerundet wird je Komplize, Position und Tag — die erfassten Originalzeiten bleiben unangetastet, nur der abgerechnete Wert ist gerundet. Bereits abgeschlossene Abrechnungen ändern sich dadurch nicht.
  • Übersichtlicherer Abrechnungs-Export. Der Export einer Abrechnung zeigt jetzt bei jeder Position die abgerechneten Stunden (nur bei Zeit-&-Material, bei Pauschalen bleibt die Spalte leer) und unter den Zeiteinträgen eine Gesamt-Summe über Dauer und Betrag. Die Einträge sind nach Datum sortiert — als Nachweis ohne Nacharbeit lesbar.
  • Neue Abrechnung startet im Vormonat. Beim Anlegen einer neuen Abrechnung ist der Zeitraum direkt auf den ersten bis letzten Tag des Vormonats vorbelegt. Du kannst ihn weiterhin frei ändern, musst die Daten aber nicht mehr jedes Mal von Hand eintippen.
  • Offene Abrechnung im Blick. Admins sehen jetzt unter „Offene Abrechnung“ alle abrechenbaren Zeiten und Pauschalpositionen, die noch nicht abgerechnet sind — übersichtlich nach Auftrag gruppiert. Abgebrochene Aufträge bleiben außen vor; die angezeigten Werte spiegeln die jeweils gültige Aufrundung wider.

🕓 Zeiterfassung

  • Filter und Ansicht merken sich. Die Zeiterfassung merkt sich jetzt — wie Aufträge und Aufgaben — deine Filter, den aktiven Tab (Liste/Woche) und den gewählten Zeitraum. Beim nächsten Öffnen ist alles wie zuvor, statt zurückgesetzt.
  • Direkt in der Tabelle bearbeiten. Kleine Korrekturen brauchen kein Bearbeiten-Fenster mehr: In der Liste klickst du Beschreibung, Dauer oder Start-/Endzeit direkt an und änderst sie inline (Enter speichert, Escape bricht ab). In der Wochenansicht gilt das für Dauer und Beschreibung. Änderst du die Dauer, zieht die Endzeit nach; änderst du eine Zeit, rechnet sich die Dauer neu. Laufende Timer bleiben wie bisher geschützt.

🧪 Qualität

  • Automatische Tests für die Hub-Oberfläche. Der Hub hat ein Test-Gerüst für die Web-Oberfläche bekommen. Für dich unsichtbar, aber jede der obigen Funktionen ist durch automatische Tests abgesichert — weniger Risiko, dass eine spätere Änderung etwas wieder kaputt macht.
🛠 Rollout-Hinweis. Vor dem Produktiv-Deploy muss einmal eine Datenbankänderung angewendet werden. Sie ergänzt eine neue Grundeinstellung für die Aufrundung von Zeiten und zusätzliche Angaben für Abrechnungen und Aufträge.
Es gibt keine neuen Umgebungsvariablen. Danach kann der Hub einfach neu bereitgestellt werden.
Enthaltene PRs: #321, #322, #323, #324, #325, #326, #327, #328, #329, #330, #331, #332, #333.
Backlog-Milestone: v10 — Abrechnung (m-2).
v9

Auftrags-Duplikate sind jetzt entweder ganz fertig oder gar nicht (kein halber Auftrag mehr beim Fehler in der Mitte), neue Aufträge gehören automatisch dir, externe Termine bekommen ein Land, und in der Wochenansicht löscht „alles auf 0“ die Einträge nach Rückfrage. Parallel haben wir den Hub innen aufgeräumt — Milestone „Hub Refactor“ ist durch.

📋 Aufträge

  • Duplikate sind jetzt atomar. Wenn du einen Auftrag duplizierst, entsteht entweder die komplette Kopie (Positionen, Team, Kontakte, Umsatzverteilung) oder gar nichts. Bisher konnten bei einem Fehler in der Mitte halbe Aufträge stehen bleiben — ein neuer Auftrag mit Positionen, aber ohne Umsatzverteilung. Die Kopier-Logik läuft jetzt als eine einzige Datenbank-Transaktion; ein Problem an irgendeiner Stelle räumt alles Vorherige wieder weg.
  • Neue Aufträge gehören automatisch dem Ersteller. Beim Anlegen eines Auftrags wird das Feld „Eigner“ jetzt auf dich vorbelegt. Du kannst es weiterhin manuell ändern, musst aber nicht mehr daran denken, dass du sonst direkt nach dem Anlegen keinen Zugriff auf den eigenen Auftrag hast.
  • Externe Komplizen dürfen wieder Team-Mitglieder zuweisen. Wenn du als externer Komplize Zugriff auf einen Auftrag hast (über Mitgliedschaft, Eignerschaft oder Org-Kaskade), kannst du dort jetzt auch andere Komplizen ergänzen oder entfernen — bisher waren die Schreibrechte zu eng und nur Interne kamen durch.

📍 Termine

  • Externe Termine bekommen ein Land. Beim Anlegen oder Bearbeiten eines externen Termins am Auftrag lässt sich jetzt das Land auswählen — Voraussetzung dafür, dass wir auch Auslands-Termine sauber führen und später korrekt abrechnen können. Ohne Auswahl bleibt das Feld leer (kein Zwang für deutsche Termine).

🕓 Zeiterfassung

  • Wochenansicht: „alles auf 0“ löscht den Tag. Wenn du in der Wochenansicht alle Stunden eines bestehenden Eintrags auf 0 setzt, fragt der Hub einmal nach und entfernt dann die Einträge — vorher blieb eine Null-Stunde-Zeile stehen, die in der Auswertung schlecht zu lesen war.

🧪 Hub-Innenleben (Refactor)

Größere Aufräum-Phase, die nach außen kaum sichtbar ist, aber den Boden für die nächsten Features ebnet. Milestone „Hub Refactor“ (m-1) abgeschlossen.

  • Auftrags-Logik in Services zerlegt. Die größten Hub-Handler (Aufträge, Abrechnungszyklen, Reisekosten, Statistiken) sind in dünne Routing-Schicht + reine Service-Funktionen aufgeteilt. Jeder Service ist isoliert testbar und der Code-Review-Aufwand bei Änderungen sinkt erheblich.
  • Autorisierung an einer einzigen Stelle. Wer was sehen und ändern darf, lebt jetzt in einem einzigen Policy-Modul, das gegen die Datenbank-Regeln (RLS) abgeglichen wird. Vorher waren die Regeln über mehrere Handler dupliziert und konnten auseinanderdriften.
  • Validation-Schemata getrennt. Die monolithische Validation-Datei (~1000 Zeilen) ist in feature-orientierte Module zerlegt — Entwickler finden die für ihr Feature relevanten Regeln, statt sich durch alles zu scrollen.
  • Typen-Quelle einer Wahrheit. Die Web-Typen für Aufträge werden jetzt direkt aus den Datenbank-Typen abgeleitet, statt parallel von Hand gepflegt. Eine neue Spalte heißt: Migration anlegen + Generator laufen lassen, nicht mehr drei Stellen synchronisieren.
  • Deprecated-Endpoints markieren sich selbst. Die alten deutschen API-Pfade (z. B. /komplizen, /interaktionen) liefern jetzt einen Deprecation-Header in der Antwort und verweisen auf die kanonische englische Variante — externe Integrationen können selbst erkennen, dass sie umziehen müssen.
  • Branded IDs an der Sicherheits-Grenze. Die Compile-Time-Typen für Auftrag-/Aufgabe-/Personen-IDs werden jetzt strikt am Eingang des Policy-Moduls erzwungen — ein versehentliches Order-ID an Task-Access-Check ist ab sofort schon vor dem Build ein Fehler statt eines Laufzeit-Mysteriums.
  • Frontend-Hooks sauberer typisiert. ~37 unsichere Type-Behauptungen (id!) in den React-Query-Hooks entfernt — die richtige Behandlung „ID gerade noch nicht da“ passiert jetzt im Typ, nicht im Vertrauen.

🚦 Stabilität im Hintergrund

  • Staging-Web-Deploy entstör­t. Der Web-Container-Build auf staging war seit dem Type-SoT-Pilot gebrochen — eine projekt-übergreifende Import-Beziehung war im Container nicht erreichbar. Der Build-Kontext wurde so umgestellt, dass die Type-Datei mitkopiert wird; der Web-Stack auf staging aktualisiert sich jetzt wieder bei jedem Merge.
  • E2E-Tests robuster. Mehrere kleine Stolpersteine in der Playwright-Suite behoben (OTP-Klick, Auftrag-Kundennummer-Reset) — die Suite läuft wieder verlässlich und kann ihren Job als Regression-Bremse machen.
🛠 Migrationen & Rollout. Drei DB-Migrationen müssen vor dem Prod-Hub-Redeploy angewendet werden — make db-apply-pending ENV=prod: 20260527162348_order_members_external_write.sql (RLS-Policies für externe Team-Mitglieder-Verwaltung), 20260528135404_external_appointments_country_id.sql (Spalte country_id auf externen Terminen + Index), 20260528193000_duplicate_order_function.sql (neue PL/pgSQL-Funktion duplicate_order für die atomare Auftrags-Duplikation).
Keine neuen Umgebungsvariablen. Nach den Migrationen einfach Hub-Service redeployen.
Enthaltene PRs: #301, #302, #303, #304, #305, #306, #307, #308, #309, #310, #311, #312, #313, #314, #315, #316, #317, #318.
v8

Stunden-Positionen dürfen offen bleiben („unbegrenztes Kontingent“), die Zeiterfassung zeigt deine eigene Position-Bezeichnung, und neu angelegte Kunden landen in SevDesk wieder als Rechnungsanschrift — Rechnungen lassen sich wieder schreiben.

📋 Aufträge & Budget

  • Stunden-Positionen mit offenem Kontingent. Eine Stunden-Position darf jetzt amount = 0 haben — das bedeutet „keine harte Obergrenze“. Sobald ein Auftrag mindestens eine solche Position hat, fallen Budget-Status und „X % verbraucht“ für den ganzen Auftrag bewusst auf „—“ zurück: keine schiefen Über-Budget-Warnungen mehr für Aufträge, die so nicht funktionieren. Gilt nur für Stunde — Pauschal-Positionen brauchen weiterhin einen festen Betrag.
  • Budget-Anzeige rechnet wieder korrekt. Nebenher gefangen: die Budget-Health-Sicht hat das Auftragsvolumen für jede gebuchte Stunde nochmal aufaddiert — Aufträge mit vielen Zeiteinträgen sahen entsprechend „zu groß“ aus. Behoben.

🕓 Zeiterfassung

  • Deine eigene Position-Bezeichnung ist sichtbar. Wenn du einer Auftragsposition eine eigene Bezeichnung gegeben hast (Feld label), zeigt die Zeiterfassung jetzt diese statt nur des generischen Produktnamens — in der Stoppuhr, der Schnellerfassung, der manuellen Erfassung, dem Wochen-Stundenzettel, der Zeitliste und den „Zuletzt erfasst“-Kacheln. Wenn du keine Bezeichnung gesetzt hast, bleibt der Produktname als Fallback.

🧾 Rechnungen (SevDesk)

  • Neue Kunden landen wieder als „Rechnungsanschrift“. Wenn der Hub einen Kunden in SevDesk anlegt, ist die Adresse jetzt korrekt als Rechnungsanschrift markiert — vorher kam sie als Arbeitsadresse rein, und SevDesk ließ dich darauf keine Rechnung schreiben. Bestehende falsche Adressen wurden bereits per Backfill korrigiert; ab jetzt entsteht das Problem nicht mehr.

🧪 Qualität im Hintergrund

  • Reset-Skript wieder auf der Höhe des Schemas. Das interne reset.ts (für lokale Dev-Resets) kannte die neueren Tabellen rund um Interaktionen / Interaktionszyklen / Aufgaben / Invoice-Cycle noch nicht und ist auf Staging mit Fremdschlüssel-Fehlern stehengeblieben. Reihenfolge entlang der echten Abhängigkeiten korrigiert; Postgres-Fehlercode 42P01 statt Text-Match für „Tabelle existiert nicht“.
  • Strengerer DB-Check für Positionen. Der Constraint für order_products.amount erlaubt 0 jetzt explizit nur für Stunde — Pauschal-Positionen mit Betrag 0 wären betriebswirtschaftlich Unsinn und werden auf DB-Ebene abgewiesen.
  • Temporal-Worker startet jetzt laut. Wenn die SevDesk-Adresskategorie nicht konfiguriert ist, fährt der Worker beim Start nicht mehr stillschweigend hoch — er bleibt mit einer klaren Konfig-Fehlermeldung stehen. Reduziert die Chance, dass derselbe Bug zweimal passiert.
🛠 Migrationen & Rollout. Zwei DB-Migrationen: 20260521144631_order_products_unlimited_amount.sql (lockert den amount-Check und ersetzt die Budget-Health-Sicht) und 20260522090000_tighten_order_products_amount_check.sql (verschärft den Check direkt danach so, dass amount = 0 nur für Stunde erlaubt ist). Nach dem Deploy einmal make db-apply-pending ENV=prod. Außerdem in Coolify (prod, Temporal-Worker) die Umgebungsvariable SEVDESK_INVOICE_ADDRESS_CATEGORY_ID=47 setzen — sonst startet der Worker nach diesem Release nicht.
Enthaltene PRs: #292, #293, #294, #295, #296.
v7

Das Dashboard wird zu deinem Sprungbrett in den Tag: oben deine eigenen offenen Aufträge und Interaktionszyklen, frische Tastenkürzel beschleunigen die Wege, und die Zeiterfassung setzt den Timer mit einem Klick dort fort, wo du aufgehört hast.

🎯 Dashboard

  • Oben steht jetzt, was du auf dem Tisch hast. Direkt unter den überfälligen Aufgaben siehst du zwei Karten mit deinen aktiven Aufträgen und deinen aktiven Interaktionszyklen — gefiltert auf alles, wo du Inhaberin oder Mitglied bist, sortiert nach jüngster Aktivität, mit „Alle anzeigen“ zur vollen Liste. Die alte Zeile mit Organisationen-/Personen-/Kontakte-Zählern ist raus; die findest du weiterhin in der Sidebar.
  • Umsatz-Karte mit integrierter Monatsvorschau. Die separate „6-Monats-Vorschau“-Karte ist in die Umsatzpipeline reingewachsen — eine Karte, ein Blick, weniger Scrollen.
  • „Schnelle Aufgabe“ weist gleich zu. Beim Anlegen kannst du direkt einen oder mehrere Komplizen auswählen — Default ist dein eigener Account, weitere lassen sich als Chips ergänzen oder entfernen.
  • Überfällige Aufgaben kompakter. Die Karte zeigt vier Aufgaben auf einen Blick, der Rest ist scrollbar. Mehr Platz fürs Wichtige.

🕓 Zeiterfassung

  • Timer per Klick fortsetzen (wie bei Clockify). Im Uhren-Symbol oben in der Leiste ist jetzt der Tab „Zuletzt“ der erste Anlaufpunkt: bis zu sechs Karten mit deinen letzten Aufträgen und internen Kategorien, je ein Klick startet einen frischen Timer mit demselben Kontext. Spart pro Eintrag den Auswahl-Dreischritt aus Auftrag → Position → Beschreibung.

⌨️ Tastenkürzel

  • Erste Tastenkürzel-Welle. ⌘K springt in die globale Suche, ? öffnet eine Übersicht aller Shortcuts. Mit g gefolgt von einem Buchstaben springst du in die Bereiche (g d Dashboard, g a Aufträge, g o Organisationen, g p Personen, g t Aufgaben, g k Komplizen, g z Zeiterfassung). Auf Listen-Seiten öffnet n das „Neu …“-Formular.

🔍 Klarheit bei Fehlern und Zuständen

  • Verständliche Fehlermeldungen beim Löschen. Statt „Fehler beim Löschen“ siehst du jetzt den konkreten Grund (z. B. „Es gibt noch aktive Kontakte“), damit du sofort weißt, was zu tun ist.
  • Komplizen-Liste bricht nicht mehr still ab. Wenn der Server unter Last ist oder ein Filter nichts ergibt, siehst du das jetzt explizit — vorher konnte die Liste leer wirken, obwohl im Hintergrund noch geladen wurde.
  • Sauberer 404 auf Org-Detail. Wer auf einen nicht mehr existierenden Org-Link klickt, sieht eine ordentliche „Nicht gefunden“-Seite statt einer halb gerenderten Detail-Ansicht.
  • Kontaktrolle-Auswahl wartet zuverlässig. Die Auswahl der Rolle blockt jetzt sauber, solange der Server lädt — und der Timeout ist großzügiger, damit kein Speichern stillschweigend ins Leere läuft.

📱 Mobil

  • Organisations-Detail aufgeräumt für schmale Bildschirme. Karten und Tabs nutzen die Breite besser, weniger horizontales Scrollen.
  • Auftrags-Detail: Buttons werden mobil zu Icons. Die Header-Buttons (Bearbeiten, Archivieren, …) kollabieren auf kleinen Bildschirmen zu Icon-Buttons — mehr Platz für den Titel, gleicher Funktionsumfang.

🌀 Visuelles

  • Lade-Spinner mit Vitale-Handschrift. Der Page-Loader dreht sich jetzt wieder sichtbar und nutzt einen Ensō-Pinselstrich — kurzer ruhiger Moment, der zum Brand passt, statt eines neutralen Standard-Spinners.

🤖 Via

  • Spaltenfilter auch auf verknüpften Aufgaben-Routen. Wenn Via Aufgaben mit ihren Aufträgen oder Komplizen abfragt, sieht sie nur noch die wirklich benötigten Felder — gleiche Strenge wie bei den direkt abgefragten Auftrags-/Komplizen-Listen. Wichtig für DSGVO-Datensparsamkeit.

🧪 Qualität im Hintergrund

  • End-to-End-Tests melden sich jetzt wie echte Komplizen an. Statt einer Test-Abkürzung läuft die Anmeldung im automatisierten Test über denselben OTP-/E-Mail-Pfad wie für dich — wir testen also wirklich das, was du benutzt.
🛠 Migrationen & Rollout. Eine DB-Migration: 20260405000000_agent_role.sql (sortiert die Agent-Rolle nach dem Baseline und ist idempotent — sichere Wiederholung erlaubt). Nach dem Deploy einmal make db-apply-pending ENV=prod.
Enthaltene PRs: #272, #273, #274, #275, #276, #277, #278, #279, #280, #281, #282, #283, #284, #285, #286, #287.
v6

Via wird im Hub einsatzfähig: sie sieht, was du siehst, kann Aufgaben und Aufträge im Hub anlegen und verknüpfen — und jede Schreib-Aktion landet sauber attribuiert im Audit-Log.

🤖 Via im Hub

  • Via handelt jetzt in deinem Namen. Wenn du Via etwas im Hub fragst („zeig mir meine offenen Aufträge“, „häng die Aufgabe an den Auftrag X“), läuft die Anfrage unter deiner Identität — Via sieht damit genau das, was du selbst auch sehen würdest, und nicht mehr (und nicht weniger). Keine Treffer aus fremden Projekten, keine Lücken bei eigenen.
  • Via kann Aufträge finden und Aufgaben dranhängen. Frei-Text-Suche über Aufträge mit den wichtigsten Eckdaten (Name, Status, Organisation, beteiligte Komplizen). Mehrwortige Suchen (z. B. „kultur diagnose“) werden intelligent zerlegt, damit Bindestrich-Schreibweisen wie „Kultur-Diagnose 2026 …“ trotzdem gefunden werden.
  • Via kann Aufgaben anlegen und Komplizen zuweisen. Beim Anlegen kann Via direkt mit E-Mail-Adressen zuweisen — fehlerhafte Adressen blockieren nichts, sie werden in der Antwort aufgelistet, der Rest läuft. Bestehende Aufgaben lassen sich nachträglich an einen Auftrag knüpfen.
  • Lese-Zugriff auf Organisationen. Via kann Organisationen suchen und die wichtigsten Stammdaten (Name, Adresse, Website) abrufen — z. B. um Reisen zu planen oder bei der Vorbereitung eines Termins schnell den Kontext zu liefern.

🛡 Nachvollziehbarkeit

  • Audit-Log markiert agentengetriebene Schreib-Aktionen. Jeder Eintrag im Hub-Aktivitäts-Log, der über Via entstand, trägt jetzt zwei Marker: wer (welcher Komplize hat es ausgelöst) und worüber (welcher Agent-Schlüssel war der Kanal). Damit lässt sich später jederzeit nachvollziehen, dass z. B. „Via für Sven“ eine Aufgabe an einen Komplizen verknüpft hat — wichtig für DSGVO/AI-Act-Audits.
  • Sicherheitsschicht für agenten-ausgestellte Tokens. Wenn ein Agent-Schlüssel widerrufen wird oder das hinterlegte Agent-Mitglied deaktiviert wird, werden auch bereits ausgestellte Impersonations-Tokens innerhalb weniger Sekunden ungültig — nicht erst nach 1 Stunde wie zuvor.
🛠 Migrationen & Rollout. Keine DB-Migrationen in diesem Release. Hub-Service einfach redeployen. Enthaltene PRs: #265, #266, #267, #268.
Va-Agent-Gegenstück: va-agent#31 (Mac-Mini-Deploy parallel).
v5

Aufräum-Release: keine neuen Funktionen, aber die Anmeldung läuft sauber auf OTP, und das Hub-Team kann ab jetzt mit viel mehr Vertrauen Änderungen schicken — automatisierte Qualitätsprüfungen fangen ganze Klassen von Fehlern vor dem Merge ab.

🔐 Anmeldung

  • Anmeldung ist jetzt komplett OTP-only. Im Code steckten noch Reste vom alten Passwort-Flow (zum Testen). Die sind raus — sowohl die hinterlegten Test-Passwörter als auch der Pfad, der sie genutzt hat. Für dich ändert sich nichts: weiter Magic-Link / 6-stelliger Code aus der E-Mail.

🧪 Im Hintergrund: Qualität & Stabilität

  • Jede Code-Änderung läuft jetzt durch 5 Prüfungen vor dem Merge: Geheimnis-Scan (verhindert versehentlich eingecheckte Passwörter), API-Typ-Check, API-Unit-Tests, Web-Typ-Check und Web-Lint. Bisher war ein Teil davon nur „nett gemeint“ und nicht zwingend; jetzt ist alles harter Pflichtbestandteil.
  • API-Tests sind jetzt offline-fähig. Bisher mussten unsere Backend-Tests gegen das Staging-System reden, was sie unzuverlässig machte. Jetzt laufen die wichtigen Tests komplett im Container und sind in Sekunden grün/rot — was Refactorings deutlich sicherer macht.
  • Frontend-Lint-Lücke geschlossen. Im Web-Code waren 18 Regelverstöße aufgelaufen (kein User-Effekt, aber Stolperfallen für Komplizen, die am Hub mitentwickeln). Alle behoben, und ab jetzt blockt CI neue Regressionen automatisch.

🛠 Aufräumen unter der Haube

  • Erstes Service-Pattern etabliert. Die Settings-Logik (Admin-Einstellungen ändern) ist als Beispiel aus dem dicken Request-Handler herausgezogen und sauber separat getestet. Macht den Code wartbarer und ist die Vorlage für ähnliche Aufräumarbeiten an größeren Bereichen (Aufträge, Abrechnungszyklen, Reisekosten) in den nächsten Releases.
🛠 Migrationen & Rollout. Keine DB-Migrationen in diesem Release. Hub-Service einfach redeployen. Enthaltene PRs: #258, #259, #260, #261.
Backlog-Milestone: Hub Foundation (m-0). Hintergrund: KI-Code-Review-Bericht vom 2026-05-10 (P0/P1-Items).
v4

Schwerpunkt: Bezeichnungen und Rollen rund um Aufträge werden flexibler, das Dashboard wird ein Sprungbrett in die Listen, und die Wochen-Zeiterfassung zeigt wieder die richtigen Tage.

📋 Aufträge

  • Optionale Bezeichnung pro Position. Jede Auftragsposition hat jetzt ein Freitextfeld „Bezeichnung (optional)“. Bleibt es leer, wird wie bisher der Produktname verwendet. So lässt sich am Angebot/Rechnung ein kundenfreundlicher Text einstellen, ohne ein neues Produkt anlegen zu müssen. Sichtbar in Positions-Liste, Abrechnungszyklus, Zeiterfassung, Umsatzverteilung und Kanban-Karten.
  • Rollen-Verwaltung in den Einstellungen. Admins können Komplizen- und Personen-Rollen an Aufträgen (z. B. „Auftragseigner“, „Begleiter“) jetzt direkt unter Einstellungen → Auftrags-Rollen anlegen, umbenennen und löschen — bisher ging das nur über Datenbank-Migrationen. Rollen, die noch in Aufträgen verwendet werden, sind gegen Löschen geschützt.

🕓 Zeiterfassung

  • Aufträge gruppiert nach Kunde im Dropdown. Die Auftrags-Auswahl in der Zeiterfassung (FilterBar und Auftrags-Picker) zeigt Aufträge gebündelt unter ihrem Kunden — gesucht wird wie gewohnt, aber die Liste ist deutlich schneller zu überblicken. Aufträge ohne Kunden landen am Ende unter „Ohne Kunde“.
  • Wochenheader zeigt wieder die richtigen Tage. Bei der Wochen-Ansicht stand seit dem letzten Release in unserer Zeitzone (CEST) der falsche Tag im Header — z. B. wurde Sonntag als „Mo“ angezeigt, alle Spalten um einen Tag versetzt. Behoben; auch der „Heute“-Marker landet wieder in der richtigen Spalte.

💬 Interaktionen

  • Draft-Autosave. Lange Interaktions-Texte gehen nicht mehr verloren, wenn man das Formular versehentlich schließt oder die Seite verlässt. Der Entwurf wird im Browser zwischengespeichert (inkl. ausgewählter Komplizen und Verknüpfungen) und beim erneuten Öffnen vorgeschlagen. Speichern oder explizites Verwerfen räumt den Entwurf weg.

📊 Dashboard

  • Stat-Karten sind anklickbar. Die Zahlen auf dem internen Dashboard (Organisationen, Personen, Aktive Kontakte) verlinken jetzt direkt in die jeweilige Liste — bei Bedarf vorgefiltert (z. B. Aktive Kontakte/persons?status=Aktiv). Springt von einer Zahl direkt zu den Datensätzen dahinter.
🛠 Migrationen & Rollout. Zwei neue DB-Migrationen müssen vor dem Prod-Hub-Redeploy angewendet werden — make db-apply-pending ENV=prod:
  • 20260509120200_order_role_admin_crud.sql — UPDATE/DELETE-RLS-Policies auf order_member_roles und order_person_roles, damit die neue Rollen-Verwaltung in den Einstellungen serverseitig erlaubt ist
  • 20260509200000_order_products_label.sql — Neue nullable Spalte label auf order_products für die optionale Positions-Bezeichnung
Enthaltene PRs: #244, #245, #246, #247, #248, #249, #253.
v3

Schwerpunkt: Kommentare sind auf einen Blick sichtbar (Chips), Aufgaben können wie Interaktionen verknüpft werden, Aufträge lassen sich duplizieren, Listen merken sich ihre Filter.

💬 Kommentare & Erwähnungen

  • Ungelesen-Chips überall. Wenn jemand dich erwähnt (oder du „Alle Kommentare“ eingeschaltet hast), siehst du das nicht mehr nur in der Glocke oben, sondern direkt am Eintrag — in Listen, Boards und Detailseiten. Funktioniert für Aufträge, Aufgaben, Organisationen, Interaktionszyklen und Interaktionen.
  • Persönliche Benachrichtigungseinstellung. Unter Einstellungen → Benachrichtigungen kannst du wählen zwischen „Nur Erwähnungen“ (Standard, wie bisher) und „Alle Kommentare“. Bei „Alle Kommentare“ bekommst du Bell + Chip für jeden Kommentar an Entitäten, in denen du beteiligt bist (Ersteller, zugewiesen, vorheriger Kommentator).
  • Bell + Chip räumen gemeinsam auf. Wenn du die Kommentare einer Entität öffnest, verschwindet sowohl der Chip als auch die zugehörige Glocken-Benachrichtigung — kein doppeltes Wegklicken mehr.
  • Schöne @-Erwähnungen beim Tippen und Bearbeiten. Im Kommentar-Editor erscheinen Erwähnungen jetzt als Chip (@Anna Berater) statt als kryptisches @[Anna Berater](kmp_…). Backspace löscht den Chip als Ganzes.

✅ Aufgaben

  • Verknüpfungen für Aufgaben. Aufgaben unterstützen jetzt die gleichen vier Verknüpfungstypen wie Interaktionen: Personen, Organisationen, Aufträge und Interaktionszyklen — alles über einen kombinierten Picker im Aufgaben-Formular und in der Detailansicht.
  • Checklisten im Notizen-Editor. Neuer „Checkliste“-Eintrag im Slash-Menü und im Floating-Toolbar (Bullet-, Ordered-, Checklist-Buttons). [ ] am Zeilenanfang erzeugt automatisch eine Checkbox.
  • „Neu“-Formulare reset. Das „+“-Sheet für neue Aufgaben und Interaktionen zeigte nach dem Speichern noch die alten Werte. Wird jetzt sauber zurückgesetzt — beim Öffnen und nach dem Speichern.

📋 Aufträge

  • Auftrag duplizieren. Neuer „Duplizieren“-Button in der Auftragsdetailansicht. Kopiert die strukturellen Felder (Kunde, Owner, Abrechnungsart), Team, Kontakte, Positionen und Umsatzverteilung. Status wird auf Ungeklärt zurückgesetzt, der Name bekommt „ (Kopie)“ angehängt. Notizen, Belege, Termine, Kommentare, Abrechnungsdaten und Zeiteinträge werden bewusst nicht mitkopiert (du wirst vor der Bestätigung darauf hingewiesen).
  • Detailseiten-Layout aufgeräumt. Mehrere Layout-Probleme bei mittleren Bildschirmbreiten (KD-Nummer brach auf drei Zeilen, Buttons kollidierten mit Überschriften, „Gespeichert ✓“ überlappte Section-Headings). Außerdem sind Positionen und Interaktionen jetzt eigene Cards direkt unter Kontakte/Team — statt in den Tabs versteckt. Die Tab-Leiste schrumpft dadurch auf Zeiten/Reisekosten (+ Umsatzverteilung/Abrechnung für Admins) — übersichtlicher, vor allem mobil.

🔍 Listen & Filter

  • Filter, Sortierung, Suche und Board/Tabellen-Wahl bleiben gemerkt. Auf allen Hub-Listen (Aufträge, Aufgaben, Personen, Organisationen, Interaktionen, Zyklen, Komplizen, Produkte, Reisekosten). URL-Parameter haben weiterhin Vorrang — Deep-Links funktionieren wie gewohnt.
  • „Meine Aufträge / Aufgaben“-Toggle entkoppelt vom expliziten Komplizen-Filter. Die beiden können sich nicht mehr gegenseitig in die Quere kommen. „Mine“ zählt jetzt im Filter-Badge mit.

🔧 Sonstige Fixes

  • Aufgaben mit Status „Zu löschen“ tauchen nicht mehr im Suchpicker auf (gleiches Verhalten wie bei Organisationen / Personen / Aufträgen).
  • UI-Feinschliff an Hintergrund + Schriftgröße in einigen Bereichen.
🛠 Migrationen & Rollout. Drei neue DB-Migrationen müssen vor dem Prod-Hub-Redeploy angewendet werden — make db-apply-pending ENV=prod:
  • 20260501100000_task_links_persons_orgs_zyklen.sql — Junction-Tabellen für Aufgaben-Verknüpfungen
  • 20260501110000_comment_reads_and_prefs.sqlcomment_reads, neue Notification-Mode-Spalte, unread_comment_counts RPC
  • 20260502120000_comment_mentions_rls_and_backfill.sql — fehlende RLS-Policies auf comment_mentions + Backfill bestehender @-Erwähnungen, damit Chips für Altdaten ohne erneutes Speichern aufleuchten
Enthaltene PRs: #227, #228, #229, #230, #231, #232, #233, #234, #235.
v2

Schwerpunkt: Eine echte universelle Suche und ein Fix, der das Anlegen neuer Aufträge gegen frische Kunden wieder freigibt.

🔍 Universelle Suche

  • Eine Suche für alle Entitäten. Suche deckt jetzt Organisationen, Personen, Aufträge, Aufgaben, Interaktionszyklen und Komplizen in einer Eingabe ab.
  • Geteilter Search-Picker in Formularen (Verknüpfungen, Auswahl, etc.) — überall die gleiche dynamische Vorschlagsliste mit Tastaturnavigation, statt langer vorgeladener Listen. Macht das Verknüpfen merklich schneller.

📋 Aufträge

  • Anlegen gegen frische Kunden funktioniert wieder. Wenn eine Person oder Organisation gerade erst zum Kunden gemacht wurde, blieb die Kundennummer leer und das Anlegen eines Auftrags wurde blockiert („Person hat keine Kundennummer“). Der Customer-Sync läuft jetzt im richtigen Modus — beim Übergang in Kunde wird der SevDesk-Kontakt angelegt und die Kundennummer zurückgeschrieben.
  • Die Fehlermeldung „Person hat keine Kundennummer“ wird im Auftragsformular jetzt korrekt am Personen-Feld angezeigt (vorher unsichtbar).

🧹 Aufräumen

  • Domain hub.vitale-arbeitskultur.de ist abgeschaltet — der Hub ist nur noch unter hub.va-os.io erreichbar (DNS, Docs, CORS bereinigt).
  • Backlog-Hygiene: Task-70 abgeschlossen, leere Konfigurationsfelder entfernt.
🛠 Rollout. Reiner Code-Release, keine Migrationen. Enthaltene PRs: #219, #220, #222, #223, #224.

v1 (2026-04-27) und davor: ohne Release Notes — diese Konvention startet hier.

Dashboard

Das Dashboard zeigt dir die wichtigsten Kennzahlen und Aktivitäten auf einen Blick. Du siehst aktuelle Statistiken, kannst schnell Aufgaben erstellen und die letzten Änderungen im System verfolgen.

Was kannst du hier tun?

  • Schnelle Aufgabe erstellen — direkt mit Priorität und Fälligkeitsdatum
  • Schnellzugriff nutzen — springe direkt zu Aufträgen, Organisationen oder Einstellungen
  • Aktivitäten verfolgen — sieh die letzten Änderungen im System
  • Top-Kunden einsehen — Überblick über die umsatzstärksten Kunden (nur intern)
Die Aktivitäten aktualisieren sich automatisch, wenn du die Seite im Fokus hast.

Organisationen

Hier verwaltest du alle Organisationen — Kunden, Interessenten, Partner und Lieferanten.

Was kannst du hier tun?

  • Neue Organisation anlegen — über den Button oben rechts
  • Suchen und filtern — nach Name, Status oder Beziehungspflege
  • Details öffnen — Kontakte, Aufträge, Kommentare und Notizen einsehen
  • Komplizen zuweisen — im Detail einer Organisation Komplizen als Betreuer zuweisen (nur intern)
Kundennummer und Rechnungs-E-Mail werden erst sichtbar, wenn der Status-Grund "Kunde" gewählt ist. Löschen setzt den Status auf "Zu löschen" — die Organisation wird nicht sofort entfernt.

Siehe auch: Personen, Aufträge, Interaktionen

Personen

Alle Kontaktpersonen an einem Ort. Personen werden über Kontaktrollen mit Organisationen verknüpft.

Was kannst du hier tun?

  • Neue Person anlegen — über den Button oben rechts
  • Suchen — nach Name oder E-Mail
  • Organisationen einsehen — im Detail einer Person alle verknüpften Organisationen sehen
Eine Person kann mit mehreren Organisationen verknüpft sein — jeweils mit einer eigenen Kontaktrolle. Personen mit aktiven Kontaktverknüpfungen können nicht gelöscht werden.

Siehe auch: Organisationen, Komplizen

Aufträge

Aufträge bilden den Kern eurer Projektarbeit. Hier verwaltest du den gesamten Lebenszyklus — von der Anfrage bis zur Abrechnung.

Was kannst du hier tun?

  • Neuen Auftrag anlegen — über den Button oben rechts
  • Board- oder Tabellenansicht — wechsle zwischen Kanban-Board und Tabelle
  • Auftrag öffnen — Details, Positionen, Teammitglieder, Zeiten und Abrechnung einsehen
  • Positionen verwalten — Produkte mit Mengen und Preisen hinzufügen
  • Wertvertrag pflegen — im Tab „Wertvertrag“ legst du fest, wer welchen Anteil am Umsatz bekommt. Die Tabelle hat eine Spalte je Bereich (Akquise, jede Pauschal-Position, Verwaltung) und eine Zeile je beteiligter Person — plus eine Zeile für Vitale Arbeitskultur selbst. Jede Spalte muss genau 100% ergeben; vorher lässt sich nichts speichern. Vorbelegt ist: Akquise geht an den Auftragseigner, alles andere an VA (nur intern)
  • Festschreiben & Versionen — mit „Festschreiben“ machst du die Verteilung verbindlich. Abrechnungen verwenden immer die festgeschriebene Version. Möchtest du später etwas ändern, legst du über „Neue Version erstellen“ eine Folgeversion an — die alten Abrechnungen bleiben unangetastet (nur intern)
Aufträge durchlaufen 6 Status-Stufen: Ungeklärt → Geklärt → Beauftragt → Laufend → Abzurechnen → Abgerechnet. Zeiterfassung ist nur bei Aufträgen im Status "Laufend" möglich. Stundenbasierte Positionen sind nicht Teil des Wertvertrags — sie werden nach den gebuchten Stunden abgerechnet. Änderst du den Wertvertrag, nachdem eine Position bereits teilweise abgerechnet wurde, gleicht die nächste Abrechnung den Unterschied automatisch über Korrekturposten aus — am Ende stimmt die Aufteilung mit der neuesten Version überein.

Siehe auch: Zeiterfassung, Abrechnungen, Produkte

Aufgaben

Aufgaben helfen euch, Arbeit zu organisieren. Du kannst sie auf einem Kanban-Board oder in einer Tabelle verwalten, priorisieren und Komplizen zuweisen.

Was kannst du hier tun?

  • Neue Aufgabe erstellen — über den Button oben rechts
  • Per Drag & Drop verschieben — im Board-Modus Aufgaben zwischen Status-Spalten ziehen
  • Komplizen zuweisen — im Aufgabendetail Teammitglieder hinzufügen
  • Mit Aufträgen verknüpfen — Aufgaben einem oder mehreren Aufträgen zuordnen
4 Status-Stufen: Offen → In Arbeit → Blockiert → Erledigt. Alle Übergänge sind erlaubt. Aufgaben werden beim Löschen endgültig entfernt — es gibt keinen Papierkorb.

Siehe auch: Aufträge, Komplizen

Zeiterfassung

Erfasse Arbeitszeiten per Timer oder manueller Eingabe. In der Listenansicht siehst du alle Einträge, in der Wochenansicht kannst du schnell Zeiten für die ganze Woche eintragen.

Was kannst du hier tun?

  • Timer starten — über den Timer-Button in der Kopfzeile, funktioniert von jeder Seite aus
  • Manuellen Eintrag erstellen — über "Erfassen" einen Eintrag mit Datum und Dauer anlegen
  • Wochenansicht nutzen — im Tab "Woche" Zeiten direkt in ein Raster eintragen
  • Interne Zeiten erfassen — Zeiten ohne Auftragsbezug einer Kategorie zuordnen, z.B. IT, Marketing oder Weiterbildung (nur intern)
  • Zeiten per Tabelle importieren — über "Importieren" mehrere Einträge auf einmal nacherfassen (siehe unten)
Es kann immer nur ein Timer gleichzeitig laufen. In der Wochenansicht: Pfeiltasten zum Navigieren, Enter zum Bearbeiten, Escape zum Abbrechen.

Zeiten dürfen sich nicht überschneiden

Eine Zeit, die in einen bereits erfassten Zeitraum hineinreicht, wird abgelehnt — du bekommst einen Hinweis, welcher Eintrag im Weg steht. Der Grund: dieselbe Stunde soll nicht zweimal gebucht werden, weil sie sonst doppelt in einer Abrechnung landet. Direkt aneinander anschließende Zeiten sind natürlich in Ordnung — ein Eintrag von 9 bis 11 Uhr und der nächste ab 11 Uhr passen zusammen.

Zeiten per Tabelle nacherfassen

Wenn du eine ganze Woche nachtragen musst oder Zeiten aus einem anderen Programm übernimmst, ist der Import der schnellere Weg. Er läuft in vier Schritten:

  1. Vorlage herunterladen — sie enthält für jede Stunden-Position deiner beauftragten und laufenden Aufträge sowie für jede interne Tätigkeit schon eine eigene Zeile. Pauschal-Positionen fehlen bewusst: dagegen werden keine Stunden gebucht.
  2. In Excel ausfüllen — nur Datum, Von und Bis eintragen, dazu optional eine Beschreibung. Datum als 24.07.2026, Uhrzeit als 09:00.
  3. Datei hochladen — du bekommst eine Vorschau, die jede Zeile prüft.
  4. Importieren — sobald keine Zeile mehr einen Fehler hat.

Die Vorlage ist gleichzeitig deine Nachschlageliste: Zeilen, die du nicht brauchst, lässt du einfach stehen — ohne Datum und Uhrzeit werden sie beim Import übersprungen. Und wenn du gegen dieselbe Position mehrfach buchen willst, kopierst du die Zeile so oft, wie du sie brauchst.

Der Import ist alles-oder-nichts: solange eine Zeile einen Fehler hat, wird nichts geschrieben. So kann nicht die Hälfte deiner Zeiten drin sein, ohne dass du erkennst, welche. Die Vorschau nennt dir für jede Zeile den Grund — mit der Zeilennummer, die auch Excel anzeigt.

Zwei Dinge kann der Import nicht: Zeiten für andere Komplizen anlegen (er schreibt immer auf dich selbst) und Zeiten in einem Zeitraum, der schon abgerechnet ist.

Siehe auch: Aufträge, Abrechnungen

Interaktionszyklen

Interaktionszyklen bilden aktive Beziehungsphasen mit Organisationen ab — vom Erstkontakt bis zum Auftrag. Weise Komplizen zu und verknüpfe Personen und Aufträge.

Was kannst du hier tun?

  • Neuen Zyklus anlegen — eine Organisation auswählen und starten
  • Komplizen und Personen zuweisen — im Detail des Zyklus Komplizen und Kontaktpersonen verknüpfen
  • Aufträge verknüpfen — Aufträge, die aus diesem Zyklus entstanden sind, zuordnen
3 Status: Aktiv, Inaktiv, Archiviert. Archivierte Zyklen werden aus der Standardliste ausgeblendet.

Siehe auch: Interaktionen, Organisationen

Interaktionen

Einzelne Kontaktpunkte dokumentieren — E-Mails, Anrufe, Meetings oder Chatnachrichten. Verknüpfe sie mit Personen, Organisationen, Aufträgen und Zyklen.

Was kannst du hier tun?

  • Neue Interaktion erstellen — über den Button oben rechts oder den +-Button in der Kopfzeile
  • Filtern — nach Kanal, Richtung, Status oder verknüpften Entitäten
  • Verknüpfungen hinzufügen — Komplizen, Personen, Organisationen, Aufträge und Zyklen zuordnen
Kanäle: E-Mail, Anruf, Meeting, Chat. Das Medium (Schriftlich/Mündlich) wird automatisch abgeleitet. Interaktionen werden beim Löschen endgültig entfernt.

Siehe auch: Interaktionszyklen, Organisationen, Aufträge

Abrechnungen

Hier werden Umsatzanteile aus Abrechnungszyklen verwaltet. Interne Komplizen erstellen Zyklen im Auftragsdetail, externe Komplizen sehen ihre Anteile und hinterlegen Rechnungsnummern.

Was kannst du hier tun?

  • Rechnungsnummer eintragen — zu jedem Anteil deine externe Rechnungsnummer hinterlegen (extern)
  • Abrechnungszyklen verwalten — im Auftragsdetail Zyklen anlegen, Zeiteinträge zuordnen und abschließen (intern)
  • Aufteilung nachvollziehen — jeder abgerechnete Euro wird genau einmal zugeordnet: 15% Akquise an den Auftragseigner, 5% Verwaltung an Vitale Arbeitskultur, 80% Wertschöpfung (Stunden nach Aufwand, Pauschalen über den Wertvertrag). Die Zeile „Verbleibt bei Vitale Arbeitskultur“ zeigt den VA-Anteil (intern)
  • Deine Umsatz-Sicht — im Bereich „Umsatz“ siehst du je nach Rolle: extern den Betrag, den du in Rechnung stellst, plus was Vitale Arbeitskultur durch deine Arbeit verdient hat; intern deinen erzeugten Umsatz plus deinen Anteil am Gesamtumsatz des Jahres (vor Kosten und Steuern). Jeder sieht nur die eigenen Zahlen
Abgeschlossene Zyklen können nicht mehr bearbeitet werden — Anteile und Beträge sind dann eingefroren. Die Akquise- und Verwaltungsprozentsätze werden in den Einstellungen konfiguriert. Auch interne Komplizen erhalten jetzt für ihre gebuchten Stunden einen Wertschöpfungsanteil — das macht den von jedem erzeugten Umsatz sichtbar (keine Auszahlung, interne Komplizen sind angestellt).

Siehe auch: Aufträge, Zeiterfassung, Einstellungen

Komplizen

Das Teamverzeichnis aller Komplizen — intern und extern. Hier findest du Kontaktdaten, Rollen und Profil-Informationen.

Was kannst du hier tun?

  • Profil ansehen — Klicke auf einen Komplizen, um Details zu sehen
  • Eigene Zeiten und Kalender pflegen — im eigenen Profil im Tab „Zeiten"
  • Neuen Komplizen anlegen — über den Button oben rechts (nur Admin)
  • Komplizen bearbeiten — Profildaten, Bankverbindung und HR-Informationen pflegen (nur Admin)
Externe Komplizen sehen nur eingeschränkte Informationen (Name, E-Mail) anderer Komplizen.

Kalender verbinden

  1. Öffne dein eigenes Profil und den Tab „Zeiten". Zeitfenster sagen, wann du grundsätzlich arbeitest; verbundene Kalender blockieren bereits belegte Zeiten.
  2. Microsoft: „Microsoft-Konto verbinden" öffnet die Microsoft-Anmeldung. Du kannst mehrere Geschäfts- und Privatkonten verbinden und anschließend die Kalender auswählen, die berücksichtigt werden sollen.
  3. Google: „Google Kalender verbinden" öffnet die Zustimmung bei Google. Der Hub liest nur Frei/Belegt-Zeiten.
  4. CalDAV: Nutze ein Anwendungspasswort, suche die Kalender und wähle einen aus. Die Verbindung ist für interne Kalender vorgesehen, weil CalDAV keine vergleichbar eingeschränkte Freigabe kennt.
  5. Kontrolliere den Status. „Aktiv" bedeutet, dass der Abgleich läuft; bei „Fehler" steht die Ursache direkt an der Verbindung.

Siehe auch: Rollen, Aufträge

Einstellungen

Richte dir den Komplizen Hub so ein, wie du ihn magst. Wähle dein bevorzugtes Design und starte die Einführungstour bei Bedarf neu.

Was kannst du hier tun?

  • Design wechseln — zwischen Hell, Dunkel und System-Einstellung wählen
  • Tour neu starten — die Einführungstour von Anfang an durchlaufen
  • Kontaktrollen verwalten — Rollen für Ansprechpartner bei Organisationen (nur intern)
  • Abrechnungseinstellungen — Akquise- und Verwaltungsprozentsätze konfigurieren (nur Admin)

Produkte Nur intern

Euer Leistungskatalog — alle Dienstleistungen und Produkte mit Preisen und Einheiten. Produkte werden Aufträgen als Positionen zugeordnet.

Was kannst du hier tun?

  • Neues Produkt anlegen — über den Button oben rechts (nur Admin)
  • Produkt bearbeiten — Preis, Einheit und Geschäftsbereich anpassen (nur Admin)
Einheiten bestimmen die Abrechnungsart: "Stunde" = Zeiterfassung möglich, "Pauschal" oder "Jahr" = Festpreis.

Siehe auch: Aufträge, Abrechnungen

Buchungen Nur intern

Buchbare Dienste — Titel, Dauer, Puffer, Vorlauf und die Frage, wer gebucht wird. Dienste pflegen Admins zentral; die Zeitfenster pflegt jeder Komplize selbst im eigenen Profil im Tab „Zeiten".

Was kannst du hier tun?

  • Neuen Dienst anlegen — über den Button oben rechts (nur Admin)
  • Komplizen zuordnen — im Tab „Komplizen"; bei „Einer von mehreren" zusätzlich Priorität und Gewichtung (nur Admin)
  • Verfügbarkeit prüfen — im Tab „Verfügbarkeit" siehst du dieselben Termine, die auch die Buchungsseite anbietet
  • Buchungen betreuen — im Tab „Buchungen" Termine einsehen, verschieben oder absagen
Die drei Zuordnungsarten: Einzeln = genau eine Person. Einer von mehreren = gebucht wird jemand aus der Gruppe. Alle gemeinsam = der Termin kommt nur zustande, wenn jede zugeordnete Person Zeit hat.
Puffer müssen ins Zeitfenster passen: Wer bis 17 Uhr freigibt und 15 Minuten Nachbereitung einplant, ist ab 16:45 nicht mehr buchbar. Zeigt die Verfügbarkeit nichts an, fehlen meist die Zeitfenster der zugeordneten Komplizen — ein Hinweis dazu steht direkt über dem Kalender.

So richtest du einen Dienst ein

  1. Lege Titel, Dauer, Raster, Puffer, Vorlauf und Buchungshorizont fest.
  2. Wähle die Zuordnungsart und ordne im Tab „Komplizen" die buchbaren Personen zu. Ohne Zuordnung gibt es keine Termine.
  3. Bei Online-Terminen lässt du den Meeting-Link leer, wenn jede Buchung einen eigenen kMeet-Raum erhalten soll. Ein eingetragener Link gilt für alle Buchungen dieses Dienstes.
  4. Prüfe im Tab „Verfügbarkeit", ob passende Termine erscheinen. Dort lassen sich Termine auch intern buchen.

So betreust du eine Buchung

  1. Öffne den Dienst und den Tab „Buchungen". Aktive Termine stehen sofort in der Liste; ersetzte Termine werden über „Frühere Termine anzeigen" sichtbar.
  2. Beim Verschieben wählst du einen freien neuen Zeitpunkt. Beim Absagen wird der Slot wieder frei. Beide Vorgänge senden aktualisierte Kalendereinträge an Gast und Host.
  3. „Bestätigt" bedeutet: Die Buchung ist angelegt und der Zeitpunkt reserviert. Zusagen oder Absagen aus dem persönlichen Kalender werden derzeit nicht in den Hub zurückgespielt.

Siehe auch: Meine Zeiten, Komplizen

Meine Zeiten

Wann du für Buchungen zur Verfügung stehst. Gilt für alle Dienste, denen du zugeordnet bist. Zu finden im eigenen Profil im Tab „Zeiten" — oder direkt über das Benutzermenü oben rechts.

Was kannst du hier tun?

  • Wochenzeiten pflegen — pro Wochentag beliebig viele Fenster, etwa vormittags und nach der Mittagspause
  • Ausnahmen eintragen — ohne Uhrzeiten ist der Tag komplett blockiert, mit Uhrzeiten ersetzt die Ausnahme die Wochenzeiten dieses Tages
  • Zeitzone setzen — alle Uhrzeiten gelten in dieser Zone
Ohne Zeitfenster bist du in keinem Dienst buchbar — auch dann nicht, wenn du zugeordnet bist. Interessierte sehen die Termine automatisch in ihrer eigenen Zeitzone.

Siehe auch: Buchungen

Netzwerk-Explorer Nur intern

Visualisierung aller Beziehungen im System. Wähle eine Organisation oder Person und sieh sofort alle Verbindungen — Kontakte, Aufträge, Komplizen und Zyklen.

Was kannst du hier tun?

  • Entität auswählen — klicke auf einen Knoten im Graphen, um Details zu sehen
  • Suchen — über das Suchfeld eine bestimmte Organisation oder Person finden
Der Explorer zeigt nur Entitäten an, die mindestens eine Verknüpfung haben.

Siehe auch: Organisationen, Komplizen

Hilfe im Komplizen Hub

Auf jeder Seite im Komplizen Hub findest du neben der Überschrift ein (?)-Symbol. Dort erhältst du Erklärungen und Tipps zur jeweiligen Seite, zugeschnitten auf deine Rolle.