

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Paso 2: Introducción (consola)
<a name="gs-console"></a>

## Descripción general de la consola
<a name="console-overview"></a>

La forma más sencilla de aprender a utilizar Amazon Lex V2 es mediante la consola. Elija la ruta de aprendizaje que mejor se adapte a su función y nivel de experiencia:

## Elija su ruta de aprendizaje
<a name="learning-paths"></a>

Elija la ruta de aprendizaje que mejor se adapte a su función y nivel de experiencia:
+ **Ruta sin código (usuarios empresariales)**: perfecta para analistas de negocios, gerentes de producto y usuarios sin conocimientos técnicos que desean crear bots utilizando únicamente la interfaz de la consola.
  + Comience con: [Inicio rápido: crea un chatbot en 5 minutos](quick-start.md)
  + A continuación, intente lo siguiente: [Ejercicio 1: Crear un chatbot a partir de una plantilla](exercise-1.md)
  + Aprenda: [Mejores prácticas para empezar](getting-started-best-practices.md)
+ **Developer Path**: ideal para los desarrolladores de software que desean integrar Amazon Lex V2 con aplicaciones y utilizar APIs e implementar una lógica empresarial personalizada.
  + Comience con: [Ejercicio 1: Crear un chatbot a partir de una plantilla](exercise-1.md)
  + Avanzado: [Ejercicio 3: Cree un chatbot avanzado de servicio al cliente](exercise-3.md)
  + A continuación, explore: [Integración de una AWS Lambda función en su bot Amazon Lex V2](lambda.md)
  + Reseña: [Ejemplos de bots](examples.md)
  + Avanzado: integración de API y uso del SDK
+ **Enterprise Path**: diseñado para arquitectos e ingenieros que planifican despliegues a gran escala con requisitos de seguridad, cumplimiento y escalabilidad.
  + Comience con: [Ejercicio 1: Crear un chatbot a partir de una plantilla](exercise-1.md)
  + Ejemplo empresarial: [Ejercicio 3: Cree un chatbot avanzado de servicio al cliente](exercise-3.md)
  + Reseña: mejores prácticas de seguridad e IAM
  + Explore: [Uso de la resiliencia global para implementar bots en otras regiones](global-resiliency.md)
  + Planifique: monitoreo, registro y optimización de costos

## Ejercicios fundamentales
<a name="foundational-exercises"></a>

Independientemente del camino que elija, le recomendamos comenzar con estos ejercicios fundamentales:
+ Ejercicio 1: Cree un bot de Amazon Lex V2 utilizando una plantilla, un bot predefinido que proporcione toda la configuración de bot necesaria. Solo debe hacer un mínimo de trabajo para probar la end-to-end configuración.
+ Ejercicio 2: Revisar las estructuras JSON enviadas entre la aplicación cliente y un bot de Amazon Lex V2.
+ Ejercicio 3: Cree un bot de chat avanzado de servicio al cliente que demuestre las capacidades de nivel empresarial, como la gestión de pedidos, el aumento inteligente de ventas, la generación de clientes potenciales y las funciones impulsadas por la IA para ofrecer experiencias personalizadas a los clientes.

**Topics**

# Inicio rápido: crea un chatbot en 5 minutos
<a name="quick-start"></a>

Esta guía de inicio rápido le ayuda a crear un chatbot Amazon Lex V2 que funcione en solo 5 minutos utilizando plantillas prediseñadas. Dispondrá de un chatbot funcional que podrá probar y personalizar inmediatamente según sus necesidades.

## Paso 1: Elige una plantilla
<a name="choose-template"></a>

Amazon Lex V2 proporciona varias plantillas prediseñadas para casos de uso comunes:
+ **Preguntas frecuentes sobre Customer Support**: gestiona las consultas habituales del servicio de atención al cliente
+ **Reserva de citas**: programe y administre citas
+ **Estado del pedido**: compruebe la información del pedido y el estado de la entrega
+ Servicio de **asistencia de TI**: proporciona asistencia técnica y solución de problemas

**Para seleccionar una plantilla**

