Usługi Case study Szkolenia Baza wiedzy O nas Bezpłatna konsultacja

Czyszczenie CRM: duplikaty, martwe rekordy i dane, którym nikt nie ufa

Mikołaj Brunka
Mikołaj Brunka
Co-Founder & CEO
· 17 min czytania
Czyszczenie CRM: duplikaty, martwe rekordy i dane, którym nikt nie ufa

Przy audytach procesów sprzedażowych jeden scenariusz powtarza się z nudną regularnością. Na pytanie „ile macie otwartych szans" pada odpowiedź z zastrzeżeniem: „w systemie tyle, ale realnie połowa to trupy". W tym jednym zdaniu mieści się cały problem: firma płaci za CRM, wprowadza do niego dane i jednocześnie im nie wierzy.

Objawy są zawsze te same. Ta sama firma ma trzy karty, bo raz wpisał ją handlowiec, raz przyszła z formularza, a raz wjechała importem z targów. Nazwę zapisano na pięć sposobów: „ABC Sp. z o.o.", „abc", „ABC sp z o o", „ABC Spółka z ograniczoną odpowiedzialnością" i „ABC (kontakt od Marka)". Deale z zeszłego roku wiszą w „Negocjacjach", newsletter idzie do jednej osoby dwa razy, a dwóch handlowców dzwoni do jednego klienta z dwóch stron. Poniżej opisuję, jak to sprzątamy i w jakiej kolejności, żeby za rok nie powtarzać całej roboty.

TL;DR: Nie zaczynaj od kasowania duplikatów, tylko od zatkania dziury, którą wpadają. Kolejność: dedup na wejściu, normalizacja firm po NIP z publicznych rejestrów, dopiero potem merge z backupem i mapą scaleń. Martwe deale archiwizuj, nie kasuj. Na koniec ustaw cotygodniowy raport jakości danych, bo bez niego wszystko wraca w kilka miesięcy.

Skąd bierze się brud w CRM

Żaden CRM nie brudzi się sam. Każdy bałagan ma konkretne źródło i dopóki go nie zamkniesz, sprzątanie jest wyłącznie kosztem.

Brak walidacji na wejściu. Telefon jako zwykłe pole tekstowe przyjmie 501 234 567, +48501234567 i 501-234-567 (kom.). Dla systemu to trzy różne wartości, więc wyszukiwanie po numerze nie znajdzie duplikatu. To samo z polem „źródło leada" wpisywanym z palca: po roku macie „polecenie", „Polecenie", „od Marka" i „referral".

Importy z Excela. Import wrzuca wszystko jak leci, bo nikt nie ustawia klucza dopasowania albo ustawia go na nazwę firmy, która w pliku wygląda inaczej niż w CRM. Jeden plik z targów bez dedupu potrafi podwoić bazę w pięć minut.

Formularze bez wyszukiwania istniejącego rekordu. Integracja „formularz tworzy kontakt" robi dokładnie to, co obiecuje: tworzy. Ten sam człowiek pobiera ebooka w marcu, zapisuje się na webinar w maju i wypełnia formularz we wrześniu, po czym ma trzy karty i trzy szanse sprzedaży. Jak spiąć to poprawnie, opisaliśmy w poradniku o wpinaniu formularzy do CRM.

Rotacja w zespole. Rekordy po osobie, która odeszła, zostają bez właściciela: nikt ich nie widzi na swojej liście, nikt ich nie zamyka, a one wciąż liczą się do raportu.

ObjawCo się naprawdę popsułoGdzie szukać przyczyny
Ta sama firma na kilku kartachbrak dedupu przy tworzeniu rekorduformularze, importy, ręczne dodawanie
Raport pipeline'u zawyżonymartwe deale bez reguły zamykaniabrak automatycznej archiwizacji
Mailing dubluje się u odbiorcówduplikaty kontaktów po e-mailuintegracja mailingu bez klucza
Dwóch handlowców u jednego klientabrak jednego rekordu firmynazwy firm bez normalizacji
Nikt nie ufa liczbom z CRMwszystko powyżej narazbrak właściciela danych

Audyt: policz, zanim zaczniesz sprzątać

Sprzątanie „na oko" kończy się tym, że po tygodniu nie wiadomo, czy cokolwiek się poprawiło. Pomiar to pół dnia pracy, a daje punkt odniesienia i argument dla zarządu.

Wyeksportuj kontakty, firmy i deale do CSV i policz w arkuszu albo skryptem. Potrzeba nie narzędzia, tylko znormalizowanych kluczy porównawczych: e-mail do małych liter, telefon do samych cyfr bez +48 i wiodącego zera, NIP do dziesięciu cyfr bez myślników. Nazwę firmy sprowadź do małych liter, bez interpunkcji i diakrytyki, z wyciętymi formami prawnymi (sp. z o.o., s.a., sp.j., sp.k., p.p.h.u.): „ABC Sp. z o.o." i „abc sp z o o" dają wtedy ten sam klucz abc.

Na tak przygotowanych danych policz sześć liczb:

MetrykaJak policzyć
Duplikaty kontaktów po e-mailuile znormalizowanych adresów występuje więcej niż raz
Duplikaty kontaktów po telefonieto samo na znormalizowanym numerze
Duplikaty firm po NIP i po nazwieosobno oba klucze, wyniki się nie pokrywają
Rekordy bez pól użytecznychile kontaktów bez telefonu i e-maila, ile firm bez NIP
Rekordy bez właścicielaosierocone po odejściach z zespołu
Deale bez aktywności powyżej 90 dnii osobno: deale z datą zamknięcia w przeszłości

Wyniku nie porównuj z benchmarkiem z internetu, bo sensownego nie ma. Porównuj go ze sobą samym za kwartał: jeśli po sprzątaniu liczba duplikatów znów rośnie, zatkaliście nie tę dziurę.

„Najdroższy skutek brudnego CRM-u to nie zmarnowany czas handlowca, tylko moment, w którym zarząd przestaje wierzyć raportom i wraca do arkusza prowadzonego ręcznie. Od tego dnia płacicie za CRM i za Excela naraz, a decyzje i tak zapadają na wyczucie." — Mikołaj Brunka, założyciel NoCodeWork

Krok 1: zatkaj dziurę na wejściu

To jedyna kolejność, która ma sens. Masowy merge przed zamknięciem źródeł brudu daje ładny wykres na miesiąc i ten sam bałagan za rok.

Każdy kanał, którym dane wchodzą do CRM, musi mieć ten sam krok pośredni: zanim utworzysz rekord, sprawdź, czy on już nie istnieje. Między formularzem a CRM stawiamy workflow (u nas n8n), który pyta po kolei: czy jest kontakt o tym znormalizowanym e-mailu, a jeśli nie, to o tym telefonie? W B2B dochodzi pytanie o firmę po NIP, a dopiero potem po znormalizowanej nazwie. Trafienie oznacza „dopnij aktywność do istniejącego rekordu", brak trafienia „załóż nowy i znormalizuj dane przy zapisie".

Infografika: dedup na wejściu do CRM - workflow sprawdza e-mail, telefon i NIP przed utworzeniem rekordu

Mechanikę takiego przepływu rozpisaliśmy przy integracji Pipedrive z n8n. Po stronie samego CRM-u dokładamy do tego:

  • Listy zamknięte zamiast pól tekstowych wszędzie, gdzie później robicie raport: źródło, branża, wielkość firmy, powód przegranej.
  • Walidacja formatu telefonu, e-maila i NIP-u przy zapisie. NIP ma cyfrę kontrolną, więc literówkę wyłapiesz od razu.
  • Import tylko przez jedną osobę i z kluczem dopasowania. Jeśli Wasz CRM nie umie przy imporcie aktualizować po e-mailu czy NIP, przepuść plik przez ten sam workflow, co formularze. Punkt jest niepopularny, bo spowalnia wrzucanie baz z targów, ale alternatywą jest tydzień sprzątania po każdym imporcie.

Krok 2: normalizacja firm po NIP

W B2B NIP jest jedynym identyfikatorem, który nie zależy od tego, jak ktoś zapisał nazwę. Dlatego u nas jest kluczem łączenia duplikatów firm, a nie polem „do uzupełnienia kiedyś".

