# Gestión de intenciones

## ¿Qué es una intención? <a href="#what-is-an-intent" id="what-is-an-intent"></a>

Definición de Intent de Dialogflow

> Una intención categoriza la intención del usuario final para un turno de conversación. Para cada agente, define muchas intenciones, donde sus intenciones combinadas pueden manejar una conversación completa. Cuando un usuario final escribe o dice algo, lo que se denomina *expresión de usuario final* , Dialogflow hace coincidir la expresión del usuario final con la mejor intención de su agente. Hacer coincidir una intención también se conoce como *clasificación de intenciones* .

Una intención básica contiene lo siguiente:

* **Frases de formación** : estas son frases de ejemplo de lo que podrían decir los usuarios finales. Cuando una expresión de usuario final se parece a una de estas frases, Dialogflow coincide con la intención.
* **Acción** : puede definir una acción para cada intento. Cuando una intención coincide, Dialogflow proporciona la acción a su sistema, y ​​puede usar la acción para activar ciertas acciones definidas en su sistema.
* **Parámetros** : cuando una intención coincide en tiempo de ejecución, Dialogflow proporciona los valores extraídos de la expresión del usuario final como *parámetros* . Cada parámetro tiene un tipo, llamado [tipo de entidad](https://cloud.google.com/dialogflow/docs/entities-overview) , que dicta exactamente cómo se extraen los datos.
* **Respuestas** : usted define **respuestas de** texto, de voz o visuales para devolverlas al usuario final. Estos pueden proporcionar respuestas al usuario final, pedirle al usuario final más información o terminar la conversación.

Una intención más compleja también puede contener lo siguiente:

* **Contextos** : los contextos de Dialogflow son similares al contexto del lenguaje natural. Si una persona te dice "son de color naranja", necesitas contexto para entender a qué se refiere la persona. De manera similar, para que Dialogflow maneje una expresión de usuario final como esa, debe contar con contexto para que coincida correctamente con una intención.
* **Eventos** : con los eventos, puede invocar una intención basada en algo que ha sucedido, en lugar de lo que comunica un usuario final.

{% hint style="info" %}
Las intenciones se pueden activar en función del país y el idioma de sus contactos. Si su contacto tiene un valor de país o idioma presente en sus detalles de contacto, los intentos pueden ser activados en base a los diferentes valores de país e idioma.
{% endhint %}

## Intentos de visualización <a href="#viewing-intents" id="viewing-intents"></a>

**Paso 1: Inicie sesión en Dialogflow**\
Navegue a la consola de [Dialogflow](https://dialogflow.cloud.google.com/) e inicie sesión con sus credenciales de usuario.

**Paso 2: Navegue a Intents**\
Seleccione el agente que le gustaría configurar y seleccione Intents en el menú de navegación lateral

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FOhmrtiLFUAFUzNCCuZMK%2FScreenshot%202020-07-20%20at%203.58.20%20PM.png?alt=media\&token=cba9a604-b50f-448b-959d-6f223b4b8db1)

{% hint style="success" %}
Todas las intenciones predeterminadas y las creadas se enumerarán en esta vista.
{% endhint %}

## Intenciones predeterminadas <a href="#default-intents" id="default-intents"></a>

Cuando creas un agente, Dialogflow creará dos intenciones predeterminadas para ti

* **Intención de bienvenida predeterminada** : esta intención coincide cuando el contacto comienza una conversación con la plataforma. Esta intención debe devolver una respuesta que le permita al usuario final saber qué hace su agente o qué puede decir para comenzar una conversación.
* **Intención alternativa predeterminada** : esta intención coincide cuando el agente no puede hacer coincidir la expresión del usuario final con ninguna otra intención.

### Intención de bienvenida predeterminada

Aprenda [más](https://cloud.google.com/dialogflow/es/docs/intents-default#welcome) sobre la definición de Dialogflow de Intención de Bienvenida por defecto!

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FBC5DfAUiItkDzFpXs0do%2FScreenshot%202020-07-20%20at%204.18.48%20PM.png?alt=media\&token=eb2c5dd1-45ef-4b07-8724-d8de015f3857)

Como pueden ver, la intención de bienvenida por defecto tiene un pre-requisito de evento de bienvenida y frases de saludo. Cuando un contacto te manda un mensaje por primera vez, esta intención será igualada de acuerdo a lo especificado.&#x20;

Consulte el siguiente ejemplo:

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FtC0yPAcmaAaQqKNF3Z6E%2FChatonline%20nuievo.gif?alt=media\&token=473c35be-e171-49f7-b800-988cbe3dd5d0)