1. Abra la consola Amazon Lex V2 en [https://console.aws.amazon.com/lexv2/](https://console.aws.amazon.com/lexv2/).

1. Elija **Crear bot**.

1. Seleccione **Comenzar con una plantilla**.

1. Elija la plantilla de **preguntas frecuentes de Customer Support** para este inicio rápido.

1. Introduzca un nombre de bot, como**MyFirstChatbot**.

1. Seleccione **Crear**.

## Paso 2: Personalización rápida (opcional)
<a name="customize-template"></a>

La plantilla viene preconfigurada, pero puedes personalizarla rápidamente para adaptarla a tus necesidades específicas:

**Para personalizar tu chatbot**

1. En la descripción general del bot, revisa las intenciones preconfiguradas.

1. Elige una intención para modificarla, por ejemplo. **GetAccountInfo**

1. Agrega tus propios ejemplos de expresiones que coincidan con la forma en que tus clientes podrían formular las solicitudes.

1. Actualiza los mensajes de respuesta para que coincidan con la voz de tu marca.

1. Seleccione **Guardar intención**.

## Paso 3: Pon a prueba tu bot
<a name="test-bot"></a>

Pon a prueba tu chatbot inmediatamente con la consola de pruebas integrada:

**Para probar tu chatbot**

1. Elige **Construir** para compilar tu bot.

1. Espera a que se complete la compilación (normalmente de 1 a 2 minutos).

1. En la consola de pruebas de la derecha, escribe: **I need help with my account**

1. Presiona Entrar y observa la respuesta del bot.

1. Prueba con otras frases para poner a prueba la comprensión del bot.

## Paso 4: Despliega tu bot
<a name="deploy-bot"></a>

Una vez que estés satisfecho con las respuestas de tu chatbot, despliégalo para su uso:

**Para implementar tu chatbot**

1. Selecciona **Publicar** en el menú de acciones del bot.

1. Crea una nueva versión seleccionando **Crear versión**.

1. Crea un alias (como «Producción») que apunte a tu versión.

1. Elige tu método de integración.

## Siguientes pasos
<a name="next-steps-quick"></a>

¡Enhorabuena\$1 Ahora tiene un chatbot Amazon Lex V2 en funcionamiento. Esto es lo que puede hacer a continuación:
+ **Habilite la NLU asistida**: mejore la comprensión con el procesamiento del lenguaje natural impulsado por IA.
+ **Agregue más intenciones**: amplíe las capacidades de su chatbot con casos de uso adicionales.
+ **Integre con Lambda**: añada lógica empresarial e integración de sistemas externos. Consulte [Integración de una AWS Lambda función en su bot Amazon Lex V2](lambda.md).
+ **Configure la supervisión**: realice un seguimiento del uso y el rendimiento. Consulte [Medición de las métricas operativas con Amazon CloudWatch](monitoring-cloudwatch.md).
+ **Conozca las funciones avanzadas**: explore la gestión del flujo de conversaciones, los diálogos de varios turnos y el cambio de contexto.

Para obtener un recorrido más detallado, continúa con. [Ejercicio 1: Crear un chatbot a partir de una plantilla](exercise-1.md)

# Ejercicio 1: Crear un chatbot a partir de una plantilla
<a name="exercise-1"></a>

En este ejercicio, creará su primer chatbot Amazon Lex V2 y lo probará en la consola Amazon Lex V2. Para este ejercicio, utilizará la **OrderFlowers**plantilla, que muestra un caso de uso práctico y real del comercio electrónico.

## OrderFlowers Ejemplo de bot
<a name="example-overview"></a>

Utiliza la **OrderFlowers**plantilla para crear un chatbot Amazon Lex V2 que pueda gestionar las solicitudes de pedidos de flores. Este ejemplo demuestra cómo las empresas pueden automatizar la toma de pedidos con chatbots inteligentes. Para obtener más información sobre la estructura de un bot, consulte [Conceptos clave de Amazon Lex V2](how-it-works.md).
+ **Intentos**: el bot incluye un objetivo principal:
  + `OrderFlowers`- Gestiona las solicitudes de pedidos de flores recopilando el tipo de flor, la fecha y la hora de recogida
+ **Tipos de ranuras**: el bot usa tipos de ranuras integrados que reconocen y manejan automáticamente los formatos de datos comunes:
  + [AMAZON.Date](built-in-slot-date.md)- Reconoce fechas como «mañana», «el próximo viernes» o «15 de marzo»
  + [AMAZON.Time](built-in-slot-time.md)- Reconoce horas como «2 p.m.», «mediodía» o «tres y cuarto»
  + `FlowerTypes`(personalizado) - Variedades de flores específicas como «rosas», «tulipanes», «lirios»
+ **Tragaperras**: la OrderFlowers intención requiere la siguiente información antes de que el bot pueda procesar el pedido de flores:
  + `FlowerType`(tipo FlowerTypes personalizado): el tipo de flores que se van a pedir
  + `PickupDate`([AMAZON.Date](built-in-slot-date.md)tipo) - ¿Cuándo recoger las flores
  + `PickupTime`([AMAZON.Time](built-in-slot-time.md)tipo) - ¿A qué hora recoger las flores
+ **Ejemplos de expresiones**: los siguientes ejemplos de expresiones muestran las formas naturales en que los usuarios pueden solicitar pedidos de flores:
  + "Me gustaría recoger unas flores"
  + «Quiero pedir unas flores»
  + «¿Me pueden dar flores para recogerlas?»
  + «Necesito comprar flores»
+ **Preguntas**: una vez que el bot identifica la intención, utiliza las siguientes preguntas para rellenar los slots:
  + Pregunta para el slot `FlowerType`: «¿Qué tipo de flores deseas pedir?»
  + Pregunta por el `PickupDate` espacio: «¿Qué día quieres que recojan el \$1FlowerType\$1?»
  + Pregunta sobre el `PickupTime` espacio: «¿A qué hora quieres que recojan el \$1FlowerType\$1?»
  + Declaración de confirmación: «De acuerdo, tu \$1FlowerType\$1 estará listo para ser recogido antes del \$1PickupTime\$1 el \$1PickupDate\$1. ¿Te parece bien?» 

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

**Para crear un bot de Amazon Lex V2 (consola)**

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Lex en [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Seleccione **Crear bot**.

1. Para el **Método de creación**, seleccione **Empezar con un ejemplo**.

1. En la sección **Ejemplos de bots**, elija una opción **OrderFlowers**de la lista.

1. En la sección **Configuración del bot**, asígnele un nombre y una descripción opcional. El nombre debe ser exclusivo en su cuenta.

1. En la sección **Permisos**, seleccione **Crear un nuevo rol con permisos básicos de Amazon Lex**. Esto creará un rol de AWS Identity and Access Management (IAM) con los permisos que Amazon Lex V2 necesita para ejecutar el bot.

1. En la sección **Ley de Protección de la Privacidad en Línea para Niños (COPPA)**, seleccione la respuesta adecuada.

1. En las secciones **Tiempo de espera de la sesión agotado** y **Configuración avanzada**, deje la configuración predeterminada.

1. Seleccione **Siguiente**. Amazon Lex V2 crea su bot.

## Añada un idioma a su bot
<a name="add-language-procedure"></a>

Después de crear el bot, debe añadir uno o más idiomas compatibles con el bot. Un idioma contiene las intenciones, los tipos de slots y los slots que el bot usa para conversar con los usuarios.

**Añadir un idioma a su bot**

1. En la sección **Idioma**, seleccione un idioma compatible y añada una descripción.

1. Deje los campos **Interacción por voz** y **Umbral de puntuación de confianza de la clasificación de intenciones** con sus valores predeterminados.

1. Seleccione **Listo** para añadir el idioma al bot.

## Pon a prueba tu bot
<a name="test-bot-procedure"></a>

Cuando seleccione **Listo**, la consola abre el editor de intenciones. Puede usar el editor de intenciones para examinar las intenciones utilizadas por el bot. Cuando termine de examinar el bot, puede probarlo.

**Para probar el OrderFlowers bot**

1. En la parte superior de la página, seleccione **Compilar**. Espere a que el bot se compile.

1. Cuando se complete la compilación, seleccione **Probar** para abrir la ventana de prueba.

1. Pruebe el bot. Comience la conversación con uno de los ejemplos de enunciados, como «Me gustaría recoger unas flores».

## Permita que la NLU mejore la comprensión
<a name="enable-assisted-nlu"></a>

Ahora que tienes un chatbot en funcionamiento, vamos a mejorarlo con la NLU asistida para mejorar el reconocimiento de intenciones y la resolución de los espacios. Assisted NLU utiliza modelos lingüísticos extensos (LLMs) para comprender mejor las solicitudes de los usuarios, incluso cuando utilizan una redacción diferente a la de los ejemplos de formación.

**Para habilitar la NLU asistida**

1. En la consola Amazon Lex V2, navegue hasta la configuración de su bot.

1. En el panel de navegación izquierdo, selecciona **Configuración del bot**.

1. En **NLU asistida**, selecciona **Activar.**

1. Seleccione **Guardar** para aplicar los cambios.

1. Vuelva a crear su bot para aplicar la mejora de la NLU asistida.

**Prueba la mejora:** prueba estas variantes en tu consola de pruebas para ver cómo la NLU asistida gestiona las diferentes frases:
+ «Quiero comprar unas rosas» (debería activar la OrderFlowers intención y la captura) FlowerType
+ «¿Me pueden entregar flores mañana?» (debería activar OrderFlowers la intención y la captura PickupDate)
+ «Necesito tulipanes para recogerlos a las 3 p.m.» (debería activar la OrderFlowers intención y la captura FlowerType y PickupTime)

Observa cómo el chatbot puede entender estas variaciones naturales sin tener que añadirlas como ejemplos explícitos de expresiones. Esto funciona con Assisted NLU, que utiliza la IA para mejorar la comprensión del lenguaje natural.

## Siguientes pasos
<a name="getting-started-next-steps"></a>

Ahora que ha creado su primer bot con una plantilla, puede usar la consola para crear su propio bot. Para obtener instrucciones sobre cómo crear un bot personalizado y obtener más información sobre cómo crear bots, consulte [Uso de bots Amazon Lex V2](building-bots.md).

# Ejercicio 2: Revisar el flujo de la conversación
<a name="exercise-2"></a>

 En este ejercicio, revisará las estructuras JSON que se envían entre su aplicación cliente y el bot de Amazon Lex V2 que creó en [Ejercicio 1: Crear un chatbot a partir de una plantilla](exercise-1.md). La conversación utiliza la [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html)operación para generar las estructuras JSON. [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html)Devuelve la misma información que los encabezados HTTP de la respuesta.

Las estructuras JSON se dividen por cada turno de la conversación. Un *turno* es una solicitud de la aplicación cliente y una respuesta del bot. 

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

Durante el primer turno de la conversación, la aplicación cliente inicia la conversación con su bot. Tanto el URI como el cuerpo de la solicitud proporcionan información sobre la solicitud.

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

{
    "text": "I would like to order flowers"
}
```
+ El URI identifica el bot con el que se está comunicando la aplicación cliente. También incluye un identificador de sesión generado por la aplicación cliente que identifica una conversación específica entre un usuario y el bot.
+ El cuerpo de la solicitud contiene el texto que el usuario escribió en la aplicación cliente. En este caso, solo se envía el texto; sin embargo, la aplicación puede enviar información adicional, como los atributos de la solicitud o el estado de la sesión. Para obtener más información, consulte la operación [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html).

Desde `text`, Amazon Lex V2 detecta la intención del usuario de pedir flores. Amazon Lex V2 elige una de los slots de la intención (`FlowerType`) y una de las indicaciones del slot y, a continuación, envía la siguiente respuesta a la aplicación cliente. El cliente muestra el mensaje en la respuesta.

```
{
    "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>

En el turno 2, el usuario responde a la solicitud del bot Amazon Lex V2 del turno 1 con un valor que llena el slot `FlowerType`.

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

La respuesta del turno 2 muestra el slot `FlowerType` ocupado y proporciona un mensaje para obtener el valor del siguiente slot.

```
{
    "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>

En el turno 3, el usuario responde a la solicitud del bot Amazon Lex V2 del turno 2 con un valor que llena el slot `PickupDate`.

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

La respuesta del turno 3 muestra los slots ocupados `FlowerType` y `PickupDate` y proporciona un mensaje para obtener el valor del último 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>

En el turno 4, el usuario proporciona el valor final del slot para la intención, es decir, el momento en que se recogen las flores. 

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

En respuesta, Amazon Lex V2 envía una solicitud de confirmación al usuario para confirmar que la solicitud es correcta. El `dialogAction` está configurado en `ConfirmIntent` y el `confirmationState` es `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>

En el último turno, el usuario responde con la indicación de confirmación. 

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

En la respuesta que envía Amazon Lex V2, se indica que se ha cumplido la intención al establecer `confirmationState` en `Confirmed` y `dialogAction` para el cierre. Todos los valores de los slots están disponibles en la aplicación cliente.

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

# Ejercicio 3: Cree un chatbot avanzado de servicio al cliente
<a name="exercise-3"></a>

En este ejercicio avanzado, crearás un sofisticado chatbot de servicio al cliente para una empresa de comercio electrónico. Este bot demuestra las capacidades de nivel empresarial, como la gestión de pedidos, las ventas adicionales inteligentes, la generación de clientes potenciales y la optimización de los ingresos. El chatbot utiliza funciones impulsadas por la IA para ofrecer experiencias personalizadas a los clientes e impulsar el crecimiento empresarial.

## SmartCommerce Descripción general del bot de servicio al cliente
<a name="exercise-3-overview"></a>

El **bot de servicio SmartCommerce al cliente** está diseñado para gestionar interacciones complejas con los clientes y, al mismo tiempo, maximizar las oportunidades de ingresos. Este ejemplo demuestra cómo las empresas pueden automatizar el servicio al cliente y, al mismo tiempo, impulsar el crecimiento de las ventas mediante una gestión inteligente de las conversaciones.
+ **Intenciones personalizadas**: el bot incluye varias intenciones personalizadas para ofrecer un servicio de atención al cliente integral:
  + `CheckOrderStatus`- Verifica y proporciona información sobre el estado del pedido
  + `ProcessReturn`- Gestiona las solicitudes de devolución y los cambios
  + `UpsellProducts`- Recomienda productos y servicios adicionales
  + `CaptureLeadInfo`- Recopila información de los clientes para la generación de leads
  + `ScheduleCallback`- Reserva las llamadas del servicio de atención al cliente
+ **Intenciones integradas**: aprovecha las intenciones integradas de Amazon Lex V2 para interacciones comunes:
  + [AMAZON.HelpIntent](built-in-intent-help.md)- Proporciona ayuda y orientación
  + [AMAZON.CancelIntent](built-in-intent-cancel.md)- Gestiona las solicitudes de cancelación
  + [AMAZON.StopIntent](built-in-intent-stop.md)- Termina las conversaciones con elegancia
+ Tipos de **ranuras personalizadas: tipos** de ranuras especializadas para datos específicos de la empresa:
  + `ProductCategories`- Electrónica, ropa, hogar, libros, deportes
  + `ReturnReasons`- Defectuoso, tamaño incorrecto, cambio de opinión, no es como se describe
  + `ContactPreferences`- Notificación integrada en la aplicación por correo electrónico, SMS, llamada telefónica
  + `CustomerTiers`- Bronce, plata, oro, platino
+ **Tipos de ranuras integradas**: utiliza las ranuras integradas de Amazon Lex V2 para los formatos de datos más comunes:
  + [AMAZON.Date](built-in-slot-date.md)- Para fechas de entrega y programación de llamadas
  + [AMAZON.Time](built-in-slot-time.md)- Para los horarios de devolución de llamadas y los plazos de entrega
  + [AMAZON.EmailAddress](built-in-slot-email.md)- Para la recopilación de correos electrónicos de los clientes
  + [AMAZON.PhoneNumber](built-in-slot-phone.md)- Para los números de teléfono de los clientes
  + [AMAZON.Number](built-in-slot-number.md)- Para números de pedido y cantidades

## Configuración de intención detallada
<a name="exercise-3-intents-detail"></a>

### CheckOrderStatus Intención
<a name="check-order-status-intent"></a>

Esta intención gestiona la verificación de los pedidos y las consultas sobre el estado de los mismos, proporcionando a los clientes información sobre los pedidos en tiempo real y, al mismo tiempo, identificando oportunidades de ventas adicionales.
+ **Ranuras requeridas:**
  + `OrderNumber`([AMAZON.Number](built-in-slot-number.md)) - Número de pedido del cliente
  + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md)) - Correo electrónico de verificación
+ **Ejemplos de expresiones:**
  + «¿Cuál es el estado de mi pedido \$1OrderNumber\$1»
  + «Necesito comprobar el número de pedido \$1OrderNumber\$1»
  + «¿Dónde está mi paquete»
  + «Rastrear mi pedido \$1OrderNumber\$1»
  + «¿Ya se ha enviado mi pedido?»
+ **Funciones impulsadas por IA:**
  + Utiliza la NLU asistida para entender variantes como «mi paquete», «mis cosas» o «mi entrega»
  + Extrae automáticamente los números de pedido a partir de patrones de voz naturales

### UpsellProducts Intención
<a name="upsell-products-intent"></a>

Esta intención identifica de forma proactiva las oportunidades de ingresos mediante la recomendación de productos complementarios y servicios premium en función del historial del cliente y del contexto de interacción actual.
+ **Ranuras requeridas:**
  + `ProductCategory`(ProductCategories) - Categoría de interés
  + `CustomerTier`(CustomerTiers) - Nivel de fidelidad de los clientes
  + `Budget`([AMAZON.Number](built-in-slot-number.md)) - Rango de presupuesto del cliente
+ **Ejemplos de expresiones:**
  + «Muéstrame productos relacionados»
  + «¿Qué más podría venir con esto?»
  + «¿Tienen alguna oferta?»
  + «Estoy interesado en \$1ProductCategory\$1 artículos»
  + «¿Qué hay en oferta hoy?»
+ **Características de optimización de ingresos:**
  + Precios dinámicos basados en el nivel de cliente
  + Recomendaciones personalizadas mediante el historial de compras
  + Creación de ofertas por tiempo limitado para impulsar las compras inmediatas

### CaptureLeadInfo Intención
<a name="capture-lead-info-intent"></a>

Esta intención recopila sistemáticamente la información de los clientes para generar clientes potenciales, lo que crea datos valiosos que pueden venderse a los agregadores o utilizarse en campañas de marketing específicas.
+ **Ranuras requeridas:**
  + `CustomerFirstName`([AMAZON.FirstName](built-in-slot-first-name.md)): nombre del cliente para personalizarlo
  + `CustomerLastName`([AMAZON.LastName](built-in-slot-last-name.md)) - Apellido del cliente para la búsqueda del historial de ventas
  + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md)) - Dirección de correo electrónico
  + `CustomerPhone`([AMAZON.PhoneNumber](built-in-slot-phone.md)) - Número de teléfono
  + `InterestCategory`(ProductCategories) - Intereses por los productos
  + `ContactPreference`(ContactPreferences) - Método de contacto preferido
+ **Ejemplos de expresiones:**
  + «Quiero recibir información sobre nuevos productos»
  + «Inscríbeme para recibir actualizaciones»
  + «Estoy interesado en \$1InterestCategory\$1»
  + «Manténgame informado sobre las ventas»
  + «Quiero unirme a tu lista de correo»
  + «Mi nombre es \$1CustomerFirstName\$1 \$1CustomerLastName\$1»
  + «Soy \$1CustomerFirstName\$1 \$1CustomerLastName\$1 y quiero recomendaciones personalizadas»
+ **Características de generación de leads:**
  + Recopilación de datos estructurados para la integración de CRM
  + Puntuación de clientes potenciales basada en la calidad de la interacción
  + Calificación y enrutamiento automatizados de clientes potenciales
  + Formateo de datos para ventas de agregadores
+ **Integración del historial de ventas:**
  + Búsqueda de nombres de clientes en tablas de historial de compras almacenadas en S3
  + Análisis del patrón de compra para obtener recomendaciones personalizadas
  + Identificación del comportamiento de compra entre categorías
  + Análisis de tendencias de compra estacionales para ofertas específicas
  + Cálculo del valor de vida útil del cliente para fijar precios por niveles

## Flujo de conversación en varios turnos
<a name="exercise-3-multiturn-flow"></a>

