Adicione automação com o Dialogflow

. . O Dialogflow é uma linguagem natural processamento de linguagem natural (PLN) que processa entradas do usuário e a associa a intents e responde com as devidas respostas. Há duas edições do Dialogflow. Ao integrar seu agente do Business Messages ao Dialogflow ES, é fácil criar uma automação simples para impulsionar o desenvolvimento do agente. De a integração com o Dialogflow CX, é possível criar automação avançada para em conversas complexas.

Os agentes do Business Messages oferecem suporte a integrações diretas com

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

Quando um usuário envia uma mensagem para um agente que tem integração com o Dialogflow, O Business Messages transmite a mensagem do usuário para o Dialogflow e envia a resposta ao agente no e-mail Objeto dialogflowResponse. É possível configurar agentes para enviar automaticamente a resposta do Dialogflow para o usuário sem que seja preciso fazer nada parte. Consulte Respostas automáticas. para mais detalhes.

Integração com o Dialogflow

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

Pré-requisitos

Para começar, você precisa

  • a Business Messages agente
  • Um agente do Dialogflow na região Global com idioma base em inglês (pt-BR)

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

Dialogflow ES

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

  1. Navegue até 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 a integração do Dialogflow CX, você precisa do ID do projeto e ID do agente do Dialogflow. Para localizar esses IDs,

  1. Navegue até o Console do Dialogflow CX.
  2. Selecione seu projeto do Dialogflow.
  3. No seletor de agente, clique no menu flutuante. ao lado do agente do Dialogflow.
  4. Clique em Copiar nome. O nome completo do agente na formato: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID:
  5. Anote os valores de ID do projeto e ID do agente.

Criar a integração

  1. Solicite o e-mail da conta de serviço do Dialogflow do parceiro da dialogflowServiceAccountEmail: Substituir PARTNER_ID pelo seu ID de parceiro.

    cURL

    
    # This code gets the partner.
    # Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/partners/get
    
    # Replace the __PARTNER_ID__
    # Make sure a service account key file exists at ./service_account_key.json
    
    curl -X GET \
    "https://businesscommunications.googleapis.com/v1/partners/__PARTNER_ID__" \
    -H "Content-Type: application/json" \
    -H "User-Agent: curl/business-communications" \
    -H "$(oauth2l header --json ./service_account_key.json businesscommunications)"
    

    Node.js

    
    /**
     * This code snippet gets a partner.
     * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/partners/get
     *
     * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
     * Business Communications client library.
     */
    
    /**
     * Edit the values below:
     */
     const PARTNER_ID = 'EDIT_HERE';
     const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';
    
     const businesscommunications = require('businesscommunications');
     const {google} = require('googleapis');
    
     // Initialize the Business Communications API
     const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});
    
     // Set the scope that we need for the Business Communications API
     const scopes = [
       'https://www.googleapis.com/auth/businesscommunications',
     ];
    
     // Set the private key to the service account file
     const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);
    
     async function main() {
       const authClient = await initCredentials();
    
       const partnerName = 'partners/' + PARTNER_ID;
    
       if (authClient) {
         // Setup the parameters for the API call
         const apiParams = {
           auth: authClient,
           name: partnerName,
         };
    
         bcApi.partners.get(apiParams, {}, (err, response) => {
           if (err !== undefined && err !== null) {
             console.dir(err);
           } else {
             // Agent found
             console.log(response.data);
           }
         });
       }
       else {
         console.log('Authentication failure.');
       }
     }
    
     /**
      * Initializes the Google credentials for calling the
      * Business Messages API.
      */
      async function initCredentials() {
       // Configure a JWT auth client
       const authClient = new google.auth.JWT(
         privatekey.client_email,
         null,
         privatekey.private_key,
         scopes,
       );
    
       return new Promise(function(resolve, reject) {
         // Authenticate request
         authClient.authorize(function(err, tokens) {
           if (err) {
             reject(false);
           } else {
             resolve(authClient);
           }
         });
       });
     }
    
     main();
    

    Python

    
    """This code gets a partner.
    
    Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/partners/get
    
    This code is based on the https://github.com/google-business-communications/python-businessmessages
    Python Business Messages client library.
    """
    
    from oauth2client.service_account import ServiceAccountCredentials
    from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
    from businesscommunications.businesscommunications_v1_messages import (
        Agent,
        BusinesscommunicationsPartnersGetRequest,
    )
    
    # Edit the values below:
    PARTNER_ID = 'EDIT_HERE'
    SCOPES = ['https://www.googleapis.com/auth/businesscommunications']
    SERVICE_ACCOUNT_FILE = './service_account_key.json'
    
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    
    client = BusinesscommunicationsV1(credentials=credentials)
    
    partners_service = BusinesscommunicationsV1.PartnersService(client)
    
    partner_name = 'partners/' + PARTNER_ID
    
    partner = partners_service.Get(BusinesscommunicationsPartnersGetRequest(
            name=partner_name
        ))
    
    print(partner)
    
  2. Copie o e-mail da conta de serviço. Esta conta conecta seu Business Messages e agentes do Dialogflow.

  3. No Google Cloud console, selecione seu projeto do Dialogflow.

  4. Acesse o IAM. do Google Cloud.

  5. Clique em Adicionar e digite o e-mail da conta de serviço para Novos membros.

  6. Em Selecionar papel, escolha Editor do agente do console do Dialogflow.

  7. Clique em Adicionar outro papel e selecione Cliente da API Dialogflow.

  8. Clique em Salvar.

  9. Integre seu projeto do Dialogflow ao agente do Business Messages.

    Substitua AUTO_RESPONSE_STATUS por ATIVADO ou DESATIVADO, dependendo se você quer ou não que o recurso Business Messages responda automaticamente. usuários com respostas do Dialogflow.

    Dialogflow ES

    cURL

    
    # This code creates a Dialogflow ES integration.
    # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_es
    
    # Replace the __BRAND_ID__, __AGENT_ID__, __DIALOGFLOW_ES_PROJECT_ID__ and __AUTO_RESPONSE_STATUS__
    # Make sure a service account key file exists at ./service_account_key.json
    
    curl -X POST \
    "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations" \
    -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
    -H "Content-Type: application/json"  \
    -H "User-Agent: curl/business-communications" \
    -d '{
       "dialogflowEsIntegration": {
         "dialogflowProjectId": "__DIALOGFLOW_ES_PROJECT_ID__",
         "autoResponseStatus": "__AUTO_RESPONSE_STATUS__"
       }
    }'
    

    Node.js

    
    /**
     * This code snippet creates a Dialogflow ES integration.
     * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_es
     *
     * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
     * Business Communications client library.
     */
    
    /**
     * Edit the values below:
     */
     const BRAND_ID = 'EDIT_HERE';
     const AGENT_ID = 'EDIT_HERE';
     const DIALOGFLOW_ES_PROJECT_ID = 'EDIT_HERE'
     const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';
    
     const businesscommunications = require('businesscommunications');
     const {google} = require('googleapis');
     const uuidv4 = require('uuid').v4;
    
     // Initialize the Business Communications API
     const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});
    
     // Set the scope that we need for the Business Communications API
     const scopes = [
       'https://www.googleapis.com/auth/businesscommunications',
     ];
    
     // Set the private key to the service account file
     const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);
    
     async function main() {
       const authClient = await initCredentials();
       const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID;
    
       if (authClient) {
         const integrationObject = {
           dialogflowEsIntegration: {
             dialogflowProjectId: DIALOGFLOW_ES_PROJECT_ID,
             autoResponseStatus: 'ENABLED'
           }
         };
    
         // Setup the parameters for the API call
         const apiParams = {
           auth: authClient,
           parent: agentName,
           resource: integrationObject
         };
    
         bcApi.brands.agents.integrations.create(apiParams, {}, (err, response) => {
           if (err !== undefined && err !== null) {
             console.dir(err);
           } else {
             // Agent created
             console.log(response.data);
           }
         });
       }
       else {
         console.log('Authentication failure.');
       }
     }
    
     /**
      * Initializes the Google credentials for calling the
      * Business Messages API.
      */
      async function initCredentials() {
       // Configure a JWT auth client
       const authClient = new google.auth.JWT(
         privatekey.client_email,
         null,
         privatekey.private_key,
         scopes,
       );
    
       return new Promise(function(resolve, reject) {
         // Authenticate request
         authClient.authorize(function(err, tokens) {
           if (err) {
             reject(false);
           } else {
             resolve(authClient);
           }
         });
       });
     }
    
     main();
    

    Python

    
    """This code snippet creates a Dialogflow ES integration.
    
    Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_es
    
    This code is based on the https://github.com/google-business-communications/python-businessmessages
    Python Business Messages client library.
    """
    
    from oauth2client.service_account import ServiceAccountCredentials
    from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
    from businesscommunications.businesscommunications_v1_messages import (
        BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest,
        DialogflowEsIntegration
    )
    
    # Edit the values below:
    BRAND_ID = 'EDIT_HERE'
    AGENT_ID = 'EDIT_HERE'
    DIALOGFLOW_ES_PROJECT_ID = 'EDIT_HERE'
    SCOPES = ['https://www.googleapis.com/auth/businesscommunications']
    SERVICE_ACCOUNT_FILE = './service_account_key.json'
    
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    
    client = BusinesscommunicationsV1(credentials=credentials)
    
    integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client)
    
    agent_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID
    
    integration = integrations_service.Create(BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest(
      integration=DialogflowEsIntegration(
        autoResponseStatus=DialogflowEsIntegration.AutoResponseStatusValueValuesEnum.ENABLED,
        dialogflowProjectId=DIALOGFLOW_ES_PROJECT_ID
      ),
      parent=agent_name
    ))
    
    print(integration)
    

    Dialogflow CX

    cURL

    
    # This code creates a Dialogflow CX integration.
    # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_cx
    
    # Replace the __BRAND_ID__, __AGENT_ID__, __DIALOGFLOW_CX_PROJECT_ID__, __DIALOGFLOW_CX_AGENT_ID__ and __AUTO_RESPONSE_STATUS__
    # Make sure a service account key file exists at ./service_account_key.json
    
    curl -X POST \
    "https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations" \
    -H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
    -H "Content-Type: application/json"  \
    -H "User-Agent: curl/business-communications" \
    -d '{
       "dialogflowCxIntegration": {
         "dialogflowProjectId": "__DIALOGFLOW_CX_PROJECT_ID__",
         "dialogflowAgentId": "__DIALOGFLOW_CX_AGENT_ID__",
         "autoResponseStatus": "__AUTO_RESPONSE_STATUS__"
       }
    }'
    

    Node.js

    
    /**
     * This code snippet creates a Dialogflow CX integration.
     * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_cx
     *
     * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
     * Business Communications client library.
     */
    
    /**
     * Edit the values below:
     */
    const BRAND_ID = 'EDIT_HERE';
    const AGENT_ID = 'EDIT_HERE';
    const DIALOGFLOW_CX_AGENT_ID = 'EDIT_HERE'
    const DIALOGFLOW_CX_PROJECT_ID = 'EDIT_HERE'
    const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';
    
    const businesscommunications = require('businesscommunications');
    const {google} = require('googleapis');
    const uuidv4 = require('uuid').v4;
    
    // Initialize the Business Communications API
    const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});
    
    // Set the scope that we need for the Business Communications API
    const scopes = [
      'https://www.googleapis.com/auth/businesscommunications',
    ];
    
    // Set the private key to the service account file
    const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);
    
    async function main() {
      const authClient = await initCredentials();
      const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID;
    
      if (authClient) {
        const integrationObject = {
          dialogflowCxIntegration: {
            dialogflowProjectId: DIALOGFLOW_CX_PROJECT_ID,
            dialogflowAgentId: DIALOGFLOW_CX_AGENT_ID,
            autoResponseStatus: 'ENABLED'
          }
        };
    
        // Setup the parameters for the API call
        const apiParams = {
          auth: authClient,
          parent: agentName,
          resource: integrationObject
        };
    
        bcApi.brands.agents.integrations.create(apiParams, {}, (err, response) => {
          if (err !== undefined && err !== null) {
            console.dir(err);
          } else {
            // Agent created
            console.log(response.data);
          }
        });
      }
      else {
        console.log('Authentication failure.');
      }
    }
    
    /**
     * Initializes the Google credentials for calling the
     * Business Messages API.
     */
     async function initCredentials() {
      // Configure a JWT auth client
      const authClient = new google.auth.JWT(
        privatekey.client_email,
        null,
        privatekey.private_key,
        scopes,
      );
    
      return new Promise(function(resolve, reject) {
        // Authenticate request
        authClient.authorize(function(err, tokens) {
          if (err) {
            reject(false);
          } else {
            resolve(authClient);
          }
        });
      });
    }
    
    main();
    

    Python

    
    """This code snippet creates a Dialogflow CX integration.
    
    Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#dialogflow_cx
    
    This code is based on the https://github.com/google-business-communications/python-businessmessages
    Python Business Messages client library.
    """
    
    from oauth2client.service_account import ServiceAccountCredentials
    from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
    from businesscommunications.businesscommunications_v1_messages import (
        BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest,
        DialogflowCxIntegration
    )
    
    # Edit the values below:
    BRAND_ID = 'EDIT_HERE'
    AGENT_ID = 'EDIT_HERE'
    DIALOGFLOW_CX_AGENT_ID = 'EDIT_HERE'
    DIALOGFLOW_CX_PROJECT_ID = 'EDIT_HERE'
    SCOPES = ['https://www.googleapis.com/auth/businesscommunications']
    SERVICE_ACCOUNT_FILE = './service_account_key.json'
    
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    
    client = BusinesscommunicationsV1(credentials=credentials)
    
    integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client)
    
    agent_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID
    
    integration = integrations_service.Create(BusinesscommunicationsBrandsAgentsIntegrationsCreateRequest(
      integration=DialogflowCxIntegration(
        autoResponseStatus=DialogflowCxIntegration.AutoResponseStatusValueValuesEnum.ENABLED,
        dialogflowAgentId=DIALOGFLOW_CX_AGENT_ID,
        dialogflowProjectId=DIALOGFLOW_CX_PROJECT_ID
      ),
      parent=agent_name
    ))
    
    print(integration)
    

    Para opções de formatação e valor, consulte Integration

