345 lines
10 KiB
JSON
345 lines
10 KiB
JSON
{
|
|
"name": "LibreBooking v1.2.0 Test Workflows",
|
|
"description": "Beispiel-Workflows für die neuen Features in Version 1.2.0",
|
|
"workflows": [
|
|
{
|
|
"name": "01 - Reservierung mit Custom Attributes erstellen",
|
|
"description": "Erstellt eine Reservierung mit benutzerdefinierten Attributen",
|
|
"nodes": [
|
|
{
|
|
"type": "n8n-nodes-base.manualTrigger",
|
|
"name": "Manuell starten",
|
|
"position": [250, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-librebooking.libreBooking",
|
|
"name": "Attribute abrufen",
|
|
"parameters": {
|
|
"resource": "attribute",
|
|
"operation": "getByCategory",
|
|
"categoryId": 1
|
|
},
|
|
"position": [450, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-librebooking.libreBooking",
|
|
"name": "Reservierung erstellen",
|
|
"parameters": {
|
|
"resource": "reservation",
|
|
"operation": "create",
|
|
"resourceId": 1,
|
|
"startDateTime": "={{ $now.plus(1, 'day').toFormat('yyyy-MM-dd') }}T10:00:00",
|
|
"endDateTime": "={{ $now.plus(1, 'day').toFormat('yyyy-MM-dd') }}T11:00:00",
|
|
"termsAccepted": true,
|
|
"title": "Test Reservierung mit Attributen",
|
|
"customAttributes": {
|
|
"attribute": [
|
|
{
|
|
"attributeId": 1,
|
|
"attributeValue": "Mein Attribut-Wert"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [650, 300]
|
|
}
|
|
],
|
|
"connections": {
|
|
"Manuell starten": {
|
|
"main": [
|
|
[{ "node": "Attribute abrufen", "type": "main", "index": 0 }]
|
|
]
|
|
},
|
|
"Attribute abrufen": {
|
|
"main": [
|
|
[{ "node": "Reservierung erstellen", "type": "main", "index": 0 }]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "02 - Ressource mit Custom Attributes erstellen",
|
|
"description": "Erstellt eine Ressource mit benutzerdefinierten Attributen",
|
|
"nodes": [
|
|
{
|
|
"type": "n8n-nodes-base.manualTrigger",
|
|
"name": "Manuell starten",
|
|
"position": [250, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-librebooking.libreBooking",
|
|
"name": "Ressource erstellen",
|
|
"parameters": {
|
|
"resource": "resource",
|
|
"operation": "create",
|
|
"resourceName": "Testraum mit Ausstattung",
|
|
"scheduleIdForResource": 1,
|
|
"resourceCustomAttributes": {
|
|
"attribute": [
|
|
{
|
|
"attributeId": 10,
|
|
"attributeValue": "Beamer, Whiteboard, 20 Plätze"
|
|
}
|
|
]
|
|
},
|
|
"resourceOptions": {
|
|
"description": "Ein Konferenzraum mit voller Ausstattung",
|
|
"maxParticipants": 20
|
|
}
|
|
},
|
|
"position": [450, 300]
|
|
}
|
|
],
|
|
"connections": {
|
|
"Manuell starten": {
|
|
"main": [
|
|
[{ "node": "Ressource erstellen", "type": "main", "index": 0 }]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "03 - Trigger für neue Reservierungen (ohne Altdaten)",
|
|
"description": "Überwacht neue Reservierungen - beim ersten Start werden existierende Reservierungen NICHT getriggert",
|
|
"nodes": [
|
|
{
|
|
"type": "n8n-nodes-librebooking.libreBookingTrigger",
|
|
"name": "Neue Reservierungen",
|
|
"parameters": {
|
|
"event": "newReservation",
|
|
"timeWindow": "14days",
|
|
"options": {
|
|
"fetchDetails": false,
|
|
"debugMode": true
|
|
}
|
|
},
|
|
"position": [250, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-base.if",
|
|
"name": "Debug-Check",
|
|
"parameters": {
|
|
"conditions": {
|
|
"boolean": [
|
|
{
|
|
"value1": "={{ $json._debug }}",
|
|
"value2": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [450, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-base.set",
|
|
"name": "Debug-Info",
|
|
"parameters": {
|
|
"values": {
|
|
"string": [
|
|
{
|
|
"name": "info",
|
|
"value": "Erster Poll - Daten wurden gespeichert"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [650, 200]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-base.set",
|
|
"name": "Neue Reservierung verarbeiten",
|
|
"parameters": {
|
|
"values": {
|
|
"string": [
|
|
{
|
|
"name": "message",
|
|
"value": "Neue Reservierung: {{ $json.title }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [650, 400]
|
|
}
|
|
],
|
|
"connections": {
|
|
"Neue Reservierungen": {
|
|
"main": [
|
|
[{ "node": "Debug-Check", "type": "main", "index": 0 }]
|
|
]
|
|
},
|
|
"Debug-Check": {
|
|
"main": [
|
|
[{ "node": "Debug-Info", "type": "main", "index": 0 }],
|
|
[{ "node": "Neue Reservierung verarbeiten", "type": "main", "index": 0 }]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "04 - Trigger für geänderte Reservierungen",
|
|
"description": "Überwacht Änderungen an bestehenden Reservierungen mittels Hash-Vergleich",
|
|
"nodes": [
|
|
{
|
|
"type": "n8n-nodes-librebooking.libreBookingTrigger",
|
|
"name": "Geänderte Reservierungen",
|
|
"parameters": {
|
|
"event": "updatedReservation",
|
|
"timeWindow": "14days",
|
|
"options": {
|
|
"fetchDetails": true,
|
|
"debugMode": false
|
|
}
|
|
},
|
|
"position": [250, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-base.set",
|
|
"name": "Änderung protokollieren",
|
|
"parameters": {
|
|
"values": {
|
|
"string": [
|
|
{
|
|
"name": "message",
|
|
"value": "Reservierung geändert: {{ $json.referenceNumber }} - {{ $json.title }}"
|
|
},
|
|
{
|
|
"name": "changedAt",
|
|
"value": "={{ $json._triggeredAt }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [450, 300]
|
|
}
|
|
],
|
|
"connections": {
|
|
"Geänderte Reservierungen": {
|
|
"main": [
|
|
[{ "node": "Änderung protokollieren", "type": "main", "index": 0 }]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "05 - Config Node Verwendung",
|
|
"description": "Zeigt die Verwendung des LibreBooking Config Credentials für Standardwerte",
|
|
"notes": "Voraussetzung: LibreBooking Config Credential muss angelegt und mit dem Node verbunden sein",
|
|
"nodes": [
|
|
{
|
|
"type": "n8n-nodes-base.manualTrigger",
|
|
"name": "Manuell starten",
|
|
"position": [250, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-librebooking.libreBooking",
|
|
"name": "Reservierung mit Defaults",
|
|
"parameters": {
|
|
"resource": "reservation",
|
|
"operation": "create",
|
|
"resourceId": 1,
|
|
"startDateTime": "={{ $now.plus(2, 'day').toFormat('yyyy-MM-dd') }}T14:00:00",
|
|
"endDateTime": "={{ $now.plus(2, 'day').toFormat('yyyy-MM-dd') }}T15:00:00",
|
|
"title": "Reservierung mit Config-Defaults"
|
|
},
|
|
"credentials": {
|
|
"libreBookingApi": "LibreBooking API",
|
|
"libreBookingConfig": "LibreBooking Config"
|
|
},
|
|
"position": [450, 300],
|
|
"notes": "termsAccepted und allowParticipation werden aus dem Config Node übernommen"
|
|
}
|
|
],
|
|
"connections": {
|
|
"Manuell starten": {
|
|
"main": [
|
|
[{ "node": "Reservierung mit Defaults", "type": "main", "index": 0 }]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "06 - Alle Events überwachen",
|
|
"description": "Überwacht sowohl neue als auch geänderte Reservierungen",
|
|
"nodes": [
|
|
{
|
|
"type": "n8n-nodes-librebooking.libreBookingTrigger",
|
|
"name": "Alle Reservierungs-Events",
|
|
"parameters": {
|
|
"event": "allReservations",
|
|
"timeWindow": "30days",
|
|
"filters": {
|
|
"resourceId": ""
|
|
},
|
|
"options": {
|
|
"fetchDetails": true
|
|
}
|
|
},
|
|
"position": [250, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-base.switch",
|
|
"name": "Event-Typ prüfen",
|
|
"parameters": {
|
|
"dataType": "string",
|
|
"value1": "={{ $json._eventType }}",
|
|
"rules": {
|
|
"rules": [
|
|
{
|
|
"value2": "new"
|
|
},
|
|
{
|
|
"value2": "updated"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [450, 300]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-base.set",
|
|
"name": "Neue Reservierung",
|
|
"parameters": {
|
|
"values": {
|
|
"string": [
|
|
{
|
|
"name": "action",
|
|
"value": "NEU: {{ $json.title }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [650, 200]
|
|
},
|
|
{
|
|
"type": "n8n-nodes-base.set",
|
|
"name": "Geänderte Reservierung",
|
|
"parameters": {
|
|
"values": {
|
|
"string": [
|
|
{
|
|
"name": "action",
|
|
"value": "GEÄNDERT: {{ $json.title }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"position": [650, 400]
|
|
}
|
|
],
|
|
"connections": {
|
|
"Alle Reservierungs-Events": {
|
|
"main": [
|
|
[{ "node": "Event-Typ prüfen", "type": "main", "index": 0 }]
|
|
]
|
|
},
|
|
"Event-Typ prüfen": {
|
|
"main": [
|
|
[{ "node": "Neue Reservierung", "type": "main", "index": 0 }],
|
|
[{ "node": "Geänderte Reservierung", "type": "main", "index": 0 }]
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|