Dialogflow ile otomasyon ekleme

ziyaret edin. ziyaret edin. Dialogflow, kullanıcı girişini işleyen ve bilinen kullanıcı verileriyle eşleştiren dil anlama (NLU) aracı belirler ve uygun cevaplarla cevap verir. İki sürüm vardır hoş geldiniz. Business Messages temsilcinizi Dialogflow ES ile entegre ederek aracı geliştirme sürecinizi hızlı bir şekilde başlatmak için kolayca basit otomasyon oluşturabilirsiniz. Ölçüt entegre ettiğinizde, daha fazlası için gelişmiş otomasyon oluşturabilirsiniz. müzakere tekniklerini konuşacağız.

Business Messages temsilcileri

Bir Business Messages temsilcisini Dialogflow'un diğer özellikleriyle entegre etmek için ES veya Dialogflow CX her ürünün belgelerine bakın.

Bir kullanıcı Dialogflow entegrasyonu olan bir temsilciye mesaj gönderdiğinde Business Messages, kullanıcı mesajını Dialogflow'a iletir ve Dialogflow'un e-postada müşteri temsilcisine dialogflowResponse nesnesini tanımlayın. Aracıları şu şekilde yapılandırabilirsiniz: Dialogflow'un yanıtını, bölümü. Otomatik yanıtlar başlıklı makaleyi inceleyin. inceleyebilirsiniz.

Dialogflow entegrasyonu

Business Messages aracılığıyla Dialogflow tabanlı otomasyondan yararlanabilmek için Dialogflow entegrasyonunu etkinleştirmeniz gerekir.

Ön koşullar

Başlamak için gerekenler

  • Business Messages temsilci
  • Global bölgesinde bulunan ve kök dili İngilizce olan bir Dialogflow aracısı (tr)

Dialogflow aracınız yoksa bir tane oluşturun.

Dialogflow ES

Dialogflow ES entegrasyonunu etkinleştirebilmeniz için öncelikle Dialogflow aracısının proje kimliği. Proje kimliğini bulmak için

  1. Dialogflow Console'a gidin.
  2. Business Messages'a bağlamak istediğiniz Dialogflow temsilcisini seçin, ardından dişli simgesini . işaretini tıklayın.
  3. Google Projesi bölümünde Proje Kimliği değerini not edin.

Dialogflow CX

Dialogflow CX entegrasyonunu etkinleştirebilmeniz için öncelikle Dialogflow aracısının proje kimliği ve aracı kimliği. Bu kimlikleri bulmak için:

  1. Dialogflow CX Console'a gidin.
  2. Dialogflow projenizi seçin.
  3. Temsilci seçicide, taşma menüsünü tıklayın. . işaretini tıklayın.
  4. Adı kopyala'yı tıklayın. Bu işlem, temsilcinizin tam adını şu biçimdedir: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
  5. Proje kimliği ve aracı kimliği değerlerini not edin.

Entegrasyonu oluşturma

  1. İş ortağının Dialogflow hizmet hesabı e-postasını şuradan alın: dialogflowServiceAccountEmail Değiştir İş ortağı kimliğinizle 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. Hizmet hesabı e-postasını kopyalayın. Bu hesap, Business Messages'ınızı bağlar ve Dialogflow aracılarını içerir.

  3. Google Cloud'da Konsol Dialogflow projenizi seçin.

  4. IAM'ye gidin izinleriyle ilgili daha fazla bilgi edinin.

  5. Ekle'yi tıklayın ve Yeni üyeler için hizmet hesabı e-posta adresini girin.

  6. Rol seçin bölümünde Dialogflow Console Aracı Düzenleyici'yi seçin.

  7. Başka bir rol ekle'yi tıklayın ve Dialogflow API İstemcisi'ni seçin.

  8. Kaydet'i tıklayın.

  9. Dialogflow projenizi Business Messages temsilcinize entegre edin.

    AUTO_RESPONSE_STATUS değerini, şuna bağlı olarak ETKİN veya DEVRE DIŞI olarak değiştirin: Business Messages'ın otomatik olarak yanıt vermesini isteyip istemediğinize bağlı olarak Dialogflow yanıtları olan kullanıcılarla iletişime geçebilirsiniz.

    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)
    

    Biçimlendirme ve değer seçenekleri için bkz. Integration.

Business Messages ve Dialogflow'u bağlamak yaklaşık iki dakika sürer. Alıcı: entegrasyonun durumunu kontrol edebilir, entegrasyonun OperationInfo.

Entegrasyonu güncelleme

Aracınızın otomatik yanıt ayarını güncellemek için aşağıdaki komutu çalıştırın. AUTO_RESPONSE_STATUS değerini ETKİN veya Business Messages'ın otomatik olarak çalışmasını isteyip istemediğinize bağlı olarak DEVRE DIŞI BIRAKILDI kullanıcılara Dialogflow yanıtlarıyla yanıt verin.

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

Biçimlendirme ve değer seçenekleri için bkz. Integration.

Dialogflow sürümleri arasında geçiş yapma

Bir Business Messages temsilcisi, aynı anda yalnızca bir Dialogflow entegrasyonunu destekleyebilir. Bir Dialogflow sürümünden diğerine geçiş yapmak için yeni entegrasyonu oluşturmadan önce mevcut entegrasyonu inceleyin.

Entegrasyonu sil

Dialogflow'u Business Messages temsilcinizden kaldırmanız gerekirse aşağıdaki komutla entegre edebilirsiniz.

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)

Biçimlendirme ve değer seçenekleri için bkz. Integration.

Entegrasyon bilgilerini alma

Bir entegrasyon hakkında bilgi almak için Business Communications'ı kullanabilirsiniz. API'den yararlanabilirsiniz. Ancak, entegrasyonun name değerine sahip olmanız gerekir.

Tek bir entegrasyon hakkında bilgi alma

Entegrasyon bilgilerini almak için aşağıdaki komutu çalıştırın.

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)

Biçimlendirme ve değer seçenekleri için bkz. Integration.

Bir temsilci için tüm entegrasyonları listeleme

Entegrasyonun adını bilmiyorsanız tüm INTEGRATION_ID atlanarak bir temsilciyle ilişkili entegrasyonlar bir GET isteği URL'sindeki değer.

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)

Biçimlendirme ve değer seçenekleri için bkz. Integration.

Intent eşleşme

Bir Business Messages temsilcisi için Dialogflow entegrasyonunu etkinleştirdikten sonra aracısı, Dialogflow projenizin yapılandırılmış amaçlarını kullanarak kullanıcı sorularına kod yazmanıza gerek kalmadan yanıt vermenizi sağlar. Şu konu hakkında daha fazla bilgi edinmek için: Dialogflow ES belgelerine bakın. ve Dialogflow CX.

Yapmayı düşündüğünüz her görüşme seçeneği için Dialogflow niyetlerinizi yapılandırın otomasyonla destekleyebilirsiniz. Business Messages temsilcileri, şu işlemler için Dialogflow'u kullanır: daha iyi anlamanızı sağlar.

Dialogflow API'lerini çağırırken Business Messages, kullanıcı mesajı yükü amaçlarınıza ve karşılama webhook'unuza ulaşın. Bir kullanıcı mesajı eşleştiğinde bu yüke Struct biçiminde business_messages_payload alanı (QueryParameters içinde).

Yük, kullanıcı mesajındaki DialogflowResponse hariç tüm alanları içerir.

Dialogflow CX'te Business Messages, amaçlarınıza google_business_messages değerine sahip channel adlı bir oturum parametresi de iletir. Temsilcinizde bu parametreye şu biçimde referans verebilirsiniz: $session.params.channel.

Bu parametre, aynı Dialogflow aracısında birden fazla kanalı desteklemek amacıyla Dialogflow karşılamalarınıza koşullar eklemek için kullanılabilir.

Sorgu parametreleri hakkında daha fazla bilgi için Dialogflow ES ve Dialogflow CX referanslarına bakın.

Ön koşullar

Dialogflow'da NLU modelleri oluştururken farklı yanıt türlerini inceleyeceğiz. Business Messages, varsayılan yanıtı destekler. Bunlar aşağıdakileri içerebilir:

  • Metin
  • Özel yük
  • Canlı aracı aktarma (yalnızca Dialogflow CX)

Özel yük, geçerli bir Business Messages JSON mesaj yanıtıyla eşleşmelidir. nesne. Bir amaca yönelik özel yük yanıtlarını yapılandırırken Business Messages şu alanları yoksayar:

  • name
  • messageId
  • representative

Aşağıdaki örnek yanıtlara bakın.

Öneri içeren metin

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

Zengin kart

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

Canlı müşteri temsilcisi aktarımı

{
  "metadata": {}
}

SSS bot'ları

Business Messages temsilcisi için Dialogflow ES entegrasyonunu etkinleştirdikten sonra SSS bot'u oluşturabilir. Soruları ve yanıtları Business Messages ve Dialogflow, desteklenen bir bilgi dokümanını kullanıcı sorularını anlamak ve yanıtlamak için gereken altyapıyı kod yazmanız gerekir.

SSS bot'unu iş başında görmek için Business Messages ile ilgili SSS Bot.

Ön koşullar

SSS bot'u oluşturmadan önce sorularınızı ve yanıtlarınızı bir bilgi belgesi (maks. 50 MB): herkese açık bir HTML dosyası veya CSV dosyası.

Genellikle bilgi belgeleri,

HTML dosyaları için

  • Herkese açık URL'lerdeki dosyaların Google arama dizinleyicisi tarafından taranmış olması gerekir. Böylece, bu öğeler arama dizininde yer alır. Bunu Google Search Console. Dizine ekleme aracının içeriğinizi güncel tutmadığını unutmayın. Açık bir şekilde kaynak içerik değiştiğinde dokümanınızı güncelleyebilirsiniz.
  • Dialogflow yanıt oluştururken içerikten HTML etiketlerini kaldırır. Çünkü nedeniyle HTML etiketlerinden kaçınmak ve mümkün olduğunda düz metin kullanmak en iyisidir.
  • Tek soru/yanıt çifti içeren dosyalar desteklenmez.

CSV dosyaları için

  • Dosyaların ilk sütununda sorular, ikinci sütunda yanıtlar olmalıdır. olabilir.
  • Dosyalar ayırıcı olarak virgül kullanmalıdır.

SSS bot'u oluşturma

SSS bot'u oluşturmak için öncelikle tüm ekledikten sonra, hesabınıza soru/cevap çiftleri içeren bir veya daha fazla doküman oluşturmaktır.

Bilgi tabanı oluşturma

Bilgi tabanı oluşturmak için aşağıdaki komutu çalıştırın. Değiştir BRAND_ID, AGENT_ID ve INTEGRATION_ID dokümanın name etiketindeki benzersiz değerlerle kullanın. Değiştir tanımlayıcı dizesine sahip KNOWLEDGE_BASE_DISPLAY_NAME seçim.

Bilgi bankası oluşturduktan sonra doküman oluşturabilirsiniz bir bilgidir.

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

Biçimlendirme ve değer seçenekleri için bkz. DialogflowKnowledgebase.

Bilgi belgesi oluşturma

Bilgi dokümanı oluşturmak için aşağıdaki komutu çalıştırın.

Dokümanı mevcut dokümanlar listesine ekleyin veya yoksa yeni bir liste oluşturun henüz mevcut. Mevcut belgeler listesinde belgenin name bilgileri bulunmalıdır değeri olabilir.

Herkese açık HTML dosyası

Aşağıdaki değişkenleri değiştirin:

  • BRAND_ID, AGENT_ID ve INTEGRATION_ID entegrasyonun name etiketinden alınan benzersiz değerlerle
  • KNOWLEDGE_BASE_DISPLAY_NAME ve Şununla DOCUMENT_DISPLAY_NAME: seçtiğiniz dizeleri tanımlama
  • Bilgi sahibi PUBLIC_URL dokümanın herkese açık URL'si

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

Yerel CSV dosyası

Aşağıdaki değişkenleri değiştirin:

  • BRAND_ID, AGENT_ID ve INTEGRATION_ID entegrasyonun name etiketinden alınan benzersiz değerlerle
  • KNOWLEDGE_BASE_DISPLAY_NAME ve Şununla DOCUMENT_DISPLAY_NAME: seçtiğiniz dizeleri tanımlama
  • CSV ile CSV_RAW_BYTES base64 kodlu dize olarak dosya

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

Biçimlendirme ve değer seçenekleri için bkz. DialogflowKnowledgebase.

Bir dokümanın bilgi tabanına eklenmesi yaklaşık iki dakika sürer. Kontrol etmek için entegrasyonun durumunu kontrol edin. OperationInfo.

Bilgi dokümanını silme

Soru/cevap çiftlerini Business Messages temsilcinizden kaldırmanız gerekiyorsa aşağıdaki komutla kendisini içeren bilgi dokümanını silin.