A conexão com o Business Messages e o Dialogflow leva cerca de dois minutos. Para verificar o status da integração, acessar o OperationInfo

Atualizar a integração

Para atualizar a configuração de resposta automática do agente, execute o comando a seguir. Substitua AUTO_RESPONSE_STATUS por ATIVADO ou DESATIVADOS se você quiser ou não que o recurso Business Messages seja ativado automaticamente. responder aos usuários com respostas do Dialogflow.

Dialogflow ES

cURL


# This code updates the Dialogflow association.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/updateDialogflowAssociation

# Replace the __BRAND_ID__ and __AGENT_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/dialogflowAssociation?updateMask=enableAutoResponse" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "enableAutoResponse": true
}'

Dialogflow CX

cURL


# This code updates the Dialogflow association.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/updateDialogflowAssociation

# Replace the __BRAND_ID__ and __AGENT_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/dialogflowAssociation?updateMask=enableAutoResponse" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "enableAutoResponse": true
}'

Para opções de formatação e valor, consulte Integration

Alternar entre as edições do Dialogflow

Um agente do Business Messages só aceita uma integração com o Dialogflow por vez. Para mudar de uma edição do Dialogflow para outra, você precisa remover o integração atual antes de criar a nova.

Excluir a integração

Se você precisar remover o Dialogflow do seu agente do Business Messages, exclua a com o comando a seguir.

cURL


# This code deletes an integration.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_the_integration

# Replace the __BRAND_ID__, __AGENT_ID__ and __INTEGRATION_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl -X DELETE \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)"

Node.js


/**
 * This code snippet deletes an integration.
 * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_the_integration
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */

/**
 * Edit the values below:
 */
 const BRAND_ID = 'EDIT_HERE';
 const AGENT_ID = 'EDIT_HERE';
 const INTEGRATION_ID = 'EDIT_HERE';
 const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

 const businesscommunications = require('businesscommunications');
 const {google} = require('googleapis');
 const uuidv4 = require('uuid').v4;

 // Initialize the Business Communications API
 const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

 // Set the scope that we need for the Business Communications API
 const scopes = [
   'https://www.googleapis.com/auth/businesscommunications',
 ];

 // Set the private key to the service account file
 const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

 async function main() {
   const authClient = await initCredentials();
   const integrationName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID;

   if (authClient) {
     // Setup the parameters for the API call
     const apiParams = {
       auth: authClient,
       name: integrationName,
     };

     bcApi.brands.agents.integrations.delete(apiParams, {}, (err, response) => {
       if (err !== undefined && err !== null) {
         console.dir(err);
       } else {
         // Agent created
         console.log(response.data);
       }
     });
   }
   else {
     console.log('Authentication failure.');
   }
 }

 /**
  * Initializes the Google credentials for calling the
  * Business Messages API.
  */
  async function initCredentials() {
   // Configure a JWT auth client
   const authClient = new google.auth.JWT(
     privatekey.client_email,
     null,
     privatekey.private_key,
     scopes,
   );

   return new Promise(function(resolve, reject) {
     // Authenticate request
     authClient.authorize(function(err, tokens) {
       if (err) {
         reject(false);
       } else {
         resolve(authClient);
       }
     });
   });
 }

 main();

Python


