Ajouter une automatisation avec Dialogflow

<ph type="x-smartling-placeholder"> <ph type="x-smartling-placeholder"> Dialogflow est un langage naturel un outil de compréhension du langage (NLU) qui traite les entrées utilisateur et les mappe à des intents et répond avec des réponses appropriées. Il existe deux éditions de Dialogflow. En intégrant votre agent Business Messages à Dialogflow ES, vous pouvez facilement créer une automatisation simple pour lancer rapidement le développement de vos agents. Par avec Dialogflow CX, vous pouvez créer une automatisation avancée pour plus des conversations complexes.

Les agents Business Messages permettent d'intégrer directement

Pour intégrer un agent Business Messages à d'autres fonctionnalités de Dialogflow ES ou Dialogflow CX, consultez la documentation de chaque produit.

Lorsqu'un utilisateur envoie un message à un agent qui dispose d'une intégration Dialogflow, Business Messages transmet le message de l'utilisateur à Dialogflow et envoie l'événement à l'agent dans le message objet dialogflowResponse. Vous pouvez configurer les agents envoyer automatiquement la réponse de Dialogflow à l'utilisateur, sans aucune action sur votre . Consultez la section Réponses automatiques. pour en savoir plus.

Intégration de Dialogflow

Avant de pouvoir exploiter l'automatisation basée sur Dialogflow via Business Messages, vous devez activer l'intégration Dialogflow.

Prérequis

Pour commencer, vous devez disposer des éléments suivants :

  • a Business Messages agent
  • Un agent Dialogflow situé dans la région Monde avec comme langue racine l'anglais (fr)

Si vous n'avez pas d'agent Dialogflow, créez-en un.

Dialogflow ES

Avant de pouvoir activer une intégration Dialogflow ES, vous devez disposer de ID de projet de l'agent Dialogflow. Pour trouver l'ID du projet,

  1. Accédez à la console Dialogflow.
  2. Sélectionnez l'agent Dialogflow que vous souhaitez connecter à Business Messages. puis cliquez sur l'icône en forme de roue dentée à côté du nom de l'agent.
  3. Sous Google Project (Projet Google), notez la valeur Project ID (ID du projet).

Dialogflow CX

Avant de pouvoir activer une intégration Dialogflow CX, vous devez disposer de ID de projet et ID d'agent Dialogflow. Pour localiser ces identifiants,

  1. Accédez à la console Dialogflow CX.
  2. Sélectionnez votre projet Dialogflow.
  3. Dans le sélecteur d'agents, cliquez sur le menu à développer. à côté de votre agent Dialogflow.
  4. Cliquez sur Copier le nom. Le nom complet de l'agent est copié dans le le format suivant: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
  5. Notez les valeurs de l'ID du projet et de l'ID de l'agent.

Créer l'intégration

  1. Obtenir l'adresse e-mail du compte de service Dialogflow du partenaire à partir de dialogflowServiceAccountEmail Remplacer PARTNER_ID par votre ID de partenaire.

    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. Copiez l'adresse e-mail du compte de service. Ce compte associe vos Business Messages et les agents Dialogflow.

  3. Dans la formation Google Cloud Console sélectionnez votre projet Dialogflow.

  4. Accédez à IAM autorisations.

  5. Cliquez sur Ajouter, puis saisissez l'adresse e-mail du compte de service pour les Nouveaux membres.

  6. Pour Sélectionner un rôle, sélectionnez Éditeur d'agent de la console Dialogflow.

  7. Cliquez sur Ajouter un autre rôle et sélectionnez Client de l'API Dialogflow.

  8. Cliquez sur Enregistrer.

  9. Intégrer votre projet Dialogflow à l'agent Business Messages

    Remplacez AUTO_RESPONSE_STATUS par ACTIVÉ ou DÉSACTIVÉ, selon indiquant si vous souhaitez que Business Messages réponde automatiquement avec des réponses 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)
    

    Pour connaître les options de mise en forme et de valeur, consultez Integration

