Przejdź do treści głównej

Duplikaty klientów w sklepie: skąd się biorą i jak im zapobiegać

W sklepie internetowym ten sam człowiek często siedzi w bazie dwa albo trzy razy. Raz jako gość przy zamówieniu, raz po rejestracji konta, raz po imporcie z newslettera.

Adresy różnią się literówką albo skrótem ulicy — system traktuje to jak dwóch klientów. Historia zakupów się rozjeżdża, marketing pisze dwa razy, a Ty nie wiesz, ile naprawdę masz klientów.

TensoIT pomaga zatrzymać ten problem przy źródle: w formularzu adresu klient wybiera podpowiedź z rejestrów publicznych (PRG / TERYT), a do CRM trafia jedna, kanoniczna forma miasta, ulicy, numeru i kodu.

Czym są duplikaty klientów

Duplikat to więcej niż jeden rekord opisujący tę samą osobę (albo ten sam adres dostawy powiązany z tą samą tożsamością), mimo że biznesowo powinien być jeden.

Przykład z adresu. Dla kuriera to często ten sam dom. Dla bazy bez normalizacji — dwóch klientów.

Rekord A

Jan Kowalski
ul. Orkana 12
00-000 Miasto

Rekord B

Jan Kowalski
ul. Władysława Orkana 12
00-000 Miasto

Jedna forma z rejestru. Ten sam wybór przy kolejnym zamówieniu zapisuje tę samą nazwę ulicy, numer i kod.

Podobnie działają warianty: „ul.” kontra „ulica”, brak polskich znaków, inna kolejność części nazwy, kod pocztowy z myślnikiem lub bez.

W CRM i ERP ten sam mechanizm dotyczy firm („ABC Sp. z o.o.” kontra „A.B.C. spółka z o.o.”) — tu zwykle pomaga NIP. U klientów detalicznych e-mail i telefon są silnymi sygnałami, ale adres w kanonicznej formie domyka dopasowanie, gdy maile się różnią (praca kontra prywatny) albo gość kupuje bez konta.

Dlaczego duplikaty kosztują

To nie jest problem kosmetyczny w Excelu. Skutki widać w codziennej pracy sklepu:

  1. Marketing wysyła podwójnie — ten sam newsletter lub SMS trafia dwa razy; rośnie wypisywanie i spada deliverability.
  2. LTV i segmentacja kłamią — lojalny klient rozsypany na dwa profile nie wchodzi do VIP; „nowy” dostaje warunki nowego klienta.
  3. Dostawy i zwroty — literówka w ulicy lub zły kod oznacza niedoręczenie, koszt obsługi i zły NPS.
  4. Obsługa klienta — konsultant nie wie, która karta jest aktualna; historia zgłoszeń i zamówień jest w dwóch miejscach.
  5. RODO — zasada prawidłowości. Art. 5 ust. 1 lit. d RODO wymaga, by dane były prawidłowe i w razie potrzeby uaktualniane, a dane nieprawidłowe — usuwane lub sprostowane. Jakość adresów i unikanie zbędnego powielania tożsamości to element higieny danych administratora. Źródło: tekst art. 5 RODO oraz rozporządzenie 2016/679.

Liczby z rynku

  • Badania Gartnera (około 2020, powtarzane w materiałach o jakości danych) szacują średni roczny koszt złej jakości danych dla organizacji na około 12,9 mln USD. To agregat, nie tylko duplikaty klientów w e-commerce, i dotyczy głównie większych organizacji. Nie przenoś tej kwoty jeden do jednego na polski sklep. Źródło: Gartner Data Quality.
  • Experian w badaniach jakości danych w CRM wskazywał, że około 51% organizacji ma problem ze zduplikowanymi danymi klientów i prospektów, obok braków i nieaktualności. Źródło: materiały Experian o strategii jakości danych w CRM.
  • Case z Polski (SilverData, 2026): hurtownia z kartoteką około 4200 klientów po audycie miała około 1411 duplikatów. Realna liczba aktywnych spadła poniżej połowy raportowanej. To jeden case, nie norma branżowa. Źródło: SilverData — czyszczenie kartoteki.

Nie obiecywujemy tu oszczędności w złotówkach. Widać mechanizm kosztów. O własnej bazie lepiej porozmawiać na konkretnych rekordach.

Skąd się biorą w e-commerce i CRM

  • Zakup gościa, potem konto — dwa profile, historia zamówień rozdzielona.
  • Ręczne wpisywanie adresu — literówki, skróty ulic, różne formy tej samej ulicy.
  • Importy i migracje — CSV, stary sklep, targi, newsletter kontra zamówienia.
  • Wiele kanałów — landing kampanii, marketplace, telefon do biura, ERP osobno od sklepu.
  • Brak reguł przy tworzeniu klienta — każdy w zespole zakłada nowego, nikt nie szuka istniejącego.

Scalanie po fakcie jest potrzebne, ale droższe niż nie tworzyć wariantów adresu od pierwszego zamówienia.

Jak zapobiegać przy wpisie: kanoniczny adres (TERYT / PRG)

Zanim włączysz przybliżone dopasowanie w CRM, zatrzymaj bałagan w formularzu:

  1. Klient wybiera podpowiedź, zamiast pisać ulicę z pamięci.
  2. System zapisuje ujednoliconą nazwę miejscowości, ulicy, numeru i kodu zgodną z rejestrami publicznymi (PRG — punkty adresowe, odniesienia do TERYT).
  3. Przy kolejnym zamówieniu ten sam wybór daje ten sam zapis. Łatwiej złapać ten sam adres przy deduplikacji, razem z e-mailem i telefonem.

To nie zastępuje deduplikacji po e-mailu. To warstwa adresowa, której zwykle brakuje w artykułach o scalaniu kont.

TensoIT to widget JavaScript do pól, które już masz, albo REST API v2 do własnej integracji. Dane pochodzą z rejestrów publicznych. Pakiety od 79 zł netto miesięcznie (15 000 zapytań), 229 zł (45 000) i 449 zł za pakiet Duży. Szczegóły są na cenniku. Brak limitu zapytań na sekundę przy pikach kampanii. Obowiązuje miesięczna pula pakietu.

Jak to wygląda w formularzu sklepu

  1. Klient wpisuje początek miasta (zwykle od 3 znaków) i dostaje listę podpowiedzi.
  2. Wybiera ulicę z listy dla tego miasta. To kanoniczna nazwa, nie „Orkana” albo „Wł. Orkana” z głowy.
  3. Wybiera numer budynku lub lokalu z zakresu znanego w rejestrze.
  4. Kod pocztowy uzupełnia się po wyborze adresu.
  5. Do zamówienia i CRM idzie spójny zestaw pól. Ten sam format przy każdym kolejnym kliencie.

Zostaw możliwość ręcznego wpisania, gdy adres jest nietypowy albo po wyczerpaniu puli pakietu.

Integracja z API TensoIT

Uwierzytelnianie: Bearer, token dostępu z panelu (Laravel Sanctum). Baza: https://api.tensoit.pl. Kontrakt: OpenAPI v2 (wersja 2.0.2). Opis: docs.tensoit.pl.

Endpointy v2
Krok Metoda Ścieżka
Miasto GET lub POST /v2/city/{city} · /v2/city
Ulica GET lub POST /v2/street/{city}/{street} · /v2/street
Numer GET lub POST /v2/number/{city}/{street}/{number} · /v2/number
Kod GET lub POST /v2/postal/{city}/{street}/{number} · /v2/postal
Weryfikacja GET lub POST /v2/check/{city}/{street}/{number}/{postal} · /v2/check

Przykład: miasto, potem ulica. Token i domenę ustawiasz w panelu po zakupie pakietu.

GET /v2/city/warsz HTTP/1.1
Host: api.tensoit.pl
Authorization: Bearer YOUR_TOKEN
Accept: application/json
GET /v2/street/Warszawa/orkana?streetPrefix=dotted HTTP/1.1
Host: api.tensoit.pl
Authorization: Bearer YOUR_TOKEN
Accept: application/json