Mevcut tek bir dokümanı silmek için aşağıdaki komutu çalıştırın. Değiştir BRAND_ID, AGENT_ID ve INTEGRATION_ID dokümanın name etiketindeki benzersiz değerlerle kullanın. Değiştir KNOWLEDGE_BASE_DISPLAY_NAME değerini uygun dizeyle değiştirin.

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

Biçimlendirme ve değer seçenekleri için bkz. DialogflowKnowledgebase.

Otomatik yanıtlar

Dialogflow entegrasyonu sırasında otomatik yanıtı etkinleştirirseniz Business, Mesajlar, Dialogflow aracılığıyla kullanıcıya otomatik olarak yanıt verir. İşletmeniz Mesajlar aracısı, en yüksek güven düzeyi eşleşmesiyle yanıt verir. Şununla Dialogflow ES entegrasyonu (hem bir SSS yanıtı hem de özel amaç doğrultusunda, Business Messages en yüksek olan eşleşmeyle yanıt verir. güven seviyesi.

Business Messages, otomatik olarak yanıtlanan tüm mesajları BOT adlı gönderenden geliyor olarak işaretler temsil eder. Temsilciniz canlı aracıları destekliyorsa Business Messages, REPRESENTATIVE_JOINED sonra otomatik yanıtları askıya alacak etkinlikler ve REPRESENTATIVE_LEFT etkinlikten sonra otomatik yanıtları devam ettirir. Bkz. Handoff yardımcı olur.

SSS yanıtıyla otomatik yanıt ver

Dialogflow ES entegrasyonu ile bir SSS yanıtı en yüksek güven düzeyine sahipse Business Messages, yanıtı bir kısa mesajla eşleştirir. Bir ilgili ancak farklı bir yanıt varsa mesajda "Başka bir yanıt görüntüleyin" yanıt" öneririz. Değilse iletide bir soru ve önerilen bilgiler bulunur. mesajın, kullanıcının isteğini karşılayıp karşılamadığını soran yanıtlar.

Niyet yanıtıyla otomatik yanıt ver

Amaç yanıtları, aşağıdaki yanıtlardan bir veya daha fazlasını içerebilir.

Amaç yanıtı en yüksek güven düzeyi eşleşmesine sahipse aşağıdakiler geçerli olur.

  • Yanıtta en az bir metin değeri varsa Business Messages bunu eşler. kısa mesaja dönüştürebilirsiniz.
  • Yanıtta geçerli bir İşletme içeren en az bir özel yük varsa Messages JSON nesne yapısı, Business Messages şunu kullanarak bir mesaj oluşturur: sağlayan JSON nesnesidir.
  • Yanıtta en az bir Canlı temsilci aktarma yanıtı varsa Canlı temsilci isteğiyle otomatik yanıt verin.

Dialogflow tek bir amaç eşleşmesinde birden fazla yanıt içerebildiğinden Business Messages, her kısa mesaj, özel yük veya canlı temsilci aktarımını gönderir ayrı bir ileti olarak gönderebilirsiniz. Bir amaçta birden fazla mesaj varsa ancak bazıları hatalı biçimlendirilmiş. Business Messages yalnızca otomatik yanıt olarak kaydeder.

Canlı temsilci isteğiyle otomatik yanıt verme

Dialogflow CX Canlı aracı aktarımını destekler tıklayın. Görüşmenin bir insana devredilmesi gerektiğini gösteriyor sağlar ve erişiminiz için özel meta veriler gerekir. Amaç yanıtı en yüksek güven düzeyi eşleşmesine sahipse ve bir canlı müşteri temsilcisi devir işlemi içerirken Business Messages, canlı müşteri temsilcisi tarafından istenen etkinlik bağlayın. Bu etkinliği işlemek için bkz. Bot'tan canlı temsilciye aktarım.

Yedek mesajla otomatik yanıt ver

Dialogflow yüksek bir güven düzeyi eşleşmesi elde edemezse Business Messages, oluşturabilirsiniz. Yedekler, Dialogflow ES'de farklı şekilde işlenir ve Dialogflow CX'e gidin.

Dialogflow ES

SSS bot'ları için bir SSS yanıtıyla eşleşme yoksa Business Messages, yanıt bulamadığını belirten bir yedek ileti.

Yapılandırılmış amaçlar için bir amaç yanıtıyla eşleşme yoksa Business Mesajlar, yedek intent yanıtı gönderir. Dialogflow tarafından sağlanan yedek metni kullanabilir veya ek metin ve özel yük içeren bir yedek oluşturun.

Webhook'unuzun düzenlediği yedek intent yanıtı örneğini şunları alabilir:

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

Dialogflow, intent_name ve intent_display_name alanlarını önceden doldurur.

Dialogflow CX

Dialogflow CX, yedek intent yanıtlarını şu şekilde işler: yerleşik etkinlikler. Amaç yanıtıyla eşleşme yoksa Business Messages, bir Dialogflow'daki "Eşleşme yok" varsayılan etkinliğinden yedek mesaj Şunları yapabilirsiniz: Dialogflow tarafından sağlanan yedek metni kullanın veya Ayrıca ek metin, özel yük ve canlı aracı aktarım seçenekleriyle

Aşağıda, webhook aşağıdaki bilgileri alabilir:

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

Business Messages'ın intent_name ve intent_display_name sabit kodları.

Dialogflow'a özel alanlar

Dialogflow entegrasyonunu etkinleştirdikten sonra kullanıcı, temsilciye mesaj gönderir. alır şunları içerir: dialogflowResponse nesnesini tanımlayın. Webhook'unuz, aşağıdakilerden bağımsız olarak tüm kullanıcı mesajları için yük alır Business Messages'ın hesabınızdaki mesaja otomatik olarak yanıt verip vermediği anlamına gelir. Otomatik yanıt olup olmadığını kontrol etmek için autoResponded alanına girin ve kullanıcıya yanıt vermeniz gerekip gerekmediğine karar verin.

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",
  }],
},
...
Alan Açıklama
queryText Orijinal konuşma sorgu metni. Otomatik yazım ise queryText Dialogflow modeli için düzeltme etkinleştirildi düzeltilmiş kullanıcı girişini içerir.
intentName Eşleşen amacın benzersiz tanımlayıcısı.
intentDisplayName Eşleşen amacın adı.
intentDetectionConfidence Eşleşmedeki sayısal güven derecesi queryText ile intentName arasında.
text Mesaj yanıtı.
jsonPayload Özel bir yük yanıtı. Bu dize, özel yük değerini temel alır. Yükte geçerli bir Business Messages JSON dosyası yoksa error sorunu tanımlıyor.
error Niyet yerine getirme mesajındaki bir hatanın açıklaması.
userQuestion Kullanıcının sorduğu soru (Dialogflow tarafından ayrıştırılır).
faqQuestion Dialogflow'daki bir soru, kullanıcının sorusuyla eşleşti.
faqAnswer Dialogflow'dan kullanıcının sorusuyla eşleşen bir yanıt.
matchConfidenceLevel İkisi arasındaki eşleşmenin güven seviyesi userQuestion ve faqQuestion.
matchConfidence Eşleşmenin sayısal güven derecesi userQuestion ve faqQuestion.
autoResponded Business Messages'ın otomatik olarak yanıtlanıp yanıtlanmadığı Dialogflow'dan bir yanıt gelene kadar.
message Otomatik yanıtın yükü.
responseSource Otomatik yanıtın kaynağı. Görüntüleyin 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",
  }],
},
...
Alan Açıklama
queryText Orijinal konuşma sorgu metni. Otomatik yazım ise queryText Dialogflow modeli için düzeltme etkinleştirildi düzeltilmiş kullanıcı girişini içerir.
intentName Eşleşen amacın benzersiz tanımlayıcısı.
intentDisplayName Eşleşen amacın adı.
intentDetectionConfidence Eşleşmedeki sayısal güven derecesi queryText ile intentName arasında.
text Mesaj yanıtı.
jsonPayload Özel bir yük yanıtı. Bu dize, özel yük değerini temel alır. Yükte geçerli bir Business Messages JSON dosyası yoksa error sorunu tanımlıyor.
error Niyet yerine getirme mesajındaki bir hatanın açıklaması.
liveAgentHandoff Canlı temsilci aktarma prosedürünüz için özel meta veriler.
autoResponded Business Messages'ın otomatik olarak yanıtlanıp yanıtlanmadığı Dialogflow'dan bir yanıt gelene kadar.
message Otomatik yanıtın yükü.
responseSource Otomatik yanıtın kaynağı. Görüntüleyin ResponseSource.