"""This code snippet deletes an integration.

Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_the_integration

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""

from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
    BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest
)

# Edit the values below:
BRAND_ID = 'EDIT_HERE'
AGENT_ID = 'EDIT_HERE'
INTEGRATION_ID = 'EDIT_HERE'
SCOPES = ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE = './service_account_key.json'

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

client = BusinesscommunicationsV1(credentials=credentials)

integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client)

integration_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID

integration = integrations_service.Delete(BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest(
  name=integration_name
))

print(integration)

Para opções de formatação e valor, consulte Integration

Receber informações de integração

Para informações sobre uma integração, você pode usar o Business Communications API, desde que você tenha o valor name da integração.

Receber informações de uma única integração

Para ver informações de integração, execute o comando a seguir.

cURL


# This code gets information about an integration.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#get_info_for_a_single_integration

# Replace the __BRAND_ID__, __AGENT_ID__ and __INTEGRATION_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl -X GET \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)"

Node.js


/**
 * This code snippet gets information about an integration.
 * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#get_info_for_a_single_integration
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */

/**
 * Edit the values below:
 */
 const BRAND_ID = 'EDIT_HERE';
 const AGENT_ID = 'EDIT_HERE';
 const INTEGRATION_ID = 'EDIT_HERE';
 const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

 const businesscommunications = require('businesscommunications');
 const {google} = require('googleapis');
 const uuidv4 = require('uuid').v4;

 // Initialize the Business Communications API
 const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

 // Set the scope that we need for the Business Communications API
 const scopes = [
   'https://www.googleapis.com/auth/businesscommunications',
 ];

 // Set the private key to the service account file
 const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

 async function main() {
   const authClient = await initCredentials();
   const integrationName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID;

   if (authClient) {
     // Setup the parameters for the API call
     const apiParams = {
       auth: authClient,
       name: integrationName,
     };

     bcApi.brands.agents.integrations.get(apiParams, {}, (err, response) => {
       if (err !== undefined && err !== null) {
         console.dir(err);
       } else {
         // Agent created
         console.log(response.data);
       }
     });
   }
   else {
     console.log('Authentication failure.');
   }
 }

 /**
  * Initializes the Google credentials for calling the
  * Business Messages API.
  */
  async function initCredentials() {
   // Configure a JWT auth client
   const authClient = new google.auth.JWT(
     privatekey.client_email,
     null,
     privatekey.private_key,
     scopes,
   );

   return new Promise(function(resolve, reject) {
     // Authenticate request
     authClient.authorize(function(err, tokens) {
       if (err) {
         reject(false);
       } else {
         resolve(authClient);
       }
     });
   });
 }

 main();

Python


"""This code snippet gets information about an integration.

Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#get_info_for_a_single_integration

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""

from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
    BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest
)

# Edit the values below:
BRAND_ID = 'EDIT_HERE'
AGENT_ID = 'EDIT_HERE'
INTEGRATION_ID = 'EDIT_HERE'
SCOPES = ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE = './service_account_key.json'

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

client = BusinesscommunicationsV1(credentials=credentials)

integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client)

integration_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID + '/integrations/' + INTEGRATION_ID

integration = integrations_service.Get(BusinesscommunicationsBrandsAgentsIntegrationsDeleteRequest(
  name=integration_name
))

print(integration)

Para opções de formatação e valor, consulte Integration

Listar todas as integrações de um agente

Se você não souber o nome da integração, poderá obter informações sobre todas integrações associadas a um agente omitindo o INTEGRATION_ID de um URL de solicitação GET.

cURL


# This code lists all integrations for an agent.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#list_all_integrations_for_an_agent

# Replace the __BRAND_ID__ and __AGENT_ID__
# Make sure a service account key file exists at ./service_account_key.json

curl -X GET \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)"

Node.js


/**
 * This code snippet lists all integrations for an agent.
 * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#list_all_integrations_for_an_agent
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */

/**
 * Edit the values below:
 */
 const BRAND_ID = 'EDIT_HERE';
 const AGENT_ID = 'EDIT_HERE';
 const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

 const businesscommunications = require('businesscommunications');
 const {google} = require('googleapis');
 const uuidv4 = require('uuid').v4;

 // Initialize the Business Communications API
 const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

 // Set the scope that we need for the Business Communications API
 const scopes = [
   'https://www.googleapis.com/auth/businesscommunications',
 ];

 // Set the private key to the service account file
 const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

 async function main() {
   const authClient = await initCredentials();

   if (authClient) {
     // Setup the parameters for the API call
     const apiParams = {
       auth: authClient,
       parent: 'brands/' + BRAND_ID + '/agents/' + AGENT_ID,
     };

     bcApi.brands.agents.integrations.list(apiParams, {}, (err, response) => {
       if (err !== undefined && err !== null) {
         console.dir(err);
       } else {
         // Agent created
         console.log(response.data);
       }
     });
   }
   else {
     console.log('Authentication failure.');
   }
 }

 /**
  * Initializes the Google credentials for calling the
  * Business Messages API.
  */
  async function initCredentials() {
   // Configure a JWT auth client
   const authClient = new google.auth.JWT(
     privatekey.client_email,
     null,
     privatekey.private_key,
     scopes,
   );

   return new Promise(function(resolve, reject) {
     // Authenticate request
     authClient.authorize(function(err, tokens) {
       if (err) {
         reject(false);
       } else {
         resolve(authClient);
       }
     });
   });
 }

 main();

