Kontakte & Benutzer
In InLoox werden Benutzer, Kontakte, Abteilungen und Fähigkeiten über verschiedene Endpunkte verwaltet. Diese Seite beschreibt alle relevanten Entitäten und deren API-Zugriffsmöglichkeiten.
Für den Zugriff auf benutzerdefinierte Felder eines Kontakts verwenden Sie den DynamicContact-Endpunkt. Dieser liefert neben den Standardeigenschaften auch alle konfigurierten benutzerdefinierten Felder zurück.
UserInfo
Die UserInfo-Entität repräsentiert den aktuell authentifizierten Benutzer oder andere Benutzer im System. Über diese Endpunkte können Sie Profilinformationen abrufen, Benachrichtigungsfrequenzen festlegen und Zeitzonen konfigurieren.
Eigenschaften
| Property | Type | Description |
|---|---|---|
ContactId | Edm.Guid | Eindeutige ID des Kontakts. |
FirstName | Edm.String | Vorname des Benutzers. |
LastName | Edm.String | Nachname des Benutzers. |
DisplayName | Edm.String | Anzeigename des Benutzers. |
Email | Edm.String | E-Mail-Adresse des Benutzers. |
ImageId | Edm.String | ID des Profilbilds. |
NotifyFrequency | Edm.Int32 | Benachrichtigungsfrequenz (ganzzahliger Wert). |
TimeZoneInfo | Edm.String | Zeitzoneninformation des Benutzers. |
EmailConfirmed | Edm.Boolean | Gibt an, ob die E-Mail-Adresse bestätigt wurde. |
IsReader | Edm.Boolean | Gibt an, ob der Benutzer eine Nur-Lesen-Lizenz besitzt. |
UILanguage | Edm.String | Sprache der Benutzeroberfläche. |
Endpunkte
/odata/UserInfoAlle Benutzerinformationen abrufen
Gibt eine Sammlung aller Benutzer zurück, auf die Sie Zugriff haben. Unterstützt OData-Abfrageoptionen wie $filter, $select, $orderby, $top und $skip.
GET /odata/UserInfo?$select=ContactId,DisplayName,Email&$top=50
/odata/UserInfo/$countAnzahl der Benutzer abrufen
Gibt eine Ganzzahl zurück. Unterstützt $filter für bedingte Zählung.
/odata/UserInfo/Me()Informationen des aktuellen Benutzers abrufen
Gibt die Profilinformationen des aktuell authentifizierten Benutzers zurück. Dieser Endpunkt erfordert keine zusätzlichen Parameter.
GET /odata/UserInfo/Me()
Antwort:
{
"ContactId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"FirstName": "Max",
"LastName": "Mustermann",
"DisplayName": "Max Mustermann",
"Email": "max.mustermann@beispiel.de",
"IsReader": false,
"UILanguage": "de-DE"
}
/odata/UserInfo/SetNotificationFrequency(frequency={frequency})Benachrichtigungsfrequenz festlegen
| Parameter | Type | Required | Description |
|---|---|---|---|
frequency | Edm.Int32 | ✅ | Die gewünschte Benachrichtigungsfrequenz als ganzzahliger Wert. |
GET /odata/UserInfo/SetNotificationFrequency(frequency=2)
/odata/UserInfo/TelemetryEnabledForCurrentUser()Telemetriestatus des aktuellen Benutzers prüfen
Gibt zurück, ob Telemetriedaten für den aktuellen Benutzer aktiviert sind.
/odata/UserInfo({key})/SetTimeZoneInfoZeitzoneninformation festlegen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die ContactId des Benutzers. |
{
"TimeZoneInfo": "W. Europe Standard Time"
}
/odata/UserInfo/MatchTimeZoneInfo()Passende Zeitzoneninformation ermitteln
Ermittelt automatisch die passende Zeitzone basierend auf den aktuellen Einstellungen.
DynamicContact
Der DynamicContact-Endpunkt stellt eine erweiterte Ansicht auf Kontakte bereit, die neben den Standardeigenschaften auch benutzerdefinierte Felder, Fähigkeiten und Abteilungszugehörigkeiten enthält.
Eigenschaften
| Property | Type | Description |
|---|---|---|
ContactId | Edm.Guid | Eindeutige ID des Kontakts. |
Name | Edm.String | Vollständiger Name. |
EntryId | Edm.String | Externe Eintrags-ID (z. B. aus Exchange). |
Address | Edm.String | Vollständige Adresse. |
Sid | Edm.String | Security Identifier. |
Type | Edm.String | Kontakttyp. |
Title | Edm.String | Anrede oder akademischer Titel. |
FirstName | Edm.String | Vorname. |
LastName | Edm.String | Nachname. |
CompanyName | Edm.String | Firmenname. |
Street | Edm.String | Straße. |
Zip | Edm.String | Postleitzahl. |
Location | Edm.String | Ort. |
Country | Edm.String | Land. |
DisplayName | Edm.String | Anzeigename. |
Supervisor | Edm.String | Vorgesetzter. |
Position | Edm.String | Stellenbezeichnung. |
Website | Edm.String | Webseite. |
Initials | Edm.String | Initialen. |
Department | Edm.String | Abteilung. |
Assistenz | Edm.String | Assistenz. |
Phone | Edm.String | Telefonnummer (primär). |
Phone2 | Edm.String | Telefonnummer (sekundär). |
Fax | Edm.String | Faxnummer. |
Mobile | Edm.String | Mobilnummer. |
Pager | Edm.String | Pagernummer. |
Email | Edm.String | E-Mail-Adresse. |
Birthday | Edm.DateTimeOffset? | Geburtsdatum. |
AddressBookId | Edm.Guid? | ID des zugeordneten Adressbuchs. |
CreatedByContactId | Edm.Guid? | ID des erstellenden Kontakts. |
ChangedByContactId | Edm.Guid? | ID des zuletzt ändernden Kontakts. |
CreatedDate | Edm.DateTimeOffset? | Erstellungsdatum. |
ChangedDate | Edm.DateTimeOffset? | Änderungsdatum. |
OriginalSid | Edm.String | Ursprünglicher Security Identifier. |
DescriptionId | Edm.Guid? | ID der verknüpften Beschreibung. |
NotifyFrequency | Edm.Int32? | Benachrichtigungsfrequenz. |
State | Edm.String | Bundesland/Region. |
UILanguage | Edm.String | Sprache der Benutzeroberfläche. |
IsRecycled | Edm.Boolean | Ob der Kontakt gelöscht (recycelt) wurde. |
Skills | Edm.String | Kommagetrennte Liste der Fähigkeiten. |
Divisions | Edm.String | Kommagetrennte Liste der Abteilungen. |
IsIdentity | Edm.Boolean | Ob ein Anmeldekonto existiert. |
DescriptionText | Edm.String | Beschreibung als Klartext. |
DescriptionHTML | Edm.String | Beschreibung als HTML. |
AzureAdObjectId | Edm.String | Azure AD Objekt-ID. |
LicenseType | Edm.Int32 | Lizenztyp des Benutzers. |
TimeZoneInfo | Edm.String | Zeitzoneninformation. |
EmailConfirmed | Edm.Boolean | Ob die E-Mail-Adresse bestätigt ist. |
InvitationAccepted | Edm.Boolean | Ob die Einladung angenommen wurde. |
CalendarId | Edm.Guid | ID des zugewiesenen Kalenders. |
Capacity | Edm.Int32 | Kapazität des Kontakts (in Prozent). |
ProjectRequestCreate | Edm.Boolean | Berechtigung zum Erstellen von Projektanfragen. |
ProjectRequestRelease | Edm.Boolean | Berechtigung zum Freigeben von Projektanfragen. |
CustomProperties | object | Benutzerdefinierte Felder als dynamisches Objekt. |
Endpunkte
/odata/DynamicContactAlle Kontakte mit benutzerdefinierten Feldern abrufen
Gibt eine vollständige Liste aller Kontakte einschließlich benutzerdefinierter Felder zurück. Unterstützt alle Standard-OData-Abfrageoptionen.
GET /odata/DynamicContact?$select=ContactId,DisplayName,Email,Skills,Divisions&$filter=IsRecycled eq false&$top=100
/odata/DynamicContact/$countAnzahl der Kontakte abrufen
Gibt eine Ganzzahl zurück. Unterstützt $filter für bedingte Zählung.
GET /odata/DynamicContact/$count?$filter=IsIdentity eq true
Division
Die Division-Entität (Abteilung) ermöglicht die hierarchische Organisationsstruktur in InLoox. Abteilungen können verschachtelt werden und Kontakte zugewiesen bekommen.
Eigenschaften
| Property | Type | Description |
|---|---|---|
DivisionId | Edm.Guid | Eindeutige ID der Abteilung. |
ParentDivisionId | Edm.Guid? | ID der übergeordneten Abteilung (null für Stammebene). |
DisplayName | Edm.String | Anzeigename der Abteilung. |
PositionNumber | Edm.Int32 | Sortierposition. |
Description | Edm.String | Beschreibung der Abteilung. |
Endpunkte
CRUD-Operationen
/odata/DivisionAlle Abteilungen abrufen
Unterstützt OData-Abfrageoptionen wie $filter, $select, $orderby, $top und $skip.
GET /odata/Division?$orderby=DisplayName
/odata/Division({key})Eine Abteilung nach ID abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die DivisionId der abzurufenden Abteilung. |
/odata/DivisionEine neue Abteilung erstellen
{
"DisplayName": "Entwicklung",
"Description": "Software-Entwicklungsabteilung",
"PositionNumber": 1
}
Lassen Sie DivisionId weg, damit der Server automatisch eine neue ID generiert. Setzen Sie ParentDivisionId, um eine Unterabteilung zu erstellen.
/odata/Division({key})Eine bestehende Abteilung aktualisieren
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die DivisionId der zu aktualisierenden Abteilung. |
Senden Sie nur die Eigenschaften, die Sie ändern möchten:
{
"DisplayName": "Softwareentwicklung"
}
/odata/Division({key})Eine Abteilung löschen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die DivisionId der zu löschenden Abteilung. |
Gibt 204 No Content bei Erfolg zurück.
Das Löschen einer Abteilung entfernt auch alle Kontaktzuordnungen dieser Abteilung.
/odata/Division/$countAnzahl der Abteilungen abrufen
Gibt eine Ganzzahl zurück.
Kontaktverwaltung
/odata/Division/GetContacts()Alle Kontakte mit Abteilungszuordnung abrufen
Gibt alle DivisionContactRelation-Einträge zurück.
/odata/Division({key})/AddContactEinen Kontakt einer Abteilung zuweisen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die DivisionId. |
{
"ContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
/odata/Division({key})/RemoveContactEinen Kontakt aus einer Abteilung entfernen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die DivisionId. |
{
"ContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
DivisionContactRelation
Die DivisionContactRelation-Entität bildet die Zuordnung zwischen Abteilungen und Kontakten ab. Jede Zuordnung verknüpft genau einen Kontakt mit einer Abteilung.
Eigenschaften
| Property | Type | Description |
|---|---|---|
DivisionContactRelationId | Edm.Guid | Eindeutige ID der Zuordnung. |
DivisionId | Edm.Guid | ID der Abteilung. |
ContactId | Edm.Guid | ID des Kontakts. |
Endpunkte
/odata/DivisionContactRelationAlle Abteilungs-Kontakt-Zuordnungen abrufen
Unterstützt OData-Abfrageoptionen. Filtern Sie nach Abteilung oder Kontakt:
GET /odata/DivisionContactRelation?$filter=DivisionId eq 3fa85f64-5717-4562-b3fc-2c963f66afa6
/odata/DivisionContactRelation({key})Eine einzelne Zuordnung nach ID abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die DivisionContactRelationId. |
/odata/DivisionContactRelation/$countAnzahl der Zuordnungen abrufen
Gibt eine Ganzzahl zurück.
Skill
Die Skill-Entität verwaltet Fähigkeiten (Kompetenzen), die Kontakten zugewiesen werden können. Dies ermöglicht die kompetenzbasierte Ressourcenplanung.
Eigenschaften
| Property | Type | Description |
|---|---|---|
SkillId | Edm.Guid | Eindeutige ID der Fähigkeit. |
Name | Edm.String | Name der Fähigkeit. |
Description | Edm.String | Beschreibung der Fähigkeit. |
Endpunkte
CRUD-Operationen
/odata/SkillAlle Fähigkeiten abrufen
Unterstützt OData-Abfrageoptionen.
GET /odata/Skill?$orderby=Name
/odata/Skill({key})Eine Fähigkeit nach ID abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die SkillId. |
/odata/SkillEine neue Fähigkeit erstellen
{
"Name": "Projektmanagement",
"Description": "Erfahrung in der Leitung komplexer Projekte"
}
/odata/Skill({key})Eine bestehende Fähigkeit aktualisieren
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die SkillId der zu aktualisierenden Fähigkeit. |
{
"Description": "Zertifizierte Projektmanagement-Kompetenz (PMP/PRINCE2)"
}
/odata/Skill({key})Eine Fähigkeit löschen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die SkillId der zu löschenden Fähigkeit. |
Gibt 204 No Content bei Erfolg zurück.
/odata/Skill/$countAnzahl der Fähigkeiten abrufen
Gibt eine Ganzzahl zurück.
Kontaktzuordnungen
/odata/Skill/GetContacts()Alle Kontakte mit Fähigkeitszuordnungen abrufen
Gibt alle Kontakt-Fähigkeits-Zuordnungen zurück.
/odata/Skill({key})/GetSkillContacts()Kontakte einer bestimmten Fähigkeit abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die SkillId. |
/odata/Skill({key})/AddContactEinen Kontakt einer Fähigkeit zuweisen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die SkillId. |
{
"ContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
/odata/Skill({key})/RemoveContactEinen Kontakt von einer Fähigkeit entfernen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die SkillId. |
{
"ContactId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
OData-Abfragebeispiele
Aktuellen Benutzer abrufen
Ruft das Profil des authentifizierten Benutzers über die Me()-Funktion ab:
curl -X GET "https://{tenant}.inloox.app/odata/UserInfo/Me()" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
Antwort:
{
"@odata.context": "https://{tenant}.inloox.app/odata/$metadata#UserInfo/$entity",
"ContactId": "c3a1f2d4-5e6b-7c8d-9a0b-1c2d3e4f5a6b",
"FirstName": "Jana",
"LastName": "Muster",
"DisplayName": "Jana Muster",
"Email": "jana.muster@example.com",
"ImageId": null,
"NotifyFrequency": 1,
"TimeZoneInfo": "Europe/Berlin",
"EmailConfirmed": true,
"IsReader": false,
"UILanguage": "de"
}
Kontakte mit Filter abrufen
DynamicContact mit $select und $filter abfragen, um spezifische Felder für Kontakte abzurufen, die einer Bedingung entsprechen:
curl -X GET "https://{tenant}.inloox.app/odata/DynamicContact?\$select=FirstName,LastName,Email&\$filter=LastName eq 'Muster'" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"
Antwort:
{
"@odata.context": "https://{tenant}.inloox.app/odata/$metadata#DynamicContact",
"value": [
{
"FirstName": "Jana",
"LastName": "Muster",
"Email": "jana.muster@example.com"
},
{
"FirstName": "Jan",
"LastName": "Muster",
"Email": "jan.muster@example.com"
}
]
}
Verwenden Sie $select, um die Antwortgröße zu reduzieren – insbesondere bei DynamicContact, wo benutzerdefinierte Felder die Antwort erheblich vergrößern können.