Dopasowywanie kontaktów
Dopasowywanie kontaktów automatycznie rozpoznaje, że dwa przychodzące rekordy należą do tej samej rzeczywistej osoby — nawet gdy docierają różnymi kanałami (numer WhatsApp, adres e-mail, ID Instagram). Cel: jeden rekord klienta na osobę, bez duplikatów.
Czym jest dopasowywanie kontaktów?
Dopasowywanie kontaktów (często „identity resolution" lub „wykrywanie duplikatów") to logika, która pozwala platformie zdecydować: „Ta przychodząca wiadomość WhatsApp z +48 600 123 456 należy do tej samej osoby, której e-mail [email protected] już znamy". Wynikiem jest jeden rekord klienta, a nie cmentarz pół-profilów.
Dlaczego dopasowywanie jest niezbędne
Bez dopasowywania szybko kończy się tak:
- Anna jest na liście e-mail jako [email protected]
- Anna jest kontaktem WhatsApp pod +48 600 …
- Anna zapisała się przez formularz newslettera jako „Anna K."
- Trzy rekordy, jedna realna osoba — bez dopasowywania, wszystkie trzy są adresowane osobno.
Konsekwencje: zduplikowane wiadomości marketingowe, źle wyliczone lifetime value, rozproszona historia obsługi, problemy RODO przy wnioskach osób, których dane dotyczą.
Sygnały dopasowywania
Platformy zwykle używają tych identyfikatorów:
| Sygnał | Siła | Uwaga |
|---|---|---|
| Numer telefonu (format E.164) | Bardzo silny | Unikalny, jeśli formatowany jednolicie. |
| Adres e-mail | Bardzo silny | Unikalny, ale literówki się zdarzają. |
| ID platformy (WhatsApp ID, Telegram ID, handle Instagrama) | Bardzo silny | Wystawiany przez dostawcę, niezmienny. |
| Imię | Słaby | Wiele Ann w systemie — przydatne tylko w kombinacji. |
Porównanie trzech trybów
| Tryb | Co dzieje się przy kolizji | Kiedy stosować |
|---|---|---|
| Auto-merge (domyślnie) | Istniejący kontakt jest aktualizowany zamiast tworzenia nowego. Starszy kontakt pozostaje podstawowy; brakujące pola są uzupełniane. | Domyślnie dla większości MŚP. Daje czysty rekord klienta bez pracy ręcznej. |
| Zezwól na duplikaty | Tworzone są oba kontakty. Platforma sygnalizuje w odpowiedzi, że mogą istnieć duplikaty (lista sugestii). | Rzadkie — np. konfiguracje marketplace, gdzie każda rejestracja ma być oddzielnym kontem. |
| Blokuj duplikaty | Platforma odrzuca utworzenie (HTTP 409) i zwraca istniejący kontakt. | Gdy chcesz ścisłej unikalności — np. w B2B sales. |
Reguły scalania (co dzieje się przy scalaniu)
- Starszy kontakt pozostaje podstawowy. Oba ID dalej rozwiązują się do ocalałego rekordu.
- Wygrywają wartości niepuste. Przy konflikcie decyduje starsza data utworzenia.
- Pola lepkie:
is_blockediis_archivedpozostają „true", jeśli którykolwiek z rekordów je miał — scalanie nigdy nie może po cichu odblokować kontaktu. - Historia migruje: Rozmowy, wiadomości, notatki, tagi, pola niestandardowe i metody kontaktu lądują u ocalałego.
- Notatka systemowa w dzienniku audytu: Co zostało scalone, co było w konflikcie — w pełni udokumentowane.
Co dzieje się ze starymi ID
Zewnętrzne integracje, webhooki i CRM-y często odwołują się do starych ID kontaktów. Po scaleniu te stare ID nie mogą zwracać 404. Rozwiązanie: API transparentnie rozwiązuje stary ID na ocalały, dodatkowo zwraca pole merged_from i ustawia nagłówek X-Merged-Into. Istniejące integracje nie psują się.
Przypadek brzegowy kanału: pierwszy kontakt na nowym kanale
Ważny wyjątek: gdy przychodzi wiadomość WhatsApp z numeru, który już znamy — ale kontakt nie ma jeszcze ID WhatsApp —, to nie jest duplikat. To nowa metoda kontaktu na istniejącym kontakcie. Auto-merge stosuje się niezależnie od trybu.
Scalanie ręczne
Nie wszystkie duplikaty są wykrywane automatycznie. Imiona podobne fonetycznie, zamienione miejscami imię/nazwisko, świadomie rozdzielone konta — te wymagają scalania ręcznego. Widok „Znajdź duplikaty" pokazuje kandydatów pogrupowanych po sygnale dopasowywania, z opcją scalania zbiorczego.
Dopasowywanie kontaktów w SendSeven
SendSeven obsługuje wszystkie trzy tryby (Auto-merge domyślnie, Zezwól, Blokuj), nadpisywanie per żądanie przez pole duplicate_mode, ręczne scalanie w UI oraz przez REST API (POST /contacts/{id}/merge). Sygnały dopasowywania to telefon, e-mail, ID platformy i imię (jako słaby sygnał na liście sugestii). Wszystkie scalenia są rejestrowane w dzienniku audytu; stare UUID-y pozostają rozwiązywalne.