Mając NIP, workflow dopytuje o resztę publiczne rejestry: wykaz podatników VAT Ministerstwa Finansów (biała lista) daje pełną nazwę, adres i status podatnika, a API Krajowego Rejestru Sądowego dodaje formę prawną i numer KRS. W n8n to zwykłe zapytania HTTP, bez rejestracji i bez kosztu.

Kolejność przy sprzątaniu istniejącej bazy:

  1. Uzupełnij NIP tam, gdzie go brakuje. Część firm da się dopasować po nazwie i mieście, ale to najbardziej ryzykowny krok w całym procesie, więc wynik traktuj jako propozycję do akceptacji, nie jako fakt.
  2. Nadpisz nazwę i adres danymi z rejestru. Po tym kroku „abc sp z o o" i „ABC Sp. z o.o." mają identyczną nazwę i identyczny NIP.
  3. Zgrupuj firmy po NIP. Grupy większe niż jedna to duplikaty gotowe do scalenia.
  4. Zostaw nazwę potoczną w osobnym polu. Handlowcy szukają „Rarity", nie „Rarity Beauty Spółka z ograniczoną odpowiedzialnością".

Pułapka: ten sam NIP mają oddziały jednej spółki, więc jeśli świadomie prowadzicie je jako osobne rekordy, NIP nie może być jedynym warunkiem scalenia.

Krok 3: merge duplikatów bez utraty danych

Dopiero teraz sklejamy. Przy kilkudziesięciu duplikatach wystarczą narzędzia wbudowane w CRM, przy kilku tysiącach potrzebny jest skrypt.

Natywnie. Pipedrive scala osoby, organizacje i deale z poziomu karty rekordu: wskazujesz rekord docelowy, a system przenosi do niego aktywności, notatki, pliki i powiązania, uzupełniając puste pola danymi z rekordu wchłanianego. HubSpot pyta wprost o rekord główny, którego wartości właściwości wygrywają, i ma dodatkowo narzędzie podpowiadające duplikaty (w wyższych planach). W obu scalenie jest nieodwracalne, a zakres funkcji w planach producenci zmieniają, więc sprawdź, co masz u siebie.

Przy skali. Powyżej mniej więcej tysiąca par ręczne klikanie przestaje mieć sens i piszemy skrypt na API CRM-u. Cała trudność siedzi w regule, która wersja wygrywa:

ElementReguła, którą stosujemy domyślnie
Rekord docelowynajstarszy, bo jego identyfikator siedzi w innych systemach
Pola tekstowenajświeższa niepusta wartość
Nazwa i adres firmyz rejestru po NIP, niezależnie od obu rekordów
Właścicielten z najświeższą aktywnością
Źródło pozyskaniaz najstarszego rekordu, żeby nie zepsuć atrybucji
Zgody marketingowestan „nie wysyłać" wygrywa zawsze
Aktywności, notatki, plikisuma z obu rekordów
Infografika: reguły merge duplikatów w CRM - która wersja pola wygrywa przy scalaniu

Przed masowym scalaniem robimy zawsze to samo, bez wyjątków:

  • Pełny eksport bazy do pliku, trzymany poza CRM-em. Cofnięcia nie ma, więc to jedyna droga powrotna. Jeśli nie robicie tego regularnie, przy okazji warto ustawić backup danych z SaaS-a na stałe.
  • Mapa scaleń: tabela z identyfikatorem rekordu ocalałego, identyfikatorem wchłoniętego, datą i regułą, która zadecydowała. Bez niej za miesiąc nie odpowiecie na pytanie „gdzie podział się kontakt Kowalskiego".
  • Partia próbna: pięćdziesiąt scaleń, przegląd z osobą, która na tych danych pracuje, i dopiero potem reszta.

Sprawdź też, gdzie identyfikatory rekordów z CRM występują poza nim: w mailingu, w fakturowaniu, w aplikacji wewnętrznej. Po scaleniu identyfikator wchłoniętego rekordu przestaje istnieć i te integracje zaczynają gubić dane, zwykle bez żadnego błędu.

