Tutorial dettagliato Integrazioni

Passare il contesto del cliente a un chatbot IA per l'e-commerce

Consenti a una pagina ordini autenticata di fornire l'ID ordine corrente, dimostra che il connector lo utilizza, sostituiscilo quando il visitatore cambia ordine e proteggi il pattern di produzione.

Intermedio28 min di lettura05 agosto 2026
Passare il contesto del cliente a un chatbot IA per l'e-commerce

Per passare il contesto del cliente a un chatbot IA in modo sicuro, lascia che la pagina selezioni il record corrente mentre un'API autorizzata dal server rimane l'unica fonte di verita.

Una pagina di e-commerce autenticata sa gia quale cliente e quale ordine il visitatore sta visualizzando. Il contesto di sessione consente a quella pagina di passare un insieme limitato di valori correnti all'assistente, in modo che il visitatore possa chiedere “Where is my order?” senza digitare nuovamente l'ID dell'ordine.

Questo tutorial utilizza il portale fittizio Northstar Orders, il widget reale WebChatAgent e un endpoint HTTP controllato DummyJSON. La pagina fornisce `order_id`; un API Connector di sola lettura fornisce lo stato e l'ETA fittizi. Nessun dato reale di clienti, spedizioni, negozi, conti di pagamento o credenziali e coinvolto.

Dimostrerai tre stati distinti: l'assenza di contesto richiede un ID, `A-1023` diventa automaticamente l'argomento del connector e un evento di runtime lo sostituisce con `A-2048`. Confronterai inoltre l'attributo HTML, il globale JavaScript, l'evento di runtime, le interfacce WordPress e gli alias white-label.

Il contesto del browser migliora la praticita ma non costituisce un'autenticazione. Il pattern di produzione limita i domini consentiti e passa un token opaco a breve durata che la tua API convalida lato server prima di restituire la risposta minima necessaria.

Player a due clic conforme alla privacy

Chatbot IA per l'e-commerce: conosce l'ordine prima che tu lo chieda

Invia il contesto di cliente e ordine al chatbot IA e-commerce, aggiornalo a runtime e usalo in sicurezza come argomento dell'API Connector.

YouTube · 6:51 · Inglese

Il player di YouTube rimane bloccato finché non selezioni Riproduci. Il caricamento connette il browser a YouTube e potrebbe trasferire dati tecnici a Google.

Apri direttamente su YouTube

Cosa otterrai alla fine

  • Una baseline verificata senza contesto
  • Un embed `context-data` che fornisce l'ordine corrente
  • Un risultato reale del connector in sola lettura per A-1023
  • Una sostituzione a runtime che utilizza successivamente solo A-2048
  • Opzioni di implementazione per JavaScript, WordPress e white-label
  • Una checklist per la produzione basata su domini, token opachi e convalida del server

Prima di iniziare

  • Un assistente WebChatAgent non di produzione con accesso all'API Connector
  • Una pagina di test in Light Mode in lingua inglese su un dominio consentito
  • Un endpoint mock di sola lettura con dati fittizi
  • Accesso al codice di incorporamento del widget o al posizionamento WordPress
  • Un'aspettativa documentata per baseline, contesto originale e contesto sostituito
  • Per la produzione: un backend in grado di emettere e convalidare token opachi a breve durata

Il contesto di pagina seleziona il record; l'API fornisce la verita

La pagina che incorpora il widget invia un record chiave-valore piatto con ogni richiesta di chat. Le chiavi corrispondenti possono soddisfare i campi obbligatori dell'API Connector, ma non diventano dati di conoscenza permanenti. Il connector esegue comunque la richiesta HTTP live e la sua risposta rimane autorevole per lo stato e l'ETA.

Un evento `webchatagent:context` sostituisce l'intero record corrente. La sostituzione impedisce a un vecchio ID ordine di persistere silenziosamente accanto a uno nuovo. Cancella il contesto con un oggetto vuoto o `null` quando il visitatore esegue il logout.

Tratta ogni valore del browser come un input modificabile. Le restrizioni di dominio controllano dove viene caricato il widget; un token firmato, a breve durata o opaco unito all'autorizzazione lato server controlla quale record privato puo essere restituito.

La pagina fornisce il contestoIl connector chiama l'API liveL'API convalida e restituisce

01–08

Configura passo dopo passo

1

Creare un connector in sola lettura per lo stato degli ordini

La chiave di contesto e il campo obbligatorio del connector devono utilizzare esattamente lo stesso nome.

Crea il connector su un assistente TEST dedicato. Usa GET e l'endpoint controllato `https://dummyjson.com/http/200/Order_{order_id}_is_in_transit_eta_August_8`. Aggiungi un campo Text obbligatorio denominato `order_id`; il segnaposto e il nome del campo devono coincidere carattere per carattere.

Indica allo strumento di eseguirsi solo per la domanda fittizia sullo stato dell'ordine, di utilizzare l'esatto `order_id` corrente dal contesto del visitatore e di restituire solo ID ordine, stato normalizzato ed ETA. L'endpoint e un mock pubblico, non un'integrazione con un negozio reale. Non inserire mai un token di produzione o un record cliente nel prompt del connector.

  • Metodo: solo GET
  • Campo obbligatorio: `order_id`
  • Dati: mock fittizio DummyJSON
