23 — Customers (Endkunden)
Aktualisiert am 1. Juni 2026
23 — Customers (Endkunden)
Customer ist im System der Endkunde — die Person oder Firma, die das Produkt des Tenants kauft. Customers sind die Quelle der Sales und damit Grundlage der Provisionsabrechnung an Partner.
Was ist ein Customer?
Ein Customer entsteht automatisch beim ersten Sale-Webhook und enthält:
- External-ID — die ID, die der Payment-Provider vergibt (z. B. Stripe Customer-ID).
- Email — wird zusätzlich für Cross-Provider-Matching genutzt.
- Name, optional Adresse.
- Assigned Partner — welchem Partner dieser Customer „gehört".
Wie wird ein Customer einem Partner zugewiesen?
Im Standardfall durch den PartnerResolver beim Eingang eines Sale-Webhooks (siehe 50 — Tracking). Beim ersten Sale wird die Zuweisung typischerweise als Lifetime markiert — der Partner bleibt für alle zukünftigen Sales dieses Customers verantwortlich.
Lifetime-Zuweisung
Der Customer-Lock:
- Wenn
customer.assignedPartnergesetzt UND (isLifetimeAssigned=trueODER KampagneallowPartnerChange=false):- Alle weiteren Sales dieses Customers werden automatisch dem bestehenden Partner zugeschrieben.
- Ein konkurrierender Partner kann den Customer nicht „abgreifen" — selbst wenn dessen Tracking-Cookie aktiv ist.
Das ist die wichtigste Treuepunkt-Mechanik: ein einmal gewonnener Endkunde bleibt dem Partner zugeordnet.
Customer-Admin
Wo finde ich Customers?
Admin-Portal → „Kunden" in der Sidebar.
Liste
- Filter „Alle" / „Mit Partner" / „Ohne Partner".
- Volltextsuche (Email, External-ID, Name).
- Lifetime-Badge bei lifetime-assigned Customers.
- Source-Anzeige (Tracking, Webhook, Manuell, Lead-Capture).
Detail-View
- Stammdaten (Name, Email, External-ID).
- Aktueller Assigned-Partner mit Lifetime-Flag.
- Liste der Transaktionen (Datum, Provider, Betrag, Provision).
- Metadata-Section (alle JSON-Felder als Pretty-View).
- Aktion „Anderem Partner zuordnen" (öffnet Partner-Picker-Modal).
Manuelle Zuordnung
Sinnvoll in zwei Szenarien:
A) Unassigned-TX nachträglich zuordnen
Wenn ein Webhook ohne identifizierbaren Partner reinkommt, landet die TX als STATUS_UNASSIGNED. Admin kann jetzt:
- Customer-Detail öffnen.
- „Partner zuordnen" klicken.
- Partner-ID eingeben.
- Optional „Lifetime" aktivieren.
Folge:
- Customer wird zugeordnet.
- Alle
STATUS_UNASSIGNED-TX des Customers werden ebenfalls dem Partner zugeordnet (via Re-Calculate). - Alle zukünftigen TX dieses Customers landen automatisch beim selben Partner.
B) Bestehende Zuordnung ändern
Falls eine Zuordnung falsch ist (z. B. versehentlich auf lifetime gesetzt):
- „Zuordnung lösen" — bei nicht-lifetime-Zuordnung sofort möglich.
- Bei Lifetime-Zuordnung: Force-Flag erforderlich (Sicherheitshinweis), Admin muss explizit bestätigen.
Source-Tracking
Pro Customer wird gespeichert, woher die initiale Zuordnung stammt:
| Source | Bedeutung |
|---|---|
tracking |
Tracking-Cookie + Klick-Match |
webhook |
Provider hat partner_id mitgegeben |
manual |
Admin-Zuordnung |
lead-capture |
Lead-Referral-Widget |
Bei manueller Änderung wird die Source aktualisiert.
Tabbed-View im Partner-Detail
Vom Partner aus gesehen sieht der Admin alle Customers des Partners:
- Anzahl, Datum der ersten Zuordnung, Source.
- Klick führt zur Customer-Detail-View.
Wichtig: Customer ≠ Kunde-Stammdaten
PartnerDesk pflegt keine vollständigen Kunden-Stammdaten (kein CRM-Ersatz). Wir speichern nur das Minimum, das für Provisionsattribution + ggf. Marketing nötig ist. Vollständige Kundenverwaltung läuft beim Tenant in seinem eigenen System.
Anonymisierung
Customers werden beim Tenant-Komplett-Löschung mit anonymisiert. Einzelne Customers können ebenfalls auf Anfrage anonymisiert werden (DSGVO Art. 17).
Verwandte Kapitel
- 50 — Tracking — Wie der initiale Match passiert.
- 51 — Attribution — Customer-Lock vs. Cookie-Klick.
- 93 — DSGVO — Datenexport + Löschung.
Technische Tiefen-Doku: ../001-initial-setup.md, ../063-customer-admin.md, ../070-manual-tx-assign.md