Firmenkontakte
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:
linkedInUrlundxingUrlwerden vollständig mit Host geliefert (https://www.linkedin.com/…,https://www.xing.com/…), ohne Wertnull. Dasselbe Format gilt jetzt auch incontacts[]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:
linkedInUrlundxingUrlwerden 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 auflinkedin.combzw.xing.comendet, liefert 400 mit errorTypeInvalidUrl.
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: nullwird ignoriert und wirkt wie ein weggelassenes Feld: Die Zuordnungen bleiben, die Antwort ist 204. Bisher führtenullzu einem 500. Wer alle Zuordnungen entfernen will, schickt ausdrücklich[].responsibility(userId,officeId) wird ausgewertet und geändert. Bisher wurde das Objekt stillschweigend verworfen.createdAtUtcwird auch beim Ändern übernommen, gedacht für Importe, die das Erstelldatum des Quellsystems nachtragen. Der Änderungszeitpunkt bleibt der Zeitpunkt des Aufrufs.linkedInUrlundxingUrlakzeptieren 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 auflinkedin.combzw.xing.comendet, liefert 400 mit errorTypeInvalidUrl. 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 |
