Cookpit / Timbrage Zeiterfassung
Falls Ihr Campingplatz Cookpit (Timbrage) zum Stempeln der Arbeitszeiten einsetzt, holt dieser Adapter die Stempelereignisse alle 15 Minuten in das Zeiterfassungs-Modul von CampOne. Lohnabrechnungs-fertige Summen, ohne Doppelerfassung.
Falls Sie Cookpit nicht einsetzen, liefert CampOne ein eigenes Stempel-Widget auf dem Tagesdashboard mit — die Mitarbeitenden tippen beim Eintreffen auf “Einstempeln” und beim Verlassen auf “Ausstempeln”; die nachgelagerten Auswertungen sind in beiden Fällen identisch.
Was Sie damit erhalten
Abschnitt betitelt „Was Sie damit erhalten“- Abruf der Stempelereignisse aus Cookpit alle 15 Minuten (idempotent — wiederholte Läufe erzeugen keine Duplikate)
- Speicherung in der Tabelle
TimeEntryneben manuellen Einträgen - Separate Erfassung von Korrekturen (jedes PATCH erzeugt eine Audit-Zeile
TimeEntryAdjustment) - Zeitsummen pro Person mit Datumsfilter
- Ein Einstempeln/Ausstempeln-Widget auf dem Dashboard für jeden Mandanten
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“Cookpit betreibt kein öffentliches Entwicklerportal — Sie nehmen direkt Kontakt auf:
- Verkauf: verkauf@cookpit.ch
- Support: support@cookpit.ch
- Produktseite: https://www.cookpit.ch/cookpit-time/
Was Sie anfragen sollten:
- Den technischen API-Vertrag (wir gehen aktuell von
GET /api/v1/clock-eventsmit HeaderX-API-Keyaus) - Einen Sandbox-Mandanten und einen API-Schlüssel für einen Pilot-Standort
- Bestätigung der Basis-URL (unsere derzeitige Annahme:
https://api-test.cookpit.ch) - Die Position zum Push-Modus: Akzeptiert Cookpit eingehende Schichten von uns, oder ist die Anbindung nur lesend?
Eine vorgefertigte E-Mail-Vorlage liegt unter docs-internal/handoffs/integrations-outreach-emails.md.
Was Sie in CampOne eintragen
Abschnitt betitelt „Was Sie in CampOne eintragen“Einstellungen → Integrationen → Anbieter-Adapter → Cookpit:
| Feld | Beschreibung |
|---|---|
| Umgebung | Test / Production |
| Standort-ID | Cookpits Kennung Ihres Campingplatzes |
| API-Schlüssel | Der pro Mandant ausgestellte Token |
| Benutzer-Zuordnung | Ein JSON-Objekt, das Cookpit-Benutzer-IDs auf CampOne-Benutzer-IDs abbildet, z. B. {"cookpit_42": 17, "cookpit_43": 22} |
Klicken Sie auf Speichern und dann auf Verbindung prüfen.
Wie die Synchronisation abläuft
Abschnitt betitelt „Wie die Synchronisation abläuft“Alle 15 Minuten fragt eine Celery-Aufgabe Cookpit: “Gibt es neue Stempelereignisse seit dem letzten Cursor?”. Für jedes gefundene Ereignis:
- Die Cookpit-Benutzer-ID in der Benutzer-Zuordnung nachschlagen, um den CampOne-Benutzer zu finden.
- Ist der Benutzer nicht zugeordnet, wird das Ereignis übersprungen und protokolliert (so können Sie ihn nachpflegen und den Lauf wiederholen).
- Einen
TimeEntrymit dem Schlüssel(tenant, source='cookpit', external_ref)anlegen oder aktualisieren. Wiederholte Importe sind idempotent. - Den Cursor weitersetzen, damit der nächste Lauf nur neue Ereignisse abruft.
Das Integrationsprotokoll zeigt, wie viele Ereignisse pro Lauf importiert wurden.
Stempel-Widget für Standorte ohne Cookpit
Abschnitt betitelt „Stempel-Widget für Standorte ohne Cookpit“Das Dashboard-Widget legt TimeEntry-Zeilen mit source='manual' an. Gleiche Datenstruktur, gleiche Auswertungen. Führt ein Standort später Cookpit ein, schalten Sie auf der Karte um — alte manuelle Einträge bleiben erhalten.
Korrekturen an Zeiteinträgen
Abschnitt betitelt „Korrekturen an Zeiteinträgen“Mandanten-Administratoren dürfen jeden TimeEntry bearbeiten (z. B. ein vergessenes Ausstempeln nachtragen). Jede Bearbeitung erzeugt eine TimeEntryAdjustment-Zeile mit Vorher/Nachher-Schnappschuss und der ändernden Person — ein vollständiger Audit-Trail bei Streitfällen rund um die Lohnabrechnung.
Support-Kontakte
Abschnitt betitelt „Support-Kontakte“- Verkauf / Partnerschaften: verkauf@cookpit.ch
- Technischer Support: support@cookpit.ch
Einschränkungen
Abschnitt betitelt „Einschränkungen“- Das Senden von Schichten an Cookpit ist als Roadmap-Punkt vermerkt — der Adapter wirft
NotImplementedError, bis Cookpit den eingehenden Vertrag bestätigt. - Der Cookpit-API-Vertrag ist derzeit aus den üblichen Mustern in der Zeiterfassung abgeleitet; rechnen Sie mit einer kleinen Anpassung in
services/client.py, sobald der Anbieter die genaue Antwortstruktur bestätigt. - VCR-aufgezeichnete Tests gegen die echte Cookpit-Sandbox kommen, sobald Zugangsdaten vorliegen.