Los chatbots son muy valiosos para muchos equipos de atención al cliente. Manejan eficientemente preguntas triviales y liberan a los agentes humanos para que puedan enfocarse en temas más importantes.

Dialogflow y [Rasa.ai](http://Rasa.ai) son plataformas líderes de PLN (Procesamiento de Lenguaje Natural) para crear chatbots personalizados. En esta guía, explicamos cómo puedes crear un bot en Dialogflow e integrarlo fácilmente con Chatwoot en segundos.

## ¿Cómo crear un bot en Dialogflow?

**Paso 1.** Ve a tu [Consola de Dialogflow](https://dialogflow.cloud.google.com/). Usaremos Dialogflow Essentials para este artículo. Haz clic en "Create Agent". Verás opciones como estas:

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBeENJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--6d9926ae1dc31a8250ec6fc01dcff523501c80c6/create%20agent%20in%20dialogflow%20console.png)

\
**Paso 2.** Necesitarás crear intenciones (intents) según cómo quieras que responda tu bot. Habrá 2 intenciones predeterminadas en el proyecto llamadas "Default Fallback Intent" y "Default Welcome Intent", como se muestra abajo.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBeEdJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--84b949a70c890b4d912e7e0675f35c974a40bd12/creating%20intents%20in%20dialogflow.png)

Esto completa la configuración básica del bot. Ahora creemos una cuenta de servicio y conéctala con Chatwoot.

> También puedes crear intenciones adicionales para tus casos de uso específicos.\
> Chatwoot también soporta intenciones avanzadas que habilitan [transferencia a agentes](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent), [mensajes interactivos](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/es/funciones-avanzadas-explicadas/49686), etc.\
> referencia: Desplázate hacia abajo hasta "Intenciones Avanzadas".

**Paso 3.** Crea una cuenta de servicio[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#create-a-service-account "Direct link to heading"). Para conectar este bot con Chatwoot, necesitas crear una cuenta de servicio en tu consola de Google Cloud. Navega al panel de tu proyecto en Google Cloud haciendo clic en el **Project ID** en la configuración del proyecto.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMUtJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--0609885eaed20b42c79ac5b88d09602449d97a2f/project%20ID.png)

Dirígete a **IAM & Admin -> Service Accounts**. Verás una vista similar a la que se muestra abajo. Haz clic en "Create Service Account".

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMU9JVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--6678ad3e6c5c9536cfd2dd5d1b83766b459486d6/service%20accounts.png)

Proporciona un nombre y una descripción para la cuenta de servicio como se muestra abajo.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMVdJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--444a6e86cf22a04c36bc4a0de153cf836fe17600/setting%20service%20account%20up.png)

Para otorgar acceso, selecciona Dialogflow API Client en el menú desplegable.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMWFJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--f0814a4a0a8f6d84a0aa3dfd96c566cd46c18014/dialogflow%20api%20client.png)

Continúa y haz clic en "Done". Ahora deberías poder ver el servicio listado en el panel. El siguiente paso es crear una llave para poder compartirla con Chatwoot. Haz clic en la cuenta de servicio y luego en la pestaña "Keys". Después, haz clic en "Add Key". Verás una pantalla como la siguiente.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMktJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--b67cdd18d8a10c64e3ba983808fb15f65543644e/api%20key.png)

\
Haz clic en "JSON" y después en "Create". Se generará una llave para tu cuenta de servicio. Descarga la clave y guárdala para usarla más tarde.

## Configuración de la integración de Dialogflow en Chatwoot[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#configuring-dialogflow-integration-in-chatwoot "Direct link to heading")

Chatwoot tiene una integración nativa con Dialogflow. Puedes conectar tu bot con Chatwoot en solo dos pasos.

**Paso 1.** Ve a "Settings -> Applications -> Dialogflow". Haz clic en "Configure".

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBeDJKVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--e3852efe92d0c5e6c0c04751a0942db20dad9608/adding%20dialogflow%20option%20in%20chatwoot.png)

