Adicionar automação com o Dialogflow

O Dialogflow é uma ferramenta de processamento de linguagem natural (PLN) que processa a entrada do usuário, mapeia-a para intents conhecidas e responde com as respostas adequadas. Há duas edições do Dialogflow. Ao integrar o agente do Business Messages ao Dialogflow ES, é fácil criar automação simples para iniciar o desenvolvimento do agente. Ao integrar com o Dialogflow CX, é possível criar automação avançada para conversas mais complexas.

Os agentes do Business Messages são compatíveis com integrações diretas

Para integrar um agente do Business Messages a outros recursos do Dialogflow ES ou do Dialogflow CX, consulte a documentação de cada produto.

Quando um usuário envia uma mensagem para um agente com integração com o Dialogflow, o Business Messages transmite a mensagem do usuário para o Dialogflow e envia a resposta do Dialogflow ao agente no objeto dialogflowResponse da mensagem. É possível configurar agentes para enviar automaticamente a resposta do Dialogflow ao usuário sem que você precise fazer nada. Consulte os detalhes em Respostas automáticas.

Integração com o Dialogflow

Antes de aproveitar a automação baseada no Dialogflow pelo Business Messages, você precisa ativar a integração com o Dialogflow.

Pré-requisitos

Para começar, é necessário

  • Um agente do Business Messages
  • Um agente do Dialogflow na região Global com um idioma raiz em inglês (en)

Se você não tiver um agente do Dialogflow, crie um.

Dialogflow ES

Antes de ativar uma integração do Dialogflow ES, você precisa do ID do projeto do agente do Dialogflow. Para localizar o ID do projeto,

  1. Acesse o Console do Dialogflow.
  2. Selecione o agente do Dialogflow que você quer conectar ao Business Messages e clique no ícone de engrenagem ao lado do nome do agente.
  3. Em Projeto do Google, anote o valor do ID do projeto.

Dialogflow CX

Antes de ativar uma integração do Dialogflow CX, você precisa do ID do projeto e do agente do Dialogflow. Para localizar esses IDs,

  1. Acesse o Console do Dialogflow CX.
  2. Selecione o projeto do Dialogflow.
  3. No seletor de agentes, clique no menu flutuante ao lado do seu agente do Dialogflow.
  4. Clique em Copiar nome. Isso copia o nome completo do agente no seguinte formato: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID.
  5. Anote os valores dos IDs do projeto e do agente.

Ative a integração

  1. No Console do desenvolvedor de comunicações comerciais, navegue até Integrações.
  2. Para o Dialogflow, clique em Ativar integração.
  3. Clique em Conectar modelo existente.
  4. Para a edição do Dialogflow, selecione a edição a ser ativada.
  5. Digite o ID do projeto do agente do Dialogflow.
  6. Para ativar o Dialogflow CX, insira também o ID do agente do Dialogflow.
  7. Se você quiser que o Business Messages responda automaticamente aos usuários com respostas do Dialogflow, selecione Ativar resposta automática.
  8. Clique em Next.
  9. Copie o e-mail da conta de serviço. Essa conta conecta o Business Messages e os agentes do Dialogflow.
  10. No Console do Google Cloud, selecione seu projeto do Dialogflow.
  11. Navegue até Permissões do IAM.
  12. Clique em Adicionar e digite o e-mail da conta de serviço de Novos participantes.
  13. Em Selecionar papel, clique em Editor do agente do Console do Dialogflow.
  14. Clique em Adicionar outro papel e selecione Cliente da API Dialogflow.
  15. Clique em Salvar.
  16. No Console do desenvolvedor do Business Communications, clique em Next.
  17. Clique em Iniciar integração.

A conexão do Business Messages e do Dialogflow leva cerca de dois minutos.

Atualizar a integração

  1. No Console do desenvolvedor de comunicações comerciais, navegue até Integrações.
  2. Clique no ícone de engrenagem ao lado de Dialogflow.
  3. Ative ou desative a opção Ativar resposta automática se quiser que o Business Messages responda automaticamente aos usuários com respostas do Dialogflow.

Alternar entre as edições do Dialogflow

Um agente do Business Messages só pode ser compatível com uma integração do Dialogflow por vez. Para alternar de uma edição do Dialogflow para outra, desative a integração atual antes de ativar a nova.

Desativar a integração

  1. No Console do desenvolvedor de comunicações comerciais, navegue até Integrações.
  2. Clique no ícone de engrenagem ao lado de Dialogflow.
  3. Clique em Desativar integração.
  4. Clique em Desativar.

Leva cerca de um minuto para desativar uma integração atual com o Dialogflow.

Ative uma nova integração do Dialogflow seguindo estas etapas.

Correspondência com intents

Depois de ativar a integração do Dialogflow para um agente do Business Messages, seu agente pode usar as intents configuradas do projeto do Dialogflow para entender e responder às perguntas dos usuários sem precisar escrever código. Para saber mais sobre intents, consulte a documentação para Dialogflow ES e CX do Dialogflow.

Configure as intents do Dialogflow para todas as opções de conversa que serão compatíveis com a automação. Os agentes do Business Messages dependem do Dialogflow para entender as mensagens do usuário.

Ao chamar as APIs do Dialogflow, o Business Messages transmite o payload de mensagens do usuário para suas intents e o webhook de fulfillment. Quando uma mensagem de usuário for associada a uma intent, será possível acessar esse payload no formato Struct no campo business_messages_payload em QueryParameters.

O payload contém todos os campos da mensagem do usuário, exceto DialogflowResponse.

Para o Dialogflow CX, o Business Messages também transmite um parâmetro de sessão chamado channel com valor google_business_messages às suas intents, e você pode fazer referência a ele no seu agente com o seguinte formato: $session.params.channel.

É possível usar esse parâmetro para adicionar condicionais aos fulfillments do Dialogflow, para que sejam compatíveis com vários canais no mesmo agente do Dialogflow.

Para saber mais sobre os parâmetros de consulta, consulte as referências do Dialogflow ES e do Dialogflow CX.

Pré-requisitos

Ao criar modelos NLU no Dialogflow, você pode configurar diferentes tipos de resposta para uma intent. O Business Messages é compatível com a resposta padrão, que pode incluir o seguinte:

  • Texto
  • Payload personalizado
  • Transferência do agente ativo (somente CX do Dialogflow)

Um payload personalizado precisa corresponder a um objeto de resposta de mensagem JSON do Business Messages válido. Ao configurar respostas de payload personalizadas para uma intent, o Business Messages ignora os seguintes campos:

  • name
  • messageId
  • representative

Veja os seguintes exemplos de resposta.

Texto com sugestões

{
  "text": "Hello World!",
  "fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
  "suggestions": [
    {
      "reply": {
        "text": "Hello",
        "postbackData": "hello-formal"
      }
    },
    {
      "reply": {
        "text": "Hi!",
        "postbackData": "hello-informal"
      }
    }
  ]
}

Rich Card

{
  "fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
  "richCard": {
    "standaloneCard": {
      "cardContent": {
        "title": "Hello, world!",
        "description": "Sent with Business Messages.",
        "media": {
          "height": "TALL",
          "contentInfo":{
            "altText": "Google logo",
            "fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
            "forceRefresh": "false"
          }
        },
        "suggestions": [
          {
            "reply": {
              "text": "Suggestion #1",
              "postbackData": "suggestion_1"
            }
          },
          {
            "reply": {
              "text": "Suggestion #2",
              "postbackData": "suggestion_2"
            }
          }
        ]
      }
    }
  }
}
{
  "fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
  "richCard": {
    "carouselCard": {
      "cardWidth": "MEDIUM",
      "cardContents": [
        {
          "title": "Card #1",
          "description": "The description for card #1",
          "suggestions": [
            {
              "reply": {
                "text": "Card #1",
                "postbackData": "card_1"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/cute-dog.jpg",
              "forceRefresh": false
            }
          }
        },
        {
          "title": "Card #2",
          "description": "The description for card #2",
          "suggestions": [
            {
              "reply": {
                "text": "Card #2",
                "postbackData": "card_2"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/elephant.jpg",
              "forceRefresh": false
            }
          }
        }
      ]
    }
  }
}

Transferência de agente ao vivo

{
  "metadata": {}
}

Bots de perguntas frequentes

Depois de ativar uma integração do Dialogflow ES para um agente do Business Messages, você pode criar um bot de perguntas frequentes. Quando você fornece perguntas e respostas como documento de conhecimento compatível, o Business Messages e o Dialogflow criam a infraestrutura necessária para entender e responder às perguntas dos usuários sem que você precise escrever código.

Para ver um bot de perguntas frequentes em ação, converse com o bot de Perguntas frequentes do Business Messages.

Pré-requisitos

Antes de criar um bot de perguntas frequentes, você precisa de perguntas e respostas disponíveis como um documento de informações (máximo de 50 MB): um arquivo HTML disponível publicamente ou um arquivo CSV.

Geralmente os documentos de conhecimento

  • Pode incluir Markdown limitado nas respostas, conforme especificado em Rich Text.
  • Ter um tamanho máximo de 50 MB.
  • Não pode exceder 2.000 pares de perguntas/respostas.
  • Não ofereça suporte a perguntas duplicadas com respostas diferentes.

Para arquivos HTML,

  • Os arquivos de URLs públicos precisam ter sido rastreados pelo indexador do Google Search para que apareçam no índice de pesquisa. Verifique isso com o Google Search Console. O indexador não mantém o conteúdo atualizado. Você precisa atualizar explicitamente o documento quando o conteúdo de origem muda.
  • O Dialogflow remove tags HTML do conteúdo ao criar respostas. Por isso, é melhor evitar tags HTML e usar texto simples quando possível.
  • Arquivos com um único par de perguntas/respostas não são compatíveis.

Para arquivos CSV,

  • Os arquivos precisam ter perguntas na primeira coluna e respostas na segunda, sem cabeçalho.
  • Os arquivos precisam usar vírgulas como delimitadores.

Criar um bot de perguntas frequentes

  1. No Console do desenvolvedor de comunicações comerciais, navegue até Integrações.
  2. Em Base de conhecimento (perguntas frequentes), clique em Criar base de conhecimento.
  3. Insira um nome para a base de conhecimento e clique em Próxima.
  4. Selecione um Tipo MIME.
  5. Adicione um documento de conhecimento.
    • Se você escolheu HTML para Tipo de MIME, insira o URL acessível publicamente para suas perguntas frequentes em URL.
    • Se você escolheu CSV como Tipo MIME, clique em Fazer upload e selecione o arquivo CSV.
  6. Clique em Adicionar e concluir.

Para adicionar outros documentos a um bot de perguntas frequentes, clique no botão Adicionar documentos.

Depois que você seguir essas etapas, o Business Messages incluirá o objeto dialogflowResponse nas mensagens do usuário que ele enviará ao agente. Se você ativar a resposta automática, o Business Messages responderá ao usuário com o par de perguntas/respostas com a maior pontuação matchConfidence em comparação com a mensagem do usuário.

Respostas automáticas

Se você ativar a resposta automática durante a integração do Dialogflow, o Business Messages responderá automaticamente ao usuário pelo Dialogflow. O agente do Business Messages responde com a maior correspondência de nível de confiança. Com uma integração do Dialogflow ES, se houver correspondência com uma resposta de Perguntas frequentes e uma intent personalizada, o Business Messages responderá com a correspondência que tem o nível de confiança mais alto.

O Business Messages marca todas as mensagens respondidas automaticamente como provenientes de representantes do BOT. Se o agente aceitar agentes ativos, o Business Messages suspenderá as respostas automáticas após eventos REPRESENTATIVE_JOINED e retomará as respostas automáticas após eventos REPRESENTATIVE_LEFT. Consulte Handoff do bot para o agente em tempo real.

Responder automaticamente com uma pergunta frequente

Com uma integração do Dialogflow ES, se uma resposta de Perguntas frequentes tiver o nível mais alto de confiança, o Business Messages mapeará a resposta para uma mensagem de texto. Se houver uma resposta relacionada disponível, a mensagem exibirá uma sugestão de "quot;Ver outra" da resposta. Em caso negativo, a mensagem inclui uma pergunta e respostas sugeridas perguntando se a mensagem atendeu à solicitação do usuário.

Responder automaticamente com uma resposta de intent

As respostas de intent podem incluir uma ou mais das seguintes respostas.

Se uma resposta de intent tiver a maior correspondência de nível de confiança, será aplicada a seguinte.

  • Se a resposta tiver pelo menos um valor de texto, o Business Messages mapeará esse valor para uma mensagem de texto.
  • Se a resposta tiver pelo menos um payload personalizado com uma estrutura válida de objeto JSON do Business Messages, o Business Messages criará uma mensagem usando o objeto JSON fornecido.
  • Se a resposta tiver pelo menos uma resposta de transferência do agente em tempo real, consulte Responder automaticamente com uma solicitação do agente em tempo real.

Como o Dialogflow pode incluir várias respostas em uma correspondência de intent, o Business Messages envia cada resposta de transferência de texto, payload personalizado ou Live Agent como uma mensagem separada. Se houver várias mensagens em uma correspondência de intent, mas algumas delas estiverem incorretas, o Business Messages enviará apenas mensagens válidas como respostas automáticas.

Responder automaticamente com uma solicitação de agente em tempo real

O Dialogflow CX é compatível com a resposta de transição de agentes em tempo real. Isso indica que a conversa precisa ser entregue a um representante humano e permite que você transmita metadados personalizados para o procedimento de transferência. Se uma resposta de intent tiver o nível de confiança mais alto e incluir uma transferência de agente em tempo real, o Business Messages enviará um evento de agente ao vivo solicitado para o webhook. Para lidar com esse evento, consulte Handoff do bot para o agente ao vivo.

Responder automaticamente com uma mensagem substituta

Se o Dialogflow não tiver uma correspondência de nível de confiança alta, o Business Messages enviará uma resposta substituta. Os substitutos são tratados de maneira diferente no Dialogflow ES e no Dialogflow CX.

Dialogflow ES

Nos bots de perguntas frequentes, se não houver correspondência para uma resposta, o Business Messages envia uma mensagem substituta que não consegue encontrar uma resposta.

Para intents configuradas, se não houver correspondência com uma resposta da intent, o Business Messages enviará uma resposta de intent de fallback. É possível usar o texto de fallback fornecido pelo Dialogflow ou configurar o substituto com payloads adicionais e texto.

Veja um exemplo de uma resposta de intent de fallback que seu webhook pode receber:

{
  "intentResponses": [
    {
      "intentName": "projects/df-integration/agent/intents/12345",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "1.0",
      "fulfillmentMessages": [
        {
          "text": "One more time?"
        }
      ]
    }
  ]
}

O Dialogflow preenche automaticamente intent_name e intent_display_name.

Dialogflow CX

O Dialogflow CX processa respostas de intent de fallback como eventos integrados. Se não houver correspondência com uma resposta da intent, o Business Messages enviará uma mensagem substituta do evento padrão sem correspondência no Dialogflow. É possível usar o texto de fallback fornecido pelo Dialogflow ou configurar o substituto com texto adicional, payloads personalizados e opções de transferência do agente em tempo real.

Veja um exemplo de uma resposta de intent de fallback que seu webhook pode receber:

{
  "intentResponses": [
    {
      "intentName": "sys.no-match-default",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "0.3",
      "fulfillmentMessages": [
        {
          "text": "I missed that, say that again?"
        }
      ]
    }
  ]
}

O Business Messages codifica intent_name e intent_display_name.

Campos específicos do Dialogflow

Depois de ativar a integração com o Dialogflow, as mensagens dos usuários que o agente recebe incluem o objeto dialogflowResponse. O webhook recebe payloads de todas as mensagens do usuário, independentemente de o Business Messages responder automaticamente ou não à mensagem em seu nome. Para verificar se há uma resposta automática, veja o valor do campo autoResponded e decida se precisa responder ao usuário.

Dialogflow ES

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
    }],
  "faqResponse": {
    "userQuestion": "USER_QUESTION",
    "answers": [{
      "faqQuestion": "FAQ_QUESTION",
      "faqAnswer": "FAQ_ANSWER",
      "matchConfidenceLevel": "CONFIDENCE_LEVEL",
      "matchConfidence": "CONFIDENCE_NUMERIC",
    }],
  },
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Campo Descrição
queryText O texto original da consulta de conversa. Se a correção automática de ortografia estiver ativada para o modelo do Dialogflow, queryText conterá a entrada de usuário corrigida.
intentName Identificador exclusivo da intent correspondente.
intentDisplayName O nome da intent correspondente.
intentDetectionConfidence A classificação de confiança numérica na correspondência entre queryText e intentName.
text Uma resposta de texto.
jsonPayload Uma resposta de payload personalizada. Essa string corresponde ao payload personalizado definido no Dialogflow. Se o payload não tiver uma estrutura válida de objeto JSON do Business Messages, error descreverá o problema.
error A descrição de um erro com uma mensagem de atendimento do pedido.
userQuestion A pergunta que o usuário fez, conforme analisada pelo Dialogflow.
faqQuestion Uma pergunta do Dialogflow corresponde à pergunta do usuário.
faqAnswer Uma resposta do Dialogflow corresponde à pergunta do usuário.
matchConfidenceLevel Nível de confiança na correspondência entre userQuestion e faqQuestion.
matchConfidence A classificação de confiança numérica na correspondência entre userQuestion e faqQuestion.
autoResponded Se o Business Messages respondeu automaticamente ou não ao usuário com uma resposta do Dialogflow.
message O payload da resposta automática.
responseSource A origem da resposta automática. Consulte ResponseSource.

Dialogflow CX

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
      "liveAgentHandoff": {
        "metadata": {}
      }
    }],
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Campo Descrição
queryText O texto original da consulta de conversa. Se a correção automática de ortografia estiver ativada para o modelo do Dialogflow, queryText conterá a entrada de usuário corrigida.
intentName Identificador exclusivo da intent correspondente.
intentDisplayName O nome da intent correspondente.
intentDetectionConfidence A classificação de confiança numérica na correspondência entre queryText e intentName.
text Uma resposta de texto.
jsonPayload Uma resposta de payload personalizada. Essa string corresponde ao payload personalizado definido no Dialogflow. Se o payload não tiver uma estrutura válida de objeto JSON do Business Messages, error descreverá o problema.
error A descrição de um erro com uma mensagem de atendimento do pedido.
liveAgentHandoff Metadados personalizados para o procedimento de transferência do agente em tempo real.
autoResponded Se o Business Messages respondeu automaticamente ou não ao usuário com uma resposta do Dialogflow.
message O payload da resposta automática.
responseSource A origem da resposta automática. Consulte ResponseSource.