Kako Vam možemo pomoći?

Ukratko nam opišite o čemu se radi – javit ćemo Vam se e-poštom.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Na početnu stranicu

Dane klientów w czacie (zamówienia, wysyłka, faktury)

Asystent AI odpowiada zalogowanym klientom na pytania o ich własne zamówienia – bezpiecznie dzięki podpisanej tożsamości, z dokładnie określonymi polami, przez pobieranie z Twojego sklepu albo import.

Dzięki danym klientów asystent AI odpowiada na pytania takie jak „Gdzie jest moja paczka?”, „Czy moja faktura jest już opłacona?” albo „Co było w moim ostatnim zamówieniu?” – zalogowanym klientom i tylko na temat ich własnych danych. Funkcja jest dostępna w płatnych planach.

Jak chronione są dane

Warunek: weryfikacja tożsamości

Asystent korzysta z danych klientów tylko w przypadku odwiedzających, których tożsamość potwierdził Twój serwer. W koncie, w sekcji Projekt → Weryfikacja tożsamości, utwórz sekret. Pozostaje on na Twoim serwerze i nigdy nie trafia do przeglądarki ani do fragmentu kodu (snippetu).

Dla każdego zalogowanego klienta Twój serwer oblicza hash z czasem ważności (najwyżej 24 godziny naprzód) i przekazuje go widżetowi:

$userId = (string) $klient->id;
$exp    = time() + 3600;
$hash   = hash_hmac('sha256', $userId . '.' . $exp, getenv('RC_IDENT_SEKRET'));
echo "<script>ReactiveChat('identify', { userId: " . json_encode($userId)
   . ", userHash: " . json_encode($hash) . ", exp: " . $exp . " });</script>";
const crypto = require('crypto');
const exp  = Math.floor(Date.now() / 1000) + 3600;
const hash = crypto.createHmac('sha256', process.env.RC_IDENT_SEKRET)
                   .update(String(user.id) + '.' + exp).digest('hex');
// w szablonie: ReactiveChat('identify', { userId: '<id>', userHash: '<hash>', exp: <exp> });

Hash bez exp nadal potwierdza odwiedzającego (np. na potrzeby historii rozmowy), ale nie wystarcza do danych klientów. Po odnowieniu sekretu stary pozostaje ważny jeszcze przez 24 godziny.

Podpisywanie także adresu e-mail (do rezerwacji terminów i integracji opartych na e-mailu). email obok hasha jest uznany za potwierdzony tylko wtedy, gdy wchodzi do podpisu: userHash = HMAC-SHA256(sekret, userId + "." + exp + "." + email) – adres dokładnie taki, jaki przekazujesz do identify. Bez tego odwiedzający pozostaje zalogowany, ale asystent nie zarezerwuje terminu na ten adres, a integracje nie będą go wyszukiwać. Dotychczasowa forma userId + "." + exp działa bez zmian.

Pobieranie, import czy oba

W sekcji Projekt → Dane klientów wybierasz, skąd asystent bierze dane:

Jakie dane może dostać asystent

Każde pole udostępniasz osobno. Ustawienia domyślne obejmują typowe pytania:

Wyłączone pole nigdy nie dociera do asystenta: przy pobieraniu jest odrzucane, przy imporcie w ogóle nie jest zapisywane. Miejscowość i kod pocztowy są celowo dostępne tylko po wyraźnym włączeniu – ulica i nazwisko zawsze pozostają poza zasięgiem.

Czego nigdy się nie przekazuje

Tych danych nie da się włączyć. Jeśli Twój sklep je wyśle, zostaną odrzucone:

Limity

Najwyżej 10 zamówień na odpowiedź, najwyżej 20 pozycji na zamówienie, teksty najwyżej 200 znaków, cała odpowiedź najwyżej 16 kB. Nieznane pola są odrzucane bez komunikatu o błędzie.

Endpoint do pobierania

reactive.chat wywołuje Twój endpoint metodą POST:

POST https://sklep.twoja-domena.pl/rc-dane-klientow
Content-Type: application/json
X-RC-Zeit: 1791196400
X-RC-Signatur: <hex(HMAC_SHA256(sekret endpointu, X-RC-Zeit + "." + treść))>

{"user_id":"4711","anliegen":"bestellung","referenz":"2026-0815","sprache":"pl","nonce":"..."}

Twój endpoint musi:

  1. sprawdzać podpis (porównanie w stałym czasie) i odrzucać żądania, których X-RC-Zeit różni się o ponad 5 minut,
  2. zwracać wyłącznie dane podanego user_id,
  3. być dostępny przez https na porcie 443 pod publicznym adresem, bez przekierowań,
  4. odpowiadać w ciągu 3 sekund.

Odpowiedź:

{
  "bestellungen": [
    {
      "nummer": "2026-0815", "datum": "2026-09-28", "status": "wysłane",
      "summe": "199.00", "waehrung": "PLN",
      "positionen": [ { "name": "Rowerek biegowy niebieski", "menge": 1 } ],
      "versand": { "dienst": "InPost", "sendungsnummer": "6200...", "status": "w doręczeniu" },
      "rechnung": { "nummer": "FV/2026/1201", "status": "opłacona", "faellig_am": "2026-10-12" }
    }
  ]
}

Pełny przykład w PHP znajdziesz w dokumentacji dla programistów (kundendaten-referenz-endpunkt.php).

Przycisk Testuj połączenie wywołuje Twój endpoint z user_id rc-test i rodzajem sprawy test oraz pokazuje wynik. Zwróć wtedy pustą listę albo przykładowe zamówienie.

Import przez API

Z kluczem API z uprawnieniem kundendaten:schreiben:

PUT https://reactive.chat/v1/kundendaten/4711?project_id=123
Authorization: Bearer <klucz API>
Content-Type: application/json

{"bestellungen":[ ... jak wyżej ... ]}

project_id to numer Twojego projektu; jeśli Twoja przestrzeń robocza ma tylko jeden projekt, możesz go pominąć. PUT zastępuje wszystkie zamówienia tego identyfikatora klienta (najwyżej 50). DELETE /v1/kundendaten/4711?project_id=123 je usuwa. Zaimportowane dane są przechowywane u nas w postaci zaszyfrowanej i usuwane 90 dni po ostatnim imporcie – wysyłaj więc zmiany na bieżąco, np. przy każdej zmianie statusu.

Niezalogowani odwiedzający

Jeśli ktoś bez potwierdzonej tożsamości zapyta o zamówienie, asystent niczego nie pobiera. Zamiast tego pokazuje komunikat, który ustawiasz w sekcji Projekt → Dane klientów: tekst w każdym języku i opcjonalnie link do logowania. Alternatywnie przekazuje pytanie Twojemu zespołowi.

Co jest zapisywane

Rozwiązywanie problemów

Więcej w dokumentacji

Szczegółowo: Endpoint danych klientów. Wszystkie rozdziały znajdziesz w dokumentacji.

Zadnje ažurirano: