Automatisierung mit Dialogflow hinzufügen

<ph type="x-smartling-placeholder"> <ph type="x-smartling-placeholder"> Dialogflow ist ein natürlicher Sprachverständnistool (NLU), das Nutzereingaben verarbeitet und bekannten Intents auf und antwortet mit entsprechenden Antworten. Es gibt zwei Versionen von Dialogflow. Durch die Einbindung Ihres Business Messages-Agents in Dialogflow ES können Sie mit einfachen Automatisierungen die Entwicklung Ihres Agents beschleunigen. Von Integration in Dialogflow CX ermöglicht es Ihnen, erweiterte Automatisierungen für noch mehr und komplexe Gespräche.

Business Messages-Agents unterstützen direkte Integrationen mit

So integrieren Sie einen Business Messages-Agent in andere Dialogflow-Funktionen: ES oder Dialogflow CX in der Dokumentation der einzelnen Produkte.

Wenn ein Nutzer eine Nachricht an einen Agent mit einer Dialogflow-Integration sendet, Business Messages übergibt die Nutzernachricht an Dialogflow und sendet die Antwort an den Agent im Feld dialogflowResponse-Objekt. Sie können Agents so konfigurieren, die Antwort von Dialogflow automatisch an den Nutzer senden, ohne dass Weitere Informationen finden Sie unter Automatische Antworten. .

Dialogflow-Einbindung

Bevor Sie die Dialogflow-basierte Automatisierung über Business Messages nutzen können, müssen Sie die Dialogflow-Integration aktivieren.

Vorbereitung

Für den Einstieg benötigen Sie

  • Business Messages Kundenservicemitarbeiter
  • einen Dialogflow-Agent in der Region Global mit einer englischen Sprache (de)

Wenn Sie keinen Dialogflow-Agent haben, erstellen Sie einen.

Dialogflow ES

Bevor Sie eine Dialogflow ES-Integration aktivieren können, benötigen Sie Projekt-ID des Dialogflow-Agents. Um die Projekt-ID zu finden,

  1. Rufen Sie die Dialogflow-Konsole auf.
  2. Wählen Sie den Dialogflow-Agent aus, den Sie mit Business Messages verbinden möchten. und klicken Sie dann auf das Zahnradsymbol neben dem Agent-Namen.
  3. Notieren Sie sich unter Google-Projekt den Wert für die Projekt-ID.

Dialogflow CX

Bevor Sie eine Dialogflow CX-Integration aktivieren können, benötigen Sie Ihr Projekt-ID und Agent-ID des Dialogflow-Agents. Um diese IDs zu finden,

  1. Rufen Sie die Dialogflow CX-Konsole auf.
  2. Wählen Sie Ihr Dialogflow-Projekt aus.
  3. Klicken Sie in der Agent-Auswahl auf das Dreipunkt-Menü neben Ihrem Dialogflow-Agent.
  4. Klicken Sie auf Namen kopieren. Dadurch wird der vollständige Name des Agents in das Feld folgendes Format: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
  5. Notieren Sie sich die Werte der Projekt-ID und der Agent-ID.

Integration erstellen

  1. Rufen Sie die E-Mail-Adresse des Dialogflow-Dienstkontos des Partners ab von dialogflowServiceAccountEmail Ersetzen PARTNER_ID durch Ihre Partner-ID.

    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. Kopieren Sie die E-Mail-Adresse des Dienstkontos. Mit diesem Konto wird Ihre Business Messages verknüpft und Dialogflow-Agents.

  3. In der Google Cloud Console, wählen Sie Ihr Dialogflow-Projekt aus.

  4. Rufen Sie IAM auf. Berechtigungen

  5. Klicken Sie auf Hinzufügen und geben Sie für Neue Mitglieder die E-Mail-Adresse des Dienstkontos ein.

  6. Wählen Sie unter Rolle auswählen die Rolle Agent-Bearbeiter in Dialogflow-Konsole aus.

  7. Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie Dialogflow API-Client aus.

  8. Klicken Sie auf Speichern.

  9. Dialogflow-Projekt in den Business Messages-Agent einbinden

    Ersetzen Sie AUTO_RESPONSE_STATUS durch AKTIVIERT oder DEAKTIVIERT, je nach ob Business Messages automatisch auf Nachrichten Nutzer mit Dialogflow-Antworten.

    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)
    

    Informationen zu Formatierungs- und Wertoptionen finden Sie unter Integration

Es dauert etwa zwei Minuten, eine Verbindung zwischen Business Messages und Dialogflow herzustellen. Bis den Status der Integration prüfen, den Status der Integration abrufen OperationInfo

Integration aktualisieren

Führen Sie den folgenden Befehl aus, um die Einstellung für automatische Antworten Ihres Agents zu aktualisieren. Ersetzen Sie AUTO_RESPONSE_STATUS durch AKTIVIERT oder DEAKTIVIERT, je nachdem, ob Business Messages automatisch Nutzern mit Dialogflow-Antworten antworten.

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
}'

Informationen zu Formatierungs- und Wertoptionen finden Sie unter Integration

Zwischen Dialogflow-Versionen wechseln

Ein Business Messages-Agent kann jeweils nur eine Dialogflow-Integration unterstützen. Wenn Sie von einer Dialogflow-Version zu einer anderen wechseln möchten, müssen Sie die aktuelle Integration, bevor Sie die neue erstellen.

Integration löschen

Wenn Sie Dialogflow aus Ihrem Business Messages-Agent entfernen müssen, löschen Sie die mit dem folgenden Befehl.

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)

Informationen zu Formatierungs- und Wertoptionen finden Sie unter Integration

Integrationsinformationen abrufen

Informationen zu einer Integration erhalten Sie über die Funktion „Geschäftskommunikation“ API verwenden, sofern du den name-Wert der Integration hast.

Informationen zu einer einzelnen Integration abrufen

Führen Sie den folgenden Befehl aus, um Integrationsinformationen abzurufen.

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)

Informationen zu Formatierungs- und Wertoptionen finden Sie unter Integration

Alle Integrationen für einen Agent auflisten

Wenn Sie den Namen der Integration nicht kennen, können Sie Informationen zu allen Integrationen, die mit einem Agent verknüpft sind, indem INTEGRATION_ID weggelassen wird -Wert aus einer GET-Anfrage-URL.

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)

Informationen zu Formatierungs- und Wertoptionen finden Sie unter Integration

Intent-Zuordnung

Nachdem Sie die Dialogflow-Integration für einen Business Messages-Agent aktiviert haben, kann der Agent mithilfe der konfigurierten Intents Ihres Dialogflow-Projekts verstehen und Fragen von Nutzenden beantworten, ohne Code schreiben zu müssen. Weitere Informationen über Intents finden Sie in der Dokumentation zu Dialogflow ES. und Dialogflow CX.

Dialogflow-Intents für jede gewünschte Konversationsoption konfigurieren durch Automatisierung. Business Messages-Agents nutzen Dialogflow, um Nutzerbotschaften zu verstehen.

Beim Aufrufen der Dialogflow APIs übergibt Business Messages die Nutzlast der Nutzernachricht Intents und Webhook zur Auftragsausführung hinzufügen. Wenn eine Nutzernachricht übereinstimmt mit einem Intent haben, können Sie auf diese Nutzlast im Struct-Format im Feld business_messages_payload innerhalb von QueryParameters.

Die Nutzlast enthält alle Felder aus der Nutzernachricht mit Ausnahme von DialogflowResponse.

Bei Dialogflow CX gibt Business Messages außerdem einen Sitzungsparameter namens channel mit dem Wert google_business_messages an Ihre Intents weiter, den Sie in Ihrem Agent im folgenden Format referenzieren können: $session.params.channel.

