wszystko, co zapisujemy o odwiedzającym, pole po polu

Widget czatu siedzi na twojej stronie, przed twoimi klientami, a każdy z nich powierza ci to, co ten widget zbiera. Więc oto cała lista: każde pole, które Spookat trzyma o odwiedzającym, kiedy się zapisuje, po co jest i jak długo zostaje. I dłuższa lista rzeczy, których nie trzymamy nigdy.
Jest krótka celowo. Przeczytasz ją w pięć minut, a większość sprawdzisz we własnej przeglądarce.
przed kliknięciem: nic o odwiedzającym
Launcher to jeden plik, około 2 kb, z cdn.spookat.com. Rysuje przycisk. Tylko tyle robi, dopóki ktoś go nie kliknie.
- Żadnych ciasteczek. Ani przed kliknięciem, ani po.
- Nic w pamięci przeglądarki odwiedzającego.
- 0 requestów do naszego API.
Na tym etapie zapisujemy jedną rzecz i nie dotyczy ona odwiedzającego. Kiedy twój launcher pierwszy raz załaduje się na twojej domenie, notujemy czas, raz na stronę, żeby dashboard mógł ci powiedzieć, że snippet działa. Żadnego liczenia odsłon, żadnego liczenia odwiedzających, nic na osobę. Naprawdę nie wiemy, ilu ludzi odwiedza twoją stronę, a zmierzyliśmy, co inne widgety robią przed kliknięciem, żeby pokazać, że to nie jest standard.
w przeglądarce odwiedzającego
Kiedy odwiedzający wyśle pierwszą wiadomość, widget zapisuje w local storage jego przeglądarki jedną wartość: losowy token czatu, pod kluczem nazwanym od twojej strony. Dzięki niemu widget znajdzie tę samą rozmowę, kiedy odwiedzający wróci jutro.
- Zapisuje się dopiero po zapisaniu pierwszej wiadomości. Otwarcie czatu i zamknięcie go nic nie zapisuje.
- To nie ciasteczko, więc nigdy nie jedzie z requestami do twojej strony ani do nikogo innego.
- Jeśli przeglądarka blokuje pamięć, czat i tak działa na tej odsłonie. Po prostu następnym razem nie będzie pamiętał rozmowy.
U siebie tego tokena też nie trzymamy. Trzymamy jego hash SHA-256, który wystarcza, żeby go rozpoznać, kiedy wróci, i jest bezużyteczny dla kogoś, kto ukradłby kopię naszych danych.
kiedy wysyła wiadomość
To jest ta część, która ma znaczenie, więc tu jest tabela. Każda wiadomość odwiedzającego zapisuje się z małym zrzutem kontekstu, zrobionym raz, w chwili wysłania.
| pole | przykład | po co |
|---|---|---|
| tekst | „wysyłacie do austrii?” | to jest wiadomość |
| czas | 2026-11-02 14:03 | kolejność i historia |
| strona | https://twojastrona.pl/cennik |
żeby zespół wiedział, na co patrzył |
| skąd przyszedł | https://www.wykop.pl/ |
to samo, krok wcześniej |
| język przeglądarki | de-AT |
żeby zespół mógł w nim odpisać |
| strefa czasowa i czas lokalny | Europe/Vienna, 15:03 |
„dzień dobry” o właściwej porze |
| rodzaj przeglądarki i systemu | chrome on android | „przycisk nie działa” ma z tym więcej sensu |
| kraj | AT | routing i kontekst |
| język widgetu | de | w nim wychodzi mail z odpowiedzią |
Dwa szczegóły przy polach ze stroną, bo łatwo je zepsuć. Z obu, ze strony i ze źródła, wycinamy query string i fragment. W query stringach lądują maile, numery zamówień i identyfikatory śledzące, więc nigdy do nas nie docierają. A „rodzaj przeglądarki” to dwuwyrazowa etykieta w stylu „safari on ios”, którą wyliczamy w pamięci. Pełnego user agenta nie trzymamy.
czego nie zapisujemy nigdy
- Adresu IP. Ani w rozmowie, ani w logu, ani w raporcie błędu, ani w backupie. Używamy go w pamięci, póki połączenie jest otwarte, do rate limitów i sprawdzenia kraju, a potem znika.
- Pełnego user agenta. Tylko dwuwyrazowa etykieta z tabeli.
- Query stringów i fragmentów, w żadnym URL-u.
- Historii przeglądania. Widzimy stronę, na której ktoś napisał, i tę tuż przed nią, obie bez query stringów. Nic wcześniej.
- Zachowania. Żadnych ruchów myszy, głębokości scrolla, czasu na stronie, nagrywania sesji.
- Fingerprintu. Niczego, co pozwoliłoby rozpoznać tę samą osobę na innej stronie albo na tej samej po wyczyszczeniu pamięci.
- Czegokolwiek przed kliknięciem, jak wyżej.
kraj bez adresu
Kraj bierze się z pliku na naszym własnym serwerze, darmowej bazy krajów od DB-IP. Kiedy odwiedzający wysyła wiadomość, serwer sprawdza jego adres w tym pliku, zapisuje dwuliterowy kod kraju i zapomina adres. Adres nigdy nie idzie do nikogo trzeciego, a z całego sprawdzania zostaje tylko wynik. Atrybucja DB-IP jest na naszej stronie /privacy, tak jak chce ich licencja.
jeśli zostawi maila
Jeśli nikt nie odpowie w ciągu pięciu minut, widget raz proponuje zostawienie maila, żeby odpowiedź, która przyjdzie, kiedy już wyjdzie, mogła do niego dotrzeć. Odwiedzający może też sam o to poprosić, wpisując /mail. Propozycja jest w każdym planie, a odpowiedzi mailem idą od pro w górę.
- Zapisujemy adres przy odwiedzającym i używamy go do jednej rzeczy: wysyłania mu twoich odpowiedzi.
- Każdy mail z odpowiedzią ma link do wypisania się, a kliknięcie go usuwa adres.
- Mail ma też link z powrotem do rozmowy, który działa raz. Trzymamy tylko hash tego linku, tak jak tokena czatu.
Żadnych newsletterów, żadnego „może ci się spodobać”, nic od nas. Te maile to twoje odpowiedzi.
jeśli twoja strona mówi, kto jest zalogowany
Od pro w górę twoja strona może powiedzieć czatowi, który z twoich użytkowników pisze. Zapisujemy twoje id użytkownika przy odwiedzającym i tylko wtedy, gdy jego podpis zgadza się z sekretem, który zna wyłącznie twój serwer. Zły albo brakujący podpis w ogóle się nie zapisuje. Nigdy nie dostajemy imienia, maila ani niczego innego twojego użytkownika, chyba że sam to wstawisz w id.
co dokłada twój zespół
Rozmowa trzyma też to, co pisze twoja strona:
- wiadomości zespołu, z imieniem, które każdy wybrał do pokazywania,
- notatki, których odwiedzający nigdy nie widzi,
- to, do kogo rozmowa jest przypisana i czy jest otwarta, czy zamknięta,
- tagi intencji, gdy już się pojawią (będą wkrótce), i tylko jeśli są włączone dla strony.
Nic z tego nie jest danymi o urządzeniu ani zachowaniu odwiedzającego. To jest rozmowa.
dokąd to idzie, i tylko jeśli tak ustawisz
Wszystko powyżej zostaje w Spookacie, dopóki czegoś nie podepniesz. Kiedy podepniesz, rozmowa idzie tam, gdzie ją skierujesz, i nigdzie indziej:
- Slack. Wątek pokazuje wiadomości, a jego karta statusu stronę, rodzaj przeglądarki, kraj i twoje id użytkownika, jeśli je wysłałeś.
- Webhooki. Domyślnie webhook niesie pełny tekst wiadomości, żeby twój CRM albo automatyzacja mogły go użyć. Jeśli wolisz trzymać tekst z dala od innych systemów, przełącz payload na same id, a odbiorca doczyta, czego potrzebuje.
- Agenci. Klucz API albo serwer MCP pozwala agentowi czytać rozmowy i odpisywać, z takim samym widokiem, jaki ma twój zespół.
- Mail. Maile z odpowiedziami niosą odpowiedzi twojego zespołu na adres, który zostawił odwiedzający.
- Tagi intencji i tłumaczenie na żywo, oba już wkrótce i tylko jeśli je włączysz. Tekst wiadomości idzie do modelu językowego, żeby go otagować albo przetłumaczyć, nigdy imię ani adres mailowy.
Usługi, z których korzystamy, żeby to wszystko działało, od wysyłki maili po backupy, są wypisane na /privacy. Niczego z tego nie sprzedajemy, nie dzielimy się tym z reklamodawcami i nie trenujemy na tym niczego.
jak długo to zostaje
Rozmowy są kasowane po 30 dniach na starter, 90 na pro i 365 na agency. Odwiedzający, któremu nie została żadna rozmowa, znika razem z nią, mail też. Kopie dostarczonych webhooków, które mogą nieść tekst wiadomości, znikają po 7 dniach. Backupy wygasają 30 dni po skasowaniu danych, które w nich są.
Admini mogą też w każdej chwili skasować pojedynczą rozmowę, a każdy w zespole może zablokować odwiedzającego. Jeśli właściciel usunie całą stronę, każda rozmowa i każdy odwiedzający na niej znikają w ciągu kilku minut.
jak to sprawdzić
Większość z tego sprawdzisz bez ufania nam na słowo.
- Twoja przeglądarka. Otwórz DevTools na stronie ze Spookatem, przeładuj, przefiltruj zakładkę network po
spookat. Jeden request przed kliknięciem. Zajrzyj w Application → Cookies: nic od nas. Wyślij wiadomość i spójrz na local storage: jeden klucz. - Twój eksport. Właściciel strony może pobrać z dashboardu wszystko, co Spookat trzyma dla strony, jako jeden plik JSON: każdą rozmowę, każdą wiadomość z kontekstem, mail każdego odwiedzającego, jeśli go zostawił. Poszukaj w nim adresu IP. Nie znajdziesz.
- Nasz test. Każdy build puszcza test, który prowadzi odwiedzającego przez cały produkt ze zmyślonym adresem z puli zarezerwowanej do dokumentacji: czat, odpowiedzi, mail, webhooki, eksport, usunięcie. Na koniec przeszukuje wszystko, co zapisaliśmy, i każdą linię, którą zalogowaliśmy, szukając tego adresu. Nic nie znajduje, a jeśli kiedyś znajdzie, build się wywala.
co to znaczy dla ciebie
Kiedy dodajesz Spookata do swojej strony, możesz powiedzieć swoim odwiedzającym dokładnie, co się dzieje, kiedy piszą, w dwóch zdaniach, i to będzie prawda: trzymamy wiadomość i trochę kontekstu o tym, gdzie została napisana, tak długo, jak historia w twoim planie, i nigdy ich adresu IP. Wersja długa jest na /privacy, z listą wszystkich podprocesorów.
To cała lista. Zobacz plany i wypróbuj go na swojej prawdziwej stronie przez 14 dni, bez karty.