Báwo la ràn yín lọ́wọ́?

Ẹ sọ fún wa ní ṣókí ohun tí ó dá lé — a ó dá yín lóhùn nípasẹ̀ ìméèlì.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Sí ojú-ìbẹ̀rẹ̀

Klantgegevens in de chat (bestellingen, verzending, facturen)

Laat de AI-assistent vragen van aangemelde klanten over hun eigen bestellingen beantwoorden: veilig via een ondertekende identiteit, met precies bepaalde velden, opgehaald uit uw shop of geïmporteerd.

Met klantgegevens beantwoordt de AI-assistent vragen zoals “Waar is mijn pakket?”, “Is mijn factuur al betaald?” of “Wat zat er in mijn laatste bestelling?” — voor aangemelde klanten en alleen over hun eigen gegevens. De functie is beschikbaar met de betaalde abonnementen.

Hoe de gegevens worden beschermd

Voorwaarde: identiteitsverificatie

De assistent gebruikt klantgegevens alleen voor bezoekers van wie uw server de identiteit heeft bevestigd. Stel daarvoor in uw account onder Project → Identiteitsverificatie een geheim in. Dit blijft op uw server en hoort nooit in de browser of het insluitfragment.

Voor elke aangemelde klant berekent uw server een hash met een vervaltijd (maximaal 24 uur in de toekomst) en geeft deze aan de widget door:

$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> });

Een hash zonder exp bevestigt de bezoeker nog steeds (bijvoorbeeld voor de gespreksgeschiedenis), maar is niet voldoende voor klantgegevens. Als u het geheim vernieuwt, blijft het oude 24 uur geldig.

Ook de e-mail ondertekenen (voor afspraken boeken en e-mailgebaseerde integraties). Een email naast de hash telt alleen als bevestigd als deze deel uitmaakt van de handtekening: userHash = HMAC-SHA256(secret, userId + "." + exp + "." + email) — het adres precies zoals u het aan identify doorgeeft. Zonder dit blijft de bezoeker aangemeld, maar boekt de assistent geen afspraak voor dat adres en zoeken integraties het niet op. De bestaande vorm userId + "." + exp blijft ongewijzigd werken.

Ophalen, importeren of beide

Onder Project → Klantgegevens kiest u waar de assistent de gegevens vandaan haalt:

Welke gegevens de assistent mag ontvangen

U schakelt elk veld afzonderlijk in. De standaardwaarden dekken de gebruikelijke vragen:

Een uitgeschakeld veld bereikt de assistent nooit: bij ophalen wordt het verworpen, bij import wordt het helemaal niet opgeslagen. Plaats en postcode zijn bewust alleen mogelijk wanneer u ze uitdrukkelijk inschakelt — straat en naam blijven altijd buiten beschouwing.

Wat nooit wordt doorgegeven

Dit kan niet worden ingeschakeld. Als uw shop het meestuurt, wordt het verworpen:

Limieten

Maximaal 10 bestellingen per antwoord, maximaal 20 artikelen per bestelling, teksten maximaal 200 tekens, het volledige antwoord maximaal 16 kB. Onbekende velden worden zonder foutmelding verworpen.

Het ophaalendpoint

reactive.chat roept uw endpoint aan met 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":"..."}

Uw endpoint moet:

  1. de handtekening verifiëren (vergelijking in constante tijd) en verzoeken afwijzen waarvan X-RC-Zeit meer dan 5 minuten afwijkt,
  2. alleen gegevens van de opgegeven user_id teruggeven,
  3. via https op poort 443 op een openbaar adres bereikbaar zijn, zonder omleidingen,
  4. binnen 3 seconden antwoorden.

Antwoord:

{
  "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" }
    }
  ]
}

Een volledig PHP-voorbeeld staat in de ontwikkelaarsdocumentatie (kundendaten-referenz-endpunkt.php).

Met Verbinding testen roept reactive.chat uw endpoint aan met user_id rc-test en verzoektype test en toont het resultaat. Geef daarvoor een lege lijst of een voorbeeldbestelling terug.

Import via API

Met een API-sleutel die de bevoegdheid kundendaten:schreiben heeft:

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

{"bestellungen":[ ... as above ... ]}

project_id is het nummer van uw project; als uw werkruimte maar één project heeft, kunt u dit weglaten. Een PUT vervangt alle bestellingen van deze klant-ID (maximaal 50). DELETE /v1/kundendaten/4711?project_id=123 verwijdert ze. Geïmporteerde gegevens worden bij ons versleuteld opgeslagen en 90 dagen na de laatste import verwijderd — stuur wijzigingen dus voortdurend door, bijvoorbeeld bij elke statuswijziging.

Bezoekers die niet zijn aangemeld

Als iemand zonder bevestigde identiteit naar een bestelling vraagt, haalt de assistent niets op. In plaats daarvan verschijnt een melding die u onder Project → Klantgegevens instelt: een tekst per taal en optioneel een aanmeldlink. Als alternatief draagt de assistent de vraag over aan uw team.

Wat wordt opgeslagen

Problemen oplossen

Verder lezen in de documentatie

Uitgebreid: Klantgegevensendpoint. Alle hoofdstukken staan in de documentatie.

Ìgbà àtúnṣe tó kẹ́yìn: