Kontakt-Matching
Kontakt-Matching ist das automatische Erkennen, dass zwei eingehende Datensätze in Wirklichkeit dieselbe Person sind – obwohl sie über unterschiedliche Kanäle (WhatsApp-Nummer, E-Mail-Adresse, Instagram-ID) eintreffen. Ziel: eine einzige Kundenakte pro Person, keine Duplikate.
Was ist Kontakt-Matching?
Kontakt-Matching (oft auch „Identity Resolution" oder „Duplicate Detection") bezeichnet die Logik, mit der eine Plattform entscheidet: „Diese eingehende WhatsApp-Nachricht von +49 170 123 4567 gehört zu derselben Person, deren E-Mail [email protected] wir schon kennen." Das Ergebnis ist eine einzige Kundenakte, kein Daten-Friedhof aus halben Profilen.
Warum Matching unverzichtbar ist
Ohne Matching kommen Sie schnell in dieses Bild:
- Anna ist in der E-Mail-Liste mit [email protected]
- Anna ist als WhatsApp-Kontakt mit +49 170 …
- Anna hat sich per Newsletter-Formular angemeldet mit dem Namen „Anna K."
- Drei Datensätze, eine reale Person – ohne Matching werden alle drei separat angesprochen.
Die Folgen: doppelte Marketing-Nachrichten, falsche Lifetime-Value-Berechnung, fragmentierte Service-Historie, DSGVO-Probleme bei Auskunftsanfragen.
Match-Signale
Plattformen nutzen typischerweise diese Identifikatoren:
| Signal | Stärke | Hinweis |
|---|---|---|
| Telefonnummer (E.164-Format) | Sehr stark | Eindeutig, falls einheitlich formatiert. |
| E-Mail-Adresse | Sehr stark | Eindeutig, aber Tippfehler kommen vor. |
| Platform-ID (WhatsApp-ID, Telegram-ID, Instagram-Handle) | Sehr stark | Vom jeweiligen Anbieter vergeben, unveränderlich. |
| Name | Schwach | Viele Annas im Stamm – nur in Kombination mit anderem Signal nutzbar. |
Drei Modi im Vergleich
| Modus | Was passiert bei Kollision | Wann nutzen |
|---|---|---|
| Auto-merge (Standard) | Bestehender Kontakt wird aktualisiert statt eines neuen angelegt. Älterer Kontakt bleibt Primary, fehlende Felder werden ergänzt. | Default für die meisten KMU. Liefert eine saubere Kundenakte ohne manuellen Aufwand. |
| Allow duplicates | Beide Kontakte werden erzeugt. Plattform meldet aber im Response, dass Duplikate möglich sind (Hinweis-Liste). | Sehr selten – z. B. bei Marktplatz-Setups, wo jede Anmeldung als eigener Account gewollt ist. |
| Block duplicates | Plattform lehnt die Anlage ab (HTTP 409) und gibt den bestehenden Kontakt zurück. | Wenn Sie strikte Eindeutigkeit erzwingen wollen – z. B. im B2B-Vertrieb. |
Merge-Regeln (was beim Zusammenführen passiert)
- Ältester Kontakt bleibt Primary. Beide IDs zeigen weiterhin auf den überlebenden Datensatz.
- Nicht-leere Werte gewinnen. Bei Konflikt entscheidet das ältere Erstellungs-Datum.
- Sticky-Felder:
is_blockedundis_archivedbleiben „wahr", wenn einer der beiden Datensätze sie hatte – Merging darf einen blockierten Kontakt nie still entsperren. - Historie wandert mit: Konversationen, Nachrichten, Notizen, Tags, Custom Fields, Kontakt-Methoden landen alle beim Survivor.
- System-Notiz im Audit-Log: Was wurde gemerged, was war der Konflikt – nachvollziehbar dokumentiert.
Was mit alten IDs passiert
Externe Integrationen, Webhooks, CRMs referenzieren oft alte Kontakt-IDs. Nach einem Merge dürfen diese alten IDs nicht ins Leere zeigen. Lösung: Die API löst die alte ID transparent auf den Survivor auf, gibt zusätzlich ein Feld merged_from zurück und setzt einen X-Merged-Into-Header. Bestehende Integrationen brechen nicht.
Kanal-Sonderfall: Erstkontakt auf neuem Kanal
Wichtige Ausnahme: Wenn eine WhatsApp-Nachricht eingeht für eine Telefonnummer, die wir bereits kennen – aber dem Kontakt fehlt bisher die WhatsApp-ID – ist das kein Duplikat. Es ist nur eine neue Kontaktmethode am bestehenden Kontakt. Auto-Merge ist hier sinnvoll, unabhängig vom gewählten Modus.
Manuelles Merge
Nicht jede Dublette wird automatisch erkannt. Bei phonetisch ähnlichen Namen, vertauschten Vor- und Nachnamen oder absichtlich getrennten Accounts braucht es einen manuellen Merge. Eine „Find Duplicates"-Ansicht zeigt potenzielle Kandidaten, gruppiert nach Match-Signal, mit Bulk-Merge-Option.
Kontakt-Matching bei SendSeven
SendSeven unterstützt alle drei Modi (Auto-merge als Default, Allow, Block), per-Request-Override über das Feld duplicate_mode, manuelles Merging in der UI und über die REST API (POST /contacts/{id}/merge). Match-Signale sind Telefonnummer, E-Mail, Platform-ID und Name (als schwaches Signal für die Vorschlags-Liste). Alle Merges sind im Audit-Log dokumentiert; alte UUIDs bleiben auflösbar.
Welcher Modus zu welchem Team passt und was beim Zusammenführen mit widersprüchlichen Daten passiert, steht im Artikel zur zentralen Kontaktverwaltung.