Odpowiedź zawiera suggestions (lista stringów). Parametr streetPrefix (dotted, compact albo natural) zmienia etykiety. Gdy jest ustawiony, dochodzi labels w tej samej kolejności. Do numeru i kodu przekazuj wartości ze suggestions, tak jak w dokumentacji.

Widget, bez własnego klienta HTTP: /widget/v2/city, street, number, postal oraz sesja POST /widget/v2/session na api.tensoit.pl. Szczegóły: dokumentacja widgetu.

Średnio jeden klient w formularzu to około 13–17 zapytań API. Miasto, ulica i numer liczą się osobno. Pakiet dobieraj do zapytań, nie jeden do jednego do liczby zamówień.

Masz już bałagan? Czyszczenie istniejącej bazy

Widget i API chronią nowe wpisy. Stare bazy często wymagają osobnego przejścia:

  • oznaczenie podejrzanych duplikatów, między innymi po znormalizowanym adresie oraz e-mailu lub telefonie,
  • korekta adresów do formy zgodnej z rejestrami,
  • raport do decyzji człowieka, bez ślepego scalania na produkcji.

W dotychczasowych projektach skuteczność bywa rzędu około 95%. Wynik zależy od jakości danych wejściowych: braki, śmieciowe rekordy, mieszane B2B i B2C. To doświadczenie wdrożeniowe, nie gwarancja SLA.

Czyszczenie nie ma cennika publicznego. Opisz liczbę rekordów i format (CSV, eksport WooCommerce albo CRM) przez formularz kontaktowy. Przygotujemy wycenę.

FAQ

Czy autouzupełnianie adresu usuwa istniejące duplikaty w bazie?

Nie automatycznie. Zmniejsza powstawanie nowych wariantów adresu przy rejestracji i zamówieniu. Historyczną bazę porządkujemy jako osobną usługę — wycena przez formularz kontaktowy na tensoit.pl/kontakt.

Czy wystarczy scalać klientów po adresie e-mail?

E-mail to silny sygnał, ale nie łapie wszystkich przypadków (literówki, dwa maile tej samej osoby, zakup gościa). Kanoniczna forma adresu z rejestrów PRG/TERYT oraz telefon zwiększają pewność dopasowania przy deduplikacji.

Czy TensoIT działa z WooCommerce, PrestaShop i własnym checkoutem?

Widget JavaScript podpinasz do istniejących pól adresowych albo budujesz integrację na REST API v2. Przy nietypowym formularzu wdrażamy rozwiązanie razem — zobacz docs.tensoit.pl lub napisz przez kontakt.

Skąd pochodzą dane adresowe TensoIT?

Z publicznych rejestrów adresowych PRG z odniesieniami do TERYT. Nowa baza wchodzi na produkcję po podglądzie i jawnym potwierdzeniu.

Ile kosztuje autouzupełnianie i czyszczenie bazy?

Pakiety miesięczne netto zaczynają się od 79 zł za 15 000 zapytań API; kolejne progi to 229 zł i 449 zł. Czyszczenie istniejącej bazy klientów nie ma cennika publicznego — wycena indywidualna przez formularz kontaktowy.

Czy przy kampanii reklamowej obowiązuje limit zapytań na sekundę?

Nie ma limitu tempa zapytań adresowych na sekundę przy pikach ruchu. Obowiązuje miesięczna pula pakietu. Zabezpieczenie anti-abuse: do 300 nowych sesji widgetu na minutę z jednego adresu IP.

Zacznij od podpowiedzi w checkoutcie

  1. Sprawdź demo na tensoit.pl (bez rejestracji).
  2. Wybierz pakiet pod ruch.
  3. Podłącz widget lub API według dokumentacji.
  4. Jeśli baza już jest po latach importów — napisz na kontakt o czyszczeniu.

Mniej literówek w dostawie. Mniej dwóch Janów Kowalskich w CRM. Jedna kanoniczna forma adresu od pierwszego zamówienia.

Jedna forma adresu od pierwszego zamówienia.

Widget albo API na nowe wpisy. Istniejącą bazę wyceniamy osobno, bez cennika na stronie.