projekt-anlegen: Position der Ansprechperson gehört nach title, nicht nach description

Korrektur der vorherigen Annahme: title ist beim Kontakt notStorable und bildet die Rolle
in der Verknüpfung Kontakt <-> Firma ab (AccountContact.role). Es hat keine eigene Zeile im
Detail-Layout, wird aber hinter dem Firmennamen angezeigt. description bleibt für Notizen frei.
Detail-Layout des Kontakts zur Orientierung dokumentiert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-03 21:05:24 +02:00
parent b73fa57715
commit 64898e3d1c

View File

@@ -188,16 +188,18 @@ curl -s -G "$BASE/Contact" -H "X-Api-Key: $KEY" \
Bestehenden Kontakt → dessen `id` als CONTACT_ID merken. Sonst neu anlegen — Payload nach `/tmp/contact.json`; die **Verknüpfung zur Firma über `accountId` ist beim Neu-Anlegen zwingend**:
```json
{"firstName": "<VORNAME>", "lastName": "<NACHNAME>", "accountId": "<ACCOUNT_ID>", "emailAddress": "<E-MAIL>", "phoneNumber": "<TELEFON>", "description": "<POSITION>"}
{"firstName": "<VORNAME>", "lastName": "<NACHNAME>", "accountId": "<ACCOUNT_ID>", "emailAddress": "<E-MAIL>", "phoneNumber": "<TELEFON>", "title": "<POSITION>"}
```
**Alle in Schritt 1 gefundenen Kontaktdaten immer mitschreiben** — ein Kontakt ohne E-Mail und Telefon ist für den späteren Bewerbungsversand wertlos:
- `emailAddress` — E-Mail-Adresse der Ansprechperson.
- `phoneNumber` — Telefonnummer, in der Schreibweise der Signatur.
- `description`**Position/Jobtitel** der Ansprechperson (z. B. „Principal Candidate Consultant"). Die Position gehört in das Feld **Beschreibung**, **nicht** in das Feld `title`: `title` ist im EspoCRM-Layout des Nutzers nicht eingeblendet und wäre dort unsichtbar.
- `title`**Position/Jobtitel** der Ansprechperson (z. B. „Principal Candidate Consultant"). `title` ist beim Kontakt kein gewöhnliches Feld, sondern `notStorable` und bildet die **Rolle in der Verknüpfung Kontakt ↔ Firma** ab (`AccountContact.role`). Es hat deshalb keine eigene Zeile im Detail-Layout, wird aber **hinter dem Firmennamen angezeigt**. Das Setzen über `title` funktioniert und setzt `accountsColumns[<ACCOUNT_ID>].role`. Voraussetzung ist, dass `accountId` gesetzt ist. **Die Position nicht zusätzlich nach `description` schreiben** (Nutzer-Entscheidung 2026-08-03: sonst steht sie doppelt; `description` bleibt für echte Notizen frei).
Felder, für die es keine Angabe gibt, einfach weglassen. Nichts erfinden.
Das Detail-Layout des Kontakts umfasst: Name und Firmen (mit Rolle), E-Mail und Telefon, Adresse, Beschreibung. Was dort nicht vorkommt, sieht der Nutzer im CRM nicht.
```bash
curl -s -i -X POST "$BASE/Contact" -H "X-Api-Key: $KEY" -H 'Content-Type: application/json' --data @/tmp/contact.json
```
@@ -245,4 +247,4 @@ Nach dem POST den Datensatz gegenlesen:
curl -s -G "$BASE/Opportunity/<id>" -H "X-Api-Key: $KEY"
```
Prüfen: stimmen Name und Projektlink, hat die Beschreibung die Match-Zeile und alle Tabellenzeilen, sind ✅/❌/❔ intakt; sind die Verknüpfungen korrekt — Agentur: `cAccount1Name` gesetzt und `accountName` leer; Direktauftrag: `accountName` gesetzt; `contactsIds`/`contactId` enthält den Kontakt; am Kontakt selbst sind `emailAddress`, `phoneNumber` und `description` (Position) gesetzt, soweit die Ausschreibung sie hergab; `teamsNames` enthält das richtige Team (`DesTEngS` / `Arbeitnehmer` / `ANÜ`). Dann im Chat melden: gewählter Name (inkl. evtl. Duplikat-Suffix), beide Match-Zahlen, Firma und Kontakt (jeweils neu/bestehend), zugewiesenes Team und der Direktlink `https://crm.creature-go.com/#Opportunity/view/<id>`.
Prüfen: stimmen Name und Projektlink, hat die Beschreibung die Match-Zeile und alle Tabellenzeilen, sind ✅/❌/❔ intakt; sind die Verknüpfungen korrekt — Agentur: `cAccount1Name` gesetzt und `accountName` leer; Direktauftrag: `accountName` gesetzt; `contactsIds`/`contactId` enthält den Kontakt; am Kontakt selbst sind `emailAddress`, `phoneNumber` und `title` (Position, erscheint hinter dem Firmennamen) gesetzt, soweit die Ausschreibung sie hergab; `teamsNames` enthält das richtige Team (`DesTEngS` / `Arbeitnehmer` / `ANÜ`). Dann im Chat melden: gewählter Name (inkl. evtl. Duplikat-Suffix), beide Match-Zahlen, Firma und Kontakt (jeweils neu/bestehend), zugewiesenes Team und der Direktlink `https://crm.creature-go.com/#Opportunity/view/<id>`.