La connexion à Business Messages et à Dialogflow prend environ deux minutes. À vérifier l'état de l'intégration, obtenir les OperationInfo

Mettre à jour l'intégration

Pour mettre à jour le paramètre de réponse automatique de votre agent, exécutez la commande suivante. Remplacez AUTO_RESPONSE_STATUS par ACTIVÉ ou DÉSACTIVÉ, selon que vous souhaitez que Business Messages soit automatiquement répondre aux utilisateurs avec des réponses 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
}'

Pour connaître les options de mise en forme et de valeur, consultez Integration

Changer d'édition Dialogflow

Un agent Business Messages ne peut prendre en charge qu'une seule intégration Dialogflow à la fois. Pour passer d'une édition Dialogflow à une autre, vous devez supprimer le l'intégration actuelle avant d'en créer une autre.

Supprimer l'intégration

Si vous devez supprimer Dialogflow de votre agent Business Messages, supprimez le à l'aide de la commande suivante.

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)

Pour connaître les options de mise en forme et de valeur, consultez Integration

Obtenir des informations sur l'intégration

Pour obtenir des informations sur une intégration, vous pouvez utiliser l'API Business Communications API, à condition que vous disposiez de la valeur name de l'intégration.

Obtenir des informations pour une seule intégration

Pour obtenir des informations sur l'intégration, exécutez la commande suivante.

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)

Pour connaître les options de mise en forme et de valeur, consultez Integration

Répertorier toutes les intégrations d'un agent

Si vous ne connaissez pas le nom de l'intégration, vous pouvez obtenir des informations intégrations associées à un agent en omettant le INTEGRATION_ID à partir d'une URL de requête 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)

Pour connaître les options de mise en forme et de valeur, consultez Integration

Correspondance d'intent

Une fois l'intégration Dialogflow activée pour un agent Business Messages, votre peut utiliser les intents configurés de votre projet Dialogflow pour comprendre et répondre aux questions des utilisateurs sans que vous ayez à écrire de code. Pour en savoir plus sur consultez la documentation de Dialogflow ES. et Dialogflow CX.

Configurez vos intents Dialogflow pour chaque option de conversation que vous souhaitez grâce à l'automatisation. Les agents Business Messages s'appuient sur Dialogflow pour à comprendre les messages des utilisateurs.

Lorsque vous appelez les API Dialogflow, Business Messages transmet le charge utile des messages utilisateur à vos intents et à votre webhook de fulfillment. Lorsqu'un message utilisateur correspond à une correspondance. avec un intent, vous pouvez accéder à cette charge utile au format Struct dans business_messages_payload dans QueryParameters.

La charge utile contient tous les champs du message de l'utilisateur, à l'exception de DialogflowResponse.

Pour Dialogflow CX, Business Messages transmet également un paramètre de session nommé channel avec la valeur google_business_messages à vos intents. Vous pouvez le référencer dans votre agent au format suivant: $session.params.channel.

Ce paramètre peut être utilisé pour ajouter des conditions à vos fulfillments Dialogflow afin d'accepter plusieurs canaux dans le même agent Dialogflow.

Pour en savoir plus sur les paramètres de requête, consultez les documentations de référence sur Dialogflow ES et Dialogflow CX.

Prérequis

Lors de la création de modèles NLU dans Dialogflow, vous pouvez configurer différents pour un intent. Business Messages est compatible avec la réponse par défaut, par exemple:

  • Texte
  • Charge utile personnalisée
  • Transfert d'un agent en direct (Dialogflow CX uniquement)

Une charge utile personnalisée doit correspondre à une réponse de message JSON Business Messages valide objet. Lorsque vous configurez des réponses avec charge utile personnalisée pour un intent, Business Messages ignore les champs suivants:

  • name
  • messageId
  • representative

Consultez les exemples de réponses suivants.

Texte avec suggestions

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

Carte enrichie

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

Transfert à un agent humain

{
  "metadata": {}
}

Bots sur les questions fréquentes

Après avoir activé une intégration Dialogflow ES pour un agent Business Messages, vous peuvent créer un chatbot pour les questions fréquentes. Lorsque vous fournissez des questions et des réponses sous forme un document de base pris en charge, Business Messages et Dialogflow créent l'infrastructure nécessaire pour comprendre les questions des utilisateurs et y répondre sans à écrire du code.

Pour voir à l'œuvre un bot FAQ, discutez avec les Questions fréquentes sur Business Messages Bot

Prérequis

Avant de créer un robot FAQ, vous devez disposer de vos questions et réponses Document de base de connaissances (50 Mo maximum): fichier HTML ou CSV accessible au public.

En général, les documents de base de connaissances

  • Peut inclure un Markdown limité dans les réponses, comme spécifié dans la section Enrichis texte.
  • La taille ne doit pas dépasser 50 Mo.
  • Ne doit pas dépasser 2 000 paires question/réponse.
  • Les questions en double dont les réponses sont différentes ne sont pas autorisées.

Pour les fichiers HTML,

  • Les fichiers provenant d'URL publiques doivent avoir été explorés par le plug-in d'indexation de recherche Google, de sorte qu'ils existent dans l'index de recherche. Pour le vérifier, utilisez le Search Console Notez que l'indexeur ne maintient pas votre contenu à jour. Vous devez indiquer explicitement mettre à jour votre document lorsque le contenu source change.
  • Dialogflow supprime les balises HTML du contenu lors de la création des réponses. En effet, il est préférable d'éviter les balises HTML et d'utiliser du texte brut lorsque cela est possible.
  • Les fichiers comportant une seule paire question/réponse ne sont pas acceptés.

Pour les fichiers CSV,

  • Les fichiers doivent comporter des questions dans la première colonne et des réponses dans la deuxième. sans en-tête.
  • Les fichiers doivent utiliser des virgules comme délimiteurs.

Créer un bot FAQ

Pour créer un bot FAQ, vous devez d'abord créer une base de connaissances dans laquelle stocker tous les des données du bot, puis ajoutez un ou plusieurs documents par paires question/réponse à votre de votre base de connaissances.

Créer une base de connaissances

Pour créer une base de connaissances, exécutez la commande suivante. Remplacer BRAND_ID, AGENT_ID et INTEGRATION_ID par les valeurs uniques de l'attribut name du document. Remplacer KNOWLEDGE_BASE_DISPLAY_NAME par la chaîne d'identification de votre de votre choix.

Après avoir créé une base de connaissances, vous pouvez créer des documents. qu'il contient.

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

Pour connaître les options de mise en forme et de valeur, consultez DialogflowKnowledgebase

Créer un document de base de connaissances

Pour créer un document de base de connaissances, exécutez la commande suivante.

Ajoutez le document à la liste des documents existants ou créez une liste si vous n'en avez aucun existe déjà. La liste des documents existants doit inclure le paramètre name du document dans la requête.

Fichier HTML public

Remplacez les variables suivantes :

  • BRAND_ID, AGENT_ID et INTEGRATION_ID par les valeurs uniques de l'attribut name de l'intégration
  • KNOWLEDGE_BASE_DISPLAY_NAME et DOCUMENT_DISPLAY_NAME avec identifier les chaînes de votre choix
  • PUBLIC_URL avec les connaissances URL publique du document

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

Fichier CSV local

Remplacez les variables suivantes :

  • BRAND_ID, AGENT_ID et INTEGRATION_ID par les valeurs uniques de l'attribut name de l'intégration
  • KNOWLEDGE_BASE_DISPLAY_NAME et DOCUMENT_DISPLAY_NAME avec identifier les chaînes de votre choix
  • CSV_RAW_BYTES par le fichier CSV en tant que chaîne encodée en 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__"
          }
        ]
      }
    ]
  }
}'

Pour connaître les options de mise en forme et de valeur, consultez DialogflowKnowledgebase

