

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Guida introduttiva ad Amazon Lex V2
<a name="getting-started"></a>

## Panoramica di
<a name="getting-started-overview"></a>

Se non conosci Amazon Lex V2, ti consigliamo di leggere [Concetti fondamentali di Amazon Lex V2](how-it-works.md) prima. 

## Elenco di controllo dei prerequisiti
<a name="prerequisites-checklist"></a>

Prima di iniziare a creare il tuo primo bot Amazon Lex V2, assicurati di disporre di quanto segue:
+ **Account AWS**: avrai bisogno di un account AWS attivo. Se non ne hai uno, puoi crearlo gratuitamente e sfruttare il piano gratuito di AWS, che include 10.000 richieste di testo e 5.000 richieste vocali al mese per Amazon Lex V2. Per istruzioni di configurazione dettagliate, consulta[Registrati ad AWS](gs-account.md#gs-account-create).
+ **Utente IAM con autorizzazioni**: crea un utente IAM con autorizzazioni Amazon Lex V2 appropriate. Ti guideremo nella creazione di un utente amministratore per iniziare. Per informazioni complete sulle autorizzazioni e le politiche IAM, consulta[Gestione delle identità e degli accessi per Amazon Lex V2](security-iam.md).
+ **Browser supportato**: utilizza un browser Web moderno (Chrome, Firefox, Safari o Edge) per accedere alla console Amazon Lex V2.
+ **Impegno in termini di tempo**: concedi 30-60 minuti per completare gli esercizi iniziali, a seconda del tuo livello di esperienza.

**Stima dei costi:** gli esercizi di questa guida utilizzano risorse AWS Free Tier. Se rientri nei limiti del piano gratuito, non dovrebbero esserci costi. Altrimenti, i costi sono in genere inferiori a \$11 per il completamento di tutti gli esercizi.

## Introduzione ad Amazon Lex V2
<a name="getting-started-intro"></a>

Prima di poter utilizzare Amazon Lex V2, dovrai creare un account AWS e ottenere un ID account AWS. Crei un account utente e un ruolo IAM che ti fornisce le autorizzazioni necessarie per utilizzare Amazon Lex V2

Dopo aver creato i tuoi account, puoi iniziare a utilizzare Amazon Lex V2 con la console AWS o con l'API. 

Amazon Lex V2 fornisce operazioni API che puoi integrare con le tue applicazioni esistenti. Per un elenco delle operazioni supportate, consulta l'[API Reference.](https://docs.aws.amazon.com/lexv2/latest/APIReference/welcome.html) È possibile utilizzare una qualsiasi delle seguenti opzioni:
+ SDK AWS: quando utilizzi SDKs le richieste ad Amazon Lex V2 vengono firmate e autenticate automaticamente utilizzando le credenziali fornite. Ti consigliamo di utilizzare un SDK per creare la tua applicazione.
+ AWS CLI: puoi utilizzare l'interfaccia a riga di comando di AWS per accedere a qualsiasi funzionalità di Amazon Lex V2 senza dover scrivere alcun codice.

**Topics**

# Fase 1: configurare un account AWS e creare un utente amministratore
<a name="gs-account"></a>

Prima di utilizzare Amazon Lex V2 per la prima volta, completa le seguenti attività: 

1. [Registrati ad AWS](#gs-account-create)

1. [Creare un utente IAM](#gs-account-user)

## Registrati ad AWS
<a name="gs-account-create"></a>

Se disponi già di un account AWS, salta questa attività.

Quando ti registri ad Amazon Web Services (AWS), il tuo account AWS viene automaticamente registrato per tutti i servizi in AWS, incluso Amazon Lex V2. Ti vengono addebitati solo i servizi che utilizzi.

Con Amazon Lex V2, paghi solo per le risorse che utilizzi. Se sei un nuovo cliente AWS, puoi iniziare a usare Amazon Lex V2 gratuitamente. Per ulteriori informazioni, consulta [Piano di utilizzo gratuito AWS](https://aws.amazon.com/free/).

Se disponi già di un account AWS, passa all'operazione successiva. Se non si dispone di un account AWS, utilizzare la seguente procedura per crearne uno.

**Per creare un account AWS**
+ Per creare un account AWS, vedi [Come posso creare e attivare un nuovo account AWS?](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) nell'AWS Knowledge Center.

Annota l'ID del tuo account AWS perché ti servirà per l'attività successiva.

## Creare un utente IAM
<a name="gs-account-user"></a>

I servizi in AWS, come Amazon Lex V2, richiedono che tu fornisca delle credenziali al momento dell'accesso, in modo che il servizio possa determinare se disponi delle autorizzazioni per accedere alle risorse di proprietà di quel servizio. 

Crea un account utente IAM per accedere al tuo account per Amazon Lex V2. Per una guida completa sulla creazione di utenti IAM, consulta la sezione Guida [introduttiva a IAM nella IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html) *User Guide*.
+ Usa AWS Identity and Access Management (IAM) per creare un utente IAM
+ Aggiungi l'utente a un gruppo IAM con autorizzazioni amministrative
+ Concedi le autorizzazioni amministrative all'utente IAM che hai creato.

Puoi quindi accedere ad AWS utilizzando un URL speciale e le credenziali dell'utente IAM.

Per eseguire gli esercizi Nozioni di base di questa guida si presuppone che tu abbia creato un utente (`adminuser`) con privilegi di amministratore. Per creare un `adminuser` nel tuo account, utilizza la procedura indicata di seguito.

**Per creare un utente amministratore e accedere alla console**

1. Crea un utente amministratore chiamato `adminuser` nel tuo account AWS. Per istruzioni, consulta [Creating Your First IAM user and Administrators Group](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) nella *IAM User Guide*.

1. Come utente, puoi accedere alla Console di gestione AWS utilizzando un URL speciale. Per ulteriori informazioni, consulta la sezione [How Users Sign In to Your Account](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) (Come gli utenti accedono al tuo account) nella *IAM User Guide* (Guida per l'utente di IAM).

Per ulteriori informazioni su IAM, consulta la [Guida per l'utente di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

### Problemi di configurazione comuni
<a name="setup-troubleshooting"></a>

Se riscontri problemi durante la configurazione dell'account, ecco le soluzioni più comuni:
+ **Errori di autorizzazione negata**: assicurati che il tuo utente IAM disponga delle autorizzazioni Amazon Lex V2 necessarie. Per iniziare, sono consigliate le autorizzazioni di amministratore. Per informazioni dettagliate sulle autorizzazioni di Amazon Lex V2, consulta la sezione Sicurezza di questa guida.
+ **Problemi di accesso alla console**: assicurati di accedere con l'URL utente IAM corretto per il tuo account, non con la console AWS principale. Per ulteriori informazioni sulle best practice IAM, consulta la sezione Sicurezza di questa guida.
+ **Disponibilità regionale**: Amazon Lex V2 non è disponibile in tutte le regioni AWS. Controlla gli [endpoint e le quote Amazon Lex](https://docs.aws.amazon.com/general/latest/gr/lex.html) per confermare la disponibilità nella tua regione preferita. Per informazioni sulle impostazioni locali supportate, consulta. [Lingue e impostazioni locali supportate da Amazon Lex V2](how-languages.md)
+ **Limiti del livello gratuito**: monitora l'utilizzo per rispettare i limiti del piano gratuito: 10.000 richieste di testo e 5.000 richieste vocali al mese. Per informazioni dettagliate sui prezzi, consulta la pagina [dei prezzi di Amazon Lex](https://aws.amazon.com/lex/pricing/).
+ **Limiti di quota**: se riscontri dei limiti di servizio, rivedi le quote attuali e richiedi aumenti, se necessario. Per ulteriori informazioni, consulta [Linee guida e best practiceQuote](quotas.md).

Per ulteriori informazioni sulla risoluzione dei problemi, consulta la sezione Monitoraggio di questa guida per informazioni sui log degli errori e sul debug.

## Concessione dell'accesso programmatico
<a name="gs-account-programmatic-access"></a>

Per informazioni su come ottenere l'ID della chiave di accesso e la chiave di accesso segreta, consulta [Understanding and getting your AWS credenziali](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) nell'AWS General Reference.

### Configurazione dell'ambiente per sviluppatori
<a name="developer-setup"></a>

**Per gli sviluppatori:** se prevedi di utilizzare la CLI di AWS o SDKs, vorrai anche configurare il tuo ambiente di sviluppo. Installa l'AWS CLI e configurala con le tue chiavi di accesso. Per istruzioni dettagliate, consulta [Installazione dell'interfaccia a riga di comando di AWS](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). Per esempi di SDK, consulta. [Esempi di bot](examples.md)

## Approfondimenti
<a name="gs-next-step-2"></a>

[Fase 2: Guida introduttiva (console)](gs-console.md)

# Fase 2: Guida introduttiva (console)
<a name="gs-console"></a>

## Panoramica della console
<a name="console-overview"></a>

Il modo più semplice per imparare a usare Amazon Lex V2 è usare la console. Scegli il percorso di apprendimento più adatto al tuo ruolo e al tuo livello di esperienza:

## Scegli il tuo percorso di apprendimento
<a name="learning-paths"></a>

Scegli il percorso di apprendimento più adatto al tuo ruolo e al tuo livello di esperienza:
+ **No-Code Path (utenti aziendali)**: perfetto per analisti aziendali, product manager e utenti non tecnici che desiderano creare bot utilizzando solo l'interfaccia della console.
  + Inizia con: [Avvio rapido: crea un chatbot in 5 minuti](quick-start.md)
  + Quindi prova: [Esercizio 1: Creare un chatbot da un modello](exercise-1.md)
  + Impara: [Le migliori pratiche per iniziare](getting-started-best-practices.md)
+ **Developer Path**: ideale per gli sviluppatori di software che desiderano integrare Amazon Lex V2 con applicazioni APIs, utilizzare e implementare logiche di business personalizzate.
  + Inizia con: [Esercizio 1: Creare un chatbot da un modello](exercise-1.md)
  + Avanzato: [Esercizio 3: Crea un chatbot avanzato per l'assistenza clienti](exercise-3.md)
  + Quindi esplora: [Integrazione di una AWS Lambda funzione nel tuo bot Amazon Lex V2](lambda.md)
  + Revisione: [Esempi di bot](examples.md)
  + Avanzato: integrazione delle API e utilizzo dell'SDK
+ **Enterprise Path**: progettato per architetti e ingegneri che pianificano implementazioni su larga scala con requisiti di sicurezza, conformità e scalabilità.
  + Inizia con: [Esercizio 1: Creare un chatbot da un modello](exercise-1.md)
  + Esempio aziendale: [Esercizio 3: Crea un chatbot avanzato per l'assistenza clienti](exercise-3.md)
  + Revisione: best practice in materia di sicurezza e IAM
  + Esplora: [Usa Global Resiliency per distribuire bot in altre regioni](global-resiliency.md)
  + Piano: monitoraggio, registrazione e ottimizzazione dei costi

## Esercizi fondamentali
<a name="foundational-exercises"></a>

Indipendentemente dal percorso scelto, ti consigliamo di iniziare con questi esercizi fondamentali:
+ Esercizio 1: crea un bot Amazon Lex V2 utilizzando un modello, un bot predefinito che fornisce tutte le configurazioni di bot necessarie. È necessario solo un minimo di lavoro per testare la end-to-end configurazione.
+ Esercizio 2: esamina le strutture JSON inviate tra l'applicazione client e un bot Amazon Lex V2.
+ Esercizio 3: crea un chatbot avanzato per l'assistenza clienti che dimostri funzionalità di livello aziendale, tra cui gestione degli ordini, up-selling intelligente, generazione di lead e funzionalità basate sull'intelligenza artificiale per esperienze personalizzate dei clienti.

**Topics**

# Avvio rapido: crea un chatbot in 5 minuti
<a name="quick-start"></a>

Questa guida rapida ti aiuta a creare un chatbot Amazon Lex V2 funzionante in soli 5 minuti utilizzando modelli predefiniti. Avrai a disposizione un chatbot funzionale che potrai testare e personalizzare immediatamente in base alle tue esigenze.

## Passaggio 1: scegli un modello
<a name="choose-template"></a>

Amazon Lex V2 offre diversi modelli predefiniti per casi d'uso comuni:
+ **Domande frequenti sull'assistenza clienti**: gestisci le richieste più comuni del servizio clienti
+ **Prenotazione appuntamenti**: pianifica e gestisci gli appuntamenti
+ **Stato dell'ordine**: controlla le informazioni sull'ordine e lo stato della consegna
+ **Helpdesk IT**: fornisce supporto tecnico e risoluzione dei problemi

**Per selezionare un modello**

1. Apri la console Amazon Lex V2 all'indirizzo [https://console.aws.amazon.com/lexv2/](https://console.aws.amazon.com/lexv2/).

1. Scegli **Crea bot**.

1. Seleziona **Inizia con un modello**.

1. Scegli il modello di **domande frequenti sull'assistenza clienti** per questo avvio rapido.

1. Inserisci il nome di un bot, ad esempio**MyFirstChatbot**.

1. Scegli **Create** (Crea).

## Fase 2: Personalizzazione rapida (opzionale)
<a name="customize-template"></a>

Il modello è preconfigurato, ma puoi personalizzarlo rapidamente in base alle tue esigenze specifiche:

**Per personalizzare il tuo chatbot**

1. Nella panoramica del bot, esamina gli intenti preconfigurati.

1. Scegliete un intento da modificare, ad esempio. **GetAccountInfo**

1. Aggiungi i tuoi esempi di enunciati che corrispondono al modo in cui i tuoi clienti potrebbero formulare le richieste.

1. Aggiorna i messaggi di risposta in modo che corrispondano alla voce del tuo marchio.

1. Scegliere **Salva intento**.

## Passaggio 3: testa il tuo bot
<a name="test-bot"></a>

Metti subito alla prova il tuo chatbot utilizzando la console di test integrata:

**Per testare il tuo chatbot**

1. Scegli **Build** per compilare il tuo bot.

1. Attendi il completamento della compilazione (di solito 1-2 minuti).

1. Nella console di test a destra, digita: **I need help with my account**

1. Premi Invio e osserva la risposta del bot.

1. Prova altre frasi per verificare la comprensione del bot.

## Fase 4: Implementa il tuo bot
<a name="deploy-bot"></a>

Una volta che sei soddisfatto delle risposte del tuo chatbot, implementalo e usalo:

**Per implementare il tuo chatbot**

1. Scegli **Pubblica** dal menu delle azioni del bot.

1. Crea una nuova versione scegliendo **Crea versione**.

1. Crea un alias (ad esempio «Production») che rimanda alla tua versione.

1. Scegli il tuo metodo di integrazione.

## Fasi successive
<a name="next-steps-quick"></a>

Complimenti\$1 Ora hai un chatbot Amazon Lex V2 funzionante. Ecco cosa puoi fare dopo:
+ **Abilita la NLU assistita**: migliora la comprensione con l'elaborazione del linguaggio naturale basata sull'intelligenza artificiale.
+ **Aggiungi altri intenti**: espandi le funzionalità del tuo chatbot con casi d'uso aggiuntivi.
+ **Integrazione con Lambda**: aggiungi logica aziendale e integrazione di sistemi esterni. Per informazioni, consulta [Integrazione di una AWS Lambda funzione nel tuo bot Amazon Lex V2](lambda.md).
+ **Configura il monitoraggio: monitora** l'utilizzo e le prestazioni. Per informazioni, consulta [Misurazione delle metriche operative con Amazon CloudWatch](monitoring-cloudwatch.md).
+ **Scopri le funzionalità avanzate**: esplora la gestione del flusso di conversazione, i dialoghi a più turni e il cambio di contesto.

Per una guida più dettagliata, continua con. [Esercizio 1: Creare un chatbot da un modello](exercise-1.md)

# Esercizio 1: Creare un chatbot da un modello
<a name="exercise-1"></a>

In questo esercizio, crei il tuo primo chatbot Amazon Lex V2 e lo testerai nella console Amazon Lex V2. Per questo esercizio, utilizzi il **OrderFlowers**modello, che illustra un caso d'uso pratico e reale per l'e-commerce.

## OrderFlowers Esempio di bot
<a name="example-overview"></a>

Utilizza il **OrderFlowers**modello per creare un chatbot Amazon Lex V2 in grado di gestire le richieste di ordinazione di fiori. Questo esempio dimostra come le aziende possono automatizzare la raccolta degli ordini con chatbot intelligenti. Per ulteriori informazioni sulla struttura di un bot, consulta. [Concetti fondamentali di Amazon Lex V2](how-it-works.md)
+ **Intenti**: il bot include un intento principale:
  + `OrderFlowers`- Gestisce le richieste di ordinazione di fiori raccogliendo il tipo di fiore, la data di ritiro e l'ora di ritiro
+ **Tipi di slot**: il bot utilizza tipi di slot integrati che riconoscono e gestiscono automaticamente i formati di dati più comuni:
  + [Amazon. Data](built-in-slot-date.md)- Riconosce date come «domani», «venerdì prossimo» o «15 marzo»
  + [Amazon.time](built-in-slot-time.md)- Riconosce orari come «14:00», «mezzogiorno» o «le tre e un quarto»
  + `FlowerTypes`(personalizzato) - Varietà di fiori specifiche come «rose», «tulipani», «gigli»
+ **Slot**: l' OrderFlowers intento richiede le seguenti informazioni prima che il bot possa evadere l'ordine dei fiori:
  + `FlowerType`(tipo FlowerTypes personalizzato) - Il tipo di fiori da ordinare
  + `PickupDate`([Amazon. Data](built-in-slot-date.md)tipo) - Quando raccogliere i fiori
  + `PickupTime`([Amazon.time](built-in-slot-time.md)tipo) - A che ora raccogliere i fiori
+ **Esempi di enunciati**: i seguenti esempi di enunciati mostrano i modi naturali in cui gli utenti possono richiedere ordini di fiori:
  + «Vorrei raccogliere fiori»
  + «Voglio ordinare dei fiori»
  + «Posso ritirare dei fiori?»
  + «Devo comprare dei fiori»
+ **Prompt**: dopo che ha identificato l'intento, il bot utilizza i seguenti prompt per riempire gli slot:
  + Prompt per lo slot `FlowerType`: "What type of flowers would you like to order?"
  + Richiedi lo `PickupDate` slot: «In che giorno vuoi che il \$1FlowerType\$1 venga ritirato?»
  + Richiedi lo `PickupTime` slot: «A che ora vuoi che il \$1FlowerType\$1 venga ritirato?»
  + Dichiarazione di conferma: «Ok, il tuo \$1FlowerType\$1 sarà pronto per il ritiro entro \$1PickupTime\$1 il \$1PickupDate\$1. Does this sound okay?" 

## Crea il tuo bot
<a name="create-bot-procedure"></a>

**Per creare un bot Amazon Lex V2 (console)**

1. Accedi alla Console di gestione AWS e apri la console Amazon Lex all'indirizzo [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Scegli **Crea bot**.

1. Per il **metodo di creazione**, scegli **Inizia con un esempio**.

1. Nella sezione **Bot di esempio**, scegli **OrderFlowers**dall'elenco.

1. Nella sezione **Configurazione del bot**, assegna al bot un nome e una descrizione opzionale. Il nome deve essere unico nel tuo account.

1. Nella sezione **Autorizzazioni**, scegli **Crea un nuovo ruolo con le autorizzazioni Amazon Lex di base**. In questo modo verrà creato un ruolo AWS Identity and Access Management (IAM) con le autorizzazioni necessarie ad Amazon Lex V2 per eseguire il bot.

1. Nella sezione **Children's Online Privacy Protection Act (COPPA)**, fai la scelta appropriata.

1. Nelle sezioni **Timeout della sessione** e **Impostazioni avanzate**, lascia le impostazioni predefinite.

1. Scegli **Next (Successivo)**. Amazon Lex V2 crea il tuo bot.

## Aggiungi una lingua al tuo bot
<a name="add-language-procedure"></a>

Dopo aver creato il bot, è necessario aggiungere una o più lingue supportate dal bot. Una lingua contiene gli intenti, i tipi di slot e gli slot che il bot utilizza per conversare con gli utenti.

**Per aggiungere una lingua a un bot**

1. Nella sezione **Lingua**, scegli una lingua supportata e aggiungi una descrizione.

1. Lascia i campi relativi alla **soglia del punteggio di confidenza nell'**interazione vocale** e nella classificazione degli intenti con i relativi valori** predefiniti.

1. Scegli **Fine** per aggiungere la lingua al bot.

## Metti alla prova il tuo bot
<a name="test-bot-procedure"></a>

Dopo **aver scelto Fine**, la console apre l'editor degli intenti. Puoi usare l'editor degli intenti per esaminare gli intenti usati dal bot. Quando hai finito di esaminare il bot, puoi testarlo.

**Per testare il bot OrderFlowers**

1. Scegli **Costruisci** nella parte superiore della pagina. Attendi che il bot crei.

1. Quando la build è completa, scegli **Test** per aprire la finestra di test.

1. Esegui il test del bot. Inizia la conversazione con uno degli esempi di espressioni, ad esempio «Vorrei raccogliere dei fiori».

## Abilita la NLU per migliorare la comprensione
<a name="enable-assisted-nlu"></a>

Ora che hai un chatbot funzionante, ottimizziamolo con Assisted NLU per migliorare il riconoscimento degli intenti e la risoluzione degli slot. Assisted NLU utilizza Large Language Models (LLMs) per comprendere meglio le richieste degli utenti, anche quando usano frasi diverse rispetto agli esempi di formazione.

**Per abilitare Assisted NLU**

1. Nella console Amazon Lex V2, accedi alle impostazioni del tuo bot.

1. Nel riquadro di navigazione a sinistra, scegli **Impostazioni del bot**.

1. **In **Assisted NLU**, scegli Abilita.**

1. Scegli **Salva** per applicare le modifiche.

1. Crea nuovamente il tuo bot per applicare il miglioramento della NLU assistita.

**Prova il miglioramento: prova** queste varianti nella tua console di test per vedere come Assisted NLU gestisce le diverse formulazioni:
+ «Voglio comprare delle rose» (dovrebbe innescare OrderFlowers intent and capture) FlowerType
+ «Posso farmi consegnare dei fiori domani?» (dovrebbe innescare l' OrderFlowers intento e la cattura PickupDate)
+ «Ho bisogno di tulipani per il ritiro alle 15:00» (dovrebbe attivare OrderFlowers intent and capture e) FlowerType PickupTime

Nota come il chatbot è in grado di comprendere queste variazioni naturali senza doverle aggiungere come esempi espliciti di enunciati. Questo è supportato da Assisted NLU, che utilizza l'intelligenza artificiale per migliorare la comprensione del linguaggio naturale.

## Fasi successive
<a name="getting-started-next-steps"></a>

Ora che hai creato il tuo primo bot utilizzando un modello, puoi usare la console per creare il tuo bot. Per istruzioni sulla creazione di un bot personalizzato e per ulteriori informazioni sulla creazione di bot, consulta[Utilizzo dei bot Amazon Lex V2](building-bots.md).

# Esercizio 2: Rivedi il flusso di conversazione
<a name="exercise-2"></a>

 In questo esercizio esaminerai le strutture JSON inviate tra l'applicazione client e il bot Amazon Lex V2 in cui hai creato. [Esercizio 1: Creare un chatbot da un modello](exercise-1.md) La conversazione utilizza l'[RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html)operazione per generare le strutture JSON. [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html)Restituisce le stesse informazioni delle intestazioni HTTP nella risposta.

Le strutture JSON sono divise per ogni turno della conversazione. Un *turno* è una richiesta dall'applicazione client e una risposta dal bot. 

## Turno 1
<a name="exercise-2-turn-1"></a>

Durante il primo turno della conversazione, l'applicazione client avvia la conversazione con il bot. Sia l'URI che il corpo della richiesta forniscono informazioni sulla richiesta.

```
POST /bots/botId/botAliases/botAliasId/botLocales/localeId/sessions/sessionId/text HTTP/1.1
Content-type: application/json

{
    "text": "I would like to order flowers"
}
```
+ L'URI identifica il bot con cui comunica l'applicazione client. Include anche un identificatore di sessione generato dall'applicazione client che identifica una conversazione specifica tra un utente e il bot.
+ Il corpo della richiesta contiene il testo che l'utente ha digitato nell'applicazione client. In questo caso, viene inviato solo il testo, tuttavia l'applicazione può inviare informazioni aggiuntive, come gli attributi della richiesta o lo stato della sessione. Per maggiori informazioni, vedi l'operazione [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html).

A partire da`text`, Amazon Lex V2 rileva l'intenzione dell'utente di ordinare fiori. Amazon Lex V2 sceglie uno degli slot dell'intento (`FlowerType`) e uno dei prompt per lo slot, quindi invia la seguente risposta all'applicazione client. Il client mostra la risposta all'utente.

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": null,
                    "PickupDate": null,
                    "PickupTime": null
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 0.95
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "What type of flowers would you like to order?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "FlowerType",
            "type": "ElicitSlot"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": null,
                "PickupDate": null,
                "PickupTime": null
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

## Turno 2
<a name="exercise-2-turn-2"></a>

Nel turno 2, l'utente risponde alla richiesta del bot Amazon Lex V2 nel turno 1 con un valore che riempie lo slot. `FlowerType`

```
{
    "text": "1 dozen roses"
}
```

La risposta per il turno 2 mostra lo `FlowerType` slot occupato e fornisce una richiesta per ottenere il valore dello slot successivo.

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": null,
                    "PickupTime": null
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 0.98
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "What day do you want the dozen roses to be picked up?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "PickupDate",
            "type": "ElicitSlot"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": null,
                "PickupTime": null
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

## Turno 3
<a name="exercise-2-turn-3"></a>

Nel turno 3, l'utente risponde alla richiesta del bot Amazon Lex V2 nel turno 2 con un valore che riempie lo slot. `PickupDate`

```
{
    "text": "next monday"
}
```

La risposta per il turno 3 è occupata da entrambi gli `PickupDate` slot `FlowerType` e fornisce una richiesta per ottenere il valore dell'ultimo slot.

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": {
                        "value": {
                            "interpretedValue": "2022-12-28",
                            "originalValue": "next monday",
                            "resolvedValues": [
                                "2021-01-04"
                            ]
                        }
                    },
                    "PickupTime": null
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 1.0
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "At what time do you want the 1 dozen roses to be picked up?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "PickupTime",
            "type": "ElicitSlot"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": {
                    "value": {
                        "interpretedValue": "2021-01-04",
                        "originalValue": "next monday",
                        "resolvedValues": [
                            "2021-01-04"
                        ]
                    }
                },
                "PickupTime": null
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f",
        "sessionAttributes": {}
    }
}
```

## Turno 4
<a name="exercise-2-turn-4"></a>

Nel turno 4, l'utente fornisce il valore finale dello slot per l'intento, l'ora in cui i fiori vengono raccolti. 

```
{
    "text": "5 in the evening"
}
```

Nella risposta, Amazon Lex V2 invia una richiesta di conferma all'utente per confermare che l'ordine è corretto. `dialogAction`È impostato su `ConfirmIntent` e lo è. `confirmationState` `None`

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": {
                        "value": {
                            "interpretedValue": "2021-01-04",
                            "originalValue": "next monday",
                            "resolvedValues": [
                                "2021-01-04"
                            ]
                        }
                    },
                    "PickupTime": {
                        "value": {
                            "interpretedValue": "17:00",
                            "originalValue": "5 evening",
                            "resolvedValues": [
                                "17:00"
                            ]
                        }
                    }
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 1.0
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "Okay, your dozen roses will be ready for pickup by 17:00 on 2021-01-04.  Does this sound okay?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "type": "ConfirmIntent"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": {
                    "value": {
                        "interpretedValue": "2021-01-04",
                        "originalValue": "next monday",
                        "resolvedValues": [
                            "2021-01-04"
                        ]
                    }
                },
                "PickupTime": {
                    "value": {
                        "interpretedValue": "17:00",
                        "originalValue": "5 evening",
                        "resolvedValues": [
                            "17:00"
                        ]
                    }
                }
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

## Turno 5
<a name="exercise-2-turn-5"></a>

Nell'ultimo turno, l'utente risponde con la richiesta di conferma. 

```
{
    "text": "yes"
}
```

Nella risposta, Amazon Lex V2 invia un messaggio che indica che l'intento è stato raggiunto impostando la data di inizio `Confirmed` e `confirmationState` la `dialogAction` chiusura. Tutti i valori degli slot sono disponibili per l'applicazione client.

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "Confirmed",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": {
                        "value": {
                            "interpretedValue": "2021-01-04",
                            "originalValue": "next monday",
                            "resolvedValues": [
                                "2021-01-04"
                            ]
                        }
                    },
                    "PickupTime": {
                        "value": {
                            "interpretedValue": "17:00",
                            "originalValue": "5 evening",
                            "resolvedValues": [
                                "17:00"
                            ]
                        }
                    }
                },
                "state": "Fulfilled"
            },
            "nluConfidence": {
                "score": 1.0
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "Thanks. ",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "type": "Close"
        },
        "intent": {
            "confirmationState": "Confirmed",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": {
                    "value": {
                        "interpretedValue": "2021-01-04",
                        "originalValue": "next monday",
                        "resolvedValues": [
                            "2021-01-04"
                        ]
                    }
                },
                "PickupTime": {
                    "value": {
                        "interpretedValue": "17:00",
                        "originalValue": "5 evening",
                        "resolvedValues": [
                            "17:00"
                        ]
                    }
                }
            },
            "state": "Fulfilled"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

# Esercizio 3: Crea un chatbot avanzato per l'assistenza clienti
<a name="exercise-3"></a>

In questo esercizio avanzato, creerai un sofisticato chatbot di assistenza clienti per un'azienda di e-commerce. Questo bot dimostra funzionalità di livello aziendale tra cui gestione degli ordini, upselling intelligente, generazione di lead e ottimizzazione dei ricavi. Il chatbot utilizza funzionalità basate sull'intelligenza artificiale per fornire esperienze personalizzate ai clienti e favorire la crescita del business.

## SmartCommerce Panoramica dei bot del servizio clienti
<a name="exercise-3-overview"></a>

Il **SmartCommerce Customer Service Bot** è progettato per gestire interazioni complesse con i clienti massimizzando al contempo le opportunità di guadagno. Questo esempio dimostra come le aziende possono automatizzare il servizio clienti promuovendo al contempo la crescita delle vendite attraverso una gestione intelligente delle conversazioni.
+ **Intenti personalizzati**: il bot include più intenti personalizzati per un servizio clienti completo:
  + `CheckOrderStatus`- Verifica e fornisce informazioni sullo stato dell'ordine
  + `ProcessReturn`- Gestisce le richieste di reso e gli scambi
  + `UpsellProducts`- Raccomanda prodotti e servizi aggiuntivi
  + `CaptureLeadInfo`- Raccoglie informazioni sui clienti per la generazione di lead
  + `ScheduleCallback`- Prenota le richiamate del servizio clienti
+ **Intenti integrati**: sfrutta gli intenti integrati di Amazon Lex V2 per interazioni comuni:
  + [AMAZON.HelpIntent](built-in-intent-help.md)- Fornisce aiuto e indicazioni
  + [AMAZON.CancelIntent](built-in-intent-cancel.md)- Gestisce le richieste di cancellazione
  + [AMAZON.StopIntent](built-in-intent-stop.md)- Termina le conversazioni con garbo
+ **Tipi di slot personalizzati: tipi di** slot specializzati per dati aziendali specifici:
  + `ProductCategories`- Elettronica, abbigliamento, casa, libri, sport
  + `ReturnReasons`- Difettoso, taglia sbagliata, idea cambiata, non conforme alla descrizione
  + `ContactPreferences`- Email, SMS, telefonata, notifica in-app
  + `CustomerTiers`- Bronzo, argento, oro, platino
+ **Tipi di slot integrati**: utilizza gli slot integrati di Amazon Lex V2 per i formati di dati più comuni:
  + [Amazon. Data](built-in-slot-date.md)- Per le date di consegna e la pianificazione delle chiamate
  + [Amazon.time](built-in-slot-time.md)- Per gli orari di richiamo e le finestre di consegna
  + [AMAZZONE. EmailAddress](built-in-slot-email.md)- Per la raccolta delle e-mail dei clienti
  + [AMAZON. PhoneNumber](built-in-slot-phone.md)- Per i numeri di telefono dei clienti
  + [Amazon.number](built-in-slot-number.md)- Per i numeri e le quantità degli ordini

## Configurazione dettagliata degli intenti
<a name="exercise-3-intents-detail"></a>

### CheckOrderStatus Intento
<a name="check-order-status-intent"></a>

Questo intento gestisce la verifica degli ordini e le richieste sullo stato, fornendo ai clienti informazioni sugli ordini in tempo reale e identificando al contempo le opportunità di upselling.
+ **Slot richiesti:**
  + `OrderNumber`([Amazon.number](built-in-slot-number.md)) - Numero dell'ordine del cliente
  + `CustomerEmail`([AMAZZONE. EmailAddress](built-in-slot-email.md)) - Email per la verifica
+ **Esempi di enunciati:**
  + «Qual è lo stato del mio ordine \$1OrderNumber\$1»
  + «Devo controllare il numero dell'ordine \$1OrderNumber\$1»
  + «Dov'è il mio pacco»
  + «Traccia il mio ordine \$1OrderNumber\$1»
  + «Il mio ordine è già stato spedito?»
+ **Funzionalità basate sull'intelligenza artificiale:**
  + Utilizza Assisted NLU per comprendere varianti come «il mio pacco», «le mie cose», «la mia consegna»
  + Estrae automaticamente i numeri d'ordine dai modelli vocali naturali

### UpsellProducts Intento
<a name="upsell-products-intent"></a>

Questo intento identifica in modo proattivo le opportunità di guadagno consigliando prodotti complementari e servizi premium in base alla storia del cliente e al contesto di interazione attuale.
+ **Slot richiesti:**
  + `ProductCategory`(ProductCategories) - Categoria di interesse
  + `CustomerTier`(CustomerTiers) - Livello di fidelizzazione del cliente
  + `Budget`([Amazon.number](built-in-slot-number.md)) - Intervallo di budget del cliente
+ **Esempi di enunciati:**
  + «Mostrami prodotti correlati»
  + «Cos'altro potrebbe succedere con questo»
  + «Avete delle offerte?»
  + «Sono interessato a \$1ProductCategory\$1 articoli»
  + «Cosa c'è in vendita oggi»
+ **Funzionalità di ottimizzazione dei ricavi:**
  + Prezzi dinamici in base al livello di cliente
  + Consigli personalizzati utilizzando la cronologia degli acquisti
  + Creazione di offerte a tempo limitato per incentivare acquisti immediati

### CaptureLeadInfo Intento
<a name="capture-lead-info-intent"></a>

Questo intento raccoglie sistematicamente le informazioni sui clienti per la generazione di lead, creando dati preziosi che possono essere venduti agli aggregatori o utilizzati per campagne di marketing mirate.
+ **Slot richiesti:**
  + `CustomerFirstName`([AMAZON. FirstName](built-in-slot-first-name.md)) - Nome del cliente per la personalizzazione
  + `CustomerLastName`([AMAZON. LastName](built-in-slot-last-name.md)) - Cognome del cliente per la ricerca della cronologia delle vendite
  + `CustomerEmail`([AMAZZONE. EmailAddress](built-in-slot-email.md)) - Indirizzo e-mail
  + `CustomerPhone`([AMAZON. PhoneNumber](built-in-slot-phone.md)) - Numero di telefono
  + `InterestCategory`(ProductCategories) - Interessi relativi ai prodotti
  + `ContactPreference`(ContactPreferences) - Metodo di contatto preferito
+ **Esempi di enunciati:**
  + «Voglio conoscere nuovi prodotti»
  + «Iscrivimi per ricevere aggiornamenti»
  + «Sono interessato a \$1InterestCategory\$1»
  + «Tienimi informato sulle vendite»
  + «Voglio iscrivermi alla tua mailing list»
  + «Il mio nome è \$1CustomerFirstName\$1 \$1CustomerLastName\$1»
  + «Sono \$1CustomerFirstName\$1 \$1CustomerLastName\$1 e voglio consigli personalizzati»
+ **Funzionalità di lead generation:**
  + Raccolta di dati strutturati per l'integrazione CRM
  + Punteggio dei lead basato sulla qualità dell'interazione
  + Qualificazione e routing automatizzati dei lead
  + Formattazione dei dati per le vendite tramite aggregatori
+ **Integrazione della cronologia delle vendite:**
  + Ricerca del nome del cliente nelle tabelle della cronologia degli acquisti memorizzate in S3
  + Analisi del modello di acquisto per consigli personalizzati
  + Identificazione del comportamento di acquisto tra categorie
  + Analisi delle tendenze di acquisto stagionali per offerte mirate
  + Calcolo del valore del ciclo di vita del cliente per una tariffazione basata su più livelli

## Flusso di conversazione a più turni
<a name="exercise-3-multiturn-flow"></a>

Il SmartCommerce bot è progettato per gestire conversazioni complesse e a più turni che abbracciano più intenti e mantengono il contesto durante l'interazione. Questo crea un'esperienza naturale e simile a quella umana, massimizzando al contempo le opportunità di guadagno.

### Esempio di flusso di conversazione
<a name="conversation-flow-example"></a>

**Turno 1-3: controllo dello stato dell'ordine**

```
Customer: "Hi, I need to check on my order"
Bot: "I'd be happy to help you check your order status. Can you provide your order number?"
Customer: "It's order 12345"
Bot: "Thank you. To verify your identity, can you provide the email address associated with this order?"
Customer: "john.doe@email.com"
Bot: "Perfect! Order #12345 is currently being prepared for shipment. You should receive it by tomorrow. 
     Since you're a Gold tier customer, would you like to hear about some exclusive deals on related items?"
```

**Turno 4-6: opportunità di upselling**

```
Customer: "Sure, what do you have?"
Bot: "Based on your Electronics purchase, I can offer you a 20% discount on premium accessories. 
     What's your budget range for additional items?"
Customer: "Maybe around $50"
Bot: "Excellent! I have a wireless charging pad normally $60, now $48 with your Gold discount. 
     Plus, if you add it to your current order, shipping is free. Should I add this to your cart?"
```

**Turno 7-11: generazione di lead con ricerca della cronologia delle vendite**

```
Customer: "Not right now, but I'd like to hear about future deals"
Bot: "Absolutely! I can set you up to receive personalized offers. What's your first name?"
Customer: "John"
Bot: "Thanks John! And your last name so I can look up your purchase history for better recommendations?"
Customer: "Smith"
Bot: "Perfect! Let me check your purchase history... I see you've bought electronics and home items before. 
     Based on your past purchases, I can offer you exclusive deals on smart home accessories. 
     How would you prefer to be contacted?"
Customer: "Email is fine"
Bot: "Great! I'll make sure john.doe@email.com gets personalized deals based on your purchase history. 
     You're all set for our premium recommendations program!"
```

### Funzionalità di gestione del contesto
<a name="context-management"></a>
+ **Persistenza della sessione:** conserva le informazioni sui clienti per più scopi
+ **Intent Chaining:** passa senza interruzioni dal controllo degli ordini, all'upselling e all'acquisizione di lead
+ **Personalizzazione dinamica:** adatta le offerte in base al livello di cliente e alla cronologia degli acquisti
+ **Monitoraggio delle entrate:** monitora le percentuali di successo degli upselling e i punteggi di qualità dei lead

## Funzionalità basate sull'intelligenza artificiale
<a name="exercise-3-ai-features"></a>

Questo chatbot sfrutta diverse funzionalità di intelligenza artificiale per fornire un servizio clienti intelligente e personalizzato, favorendo al contempo la crescita del business.

### Implementazione NLU assistita
<a name="assisted-nlu-implementation"></a>

Assisted NLU utilizza modelli linguistici di grandi dimensioni per comprendere le intenzioni dei clienti anche quando utilizzano frasi non standard o combinano più richieste in un'unica espressione.
+ **Comprensione del linguaggio naturale:**
  + «La mia roba non è ancora arrivata» → CheckOrderStatus intento
  + «Voglio restituire questa spazzatura» → intento ProcessReturn 
  + «Mostrami cos'altro hai» → intento UpsellProducts 
+ **Riconoscimento di più intenti:**
  + «Controlla il mio ordine 12345 e iscrivimi per ricevere offerte» → \$1 CheckOrderStatus CaptureLeadInfo

### Risoluzione generativa degli slot
<a name="generative-slot-resolution"></a>

Utilizza l'intelligenza artificiale per estrarre i valori degli slot da input complessi in linguaggio naturale senza richiedere corrispondenze esatte con i dati di allenamento.
+ **Estrazione intelligente:**
  + «Ho comprato dei dispositivi elettronici la settimana scorsa, il numero d'ordine era qualcosa come 12345" → OrderNumber: 12345,: Elettronica ProductCategory
  + «Chiamami sul mio cellulare al numero 555-123-4567 o inviami un'e-mail a john@company.com" → Telefono: 555-123-4567, E-mail: john@company.com

### Integrazione dell'analisi del sentimento
<a name="sentiment-analysis"></a>

Monitora il sentimento dei clienti durante tutta la conversazione per adattare l'approccio e intensificarlo quando necessario.
+ **Routing basato sul sentimento:**
  + Sentimento positivo → Approccio aggressivo all'upselling
  + Sentimento neutrale → Servizio standard con upselling delicato
  + Sentimento negativo → Concentrazione sulla risoluzione dei problemi, upselling minimo

## Sistema di verifica e conferma dell'ordine
<a name="exercise-3-confirmation-system"></a>

Il bot include un sistema di conferma completo che verifica l'identità del cliente, conferma i dettagli dell'ordine e invia conferme tramite più canali.

### Processo di verifica a più fattori
<a name="verification-process"></a>
+ **Verifica primaria:**
  + Convalida del numero d'ordine
  + Conferma dell'indirizzo e-mail
  + Ultime 4 cifre del metodo di pagamento (per operazioni sensibili)
+ **Verifica secondaria:**
  + Conferma dell'indirizzo di spedizione
  + Convalida della data di acquisto
  + Verifica dei dettagli del prodotto

### Sistema di conferma multicanale
<a name="confirmation-channels"></a>

Il bot invia automaticamente le conferme attraverso più canali in base alle preferenze e al tipo di azione del cliente.
+ **Conferme via e-mail:**
  + Aggiornamenti sullo stato dell'ordine con informazioni di tracciamento
  + Autorizzazione al reso con etichette di spedizione prepagate
  + Espandi le conferme di acquisto con i dettagli di consegna
  + Conferma dell'acquisizione dei lead con offerte di benvenuto
+ **Conferme via SMS:**
  + Aggiornamenti immediati sullo stato dell'ordine
  + Notifiche di consegna con finestre temporali
  + Avvisi di vendita flash per i clienti interessati
+ **Notifiche in-app:**
  + Aggiornamenti degli ordini in tempo reale
  + Consigli personalizzati sui prodotti
  + Aggiornamenti del programma fedeltà

## Integrazione del punto vendita (POS)
<a name="exercise-3-pos-integration"></a>

Il chatbot si integra direttamente con i sistemi POS per elaborare transazioni, applicare sconti e aggiornare l'inventario in tempo reale.

### Processamento delle transazioni in tempo reale
<a name="transaction-processing"></a>
+ **Flusso delle transazioni di upselling:**

  ```
  1. Customer accepts upsell offer
  2. Bot validates inventory availability
  3. Bot applies customer-tier discount
  4. Bot processes payment using stored payment method
  5. Bot updates order with additional items
  6. Bot sends confirmation via preferred channel
  7. Bot updates customer profile with purchase data
  ```
+ **Monitoraggio delle entrate:**
  + Aumenta i tassi di conversione per livello di cliente
  + Aumento medio del valore degli ordini per interazione
  + Attribuzione dei ricavi alle interazioni con i chatbot
  + Impatto sul valore della vita del cliente

### Motore di determinazione dei prezzi dinamico
<a name="dynamic-pricing"></a>
+ **Prezzi basati su più livelli:**
  + Bronze: prezzi standard
  + Silver: sconto del 5% sugli upsell
  + Gold: sconto del 10-20% sugli upsell
  + Platinum: sconto del 25% \$1spedizione gratuita
+ **Prezzi contestuali:**
  + Scenari di risoluzione dei problemi: sconto aggiuntivo per mantenere la soddisfazione
  + Clienti di alto valore: livelli di prezzo esclusivi
  + Liquidazione dell'inventario: sconti aggressivi per gli articoli che si muovono lentamente

## Sistema avanzato di lead generation
<a name="exercise-3-lead-generation"></a>

Il chatbot include un sofisticato sistema di lead generation che acquisisce, qualifica e monetizza i dati dei clienti attraverso molteplici flussi di entrate.

### Strategia Multi-Touch di acquisizione dei lead
<a name="lead-capture-strategy"></a>
+ **Acquisizione opportunistica:**
  + Durante i controlli dello stato degli ordini: «Desideri aggiornamenti su prodotti simili?»
  + Dopo la risoluzione del problema: «Possiamo informarti sui miglioramenti del prodotto?»
  + Durante le interazioni di upselling: «Dovremmo avvisarti delle future offerte in questa categoria?»
+ **Acquisizione del valore aggiunto:**
  + Accesso esclusivo ai prezzi per i membri
  + Accesso anticipato al lancio di nuovi prodotti
  + Consigli personalizzati sui prodotti
  + Offerte speciali per compleanni e anniversari

### Qualifica automatizzata dei lead
<a name="lead-qualification"></a>
+ **Criteri di punteggio:**
  + Valore della cronologia degli acquisti: 0-25 punti
  + Livello di coinvolgimento: 0-20 punti
  + Completezza delle informazioni di contatto: 0-15 punti
  + Ampiezza di interesse della categoria di prodotto: 0-15 punti
  + Risposta ai tentativi di upselling: 0-25 punti
+ **Categorie principali:**
  + Hot Leads (80-100 punti): contatto immediato con il team di vendita
  + Warm Leads (60-79 punti): sequenza di formazione automatizzata
  + Cold Leads (40-59 punti): newsletter mensile
  + Prospettive (0-39 punti): e-mail promozionali trimestrali

### Monetizzazione dei lead data per gli aggregatori
<a name="aggregator-sales"></a>

I formati e i pacchetti del sistema consentono la vendita dei dati ad aggregatori di terze parti, creando un flusso di entrate aggiuntivo.
+ **Pacchetti di dati:**
  + *Pacchetto Premium:* informazioni di contatto complete, cronologia degli acquisti, preferenze, punteggi di coinvolgimento
  + *Pacchetto standard:* informazioni di contatto, preferenze di base, interessi di categoria
  + *Pacchetto base:* indirizzo e-mail, categoria di interesse principale
+ **Caratteristiche di conformità:**
  + Conformità al GDPR con tracciamento del consenso esplicito
  + Conformità al CCPA con i meccanismi di opt-out
  + Conformità CAN-SPAM per l'email marketing
  + Politiche di conservazione ed eliminazione dei dati
+ **Ottimizzazione dei ricavi:**
  + Prezzi dinamici basati sui punteggi di qualità dei lead
  + Partnership esclusive in materia di dati con aggregatori premium
  + Offerte in tempo reale per lead di alto valore

## Strategie di ottimizzazione delle entrate
<a name="exercise-3-revenue-optimization"></a>

Ogni interazione è progettata per massimizzare i ricavi attraverso l'upselling intelligente, il cross-selling e l'ottimizzazione del valore del ciclo di vita del cliente.

### Strategie di upselling intelligenti
<a name="upselling-strategies"></a>
+ **Upselling contestuale:**
  + Verifica dello stato dell'ordine → «Il tuo ordine è pronto\$1 Aggiungi la spedizione rapida per soli \$15?»
  + Richiesta di reso → «Invece di restituire, preferiresti sostituire il nostro modello aggiornato?»
  + Richiesta sul prodotto → «Questo articolo si abbina perfettamente a [prodotto complementare]: impacchetta e risparmia il 15%»
+ **Vendita basata sull'urgenza:**
  + «Questa offerta scade tra 24 ore»
  + «Ne rimangono solo 3 in stock a questo prezzo»
  + «La vendita flash termina a mezzanotte»

### Opportunità di cross-selling
<a name="cross-selling-opportunities"></a>
+ **Vendita nell'ecosistema di prodotti:**
  + Elettronica → Accessori, garanzie, servizi di installazione
  + Abbigliamento → Articoli coordinati, prodotti per la cura, servizi di styling
  + Articoli per la casa → Articoli complementari, prodotti per la manutenzione, consulenze di progettazione
+ **Servizio di upselling:**
  + Garanzie estese e piani di protezione
  + Livelli di assistenza clienti premium
  + Servizi di abbonamento e consegna automatica
  + Installazione e configurazione professionali

### Ottimizzazione del valore della vita utile del cliente
<a name="lifetime-value-optimization"></a>
+ **Integrazione del programma fedeltà:**
  + Upgrade automatici di livello basati sulle interazioni con i chatbot
  + Punti bonus per la partecipazione alle offerte di upselling
  + Premi e sconti esclusivi solo per i chatbot
+ **Strategie di conservazione:**
  + Risoluzione proattiva dei problemi per prevenire il tasso di abbandono
  + Offerte di riscatto personalizzate per clienti inattivi
  + Offerte per anniversari e celebrazioni importanti

## Procedure di implementazione
<a name="exercise-3-implementation"></a>

Segui queste step-by-step procedure per creare un chatbot avanzato per il servizio clienti con tutte le funzionalità di ottimizzazione delle entrate.

### Prerequisiti e requisiti di configurazione
<a name="exercise-3-prerequisites"></a>

Prima di creare il SmartCommerce bot, assicurati di disporre della configurazione dell'account AWS e delle autorizzazioni necessarie e di aver compreso le considerazioni relative al servizio.

#### Account AWS e requisiti di accesso
<a name="aws-account-setup"></a>
+ **Account AWS:** è necessario un account AWS attivo con fatturazione abilitata. Se non ne hai uno, registrati su [aws.amazon.com](https://aws.amazon.com/).
+ **Autorizzazioni IAM:** il tuo utente o ruolo AWS deve disporre delle seguenti autorizzazioni:
  + `lex:*`- Autorizzazioni Amazon Lex V2 complete per la creazione e la gestione di bot
  + `iam:CreateRole`- Per creare ruoli di servizio per il bot
  + `iam:AttachRolePolicy`- Per allegare le politiche ai ruoli di servizio
  + `lambda:CreateFunction`- Per l'integrazione con Lambda (opzionale)
  + `logs:CreateLogGroup`- Per la registrazione di Amazon CloudWatch Logs
+ **Selezione della regione:** scegli una regione AWS che supporti Amazon Lex V2 e il tuo pubblico di destinazione. Le regioni consigliate includono:
  + Stati Uniti orientali (Virginia settentrionale), us-east-1
  + Stati Uniti occidentali (Oregon): us-west-2
  + Europa (Irlanda) - eu-west-1
  + Asia Pacifico (Sydney): ap-southeast-2

#### Limiti e quote di servizio
<a name="service-limits-quotas"></a>

Amazon Lex V2 presenta diversi limiti di servizio che possono influire sullo sviluppo e sulla distribuzione dei bot:
+ **Limiti dei bot:**
  + Massimo 100 bot per account per regione
  + Massimo 100 intenti per bot
  + Massimo 100 tipi di slot per bot
  + Massimo 200 slot per intento
+ **Limiti di runtime:**
  + Timeout massimo di 15 minuti per la sessione
  + Massimo 1.000 richieste al secondo (può essere aumentato)
  + Massimo 1.500 caratteri per input di testo
+ **Limiti dei dati di allenamento:**
  + Massimo 1.500 espressioni campionarie per intento
  + Massimo 10.000 valori per tipo di slot
  + Massimo 140 caratteri per enunciato di esempio

**Nota**  
Se hai bisogno di limiti più elevati per l'uso in produzione, puoi richiedere aumenti delle quote tramite AWS Support Center.

#### Considerazioni sui costi
<a name="cost-considerations"></a>

Comprendere i prezzi di Amazon Lex V2 ti aiuta a pianificare e pianificare il budget per l'implementazione dei chatbot:
+ **Prezzi basati su richiesta:**
  + Richieste di testo: 0,00075 USD per richiesta dopo le prime 10.000 richieste al mese
  + Richieste vocali: 0,004 USD per richiesta dopo le prime 1.000 richieste al mese
+ **Livello gratuito:**
  + 10.000 richieste di testo al mese per il primo anno
  + 1.000 richieste vocali al mese per il primo anno
+ **Costi aggiuntivi:**
  + Funzioni Lambda (se utilizzate): 0,20 USD per 1 milione di richieste\$1tempo di elaborazione
  +  CloudWatch Registri Amazon Logs: 0,50 USD per GB importato
  + Costi di trasferimento dei dati per le integrazioni esterne
+ **Suggerimenti per l'ottimizzazione dei costi:**
  + Utilizza gli attributi di sessione per ridurre le chiamate API ridondanti
  + Implementa flussi di conversazione efficienti per ridurre al minimo i turni
  + Monitora l'utilizzo tramite CloudWatch i registri per identificare le opportunità di ottimizzazione

**Importante**  
Per informazioni aggiornate sui prezzi, visita la [pagina dei prezzi di Amazon Lex](https://aws.amazon.com/lex/pricing/), in quanto le tariffe potrebbero cambiare.

#### Panoramica dell'integrazione Lambda
<a name="lambda-integration-basics"></a>

Sebbene questo esercizio si concentri sulla configurazione del bot Lex, le funzionalità avanzate descritte (integrazione POS, generazione di lead, ottimizzazione dei ricavi) richiederebbero in genere le funzioni Lambda per l'elaborazione del backend.
+ **Quando è necessaria la tecnologia Lambda:**
  + Verifica dello stato dell'ordine rispetto a database esterni
  + Controlli dell'inventario in tempo reale per l'upselling
  + Archiviazione e recupero dei dati dei clienti
  + Ricerca della cronologia delle vendite nelle tabelle S3 utilizzando il nome e il cognome del cliente
  + Analisi del modello di acquisto per consigli personalizzati
  + Integrazione dell'elaborazione dei pagamenti
  + Invio di conferma tramite e-mail e SMS
+ **Integrazione della cronologia delle vendite S3:**
  + Interroga le tabelle S3 utilizzando gli slot CustomerFirstName e CustomerLastName 
  + Analizza la cronologia degli acquisti per identificare i modelli e le preferenze di acquisto
  + Genera consigli personalizzati sui prodotti in base agli acquisti precedenti
  + Calcola il valore del ciclo di vita del cliente per strategie di prezzo dinamiche
  + Identifica le opportunità di vendita incrociata grazie all'analisi della correlazione degli acquisti
+ **Requisiti di configurazione Lambda di base:**
  + Ruolo di esecuzione Lambda con autorizzazioni appropriate
  + Configurazione VPC per l'accesso a risorse private
  + Variabili di ambiente per la configurazione
  + Gestione degli errori e implementazione della registrazione
+ **Punti di integrazione:**
  + Adempimento degli intenti: elabora gli intenti completati
  + Convalida degli slot: convalida gli input degli utenti in tempo reale
  + Gestione dei dialoghi: controlla il flusso delle conversazioni

**Nota**  
Per questo esercizio, ci concentreremo sulla configurazione del bot Lex. L'integrazione Lambda può essere aggiunta in un secondo momento, man mano che i requisiti evolvono. Il bot funzionerà con risposte statiche a scopo di test e dimostrazione.

#### Lista di controllo pre-implementazione
<a name="getting-started-checklist"></a>

Prima di procedere con la creazione del bot, verifica di avere:
+ ✓ Account AWS attivo con fatturazione abilitata
+ ✓ Autorizzazioni IAM appropriate per Lex e i servizi correlati
+ ✓ Regione AWS di destinazione selezionata
+ ✓ Limiti e quote di servizio rivisti
+ ✓ Implicazioni sui costi comprese
+ ✓ Approccio di integrazione Lambda pianificato (se necessario)
+ ✓ Accesso alla gestione AWS Console di gestione AWS

### Crea il SmartCommerce bot
<a name="create-advanced-bot-procedure"></a>

**Per creare il bot SmartCommerce del servizio clienti**

1. Accedi alla Console di gestione AWS e apri la console Amazon Lex all'indirizzo [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Scegli **Crea bot**.

1. Per il **metodo di creazione**, scegli **Crea un bot vuoto**.

1. Nella sezione **Configurazione del bot**:
   + Nome del bot: **SmartCommerceBot**
   + Descrizione: **Advanced customer service chatbot with upselling, lead generation, and revenue optimization**

1. Nella sezione **Autorizzazioni**, scegli **Crea un nuovo ruolo con le autorizzazioni Amazon Lex di base**.

1. **Nella sezione **Children's Online Privacy Protection Act (COPPA)**, scegli No.**

1. Nella sezione **Timeout della sessione**, imposta in modo da consentire **15 minutes** conversazioni complesse a più turni.

1. Scegli **Next (Successivo)**.

1. **Aggiungi l'inglese (Stati Uniti) come lingua e scegli Fine.**

### Crea tipi di slot personalizzati
<a name="create-custom-slot-types-procedure"></a>

**Per creare i tipi di slot personalizzati**

1. Nel riquadro di navigazione a sinistra, scegli **Tipi di slot**.

1. Scegli **Aggiungi tipo di slot** e crea i seguenti tipi di slot:

   1. **ProductCategories:**
      + Elettronica
      + Abbigliamento
      + Home
      + Libri
      + Sport
      + Bellezza
      + settore automobilistico

   1. **ReturnReasons:**
      + Difettoso
      + Taglia sbagliata
      + Ho cambiato idea
      + Non come descritto
      + Danneggiato durante la spedizione
      + Trovato un prezzo migliore

   1. **ContactPreferences:**
      + Email
      + SMS
      + Telefonata
      + Notifica in-app
      + Mail

   1. **CustomerTiers:**
      + Bronzo
      + Argento
      + Oro
      + Platino

### Crea intenti personalizzati
<a name="create-intents-procedure"></a>

**Per creare l'intento CheckOrderStatus**

1. Nel riquadro di navigazione a sinistra, scegli **Intenti**.

1. Scegli **Aggiungi intento** e assegnagli un nome. **CheckOrderStatus**

1. Aggiungete i seguenti esempi di enunciati:
   + «Qual è lo stato del mio ordine \$1OrderNumber\$1»
   + «Devo controllare il numero dell'ordine \$1OrderNumber\$1»
   + «Dov'è il mio pacco»
   + «Traccia il mio ordine \$1OrderNumber\$1»
   + «Il mio ordine è già stato spedito?»
   + «Quando arriverà il mio ordine»
   + «Voglio avere informazioni sulla mia consegna»

1. Aggiungi i seguenti slot:
   + `OrderNumber`([Amazon.number](built-in-slot-number.md)) - Obbligatorio

     Richiesta: «Puoi fornire il numero dell'ordine?»
   + `CustomerEmail`([AMAZZONE. EmailAddress](built-in-slot-email.md)) - Obbligatorio

     Richiesta: «Per verificare la tua identità, fornisci l'indirizzo email associato a questo ordine».

1. Imposta la richiesta di conferma: «Fammi controllare l'ordine \$1 \$1OrderNumber\$1 per \$1CustomerEmail\$1. È corretto?”

1. Imposta il messaggio di evasione: «Ho trovato il tuo ordine\$1 L'ordine \$1 \$1OrderNumber\$1 è \$1OrderStatus\$1. \$1UpsellMessage\$1»

**Per creare l' UpsellProducts intento**

1. Crea un nuovo intento denominato. **UpsellProducts**

1. Aggiungi esempi di enunciati:
   + «Mostrami prodotti correlati»
   + «Cos'altro potrebbe succedere con questo»
   + «Avete delle offerte?»
   + «Sono interessato a \$1ProductCategory\$1 articoli»
   + «Cosa c'è in vendita oggi»
   + «Mostrami altre opzioni»

1. Aggiungi slot:
   + `ProductCategory`(ProductCategories) - Obbligatorio

     Richiesta: «A che tipo di prodotti sei interessato?»
   + `Budget`([Amazon.number](built-in-slot-number.md)) - Facoltativo

     Richiesta: «Qual è il tuo budget per gli articoli aggiuntivi?»

**Per creare l'intento CaptureLeadInfo**

1. Crea un nuovo intento denominato. **CaptureLeadInfo**

1. Aggiungi esempi di enunciati:
   + «Voglio conoscere nuovi prodotti»
   + «Iscrivimi per ricevere aggiornamenti»
   + «Sono interessato a \$1InterestCategory\$1»
   + «Tienimi informato sulle vendite»
   + «Voglio iscrivermi alla tua mailing list»
   + «Inviami offerte e promozioni»
   + «Il mio nome è \$1CustomerFirstName\$1 \$1CustomerLastName\$1»
   + «Sono \$1CustomerFirstName\$1 \$1CustomerLastName\$1 e voglio consigli personalizzati»

1. Aggiungi slot:
   + `CustomerFirstName`([AMAZON. FirstName](built-in-slot-first-name.md)) - Obbligatorio

     Richiesta: «Qual è il tuo nome di battesimo per il servizio personalizzato?»
   + `CustomerLastName`([AMAZON. LastName](built-in-slot-last-name.md)) - Obbligatorio

     Richiesta: «E il tuo cognome, così posso consultare la cronologia degli acquisti?»
   + `CustomerEmail`([AMAZZONE. EmailAddress](built-in-slot-email.md)) - Obbligatorio
   + `CustomerPhone`([AMAZON. PhoneNumber](built-in-slot-phone.md)) - Opzionale
   + `InterestCategory`(ProductCategories) - Obbligatorio
   + `ContactPreference`(ContactPreferences) - Richiesto

### Abilita le funzionalità basate sull'intelligenza artificiale
<a name="enable-ai-features-procedure"></a>

**Per abilitare Assisted NLU e altre funzionalità di intelligenza artificiale**

1. Nel riquadro di navigazione a sinistra, scegli Impostazioni **bot**.

1. **In **Assisted NLU**, scegli Abilita.**

1. In **Generative AI**, abilita:
   + Risoluzione assistita degli slot
   + Costruzione descrittiva del bot

1. **In **Sentiment Analysis**, scegli Abilita.**

1. Scegli **Save** (Salva).

### Testa e implementa il bot
<a name="test-and-deploy-procedure"></a>

**Per testare il bot SmartCommerce**

1. Scegli **Build** per compilare il tuo bot.

1. Una volta completata la build, scegli **Test**.

1. Prova i seguenti flussi di conversazione:

   1. **Flusso di stato dell'ordine:**
      + Utente: «Controlla il mio ordine 12345"
      + Bot: richiede la verifica via email
      + Utente: fornisce un indirizzo e-mail
      + Bot: fornisce lo status e offre l'upselling

   1. **Flusso di upselling:**
      + Utente: «Mostrami le offerte»
      + Bot: Richiede la categoria di prodotto
      + Utente: «Elettronica»
      + Bot: presenta offerte personalizzate

   1. **Flusso di lead generation:**
      + Utente: «Iscrivimi per ricevere aggiornamenti»
      + Bot: raccoglie informazioni di contatto
      + Utente: fornisce dettagli
      + Bot: conferma l'iscrizione e offre uno sconto immediato

1. Verifica che le funzionalità di intelligenza artificiale funzionino:
   + Prova le varianti del linguaggio naturale come «la mia roba non è arrivata»
   + Verifica che l'analisi del sentimento aggiusti le risposte dei bot
   + Conferma che la risoluzione degli slot funzioni con input complessi

1. Una volta completato il test, scegli **Pubblica** per distribuire il bot.

## Analisi e ottimizzazione delle prestazioni
<a name="exercise-3-analytics"></a>

Monitora e ottimizza le prestazioni del tuo SmartCommerce bot utilizzando analisi complete e monitoraggio delle entrate.

### Metriche chiave sulle prestazioni
<a name="key-metrics"></a>
+ **Metriche delle entrate:**
  + Aumenta il tasso di conversione per livello di cliente
  + Aumento medio del valore degli ordini per interazione
  + Entrate per conversazione
  + Impatto sul valore della vita del cliente
+ **Metriche di lead generation:**
  + Tasso di acquisizione dei lead per tipo di interazione
  + Punteggi di qualità dei lead e tassi di conversione
  + Ricavi dalla monetizzazione dei dati derivanti dalle vendite degli aggregatori
  + Tasso di crescita degli abbonamenti e-mail
+ **Metriche operative:**
  + Precisione del riconoscimento degli intenti
  + Percentuale di successo nel riempire gli slot
  + Percentuale di completamento della conversazione
  + Punteggi di soddisfazione dei clienti

### Strategie di ottimizzazione continua
<a name="optimization-strategies"></a>
+ **Test A/B:**
  + Prova diversi approcci di messaggistica di upsell
  + Confronta tecniche di acquisizione dei lead aggressive e delicate
  + Ottimizza le percentuali di sconto per la massima conversione
+ **Ottimizzazione del Machine Learning:**
  + Analizza i modelli di conversazione di successo
  + Identifica la tempistica ottimale per le offerte di upselling
  + Perfeziona gli algoritmi di classificazione a livello di cliente

## Conclusione dell'esercizio
<a name="exercise-3-conclusion"></a>

Complimenti\$1 Hai creato con successo un chatbot avanzato per l'assistenza clienti che dimostra funzionalità di livello aziendale per l'ottimizzazione dei ricavi e il coinvolgimento dei clienti. Questo SmartCommerce bot mostra come le aziende possono sfruttare le funzionalità basate sull'intelligenza artificiale di Amazon Lex V2 per:
+ **Massimizza i ricavi: attraverso strategie** intelligenti di upselling, cross-selling e prezzi dinamici
+ **Genera lead:** acquisendo e qualificando sistematicamente le informazioni sui clienti per molteplici flussi di entrate
+ **Migliora l'esperienza del cliente:** utilizzo dell'intelligenza artificiale per comprendere il linguaggio naturale e fornire interazioni personalizzate
+ **Ottimizzazione delle operazioni:** attraverso un servizio clienti automatizzato che scalabile in modo efficiente mantenendo la qualità

Le tecniche illustrate in questo esercizio possono essere adattate e ampliate per vari settori e casi d'uso, fornendo una base per la creazione di sofisticate soluzioni di intelligenza artificiale conversazionale che favoriscano la crescita aziendale.

### Fasi successive
<a name="next-steps"></a>

Per migliorare ulteriormente il tuo SmartCommerce bot, prendi in considerazione l'implementazione di:
+ **Integrazioni avanzate:**
  + Integrazione del sistema CRM per profili clienti completi
  + Connessioni al sistema di gestione dell'inventario per la disponibilità in tempo reale
  + Integrazione dell'elaborazione dei pagamenti per transazioni senza interruzioni
+ **Implementazione multicanale:**
  + Integrazione del widget di chat sul sito Web
  + Connessioni alle piattaforme di social media
  + Implementazione dell'interfaccia vocale
+ **Analisi avanzate:**
  + Sviluppo di dashboard personalizzate per metriche aziendali
  + Analisi predittiva per il comportamento dei clienti
  + Monitoraggio del ROI e modellazione dell'attribuzione

# Le migliori pratiche per iniziare
<a name="getting-started-best-practices"></a>

## Principi di progettazione delle conversazioni
<a name="conversation-design-principles"></a>

Seguire questi principi di progettazione delle conversazioni sin dall'inizio ti aiuterà a creare chatbot Amazon Lex V2 più efficaci, gestibili e intuitivi che forniscono interazioni naturali.

### Principi di progettazione di base
<a name="core-design-principles"></a>
+ **Inizia dagli obiettivi degli utenti**: progetta il tuo bot in base a ciò che gli utenti vogliono ottenere, non a ciò che il tuo sistema può fare. Concentrati sul percorso dell'utente e sui risultati desiderati.
+ **Usa il linguaggio naturale**: scrivi istruzioni e risposte in modo colloquiale. Evita il gergo tecnico e parla come farebbe un umano utile.
+ **Fornisci opzioni chiare**: quando gli utenti rimangono bloccati, offri esempi specifici di ciò che possono dire anziché un testo di aiuto generico.
+ **Keep It Simple**: inizia con le funzionalità di base e aggiungi gradualmente complessità. Gli utenti dovrebbero essere in grado di completare rapidamente le attività più comuni.
+ **Gestisci gli errori con garbo**: quando il bot non capisce, fornisci una guida utile anziché limitarti a dire «Non capisco».
+ **Conferma azioni importanti**: conferma sempre prima di intraprendere azioni che non possono essere annullate facilmente, come effettuare ordini o eliminare informazioni.
+ **Fornisci vie di fuga**: offri sempre agli utenti un modo per ricominciare da capo, ricevere aiuto o entrare in contatto con un essere umano quando necessario.

### Migliori pratiche per il flusso di conversazione
<a name="conversation-flow-best-practices"></a>
+ **Stabilisci aspettative chiare**: fai sapere agli utenti cosa può e non può fare il bot nelle prime fasi della conversazione.
+ **Usa Progressive Disclosure**: chiedi informazioni una alla volta anziché sovraccaricare gli utenti con più domande.
+ **Fornisci un contesto**: ricorda agli utenti quali informazioni hai già raccolto e di cosa hai ancora bisogno.
+ **Semplifica le correzioni**: consenti agli utenti di correggere le informazioni senza ricominciare completamente da capo.

## Casi d'uso ed esempi reali
<a name="real-world-use-cases"></a>

Questi esempi pratici mostrano come applicare i principi di progettazione delle conversazioni a scenari comuni incontrati dai nuovi utenti di Amazon Lex V2.

### Caso d'uso 1: prenotazione di appuntamenti
<a name="use-case-appointment-booking"></a>

**Scenario: uno** studio medico desidera automatizzare la pianificazione degli appuntamenti.

**Sfida:** gli utenti devono fornire più informazioni (tipo di servizio, data, ora, informazioni di contatto) e potrebbero voler modificare i dettagli.

**Approccio alla soluzione:**
+ **Start Broad:** «Che tipo di appuntamento vorresti fissare?» (esame odontoiatrico, visita oculistica, consulenza)
+ **Restrow Down:** «Quando preferiresti un appuntamento dal dentista?» (Accetta input flessibili come «settimana prossima» o «venerdì pomeriggio»)
+ **Conferma e offri modifiche:** «Ho programmato una pulizia dentale venerdì 15 marzo alle 14:00. Funziona per te?»
+ **Gestisci le modifiche:** se l'utente dice «Possiamo invece fare le 15:00?» , aggiorna l'ora senza riavviare l'intero processo.

**Tecniche chiave:**
+ Usa [Amazon. Data](built-in-slot-date.md) e [Amazon.time](built-in-slot-time.md) per un date/time input flessibile
+ Crea tipi di slot personalizzati per i tipi di appuntamento
+ Utilizza le istruzioni di conferma prima di finalizzare le prenotazioni

### Caso d'uso 2: Richiesta sullo stato dell'ordine
<a name="use-case-order-tracking"></a>

**Scenario:** una società di e-commerce desidera che i clienti controllino lo stato degli ordini senza chiamare l'assistenza.

**Problema:** gli utenti potrebbero non avere a portata di mano il numero dell'ordine o potrebbero chiedere in modi diversi.

**Approccio alla soluzione:**
+ **Punti di ingresso multipli:** accetta «Dov'è il mio ordine?» , «Traccia il mio pacco» o «Stato dell'ordine»
+ **Identificazione flessibile:** «Posso aiutarti a tracciare il tuo ordine. Hai il numero del tuo ordine o preferisci usare il tuo indirizzo email?»
+ **Guida utile:** «Il numero dell'ordine di solito si trova nell'e-mail di conferma e inizia con 'ORD-'»
+ **Risultati chiari:** «Il tuo ordine \$1ORD -12345 è stato spedito ieri e arriverà domani entro le 20:00. Desideri i dettagli di tracciamento?»

**Tecniche chiave:**
+ Utilizza tipi di slot integrati come AMAZON. AlphaNumeric per i numeri degli ordini
+ Fornisci diversi modi per identificare gli ordini (e-mail, telefono, numero dell'ordine)
+ Fornisci informazioni chiare e utilizzabili nelle risposte

### Caso d'uso 3: Domande frequenti e supporto
<a name="use-case-faq-support"></a>

**Scenario:** un'azienda di software desidera gestire automaticamente le domande di supporto più comuni.

**Sfida:** gli utenti pongono le stesse domande in molti modi diversi e alcuni problemi richiedono l'aiuto umano.

**Approccio alla soluzione:**
+ **Riconoscimento generalizzato degli intenti:** Addestra gli intenti a riconoscere varianti come «Non riesco ad accedere», «Problemi di accesso», «La password non funziona»
+ **Risoluzione guidata della risoluzione dei problemi:** «Proviamo con alcuni rapidi passaggi. Innanzitutto, hai provato a reimpostare la password?»
+ **Escalation Path:** «Se questi passaggi non funzionano, posso metterti in contatto con il nostro team di assistenza. Vuoi che lo faccia?»
+ **Seguito:** «Questo ha risolto il tuo problema? Puoi sempre dire 'aiuto' se hai bisogno di assistenza per qualcos'altro».

**Tecniche chiave:**
+ Usa molti esempi di enunciati per descrivere i diversi modi in cui gli utenti esprimono i problemi
+ Fornisci step-by-step indicazioni anziché lunghe spiegazioni
+ Offrite sempre un percorso di assistenza umana quando l'aiuto automatizzato non è sufficiente

### Gestione di scenari complessi
<a name="handling-complex-scenarios"></a>

Anche i robot semplici incontrano situazioni complesse. Ecco come gestirli con garbo:
+ **Quando gli utenti cambiano idea:**
  + Utente: «In realtà, voglio le rose al posto dei tulipani»
  + Bot: «Nessun problema\$1 Ho aggiornato il tuo ordine con delle rose. Le tue rose saranno pronte per il ritiro venerdì alle 14:00. È corretto?»
+ **Quando le informazioni non sono chiare:**
  + Utente: «Ho bisogno di fiori per la prossima settimana»
  + Bot: «Sarei felice di aiutarti\$1 Qual è il giorno della prossima settimana che funziona meglio per te? Puoi dire qualcosa come «lunedì» o «martedì prossimo».
+ **Quando il bot non capisce:**
  + Utente: «Voglio quelli viola con i gambi lunghi»
  + Bot: «Voglio assicurarmi di aver capito bene. Stai cercando fiori viola? Abbiamo a disposizione rose viola, tulipani viola e iris viola.»
+ **Quando gli utenti devono ricominciare da capo:**
  + Utente: «Annulla, voglio ricominciare da capo»
  + Bot: «Certo\$1 Ho completato il tuo ordine attuale. Che tipo di fiori vorresti ordinare oggi?»