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 RockZap® 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.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOVdsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--8f1207776d5b1d1cb67e4c0b1843976698603a49/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.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOVNsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--32e25a6cf399a313d0149e9803088d6c2506691d/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 RockZap®.

> *Você também pode criar intents adicionais para seus casos de uso específicos.\
> O RockZap® também suporta intents avançadas que permitem **transferência para agente**, **mensagens interativas**, 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 RockZap®, 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.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOTJsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--3dab35a64c4403412af0b2cda960d5e9e2c290b6/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.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOXVsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--e5733d906b7f57cf958eaf81cd135f550754a12f/service-20accounts.png)

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

![](https://app.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOWVsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--452397f55bc308eff6538b2acbb6d907c780de58/setting-20service-20account-20up.png)

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

![](https://app.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOXFsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--4eea63a11819ef257f1196333e9dd18c2de356c2/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 RockZap®. 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.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOW1sRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--a3c8d576856db269b5d31ae0146a4a647e20fd5a/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 RockZap®**[**​**](https://www.chatwoot.com/docs/product/channels/live-chat/integrations/dialogflow/#configuring-dialogflow-integration-in-chatwoot "Link direto para o título")

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

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

![](https://app.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOWFsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--46cd347f1cb7c8d3891f60b95280d6057dd2618a/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.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOXlsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--b5d35844d210a792f2188dda363f03350a7bab1d/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 RockZap® 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.rockzap.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBOWlsRFE9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--1046f0dd80891dc352263d02f3d38f019742f01d/handoff-20intent.png)

Ao acionar uma intenção com o payload acima, o RockZap® 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 RockZap®-Dialogflow também suporta **mensagens interativas**. Os seguintes tipos de mensagens interativas são suportados.

1. **Opções** (suporte a follow-up)

2. **Cards**

3. **Artigos**

#### **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**.

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.


