# API-Referenz Kontakte (App-Kennung crm) > 199 App-Tools. Aufruf immer mit `POST /api/app-tools`, Header `X-API-KEY`, Body `{"name": "", "input": {…}}`. Welche Tools ein Schlüssel nutzen darf, zeigt `GET /api/app-tools` der Instanz. Quelle: https://support.unitedsynergy.com/api/referenz/crm/ ## Datenobjekte Die Standard-Aktionen je Datenobjekt: list (suchen und blättern), get (einen Datensatz lesen), create, update und delete. Nicht jedes Objekt bietet alle fünf an. ### Anrufe (CRM): `crm.anruf.*` #### crm.anruf.list Liste/Suche: Anrufe (CRM) - Art: Lesen - Rechte: Anruf lesen - Datenklassen: C (vertraulich) - Eingabe: - `search` (string): Freitextsuche - `filters` (object): Feld=Wert-Filter - `limit` (integer) - `offset` (integer) - `orderBy` (string) - Beispiel: `{"name":"crm.anruf.list","input":{}}` ### Kontakte (CRM): `crm.kontakt.*` #### crm.kontakt.list Liste/Suche: Kontakte (CRM) - Art: Lesen - Rechte: Konto lesen - Datenklassen: C (vertraulich) - Eingabe: - `search` (string): Freitextsuche - `filters` (object): Feld=Wert-Filter - `limit` (integer) - `offset` (integer) - `orderBy` (string) - Beispiel: `{"name":"crm.kontakt.list","input":{}}` #### crm.kontakt.get Detail: Kontakte (CRM) - Art: Lesen - Rechte: Konto lesen - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.kontakt.get","input":{"id":""}}` #### crm.kontakt.create Anlegen: Kontakte (CRM) - Art: Anlegen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Konto anlegen - Datenklassen: C (vertraulich) - Eingabe: - `kontoNummer` (string): Verweis auf crm.konto.nummer (optional; wenn angegeben, muss das Konto existieren). Leer = eigenständiger Kontakt ohne Firma - `email` (string): Dedup-Schlüssel (wenn vorhanden). Über update korrigierbar - `anrede` (string) - `vorname` (string) - `nachname` (string) - `funktion` (string) - `abteilung` (string) - `telefon` (string) - `mobil` (string) - `kontaktart` (string) - `bemerkung` (string) - `idQuelle` (string): Original-ID aus Altsystem (Datensatzkennung) → Person-Kern intrexxSourceId; präziser Dedup-/Auflöse-Schlüssel - Beispiel: `{"name":"crm.kontakt.create","input":{}}` #### crm.kontakt.update Ändern: Kontakte (CRM) - Art: Ändern, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Kontakt ändern - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht): ID des Datensatzes - `kontoNummer` (string): Verweis auf crm.konto.nummer (optional; wenn angegeben, muss das Konto existieren). Leer = eigenständiger Kontakt ohne Firma - `email` (string): Dedup-Schlüssel (wenn vorhanden). Über update korrigierbar - `anrede` (string) - `vorname` (string) - `nachname` (string) - `funktion` (string) - `abteilung` (string) - `telefon` (string) - `mobil` (string) - `kontaktart` (string) - `bemerkung` (string) - Beispiel: `{"name":"crm.kontakt.update","input":{"id":""}}` #### crm.kontakt.delete Löschen: Kontakte (CRM) - Art: Löschen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Kontakt löschen - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.kontakt.delete","input":{"id":""}}` ### Konten (CRM): `crm.konto.*` #### crm.konto.list Liste/Suche: Konten (CRM) - Art: Lesen - Rechte: Konto lesen - Datenklassen: C (vertraulich) - Eingabe: - `search` (string): Freitextsuche - `filters` (object): Feld=Wert-Filter - `limit` (integer) - `offset` (integer) - `orderBy` (string) - Beispiel: `{"name":"crm.konto.list","input":{}}` #### crm.konto.get Detail: Konten (CRM) - Art: Lesen - Rechte: Konto lesen - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.konto.get","input":{"id":""}}` #### crm.konto.create Anlegen: Konten (CRM) - Art: Anlegen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Konto anlegen - Datenklassen: C (vertraulich) - Eingabe: - `nummer` (string): Natürlicher Schlüssel für Dedup - `name` (string, Pflicht) - `gbzTyp` (string): Werte: `firma`, `person` - `art` (string) - `email` (string) - `telefon` (string) - `mobil` (string) - `url` (string) - `strasse` (string) - `plz` (string) - `ort` (string) - `land` (string) - `bundesland` (string): Code aus core.bundesland, z.B. he. Ein Klarname wie Hessen wird beim Schreiben auf den Code übersetzt. Filterbar über crm_konto_list filters.bundesland (Code, Klarname oder Komma-Liste) - `branche` (string) - `bemerkung` (string) - `lifecycleStage` (string): Tenantbezogener Code aus crm.lifecycle_stage; Capture-Import setzt lead - `leadStatus` (string): Capture-Import setzt zu_pruefen (Nachbearbeiten) - Beispiel: `{"name":"crm.konto.create","input":{"name":""}}` #### crm.konto.update Ändern: Konten (CRM) - Art: Ändern, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Konto ändern - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht): ID des Datensatzes - `name` (string) - `gbzTyp` (string): Werte: `firma`, `person` - `art` (string) - `email` (string) - `telefon` (string) - `mobil` (string) - `url` (string) - `strasse` (string) - `plz` (string) - `ort` (string) - `land` (string) - `bundesland` (string): Code aus core.bundesland, z.B. he. Ein Klarname wie Hessen wird beim Schreiben auf den Code übersetzt. Filterbar über crm_konto_list filters.bundesland (Code, Klarname oder Komma-Liste) - `branche` (string) - `bemerkung` (string) - `lifecycleStage` (string): Tenantbezogener Code aus crm.lifecycle_stage; Capture-Import setzt lead - `leadStatus` (string): Capture-Import setzt zu_pruefen (Nachbearbeiten) - Beispiel: `{"name":"crm.konto.update","input":{"id":""}}` ### Kundenobjekte: `crm.objekt.*` #### crm.objekt.list Liste/Suche: Kundenobjekte - Art: Lesen - Rechte: Objekt lesen - Datenklassen: B (intern) - Eingabe: - `search` (string): Freitextsuche - `filters` (object): Feld=Wert-Filter - `limit` (integer) - `offset` (integer) - `orderBy` (string) - Beispiel: `{"name":"crm.objekt.list","input":{}}` #### crm.objekt.get Detail: Kundenobjekte - Art: Lesen - Rechte: Objekt lesen - Datenklassen: B (intern) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.objekt.get","input":{"id":""}}` #### crm.objekt.create Anlegen: Kundenobjekte - Art: Anlegen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Objekt anlegen - Datenklassen: B (intern) - Eingabe: - `kontoId` (string, Pflicht) - `nummer` (string) - `name` (string, Pflicht) - `art` (string) - `strasse` (string) - `hausnummer` (string) - `plz` (string) - `ort` (string) - `land` (string) - `bundesland` (string) - `latitude` (number) - `longitude` (number) - `info` (string) - `aktiv` (boolean) - Beispiel: `{"name":"crm.objekt.create","input":{"kontoId":"","name":""}}` #### crm.objekt.update Ändern: Kundenobjekte - Art: Ändern, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Objekt ändern - Datenklassen: B (intern) - Eingabe: - `id` (string, Pflicht): ID des Datensatzes - `kontoId` (string) - `nummer` (string) - `name` (string) - `art` (string) - `strasse` (string) - `hausnummer` (string) - `plz` (string) - `ort` (string) - `land` (string) - `bundesland` (string) - `latitude` (number) - `longitude` (number) - `info` (string) - `aktiv` (boolean) - Beispiel: `{"name":"crm.objekt.update","input":{"id":""}}` #### crm.objekt.delete Löschen: Kundenobjekte - Art: Löschen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Objekt löschen - Datenklassen: B (intern) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.objekt.delete","input":{"id":""}}` ### Links (CRM): `crm.link.*` #### crm.link.list Liste/Suche: Links (CRM) - Art: Lesen - Rechte: Konto lesen - Datenklassen: C (vertraulich) - Eingabe: - `search` (string): Freitextsuche - `filters` (object): Feld=Wert-Filter - `limit` (integer) - `offset` (integer) - `orderBy` (string) - Beispiel: `{"name":"crm.link.list","input":{}}` #### crm.link.get Detail: Links (CRM) - Art: Lesen - Rechte: Konto lesen - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.link.get","input":{"id":""}}` #### crm.link.create Anlegen: Links (CRM) - Art: Anlegen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Konto anlegen - Datenklassen: C (vertraulich) - Eingabe: - `kontoNummer` (string): Owner = Konto (crm.konto.nummer). Alternativ kontaktQuelle/kontaktEmail für Kontakt-Owner - `kontaktQuelle` (string): Owner = Kontakt: Quell-Kennung (Person intrexxSourceId) - `kontaktEmail` (string): Owner = Kontakt: Fallback-Auflösung über E-Mail - `typ` (string): Link-Typ (Default: website). Werte: `linkedin`, `xing`, `website`, `instagram`, `facebook`, `xtwitter`, `youtube`, `sonstige` - `url` (string, Pflicht) - `label` (string) - `idQuelle` (string): Dedup-Schlüssel für idempotenten Re-Import (→ crm_link.intrexxSourceId) - Beispiel: `{"name":"crm.link.create","input":{"url":""}}` ### Potenziale / Deals (CRM): `crm.potenzial.*` #### crm.potenzial.list Liste/Suche: Potenziale / Deals (CRM) - Art: Lesen - Rechte: Potenzial lesen - Datenklassen: C (vertraulich) - Eingabe: - `search` (string): Freitextsuche - `filters` (object): Feld=Wert-Filter - `limit` (integer) - `offset` (integer) - `orderBy` (string) - Beispiel: `{"name":"crm.potenzial.list","input":{}}` #### crm.potenzial.get Detail: Potenziale / Deals (CRM) - Art: Lesen - Rechte: Potenzial lesen - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.potenzial.get","input":{"id":""}}` #### crm.potenzial.create Anlegen: Potenziale / Deals (CRM) - Art: Anlegen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Potenzial anlegen - Datenklassen: C (vertraulich) - Eingabe: - `kontoNummer` (string, Pflicht): Verweis auf crm.konto.nummer, der Deal hängt an diesem Konto (muss existieren) - `bezeichnung` (string, Pflicht): Name des Deals/Potenzials - `leadStatus` (string): Deal-Pipeline-Stufe (Default: lead). Werte: `lead`, `qualifiziert`, `angebot`, `verhandlung`, `gewonnen`, `verloren` - `potential` (number): Geschätztes Volumen in Euro - `qualitaet` (number): Abschlusswahrscheinlichkeit 0-100 - `bereich` (string) - `bemerkung` (string) - Beispiel: `{"name":"crm.potenzial.create","input":{"kontoNummer":"","bezeichnung":""}}` #### crm.potenzial.update Ändern: Potenziale / Deals (CRM) - Art: Ändern, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Potenzial ändern - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht): ID des Datensatzes - `kontoNummer` (string): Verweis auf crm.konto.nummer, der Deal hängt an diesem Konto (muss existieren) - `bezeichnung` (string): Name des Deals/Potenzials - `leadStatus` (string): Deal-Pipeline-Stufe (Default: lead). Werte: `lead`, `qualifiziert`, `angebot`, `verhandlung`, `gewonnen`, `verloren` - `potential` (number): Geschätztes Volumen in Euro - `qualitaet` (number): Abschlusswahrscheinlichkeit 0-100 - `bereich` (string) - `bemerkung` (string) - Beispiel: `{"name":"crm.potenzial.update","input":{"id":""}}` #### crm.potenzial.delete Löschen: Potenziale / Deals (CRM) - Art: Löschen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Potenzial löschen - Datenklassen: C (vertraulich) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.potenzial.delete","input":{"id":""}}` ## Wertelisten Auswahllisten der App wie Status, Arten oder Kategorien. Du pflegst sie mit denselben fünf Aktionen. Die Werte (code) nutzt du in den Feldern der Datenobjekte. ### Abteilungen: `crm.abteilung.*` #### crm.abteilung.list Liste/Suche: Katalog „Abteilungen" (crm) - Art: Lesen - Rechte: Einstellungen verwalten - Datenklassen: B (intern) - Eingabe: - `onlyAktiv` (boolean): Nur aktive Einträge - Beispiel: `{"name":"crm.abteilung.list","input":{}}` #### crm.abteilung.get Detail: Katalog „Abteilungen" (crm) - Art: Lesen - Rechte: Einstellungen verwalten - Datenklassen: B (intern) - Eingabe: - `id` (string, Pflicht) - Beispiel: `{"name":"crm.abteilung.get","input":{"id":""}}` #### crm.abteilung.create Anlegen: Katalog „Abteilungen" (crm) - Art: Anlegen, vor dem Ausführen ausdrücklich bestätigen lassen - Rechte: Einstellungen verwalten - Datenklassen: B (intern) - Eingabe: - `label` (string, Pflicht): Anzeige-Text - `code` (string): Optional, sonst aus label abgeleitet. Immutable - `color` (string): Tailwind-Paar, z.B. "bg-blue-100 text-blue-700" - `icon` (string): Lucide-Icon-Name - `beschreibung` (string) - Beispiel: `{"name":"crm.abteilung.create","input":{"label":"