Memulai percakapan

Dalam percakapan dengan agen Business Messages, pesan selamat datang menetapkan nada untuk interaksi tersebut. Hal ini juga memungkinkan pengguna mengetahui apa yang dapat dilakukan agen, yang membentuk pertanyaan dan harapan pengguna.

Agen mengirim pesan selamat datang setiap kali pengguna membuka percakapan. Tujuan agen juga dapat menampilkan pembuka percakapan untuk memandu pengguna ke jalur yang telah diketahui atau sering digunakan.

Jika pengguna mencoba memulai percakapan di luar jam operasional agen, agen menampilkan pesan offline dapat digunakan untuk membagikan saluran alternatif atau menyarankan langkah selanjutnya. Dengan memanfaatkan setelan ini, Anda dapat meningkatkan keandalan dan kegunaan agen Anda.

Pembuka percakapan

Setelan tingkat agen dan lokasi

Anda dapat menentukan setelan percakapan di tingkat agen atau lokasi.

  • Tingkat agen: Setelan percakapan ini berlaku untuk semua percakapan dengan di semua titik entri.

    Pesan selamat datang tingkat agen mungkin dimulai dengan pesan "Terima kasih telah menghubungi Sepatu Lari Bridgepoint..." Pembuka percakapan dapat fokus pada tindakan atau informasi di seluruh perusahaan.

  • Tingkat lokasi: Setelan ini menggantikan setelan tingkat agen dan hanya berlaku untuk percakapan dengan lokasi tersebut selama PLACESHEET dan MAPS titik masuk.

    Pesan selamat datang tingkat lokasi mungkin berbunyi "Terima kasih telah menghubungi Bridgepoint Runner di Amphitheatre Pkwy..." Pembuka percakapan dapat memfokuskan berdasarkan tugas atau informasi berbasis lokasi. Pesan offline mungkin menyebutkan kapan lokasi akan dibuka kembali.

Lokalitas

Agen dan lokasi dapat menentukan setelan terpisah untuk lokalitas mana pun yang mereka gunakan dukungan teknis IT. Misalnya, agen dapat menetapkan pesan selamat datang dalam bahasa Inggris untuk "en" lokal dan memiliki pesan selamat datang yang sama dalam bahasa Spanyol untuk "es" lokalitas. Business Messages menyelesaikan kecocokan antara lokalitas yang dilaporkan perangkat pengguna dan lokalitas di mana agen atau lokasi memiliki setelan percakapan.

Kecocokan lokalitas ini dilaporkan dalam setiap pesan Kolom resolvedLocale. Anda dapat menentukan defaultLocale agen atau lokasi, yang bobotnya diselesaikan pencocokan lokalitas. Lihat Pelokalan dan lokalitas.

Business Messages menggunakan lokalitas yang di-resolve untuk menentukan jenis percakapan setelan yang akan diterapkan.

Pesan selamat datang

Pesan pertama dalam percakapan antara agen dan pengguna adalah pesan selamat datang. Pesan selamat datang akan otomatis muncul setelah pengguna memulai percakapan baru. Pesan selamat datang yang baik menetapkan ekspektasi pengguna untuk berinteraksi dengan agen. Untuk mengedit sambutan pesan, lihat Memperbarui setelan percakapan.

Pembuka percakapan

Pesan selamat datang yang baik mencakup fungsi agen di tingkat atas dan bersifat terbuka, pembuka percakapan yang bagus memandu pengguna ke pertanyaan yang sering diajukan atau {i>function<i} yang diketahui.

Pembuka percakapan muncul sebagai saran yang bertumpuk secara vertikal membalas dan langsung mengikuti pesan selamat datang. Saat pengguna mengetuk percakapan pemicu, agen menerima konten dan data postback yang telah ditentukan sebelumnya yang telah Anda setel saat menentukan pemicunya.

Jika agen mendukung fungsi otomatis untuk permintaan tertentu, pembuka percakapan mungkin memetakan ke permintaan tersebut, memungkinkan Anda mengandalkan otomatisasi dan mengirimkan pertanyaan pengguna berformat bebas ke agen langsung yang siap ke suatu jawaban tertentu.

