Zum Inhalt springen

Cron Jobs

Mit der Funktion Cron Jobs können Sie eindeutige Endpoint-URLs erstellen, die beim Aufruf automatisch alle aktiven Zeiterfassungs-Logs für einen bestimmten Satz von Arbeitsplätzen schließen. Das ist nützlich für das Beenden von Schichten, das Abschließen offener Timer am Ende des Tages oder die Koordination mit externen Schedulern (Server-Cron, Automatisierungsplattformen, geplante Webhooks).

App-Einstellungen — Cron Jobs


Jeder Cron Job besteht aus:

FeldBeschreibung
NameEin aussagekräftiges Label, das beschreibt, was der Cron Job tut (z. B. „Tagesende — Montageteam”). Dieser Name wird auch als Betreff der Zusammenfassungs-E-Mail verwendet.
Endpoint-URLEine eindeutige, automatisch generierte URL, die ein geheimes Token enthält. Jeder mit dieser URL kann den Cron Job auslösen, behandeln Sie sie also wie eine Zugangsdaten.
Benachrichtigungs-E-Mail (optional)Wenn ausgefüllt, wird bei jedem Auslösen eine Zusammenfassungs-E-Mail an diese Adresse gesendet. Leer lassen, um E-Mail-Benachrichtigungen zu deaktivieren.
ArbeitsplätzeEin oder mehrere Arbeitsplätze, deren aktive Zeiterfassungseinträge beim Aufruf der URL geschlossen werden.
Zuletzt ausgelöstZeitstempel des letzten erfolgreichen Auslösens.

Sie können beliebig viele Cron Jobs erstellen, jeder mit eigenem Arbeitsplatz-Satz und eigener URL. Das macht es einfach, Logs zu verschiedenen Zeiten für verschiedene Teams oder Abteilungen zu schließen – beispielsweise einen Cron Job für die Montagelinie um 16 Uhr und einen weiteren für die Lackiererei um 18 Uhr.


Häufige Szenarien:

  • Schichtende-Bereinigung — Zeiterfassungseinträge automatisch stoppen, die ein Mitarbeiter vor dem Verlassen vergessen hat zu stoppen.
  • Pro-Team-Zeitpläne — verschiedene Abteilungen enden zu unterschiedlichen Zeiten, jede bekommt ihren eigenen Cron Job und ihre eigene Tageszeit.
  • Integration mit Automatisierungsplattformen — planen Sie einen Zapier-, Make.com- oder ähnlichen Workflow, der die URL wiederkehrend aufruft.
  • Server-Cron — rufen Sie den Endpoint aus einem Linux-Cron-Job, Windows-Aufgabenplaner oder einem beliebigen HTTP-basierten Scheduler auf.

Öffnen Sie App-Einstellungen → Cron Jobs, um die Liste zu verwalten.

  1. Klicken Sie auf Cron Job hinzufügen.
  2. Geben Sie ihm einen aussagekräftigen Namen — dieser wird auch als Betreff der Benachrichtigungs-E-Mail verwendet.
  3. Geben Sie optional eine Benachrichtigungs-E-Mail ein. Wenn ausgefüllt, wird bei jedem Auslösen eine Zusammenfassungs-E-Mail an diese Adresse gesendet. Leer lassen, um E-Mail-Benachrichtigungen zu deaktivieren.
  4. Haken Sie einen oder mehrere Arbeitsplätze in der Liste an. Nur die aktiven Zeit-Logs dieser Arbeitsplätze werden durch diese URL geschlossen.
  5. Klicken Sie auf Speichern.

Eine eindeutige Endpoint-URL wird automatisch für Sie generiert.

Klicken Sie auf das Stift-Symbol neben einem Cron Job, um seinen Namen oder die Arbeitsplatz-Zuweisungen zu ändern. Die Endpoint-URL bleibt gleich — bestehende Integrationen funktionieren weiter.

Klicken Sie auf das Mülleimer-Symbol und bestätigen. Die Endpoint-URL hört sofort auf zu funktionieren. Dies ist endgültig und kann nicht rückgängig gemacht werden.

Klicken Sie auf das Kopier-Symbol neben der URL. Das Symbol wechselt kurz zu einem grünen Häkchen, um zu bestätigen, dass die URL in Ihrer Zwischenablage ist.


Die Endpoint-URL akzeptiert sowohl GET- als auch POST-Anfragen — wählen Sie, was für Ihren Scheduler einfacher ist. Es ist kein Authentifizierungs-Header erforderlich; das Token in der URL ist die Zugangsdaten.

curl

Terminal-Fenster
curl https://your-board.example.com/cron/abc123xyz...

Linux crontab (Schicht jeden Werktag um 17 Uhr schließen)

0 17 * * 1-5 curl -fsS https://your-board.example.com/cron/abc123xyz... > /dev/null

Zapier / Make.com / n8n — verwenden Sie die eingebaute Webhooks / HTTP Request-Aktion und richten Sie sie auf die URL.

Ein erfolgreicher Auslöser gibt eine JSON-Antwort zurück wie:

{
"success": true,
"closed": 3,
"cron_job": "End of day - assembly"
}

closed ist die Anzahl der aktiven Zeiterfassungseinträge, die gestoppt wurden.

Wenn dem Cron Job keine Arbeitsplätze zugewiesen sind, lautet die Antwort:

{
"success": true,
"closed": 0,
"message": "No workstations assigned."
}

Wenn der Endpoint aufgerufen wird, tut das System Folgendes:

  1. Findet jeden aktiven Zeiterfassungseintrag (ein gestarteter Timer ohne Stoppzeit), dessen Arbeitsplatz diesem Cron Job zugewiesen ist.
  2. Setzt stopped_at auf die aktuelle Zeit und erfasst die verstrichene Dauer.
  3. Schreibt einen automatischen Log-Eintrag für jede betroffene Aufgabe, vermerkt als Auto-closed by cron job: {name}, sodass die erfasste Zeit im Arbeitsplatz-Log erhalten bleibt.
  4. Aktualisiert den Zeitstempel Zuletzt ausgelöst des Cron Jobs.
  5. Falls eine Benachrichtigungs-E-Mail gesetzt ist, wird eine Zusammenfassungs-E-Mail gesendet (siehe unten).

Einträge, die nicht aktiv sind (Timer bereits gestoppt oder auf Arbeitsplätzen außerhalb der Liste dieses Crons laufend), werden nicht berührt.


Wenn das Feld Benachrichtigungs-E-Mail bei einem Cron Job ausgefüllt ist, sendet jeder Auslöser dieses Endpoints eine Zusammenfassungs-E-Mail an diese Adresse.

Die E-Mail enthält:

  • Betreff — der Name des Cron Jobs, genau wie konfiguriert.
  • Ausgelöst um — Datum und Uhrzeit des Auslösens.
  • Geschlossene Logs — eine Tabelle, die jeden geschlossenen aktiven Zeiterfassungseintrag mit dem Namen des Mitarbeiters, dem Arbeitsplatz und der verstrichenen Dauer auflistet.

Wenn zum Zeitpunkt des Auslösens keine aktiven Einträge gefunden wurden, wird die E-Mail trotzdem gesendet, aber der Text vermerkt, dass keine Logs geschlossen wurden. Das ist nützlich als Heartbeat, um zu bestätigen, dass der Scheduler feuert.

Beispiel-E-Mail-Text:

Ausgelöst um: 2026-05-26 17:00:03

Geschlossene Logs (2):

MitarbeiterArbeitsplatzDauer
Jan KowalskiMontage 13h 12min
Anna NowakLackierkabine45min

Um E-Mail-Benachrichtigungen zu deaktivieren, leeren Sie das Feld einfach beim Cron Job und speichern.

Die E-Mail-Zustellung verwendet denselben Mail-Transport (SMTP etc.), der für den Rest der App konfiguriert ist. Wenn die Zustellung aus irgendeinem Grund fehlschlägt, wird der Fehler protokolliert und die Auslöser-Antwort gibt trotzdem „success” zurück — das Schließen der Zeit-Logs wird nicht durch E-Mail-Probleme blockiert.


  • Die Endpoint-URL enthält ein 40 Zeichen langes zufälliges Token und ist das einzige, was zwischen dem öffentlichen Internet und der Aktion steht. Behandeln Sie sie wie ein Passwort.
  • Falls eine URL durchsickert, löschen Sie den Cron Job — das widerruft die URL sofort — und erstellen Sie einen neuen, um eine frische URL auszustellen.
  • Der Endpoint ist auf 60 Anfragen pro Minute pro IP rate-limitiert, um Missbrauch zu verhindern.
  • Die Aktion ist pro Tenant: Ein Token betrifft nur Zeiteinträge, die dem Tenant gehören, der den Cron Job erstellt hat.

  • Geben Sie jedem Cron Job einen Namen, der sowohl das Team als auch den Zeitplan widerspiegelt (z. B. „17 Uhr werktags — Montage”), damit Sie sie auf einen Blick unterscheiden können.
  • Verwenden Sie pro Team einen eigenen Cron Job statt einem großen — das gibt Ihnen feinere Kontrolle über die Zeitpläne und macht es einfacher, das Verhalten für nur ein Team zu deaktivieren oder zu ändern.
  • Testen Sie die URL nach dem Erstellen einmal manuell (aus Ihrem Browser oder mit curl), um zu bestätigen, dass sie eine success: true-Antwort zurückgibt.