Mit diesem Parameter können Sie Ihren Dialogflow-Auftragsausführungen Bedingungen hinzufügen, um mehrere Kanäle im selben Dialogflow-Agent zu unterstützen.

Weitere Informationen zu Abfrageparametern finden Sie in den Referenzen zu Dialogflow ES und Dialogflow CX.

Vorbereitung

Beim Erstellen von NLU-Modellen in Dialogflow können Sie verschiedene Antworttypen für einen Intent. Business Messages unterstützt die Standardantwort, Dieser kann Folgendes umfassen:

  • Text
  • Benutzerdefinierte Nutzlast
  • Übergabe an Kundenservicemitarbeiter (nur Dialogflow CX)

Eine benutzerdefinierte Nutzlast muss mit einer gültigen JSON-Nachrichtenantwort für Business Messages übereinstimmen Objekt. Wenn Sie benutzerdefinierte Nutzlastantworten für einen Intent konfigurieren, ignoriert die folgenden Felder:

  • name
  • messageId
  • representative

Sehen Sie sich die folgenden Beispielantworten an.

Text mit Vorschlägen

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

Interaktive Chat-Nachricht

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

Übergabe an Kundenservicemitarbeiter

{
  "metadata": {}
}

FAQ-Bots

Nachdem Sie eine Dialogflow ES-Integration für einen Business Messages-Agent aktiviert haben, einen FAQ-Bot erstellen. Wenn Sie Fragen und Antworten einem unterstützten Wissensdokument erstellen, erstellen Business Messages und Dialogflow die die notwendig ist, um Fragen von Nutzenden zu verstehen und zu beantworten, Sie müssen Code schreiben.

Wenn Sie einen FAQ-Bot in Aktion sehen möchten, chatten Sie mit den FAQs zu Business Messages Bot

Vorbereitung

Bevor Sie einen FAQ-Bot erstellen, müssen Ihre Fragen und Antworten als ein Wissensdokument (max. 50 MB): eine öffentlich verfügbare HTML- oder CSV-Datei.

Im Allgemeinen

  • Kann eingeschränkte Markdown-Elemente in Antworten einfügen, wie in Rich Text.
  • Sie dürfen maximal 50 MB groß sein.
  • Sollte nicht mehr als 2.000 Frage/Antwort-Paare umfassen.
  • Doppelte Fragen mit unterschiedlichen Antworten sollten nicht unterstützt werden.

Bei HTML-Dateien:

  • Dateien aus öffentlichen URLs müssen vom Google-Suchindex gecrawlt worden sein, sodass sie im Suchindex erscheinen. Sie können dies mit der Google Search Console. Beachten Sie, dass Ihre Inhalte durch die Indexierung nicht aktuell bleiben. Sie müssen explizit Ihr Dokument aktualisieren, wenn sich der Quellinhalt ändert.
  • Dialogflow entfernt HTML-Tags beim Erstellen von Antworten aus dem Inhalt. Weil sollten Sie HTML-Tags vermeiden und nach Möglichkeit nur Text verwenden.
  • Dateien mit nur einem Frage-Antwort-Paar werden nicht unterstützt.

Bei CSV-Dateien

  • Die Dateien müssen Fragen in der ersten Spalte und Antworten in der zweiten Spalte enthalten. ohne Kopfzeile.
  • In den Dateien müssen Kommas als Trennzeichen verwendet werden.

FAQ-Bot erstellen

Um einen FAQ-Bot zu erstellen, erstellen Sie zuerst eine Wissensdatenbank, in der alle Bot-Daten gespeichert. Fügen Sie dann ein oder mehrere Dokumente mit Frage/Antwort-Paaren hinzu. Wissensdatenbank.

Knowledge Base erstellen

Führen Sie den folgenden Befehl aus, um eine Wissensdatenbank zu erstellen. Ersetzen BRAND_ID, AGENT_ID und INTEGRATION_ID durch die eindeutigen Werte aus der name des Dokuments. Ersetzen KNOWLEDGE_BASE_DISPLAY_NAME durch einen eindeutigen String Ihrer eine große Auswahl.

Nachdem Sie eine Wissensdatenbank erstellt haben, können Sie Dokumente erstellen. darin enthalten sind.

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

Informationen zu Formatierungs- und Wertoptionen finden Sie unter DialogflowKnowledgebase

Wissensdokument erstellen

Führen Sie den folgenden Befehl aus, um ein Wissensdokument zu erstellen.

Fügen Sie das Dokument der Liste der vorhandenen Dokumente hinzu oder erstellen Sie eine neue Liste, falls keine vorhanden ist. existiert noch. Eine Liste der vorhandenen Dokumente sollte die name des Dokuments enthalten. -Wert in der Anfrage.

Öffentliche HTML-Datei

Ersetzen Sie die folgenden Variablen:

  • BRAND_ID, AGENT_ID und INTEGRATION_ID durch die eindeutigen Werte aus der name der Integration
  • KNOWLEDGE_BASE_DISPLAY_NAME und DOCUMENT_DISPLAY_NAME mit Zeichenfolgen Ihrer Wahl identifizieren
  • PUBLIC_URL mit dem Wissen Öffentliche URL des Dokuments

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

Lokale CSV-Datei

Ersetzen Sie die folgenden Variablen:

  • BRAND_ID, AGENT_ID und INTEGRATION_ID durch die eindeutigen Werte aus der name der Integration
  • KNOWLEDGE_BASE_DISPLAY_NAME und DOCUMENT_DISPLAY_NAME mit Zeichenfolgen Ihrer Wahl identifizieren
  • CSV_RAW_BYTES mit der CSV-Datei als base64-codierten String

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

Informationen zu Formatierungs- und Wertoptionen finden Sie unter DialogflowKnowledgebase

Es dauert etwa zwei Minuten, ein Dokument zu einer Wissensdatenbank hinzuzufügen. Um die Status des Dokuments, die Integration OperationInfo

Wissensdokument löschen

Wenn Sie Frage/Antwort-Paare aus Ihrem Business Messages-Agent entfernen möchten, gehen Sie so vor: Löschen Sie mit dem folgenden Befehl das Wissensdokument, in dem sie enthalten sind.

Führen Sie den folgenden Befehl aus, um ein einzelnes vorhandenes Dokument zu löschen. Ersetzen BRAND_ID, AGENT_ID und INTEGRATION_ID durch die eindeutigen Werte aus der name des Dokuments. Ersetzen KNOWLEDGE_BASE_DISPLAY_NAME durch den entsprechenden String.

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

Informationen zu Formatierungs- und Wertoptionen finden Sie unter DialogflowKnowledgebase

Automatische Antworten

Wenn Sie während der Dialogflow-Einbindung automatische Antworten aktivieren, Messages antwortet dem Nutzer automatisch über Dialogflow. Ihr Unternehmen Der Messages-Agent antwortet mit der höchsten Übereinstimmung. Mit einem Dialogflow ES-Integration, wenn Übereinstimmungen sowohl mit einer FAQ-Antwort als auch mit einer benutzerdefinierten Intents, antwortet Business Messages mit der Übereinstimmung mit der höchsten des Konfidenzniveaus.

In Business Messages werden alle automatisch beantworteten Nachrichten mit „BOT“ als Absender gekennzeichnet Bevollmächtigten. Wenn Ihr Agent Live-Agents unterstützt, Business Messages deaktiviert automatische Antworten nach dem REPRESENTATIVE_JOINED Ereignisse und setzt die automatischen Antworten nach REPRESENTATIVE_LEFT Ereignissen fort. Siehe Handoff vom Bot zum Kundenservicemitarbeiter.

Automatische Antwort mit einer FAQ-Antwort

