Chatbots são valiosos para muitas equipes de engajamento ao cliente. Eles lidam de forma eficiente com perguntas triviais e liberam os agentes humanos para focar em questões mais importantes.

Dialogflow e [Rasa.ai](http://Rasa.ai) são plataformas líderes de PLN (Processamento de Linguagem Natural) para construir chatbots personalizados. Neste guia, explicamos como você pode criar um bot no Dialogflow e integrá-lo facilmente com o Chatwoot em segundos.

## Como criar um bot no Dialogflow?

**Passo 1.** Acesse seu [Console do Dialogflow](https://dialogflow.cloud.google.com/). Usaremos o Dialogflow Essentials neste artigo. Clique em "Create Agent". Você verá opções como estas:

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBeENJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--6d9926ae1dc31a8250ec6fc01dcff523501c80c6/create%20agent%20in%20dialogflow%20console.png)\
**Passo 2.** Você precisará criar intents baseados em como deseja que seu bot responda. Existem 2 intents padrões no projeto chamadas "Default Fallback Intent" e "Default Welcome Intent", como mostrado abaixo.

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

Isso conclui a configuração básica do bot. Agora vamos criar uma conta de serviço e conectá-la ao Chatwoot.

> Você também pode criar intents adicionais para seus casos de uso específicos.\
> O Chatwoot também suporta intents avançadas que permitem [transferência para agente](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent), [mensagens interativas](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/en/advanced-features-explained/495), etc.\
> referência: Role até "Advanced Intents".

**Passo 3.** Crie uma conta de serviço[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#create-a-service-account "Link direto para o título"). Para conectar este bot ao Chatwoot, você precisa criar uma conta de serviço no seu console do Google Cloud. Navegue até o console do projeto no Google Cloud clicando no **Project ID** nas configurações do projeto.

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

Navegue até **IAM & Admin -> Service Accounts**. Você verá uma visualização como a exibida abaixo. Clique em "Create Service Account".

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

Forneça um nome e uma descrição para a conta de serviço como mostrado abaixo.

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

Para conceder acesso, selecione Dialogflow API Client no menu suspenso.

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

Continue e clique em "Done". Agora, você poderá ver o serviço listado no painel. O próximo passo é criar uma chave para poder compartilhá-la com o Chatwoot. Clique na conta de serviço e depois clique na aba "Keys". Em seguida, clique em "Add Key". Você verá uma tela como abaixo.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBMktJVHc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--b67cdd18d8a10c64e3ba983808fb15f65543644e/api%20key.png)\
Clique em "JSON" e depois em "Create". Isso irá gerar uma chave para sua conta de serviço. Baixe a chave e salve para uso posterior.

## Configurando a Integração do Dialogflow no Chatwoot[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#configuring-dialogflow-integration-in-chatwoot "Link direto para o título")

O Chatwoot possui integração nativa com Dialogflow. Você pode conectar seu bot com o Chatwoot em dois passos rápidos.

**Passo 1.** Vá até "Settings -> Applications -> Dialogflow". Clique em "Configure".

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

**Passo 2.** Clique no botão "Add a new hook". Isso abrirá um modal de configuração. Você precisa adicionar "Project ID", "Project Key file" e uma caixa de entrada para criar um hook. Copie o conteúdo do arquivo de chave baixado anteriormente e cole na área de texto.

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

Pronto! A integração está concluída. Teste a caixa de entrada do site para ver se o bot responde à consulta inicial.

## Intenções Avançadas[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#advanced-intents "Link direto para o título")

### Criando uma intenção de transferência[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent "Link direto para o título")

Assim que o usuário solicitar para falar com um agente, o Dialogflow deve informar ao Chatwoot que um agente pode assumir a conversa.

Crie uma intent chamada "Handoff Intent" com frases de treinamento como "Falar com um agente" ou "Quero falar com um agente", etc. Para tratar a transferência, crie uma resposta do tipo "Custom Payload", como mostrado abaixo.

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

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

Ao acionar uma intenção com o payload acima, o Chatwoot irá alternar o status da conversa para `open` e transferi-la para um agente.

### Mensagens Interativas[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#interactive-messages "Link direto para o título")

**Nota**: Mensagens interativas são suportadas apenas na caixa de entrada do site atualmente.

A integração Chatwoot-Dialogflow também suporta [mensagens interativas](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/en/advanced-features-explained/495). Os seguintes tipos de mensagens interativas são suportados.

1. [Opções](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/en/advanced-features-explained/495) (suporte a follow-up)

2. [Cards](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/en/advanced-features-explained/495)

3. [Artigos](https://app.chatwoot.com/hc/chatwoot-user-guide-cloud-version/en/advanced-features-explained/495)

#### **Criando uma intenção de mensagem interativa**[**​**](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-an-interactive-message-intent "Link direto para o título")

Você pode criar outras mensagens interativas alterando o payload conforme mencionado no [guia de mensagens interativas](https://www.chatwoot.com/docs/product/others/interactive-messages).

Crie uma intenção com as frases de treinamento desejadas e uma resposta "Custom Payload", como mostrado abaixo para uma mensagem de opções.

```
## exemplo de mensagem interativa de opções
{
  "content_type": "input_select",
  "content": "Selecione seu alimento favorito abaixo",
  "content_attributes": {
    "items": [
      {
        "value": "I like sushi",
        "title": "Sushi"
      },
      {
        "title": "Biryani",
        "value": "I like biryani"
      },
      {
        "title": "Pizza",
        "value": "I like pizza"
      }
    ]
  },
  "private": false
}
```

Quando um usuário interage com mensagens de entrada e seleciona um valor, isso retorna ao Dialogflow. Isso permite configurar intents de follow-up, como criar uma intent com a frase de treinamento "I like biryani" para casos em que o contato seleciona a opção "biryani".

## Como um agente pode transferir a conversa de volta para o bot do Dialogflow?[​](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#how-can-an-agent-transfer-the-conversation-back-to-dialoflow-bot "Link direto para o título")

Quando o bot Dialogflow está conectado a uma caixa de entrada, as conversas são criadas com status `pending` (pendente) ao invés de `open` (aberto). Isso permite que o atendimento inicial aconteça via o bot antes de passar a conversa para um agente. Quando o [`handoff`](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#creating-a-handoff-intent) acontece, o status da conversa muda para `open` e o bot para de responder à mesma.

Às vezes os agentes podem querer devolver uma conversa transferida novamente para a fila do bot. Eles podem fazer isso mudando o status da conversa novamente para `pending`. Isso fará com que o bot volte a responder para aquela conversa.