W rozmowach z agentami Business Messages wiadomość powitalna określa ton rozmowy. Dzięki temu użytkownicy wiedzą, co może robić agent, co kształtuje pytania i oczekiwania użytkownika.
Agent wysyła wiadomość powitalną za każdym razem, gdy użytkownik otwiera wątek. Agent może też wyświetlać początki rozmowy, by prowadzić użytkowników przez znane i często używane ścieżki.
Jeśli użytkownik spróbuje rozpocząć rozmowę poza godzinami pracy agenta, agent wyświetli wiadomość offline, która umożliwia udostępnienie alternatywnych kanałów lub sugerowanie dalszych kroków. Korzystając z tych ustawień, możesz zwiększyć niezawodność i użyteczność agenta.
Ustawienia na poziomie agenta i lokalizacji
Ustawienia rozmów możesz określić na poziomie agenta lub lokalizacji.
Poziom agenta: te ustawienia rozmowy mają zastosowanie do wszystkich rozmów z agentem we wszystkich punktach wejścia.
Może pojawić się komunikat powitalny na poziomie agenta: „Dziękujemy za skontaktowanie się z biegaczami mostów...”. Punkty początkowe do rozmowy mogą skupiać się na ogólnych działaniach lub informacjach w całej firmie.
Na poziomie lokalizacji: te ustawienia zastępują ustawienia na poziomie agenta i mają zastosowanie tylko do rozmów z tą lokalizacją w punktach wejścia
PLACESHEET
iMAPS
.Może pojawić się komunikat powitalny na poziomie lokalizacji: „Dziękujemy za kontakt Bridgepoint Runners przy Amphitheatre Pkwy...”. Początki rozmów mogą dotyczyć zadań i informacji związanych z lokalizacją. W wiadomości offline może pojawić się informacja o tym, kiedy lokalizacja będzie ponownie otwarta.
Języki
Agenty i lokalizacje mogą określać osobne ustawienia dla obsługiwanych języków. Na przykład agent może określić wiadomość powitalną w języku angielskim w języku „en”, a w języku „es” – w języku hiszpańskim. Business Messages rozwiązuje problemy z językiem raportowanym na urządzeniu użytkownika a językami, dla których agent lub lokalizacja mają ustawione ustawienia rozmów.
To dopasowanie języka jest odnotowywane w polu resolvedLocale
każdej wiadomości. Możesz podać wartość defaultLocale
agenta lub lokalizacji, która określa wagę dopasowania języka. Więcej informacji znajdziesz w sekcji Lokalizacja i języki.
Business Messages używa docelowego języka, aby określić, które ustawienia rozmów mają zostać zastosowane.
Wiadomość powitalna
Pierwsza wiadomość w rozmowie między agentem a użytkownikiem to wiadomość powitalna agenta. Wiadomość powitalna pojawia się automatycznie po rozpoczęciu nowej rozmowy przez użytkownika. Dobra wiadomość powitalna określa, czego użytkownik może się spodziewać w związku z obsługą agenta. Aby edytować wiadomość powitalną, zobacz Aktualizowanie ustawień rozmowy.
Początki rozmów
Dobra wiadomość powitalna obejmuje ogólne funkcje agenta i jest dobrym punktem wyjścia do rozmowy, która przybliża użytkowników do częstych pytań i informacji o znanych funkcjach.
Przykłady wstępu do rozmowy pojawiają się jako sugerowane odpowiedzi w pionie i pojawiają się bezpośrednio po wiadomości powitalnej. Gdy użytkownik kliknie inicjację rozmowy, agent otrzyma wstępnie zdefiniowaną treść i dane wywołania zwrotnego ustawione przez Ciebie jako inicjator.
Jeśli w przypadku określonych żądań agent obsługuje zautomatyzowane funkcje, polecenia inicjujące rozmowy mogą być zmapowane na te żądania, co pozwoli Ci polegać na znanych danych wejściowych do automatyzacji i wysyłać swobodne pytania użytkowników do prawdziwych pracowników obsługi klienta.
Agent może mieć maksymalnie 5 początków rozmowy, a każde z nich może mieć do 35 znaków.
Aby dodać lub edytować początki rozmowy, zobacz Aktualizowanie ustawień rozmów.
Wiadomości offline
Gdy użytkownik rozpocznie rozmowę z agentem poza jego godzinami pracy (zgodnie z definicją w MessagingAvailability
), otrzyma wiadomość offline od agenta. Podczas aktywowania wiadomości offline brana jest pod uwagę tylko dostępność przedstawiciela. Agenty, których pracownicy mają wyłącznie
przedstawicieli botów, zawsze wysyłają wiadomość powitalną. Dobra wiadomość offline
- Wyjaśnia, dlaczego pracownik obsługi klienta jest niedostępny
- Informowanie użytkownika o odpowiednich dalszych krokach lub alternatywnych kanałach kontaktu
- Dopasowuje ton wiadomości powitalnej i początku rozmowy
Zła wiadomość offline
„Zamknięte,”.
Dobra wiadomość offline
„Jesteśmy teraz zamknięte, ale będziemy znów dostępni jutro o 8:00. Jeśli potrzebujesz pilnej pomocy, skontaktuj się z zespołem pomocy pod numerem +12223334444 lub support@gtb.com”.
Aby edytować wiadomość offline, zobacz Aktualizowanie ustawień rozmów.
Zaktualizuj ustawienia rozmów
Aby zarządzać wiadomością powitalną lub początkami rozmowy, musisz wysłać żądanie PATCH za pomocą interfejsu Business Communications API w celu zaktualizowania pola conversationalSettings
agenta lub lokalizacji.
Podczas aktualizowania pola conversationalSettings
musisz uwzględnić wartości wszystkich pól w obiekcie ConversationalSetting
. Żądania aktualizacji zastępują zawartość wszystkich pól, które edytujesz, w tym pól podrzędnych. Jeśli np. w Twojej prośbie o zmodyfikowanie wiadomości powitalnej nie podasz początków rozmowy, żądanie usunie wszystkie wcześniejsze rozpoczęcie rozmowy.
Wymagania wstępne
Zanim zaktualizujesz ustawienia rozmów, potrzebujesz tych elementów:
- Ścieżka do klucza konta usługi projektu GCP na komputerze programisty
- Język, którego ustawienia chcesz zmienić
W przypadku ustawień na poziomie agenta: agent
name
(np. „marki/12345/agents/67890”)Jeśli nie znasz
name
agenta, zapoznaj się z sekcją Wyświetlanie listy wszystkich agentów danej marki.W przypadku ustawień na poziomie lokalizacji lokalizacja
name
(np. „marki/12345/lokalizacje/67890”)Jeśli nie znasz
name
lokalizacji, zapoznaj się z sekcją Wyświetlanie listy wszystkich lokalizacji danej marki.Język do zaktualizowania, podany w postaci dwuznakowego kodu języka w formacie ISO 639-1.
Nowa wiadomość powitalna
URL Polityki prywatności
(Opcjonalnie) Tekst na początku rozmowy
(Opcjonalnie) Dane wywołania zwrotnego dla inicjujących rozmowy
(Opcjonalnie) Nowa wiadomość offline
Jeśli nie znasz bieżących wartości conversationalSettings
, zapoznaj się z sekcjami Uzyskiwanie informacji o agencie i Uzyskiwanie informacji o lokalizacji.
Wyślij prośbę o aktualizację
Aby zaktualizować agenta lub lokalizację, uruchom to polecenie. Zastąp zmienne wartościami podanymi w sekcji Wymagania wstępne.
Jeśli nie chcesz, by początki rozmowy były potrzebne, pomiń pole conversationStarters
i wszystkie jego pola podrzędne.
Ustawienia na poziomie agenta
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(); } } }Ten kod jest oparty na bibliotece klienta 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)
Ustawienia na poziomie lokalizacji
# 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" } } } ] } } }'
Informacje o formatowaniu i wartościach znajdziesz w sekcjach brands.agents.patch
, brands.locations.patch
i ConversationalSetting
.
Przykłady
Ustawienia na poziomie agenta
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', }, }, }, ], }, }, }, }"
Ustawienia na poziomie lokalizacji
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', }, }, }, }, ], }, }, }"