{% hint style="info" %}
**Sugerencia:** Quisiéramos sugerir que se incluyan respuestas que informen al contacto de que está interactuando con un chatbot. De esta manera, la expectativa de los contactos para la solución se puede gestionar bien.
{% endhint %}

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2Fx2KRZwaXv4mkkmMaVa8X%2FScreenshot%202020-07-20%20at%204.44.34%20PM.png?alt=media\&token=903a5d0f-fe59-4726-a85a-38e3666af331)

### Intención de retroceso por defecto&#x20;

{% hint style="info" %}
Aprende [más](https://cloud.google.com/dialogflow/es/docs/intents-default#welcome) sobre la definición de la intención de retirada por defecto de Dialogflow!
{% endhint %}

Cuando el mensaje o evento entrante no coincida con ninguno de los intentos existentes, se hará coincidir con un intento alternativo.&#x20;

{% hint style="info" %}
Sugerencia: Cuando el agente no pueda responder a cambio, debe ofrecerse a entregar a un agente vivo para ayudar con el asunto del contacto.
{% endhint %}

## Creando una intención <a href="#creating-an-intent" id="creating-an-intent"></a>

Puede crear nuevas intenciones si desea crear procesos automatizados para casos de uso específicos. Con Parámetros y Eventos, se pueden crear intenciones para adaptarse a múltiples casos de uso.&#x20;

Para ayudarle a comprender mejor, la siguiente guía se basará en un caso de uso específico como se describe a continuación:

> La compañía XYZ a menudo recibe consultas sobre el estado de los pedidos desde el webchat del sitio web. Al revisar las conversaciones, detectaron un patrón común en el que sus agentes piden el ID del cliente para comprobar más a fondo el problema o resolver la consulta. Una vez que obtuvieron el ID de cliente del cliente, actualizarán el campo personalizado y lo agregarán como una etiqueta. Según el escenario anterior, el chatbot puede realizar el proceso de obtención de la identificación del cliente. Una vez que se obtiene la identificación del cliente, el contacto se entregará a un agente humano para obtener más ayuda.

Vamos a dividirlo en pasos más simples:

1. Cree una intención para solicitar la identificación del cliente
2. Cree una intención para obtener la identificación del cliente
3. Guardar el ID de cliente como un campo personalizado en Bony.chat
4. Agregar una etiqueta
5. Pasar la conversación a un agente humano
6. Notificar al agente humano
7. Deshabilitando el bot

#### Gastos esperados <a href="#expected-outcome" id="expected-outcome"></a>

### Creando una intención básica <a href="#creating-a-basic-intent" id="creating-a-basic-intent"></a>

**Paso 1: Crear intención**\
Navegue a la consola de [Dialogflow](https://dialogflow.cloud.google.com/) y presione **Intenciones** en el menú de navegación lateral. presione el ➕ o **CREAR INTENCIÓN** desde la parte superior del módulo.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FaWP63yS1JKcRRjmfSYnF%2FScreenshot%202020-07-21%20at%2011.30.37%20AM.png?alt=media\&token=a8f28598-23d8-4231-bf86-0c481e322b46)

**Paso 2: Ponle un nombre a tu intención**\
Ingresa un nombre para tu intención. El nombre de su intención debe representar las expresiones del usuario final que reconoce. Para este escenario, nombraremos es `order_status_enquiry`

**Paso 3: Incluya frases de capacitación**\
Según el escenario anterior, deberíamos incluir frases de formación que soliciten específicamente el estado del pedido. Comience escribiendo en los marcadores de posición en **la** sección **Frases de capacitación** . Puede incluir varias frases para adaptarse a diferentes tipos de frases.

Por ejemplo,

> *Donde esta mi orden*\
> &#x20;*podrías ayudarme a revisar mi pedido por favor* \
> *Cuál es el estado de mi orden*

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FfcvrxTeMtvWvhgyyezxd%2FScreenshot%202020-07-21%20at%2011.33.22%20AM.png?alt=media\&token=5dc1d32c-7fbd-422c-8bb1-40ad9aa28dac)

**Paso 4: Crear una respuesta de intención**\
Para esta intención, la respuesta debe solicitar al contacto que su ID de cliente se use para la siguiente intención.

Desplácese hacia abajo hasta la sección **Respuestas** y escriba la respuesta. Puede agregar una **respuesta de texto** o una **carga útil personalizada** . Para este escenario, la **respuesta de texto** cumplirá el propósito.

{% hint style="info" %}
**Consejos** :

* Puede enviar varias respuestas a la vez para una mejor legibilidad.
* Puede agregar algunas variantes de respuesta y se aleatorizará cuando se envíe a un contacto.
  {% endhint %}

La respuesta que crearemos para esta intención es:

> Le pido disculpas de antemano si su pedido se está demorando demasiado. ¿Puedo tener su identificación de cliente por favor?

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FhZQXjeiz786IswtCgBdB%2FScreenshot%202020-07-21%20at%2011.37.05%20AM.png?alt=media\&token=e8a436da-7852-45fe-93cd-fe92cae80696)

