Dalam percakapan dengan agen Business Messages, pesan selamat datang menetapkan nada untuk interaksi tersebut. Hal ini juga memberi tahu pengguna apa yang dapat dilakukan agen, yang membentuk pertanyaan dan ekspektasi pengguna.
Agen mengirim pesan selamat datang setiap kali pengguna membuka percakapan. Agen juga dapat menampilkan pembuka percakapan untuk memandu pengguna ke jalur yang diketahui atau sering dilakukan.
Jika pengguna mencoba memulai percakapan di luar jam buka agen, agen akan menampilkan pesan offline yang dapat Anda gunakan untuk membagikan saluran alternatif atau menyarankan langkah berikutnya. Dengan memanfaatkan setelan ini, Anda dapat meningkatkan keandalan dan kegunaan agen Anda.
Setelan tingkat agen dan lokasi
Anda dapat menentukan setelan percakapan di tingkat agen atau lokasi.
Level agen: Setelan percakapan ini berlaku untuk semua percakapan dengan agen di semua titik entri.
Pesan selamat datang tingkat agen mungkin memulai "Terima kasih telah menghubungi Bridgepoint Runners..." Pembuka percakapan dapat berfokus pada tindakan atau informasi di seluruh perusahaan.
Tingkat lokasi: Setelan ini menggantikan setelan tingkat agen dan hanya berlaku untuk percakapan dengan lokasi tersebut melalui titik entri
PLACESHEET
danMAPS
.Pesan selamat datang tingkat lokasi mungkin dimulai dengan "Terima kasih telah menghubungi Bridgepoint Runners di Amphitheatre Pkwy..." Pembuka percakapan dapat berfokus pada tugas atau informasi berbasis lokasi. Pesan offline mungkin menyebutkan kapan lokasi akan dibuka lagi.
Lokal
Agen dan lokasi dapat menentukan setelan terpisah untuk lokalitas mana pun yang mereka dukung. Misalnya, agen dapat menentukan pesan selamat datang dalam bahasa Inggris untuk lokalitas "en" dan memiliki pesan selamat datang yang sama dalam bahasa Spanyol untuk lokalitas "es". Business Messages menyelesaikan kecocokan antara lokalitas yang dilaporkan pada perangkat pengguna dan lokalitas yang setelan percakapannya dimiliki agen atau lokasi.
Kecocokan lokalitas ini dilaporkan di kolom resolvedLocale
setiap pesan. Anda
dapat menentukan defaultLocale
agen atau lokasi, yang memiliki bobot menyelesaikan
pencocokan lokal. Lihat Pelokalan dan
lokalitas.
Business Messages menggunakan lokalitas yang di-resolve untuk menentukan setelan percakapan yang akan diterapkan.
Pesan selamat datang
Pesan pertama dalam percakapan antara agen dan pengguna adalah pesan selamat datang agen. 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 pesan selamat datang, lihat Memperbarui setelan percakapan.
Pembuka percakapan
Meskipun pesan selamat datang yang baik mencakup fungsi agen secara umum dan bersifat terbuka, pembuka percakapan yang baik akan memandu pengguna untuk mengajukan pertanyaan yang sering diajukan atau fungsi yang diketahui.
Pembuka percakapan ditampilkan sebagai balasan yang disarankan yang disusun secara vertikal dan langsung muncul setelah pesan selamat datang. Saat pengguna mengetuk pemicu percakapan, agen akan menerima konten yang telah ditetapkan dan data postback yang Anda tetapkan saat Anda menentukan pemicu tersebut.
Jika agen mendukung fungsi otomatis untuk permintaan tertentu, pembuka percakapan dapat dipetakan ke permintaan tersebut, sehingga Anda dapat mengandalkan input yang diketahui untuk otomatisasi dan mengirim pertanyaan pengguna berformat bebas ke agen langsung yang siap dijawab.
Agen dapat memiliki maksimum 5 pembuka percakapan, dan setiap pemicu dapat memiliki maksimum 35 karakter.
Untuk menambahkan atau mengedit pembuka percakapan, lihat Memperbarui setelan percakapan.
Pesan Offline
Saat pengguna memulai percakapan dengan agen di luar jam buka
agen (seperti yang ditentukan oleh
MessagingAvailability
),
pengguna akan menerima pesan offline agen tersebut. Hanya ketersediaan perwakilan manusia yang dipertimbangkan saat memicu pesan offline. Agen yang hanya memiliki perwakilan bot selalu mengirim pesan selamat datang. Pesan offline yang baik
- Memberitahukan alasan agen tidak tersedia
- Menginstruksikan pengguna tentang langkah berikutnya atau saluran kontak alternatif yang sesuai
- Sesuaikan nada pesan selamat datang dan pembuka percakapan
Pesan offline yang buruk
"Maaf, kami tutup."
Pesan offline yang baik
"Sekarang kami sudah tutup, tapi kembali hadir besok pukul 08.00. 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 Business Communications
API
untuk memperbarui kolom conversationalSettings
lokasi atau agen.
Saat memperbarui kolom conversationalSettings
, Anda harus menyertakan nilai untuk semua kolom dalam objek ConversationalSetting
. Permintaan update akan menimpa konten semua kolom yang Anda edit, termasuk kolom turunan. Misalnya, jika Anda membuat permintaan untuk mengubah pesan selamat datang,
tetapi tidak menyertakan pembuka percakapan, permintaan tersebut akan menghapus
pembuka percakapan sebelumnya.
Prasyarat
Sebelum memperbarui setelan percakapan, Anda memerlukan item berikut:
- Jalur ke kunci akun layanan project GCP di mesin pengembangan Anda
- Lokalitas yang setelannya ingin Anda perbarui
Untuk setelan tingkat agen, agen
name
(misalnya, "brands/12345/agents/67890")Jika Anda tidak mengetahui
name
agen, lihat Menampilkan daftar semua agen untuk sebuah merek.Untuk setelan tingkat lokasi, lokasi
name
(misalnya, "brand/12345/locations/67890")Jika Anda tidak mengetahui
name
lokasi, lihat Menampilkan daftar semua lokasi untuk merek.Lokalitas yang akan diupdate, sebagai kode bahasa ISO 639-1 dua karakter
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 informasi
agen
dan Mendapatkan informasi
lokasi.
Mengirim permintaan pembaruan
Untuk memperbarui agen atau lokasi, jalankan perintah berikut. Ganti variabel dengan nilai yang Anda identifikasi dalam Prasyarat.
Jika Anda tidak ingin memulai percakapan, hapus conversationStarters
dan semua
kolom turunannya.
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 library klien Java Business Communications.
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 mengetahui 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', }, }, }, }, ], }, }, }"