كيف يمكننا المساعدة؟

يرجى توضيح الموضوع بإيجاز، وسنرد بالبريد الإلكتروني.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
إلى الصفحة الرئيسية

Dati dei clienti nella chat (ordini, spedizioni, fatture)

Consentire all’assistente IA di rispondere ai clienti autenticati sui propri ordini, in sicurezza tramite identità firmata, con campi definiti con precisione, consultati nel negozio o importati.

Con i dati dei clienti, l’assistente IA risponde a domande come «Dov’è il mio pacco?», «La mia fattura è stata pagata?» o «Che cosa c’era nel mio ultimo ordine?», per clienti autenticati e solo sui propri dati. La funzione è disponibile nei piani a pagamento.

Come vengono protetti i dati

Prerequisito: verifica dell’identità

L’assistente usa i dati dei clienti solo per visitatori la cui identità è stata confermata dal Suo server. Configuri un segreto in Progetto → Verifica dell’identità nell’account. Resta sul Suo server e non deve mai trovarsi nel browser o nel codice di incorporamento.

Per ogni cliente autenticato, il server calcola un hash con scadenza (al massimo 24 ore nel futuro) e lo passa al widget:

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

Un hash senza exp conferma comunque il visitatore (ad esempio per la cronologia), ma non basta per i dati dei clienti. Quando rinnova il segreto, quello precedente resta valido per 24 ore.

Firmare anche l’e-mail (per prenotazioni e integrazioni basate sull’e-mail). Un campo email accanto all’hash è confermato solo se fa parte della firma: userHash = HMAC-SHA256(secret, userId + "." + exp + "." + email), con l’indirizzo esattamente come lo passa a identify. Senza questa firma, il visitatore resta autenticato, ma l’assistente non prenota appuntamenti per quell’indirizzo e le integrazioni non lo cercano. La forma esistente userId + "." + exp continua a funzionare invariata.

Consultazione, importazione o entrambe

In Progetto → Dati dei clienti sceglie da dove l’assistente ottiene i dati:

Quali dati può ricevere l’assistente

Abilita ogni campo singolarmente. I valori predefiniti coprono le domande abituali:

Un campo disattivato non raggiunge mai l’assistente: nella consultazione viene scartato, nell’importazione non viene nemmeno memorizzato. Città e codice postale sono possibili solo se li abilita esplicitamente; via e nome restano sempre esclusi.

Che cosa non viene mai trasmesso

Questi dati non possono essere abilitati. Se il negozio li invia, vengono scartati:

Limiti

Massimo 10 ordini per risposta, 20 articoli per ordine, testi di massimo 200 caratteri, risposta completa di massimo 16 kB. I campi sconosciuti vengono scartati senza errore.

L’endpoint di consultazione

reactive.chat chiama il Suo endpoint con 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":"..."}

Il Suo endpoint deve:

  1. verificare la firma (confronto a tempo costante) e rifiutare richieste il cui X-RC-Zeit differisca di oltre 5 minuti,
  2. restituire solo dati dello user_id indicato,
  3. essere raggiungibile tramite https sulla porta 443 a un indirizzo pubblico, senza reindirizzamenti,
  4. rispondere entro 3 secondi.

Risposta:

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

Un esempio PHP completo è disponibile nella documentazione per sviluppatori (kundendaten-referenz-endpunkt.php).

Con Verifica connessione, reactive.chat chiama l’endpoint con user_id rc-test e tipo di richiesta test e mostra l’esito. Restituisca una lista vuota o un ordine di esempio.

Importazione tramite API

Con una chiave API che ha il permesso 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 è il numero del progetto; se lo spazio di lavoro ha un solo progetto, può ometterlo. Un PUT sostituisce tutti gli ordini di questo ID cliente (massimo 50). DELETE /v1/kundendaten/4711?project_id=123 li rimuove. I dati importati vengono conservati cifrati da noi ed eliminati 90 giorni dopo l’ultima importazione: invii quindi i cambiamenti continuamente, ad esempio a ogni modifica dello stato.

Visitatori non autenticati

Se qualcuno senza identità confermata chiede informazioni su un ordine, l’assistente non consulta nulla. Mostra invece un avviso configurato in Progetto → Dati dei clienti: un testo per lingua e, facoltativamente, un link di accesso. In alternativa, passa la domanda al team.

Che cosa viene memorizzato

Risoluzione dei problemi

Approfondimenti nella documentazione

In dettaglio: Endpoint dei dati dei clienti. Tutti i capitoli sono nella documentazione.

آخر تحديث: