Aggiungi automazione con Dialogflow

di Gemini Advanced. di Gemini Advanced. Dialogflow è un flusso naturale di comprensione del linguaggio (NLU) che elabora l'input dell'utente, lo mappa intenti e risponde con risposte appropriate. Esistono due versioni di Dialogflow. Integrando l'agente Business Messages con Dialogflow ES, puoi creare facilmente semplici automazioni per dare slancio allo sviluppo degli agenti. Di integrando Dialogflow CX, puoi creare automazione avanzata per conversazioni complesse.

Gli agenti Business Messages supportano integrazioni dirette con

Per integrare un agente Business Messages con altre funzionalità di Dialogflow ES oppure Dialogflow CX consulta la documentazione di ciascun prodotto.

Quando un utente invia un messaggio a un agente con un'integrazione Dialogflow, Business Messages passa il messaggio dell'utente a Dialogflow e invia i messaggi di Dialogflow. all'agente nella richiesta dialogflowResponse. Puoi configurare gli agenti per invia automaticamente la risposta di Dialogflow all'utente senza che sia necessario alcun intervento da parte tua . Vedi Risposte automatiche. per maggiori dettagli.

Integrazione di Dialogflow

Prima di poter sfruttare l'automazione basata su Dialogflow tramite Business Messages, devi abilitare l'integrazione di Dialogflow.

Prerequisiti

Per iniziare, devi

  • Business Messages agente
  • Un agente Dialogflow nella regione Globale con lingua radice inglese (it)

Se non hai un agente Dialogflow, creane uno.

Dialogflow ES

Prima di poter abilitare un'integrazione Dialogflow ES, devi avere ID progetto dell'agente Dialogflow. Per individuare l'ID progetto,

  1. Vai alla console di Dialogflow.
  2. Seleziona l'agente Dialogflow che vuoi collegare a Business Messages. quindi fai clic sull'icona dell'ingranaggio accanto al nome dell'agente.
  3. In Progetto Google prendi nota del valore ID progetto.

Dialogflow CX

Prima di poter abilitare un'integrazione Dialogflow CX, devi disporre ID progetto e ID agente dell'agente Dialogflow. Per individuare questi ID,

  1. Accedi alla console Dialogflow CX.
  2. Seleziona il progetto Dialogflow.
  3. Nel selettore dell'agente, fai clic sul menu extra accanto all'agente Dialogflow.
  4. Fai clic su Copia nome. Viene copiato il nome completo dell'agente nel seguente formato: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID.
  5. Prendi nota dei valori dell'ID progetto e dell'ID agente.

Crea l'integrazione

  1. Recupera l'email dell'account di servizio Dialogflow del partner da dialogflowServiceAccountEmail. Sostituisci PARTNER_ID con il tuo ID partner.

    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. Copia l'indirizzo email dell'account di servizio. Questo account collega Business Messages e gli agenti Dialogflow.

  3. Nella piattaforma Google Cloud Console, seleziona il progetto Dialogflow.

  4. Vai a IAM. autorizzazioni.

  5. Fai clic su Aggiungi e inserisci l'indirizzo email dell'account di servizio per Nuovi membri.

  6. In Seleziona un ruolo, seleziona Editor agente console Dialogflow.

  7. Fai clic su Aggiungi un altro ruolo e seleziona Client API Dialogflow.

  8. Fai clic su Salva.

  9. Integra il progetto Dialogflow con l'agente Business Messages.

    Sostituisci AUTO_RESPONSE_STATUS con ENABLED o DISABLED, a seconda sulla risposta automatica a Business Messages di utenti con risposte 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)
    

    Per le opzioni di formattazione e valore, consulta Integration

La connessione di Business Messages e Dialogflow richiede circa due minuti. A controllare lo stato dell'integrazione, recuperare l'integrazione OperationInfo

Aggiorna l'integrazione

Per aggiornare l'impostazione di risposta automatica dell'agente, esegui questo comando. Sostituisci AUTO_RESPONSE_STATUS con ENABLED o DISATTIVATO a seconda che tu voglia o meno l'attivazione automatica di Business Messages Rispondere agli utenti con le risposte di 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
}'

Per le opzioni di formattazione e valore, consulta Integration

Passare da una versione di Dialogflow a un'altra

Un agente Business Messages può supportare solo un'integrazione Dialogflow alla volta. Per passare da una versione di Dialogflow a un'altra, devi rimuovere l'integrazione attuale prima di crearne una nuova.

Elimina l'integrazione

Se devi rimuovere Dialogflow dall'agente Business Messages, elimina il l'integrazione con il comando seguente.

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)

Per le opzioni di formattazione e valore, consulta Integration

Recuperare informazioni sull'integrazione

Per ottenere informazioni su un'integrazione, puoi utilizzare Business Communications API, purché tu abbia il valore name dell'integrazione.

Ricevere informazioni per una singola integrazione

Per ottenere informazioni sull'integrazione, esegui questo comando.

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)

Per le opzioni di formattazione e valore, consulta Integration

Elenco di tutte le integrazioni per un agente

Se non conosci il nome dell'integrazione, puoi ottenere informazioni per tutti integrazioni associate a un agente omettendo INTEGRATION_ID da un URL di richiesta 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)

Per le opzioni di formattazione e valore, consulta Integration

Corrispondenza di intent

Dopo aver abilitato l'integrazione di Dialogflow per un agente Business Messages, può utilizzare gli intent configurati del progetto Dialogflow per comprendere e rispondere alle domande degli utenti senza che tu debba scrivere codice. Per scoprire di più su per intent, consulta la documentazione di Dialogflow ES e Dialogflow CX.

Configura gli intent Dialogflow per ogni opzione di conversazione che intendi utilizzare e assistenza tramite l'automazione. Gli agenti Business Messages si affidano a Dialogflow per: a capire i messaggi degli utenti.

Quando chiami le API Dialogflow, Business Messages passa il payload dei messaggi utente agli intent e al webhook di fulfillment. Quando viene trovata una corrispondenza con un messaggio per l'utente con un intent, puoi accedere a questo payload nel formato Struct nel campo business_messages_payload all'interno di QueryParameters.

Il payload contiene tutti i campi del messaggio utente, ad eccezione di DialogflowResponse.

Per Dialogflow CX, Business Messages passa anche un parametro di sessione denominato channel con valore google_business_messages per i tuoi intent e puoi farvi riferimento nel tuo agente con il seguente formato: $session.params.channel.

Questo parametro può essere utilizzato per aggiungere condizionali ai completamenti Dialogflow per supportare più canali nello stesso agente Dialogflow.

Per ulteriori informazioni sui parametri di query, consulta i riferimenti Dialogflow ES e Dialogflow CX.

Prerequisiti

Quando crei modelli NLU in Dialogflow, puoi configurare diversi tipi di risposta per un intent. Business Messages supporta la risposta predefinita, che possono includere:

  • Testo
  • Payload personalizzato
  • Passaggio ad un operatore (solo Dialogflow CX)

Un payload personalizzato deve corrispondere a una risposta di messaggio JSON Business Messages valida . Quando configuri risposte di payload personalizzate per un intent, Business Messages ignora i seguenti campi:

  • name
  • messageId
  • representative

Vedi le risposte di esempio che seguono.

Testo con suggerimenti

{
  "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"
      }
    }
  ]
}

Scheda interattiva

{
  "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
            }
          }
        }
      ]
    }
  }
}

Trasferimento operatore

{
  "metadata": {}
}

Bot di domande frequenti

Dopo aver abilitato un'integrazione Dialogflow ES per un agente Business Messages, puoi creare un bot per le domande frequenti. Quando fornisci domande e risposte come un documento informativo supportato, Business Messages e Dialogflow creano l'infrastruttura necessaria per comprendere e rispondere alle domande degli utenti senza devi scrivere del codice.

Per vedere un bot per le domande frequenti in azione, chatta con le Domande frequenti su Business Messages Bot.

Prerequisiti

Prima di creare un bot per le domande frequenti, è necessario che le domande e le risposte siano disponibili un documento informativo (massimo 50 MB): un file HTML disponibile pubblicamente o un file CSV.

In genere, i documenti informativi

  • Può includere un Markdown limitato nelle risposte, come specificato in Richiamo testo.
  • Avere una dimensione massima di 50 MB.
  • Non deve superare 2000 coppie di domanda/risposta.
  • Non supportare domande duplicate con risposte diverse.

Per i file HTML,

  • I file di URL pubblici devono essere stati sottoposti a scansione dall'indicizzatore della Ricerca Google. in modo che esistano nell'indice di ricerca. Puoi verificarlo con il Search Console. Tieni presente che l'indicizzatore non mantiene aggiornati i tuoi contenuti. Devi indicare esplicitamente aggiornare il documento quando cambiano i contenuti di origine.
  • Dialogflow rimuove i tag HTML dai contenuti durante la creazione delle risposte. Poiché per cui è consigliabile evitare i tag HTML e, se possibile, utilizzare testo normale.
  • I file con una singola coppia di domanda/risposta non sono supportati.

Per i file CSV,

  • I file devono contenere domande nella prima colonna e risposte nella seconda. senza intestazione.
  • I file devono utilizzare le virgole come delimitatori.

Crea un bot per domande frequenti

Per creare un bot per le domande frequenti, devi prima creare una knowledge base in cui archiviare tutti i del bot, quindi aggiungi uno o più documenti con coppie di domanda/risposta al tuo knowledge base.

Creazione di una knowledge base