**Paso 2.** Haz clic en el botón "Add a new hook". Se abrirá un modal de configuración. Debes agregar el "Project ID", el "Project Key file", y una bandeja de entrada para crear el hook. Copia el contenido del archivo de clave descargado anteriormente y pégalo en el área de texto.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBeDZKVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--5d23fddf59970ebc4573e7bfda3bddac0c8113f4/dialoglow%20settings.png)

¡Eso es todo! La integración está completa. Prueba la bandeja de entrada del sitio web para ver si el bot responde a la consulta inicial.

## Intenciones Avanzadas[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#advanced-intents "Direct link to heading")

### Creando una intención de transferencia de chat[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent "Direct link to heading")

Cuando el usuario solicita hablar con un agente, Dialogflow debe informar a Chatwoot que un agente puede hacerse cargo de la conversación.

Crea una intención llamada "Handoff Intent" con frases de entrenamiento como "Talk to an agent" o "Speak with an agent", etc. Para manejar la intención de transferencia, crearemos una respuesta de tipo "Custom Payload", como se muestra abajo.

```
{
  "action": "handoff"
}
```

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBM2lKVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--09cb509c898b8226a50c99a3ca288ef24f646438/handoff%20intent.png)

Al activar una intención con el payload anterior, Chatwoot cambiará el estado de la conversación a `open` y la transferirá a un agente.

### Mensajes Interactivos[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#interactive-messages "Direct link to heading")

**Nota**: Los mensajes interactivos actualmente solo son compatibles con la bandeja de entrada del sitio web.

La integración Chatwoot-Dialogflow también soporta [mensajes interactivos](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/es/funciones-avanzadas-explicadas/49686). Se soportan los siguientes tipos de mensajes interactivos.

1. [Opciones](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/es/funciones-avanzadas-explicadas/49686) (soporta seguimiento)

2. [Tarjetas](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/es/funciones-avanzadas-explicadas/49686)

3. [Artículos](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/es/funciones-avanzadas-explicadas/49686)

#### **Creando una intención de mensaje interactivo**[**​**](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-an-interactive-message-intent "Direct link to heading")

Puedes crear otros mensajes interactivos cambiando el payload según se indica en la [guía de mensajes interactivos](https://www.chatwoot.com/docs/product/others/interactive-messages).

Crea una intención con las frases de entrenamiento necesarias y una respuesta de tipo "Custom Payload", como se muestra abajo para un mensaje de opciones.

```
## ejemplo para un mensaje interactivo de opciones
{
  "content_type": "input_select",
  "content": "Selecciona tu comida favorita de abajo",
  "content_attributes": {
    "items": [
      {
        "value": "I like sushi",
        "title": "Sushi"
      },
      {
        "title": "Biryani",
        "value": "I like biryani"
      },
      {
        "title": "Pizza",
        "value": "I like pizza"
      }
    ]
  },
  "private": false
}
```

Cuando un usuario interactúa con mensajes de entrada y selecciona un valor, este retorna a Dialogflow. Esto permite configurar intenciones de seguimiento, como crear una intención con la frase de entrenamiento "I like biryani" para casos en los que el contacto selecciona la opción "biryani".

## ¿Cómo puede un agente transferir la conversación de nuevo al bot de Dialogflow?[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#how-can-an-agent-transfer-the-conversation-back-to-dialoflow-bot "Direct link to heading")

Cuando el bot de Dialogflow está conectado a una bandeja de entrada, las conversaciones se crean con estado `pending` en lugar de `open`. Esto permite que la primera clasificación ocurra a través del bot antes de que la conversación pase a un agente. Cuando ocurre la [`handoff`](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent), el estado de la conversación cambia a `open` y el bot deja de responder.

A veces los agentes pueden querer devolver una conversación que fue transferida, para que regrese a la cola del bot. Pueden hacer esto cambiando el estado de la conversación a `pending`. Esto hará que el bot vuelva a responder en esa conversación.