El SmartCommerce bot está diseñado para gestionar conversaciones complejas y de varios turnos que abarcan múltiples intenciones y mantienen el contexto durante toda la interacción. Esto crea una experiencia natural similar a la humana y, al mismo tiempo, maximiza las oportunidades de ingresos.

### Ejemplo de flujo de conversación
<a name="conversation-flow-example"></a>

**Turnos 1-3: Verificación del estado del pedido**

```
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?"
```

**Turnos 4 a 6: oportunidad de aumentar las ventas**

```
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: generación de leads con búsqueda del historial de ventas**

```
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!"
```

### Funciones de gestión del contexto
<a name="context-management"></a>
+ **Persistencia de la sesión:** mantiene la información del cliente con múltiples intenciones
+ **Encadenamiento de intenciones:** pasa sin problemas entre la verificación de pedidos, el aumento de ventas y la captación de clientes potenciales
+ **Personalización dinámica:** ajusta las ofertas en función del nivel de cliente y del historial de compras
+ **Seguimiento de los ingresos:** supervisa las tasas de éxito de las ventas adicionales y los puntajes de calidad de los clientes potenciales

## Funciones impulsadas por IA
<a name="exercise-3-ai-features"></a>

Este chatbot aprovecha múltiples capacidades de inteligencia artificial para brindar un servicio al cliente inteligente y personalizado, al tiempo que impulsa el crecimiento empresarial.

### Implementación asistida de la NLU
<a name="assisted-nlu-implementation"></a>

Assisted NLU utiliza modelos lingüísticos extensos para comprender la intención de los clientes, incluso cuando utilizan una redacción no estándar o combinan varias solicitudes en un solo enunciado.
+ **Comprensión del lenguaje natural:**
  + «Mis cosas aún no han llegado» → CheckOrderStatus intención
  + «Quiero devolver esta basura» → ProcessReturn intención
  + «Muéstrame qué más tienes» → UpsellProducts intención
+ **Reconocimiento de múltiples intenciones:**
  + «Comprueba mi pedido 12345 e inscríbeme para recibir ofertas» → \$1 CheckOrderStatus CaptureLeadInfo

### Resolución generativa de ranuras
<a name="generative-slot-resolution"></a>

Utiliza la IA para extraer los valores de las ranuras a partir de entradas complejas en lenguaje natural sin necesidad de que coincidan exactamente con los datos de entrenamiento.
+ **Extracción inteligente:**
  + «Compré algunos aparatos electrónicos la semana pasada, el número de pedido era algo así como 12345" → OrderNumber: 12345, ProductCategory: Electrónica
  + «Llámeme a mi teléfono móvil al 555-123-4567 o envíeme un correo electrónico a john@company.com" → Teléfono: 555-123-4567, correo electrónico: john@company.com

### Integración del análisis de sentimientos
<a name="sentiment-analysis"></a>

Supervisa la opinión de los clientes a lo largo de la conversación para ajustar el enfoque y ampliarlo cuando sea necesario.
+ **Enrutamiento basado en las opiniones:**
  + Sentimiento positivo → Enfoque agresivo de ventas adicionales
  + Sentimiento neutral → Servicio estándar con ventas adicionales moderadas
  + Sentimiento negativo → Céntrese en la resolución de problemas, con un aumento mínimo de las ventas

## Sistema de verificación y confirmación de pedidos
<a name="exercise-3-confirmation-system"></a>

El bot incluye un completo sistema de confirmación que verifica la identidad del cliente, confirma los detalles del pedido y envía las confirmaciones a través de varios canales.

### Proceso de verificación multifactorial
<a name="verification-process"></a>
+ **Verificación primaria:**
  + Validación del número de pedido
  + Confirmación de dirección de correo
  + Los últimos 4 dígitos del método de pago (para operaciones delicadas)
+ **Verificación secundaria:**
  + Confirmación de dirección de envío
  + Validación de la fecha de compra
  + Verificación de los detalles del producto

### Sistema de confirmación multicanal
<a name="confirmation-channels"></a>

El bot envía automáticamente las confirmaciones a través de varios canales según las preferencias del cliente y el tipo de acción.
+ **Confirmaciones por correo electrónico:**
  + Actualizaciones del estado del pedido con información de seguimiento
  + Autorización de devolución con etiquetas de envío prepagadas
  + Amplíe las confirmaciones de compra con los detalles de entrega
  + Confirmación de captura de leads con ofertas de bienvenida
+ **Confirmaciones por SMS:**
  + Actualizaciones inmediatas del estado de los pedidos
  + Notificaciones de entrega con intervalos de tiempo
  + Alertas de venta relámpago para los clientes interesados
+ **Notificaciones integradas en la aplicación:**
  + Actualizaciones de pedidos en tiempo real
  + Recomendaciones de productos personalizadas
  + Actualizaciones del programa de fidelización

## Integración de puntos de venta (POS)
<a name="exercise-3-pos-integration"></a>

El chatbot se integra directamente con los sistemas POS para procesar transacciones, aplicar descuentos y actualizar el inventario en tiempo real.

### Procesamiento de transacciones en tiempo real
<a name="transaction-processing"></a>
+ **Flujo de transacciones de ventas adicionales:**

  ```
  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
  ```
+ **Seguimiento de ingresos:**
  + Aumente las tasas de conversión de ventas por nivel de cliente
  + Incremento medio del valor del pedido por interacción
  + Atribución de ingresos a las interacciones con los chatbots
  + Impacto en el valor de vida del cliente

### Motor de precios dinámico
<a name="dynamic-pricing"></a>
+ **Precios basados en niveles:**
  + Bronce: precios estándar
  + Plata: 5% de descuento en ventas adicionales
  + Oro: 10-20% de descuento en ventas adicionales
  + Platinum: 25% de descuento\$1envío gratis
+ **Precios contextuales:**
  + Escenarios de resolución de problemas: discount adicional para mantener la satisfacción
  + Clientes de alto valor: niveles de precios exclusivos
  + Liquidación de inventario: descuentos agresivos para artículos que se mueven lentamente

## Sistema avanzado de generación de leads
<a name="exercise-3-lead-generation"></a>

El chatbot incluye un sofisticado sistema de generación de leads que captura, califica y monetiza los datos de los clientes a través de múltiples fuentes de ingresos.

### Estrategia de captura de leads multitáctil
<a name="lead-capture-strategy"></a>
+ **Captura oportunista:**
  + Durante las comprobaciones del estado del pedido: «¿Quieres recibir actualizaciones sobre productos similares?»
  + Tras la resolución del problema: «¿Podemos informarte sobre las mejoras del producto?»
  + Durante las interacciones de ventas adicionales: «¿Deberíamos avisarte de futuras ofertas en esta categoría?»
+ **Captura de valor añadido:**
  + Acceso exclusivo a los precios para miembros
  + Acceso anticipado a los lanzamientos de nuevos productos
  + Recomendaciones de productos personalizadas
  + Ofertas especiales de cumpleaños y aniversario

### Calificación automatizada de clientes potenciales
<a name="lead-qualification"></a>
+ **Criterios de puntuación:**
  + Valor del historial de compras: 0-25 puntos
  + Nivel de compromiso: 0-20 puntos
  + Integridad de la información de contacto: 0-15 puntos
  + Amplitud de intereses por categoría de producto: 0-15 puntos
  + Respuesta a los intentos de venta adicional: de 0 a 25 puntos
+ **Categorías de clientes potenciales:**
  + Clientes potenciales (80-100 puntos): contacto inmediato con el equipo de ventas
  + Warm Leads (60-79 puntos): secuencia de crianza automatizada
  + Cold Leads (40-59 puntos): boletín mensual
  + Prospectos (0-39 puntos): correos electrónicos promocionales trimestrales

### Monetización de datos de leads para agregadores
<a name="aggregator-sales"></a>

El sistema formatea y empaqueta los datos de clientes potenciales para venderlos a agregadores de terceros, lo que crea una fuente de ingresos adicional.
+ **Paquetes de datos:**
  + *Paquete Premium:* información de contacto completa, historial de compras, preferencias, puntuaciones de participación
  + *Paquete estándar:* información de contacto, preferencias básicas, intereses de categoría
  + *Paquete básico:* dirección de correo electrónico, categoría de interés principal
+ **Características de cumplimiento:**
  + Cumplimiento del GDPR con el seguimiento del consentimiento explícito
  + Cumplimiento de los mecanismos de exclusión de la CCPA
  + Cumplimiento de las normas CAN-SPAM para el marketing por correo electrónico
  + Políticas de retención y eliminación de datos
+ **Optimización de ingresos:**
  + Precios dinámicos basados en los puntajes de calidad de los clientes potenciales
  + Alianzas de datos exclusivas con agregadores premium
  + Licitaciones en tiempo real para clientes potenciales de alto valor

## Estrategias de optimización de ingresos
<a name="exercise-3-revenue-optimization"></a>

Cada interacción está diseñada para maximizar los ingresos mediante la optimización inteligente de las ventas adicionales, las ventas cruzadas y el valor a lo largo de la vida útil del cliente.

### Estrategias inteligentes de venta adicional
<a name="upselling-strategies"></a>
+ **Ventas adicionales contextuales:**
  + Verificación del estado del pedido → «¡Su pedido está listo\$1 ¿Añadir el envío rápido por solo 5\$1?»
  + Solicitud de devolución → «En lugar de devolver, ¿quieres cambiarlo por nuestro modelo actualizado?»
  + Consulta de producto → «Este artículo combina perfectamente con [producto complementario]: combínalo y ahorra un 15%»
+ **Venta por urgencia:**
  + «Esta oferta vence en 24 horas»
  + «Solo quedan 3 en stock a este precio»
  + «La venta flash termina a medianoche»

### Oportunidades de venta cruzada
<a name="cross-selling-opportunities"></a>
+ **Venta del ecosistema de productos:**
  + Electrónica → Accesorios, garantías, servicios de instalación
  + Ropa → Artículos a juego, productos de cuidado, servicios de estilismo
  + Artículos para el hogar → Artículos complementarios, productos de mantenimiento, consultas de diseño
+ **Venta adicional de servicios:**
  + Garantías ampliadas y planes de protección
  + Niveles de atención al cliente premium
  + Servicios de suscripción y entrega automática
  + Instalación y configuración profesionales

### Optimización del valor de por vida del cliente
<a name="lifetime-value-optimization"></a>
+ **Integración del programa de fidelización:**
  + Actualizaciones automáticas de niveles basadas en las interacciones del chatbot
  + Puntos extra por participar en ofertas de ventas adicionales
  + Recompensas y descuentos exclusivos solo para chatbots
+ **Estrategias de retención:**
  + Resolución proactiva de problemas para evitar la pérdida de clientes
  + Ofertas personalizadas de recuperación para clientes inactivos
  + Ofertas para celebrar aniversarios e hitos

## Procedimientos de implementación
<a name="exercise-3-implementation"></a>

Siga estos step-by-step procedimientos para crear su chatbot avanzado de servicio al cliente con todas las funciones de optimización de ingresos.

### Requisitos previos y requisitos de configuración
<a name="exercise-3-prerequisites"></a>

Antes de crear el SmartCommerce bot, asegúrese de tener la configuración de la cuenta de AWS y los permisos necesarios y de comprender las consideraciones del servicio.

#### Requisitos de acceso y cuenta de AWS
<a name="aws-account-setup"></a>
+ **Cuenta de AWS:** necesita una cuenta de AWS activa con la facturación habilitada. Si no tiene una, regístrese en [aws.amazon.com.](https://aws.amazon.com/)
+ **Permisos de IAM:** su usuario o rol de AWS debe tener los siguientes permisos:
  + `lex:*`- Permisos completos de Amazon Lex V2 para la creación y administración de bots
  + `iam:CreateRole`- Crear funciones de servicio para el bot
  + `iam:AttachRolePolicy`- Adjuntar políticas a las funciones de servicio
  + `lambda:CreateFunction`- Para integración con Lambda (opcional)
  + `logs:CreateLogGroup`- Para el registro de Amazon CloudWatch Logs
+ **Selección de región:** elija una región de AWS que sea compatible con Amazon Lex V2 y con su público objetivo. Las regiones recomendadas incluyen:
  + Este de EE. UU. (Norte de Virginia): us-east-1
  + Oeste de EE. UU. (Oregón): us-west-2
  + Europa (Irlanda): eu-west-1
  + Asia Pacífico (Sídney): ap-southeast-2

#### Límites y cuotas de servicio
<a name="service-limits-quotas"></a>

Amazon Lex V2 tiene varios límites de servicio que pueden afectar al desarrollo y la implementación de sus bots:
+ **Límites de bots:**
  + Máximo de 100 bots por cuenta y región
  + Máximo 100 intentos por bot
  + Máximo 100 tipos de ranuras por bot
  + Máximo 200 espacios por intento
+ **Límites de tiempo de ejecución:**
  + Tiempo máximo de espera de sesión de 15 minutos
  + Máximo 1000 solicitudes por segundo (se puede aumentar)
  + Máximo 1500 caracteres por entrada de texto
+ **Límites de datos de entrenamiento:**
  + Máximo 1500 ejemplos de expresiones por intención
  + Máximo de 10 000 valores de tipo de ranura
  + Máximo 140 caracteres por ejemplo de expresión

**nota**  
Si necesita límites más altos para el uso en producción, puede solicitar aumentos de cuota a través del AWS Support Center.

#### Consideraciones sobre costos
<a name="cost-considerations"></a>

Entender los precios de Amazon Lex V2 le ayuda a planificar y presupuestar la implementación de su chatbot:
+ **Precios basados en solicitudes:**
  + Solicitudes de texto: 0,00075 USD por solicitud después de las primeras 10 000 solicitudes del mes
  + Solicitudes de voz: 0,004 USD por solicitud después de las primeras 1000 solicitudes del mes
+ **Nivel gratuito:**
  + 10 000 solicitudes de texto al mes durante el primer año
  + 1000 solicitudes de voz al mes durante el primer año
+ **Costos adicionales:**
  + Funciones Lambda (si se utilizan): 0,20\$1 por 1 millón de solicitudes más tiempo de procesamiento
  +  CloudWatch Registros de Amazon Logs: 0,50 USD por GB ingerido
  + Costes de transferencia de datos para integraciones externas
+ **Consejos de optimización de costos:**
  + Utilice los atributos de sesión para reducir las llamadas redundantes a la API
  + Implemente flujos de conversación eficientes para minimizar los turnos
  + Supervise el uso a través CloudWatch de los registros para identificar las oportunidades de optimización

**importante**  
Para obtener información sobre los precios actuales, visita la [página de precios de Amazon Lex](https://aws.amazon.com/lex/pricing/), ya que las tarifas pueden cambiar.

#### Descripción general de la integración de Lambda
<a name="lambda-integration-basics"></a>

Si bien este ejercicio se centra en la configuración del bot Lex, las funciones avanzadas descritas (integración de puntos de venta, generación de clientes potenciales, optimización de ingresos) normalmente requerirían funciones Lambda para el procesamiento de back-end.
+ **Cuando se necesita Lambda:**
  + Verificación del estado del pedido con bases de datos externas
  + Controles de inventario en tiempo real para aumentar las ventas
  + Almacenamiento y recuperación de datos de clientes
  + Búsqueda del historial de ventas en tablas de S3 utilizando el nombre y apellidos del cliente
  + Análisis del patrón de compra para obtener recomendaciones personalizadas
  + Integración del procesamiento de pagos
  + Envío de confirmaciones por correo electrónico y SMS
+ **Integración del historial de ventas de S3:**
  + Consulte tablas de S3 utilizando CustomerLastName ranuras CustomerFirstName y ranuras
  + Analice el historial de compras para identificar los patrones y preferencias de compra
  + Genera recomendaciones de productos personalizadas basadas en compras anteriores
  + Calcule el valor de vida útil del cliente para aplicar estrategias de precios dinámicas
  + Identifique las oportunidades de venta cruzada a partir del análisis de correlación de compras
+ **Requisitos básicos de configuración de Lambda:**
  + Función de ejecución de Lambda con los permisos adecuados
  + Configuración de VPC si se accede a recursos privados
  + Variables de entorno para la configuración
  + Gestión de errores e implementación del registro
+ **Puntos de integración:**
  + Cumplimiento de intenciones: procesa las intenciones completadas
  + Validación de ranuras: valida las entradas del usuario en tiempo real
  + Gestión del diálogo: controle el flujo de la conversación

**nota**  
Para este ejercicio, nos centraremos en la configuración del bot Lex. La integración Lambda se puede añadir más adelante a medida que evolucionen sus requisitos. El bot funcionará con respuestas estáticas con fines de prueba y demostración.

#### Lista de verificación previa a la implementación
<a name="getting-started-checklist"></a>

Antes de continuar con la creación del bot, compruebe que tiene:
+ ✓ Cuenta AWS activa con facturación habilitada
+ ✓ Permisos de IAM adecuados para Lex y servicios relacionados
+ ✓ Región de AWS de destino seleccionada
+ ✓ Se revisaron los límites y las cuotas del servicio
+ ✓ Comprendió las implicaciones de los costos
+ ✓ Enfoque de integración Lambda planificado (si es necesario)
+ ✓ Acceso a la consola de administración de AWS (AWS Management Console)

### Cree el SmartCommerce bot
<a name="create-advanced-bot-procedure"></a>

**Para crear el bot de servicio SmartCommerce al cliente**

1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon Lex en [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Seleccione **Crear bot**.

1. Para el **Método de creación**, seleccione **Crear un bot en blanco**.

1. En la sección de **configuración del bot**:
   + Nombre del bot: **SmartCommerceBot**
   + Descripción: **Advanced customer service chatbot with upselling, lead generation, and revenue optimization**

1. En la sección **Permisos**, seleccione **Crear un nuevo rol con permisos básicos de Amazon Lex**.

1. En la sección **Ley de Protección de la Privacidad en Línea para Niños (COPPA)**, seleccione **No**.

1. En la sección Tiempo de **espera de la sesión, **15 minutes** configúrelo** para permitir conversaciones complejas de varios turnos.

1. Elija **Siguiente**.

1. **Agrega el inglés (EE. UU.) como idioma y selecciona Listo.**

### Cree tipos de ranuras personalizados
<a name="create-custom-slot-types-procedure"></a>

**Para crear los tipos de ranuras personalizados**

1. En el panel de navegación izquierdo, seleccione **Tipos de ranuras**.

1. Seleccione **Añadir tipo de ranura** y cree los siguientes tipos de ranura:

   1. **ProductCategories:**
      + Electrónica
      + Ropa
      + Inicio
      + Libros
      + Sports
      + Belleza
      + Automotriz

   1. **ReturnReasons:**
      + Defectuoso
      + Tamaño incorrecto
      + ¿Cambió de opinión
      + No como se describe
      + Dañado durante el envío
      + Se encontró un mejor precio

   1. **ContactPreferences:**
      + Correo electrónico
      + SMS
      + Llamada telefónica
      + Notificación en la aplicación
      + Correo electrónico

   1. **CustomerTiers:**
      + Bronce
      + Plata
      + Oro
      + Platino

### Crea intenciones personalizadas
<a name="create-intents-procedure"></a>

**Para crear la intención CheckOrderStatus**

1. En el panel de navegación izquierdo, elija **Intenciones.**

1. Elija **Añadir intención y asígnele** un nombre. **CheckOrderStatus**

1. Añada los siguientes ejemplos de expresiones:
   + «¿Cuál es el estado de mi pedido \$1OrderNumber\$1»
   + «Necesito comprobar el número de pedido \$1OrderNumber\$1»
   + «¿Dónde está mi paquete»
   + «Rastrear mi pedido \$1OrderNumber\$1»
   + «¿Ya se ha enviado mi pedido?»
   + «¿Cuándo llegará mi pedido?»
   + «Quiero información sobre mi envío»

1. Añada las siguientes ranuras:
   + `OrderNumber`([AMAZON.Number](built-in-slot-number.md)) - Necesario

     Mensaje: «¿Puede proporcionarnos su número de pedido?»
   + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md)) - Necesario

     Mensaje: «Para verificar tu identidad, proporciona la dirección de correo electrónico asociada a este pedido».

1. Establece el mensaje de confirmación: «Permíteme comprobar el número de pedido \$1OrderNumber\$1 de \$1CustomerEmail\$1. ¿Es correcto?».

1. Configura el mensaje de envío: «¡He encontrado tu pedido\$1 El número de pedido \$1OrderNumber\$1 es \$1OrderStatus\$1. \$1UpsellMessage\$1»

**Para crear la UpsellProducts intención**

1. Cree una nueva intención con el nombre**UpsellProducts**.

1. Agregue ejemplos de expresiones:
   + «Muéstrame productos relacionados»
   + «¿Qué más podría venir con esto?»
   + «¿Tienen alguna oferta?»
   + «Estoy interesado en \$1ProductCategory\$1 artículos»
   + «¿Qué hay en oferta hoy?»
   + «Muéstrame más opciones»

1. Añadir ranuras:
   + `ProductCategory`(ProductCategories) - Necesario

     Mensaje: «¿Qué tipo de productos le interesan?»
   + `Budget`([AMAZON.Number](built-in-slot-number.md)) - Opcional

     Mensaje: «¿Cuál es su rango de presupuesto para artículos adicionales?»

**Para crear la CaptureLeadInfo intención**

1. Cree una nueva intención con el nombre**CaptureLeadInfo**.

1. Agregue ejemplos de expresiones:
   + «Quiero recibir información sobre nuevos productos»
   + «Inscríbeme para recibir actualizaciones»
   + «Estoy interesado en \$1InterestCategory\$1»
   + «Manténgame informado sobre las ventas»
   + «Quiero unirme a tu lista de correo»
   + «Envíame ofertas y promociones»
   + «Mi nombre es \$1CustomerFirstName\$1 \$1CustomerLastName\$1»
   + «Soy \$1CustomerFirstName\$1 \$1CustomerLastName\$1 y quiero recomendaciones personalizadas»

1. Añadir ranuras:
   + `CustomerFirstName`([AMAZON.FirstName](built-in-slot-first-name.md)) - Necesario

     Mensaje: «¿Cuál es su nombre de pila para un servicio personalizado?»
   + `CustomerLastName`([AMAZON.LastName](built-in-slot-last-name.md)) - Necesario

     Mensaje: «¿Y tu apellido para poder consultar tu historial de compras?»
   + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md)) - Necesario
   + `CustomerPhone`([AMAZON.PhoneNumber](built-in-slot-phone.md)) - Opcional
   + `InterestCategory`(ProductCategories) - Necesario
   + `ContactPreference`(ContactPreferences) - Necesario

### Habilite las funciones impulsadas por IA
<a name="enable-ai-features-procedure"></a>

**Para habilitar la NLU asistida y otras funciones de IA**

1. En el panel de navegación izquierdo, selecciona **Configuración del bot.**

1. En **NLU asistida**, selecciona **Activar.**

1. En **IA generativa, habilita**:
   + Resolución de slots asistida
   + Creación descriptiva de bots

1. En **Análisis de sentimientos**, selecciona **Activar**.

1. Seleccione **Save**.

### Pruebe e implemente el bot
<a name="test-and-deploy-procedure"></a>

**Para probar el SmartCommerce bot**

1. Elige **Construir** para compilar tu bot.

1. Una vez completada la compilación, elige **Probar**.

1. Pruebe los siguientes flujos de conversación:

   1. **Flujo de estado del pedido:**
      + Usuario: «Comprueba mi pedido 12345"
      + Bot: Solicita la verificación por correo electrónico
      + Usuario: proporciona el correo electrónico
      + Bot: proporciona el estado y ofrece ventas adicionales

   1. **Flujo de ventas adicionales:**
      + Usuario: «Muéstrame ofertas»
      + Bot: Solicita la categoría del producto
      + Usuario: «Electrónica»
      + Bot: presenta ofertas personalizadas

   1. **Flujo de generación de leads:**
      + Usuario: «Inscríbeme para recibir actualizaciones»
      + Bot: recopila información de contacto
      + Usuario: proporciona detalles
      + Bot: confirma la suscripción y ofrece un descuento inmediato

1. Comprueba que las funciones de IA funcionan:
   + Prueba variantes del lenguaje natural, como «mis cosas no han llegado»
   + Verifica que el análisis de opiniones ajuste las respuestas de los bots
   + Confirme que la resolución de la ranura funcione con entradas complejas

1. Una vez finalizadas las pruebas, elige **Publicar** para implementar tu bot.

## Análisis y optimización del rendimiento
<a name="exercise-3-analytics"></a>

Supervisa y optimiza el rendimiento de tu SmartCommerce bot mediante un análisis exhaustivo y un seguimiento de los ingresos.

### Métricas clave de rendimiento
<a name="key-metrics"></a>
+ **Métricas de ingresos:**
  + Tasa de conversión de ventas adicionales por nivel de cliente
  + Incremento medio del valor del pedido por interacción
  + Ingresos por conversación
  + Impacto en el valor de vida del cliente
+ **Métricas de generación de leads:**
  + Tasa de captación de leads por tipo de interacción
  + Puntuaciones de calidad de los leads y tasas de conversión
  + Ingresos por monetización de datos procedentes de las ventas de agregadores
  + Tasa de crecimiento de las suscripciones de correo electrónico
+ **Métricas operativas:**
  + Precisión del reconocimiento de intenciones
  + Tasa de éxito en el llenado de ranuras
  + Tasa de finalización de conversaciones
  + Puntuaciones de satisfacción del cliente

### Estrategias de optimización continua
<a name="optimization-strategies"></a>
+ **Pruebas A/B:**
  + Pruebe diferentes enfoques de mensajería de ventas adicionales
  + Compare las técnicas de captura de clientes potenciales agresivas con las suaves
  + Optimice los porcentajes de descuento para obtener la máxima conversión
+ **Optimización de Machine Learning:**
  + Analice los patrones de conversación exitosos
  + Identifique el momento óptimo para las ofertas de ventas adicionales
  + Perfeccione los algoritmos de clasificación por niveles de clientes

## Conclusión del ejercicio
<a name="exercise-3-conclusion"></a>

¡Enhorabuena\$1 Ha creado con éxito un chatbot avanzado de servicio al cliente que demuestra las capacidades de nivel empresarial para la optimización de los ingresos y la fidelización de los clientes. Este SmartCommerce bot muestra cómo las empresas pueden aprovechar las funciones impulsadas por IA de Amazon Lex V2 para:
+ **Maximice los ingresos:** mediante estrategias inteligentes de venta adicional, venta cruzada y precios dinámicos
+ **Genere clientes potenciales: recopilando** y calificando sistemáticamente la información de los clientes para obtener múltiples fuentes de ingresos
+ **Mejore la experiencia del cliente:** utilice la IA para comprender el lenguaje natural y ofrecer interacciones personalizadas
+ **Optimice las operaciones:** mediante un servicio de atención al cliente automatizado que escale de manera eficiente y mantenga la calidad

Las técnicas demostradas en este ejercicio se pueden adaptar y ampliar para diversas industrias y casos de uso, lo que proporciona una base para crear soluciones sofisticadas de inteligencia artificial conversacional que impulsen el crecimiento empresarial.

### Siguientes pasos
<a name="next-steps"></a>

Para mejorar aún más tu SmartCommerce bot, considera la posibilidad de implementar:
+ **Integraciones avanzadas:**
  + Integración del sistema CRM para perfiles completos de clientes
  + Conexiones al sistema de gestión de inventario para una disponibilidad en tiempo real
  + Integración del procesamiento de pagos para transacciones fluidas
+ **Despliegue multicanal:**
  + Integración del widget de chat del sitio web
  + Conexiones a plataformas de redes sociales
  + Implementación de la interfaz de voz
+ **Análisis avanzado:**
  + Desarrollo de paneles personalizados para métricas empresariales
  + Análisis predictivo del comportamiento de los clientes
  + Modelado de atribución y seguimiento del ROI

# Mejores prácticas para empezar
<a name="getting-started-best-practices"></a>

## Principios del diseño de conversaciones
<a name="conversation-design-principles"></a>

Seguir estos principios de diseño de conversaciones desde el principio le ayudará a crear chatbots Amazon Lex V2 más eficaces, fáciles de mantener y fáciles de usar que ofrezcan interacciones naturales.

### Principios básicos de diseño
<a name="core-design-principles"></a>
+ **Comience con los objetivos de los usuarios**: diseñe su bot en función de lo que los usuarios quieren lograr, no de lo que su sistema puede hacer. Céntrese en el recorrido del usuario y en los resultados deseados.
+ **Utilice un lenguaje natural**: escriba las indicaciones y las respuestas de forma conversacional. Evita la jerga técnica y habla como lo haría un humano servicial.
+ **Ofrezca opciones claras**: cuando los usuarios se queden atascados, ofrezca ejemplos específicos de lo que pueden decir en lugar de un texto de ayuda genérico.
+ **Hágalo simple**: comience con la funcionalidad básica y añada complejidad gradualmente. Los usuarios deberían poder completar las tareas comunes rápidamente.
+ **Maneje los errores con elegancia**: cuando el bot no entienda, proporcione una guía útil en lugar de simplemente decir «no entiendo».
+ **Confirma las acciones importantes**: confirma siempre antes de realizar acciones que no se puedan deshacer fácilmente, como realizar pedidos o eliminar información.
+ **Proporcione rutas de escape**: ofrezca siempre a los usuarios una forma de volver a empezar, obtener ayuda o ponerse en contacto con una persona cuando la necesiten.

### Mejores prácticas para el flujo de conversaciones
<a name="conversation-flow-best-practices"></a>
+ **Establezca expectativas claras**: deje que los usuarios sepan lo que el bot puede y no puede hacer al principio de la conversación.
+ **Utilice la divulgación progresiva**: pida información pieza por pieza en lugar de abrumar a los usuarios con múltiples preguntas.
+ **Proporcione contexto**: recuerde a los usuarios qué información ya ha recopilado y qué es lo que aún necesita.
+ **Facilite las correcciones**: permita a los usuarios corregir la información sin tener que empezar de cero por completo.

## Casos de uso y ejemplos del mundo real
<a name="real-world-use-cases"></a>

Estos ejemplos prácticos muestran cómo aplicar los principios del diseño de conversaciones a los escenarios habituales a los que se enfrentan los nuevos usuarios de Amazon Lex V2.

### Caso de uso 1: reserva de citas
<a name="use-case-appointment-booking"></a>

**Escenario:** Un consultorio médico quiere automatizar la programación de citas.

**Desafío:** los usuarios deben proporcionar varios datos (tipo de servicio, fecha, hora, información de contacto) y es posible que deseen cambiar los detalles.

**Enfoque de solución:**
+ **Comience de manera amplia:** «¿Qué tipo de cita le gustaría programar?» (odontológico, examen ocular, consulta)
+ **Reduzca:** «¿Cuándo preferiría su cita con el dentista?» (Acepte entradas flexibles como «la semana que viene» o «viernes por la tarde»)
+ **Cambios de confirmación y oferta:** «Tengo programada una limpieza dental para el viernes 15 de marzo a las 14:00 horas. ¿Esto funciona para ti?»
+ **Gestionar los cambios:** si el usuario dice: «¿Podemos hacerlo a las 3 de la tarde en su lugar?» , actualiza la hora sin reiniciar todo el proceso.

**Técnicas clave:**
+ Utilice [AMAZON.Date](built-in-slot-date.md) y [AMAZON.Time](built-in-slot-time.md) para una date/time entrada flexible
+ Cree tipos de espacios personalizados para los tipos de citas
+ Utilice las instrucciones de confirmación antes de finalizar las reservas

### Caso de uso 2: Consulta del estado del pedido
<a name="use-case-order-tracking"></a>

**Escenario:** una empresa de comercio electrónico quiere que los clientes comprueben el estado del pedido sin llamar al servicio de asistencia.

**Desafío:** es posible que los usuarios no tengan a mano su número de pedido o que lo pregunten de distintas formas.

**Enfoque de solución:**
+ **Múltiples puntos de entrada:** acepte la pregunta «¿Dónde está mi pedido?» , «Rastrear mi paquete» o «Estado del pedido»
+ **Identificación flexible:** «Puedo ayudarlo a rastrear su pedido. ¿Tiene su número de pedido o prefiere usar su dirección de correo electrónico?»
+ **Guía útil:** «El número de pedido suele estar en el correo electrónico de confirmación y comienza por 'ORD-'»
+ **Resultados claros:** «Tu pedido \$1ORD -12345 se envió ayer y llegará mañana a las 20:00 horas. ¿Desea obtener detalles de seguimiento?»

**Técnicas clave:**
+ Utiliza tipos de ranuras integradas como AMAZON. AlphaNumeric para números de pedido
+ Proporcione varias formas de identificar los pedidos (correo electrónico, teléfono, número de pedido)
+ Proporcione información clara y procesable en las respuestas

### Caso de uso 3: Preguntas frecuentes y soporte
<a name="use-case-faq-support"></a>

**Escenario:** una empresa de software quiere gestionar automáticamente las preguntas de soporte más habituales.

**Desafío:** los usuarios hacen las mismas preguntas de muchas maneras diferentes, y algunos problemas requieren la ayuda humana.

**Enfoque de solución:**
+ **Reconocimiento amplio de intenciones:** capacite las intenciones para que reconozcan variaciones como «No puedo iniciar sesión», «Problemas con el inicio de sesión» o «La contraseña no funciona»
+ **Solución de problemas guiada:** «Probemos algunos pasos rápidos. En primer lugar, ¿has intentado restablecer tu contraseña?»
+ **Ruta de escalación:** «Si estos pasos no funcionan, puedo ponerte en contacto con nuestro equipo de soporte. ¿Quieres que lo haga?»
+ **Seguimiento:** «¿Solucionó esto tu problema? Siempre puedes decir «ayuda» si necesitas ayuda con alguna otra cosa».

**Técnicas clave:**
+ Utilice muchos ejemplos de expresiones para captar las diferentes formas en que los usuarios expresan sus problemas
+ Ofrezca step-by-step orientación en lugar de largas explicaciones
+ Ofrezca siempre un camino hacia el apoyo humano cuando la ayuda automatizada no sea suficiente

### Manejo de escenarios complejos
<a name="handling-complex-scenarios"></a>

Incluso los bots más simples se enfrentan a situaciones complejas. A continuación, te explicamos cómo manejarlas con elegancia:
+ **Cuando los usuarios cambian de opinión:**
  + Usuario: «En realidad, quiero rosas en vez de tulipanes»
  + Bot: «¡No hay problema\$1 He actualizado tu pedido a rosas. Tus rosas estarán listas para recogerlas el viernes a las 2 p.m. ¿Es correcto?»
+ **Cuando la información no está clara:**
  + Usuario: «Necesito flores para la semana que viene»
  + Bot: «¡Estaré encantado de ayudarte\$1 ¿Qué día de la semana que viene es mejor para ti? Puedes decir algo como «lunes» o «el próximo martes».
+ **Cuando el bot no entiende:**
  + Usuario: «Quiero los morados con tallos largos»
  + Bot: «Quiero asegurarme de que lo he hecho bien. ¿Buscas flores moradas? Tenemos rosas moradas, tulipanes morados e lirios morados disponibles».
+ **Cuando los usuarios necesitan empezar de nuevo:**
  + Usuario: «Cancela esto, quiero empezar de nuevo»
  + Bot: «¡Por supuesto\$1 He aprobado tu pedido actual. ¿Qué tipo de flores quieres pedir hoy?»