Zákaznická data v chatu (objednávky, doprava, faktury)
Nechte asistenta AI odpovídat přihlášeným zákazníkům na otázky o jejich vlastních objednávkách: bezpečně přes podepsanou identitu, s přesně určenými poli, načítáním z obchodu nebo importem.
Se zákaznickými daty asistent AI odpovídá na otázky jako „Kde je můj balík?“, „Je moje faktura zaplacená?“ nebo „Co bylo v mé poslední objednávce?“ — pro přihlášené zákazníky a pouze o jejich vlastních datech. Funkce je dostupná v placených tarifech.
Jak jsou data chráněna
- Prohlížeč nic nedokazuje. Žádné číslo objednávky či faktury, e-mailová adresa ani cokoli zobrazeného na stránce nebo napsaného v chatu nepřiděluje přístup. Kdo smí vidět která data, určuje pouze identita podepsaná vaším serverem.
- Číslo je pouze filtr. Pokud zákazník uvede číslo objednávky, hledá se jen mezi jeho vlastními objednávkami. Cizí číslo nic nevrátí.
- O každém poli rozhodujete vy. Asistent dostane pouze pole, která povolíte. Vše ostatní se při přijetí zahodí — i když to obchod odešle.
- Bez úložiště dat na naší straně (načítání). Při načítání se reactive.chat ptá vašeho obchodu u každé otázky a odpověď neukládá. Při importu se data u nás ukládají zašifrovaně a nejpozději po 90 dnech se smažou.
- Pouze vlastní stroje. Data jdou jen na naše vlastní servery AI (nebo váš vlastní uzel AI), nikdy do služby AI třetí strany.
Předpoklad: ověření identity
Asistent používá zákaznická data pouze pro návštěvníky, jejichž identitu potvrdil váš server. V účtu nastavte tajný klíč pod Projekt → Ověření identity. Zůstává na vašem serveru a nikdy nepatří do prohlížeče ani vkládacího kódu.
Pro každého přihlášeného zákazníka server vypočítá hash s časem vypršení (nejvýše 24 hodin dopředu) a předá ho widgetu:
$userId = (string) $customer->id;
$exp = time() + 3600;
$hash = hash_hmac('sha256', $userId . '.' . $exp, getenv('RC_IDENT_SECRET'));
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_SECRET)
.update(String(user.id) + '.' + exp).digest('hex');
// in the template: ReactiveChat('identify', { userId: '<id>', userHash: '<hash>', exp: <exp> });
Hash bez exp stále potvrzuje návštěvníka (například pro historii konverzací), ale pro zákaznická data nestačí. Když obnovíte tajný klíč, starý zůstává platný 24 hodin.
Podepsání také e-mailu (pro rezervace termínů a integrace založené na e-mailu). email vedle hashe se považuje za potvrzený, pouze pokud je součástí podpisu: userHash = HMAC-SHA256(secret, userId + "." + exp + "." + email) — adresa přesně tak, jak ji předáváte do identify. Bez toho návštěvník zůstává přihlášený, ale asistent pro tuto adresu nezarezervuje termín a integrace ji nevyhledají. Dosavadní podoba userId + "." + exp funguje dál beze změny.
Načítání, import nebo obojí
Pod Projekt → Zákaznická data vybíráte, odkud asistent data získává:
- Načítat z vašeho obchodu – reactive.chat volá endpoint u každé odpovídající otázky. Data zůstávají u vás. Doporučeno.
- Import přes API – obchod odesílá objednávky zákazníka do reactive.chat. Užitečné, pokud obchod nemůže nabídnout endpoint.
- Obojí – nejprve importovaná data; pokud se tam nic nenajde, následuje načtení.
Která data smí asistent dostat
Každé pole povolujete samostatně. Výchozí nastavení pokrývá běžné otázky:
bestellung.nummer– číslo objednávky. Výchozí: vždy zapnuto. Použití: povinné — bez čísla není objednávkabestellung.datum– datum objednávky (YYYY-MM-DD). Výchozí: zapnuto. Použití: „Kdy proběhla objednávka?“bestellung.status– stav objednávky jako text. Výchozí: zapnuto. Použití: „Byla objednávka odeslána?“bestellung.summe– celková částka. Výchozí: zapnuto. Použití: „Kolik činila platba?“bestellung.waehrung– měna (ISO, například EUR). Výchozí: zapnuto. Použití: jen společně s celkovou částkoupositionen.name– název položky. Výchozí: zapnuto. Použití: „Co bylo v objednávce?“positionen.menge– množství položky. Výchozí: zapnuto. Použití: „Jaké bylo objednané množství?“versand.dienst– dopravce. Výchozí: zapnuto. Použití: „Kdo doručuje balík?“versand.sendungsnummer– číslo zásilky. Výchozí: zapnuto. Použití: „Kde je můj balík?“versand.status– stav dopravy jako text. Výchozí: zapnuto. Použití: „Je na cestě?“versand.ort– město doručovací adresy. Výchozí: vypnuto. Použití: „Kam míří můj balík?“versand.plz– PSČ doručovací adresy. Výchozí: vypnuto. Použití: jako výšerechnung.nummer– číslo faktury. Výchozí: zapnuto. Použití: „Která faktura k tomu patří?“rechnung.status– stav platby jako text. Výchozí: zapnuto. Použití: „Je moje faktura zaplacená?“rechnung.faellig_am– datum splatnosti. Výchozí: zapnuto. Použití: „Kdy musím zaplatit?“
Vypnuté pole se k asistentovi nikdy nedostane: při načítání se zahodí, při importu se vůbec neuloží. Město a PSČ jsou záměrně možné pouze při výslovném povolení — ulice a jméno zůstávají vždy vyloučené.
Co se nikdy nepředává
Tato data nelze povolit. Pokud je obchod odešle, zahodí se:
- ulice, číslo domu a další adresní řádky
- jméno příjemce nebo zákazníka
- e-mailová adresa a telefonní číslo
- IBAN, BIC, číslo účtu a údaje karty
- datum narození
- hesla, tokeny a přístupové klíče
- daňová a identifikační čísla
Limity
Nejvýše 10 objednávek na odpověď, nejvýše 20 položek na objednávku, texty nejvýše 200 znaků, celá odpověď nejvýše 16 kB. Neznámá pole se zahazují bez chyby.
Načítací endpoint
reactive.chat volá endpoint metodou POST:
POST https://shop.your-domain.com/rc-customer-data
Content-Type: application/json
X-RC-Zeit: 1791196400
X-RC-Signatur: <hex(HMAC_SHA256(endpoint secret, X-RC-Zeit + "." + body))>
{"user_id":"4711","anliegen":"bestellung","referenz":"2026-0815","sprache":"en","nonce":"..."}
user_idje potvrzené ID zákazníka z ověření identity — nikdy něco převzatého z chatu.anliegenjebestellung(objednávka),lieferung(doručení),rechnung(faktura),retoure(vrácení) nebotestpro testovací tlačítko.referenzje číslo uvedené zákazníkem nebo prázdné. Hledejte ho jen mezi objednávkami tohotouser_id.
Váš endpoint musí:
- ověřit podpis (porovnání v konstantním čase) a odmítnout požadavky, jejichž
X-RC-Zeitse liší o více než 5 minut, - vracet pouze data daného
user_id, - být dostupný přes
httpsna portu 443 na veřejné adrese, bez přesměrování, - odpovědět do 3 sekund.
Odpověď:
{
"bestellungen": [
{
"nummer": "2026-0815", "datum": "2026-09-28", "status": "shipped",
"summe": "49.90", "waehrung": "EUR",
"positionen": [ { "name": "Balance bike blue", "menge": 1 } ],
"versand": { "dienst": "DHL", "sendungsnummer": "00340434...", "status": "out for delivery" },
"rechnung": { "nummer": "R-2026-1201", "status": "paid", "faellig_am": "2026-10-12" }
}
]
}
Úplný příklad PHP je dostupný ve vývojářské dokumentaci (kundendaten-referenz-endpunkt.php).
Pomocí Otestovat připojení reactive.chat zavolá endpoint s user_id rc-test a typem požadavku test a zobrazí výsledek. Vraťte pro něj prázdný seznam nebo vzorovou objednávku.
Import přes API
S klíčem API s oprávněním kundendaten:schreiben:
PUT https://reactive.chat/v1/kundendaten/4711?project_id=123
Authorization: Bearer <API key>
Content-Type: application/json
{"bestellungen":[ ... as above ... ]}
project_id je číslo vašeho projektu; pokud má pracovní prostor jen jeden projekt, můžete ho vynechat. PUT nahrazuje všechny objednávky tohoto ID zákazníka (nejvýše 50). DELETE /v1/kundendaten/4711?project_id=123 je odstraní. Importovaná data se u nás ukládají zašifrovaně a mažou 90 dnů po posledním importu — posílejte proto změny průběžně, například při každé změně stavu.
Nepřihlášení návštěvníci
Pokud se někdo bez potvrzené identity zeptá na objednávku, asistent nic nenačítá. Místo toho zobrazí upozornění nastavené pod Projekt → Zákaznická data: text pro každý jazyk a případně odkaz k přihlášení. Případně předá otázku týmu.
Co se ukládá
- Načítání: odpověď obchodu se používá pouze pro jednu odpověď asistenta a neukládá se — ani do konverzace, ani do znalostní báze.
- Import: zašifrovaně, nejvýše 90 dnů, smazání společně s projektem.
- Odpověď asistenta se zobrazuje v historii konverzace jako každá zpráva. Tým ji vidí na nástěnce.
Řešení problémů
- Asistent žádá zákazníka o přihlášení, přestože je přihlášený: pokud
expchybí, vypršelo nebo hash nesouhlasí, návštěvník se nepovažuje za potvrzeného. Ověřte tajný klíč, pořadíuserId + "." + expa hodiny serveru. - Testovací tlačítko hlásí „adresa není povolená“: endpoint musí být dostupný přes
httpsna veřejné adrese; interní adresy a jiné porty se odmítají. - Vaše strana hlásí chybu podpisu: podepsaný řetězec je
X-RC-Zeit + "." + bodys tajným klíčem endpointu — přesně přijaté tělo, ne znovu zakódované. - V odpovědi asistenta chybí pole: je povolené pod „Která data smí asistent dostat“?
Více v dokumentaci
Podrobně: Endpoint zákaznických dat. Všechny kapitoly jsou v dokumentaci.
อัปเดตล่าสุด: