Zum Inhalt springen

Mitarbeiter

Dieses Modul beschreibt die API-Endpunkte zur Verwaltung von Mitarbeitern in einem Account. Es umfasst das Erstellen, Bearbeiten, Abrufen, Auflisten und Löschen von Mitarbeitern. Mitarbeiter können auch Mitarbeiter, Nutzer oder User genannt werden.


AttributBeschreibungDetails
account_idID des zugehörigen AccountsAutomatisch gesetzt, nicht manuell änderbar.
avatarDateiname des ProfilbildesOptional. Ohne Pfad-Angabe, z. B. avatar.png.
discarded_atZeitpunkt der Deaktivierung (oder null)Kann nicht manuell gesetzt werden.
emailE-Mail-Adresse des MitarbeitersOptional, aber falls gesetzt: eindeutig innerhalb eines Accounts.
nameName des MitarbeitersFrei wählbar.
statusAktueller StatusKann nicht manuell gesetzt werden. Mögliche Werte: created (erstellt), invited (eingeladen), active (Einladung angenommen).

Folgende Beziehungen können mit dem Parameter include in den Request eingebunden werden:

BeziehungTypBeschreibung
accountbelongs_toDer Account, zu dem der Mitarbeiter gehört.
account_membershipshas_manyTriplets aus Mitarbeiter, Account und Rolle, also welche Rollen der Mitarbeiter im Account hat.
teamshas_manyDie Teams, in denen der Mitarbeiter Mitglied ist.
team_membershipshas_manyTriplets aus Mitarbeiter, Team und Rolle, also welche Rollen der Mitarbeiter in den Teams hat.

Können über den meta[permissions]-Parameter in den Request eingebunden werden. Sie geben an, welche Aktionen der aktuelle Benutzer auf den Mitarbeiter ausführen kann.

GruppeBeschreibung
actionsGibt an, ob der Benutzer den Mitarbeiter 'edit' (bearbeiten), 'delete' (löschen), 'invite.create' (einladen) oder 'invite.delete' (Einladung löschen) kann.

Können über den sort-Parameter in den Request eingebunden werden.

GruppeBeschreibung
aliveMitarbeiter mit dem Status active, created oder invited werden vor Mitarbeitern mit dem Status deactivated oder deleted einsortiert.

Mit diesem Endpunkt kannst du einen neuen Mitarbeiter zu deinem Account hinzufügen. Optional kannst du auch gleich eine E-Mail-Adresse mitgeben, über die der Mitarbeiter später eingeladen werden kann.


  • Der neue Mitarbeiter wird im System angelegt.
  • Es wird keine Einladung verschickt.
  • Der Status ist zunächst created. Ein Wechsel auf invited oder active erfolgt erst später.

POST /api/v1/users


Request

{
"data": {
"type": "user",
"attributes": {
"name": "Max Mustermann",
"email": "[email protected]"
}
}
}

Hinweise:

  • name ist erforderlich
  • email ist optional, aber sinnvoll, wenn eine Einladung vorgesehen ist

Response

{
"data": {
"id": "98815bd8-f3e6-41ec-8c4a-25a431ac6ce4",
"type": "user",
"attributes": {
...
}
}
}

Mit diesem Endpunkt kannst du einen bestehenden Mitarbeiter aktualisieren. Typischerweise werden Name oder Email-Adresse geändert. Benutzerdefinierte Felder die du in den Stammdaten des Mitarbeiters findest, werden über diesen Endpunkt nicht aktualisiert. Siehe dazu die Dokumentation zu Feldwerten.


  • Die angegebenen Felder des Mitarbeiters werden überschrieben.
  • Felder, die nicht angegeben sind, bleiben unverändert.
  • Eine Änderung der E-Mail-Adresse hat keinen Einfluss auf den Login-Status oder Einladungen.

PUT /api/v1/users/:user_id

NameBeschreibung
user_idDie ID des Mitarbeiters, der bearbeitet wird.

Die ID des Mitarbeiters wird in der URL übergeben.


Request

{
"data": {
"type": "user",
"attributes": {
"name": "Maria Musterfrau",
"email": "[email protected]"
}
}
}

Hinweise:

  • Wird die E-Mail-Adresse geändert, muss sie weiterhin im Account eindeutig sein.

Response

{
"data": {
"id": "0c55b234-91f4-465d-810e-7e87ad1136ff",
"type": "user",
"attributes": {
...
}
}
}

Mit diesem Endpunkt kannst du die Details eines einzelnen Mitarbeiters abrufen. Der Benutzer wird über seine eindeutige ID identifiziert. Zusätzlich kannst du verwandte Ressourcen wie Account oder Teams über den include-Parameter einbinden.


GET /api/v1/users/:user_id


NameBeschreibung
user_idDie ID des Mitarbeiters, der abgerufen wird.

Optional: Nutze include, um verknüpfte Ressourcen wie account, teams oder account_memberships direkt mitzuliefern.


{
"data": {
"id": "98815bd8-f3e6-41ec-8c4a-25a431ac6ce4",
"type": "user",
"attributes": {
...
}
}
}

Einzelner Mitarbeiter und zugehörigen Teams

GET /api/v1/users/:user_id?include=teams


Mit diesem Endpunkt kannst du eine Liste aller Mitarbeiter im aktuellen Account abrufen. Optional kannst du Suchfilter und Relationen verwenden, um gezielt nach bestimmten Benutzern zu suchen.

Die Ergebnisse sind paginiert. Standardmäßig werden 20 Einträge pro Seite zurückgegeben.


GET /api/v1/users


{
"data": [
{
"id": "98815bd8-f3e6-41ec-8c4a-25a431ac6ce4",
"type": "user",
"attributes": {
...
}
},
{
...
}
]
}

Alle Mitarbeiter, deren Name „test“ enthält

GET /api/v1/users?filter[name]=ct:test


Alle Mitarbeiter, die noch nicht eingeladen wurden

GET /api/v1/users?filter[status]=eq:created


Alle Mitarbeiter ohne E-Mail

GET /api/v1/users?filter[email_blank]=1


Alle Mitarbeiter mit ihren jeweiligen Teams

GET /api/v1/users?include=teams


Alle Mitarbeiter und den Aktionen, die der aktuelle Benutzer ausführen kann

GET /api/v1/users?meta[permissions]=actions


Alle Mitarbeiter, sortiert nach Status (aktive zuerst), dann nach Name (alphabetisch)

GET /api/v1/users?sort=alive,name


Mit diesem Endpunkt kannst du einen bestehenden Mitarbeiter aus dem System entfernen. Dabei handelt es sich um einen soft delete: Der Benutzer bleibt technisch erhalten, ist aber nicht mehr sichtbar oder nutzbar.


  • Der Mitarbeiter wird als gelöscht markiert.
  • discarded_at enthält einen Zeitstempel der Löschung.
  • Der Mitarbeiter kann sich nicht mehr eingeloggen.
  • Der Mitarbeiter kann nicht mehr eingeladen werden.
  • Der Mitarbeiter ist nicht mehr in der Mitarbeiterliste sichtbar.
  • Bestehende Referenzen (z. B. in Logs) bleiben erhalten.

DELETE /api/v1/users/:user_id


NameBeschreibung
user_idDie ID des Mitarbeiters, der gelöscht werden soll.

DELETE /api/v1/users/0c55b234-91f4-465d-810e-7e87ad1136ff

{
"data": {
"id": "0c55b234-91f4-465d-810e-7e87ad1136ff",
"type": "user",
"attributes": {
"name": "Maria Musterfrau",
"email": "[email protected]",
"status": "deleted",
"discarded_at": "2024-12-01T10:45:00Z"
}
}
}