L'ajout d'un document à une base de connaissances prend environ deux minutes. Pour vérifier de l'état du document, récupérez les données OperationInfo

Supprimer un document de base de connaissances

Si vous devez supprimer des paires question/réponse de votre agent Business Messages, supprimez le document de base de connaissances qui les contient à l'aide de la commande suivante :

Exécutez la commande suivante pour supprimer un document existant. Remplacer BRAND_ID, AGENT_ID et INTEGRATION_ID par les valeurs uniques de l'attribut name du document. Remplacer KNOWLEDGE_BASE_DISPLAY_NAME par la chaîne appropriée.

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

Pour connaître les options de mise en forme et de valeur, consultez DialogflowKnowledgebase

Réponses automatiques

Si vous activez la réponse automatique pendant l'intégration de Dialogflow, Messages répond automatiquement à l'utilisateur via Dialogflow. Votre entreprise L'agent de Messages répond avec la correspondance du niveau de confiance le plus élevé. Avec un Intégration de Dialogflow ES, s'il existe des correspondances avec une réponse FAQ et une d'intention personnalisée, Business Messages répond avec la correspondance qui présente le niveau de confiance.

Business Messages marque tous les messages auxquels une réponse automatique a été envoyée comme provenant de BOT représentants. Si votre agent est compatible avec les agents actifs, Business Messages suspend les réponses automatiques après le REPRESENTATIVE_JOINED événements et réactive les réponses automatiques après REPRESENTATIVE_LEFT événements. Voir Handoff du bot à un agent réel.

Répondre automatiquement avec une FAQ

Avec une intégration Dialogflow ES, si une réponse à une FAQ est la plus fiable Business Messages associe la réponse à un SMS. S'il y a un une réponse connexe, mais différente, le message "Afficher une autre réponse" suggestion. Si ce n'est pas le cas, le message contient une question et une suggestion réponses demandant si le message a satisfait à la demande de l'utilisateur.

Répondre automatiquement avec une réponse d'intent

Les réponses d'intent peuvent inclure une ou plusieurs des réponses suivantes.

Si une réponse d'intent présente le niveau de confiance le plus élevé : s'applique.

  • Si la réponse comporte au moins une valeur textuelle, Business Messages mappe cette à un message.
  • Si la réponse comporte au moins une charge utile personnalisée avec une valeur Business valide Structure de l'objet JSON de Messages, Business Messages crée un message à l'aide de la méthode JSON fourni.
  • Si la réponse contient au moins une réponse de transfert d'un agent réel, consultez Répondre automatiquement par une demande d'agent

Comme Dialogflow peut inclure plusieurs réponses dans une seule correspondance d'intent, Business Messages envoie chaque SMS, charge utile personnalisée ou transfert d'agent dans un message distinct. Si un intent contient plusieurs messages mais que le format de certains d'entre eux est incorrect, Business Messages n'envoie que des messages en tant que réponses automatiques.

Répondre automatiquement par une demande d'agent

Dialogflow CX est compatible avec le transfert d'agent réel. de réponse. Cela signale que la conversation doit être transmise à un humain et vous permet de transmettre des métadonnées personnalisées procédure. Si une réponse d'intent présente le niveau de confiance le plus élevé et qu'elle inclut un transfert avec un agent, Business Messages envoie une événement demandé par un agent à votre webhook. Pour gérer cet événement, consultez Transmission du bot à un agent réel.

Répondre automatiquement avec un message de remplacement

Si Dialogflow n'obtient pas de correspondance avec un niveau de confiance élevé, Business Messages envoie une réponse de remplacement. Les remplacements sont gérés différemment dans Dialogflow ES et Dialogflow CX.

Dialogflow ES

Pour les bots de questions fréquentes, si aucune réponse ne correspond, Business Messages envoie un message de remplacement indiquant qu'il n'a pas trouvé de réponse.

Pour les intents configurés, en l'absence de correspondance avec une réponse d'intent, Messages envoie une réponse d'intent de remplacement. Vous pouvez utiliser le texte de remplacement fourni par Dialogflow ou configurer le avec du texte supplémentaire et des charges utiles personnalisées.

Voici un exemple de réponse d'intent de remplacement que votre webhook peut recevoir:

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

Dialogflow préremplit les champs intent_name et intent_display_name.

Dialogflow CX

Dialogflow CX gère les réponses d'intent de remplacement événements intégrés. En l'absence de correspondance avec une réponse d'intent, Business Messages envoie une message de remplacement de l'événement par défaut de non-correspondance dans Dialogflow. Vous pouvez utiliser le texte de remplacement fourni par Dialogflow ou configurer le remplacement. avec du texte supplémentaire, des charges utiles personnalisées et des options de transfert d'agent en direct.

Voici un exemple de réponse d'intent de remplacement le webhook peut recevoir les éléments suivants:

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

Business Messages code en dur intent_name et intent_display_name.

Champs spécifiques à Dialogflow

Une fois l'intégration Dialogflow activée, l'utilisateur envoie un message à l'agent. reçoit inclure les dialogflowResponse . Votre webhook reçoit les charges utiles de tous les messages des utilisateurs, quel que soit si Business Messages a répondu automatiquement au message sur votre au nom de l'utilisateur. Pour rechercher une réponse automatique, consultez la valeur du champ autoResponded et décidez si vous devez répondre à l'utilisateur.

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",
  }],
},
...
Champ Description
queryText Texte de la requête conversationnelle d'origine. Si l'orthographe automatique la correction est activée pour le modèle Dialogflow, queryText contenant l'entrée utilisateur corrigée.
intentName Identifiant unique de l'intent mis en correspondance.
intentDisplayName Nom de l'intent correspondant.
intentDetectionConfidence Cote de confiance numérique dans la correspondance entre queryText et intentName.
text Réponse textuelle.
jsonPayload Réponse avec charge utile personnalisée. Cette chaîne correspond à l'attribut définie dans Dialogflow. Si la charge utile n'a pas de fichier JSON Business Messages valide structure de l'objet, error décrit le problème.
error Description d'une erreur avec un message de traitement d'intent.
userQuestion Question posée par l'utilisateur, analysée par Dialogflow.
faqQuestion Une question de Dialogflow correspondant à celle de l'utilisateur.
faqAnswer Une réponse de Dialogflow correspondant à la question de l'utilisateur.
matchConfidenceLevel Le niveau de confiance dans la correspondance entre userQuestion et faqQuestion.
matchConfidence La cote de confiance numérique dans la correspondance entre userQuestion et faqQuestion.
autoResponded si Business Messages a répondu automatiquement ou non à à l'utilisateur avec une réponse de Dialogflow.
message Charge utile de la réponse automatique.
responseSource Source de la réponse automatique. Voir 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",
  }],
},
...
Champ Description
queryText Texte de la requête conversationnelle d'origine. Si l'orthographe automatique la correction est activée pour le modèle Dialogflow, queryText contenant l'entrée utilisateur corrigée.
intentName Identifiant unique de l'intent mis en correspondance.
intentDisplayName Nom de l'intent correspondant.
intentDetectionConfidence Cote de confiance numérique dans la correspondance entre queryText et intentName.
text Réponse textuelle.
jsonPayload Réponse avec charge utile personnalisée. Cette chaîne correspond à l'attribut définie dans Dialogflow. Si la charge utile n'a pas de fichier JSON Business Messages valide structure de l'objet, error décrit le problème.
error Description d'une erreur avec un message de traitement d'intent.
liveAgentHandoff Métadonnées personnalisées pour votre procédure de transfert d'agent en direct.
autoResponded si Business Messages a répondu automatiquement ou non à à l'utilisateur avec une réponse de Dialogflow.
message Charge utile de la réponse automatique.
responseSource Source de la réponse automatique. Voir ResponseSource