Package Information
Documentation
@zurdai/n8n-nodes-wtt
n8n Node für Arbeitszeiterfassung (Work Time Tracking) mit Trigger-Endpunkt und Auswertungsfunktionen.
Installation
npm install @zurdai/n8n-nodes-wtt
Verwendung
Dieses Paket enthält zwei Nodes:
1. Arbeitszeit Trigger
Ein Webhook-Trigger, der Arbeitszeiteinträge über GET-Anfragen erfasst.
Endpunkt-Format:
- Test-Modus:
/webhook-test/{workflow-id}/arbeitszeit - Produktions-Modus:
/webhook/{workflow-id}/arbeitszeit
Parameter:
action-startoderstop
Beispiel-Anfragen:
Test-Modus (nur nach Klick auf "Execute workflow"):
curl "https://your-n8n-instance.com/webhook-test/your-workflow-id/arbeitszeit?action=start"
curl "https://your-n8n-instance.com/webhook-test/your-workflow-id/arbeitszeit?action=stop"
Produktions-Modus (immer verfügbar):
curl "https://your-n8n-instance.com/webhook/your-workflow-id/arbeitszeit?action=start"
curl "https://your-n8n-instance.com/webhook/your-workflow-id/arbeitszeit?action=stop"
So findest du deine Workflow-ID:
- Öffne den Workflow in n8n
- Klicke auf die "Arbeitszeit Trigger" Node
- Die vollständige Webhook-URL wird angezeigt:
- Test:
https://your-domain/webhook-test/DEINE-ID-HIER/arbeitszeit - Production:
https://your-domain/webhook/DEINE-ID-HIER/arbeitszeit
- Test:
- Kopiere die URL direkt aus der Node!
Output:
{
"datum": "21.11.2025",
"zeit": "14:30:45",
"timestamp": "2025-11-21T14:30:45.123Z",
"anfrage": "start",
"vollstaendigeZeit": "21.11.2025, 14:30:45"
}
2. Arbeitszeit Node
Eine Action-Node zum Auswerten und Zusammenfassen von Arbeitszeiteinträgen.
Resource: Listen
Operationen:
Alle Zeiten Anzeigen
- Zeigt alle erfassten Arbeitszeiten sortiert nach Timestamp
Summen Berechnen
- Berechnet die Gesamtarbeitszeit aus Start/Stop-Paaren
- Zeigt einzelne Arbeitsperioden und Gesamtsumme
Detaillierte Auswertung
- Kombiniert alle Zeiten mit berechneten Summen
- Zeigt Warnungen bei fehlenden Stop-Einträgen
Beispiel-Output (Summen Berechnen):
{
"anzahlPerioden": 2,
"perioden": [
{
"start": "21.11.2025, 08:00:00",
"stop": "21.11.2025, 12:00:00",
"dauer": "4h 0m",
"minuten": 240
},
{
"start": "21.11.2025, 13:00:00",
"stop": "21.11.2025, 17:30:00",
"dauer": "4h 30m",
"minuten": 270
}
],
"gesamtMinuten": 510,
"gesamtZeit": "8h 30m",
"gesamtStunden": "8.50",
"offenerStart": false,
"letzterStart": null,
"warnungen": null
}
Workflow-Beispiele
Wichtig: Alle Einträge müssen persistent gespeichert werden, damit keine Daten verloren gehen!
Empfohlen: n8n Data Table (am einfachsten!)
Die n8n Data Table ist die einfachste Lösung, da sie direkt in n8n integriert ist und keine externe Konfiguration benötigt.
Workflow 1: Einträge erfassen und speichern (Data Table)
Arbeitszeit Trigger (Webhook)
↓
Data Table - Insert Row (Tabelle: "Arbeitszeit")
↓
Respond to Webhook (Optional: Bestätigung zurückgeben)
Data Table Setup:
Erstelle eine Data Table:
- Gehe zu Settings → Data Tables → Create Table
- Name:
Arbeitszeit - Wichtig: Spalten müssen genau so benannt werden:
Datum(String)Zeit(String)Timestamp(String)Aktion(String)Vollstaendige_Zeit(String)
Data Table Node Konfiguration:
- Operation: Insert
- Table: Arbeitszeit
- Columns Mapping Mode: "Map Each Column Manually"
- Column Mappings:
- Datum →
{{ $json.datum }} - Zeit →
{{ $json.zeit }} - Timestamp →
{{ $json.timestamp }} - Aktion →
{{ $json.anfrage }} - Vollstaendige_Zeit →
{{ $json.vollstaendigeZeit }}
- Datum →
📁 Fertige Workflow-Vorlage: examples/workflow-data-table.json
⚠️ Wichtiger Hinweis: Die Spaltennamen in der Data Table müssen genau mit den Spaltennamen im Workflow übereinstimmen! Bei Fehler "unknown column name 'datum'" → Prüfe, ob die Spalten korrekt erstellt wurden (Datum statt datum).
Workflow 2: Auswertung erstellen (Data Table)
Schedule Trigger (z.B. täglich um 18:00)
↓
Data Table - Get All (Tabelle: "Arbeitszeit")
↓
Arbeitszeit Node - Detaillierte Auswertung
↓
Email/Slack/Dashboard (Ergebnisse versenden)
Arbeitszeit Node Setup:
- Resource: Listen
- Operation:
- Alle Zeiten Anzeigen - Listet alle Einträge auf
- Summen Berechnen - Nur Zusammenfassung
- Detaillierte Auswertung - Alle Einträge + Summen (empfohlen!)
Wichtig: Die Arbeitszeit Node liest automatisch beide Formate:
- Kleingeschrieben (
datum,zeit,timestamp,anfrage) - vom Trigger - Großgeschrieben (
Datum,Zeit,Timestamp,Aktion) - aus Data Table
📁 Fertige Workflow-Vorlage: examples/workflow-auswertung.json
Alternative: JavaScript Code Node (ohne eigene Node!)
Wenn du die Arbeitszeit Node nicht verwenden möchtest, kannst du auch eine JavaScript Code Node verwenden:
Schedule Trigger (z.B. täglich um 18:00)
↓
Data Table - Get All (Tabelle: "Arbeitszeit")
↓
Code Node - Arbeitszeit berechnen (JavaScript)
↓
Email/Slack/Dashboard
Vorteile:
- ✅ Keine zusätzliche Node-Installation nötig
- ✅ Vollständig anpassbar
- ✅ Funktioniert direkt in n8n
Code:
// Siehe: examples/javascript-arbeitszeit-berechnung.js
📁 Fertige Vorlagen:
examples/workflow-javascript-code.json- Kompletter Workflowexamples/javascript-arbeitszeit-berechnung.js- Nur der JavaScript Code
Alternative: Google Sheets Speicherung
Workflow:
Arbeitszeit Trigger → Google Sheets (Append/Update) → Respond to Webhook
Setup:
- Erstelle ein Google Sheet mit Spalten: Datum, Zeit, Timestamp, Aktion, Vollständige Zeit
- Verwende die Google Sheets Node mit Operation "Append or Update"
- Tabelle: "Arbeitszeit"
📁 Fertige Workflow-Vorlage: examples/workflow-google-sheets.json
Alternative: PostgreSQL/MySQL Speicherung
Wenn du eine Datenbank verwendest:
CREATE TABLE arbeitszeiten (
id SERIAL PRIMARY KEY,
datum VARCHAR(20),
zeit VARCHAR(20),
timestamp TIMESTAMP,
aktion VARCHAR(10),
vollstaendige_zeit VARCHAR(50)
);
Workflow:
Arbeitszeit Trigger → PostgreSQL (INSERT) → Respond to Webhook
Auswertung:
Trigger → PostgreSQL (SELECT *) → Arbeitszeit Node → Ausgabe
Lizenz
MIT
Autor
Daniel Zurmühle (daniel.zurmuehle@zurdai.com)
Homepage: https://zurdai.com