La chiave di contesto e il campo obbligatorio del connector devono utilizzare esattamente lo stesso nome.
2

Registrare la baseline senza contesto

L'assistente deve richiedere l'ID ordine mancante e non deve inventare alcuno stato.

Incorpora il widget senza `context-data`, apri una nuova conversazione e chiedi esattamente: “Where is my order?” Anche se il portale mostra visibilmente A-1023, il widget non puo leggere il testo arbitrario della pagina e dovrebbe richiedere l'ID dell'ordine.

Fermati se la risposta contiene gia A-1023, in transit o August 8. Cio indica uno stato di conversazione non aggiornato, dati trapelati nel prompt o una risposta non verificata. Cancella la conversazione e il contesto del browser prima di proseguire.

L'assistente deve richiedere l'ID ordine mancante e non deve inventare alcuno stato.
3

Passare A-1023 con l'attributo context-data

Utilizza un record piatto e ridotto che contenga solo i valori necessari in questa sessione.

Per una pagina renderizzata lato server, aggiungi `context-data="Customer=Jane Doe;order_id=A-1023;locale=en-US"` a `<web-chat-agent>`. Sono supportate coppie separate da punto e virgola e un oggetto JSON piatto; gli oggetti nidificati non sostituiscono una richiesta di backend dedicata.

Il record normalizzato consente al massimo 20 chiavi, 64 caratteri per chiave, 500 per valore e 4,000 caratteri serializzati in totale. Usa chiavi macchina stabili come `order_id`, evita dati sensibili e mantieni facoltative le etichette di visualizzazione come Customer.

Utilizza un record piatto e ridotto che contenga solo i valori necessari in questa sessione.
4

Dimostrare che A-1023 raggiunge il connector

La stessa domanda restituisce ora lo stato senza richiedere nuovamente l'ID.

Avvia una nuova conversazione con contesto abilitato e ripeti “Where is my order?” L'assistente dovrebbe usare A-1023 per l'argomento richiesto dello strumento `order_id`, chiamare l'endpoint GET e rispondere che l'ordine fittizio e in transito con ETA August 8.

La dimostrazione combina tre osservazioni: l'embed contiene A-1023, l'URL del connector contiene il segnaposto `{order_id}` e la risposta live del mock contiene A-1023 piu il testo dello stato. Il contesto seleziona il record; la risposta dell'endpoint fornisce lo stato.

La stessa domanda restituisce ora lo stato senza richiedere nuovamente l'ID.
5

Sostituire il contesto dopo il login o la navigazione

L'evento di runtime sostituisce l'intero record mentre il widget rimane aperto.

Quando il visitatore passa ad A-2048, invia l'evento `new CustomEvent('webchatagent:context', { detail: { Customer: 'Jane Doe', order_id: 'A-2048', locale: 'en-US' } })`. Esegui questa operazione solo dopo che lo stato della pagina e la sessione autorizzata concordano sul nuovo record.

La sostituzione e intenzionale: le chiavi omesse scompaiono anziche persistere. Al logout, invia un oggetto vuoto o `null`. Non unire i vecchi valori di cliente e ordine nel codice dell'applicazione a meno che tale comportamento non sia esplicitamente richiesto e testato.

L'evento di runtime sostituisce l'intero record mentre il widget rimane aperto.
6

Verificare che venga usato solo A-2048 successivamente

La chiamata successiva del connector non deve riutilizzare il vecchio ID ordine dalla cronologia della chat.

Mantieni aperto il widget e chiedi: “What is the status of the order now shown on this page?” La risposta successiva deve contenere A-2048 e lo stato del mock, e non deve menzionare A-1023.

Salva questo test a tre stati come regressione: contesto mancante, contesto originale e sostituzione a runtime. Ripetilo dopo modifiche a connector, prompt di sistema, modello, widget o applicazione host. Registra domanda, contesto corrente, argomento dello strumento, risposta dell'endpoint e timestamp.

La chiamata successiva del connector non deve riutilizzare il vecchio ID ordine dalla cronologia della chat.
7

Scegliere tra attributo, globale, evento o integrazione della piattaforma

Tutti i punti di ingresso supportati si normalizzano nello stesso contesto visitatore corrente.

Usa l'attributo HTML per i valori renderizzati lato server. Imposta `window.webchatagentContext` prima dello script asincrono del widget quando JavaScript gestisce la sessione iniziale. Usa `webchatagent:context` per login, logout, account, carrello, prodotto o cambi di route successivi al caricamento.

In WordPress, usa il filtro `webchatagent_context_data` per i valori generati centralmente o `[webchatagent_inline context-data="order_id=A-1023"]` per un posizionamento inline. I client white-label utilizzano `window.chatWidgetContext` e l'evento `chat-widget:context` con una semantica di sostituzione identica.

Tutti i punti di ingresso supportati si normalizzano nello stesso contesto visitatore corrente.
8

Proteggere la ricerca in produzione