Agen dapat memiliki maksimal 5 pembuka percakapan, dan setiap pemicu dapat memiliki maksimal 35 karakter.

Untuk menambahkan atau mengedit pembuka percakapan, lihat Memperbarui percakapan setelan.

Pesan Offline

Saat pengguna memulai percakapan dengan agen di luar operasi agen jam (sebagaimana ditentukan oleh MessagingAvailability), pengguna menerima pesan offline agen. Hanya perwakilan manusia ketersediaan dipertimbangkan saat memicu pesan offline. Agen yang hanya meminta perwakilan bot untuk selalu mengirimkan pesan selamat datang. Pesan offline yang bagus

  • Membagikan alasan agen tidak tersedia
  • Menginstruksikan pengguna tentang langkah selanjutnya yang tepat atau saluran kontak alternatif
  • Menyesuaikan gaya bahasa pesan selamat datang dan pembuka percakapan

Pesan offline buruk

"Maaf, kami tutup".

Pesan offline yang bagus

"Saat ini kami tutup, tetapi akan buka kembali besok pukul 8 pagi. Jika Anda memerlukan bantuan mendesak, hubungi Dukungan di +12223334444 atau support@gtb.com."

Untuk mengedit pesan offline, lihat Memperbarui setelan percakapan.

Memperbarui setelan percakapan

Untuk mengelola pesan selamat datang atau pembuka percakapan, buat permintaan PATCH dengan kursus Business Communications API untuk memperbarui kolom conversationalSettings agen atau lokasi.

Saat memperbarui kolom conversationalSettings, Anda harus menyertakan nilai untuk semua {i>field<i} pada ConversationalSetting . Permintaan pembaruan akan menimpa konten semua kolom yang Anda edit, termasuk setiap {i>field<i} turunan. Misalnya, jika Anda membuat permintaan untuk mengubah pesan selamat datang tetapi tidak menyertakan pembuka percakapan, permintaan akan menghapus percakapan pembuka percakapan.

Prasyarat

Sebelum memperbarui setelan percakapan, Anda memerlukan item berikut:

  • Jalur ke kunci akun layanan project GCP Anda di mesin pengembangan
  • Lokalitas yang setelannya ingin Anda perbarui
  • Untuk setelan tingkat agen, agen name (misalnya, "brands/12345/agents/67890")

    Jika Anda tidak mengetahui name agen, lihat Mencantumkan semua agen untuk brand.

  • Untuk setelan tingkat lokasi, lokasi name (misalnya, "brands/12345/locations/67890")

    Jika Anda tidak mengetahui name lokasi, lihat Buat daftar semua lokasi untuk brand.

  • Lokalitas yang akan diperbarui, sebagai bahasa dua karakter ISO 639-1 kode

  • Pesan selamat datang baru

  • URL kebijakan privasi

  • (Opsional) Teks untuk pembuka percakapan

  • (Opsional) Data postback untuk pembuka percakapan

  • (Opsional) Pesan offline baru

Jika Anda tidak mengetahui nilai conversationalSettings saat ini, lihat Mendapatkan agen informasi dan Dapatkan lokasi Anda.

Mengirim permintaan pembaruan

Untuk memperbarui agen atau lokasi, jalankan perintah berikut. Ganti variabel dengan nilai yang Anda identifikasi di Prasyarat.

Jika Anda tidak menginginkan pembuka percakapan, hapus conversationStarters dan semua bidang turunan.

Setelan tingkat agen

cURL

# This code updates the conversational settings of a Business Messages agent.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/patch

# Replace the __BRAND_ID__, __AGENT_ID__ and __LOCALE__
# 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__?updateMask=businessMessagesAgent.conversationalSettings.__LOCALE__" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "businessMessagesAgent": {
    "conversationalSettings": {
      "__LOCALE__": {
        "welcomeMessage": {
          "text": "My first welcome message"
        },
        "offlineMessage": {
          "text": "My first offline message"
        },
        "privacyPolicy": {
          "url": "https://www.your-company-website.com/privacy"
        },
        "conversationStarters": [
          {
            "suggestion": {
              "reply": {
                "text": "Suggestion 1",
                "postbackData": "post_back_suggestion_1"
              }
            }
          }
        ]
      }
    }
  }
}'