Krok 4: martwe deale, czyli archiwizuj zamiast kasować

Martwe szanse psują dokładnie te liczby, dla których kupiliście CRM: wartość pipeline'u, prognozę i średni czas cyklu sprzedaży. Deal z zeszłego roku w „Negocjacjach" wygląda w raporcie jak pieniądze na stole. Reguła, którą wdrażamy najczęściej, działa stopniowo:

  1. Brak aktywności powyżej 60 dni oznacza tag i pozycję na cotygodniowej liście właściciela: jedna zbiorcza wiadomość „te osiem szans stoi, zamknij albo zaplanuj kolejny krok".
  2. Brak reakcji przez kolejne 14 dni oznacza automatyczne przeniesienie do statusu przegranej z powodem „brak kontaktu" i tagiem informującym, że zamknął to automat, nie człowiek.
  3. Nic się nie kasuje. Zamknięty deal zostaje w bazie z powodem i datą, bo to materiał na kampanię odzyskiwania i wiedza o tym, gdzie realnie tracicie szanse.

Progi dobierz do swojego cyklu sprzedaży. Przy sprzedaży trwającej dwa tygodnie 60 dni to wieczność, a przy wdrożeniach ciągnących się pół roku bywa normą i lepszym sygnałem jest wtedy brak zaplanowanego kolejnego kroku niż sam upływ czasu.

Szczegół z praktyki: pierwsze uruchomienie takiej reguły na starej bazie zamknie naraz kilkaset szans i zespół przeżyje szok, widząc topniejący pipeline. Dlatego pierwszą turę robimy jako listę do przejrzenia, a reguła działa sama od drugiego miesiąca. Oznaczanie ustawisz w automatyzacjach wbudowanych w CRM, ale zbiorczą wiadomość musi złożyć workflow, bo natywne reguły alarmują o każdym rekordzie osobno. Więcej takich przepisów zebraliśmy w przeglądzie automatyzacji CRM na przykładzie Pipedrive.

Krok 5: brakujące pola

Puste pola dzielą się na dwie grupy i każdą naprawia się inaczej.

To, co da się dociągnąć maszynowo. Nazwa formalna, adres, forma prawna, status VAT, numer KRS. Wystarczy NIP, resztę robi zapytanie do rejestrów opisane wyżej, raz na całej bazie i potem cyklicznie na nowych rekordach.

To, czego żadne API nie wie. Budżet, kto podejmuje decyzję, jaki system mają obecnie, kiedy kończy im się umowa z konkurencją. Jedynym źródłem jest rozmowa, więc zbieranie tych danych trzeba wpiąć w pracę, którą zespół i tak wykonuje. Najskuteczniejszy mechanizm, jaki znam, to pola wymagane przy przejściu do kolejnego etapu: Pipedrive i HubSpot potrafią to wymusić, więc handlowiec nie przesunie deala do „Oferty", dopóki nie wpisze budżetu i osoby decyzyjnej. Działa, bo pyta o jedną rzecz w momencie, w którym człowiek ma ją świeżo w głowie. Mail do zespołu „proszę uzupełnić brakujące dane w CRM" nie działa nigdy, a akcję jednorazową ogranicz do aktywnych szans i klientów z ostatnich dwóch lat.

Higiena stała: raport jakości danych co poniedziałek

Bez tego kroku wszystko powyżej jest jednorazowym kosztem. Mechanizm to jeden workflow raz w tygodniu: odpytuje API CRM-u i wysyła jedną wiadomość do osoby odpowiedzialnej za dane:

  • ile nowych duplikatów pojawiło się w ostatnim tygodniu (po e-mailu, telefonie i NIP),
  • ile rekordów nie ma właściciela,
  • ile firm nie ma NIP-u,
  • ile aktywnych szans nie ma zaplanowanego kolejnego kroku,
  • ile rekordów przyszło ze źródłem spoza listy zamkniętej.

Liczby idą na czat, nie na listę zadań. Zadanie zakładasz dopiero wtedy, gdy któraś zaczyna rosnąć. Ten podział opisaliśmy szerzej przy automatyzacjach w ClickUp i przy danych sprawdza się tak samo.