Per creare una knowledge base, esegui questo comando. Sostituisci BRAND_ID, AGENT_ID e INTEGRATION_ID con i valori univoci dalla classe name del documento. Sostituisci KNOWLEDGE_BASE_DISPLAY_NAME con una stringa identificativa del tuo scelta.

Dopo aver creato una knowledge base, puoi creare i documenti al suo interno.

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__"
      }
    ]
  }
}'

Per le opzioni di formattazione e valore, consulta DialogflowKnowledgebase

Crea un documento informativo

Per creare un documento informativo, esegui questo comando.

Aggiungi il documento all'elenco dei documenti esistenti o crea un nuovo elenco se non ne esiste uno esiste già. Un elenco dei documenti esistenti deve includere l'elemento name del documento nella richiesta.

File HTML pubblico

Sostituisci le seguenti variabili:

  • BRAND_ID, AGENT_ID e INTEGRATION_ID con i valori univoci dalla classe name dell'integrazione
  • KNOWLEDGE_BASE_DISPLAY_NAME e DOCUMENT_DISPLAY_NAME con identificare le stringhe di tua scelta
  • PUBLIC_URL con le conoscenze necessarie URL pubblico del 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__"
          }
        ]
      }
    ]
  }
}'

File CSV locale

Sostituisci le seguenti variabili:

  • BRAND_ID, AGENT_ID e INTEGRATION_ID con i valori univoci dalla classe name dell'integrazione
  • KNOWLEDGE_BASE_DISPLAY_NAME e DOCUMENT_DISPLAY_NAME con identificare le stringhe di tua scelta
  • CSV_RAW_BYTES con il file CSV come stringa con codifica 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__"
          }
        ]
      }
    ]
  }
}'

Per le opzioni di formattazione e valore, consulta DialogflowKnowledgebase

Per aggiungere un documento a una knowledge base sono necessari circa due minuti. Per controllare lo stato del documento, ottenere lo stato OperationInfo

Eliminare un documento informativo

Se devi rimuovere le coppie di domanda/risposta dall'agente Business Messages, ed eliminare il documento informativo che le contiene con il seguente comando.

Esegui questo comando per eliminare un singolo documento esistente. Sostituisci BRAND_ID, AGENT_ID e INTEGRATION_ID con i valori univoci dalla classe name del documento. Sostituisci KNOWLEDGE_BASE_DISPLAY_NAME con la stringa appropriata.

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__"
      }
    ]
  }
}'

Per le opzioni di formattazione e valore, consulta DialogflowKnowledgebase

Risposte automatiche

Se abiliti la risposta automatica durante l'integrazione di Dialogflow, le Messaggi risponde automaticamente all'utente tramite Dialogflow. La tua attività L'agente di Messaggi risponde con la corrispondenza con il livello di confidenza più alto. Con un Integrazione di Dialogflow ES, in caso di corrispondenze con una risposta delle domande frequenti e una personalizzato per intenzione, Business Messages risponde con la corrispondenza con il tasso un livello di confidenza elevato.

Business Messages contrassegna tutti i messaggi a risposta automatica come provenienti da BOT rappresentanti di Google Cloud. Se il tuo agente supporta gli operatori live, Business Messages sospende le risposte automatiche dopo il giorno REPRESENTATIVE_JOINED eventi e riprende le risposte automatiche dopo REPRESENTATIVE_LEFT eventi. Vedi Handoff dal bot all'agente.

Rispondi automaticamente con una risposta alle domande frequenti

Con un'integrazione Dialogflow ES, se una risposta alle domande frequenti ha la massima affidabilità Business Messages mappa la risposta a un SMS. Se esiste un una risposta correlata ma diversa disponibile, il messaggio mostra risposta" suggerimento. In caso contrario, il messaggio include una domanda e un suggerimento risposte per chiedere se il messaggio ha soddisfatto la richiesta dell'utente.

Rispondere automaticamente con una risposta di intent

Le risposte per intent possono includere una o più delle seguenti risposte.

Se una risposta di intent ha la corrispondenza con il livello di confidenza più elevato, quanto segue .

  • Se la risposta ha almeno un valore di testo, Business Messages mappa questo a un messaggio di testo.
  • Se la risposta include almeno un payload personalizzato con un indirizzo Struttura dell'oggetto JSON di Messaggi, Business Messages crea un messaggio utilizzando fornito dall'oggetto JSON.
  • Se per la risposta è presente almeno una risposta di trasferimento da parte di un operatore, consulta Rispondi automaticamente con una richiesta di operatore.

Poiché Dialogflow può includere più risposte all'interno di una corrispondenza di intent, Business Messages invia ogni messaggio di testo, payload personalizzato o trasferimento da parte di un operatore come messaggio separato. Se un intent include più messaggi ma alcune non sono nel formato corretto, Business Messages invia solo messaggi i messaggi come risposte automatiche.