Node.js

/**
 * This code snippet updates the conversationalSettings of a Business Messages agent.
 * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/patch
 *
 * 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 LOCALE = 'en';
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 agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID;

  if (authClient) {
    // Setup the parameters for the API call
    const apiParams = {
      auth: authClient,
      name: agentName,
      updateMask: 'businessMessagesAgent.conversationalSettings.' + LOCALE,
      resource: {
        businessMessagesAgent: {
          conversationalSettings: {
            [LOCALE]: {
              privacyPolicy: { url: 'https://www.your-company-website.com/privacy' },
              welcomeMessage: { text: 'My updated welcome message' },
              offlineMessage: { text: 'My updated offline message' },
              conversationStarters: [
                {
                  suggestion: {
                    reply: {
                      'text': 'Suggestion 2',
                     'postbackData': 'post_back_suggestion_2',
                    },
                  },
                }
              ],
            },
          }
        }
      }
    };

    bcApi.brands.agents.patch(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();

Java

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.businesscommunications.v1.BusinessCommunications;
import com.google.api.services.businesscommunications.v1.model.*;
import com.google.common.collect.ImmutableMap;
import java.io.FileInputStream;
import java.util.Arrays;

class Main {
  /**
   * Initializes credentials used by the Business Communications API.
   */
  private static BusinessCommunications.Builder getBusinessCommunicationsBuilder() {
    BusinessCommunications.Builder builder = null;
    try {
      GoogleCredential credential = GoogleCredential
            .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY"));

      credential = credential.createScoped(Arrays.asList(
          "https://www.googleapis.com/auth/businesscommunications"));

      credential.refreshToken();

      HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
      JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();

      // Create instance of the Business Communications API
      builder = new BusinessCommunications
          .Builder(httpTransport, jsonFactory, null)
          .setApplicationName(credential.getServiceAccountProjectId());

      // Set the API credentials and endpoint
      builder.setHttpRequestInitializer(credential);
    } catch (Exception e) {
      e.printStackTrace();
    }

    return builder;
  }

  public static void main(String args[]) {
    try {
      // Create client library reference
      BusinessCommunications.Builder builder = getBusinessCommunicationsBuilder();

      String agentName = "brands/BRAND_ID/agents/AGENT_ID";

      Agent agent = new Agent().setBusinessMessagesAgent(
          new BusinessMessagesAgent().setConversationalSettings(ImmutableMap.of("LOCALE",
              new ConversationalSetting()
                  .setPrivacyPolicy(new PrivacyPolicy().setUrl("PRIVACY_POLICY_URL"))
                  .setWelcomeMessage(new WelcomeMessage().setText("WELCOME_MESSAGE"))
                  .setOfflineMessage(new OfflineMessage().setText("OFFLINE_MESSAGE"))
                  .setConversationStarters(Arrays.asList(
                      new ConversationStarters().setSuggestion(new Suggestion()
                          .setReply(new SuggestedReply()
                              .setText("REPLY_TEXT")
                              .setPostbackData("POSTBACK_DATA"))),
                      )))));

      BusinessCommunications.Brands.Agents.Patch request = builder
          .build().brands().agents().patch(agentName, agent);

      request.setUpdateMask("businessMessagesAgent.conversationalSettings.LOCALE");

      Agent updatedAgent = request.execute();
      System.out.println(updatedAgent.toPrettyString());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
Kode ini didasarkan pada Java Business Library klien komunikasi.

Python

"""This code updates the conversational settings of a Business Messages agent.

Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/patch

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,
    BusinessMessagesAgent,
    ConversationStarters,
    ConversationalSetting,
    OfflineMessage,
    PrivacyPolicy,
    WelcomeMessage,
    NegativeBotFeedbackMessage,
    BusinesscommunicationsBrandsAgentsPatchRequest,
)

# 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)

agents_service = BusinesscommunicationsV1.BrandsAgentsService(client)

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

agent=Agent(
                businessMessagesAgent=BusinessMessagesAgent(
                        conversationalSettings=BusinessMessagesAgent.ConversationalSettingsValue(
                        additionalProperties=[BusinessMessagesAgent.ConversationalSettingsValue.AdditionalProperty(
                            key='en',
                            value=ConversationalSetting(
                                privacyPolicy=PrivacyPolicy(url='https://www.your-company-website.com/privacy'),
                                welcomeMessage=WelcomeMessage(text='Welcome to Business Messages'),
                            offlineMessage=OfflineMessage(text='This is an offline message'),
                                conversationStarters=[
                                    ConversationStarters(
                                        suggestion=Suggestion(
                                           reply=SuggestedReply(text='Option 1',
                                  postbackData='option_1')
                                        )
                                    )]
                                )
                            )
                        ]
                    )
                )
)

updated_agent = agents_service.Patch(
        BusinesscommunicationsBrandsAgentsPatchRequest(
            agent=agent,
            name=agent_name,
            updateMask='businessMessagesAgent.conversationalSettings.en'
        )
    )

print(updated_agent)

Setelan tingkat lokasi

# This code updates the agent interaction of a bot and human representatives.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/patch

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

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/locations/__LOCATION_ID__?updateMask=conversationalSettings.__LOCALE__" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "conversationalSettings": {
    "__LOCALE__": {
      "welcomeMessage": {
        "text": "My second welcome message"
      },
      "offlineMessage": {
        "text": "My second offline message"
      },
      "privacyPolicy": {
        "url": "https://www.your-company-website.com/privacy"
      },
      "conversationStarters": [
        {
          "suggestion": {
            "reply": {
              "text": "Suggestion 2",
              "postbackData": "post_back_suggestion_2"
            }
          }
        }
      ]
    }
  }
}'

Untuk informasi format dan nilai, lihat brands.agents.patch, brands.locations.patch, dan ConversationalSetting.

Contoh

Setelan tingkat agen

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/BRAND_ID/agents/AGENT_ID?updateMask=businessMessagesAgent.conversationalSettings.en" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \
-d "{
    'businessMessagesAgent': {
        'conversationalSettings': {
            'en': {
                'welcomeMessage': {
                    'text': 'Thanks for contacting Growing Tree Bank. What can I help with today?',
                },
                'offlineMessage': {
                    'text': 'We\'re closed for the night. Please reach out to us again tomorrow.',
                },
                'privacyPolicy': {
                    'url': 'https://www.growingtreebank.com/privacy',
                },
                'conversationStarters': [
                    {
                        'suggestion': {
                            'reply': {
                                'text': 'Set up an account',
                                'postbackData': 'new-account',
                            },
                        },
                    },
                    {
                        'suggestion': {
                            'reply': {
                                'text': 'Look up account information',
                                'postbackData': 'account-lookup',
                            },
                        },
                    },
                ],
            },
        },
    },
}"

Setelan tingkat lokasi

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/12345/locations/67890?updateMask=conversationalSettings.en" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json /path/to/service/account/key businesscommunications)" \
-d "{
    'conversationalSettings': {
        'en': {
            'welcomeMessage': {
                'text': 'Thanks for contacting Growing Tree Bank on Amphitheatre Pkwy. What can I help with today?',
            },
            'offlineMessage': {
                'text': 'We\'re closed for the night. Please reach out to us again tomorrow.',
            },
            'privacyPolicy': {
                'url': 'https://www.growingtreebank.com/privacy',
            },
            'conversationStarters': [
                {
                    'suggestion': {
                        'reply': {
                            'text': 'What are your hours?',
                            'postbackData': 'hours',
                        },
                    },
                },
                {
                    'suggestion': {
                        'reply': {
                            'text': 'Set up an account',
                            'postbackData': 'new-account',
                        },
                    },
                },
                {
                    'suggestion': {
                        'reply': {
                            'text': 'Look up account information',
                            'postbackData': 'account-lookup',
                        },
                    },
                },
                {
                    'suggestion': {
                        'action': {
                            'text': 'Call us',
                            'postbackData': 'call',
                            'dialAction': {
                              'phoneNumber': '+12223334444',
                            },
                        },
                    },
                },
            ],
        },
    },
}"