Bez dwóch rzeczy organizacyjnych raport trafia w próżnię: jakość danych musi mieć właściciela (jedną osobę, zwykle szefa sprzedaży albo kogoś od operacji), a raz na kwartał ktoś ma usiąść nad trendem, nie tylko nad wynikiem z bieżącego tygodnia.

RODO: usuwanie danych to też obowiązek

Przy czyszczeniu CRM-u firmy najbardziej boją się usunięcia czegoś, co się przyda. Tymczasem RODO nakazuje przechowywać dane osobowe tylko przez okres niezbędny do celu przetwarzania (zasada ograniczenia przechowywania, art. 5 ust. 1 lit. e). Baza leadów z 2019 roku trzymana „na wszelki wypadek" jest ryzykiem, a nie aktywem.

Do rozstrzygnięcia przed sprzątaniem:

  • Polityka retencji per typ rekordu. Lead bez żadnego kontaktu przez ustalony okres idzie do usunięcia albo anonimizacji. Dane klientów zostają, ale na innej podstawie: rozliczenia podatkowe i przedawnienie roszczeń, więc mają własne terminy.
  • Zgody i sprzeciwy przy scalaniu. Najczęściej przeoczany element procesu. Jeśli jeden z duplikatów ma wycofaną zgodę marketingową albo sprzeciw, a drugi nie, po scaleniu musi zostać stan „nie wysyłać". Odwrotna reguła oznacza mailing do osoby, która się wypisała.
  • Kopie i eksporty też są danymi. Plik CSV zrobiony jako backup przed merge ma leżeć w kontrolowanym miejscu i mieć własny termin usunięcia.

Jeśli czyszczenie robi za Was firma zewnętrzna, potrzebna jest umowa powierzenia przetwarzania. Gdzie mogą leżeć dane przetwarzane przez automatyzacje, opisaliśmy w tekście o n8n i RODO.

AI do rozmytych nazw

Po dopasowaniu po twardych kluczach i po normalizacji zostaje ogon: literówki, skróty, nazwy handlowe różne od rejestrowych, „ABC Trans" kontra „ABC Transport i Spedycja". Tu model językowy faktycznie pomaga, ale dopiero na czwartym miejscu w kolejce: najpierw klucze twarde, potem podobieństwo tekstowe liczone lokalnie, i dopiero resztki idą do modelu. Nie porównuj przy tym każdego rekordu z każdym, bo przy dziesięciu tysiącach firm to pięćdziesiąt milionów par. Grupuj wstępnie po czymś tanim (pierwsze trzy znaki znormalizowanej nazwy, miasto, domena e-maila) i porównuj wewnątrz grup.

Model prosimy o werdykt razem z uzasadnieniem i poziomem pewności. Pary pewne trafiają do kolejki, w której człowiek zatwierdza je jednym kliknięciem, niepewne odpadają. Automatycznego scalania na podstawie samej odpowiedzi modelu nie robimy nigdy.

Na co uważać

  • Wielkie sprzątanie bez zatkania dziury. Za rok stan będzie identyczny, a zespół drugi raz nie da się namówić na tę robotę.
  • Kasowanie zamiast archiwizacji. Usunięty deal zabiera powód przegranej i historię kontaktu, czyli jedyne dane, z których dałoby się czegoś nauczyć.
  • Merge bez backupu i bez mapy scaleń. Operacja jest nieodwracalna w każdym CRM, jaki znam.
  • Czyszczenie bez decyzji, co jest rekordem nadrzędnym: firma czy kontakt. Sprzątanie utrwali wtedy obecny chaos. Przy wątpliwościach co do podstaw zacznij od oceny, czy Wasza firma potrzebuje CRM.
  • Eksport całej bazy w niekontrolowane miejsce. Prywatny dysk, losowe narzędzie „do dedupu" z wyszukiwarki, załącznik na prywatnej skrzynce. To dane osobowe Waszych klientów.

FAQ

Jak sprawdzić, ile duplikatów mam w CRM?