{% hint style="info" %}
Para obtener más información sobre las plantillas de respuesta, haga clic [aquí](https://docs.bony.chat/integraciones/dialogflow/broken-reference) .
{% endhint %}

### Creando una entidad <a href="#creating-an-entity" id="creating-an-entity"></a>

Antes de que podamos guardar el valor como campo personalizado, necesitaremos crear una entidad para detectar el valor de los mensajes entrantes.

Según el escenario anterior, nombraremos esta entidad como y se utilizará para almacenar la identificación del cliente para un cliente.`customerId`

**Paso 1: Crear una entidad**\
&#x20;Navegue hasta el módulo Entidades. Presione en el ➕ o **CREAR ENTIDAD.**

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2F3ZClkGDfnEF9p2MxtLUd%2FScreenshot%202020-07-21%20at%202.06.59%20PM.png?alt=media\&token=10117fc9-7800-4b47-92ed-b6862ccd4e3b)

**Paso 2: Nombre de la entidad**\
Para este ejemplo, lo llamaremos customer\_id.

**Paso 3: Ingrese los valores posibles**\
La entidad debe aceptar una cadena con 5 enteros de longitud. Se aplicará una expresión regular para validar el valor.

Para este ejemplo, el valor será que acepte cualquier cadena de 5 dígitos.`(\d){5}`

{% hint style="info" %}
Para obtener más información sobre las expresiones regulares, haga clic [aquí.](https://github.com/google/re2/wiki/Syntax)
{% endhint %}

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FVsMLKpqc16H0gWqFGCHd%2FScreenshot%202020-07-21%20at%203.31.46%20PM.png?alt=media\&token=0ab8158e-6eaf-4b7f-b721-4737f3a4f55d)

{% hint style="info" %}
¡Lea [aquí](https://cloud.google.com/dialogflow/es/docs/entities-overview) para obtener más información sobre las entidades!
{% endhint %}

### Creando una intención con parámetros <a href="#creating-an-intent-with-parameters" id="creating-an-intent-with-parameters"></a>

**Paso 1: Crear intención de seguimiento**\
Navegue a la consola de [Dialogflow](https://dialogflow.cloud.google.com/) y presione **Intenciones** en el menú de navegación lateral. Busque la intención anterior creada y presione **Agregar intención de seguimiento.**

{% hint style="warning" %}
En su lugar, se usa una intención de seguimiento porque esta intención deberá activarse después de la intención especificada.
{% endhint %}

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FVCiQJIZUKKUe5FRKG8gn%2Fezgif-6-bb6fdd357882.gif?alt=media\&token=a6d84132-40fd-4bd8-8797-f0977ea23388)

De forma predeterminada, el contexto y la acción se completarán de forma predeterminada para que la intención funcione en secuencia.

**Paso 2: Incluya frases de capacitación**\
Lo más probable es que las frases que se incluyan en esta intención sean frases que contengan el ID de cliente. Podemos ingresar una frase y resaltar el texto que probablemente sea la identificación del cliente. Seleccione la entidad creada anteriormente y anote el texto con ella.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2Fhfyai4iiLdbM7uSA9SzK%2FScreenshot%202020-07-21%20at%202.46.55%20PM.png?alt=media\&token=db5bfc24-5819-45c6-b9e9-3ad20f89b280)

De forma predeterminada, se creará un parámetro cuando anotes un texto con una entidad, así que almacena los valores.

{% hint style="info" %}
¡Lea [aquí](https://cloud.google.com/dialogflow/docs/intents-training-phrases#annotation) para obtener más información sobre cómo anotar frases de entrenamiento!
{% endhint %}

**Paso 3: Crear una respuesta de intención**\
Para esta intención, la respuesta debe informar al contacto que se ha recibido la identificación del cliente y un agente humano se hará cargo de la conversación y resolverá el problema.

Desplácese hacia abajo hasta la sección **Respuestas** y escriba la respuesta. Agregue una **respuesta de texto.**

La respuesta que crearemos para esta intención es:

> Gracias por proporcionar su ID de cliente. Su problema está siendo asignado a nuestros agentes humanos.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2Fl8dEuKOV7O87haLS2Fno%2FScreenshot%202020-07-21%20at%203.11.29%20PM.png?alt=media\&token=7b7a31b2-d8a9-4ddf-b966-159c63b5a38d)

### Guardando valor como campo personalizado <a href="#saving-value-as-custom-field" id="saving-value-as-custom-field"></a>