Python


"""This code snippet lists all integrations for an agent.

Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#list_all_integrations_for_an_agent

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""

from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
    BusinesscommunicationsBrandsAgentsIntegrationsListRequest
)

# Edit the values below:
BRAND_ID = 'EDIT_HERE'
AGENT_ID = 'EDIT_HERE'
SCOPES = ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE = './service_account_key.json'

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

client = BusinesscommunicationsV1(credentials=credentials)

integrations_service = BusinesscommunicationsV1.BrandsAgentsIntegrationsService(client)

agent_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID

integration = integrations_service.List(
  BusinesscommunicationsBrandsAgentsIntegrationsListRequest(parent=agent_name)
)

print(integration)

Para opções de formatação e valor, consulte Integration

Correspondência com intents

Depois de ativar a integração do Dialogflow para um agente do Business Messages, seu pode usar as intents configuradas pelo 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 do Dialogflow ES e Dialogflow CX.

Configure as intents do Dialogflow para cada opção de conversa suporte por meio da automação. Os agentes do Business Messages usam o Dialogflow para a entender as mensagens dos usuários.

Ao chamar as APIs do Dialogflow, o Business Messages passa o payload da mensagem do usuário às intents e ao webhook de fulfillment. Quando há correspondência com uma mensagem do usuário com uma intent, é 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.

No Dialogflow CX, o Business Messages também transmite um parâmetro de sessão chamado channel com valor google_business_messages para as intents, que pode ser referenciado no agente com o seguinte formato: $session.params.channel.

Esse parâmetro pode ser usado para adicionar condicionais aos fulfillments do Dialogflow e oferecer suporte a vários canais no mesmo agente do Dialogflow.

Para mais informações sobre parâmetros de consulta, acesse as referências do Dialogflow ES e do Dialogflow CX.

Pré-requisitos

Ao criar modelos PLN no Dialogflow, é possível configurar diferentes tipos de resposta a uma intent. O Business Messages aceita a resposta padrão, que pode incluir o seguinte:

  • Texto
  • Payload personalizado
  • Transferência de agente em tempo real (somente Dialogflow CX)

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

  • name
  • messageId
  • representative

Confira os exemplos de resposta a seguir.

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 a integração do Dialogflow ES com um agente do Business Messages, criar um bot de perguntas frequentes. Quando você fornece perguntas e respostas um documento de conhecimento com suporte, o Business Messages e o Dialogflow criam a a infraestrutura necessária para entender e responder às perguntas dos usuários você não precisa escrever código.

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

Pré-requisitos

Para criar um bot de perguntas frequentes, você precisa que suas perguntas e respostas estejam disponíveis Um documento de conhecimento (máximo de 50 MB): um arquivo HTML disponível publicamente ou um arquivo CSV.

Em geral, documentos de conhecimento

  • Pode incluir Markdown limitado nas respostas, conforme especificado em Rich ou texto.
  • ter no máximo 50 MB;
  • Não deve exceder 2.000 pares de perguntas/respostas.
  • Não aceite 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. Você pode verificar isso com o Google Search Console. O indexador não mantém o conteúdo atualizado. É necessário informar atualizar seu documento quando o conteúdo de origem for alterado.
  • O Dialogflow remove tags HTML do conteúdo ao criar respostas. Devido ao é melhor evitar tags HTML e usar texto simples quando possível.
  • Arquivos com um único par de pergunta/resposta não são aceitos.

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

Para criar um bot de perguntas frequentes, crie primeiro uma base de conhecimento para armazenar todos os dados do bot e adicione um ou mais documentos com pares de perguntas/respostas ao seu base de conhecimento.

Criar uma base de conhecimento

Para criar uma base de conhecimento, execute o comando a seguir. Substituir BRAND_ID, AGENT_ID e INTEGRATION_ID com os valores exclusivos do name do documento. Substituir KNOWLEDGE_BASE_DISPLAY_NAME por uma string de identificação do uma melhor opção.

Depois de criar uma base de conhecimento, você pode criar documentos dentro dele.

cURL


# This code creates a knowledge base.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#create-knowledge-base

# Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__ and __KNOWLEDGE_BASE_DISPLAY_NAME__
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "dialogflowEsIntegration": {
    "dialogflowKnowledgeBases": [
      {
        "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__"
      }
    ]
  }
}'

Para opções de formatação e valor, consulte DialogflowKnowledgebase

Criar um documento de conhecimento

Para criar um documento de conhecimento, execute o comando a seguir.

Adicione o documento à lista de documentos existentes ou crie uma nova lista se não houver nenhum já existe. Uma lista de documentos existentes deve incluir o name do documento na solicitação.

Arquivo HTML público

Substitua as seguintes variáveis:

  • BRAND_ID, AGENT_ID e INTEGRATION_ID com os valores exclusivos do name da integração
  • KNOWLEDGE_BASE_DISPLAY_NAME e DOCUMENT_DISPLAY_NAME com identificando strings de sua escolha
  • PUBLIC_URL com o conhecimento URL público do documento

cURL


# This code creates a knowledge base document from an HTML document and adds it to the knowledge base.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#create-document

# Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__, __KNOWLEDGE_BASE_DISPLAY_NAME__, __DOCUMENT_DISPLAY_NAME__ and __PUBLIC_URL__
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "dialogflowEsIntegration": {
    "dialogflowKnowledgeBases": [
      {
        "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__",
        "documents": [
          {
            "displayName": "__DOCUMENT_DISPLAY_NAME__",
            "faqUrl": "__PUBLIC_URL__"
          }
        ]
      }
    ]
  }
}'

Arquivo CSV local

Substitua as seguintes variáveis:

  • BRAND_ID, AGENT_ID e INTEGRATION_ID com os valores exclusivos do name da integração
  • KNOWLEDGE_BASE_DISPLAY_NAME e DOCUMENT_DISPLAY_NAME com identificando strings de sua escolha
  • CSV_RAW_BYTES com o CSV arquivo como uma string codificada em base64

cURL


# This code creates a knowledge base document from a CSV document and adds it to the knowledge base.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#create-document

# Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__, __KNOWLEDGE_BASE_DISPLAY_NAME__, __DOCUMENT_DISPLAY_NAME__ and __CSV_RAW_BYTES__
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "dialogflowEsIntegration": {
    "dialogflowKnowledgeBases": [
      {
        "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__",
        "documents": [
          {
            "displayName": "__DOCUMENT_DISPLAY_NAME__",
            "rawContent": "__CSV_RAW_BYTES__"
          }
        ]
      }
    ]
  }
}'

Para opções de formatação e valor, consulte DialogflowKnowledgebase

A adição de um documento a uma base de conhecimento leva cerca de dois minutos. Para verificar o status do documento, confira os atributos OperationInfo

Excluir um documento de conhecimento

Se você precisar remover pares de perguntas/respostas do seu agente do Business Messages, exclua o documento de conhecimento que os contém usando o comando a seguir.

Execute o comando a seguir para excluir um único documento. Substituir BRAND_ID, AGENT_ID e INTEGRATION_ID com os valores exclusivos do name do documento. Substituir KNOWLEDGE_BASE_DISPLAY_NAME pela string adequada.

cURL


# This code deletes a knowledge base document.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/integrate/dialogflow?method=api#delete_a_knowledge_document

# Replace the __BRAND_ID__, __AGENT_ID__, __INTEGRATION_ID__ and __KNOWLEDGE_BASE_DISPLAY_NAME__
# To delete all knowledge bases, set dialogflowKnowledgeBases to an empty list. Otherwise, the list should contain all existing knowledgebases except the one you would like to remove.
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__/integrations/__INTEGRATION_ID__?updateMask=dialogflowEsIntegration.dialogflowKnowledgeBases" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "dialogflowEsIntegration": {
    "dialogflowKnowledgeBases": [
      {
        "displayName": "__KNOWLEDGE_BASE_DISPLAY_NAME__"
      }
    ]
  }
}'

Para opções de formatação e valor, consulte DialogflowKnowledgebase

Respostas automáticas

Se você ativar a resposta automática durante a integração com o Dialogflow, o Business As mensagens respondem automaticamente ao usuário pelo Dialogflow. Sua empresa O agente do Mensagens responde com a maior correspondência de nível de confiança. Com um Integração do Dialogflow ES, se houver correspondências para uma resposta de Perguntas frequentes e uma com intenção personalizada, o recurso Business Messages responde com a correspondência com a maior nível de confiança.

O Business Messages marca todas as mensagens de resposta automática como provenientes de BOT. e representantes. Caso seu agente seja compatível com agentes em tempo real, O recurso Business Messages vai suspender as respostas automáticas após REPRESENTATIVE_JOINED eventos e retoma as respostas automáticas após REPRESENTATIVE_LEFT eventos. Consulte a Transição do bot para o agente humano.

Responder automaticamente com uma resposta de Perguntas frequentes

Com uma integração do Dialogflow ES, se uma resposta de perguntas frequentes tiver o maior nível de confiança o Business Messages mapeia a resposta de uma mensagem de texto. Se houver relacionada, mas disponível, a mensagem mostra resposta" sugestão. Caso contrário, a mensagem inclui uma pergunta e sugestões responde 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 correspondência de nível de confiança mais alto, o seguinte se aplica.

  • Se a resposta tiver pelo menos um valor de texto, o recurso Mensagens comerciais o mapeará a uma mensagem de texto.
  • Se a resposta tiver pelo menos um payload personalizado com um Perfil da Empresa válido Estrutura de objeto JSON do app Mensagens, o Business Messages cria uma mensagem usando o objeto JSON fornecido.
  • Se a resposta tiver pelo menos uma resposta de transferência para o agente em tempo real, consulte Responda automaticamente com uma solicitação de agente em tempo real.

Como o Dialogflow pode incluir várias respostas em uma correspondência de intent, O Business Messages envia cada transferência de mensagem de texto, payload personalizado ou agente em tempo real como uma mensagem separada. Se houver várias mensagens em uma intent forem correspondentes, mas algumas estiverem incorretas, o recurso Business Messages só envia mensagens como respostas automáticas.

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

O Dialogflow CX permite a transferência do agente em tempo real resposta. Sinaliza que a conversa deve ser passada para um humano representativo e permite que você passe metadados personalizados para sua transferência procedimento Se uma resposta de intent tiver a correspondência de nível de confiança mais alta e incluir uma transferência para o agente em tempo real, o recurso Business Messages envia uma evento solicitado pelo agente em tempo real ao webhook. Para processar esse evento, consulte Transferência do bot para o agente humano.

Responder automaticamente com uma mensagem substituta

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

Dialogflow ES

Para bots de perguntas frequentes, se não houver correspondência com uma resposta, o Business Messages enviará uma mensagem substituta de que não foi possível encontrar uma resposta.

Para intents configuradas, se não houver correspondência com uma resposta de intent, a conta de O Mensagens envia uma resposta de intent de fallback. É possível usar o texto substituto fornecido pelo Dialogflow ou configurar o com payloads personalizados e de texto extra.

Veja um exemplo de resposta de intent substituta 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 lida com respostas de intents substitutas como eventos integrados. Se não houver correspondência para uma resposta de intent, o recurso Business Messages enviará uma mensagem substituta do evento padrão "Sem correspondência" no Dialogflow. Você pode usar o texto substituto fornecido pelo Dialogflow ou configurar o substituto com texto adicional, payloads personalizados e opções de transferência para agentes em tempo real.

Confira um exemplo de resposta de intent substituta que seu o 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 do Dialogflow, o usuário envia uma mensagem ao agente recebe incluem o parâmetro dialogflowResponse objeto. Seu webhook recebe payloads de todas as mensagens do usuário, independentemente se o Business Messages respondeu automaticamente à mensagem no seu nome de usuário. Para verificar se há uma resposta automática, consulte o valor do atributo autoResponded e decida se você 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 do comando de conversação original. Se a ortografia for automática a correção está ativada para o modelo do Dialogflow, queryText contém a entrada de usuário corrigida.
intentName O 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 nome payload definido no Dialogflow. Se o payload não tiver um JSON do Business Messages válido do objeto, error descreve o problema.
error A descrição de um erro com uma mensagem de fulfillment de intent.
userQuestion A pergunta que o usuário fez, conforme analisado pelo Dialogflow.
faqQuestion Uma pergunta do Dialogflow corresponde à pergunta do usuário.
faqAnswer Uma resposta do Dialogflow corresponde à pergunta do usuário.
matchConfidenceLevel O 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 foi ou não respondido automaticamente 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 do comando de conversação original. Se a ortografia for automática a correção está ativada para o modelo do Dialogflow, queryText contém a entrada de usuário corrigida.
intentName O 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 nome payload definido no Dialogflow. Se o payload não tiver um JSON do Business Messages válido do objeto, error descreve o problema.
error A descrição de um erro com uma mensagem de fulfillment de intent.
liveAgentHandoff Metadados personalizados para o procedimento de transferência do agente em tempo real.
autoResponded Se o Business Messages foi ou não respondido automaticamente ao usuário com uma resposta do Dialogflow.
message O payload da resposta automática.
responseSource A origem da resposta automática. Consulte ResponseSource