Wyeksportuj kontakty i firmy do CSV, znormalizuj klucze (e-mail do małych liter, telefon do samych cyfr bez +48, NIP do dziesięciu cyfr, nazwę firmy bez form prawnych i interpunkcji) i policz, ile znormalizowanych wartości powtarza się więcej niż raz. Rób to osobno dla e-maila, telefonu i NIP-u, bo wyniki się nie pokrywają. Pomiar zajmuje kilka godzin i daje punkt odniesienia do porównania po kwartale.

Czy scalanie rekordów w CRM da się cofnąć?

W popularnych CRM-ach, w tym w Pipedrive i HubSpot, scalenie jest nieodwracalne. Dlatego przed masowym merge zrób pełny eksport bazy poza system oraz mapę scaleń z identyfikatorami rekordu ocalałego i wchłoniętego. Pierwszą partię ogranicz do kilkudziesięciu par i przejrzyj wynik z osobą, która na tych danych pracuje na co dzień.

Po czym najlepiej łączyć duplikaty firm?

Po NIP-ie, bo jest jedynym identyfikatorem niezależnym od tego, jak ktoś zapisał nazwę. Tam, gdzie NIP-u brakuje, uzupełnij go najpierw, a nazwę i adres nadpisz danymi z publicznych rejestrów: wykazu podatników VAT Ministerstwa Finansów i API Krajowego Rejestru Sądowego. Oba są bezpłatne. Uwaga na oddziały jednej spółki, które dzielą ten sam NIP.

Co zrobić z dealami, które wiszą od roku?

Archiwizować, nie kasować. Ustaw regułę: brak aktywności powyżej ustalonej liczby dni oznacza tag i pozycję na cotygodniowej liście właściciela, a brak reakcji przez kolejne dwa tygodnie oznacza automatyczne zamknięcie ze statusem przegranej i powodem „brak kontaktu". Rekord zostaje w bazie z datą i powodem. Progi dobierz do długości swojego cyklu sprzedaży.

Czy usuwanie starych kontaktów z CRM jest zgodne z RODO?

Nie tylko zgodne, ale w wielu przypadkach wymagane: RODO nakazuje przechowywać dane osobowe wyłącznie przez okres niezbędny do celu przetwarzania, więc leady bez żadnego kontaktu od kilku lat powinny zostać usunięte albo zanonimizowane. Ustal politykę retencji osobno dla leadów i osobno dla klientów, których dane trzymacie na innej podstawie (rozliczenia, przedawnienie roszczeń). Przy scalaniu duplikatów pilnuj, żeby wycofana zgoda albo sprzeciw zawsze wygrywały ze zgodą z drugiego rekordu.

Podsumowanie

Brudny CRM rzadko jest problemem technicznym. Jest efektem tego, że dane wchodzą do systemu kilkoma drogami, z których żadna nikogo o nic nie pyta, i nie wychodzą z niego nigdy. Dlatego sprzątanie zaczynamy od wejścia, nie od bazy: jeden workflow między formularzem czy importem a CRM-em, który szuka istniejącego rekordu i normalizuje dane, zdejmuje większość przyszłej roboty.

Reszta jest kwestią kolejności. Normalizacja po NIP sprowadza pięć zapisów tej samej nazwy do jednego, merge z backupem i spisaną regułą „która wersja wygrywa" zamyka temat duplikatów, a archiwizacja martwych deali przywraca sens raportom. Samo sprzątanie jest projektem na kilka dni. Higiena, która ma je utrzymać, to jeden workflow i kwadrans kwartalnie, i to właśnie ta część najczęściej wypada z planu.

Chcecie ustalić, od czego zacząć u siebie i czy wystarczy poprawienie formularzy zamiast dużego czyszczenia? Umów bezpłatną konsultację — powiemy wprost, jeśli problem da się rozwiązać dwiema regułami w CRM i żadne wdrożenie nie jest potrzebne.

Przeczytaj również

Mikołaj Brunka Od teorii do wdrożenia

Pogadajmy o Twojej firmie. Bezpłatnie.

30 minut o Twoich procesach. Termin wybierasz od razu po wysłaniu.

Umów konsultację