Cuando el contacto responde con su ID de cliente, el valor se puede guardar como un campo personalizado en la plataforma **BonyChat**

{% hint style="info" %}
Para guardar el valor en un campo personalizado, asegúrese de que el campo personalizado se cree en la plataforma Bonychat
{% endhint %}

Para guardar el valor, añada un parámetro `RB_FIELD_{custom field's name}`. En este caso, el parámetro será `RB_FIELD_customerid` y establecerá   la entidad`$customer_id` como valor.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FDppkPVlCPcOGc9m53pmP%2FScreenshot%202020-07-21%20at%203.36.24%20PM.png?alt=media\&token=4e1a9ee3-ccb8-49f2-8ba5-cb8eed1d9e8b)

### Agregar una etiqueta  <a href="#adding-a-tag" id="adding-a-tag"></a>

Agregar un parámetro  `RB_ADDTAGS`  y establecer la entidad `$customer_id`  como valor

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2Fx73YHSrlDBM32EABe3oD%2FScreenshot%202020-07-21%20at%202.48.29%20PM.png?alt=media\&token=bbb1d007-884a-4c8c-ac1b-3ffc95e835b9)

### Pasando la conversación <a href="#handing-off-the-conversation" id="handing-off-the-conversation"></a>

Ahora, queremos pasar la conversación a un agente humano. Esto se puede lograr con otro parámetro y establecer el correo electrónico del usuario como valor`RB_USER_ASSIGN`

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FEJS2k6Lc4fNxqk0wLQJV%2FScreenshot%202020-07-21%20at%202.49.15%20PM.png?alt=media\&token=55c54378-7bd3-409f-8b78-55358d606fc9)

### Deshabilitando el bot <a href="#disabling-the-bot" id="disabling-the-bot"></a>

Los parámetros se ejecutarán en secuencia. Por último, deshabilitaremos la respuesta del bot para este contacto porque no queremos que se active ninguna intención cuando el contacto sea manejado por un agente humano.

Para hacerlo, agregaremos otro parámetro`RB_BOTSTATUS` y lo estableceremos  `FALSE` como valor.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FoCuseEkQhZ4e4dnqqXk9%2FScreenshot%202020-07-21%20at%202.52.31%20PM.png?alt=media\&token=5266ec0a-5b48-46d8-b95d-40153e848250)

{% hint style="warning" %}
Cuando un bot está deshabilitado, los contactos ya no pueden recibir mensajes del bot hasta que el estado del bot esté habilitado. El estado del bot se puede habilitar manualmente a través de la consola de mensajería o mediante la automatización.
{% endhint %}

### Manejo de la ubicación

Cuando se recibe una localización de un contacto, se enviará un evento de tipo LOCATION a Dialogflow. Puede añadir LOCATION a los eventos para activar los respectivos disparadores.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FlLndCDUAoiasaCyFlzC6%2Fimage%20\(4\).png?alt=media\&token=48bd764e-42d1-4746-ace9-e3ed309ae9ee)

Consulte los otros parámetros disponibles para usar en Dialogflow:

{% content-ref url="gestion-de-intenciones/parametros" %}
[parametros](https://docs.bony.chat/integraciones/dialogflow/gestion-de-intenciones/parametros)
{% endcontent-ref %}

## Testeando una intención <a href="#testing-an-intent" id="testing-an-intent"></a>

Si necesita probar la intención, use el panel de prueba ubicado en el lado derecho de la consola de Dialogflow.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FfXseGC0Yaxe8NFOZexvA%2Ftesting.gif?alt=media\&token=df095473-70b6-400a-90b5-498e304e8b48)

## Eliminar una intención <a href="#deleting-an-intent" id="deleting-an-intent"></a>

Desde la lista de intenciones, coloque el cursor sobre la intención que desea eliminar. Presione el ícono de la papelera de la intención.

![](https://3885607557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdiyIbj69hv5kjrp8i4xC%2Fuploads%2FyyGqS5eiDBQghDHWKZL0%2Fdeleteintent.gif?alt=media\&token=056073b2-1545-4d7d-98be-ce35064e3981)

## Solucionar problemas <a href="#troubleshoot" id="troubleshoot"></a>

### Configuración de mensaje ausente <a href="#away-message-settings" id="away-message-settings"></a>

Si el chatbot no funciona como se esperaba, verifique la [Configuración de mensaje ausente](https://docs.bony.chat/integraciones/dialogflow/broken-reference) en la configuración de su Espacio y asegúrese de tenerlo apagado. Habilitar la configuración de mensaje ausente no permitirá respuestas de bot.

{% hint style="warning" %}
¿Tienes problemas con Dialogflow? ¡Contáctanos [aquí!](https://wa.me/5219992446805)
{% endhint %}