Wenn eine FAQ-Antwort bei einer Dialogflow ES-Integration die höchste Zuverlässigkeit hat verknüpft, ordnet Business Messages die Antwort einer SMS zu. Wenn es eine ähnliche, aber abweichende Antwort verfügbar ist, wird eine weitere Antwort“ Vorschlag. Andernfalls enthält die Nachricht eine Frage und einen Vorschlag antwortet darauf, ob die Nachricht der Anfrage des Nutzers entsprochen hat.

Mit Intent-Antwort automatisch antworten

Intent-Antworten können eine oder mehrere der folgenden Antworten enthalten.

Wenn eine Intent-Antwort die höchste Übereinstimmung mit dem Konfidenzniveau hat, gilt Folgendes: gilt.

  • Wenn die Antwort mindestens einen Textwert hat, ordnet Business Messages diesen Wert zu in eine Textnachricht.
  • Wenn die Antwort mindestens eine benutzerdefinierte Nutzlast mit einer gültigen Business- Messages JSON-Objektstruktur erstellt, erstellt Business Messages eine Nachricht mithilfe der bereitgestelltes JSON-Objekt.
  • Wenn die Antwort mindestens eine Übergabeantwort eines Kundenservicemitarbeiters hat, lesen Sie den Abschnitt Automatische Antwort mit einer Live-Agent-Anfrage.

Da Dialogflow mehrere Antworten innerhalb einer Intent-Übereinstimmung einbeziehen kann, Business Messages sendet jede Nachricht, benutzerdefinierte Nutzlast oder Übergabe an einen Kundenservicemitarbeiter als separate Nachricht. Wenn in einem Intent mehrere Nachrichten vorhanden sind aber einige fehlerhaft sind, sendet Business Messages nur gültige Nachrichten als automatische Antworten.

Automatisch mit einer Anfrage an einen Kundenservicemitarbeiter antworten

Dialogflow CX unterstützt die Live-Übergabe an Kundenservicemitarbeiter Antwort. Es signalisiert, dass das Gespräch an einen Menschen übergeben werden sollte und ermöglicht es Ihnen, benutzerdefinierte Metadaten für die Übergabe Verfahren. Wenn eine Intent-Antwort die höchste Übereinstimmung mit dem Konfidenzniveau hat und eine Übergabe an einen Kundenservicemitarbeiter enthält, sendet Business Messages eine Termin durch einen Kundenservicemitarbeiter angefragt mit Ihrem Webhook. Informationen zum Verarbeiten dieses Ereignisses finden Sie unter Übergabe vom Bot an den Kundenservicemitarbeiter

Automatische Antwort mit Fallback-Nachricht

Wenn Dialogflow keine Übereinstimmung mit hoher Zuverlässigkeit erzielt, sendet Business Messages eine Fallback-Antwort. Fallbacks werden in Dialogflow ES anders behandelt und Dialogflow CX

Dialogflow ES

Wenn es bei FAQ-Bots keine Übereinstimmung mit einer FAQ-Antwort gibt, sendet Business Messages Es wird eine Fallback-Meldung angezeigt, dass keine Antwort gefunden wurde.

Wenn es bei konfigurierten Intents keine Übereinstimmung mit einer Intent-Antwort gibt, Messages sendet eine Fallback-Intent-Antwort. Sie können den von Dialogflow bereitgestellten Fallback-Text verwenden oder die Methode Fallback mit zusätzlichem Text und benutzerdefinierten Nutzlasten.

Hier ist ein Beispiel für eine Fallback-Intent-Antwort, die Ihr Webhook kann Folgendes empfangen:

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

Dialogflow füllt intent_name und intent_display_name vorab aus.

Dialogflow CX

Dialogflow CX verarbeitet Fallback-Intent-Antworten so integrierte Ereignisse verwenden. Wenn es keine Übereinstimmung mit einer Intent-Antwort gibt, sendet Business Messages eine Fallback-Nachricht aus dem Standardereignis "Keine Übereinstimmung" in Dialogflow. Sie können Verwenden Sie den von Dialogflow bereitgestellten Fallback-Text oder konfigurieren Sie das Fallback mit zusätzlichem Text, benutzerdefinierten Nutzlasten und Optionen für die Übergabe an einen Kundenservicemitarbeiter.

Hier ist ein Beispiel für eine Fallback-Intent-Antwort, Webhook kann Folgendes empfangen:

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

intent_name und intent_display_name werden in Business Messages hartcodiert.

Dialogflow-spezifische Felder

Nachdem Sie die Dialogflow-Integration aktiviert haben, sendet der Nutzer eine Nachricht an den Agent erhält einschließlich der dialogflowResponse -Objekt enthält. Ihr Webhook empfängt Nutzlasten für alle Nutzernachrichten, unabhängig von ob Business Messages automatisch auf die Nachricht auf Ihrem Um zu überprüfen, ob eine automatische Antwort vorliegt, schauen Sie sich den Wert der autoResponded und entscheiden, ob Sie dem Nutzer antworten müssen.

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",
  }],
},
...
Feld Beschreibung
queryText Der ursprüngliche dialogorientierte Abfragetext. Wenn automatische Rechtschreibung Die Korrektur ist für das Dialogflow-Modell queryText aktiviert enthält die korrigierte Nutzereingabe.
intentName Die eindeutige Kennung des zugeordneten Intents.
intentDisplayName Der Name des zugeordneten Intents.
intentDetectionConfidence Die numerische Konfidenzbewertung für die Übereinstimmung zwischen queryText und intentName.
text Eine Textantwort.
jsonPayload Eine benutzerdefinierte Nutzlastantwort. Dieser String stimmt mit der benutzerdefinierten der in Dialogflow definierten Nutzlast. Wenn die Nutzlast keine gültige JSON-Datei für Business Messages hat Objektstruktur, error beschreibt das Problem.
error Die Beschreibung eines Fehlers mit einer Nachricht zur Intent-Auftragsausführung.
userQuestion Die vom Nutzer gestellte Frage, wie von Dialogflow geparst.
faqQuestion Eine Frage von Dialogflow, die der Frage des Nutzers zugeordnet wurde.
faqAnswer Eine Antwort von Dialogflow, die der Frage des Nutzers zugeordnet wurde.
matchConfidenceLevel Das Vertrauen in die Übereinstimmung zwischen userQuestion und faqQuestion.
matchConfidence Die numerische Konfidenzbewertung in der Übereinstimmung zwischen userQuestion und faqQuestion.
autoResponded Ob auf Business Messages automatisch geantwortet wurde mit einer Antwort von Dialogflow.
message Die Nutzlast der automatischen Antwort.
responseSource Die Quelle der automatischen Antwort. Weitere Informationen finden Sie unter 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",
  }],
},
...
Feld Beschreibung
queryText Der ursprüngliche dialogorientierte Abfragetext. Wenn automatische Rechtschreibung Die Korrektur ist für das Dialogflow-Modell queryText aktiviert enthält die korrigierte Nutzereingabe.
intentName Die eindeutige Kennung des zugeordneten Intents.
intentDisplayName Der Name des zugeordneten Intents.
intentDetectionConfidence Die numerische Konfidenzbewertung für die Übereinstimmung zwischen queryText und intentName.
text Eine Textantwort.
jsonPayload Eine benutzerdefinierte Nutzlastantwort. Dieser String stimmt mit der benutzerdefinierten der in Dialogflow definierten Nutzlast. Wenn die Nutzlast keine gültige JSON-Datei für Business Messages hat Objektstruktur, error beschreibt das Problem.
error Die Beschreibung eines Fehlers mit einer Nachricht zur Intent-Auftragsausführung.
liveAgentHandoff Benutzerdefinierte Metadaten für die Übergabeprozedur des Live-Kundenservicemitarbeiters.
autoResponded Ob auf Business Messages automatisch geantwortet wurde mit einer Antwort von Dialogflow.
message Die Nutzlast der automatischen Antwort.
responseSource Die Quelle der automatischen Antwort. Weitere Informationen finden Sie unter ResponseSource