216 lines
5.5 KiB
Markdown
216 lines
5.5 KiB
Markdown
# Benutzerdefinierte Attribute (Custom Attributes)
|
|
|
|
Diese Dokumentation erklärt, wie Sie benutzerdefinierte Attribute in LibreBooking über die n8n Nodes verwenden können.
|
|
|
|
## Überblick
|
|
|
|
LibreBooking unterstützt benutzerdefinierte Attribute für:
|
|
- **Reservierungen** (Kategorie-ID: 1)
|
|
- **Benutzer** (Kategorie-ID: 2)
|
|
- **Ressourcen** (Kategorie-ID: 4)
|
|
- **Ressourcen-Typen** (Kategorie-ID: 5)
|
|
|
|
## Attribut-Typen
|
|
|
|
| Typ | Beschreibung | Wert |
|
|
|-----|--------------|------|
|
|
| Einzeilig | Einfaches Textfeld | 1 |
|
|
| Mehrzeilig | Textbereich | 2 |
|
|
| Auswahlliste | Dropdown-Menü | 3 |
|
|
| Checkbox | Ja/Nein Feld | 4 |
|
|
| Datum/Zeit | Datums-/Zeitauswahl | 5 |
|
|
|
|
## Attribute abrufen
|
|
|
|
### Alle Attribute einer Kategorie abrufen
|
|
|
|
1. Wählen Sie **Ressource**: `Attribut`
|
|
2. Wählen Sie **Operation**: `Nach Kategorie Abrufen`
|
|
3. Wählen Sie **Kategorie-ID**: z.B. `Reservierung`
|
|
|
|
Die Antwort enthält alle Attribute mit ihren IDs und Eigenschaften.
|
|
|
|
### Einzelnes Attribut abrufen
|
|
|
|
1. Wählen Sie **Ressource**: `Attribut`
|
|
2. Wählen Sie **Operation**: `Abrufen`
|
|
3. Geben Sie die **Attribut-ID** ein
|
|
|
|
## Attribute bei Reservierungen setzen
|
|
|
|
### Bei Erstellen einer Reservierung
|
|
|
|
1. Wählen Sie **Ressource**: `Reservierung`
|
|
2. Wählen Sie **Operation**: `Erstellen`
|
|
3. Füllen Sie die Pflichtfelder aus
|
|
4. Unter **Benutzerdefinierte Attribute**:
|
|
- Klicken Sie auf "Attribut hinzufügen"
|
|
- Geben Sie die **Attribut-ID** ein (z.B. `1`)
|
|
- Geben Sie den **Wert** ein (z.B. `Meetingraum-Konfiguration`)
|
|
|
|
### Bei Aktualisieren einer Reservierung
|
|
|
|
Gleiche Vorgehensweise wie beim Erstellen.
|
|
|
|
### Beispiel JSON für API-Request
|
|
|
|
```json
|
|
{
|
|
"resourceId": 1,
|
|
"startDateTime": "2024-01-15T10:00:00+01:00",
|
|
"endDateTime": "2024-01-15T11:00:00+01:00",
|
|
"title": "Team Meeting",
|
|
"termsAccepted": true,
|
|
"customAttributes": [
|
|
{
|
|
"attributeId": 1,
|
|
"attributeValue": "Standard-Setup"
|
|
},
|
|
{
|
|
"attributeId": 2,
|
|
"attributeValue": "10"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Attribute bei Ressourcen setzen
|
|
|
|
### Bei Erstellen einer Ressource
|
|
|
|
1. Wählen Sie **Ressource**: `Ressource`
|
|
2. Wählen Sie **Operation**: `Erstellen`
|
|
3. Füllen Sie die Pflichtfelder aus (Name, Zeitplan-ID)
|
|
4. Unter **Benutzerdefinierte Attribute**:
|
|
- Klicken Sie auf "Attribut hinzufügen"
|
|
- Geben Sie die **Attribut-ID** und den **Wert** ein
|
|
|
|
### Beispiel: Raum mit Ausstattung
|
|
|
|
```json
|
|
{
|
|
"name": "Konferenzraum A",
|
|
"scheduleId": 1,
|
|
"customAttributes": [
|
|
{
|
|
"attributeId": 10,
|
|
"attributeValue": "Beamer, Whiteboard"
|
|
},
|
|
{
|
|
"attributeId": 11,
|
|
"attributeValue": "20"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Attribute bei Benutzern setzen
|
|
|
|
### Bei Erstellen eines Benutzers
|
|
|
|
1. Wählen Sie **Ressource**: `Benutzer`
|
|
2. Wählen Sie **Operation**: `Erstellen`
|
|
3. Füllen Sie die Pflichtfelder aus
|
|
4. Unter **Benutzerdefinierte Attribute**:
|
|
- Klicken Sie auf "Attribut hinzufügen"
|
|
- Geben Sie die **Attribut-ID** und den **Wert** ein
|
|
|
|
## Neue Attribute erstellen (Admin)
|
|
|
|
1. Wählen Sie **Ressource**: `Attribut`
|
|
2. Wählen Sie **Operation**: `Erstellen`
|
|
3. Füllen Sie aus:
|
|
- **Kategorie-ID**: Ziel-Kategorie (1, 2, 4 oder 5)
|
|
- **Attribut-Label**: Anzeigename
|
|
- **Attribut-Typ**: Feldtyp
|
|
4. Optional unter **Attribut-Optionen**:
|
|
- **Erforderlich**: Pflichtfeld?
|
|
- **Nur Admin**: Nur für Admins sichtbar?
|
|
- **Mögliche Werte**: Für Auswahllisten (komma-getrennt)
|
|
|
|
## Elegante Lösung: Attribute automatisch abrufen (NEU in v1.2.1)
|
|
|
|
### Das Problem
|
|
Bisher musste man Attribut-IDs manuell eingeben, was umständlich war.
|
|
|
|
### Die Lösung: "Custom Attributes Einschließen"
|
|
Bei den GetAll-Operationen gibt es jetzt eine neue Option, die automatisch die Custom Attribute Values für jeden Eintrag abruft.
|
|
|
|
### Verwendung für Reservierungen
|
|
|
|
1. Wählen Sie **Ressource**: `Reservierung`
|
|
2. Wählen Sie **Operation**: `Alle Abrufen`
|
|
3. Unter **Filter** aktivieren Sie **Custom Attributes Einschließen** ✅
|
|
|
|
**Ergebnis:**
|
|
```json
|
|
{
|
|
"reservations": [
|
|
{
|
|
"referenceNumber": "abc123",
|
|
"title": "Meeting",
|
|
"startDate": "2026-02-07T10:00:00",
|
|
"customAttributes": [
|
|
{
|
|
"id": 1,
|
|
"label": "Mietername",
|
|
"value": "Max Mustermann"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"label": "Adresse",
|
|
"value": "Hauptstraße 1, 12345 Stadt"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Verwendung für Ressourcen
|
|
|
|
1. Wählen Sie **Ressource**: `Ressource`
|
|
2. Wählen Sie **Operation**: `Alle Abrufen`
|
|
3. Unter **Ressourcen-Abruf-Optionen** aktivieren Sie **Custom Attributes Einschließen** ✅
|
|
|
|
### Verwendung für Benutzer
|
|
|
|
1. Wählen Sie **Ressource**: `Benutzer`
|
|
2. Wählen Sie **Operation**: `Alle Abrufen`
|
|
3. Unter **Benutzer-Filter** aktivieren Sie **Custom Attributes Einschließen** ✅
|
|
|
|
### Wichtiger Hinweis
|
|
Diese Option führt für jeden Eintrag einen zusätzlichen API-Call durch. Bei vielen Einträgen kann dies länger dauern.
|
|
|
|
---
|
|
|
|
## Tipps
|
|
|
|
### Attribut-IDs herausfinden
|
|
|
|
1. Nutzen Sie die Operation "Nach Kategorie Abrufen"
|
|
2. Notieren Sie sich die `id` der benötigten Attribute
|
|
|
|
### Checkbox-Attribute
|
|
|
|
Für Checkbox-Attribute verwenden Sie:
|
|
- `"1"` oder `"true"` für aktiviert
|
|
- `"0"` oder `"false"` für deaktiviert
|
|
|
|
### Auswahllisten
|
|
|
|
Der Wert muss exakt einem der möglichen Werte entsprechen.
|
|
|
|
## Fehlerbehebung
|
|
|
|
### Attribut wird nicht gespeichert
|
|
|
|
- Prüfen Sie, ob die Attribut-ID korrekt ist
|
|
- Prüfen Sie, ob das Attribut für diese Kategorie gilt
|
|
- Prüfen Sie, ob der Wert dem Attribut-Typ entspricht
|
|
|
|
### Zugriff verweigert
|
|
|
|
- Einige Attribute sind nur für Admins verfügbar
|
|
- Prüfen Sie die Berechtigungen in LibreBooking
|