For AI agents: the complete documentation index is at https://api-doc.talent360.io/llms.txt. Every page is also available as Markdown by appending index.md to its URL or by sending Accept: text/markdown.
API Referenz

4 endpoints

Ansprechpartner einer Firma lesen, anlegen und ändern.

Beim Lesen der Firma sind die Kontakte bereits enthalten. Die Einzelabrufe hier brauchen Sie vor allem für gezielte Nachladungen, etwa nachdem ein Webhook einen neu hinzugefügten Ansprechpartner gemeldet hat.

Kontakt lesen

GET /customers/contacts/{contactId}

Liest einen Ansprechpartner anhand seiner Id. Die Firma muss nicht mit angegeben werden.

Die Antwort enthält alle Stamm- und Kontaktdaten des Ansprechpartners, seine Zuständigkeit und die Ids der zugeordneten Betriebsstätten, dazu Id und Name der Firma.

Zum Ändern eines Ansprechpartners dient PUT /customers/{customerId}/contacts/{contactId}, zum Anlegen POST /customers/{customerId}/contacts.

Neu in V 3.4.0:

  • linkedInUrl und xingUrl werden vollständig mit Host geliefert (https://www.linkedin.com/…, https://www.xing.com/…), ohne Wert null. Dasselbe Format gilt jetzt auch in contacts[] der Firmen- und Betriebsstättendetails.
  • Eine unbekannte oder gelöschte Id liefert 404 mit ErrorResponse. Bisher antwortete der Endpunkt in diesem Fall mit 204 ohne Inhalt.

Parameters

Name In Type Required Description
contactId path integer yes Identifikation des Ansprechpartners

Responses

200 — OK — der Ansprechpartner mit allen Stamm- und Kontaktdaten sowie der zugehörigen Firma.

Property Type Required Description
customerId integer (int32) no Identifikation des Kunden, zu dem der Ansprechpartner gehört
customerName string null no
id integer (int32) no Eindeutige Identifikation des Ansprechpartners
salutationId Salutation no Kennung der Anrede
salutation string null no
firstName string null no
lastName string null no
fullName string null no
position string null no
department string null no
email string null no
phoneNumber string null no
mobilePhoneNumber string null no
isDecider boolean no Gibt an, ob der Ansprechpartner Entscheider ist
isPhoneAdvertisingAllowed boolean no Gibt an, ob telefonische Werbung erlaubt ist
isEmailAdvertisingAllowed boolean no Gibt an, ob Werbung per E-Mail erlaubt ist
isContactBanned boolean no Gibt an, ob eine Kontaktsperre besteht
remark string null no
isSafetyOfficer boolean no Gibt an, ob der Ansprechpartner Sicherheitsbeauftragter ist
isPrivacyOfficer boolean no Gibt an, ob der Ansprechpartner Datenschutzbeauftragter ist
linkedInUrl string null no
xingUrl string null no
importExternalId string null no
phoneNumberForCommunication string null no
hasWhatsApp boolean no Gibt an, ob WhatsApp verfügbar ist
isWhatsAppConsentGranted boolean no Gibt an, ob eine Einwilligung zur Nutzung von WhatsApp vorliegt
importedAtUtc string (date-time) null no
responsibility ResponsibilityReadDto no Zuständigkeit des Ansprechpartners
assignedOfficeIds integer (int32)[] no Ids der zugeordneten Betriebsstätten

404 — Ansprechpartner nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Kontakt anlegen

POST /customers/{customerId}/contacts

Mit diesem Endpunkt kann man einen Kontakt anlegen.

Um diesen neuen Kontakt direkt mit Betriebsstätten des Kunden zu verknüpfen können entsprechende Id's per assignedOfficeIds übergeben werden.

Neu in V 3.4.0:

  • linkedInUrl und xingUrl werden normalisiert. Akzeptiert wird die vollständige URL, ein Host ohne Schema (www.linkedin.com/in/…) oder nur der Profilpfad (in/…, profile/…). Gespeichert wird immer der Pfad, gelesen wird die vollständige URL. Ein Host, der nicht auf linkedin.com bzw. xing.com endet, liefert 400 mit errorType InvalidUrl.

Parameters

Name In Type Required Description
customerId path integer yes Identifikation des Kunden

Request body

Content type: application/json

Property Type Required Description
salutationId integer (int32) no Identifikation der Anrede
firstName string null no
lastName string null no
position string null no
department string null no
email string null no
phoneNumber string null no
mobilePhoneNumber string null no
isDecider boolean null no
isPhoneAdvertisingAllowed boolean null no
isEmailAdvertisingAllowed boolean null no
isContactBanned boolean null no
remark string null no
isSafetyOfficer boolean null no
isPrivacyOfficer boolean null no
linkedInUrl string null no
xingUrl string null no
assignedOfficeIds integer[] no Ids der zugeordneten Betriebsstätten
phoneNumberForCommunication string null no
hasWhatsApp boolean null no
isWhatsAppConsentGranted boolean null no
importExternalId string null no
createdAtUtc string (date-time) null no
responsibility ResponsibilityCreateDto no Zuständigkeit des Ansprechpartners
image string null no

Responses

200 — OK

Property Type Required Description
id integer (int32) no Eindeutige Identifikation des erzeugten Datensatzes

400 — Ungültige Anfrage oder Validierungsfehler

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Kontakt ändern

PUT /customers/{customerId}/contacts/{contactId}

Ändert die Daten eines Ansprechpartners. Es werden ausschließlich die im Request-Body übermittelten Felder geändert; nicht übermittelte Felder bleiben unverändert.

Betriebsstätten-Zuordnung über assignedOfficeIds. Das Feld ersetzt die Zuordnung vollständig: Um einen Kontakt einer weiteren Betriebsstätte zuzuordnen, müssen alle gewünschten Betriebsstätten-Ids gemeinsam übergeben werden. Ein weggelassenes Feld lässt die Zuordnungen unverändert, eine leere Liste ([]) entfernt alle Zuordnungen.

Neu in V 3.4.0:

  • assignedOfficeIds: null wird ignoriert und wirkt wie ein weggelassenes Feld: Die Zuordnungen bleiben, die Antwort ist 204. Bisher führte null zu einem 500. Wer alle Zuordnungen entfernen will, schickt ausdrücklich [].
  • responsibility (userId, officeId) wird ausgewertet und geändert. Bisher wurde das Objekt stillschweigend verworfen.
  • createdAtUtc wird auch beim Ändern übernommen, gedacht für Importe, die das Erstelldatum des Quellsystems nachtragen. Der Änderungszeitpunkt bleibt der Zeitpunkt des Aufrufs.
  • linkedInUrl und xingUrl akzeptieren die vollständige URL, einen Host ohne Schema (www.xing.com/profile/…) oder nur den Profilpfad (in/…, profile/…). Gespeichert wird immer der Pfad, gelesen wird die vollständige URL. Ein Host, der nicht auf linkedin.com bzw. xing.com endet, liefert 400 mit errorType InvalidUrl. Bisher wurde ein bloßer Pfad mit 400 abgelehnt.

Parameters

Name In Type Required Description
contactId path integer yes Identifikation des Ansprechpartners
customerId path integer yes Identifikation des Kunden

Request body

Required.

Zu ändernde Kontaktdaten. Nur die übermittelten Felder werden geändert. Für die Zuordnung zu Betriebsstätten müssen alle gewünschten Ids per assignedOfficeIds übergeben werden.

Content type: application/json

Property Type Required Description
salutationId integer (int32) no Identifikation der Anrede
firstName string null no
lastName string null no
position string null no
department string null no
email string null no
phoneNumber string null no
mobilePhoneNumber string null no
isDecider boolean null no
isPhoneAdvertisingAllowed boolean null no
isEmailAdvertisingAllowed boolean null no
isContactBanned boolean null no
remark string null no
isSafetyOfficer boolean null no
isPrivacyOfficer boolean null no
linkedInUrl string null no
xingUrl string null no
assignedOfficeIds integer[] no Ids der zugeordneten Betriebsstätten. Die gesendete Liste ersetzt die Zuordnung vollständig; eine leere Liste ([]) hebt alle Zuordnungen auf. Neu in V 3.4.0: Ein JSON-null wird ignoriert und wirkt wie ein weggelassenes Feld; die Zuordnungen bleiben unverändert, die Antwort ist 204 (bisher 500). Wer alle Zuordnungen entfernen will, schickt ausdrücklich [].
phoneNumberForCommunication string null no
hasWhatsApp boolean null no
isWhatsAppConsentGranted boolean null no
importExternalId string null no
createdAtUtc string (date-time) null no
responsibility ResponsibilityCreateDto no Zuständigkeit des Ansprechpartners. Neu in V 3.4.0: Wird beim Ändern ausgewertet; bisher still verworfen.
image string null no

Responses

204 — Ansprechpartner geändert — die API antwortet ohne Inhalt.

400 — Ungültige Anfrage oder Validierungsfehler

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma oder Ansprechpartner nicht gefunden

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

Kontakt löschen

DELETE /customers/{customerId}/contacts/{contactId}

Neu in V 3.4.0: Löscht einen Ansprechpartner der Firma. Bisher ließ sich ein Kontakt nur über PUT … assignedOfficeIds: [] von seinen Betriebsstätten lösen, aber nicht entfernen.

Gelöscht wird als Soft-Delete, genau wie in talent.Flow: Der Ansprechpartner wird deaktiviert und erscheint nicht mehr in GET /customers/{id}, GET /customers/offices/{officeId} und GET /customers/contacts/{contactId}. Bei den Berufen der Einsatzorte, die diesen Ansprechpartner tragen, wird die Zuordnung gelöst; ein hinterlegtes Bild wird entfernt. Anfragen, die auf den Ansprechpartner verweisen, bleiben unverändert. In der Firmenhistorie entsteht eine Aktivität „Kontakt … gelöscht".

Ein Ansprechpartner, der nicht zu dieser Firma gehört oder bereits gelöscht ist, ergibt 404.

Parameters

Name In Type Required Description
contactId path integer yes Identifikation des Ansprechpartners
customerId path integer yes Identifikation des Kunden

Responses

204 — Ansprechpartner gelöscht — die API antwortet ohne Inhalt.

400 — Ungültige Anfrage oder Validierungsfehler

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler

404 — Firma oder Ansprechpartner nicht gefunden — auch dann, wenn der Ansprechpartner nicht zu dieser Firma gehört oder bereits gelöscht ist.

Property Type Required Description
messageGuid string (uuid) null no
message string null no
validationErrors ValidationError[] no Liste der Validierungsfehler