Il contesto del browser e un input modificabile, mai una prova dell'identita del cliente.

Limita `allowedDomains` agli host esatti di produzione e staging. Non autorizzare la ricerca di un ordine solo perche il contesto contiene nome del cliente, email o numero d'ordine; un visitatore puo modificare ogni valore nei DevTools.

Fai in modo che il tuo backend emetta un token opaco a breve durata per la sessione autenticata, passa solo quel token come contesto e consenti al connector di chiamare un endpoint di lettura con privilegi minimi. L'endpoint convalida token, titolarita del cliente, scadenza e ambito richiesto lato server, quindi restituisce solo ID ordine, stato ed ETA. Revoca o fai scadere il token al logout.

Il contesto del browser e un input modificabile, mai una prova dell'identita del cliente.

Esempio e risultato

Guarda il test pratico e il relativo risultato

Ogni tutorial include un input definito, il risultato atteso e un riepilogo trasparente di quanto effettivamente verificato in ambiente di prova.

Esempio pratico: passare il contesto del cliente a un chatbot IA per il tracciamento degli ordini

Questo scenario esatto è stato completato utilizzando l'account di prova temporaneo.

Verificato end-to-end

Input esatto del test

Ask “Where is my order?” first without context and then with `order_id=A-1023`. In the same context-enabled widget, dispatch `webchatagent:context` with `order_id=A-2048` and ask for the order now shown.

Risultato previsto

Senza contesto, l'assistente richiede un ID ordine. Con il contesto, il connector utilizza A-1023 e restituisce in transit con ETA August 8. Dopo la sostituzione, la risposta successiva usa A-2048 e non menziona A-1023.

Cosa è stato effettivamente verificato

L'esecuzione isolata in Light Mode in lingua inglese ha superato tutti e tre gli stati a fronte del mock controllato DummyJSON. La baseline ha richiesto l'ID mancante; il contesto originale ha prodotto A-1023, in transit e August 8; la sostituzione a runtime ha prodotto A-2048 senza A-1023 nella risposta piu recente. Il contratto del connector richiedeva `order_id`, e la pulizia finale ha riportato esattamente 0 utenti del tutorial.

L'esecuzione isolata in Light Mode in lingua inglese ha superato tutti e tre gli stati a fronte del mock controllato DummyJSON. La baseline ha richiesto l'ID mancante; il contesto originale ha prodotto A-1023, in transit e August 8; la sostituzione a runtime ha prodotto A-2048 senza A-1023 nella risposta piu recente. Il contratto del connector richiedeva `order_id`, e la pulizia finale ha riportato esattamente 0 utenti del tutorial.

Consigli e suggerimenti

Rendi affidabile la configurazione

Esegui i test con esempi realistici, registra i dati di base e modifica una sola impostazione alla volta. In questo modo i miglioramenti reali risulteranno evidenti.

Mantenere le chiavi coerenti tra pagina e connector

Usa un unico nome macchina documentato come `order_id` ovunque. Una minima variazione di ortografia o maiuscole/minuscole impedisce il riutilizzo automatico dei campi.

Separare la praticita dall'autorizzazione

Il contesto puo selezionare cio che il visitatore sta visualizzando. Solo il tuo backend puo stabilire cosa il visitatore autenticato e autorizzato a leggere o modificare.

Cancellare il contesto al logout

Invia un oggetto vuoto o null prima che il visitatore successivo possa usare il widget, e avvia una nuova conversazione quando cambia la titolarita dell'account.

Cosa fare se qualcosa non funziona

Risoluzione dei problemi

Verifica lo stato, i permessi e i dati di test in modo sistematico prima di modificare il modello o il prompt.

Il bot continua a chiedere l'ID dell'ordine

Verifica l'attributo `context-data` finale renderizzato, l'esatta grafia di `order_id`, l'ordine di caricamento degli script e il dominio consentito. Avvia una nuova conversazione in modo che un vecchio passaggio senza contesto non alteri il confronto.

Il connector riceve il vecchio ordine

Verifica che l'evento di runtime venga attivato dopo il cambio di pagina e sostituisca l'intero oggetto dei dettagli. Cancella lo stato applicativo obsoleto e verifica che sia la scheda visibile sia il payload emesso indichino A-2048.

L'assistente indica uno stato senza il risultato di uno strumento

Interrompi il rilascio. Rendi piu restrittivo il ruolo di sistema, mantieni lo stato al di fuori del contesto e del prompt e richiedi il connector in sola lettura per ogni risposta sullo stato dell'ordine.

I dati privati dell'ordine sono visibili dopo aver modificato il valore nel browser

Tratta questo problema come un difetto di autorizzazione. Rimuovi l'accesso diretto basato su ID, richiedi un token a breve durata convalidato dal server, ruota le credenziali esposte e controlla i log dell'endpoint.

Pronto per un test strutturato

Utilizza il video pubblicato come guida, quindi sostituisci l'URL del mock in produzione con un endpoint di sola lettura che convalidi un token di sessione opaco. Esegui nuovamente tutti e tre gli stati di contesto e aggiungi i risultati alla tua suite di test di regressione del rilascio.

Risorse correlate