Rispondi automaticamente con una richiesta di operatore

Dialogflow CX supporta il passaggio ad agenti live la risposta corretta. Segnala che la conversazione deve essere trasferita a una persona e ti permette di trasferire metadati personalizzati per il trasferimento . Se una risposta di intent ha la più alta corrispondenza di livello di confidenza include il trasferimento di un operatore, Business Messages invia un evento richiesto da un operatore al webhook. Per gestire questo evento, vedi Passaggio da bot ad operatore.

Rispondi automaticamente con un messaggio di riserva

Se Dialogflow non trova una corrispondenza con un livello di confidenza elevato, Business Messages invia una risposta di riserva. I fallback vengono gestiti in modo diverso in Dialogflow ES e Dialogflow CX.

Dialogflow ES

Nel caso dei bot relativi alle domande frequenti, se non esiste una risposta corrispondente a una delle domande frequenti, Business Messages invia un messaggio di riserva che non ha trovato una risposta.

Per gli intent configurati, se non esiste una corrispondenza con una risposta di intent, Messaggi invia una risposta di intent di riserva. Puoi utilizzare il testo di fallback fornito da Dialogflow o configurare il metodo di riserva con testo aggiuntivo e payload personalizzati.

Ecco un esempio di risposta di un intent di riserva che il tuo webhook può ricevere:

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

Dialogflow precompila intent_name e intent_display_name.

Dialogflow CX

Dialogflow CX gestisce le risposte degli intent di fallback come eventi integrati. Se non esiste una corrispondenza con una risposta di intent, Business Messages invia un messaggio di fallback dell'evento predefinito senza corrispondenza in Dialogflow. Puoi usa il testo di fallback fornito da Dialogflow o configura il fallback con testo aggiuntivo, payload personalizzati e opzioni di trasferimento di operatori.

Ecco un esempio di risposta di un intent di riserva che il webhook può ricevere:

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

Business Messages esegue l'hardcoded di intent_name e intent_display_name.

Campi specifici di Dialogflow

Dopo aver abilitato l'integrazione di Dialogflow, l'utente invia un messaggio all'agente. riceve includi il dialogflowResponse: . Il webhook riceve payload per tutti i messaggi degli utenti, indipendentemente se Business Messages ha risposto automaticamente o meno al messaggio sul tuo per conto tuo. Per verificare la presenza di una risposta automatica, controlla il valore del parametro autoResponded e deciderai se devi rispondere all'utente.

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 Descrizione
queryText Il testo della query conversazionale originale. Se l'ortografia automatica la correzione è abilitata per il modello Dialogflow, queryText contiene l'input utente corretto.
intentName L'identificatore univoco dell'intent abbinato.
intentDisplayName Il nome dell'intent corrispondente.
intentDetectionConfidence La valutazione di confidenza numerica nella corrispondenza tra queryText e intentName.
text Una risposta testuale.
jsonPayload Una risposta payload personalizzata. Questa stringa corrisponde alla stringa Payload definito in Dialogflow. Se il payload non ha un JSON Business Messages valido dell'oggetto, error descrive il problema.
error Descrizione di un errore con un messaggio di completamento di intent.
userQuestion La domanda posta dall'utente, analizzata da Dialogflow.
faqQuestion Una domanda di Dialogflow corrispondente alla domanda dell'utente.
faqAnswer Una risposta di Dialogflow corrispondente alla domanda dell'utente.
matchConfidenceLevel Il livello di affidabilità nella corrispondenza userQuestion e faqQuestion.
matchConfidence La valutazione di confidenza numerica nella corrispondenza tra userQuestion e faqQuestion.
autoResponded Se Business Messages ha risposto automaticamente o meno l'utente con una risposta da Dialogflow.
message Il payload della risposta automatica.
responseSource L'origine della risposta automatica. Consulta 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 Descrizione
queryText Il testo della query conversazionale originale. Se l'ortografia automatica la correzione è abilitata per il modello Dialogflow, queryText contiene l'input utente corretto.
intentName L'identificatore univoco dell'intent abbinato.
intentDisplayName Il nome dell'intent corrispondente.
intentDetectionConfidence La valutazione di confidenza numerica nella corrispondenza tra queryText e intentName.
text Una risposta testuale.
jsonPayload Una risposta payload personalizzata. Questa stringa corrisponde alla stringa Payload definito in Dialogflow. Se il payload non ha un JSON Business Messages valido dell'oggetto, error descrive il problema.
error Descrizione di un errore con un messaggio di completamento di intent.
liveAgentHandoff Metadati personalizzati per la procedura di trasferimento di un operatore.
autoResponded Se Business Messages ha risposto automaticamente o meno l'utente con una risposta da Dialogflow.
message Il payload della risposta automatica.
responseSource L'origine della risposta automatica. Consulta ResponseSource