W rozmowach z agentami Business Messages wiadomość powitalna nadaje ton interakcji. Informuje też użytkowników o tym, co może zrobić agent, co kształtuje pytania i oczekiwania użytkowników.
Za każdym razem, gdy użytkownik otworzy rozmowę, agent wysyła wiadomość powitalną. Agent może też wyświetlać rozpoczęcia rozmowy, aby kierować użytkowników na znane lub często wybierane ścieżki.
Jeśli użytkownik spróbuje rozpocząć rozmowę poza godzinami pracy agenta, wyświetli się wiadomość offline, której możesz użyć, aby udostępnić alternatywne kanały lub zaproponować kolejne kroki. 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.
Na poziomie agenta: te ustawienia konwersacji mają zastosowanie do wszystkich rozmów z agentem we wszystkich punktach wejścia.
Wiadomość powitalna na poziomie agenta może zaczynać się od słów „Dziękujemy za kontakt z firmą Bridgepoint Runners…”. Pomysły na rozpoczęcie rozmowy mogą dotyczyć działań lub informacji na poziomie całej firmy.
Na poziomie lokalizacji: te ustawienia zastępują ustawienia na poziomie agenta i mają zastosowanie tylko do rozmów z użytkownikami w danej lokalizacji w przypadku
PLACESHEETiMAPSpunktów wejścia.Wiadomość powitalna na poziomie lokalizacji może zaczynać się od słów „Dziękujemy za kontakt z Bridgepoint Runners na Amphitheatre Pkwy…”. Pomysły na rozpoczęcie rozmowy mogą dotyczyć zadań lub informacji związanych z lokalizacją. Wiadomość offline może zawierać informację o tym, kiedy lokalizacja będzie ponownie otwarta.
Języki
Agenci i lokalizacje mogą określać osobne ustawienia dla obsługiwanych przez siebie języków. Na przykład agent może określić wiadomość powitalną w języku angielskim dla ustawień regionalnych „en” i tę samą wiadomość powitalną w języku hiszpańskim dla ustawień regionalnych „es”. Wiadomości biznesowe rozwiązują problem z dopasowaniem zgłoszonej przez urządzenie użytkownika wersji językowej do wersji językowych, dla których agent lub lokalizacja mają ustawienia rozmowy.
Informacja o dopasowaniu do ustawień regionalnych jest podawana w polu resolvedLocale każdej wiadomości. Możesz określić defaultLocale agenta lub lokalizacji, który waży dopasowanie rozpoznanej wersji językowej. Więcej informacji znajdziesz w artykule Lokalizacja i języki.
Business Messages używa ustalonego języka, aby określić, które ustawienia rozmowy zastosować.
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 oczekiwania użytkownika dotyczące interakcji z agentem. Aby edytować wiadomość powitalną, zapoznaj się z artykułem Aktualizowanie ustawień konwersacji.
Pomysły na rozpoczęcie rozmowy
Dobra wiadomość powitalna zawiera ogólne informacje o funkcjach agenta i jest otwarta, a dobre rozpoczęcie rozmowy kieruje użytkowników do często zadawanych pytań lub znanych funkcji.
Przykłady wstępu do rozmowy są wyświetlane jako lista sugerowanych odpowiedzi bezpośrednio po wiadomości powitalnej. Gdy użytkownik kliknie element rozpoczynający rozmowę, agent otrzyma wstępnie zdefiniowane treści i dane zwrotne, które ustawisz podczas określania elementu rozpoczynającego rozmowę.
Jeśli agent obsługuje automatyczne funkcje w przypadku określonych żądań, rozpoczęcie rozmowy może być powiązane z tymi żądaniami, co pozwala korzystać ze znanych danych wejściowych na potrzeby automatyzacji i wysyłać do agentów na żywo pytania użytkowników w dowolnej formie, aby uzyskać odpowiedź.
Agent może mieć maksymalnie 5 elementów rozpoczynających rozmowę, a każdy z nich może zawierać maksymalnie 35 znaków.
Aby dodać lub edytować rozpoczęcia rozmowy, przeczytaj artykuł Aktualizowanie ustawień rozmowy.
Wiadomości offline
Gdy użytkownik rozpocznie rozmowę z agentem poza jego godzinami pracy (określonymi przez MessagingAvailability), otrzyma wiadomość offline agenta. Podczas wywoływania wiadomości offline brana jest pod uwagę tylko dostępność konsultanta. Agenty, które mają tylko przedstawicieli w postaci botów, zawsze wysyłają wiadomość powitalną. Dobra wiadomość offline
- Informuje, dlaczego agent jest niedostępny
- informuje użytkownika o odpowiednich kolejnych krokach lub alternatywnych kanałach kontaktu;
- Dopasowany do tonu wiadomości powitalnej i pomysłów na rozpoczęcie rozmowy
Nieprawidłowa wiadomość offline
„Przepraszamy, ale mamy zamknięte”.
Dobra wiadomość offline
„Teraz nie pracujemy, ale będziemy znowu dostępni jutro o 8:00. Jeśli potrzebujesz pilnej pomocy, skontaktuj się z zespołem pomocy pod numerem +12223334444 lub adresem support@gtb.com."
Aby edytować wiadomość offline, przeczytaj artykuł Aktualizowanie ustawień rozmowy.
Aktualizowanie ustawień rozmów
Aby zarządzać wiadomością powitalną lub rozpoczęciem rozmowy, wyślij żądanie PATCH za pomocą interfejsu Business Communications API, aby zaktualizować pole conversationalSettings agenta lub lokalizacji.
Gdy aktualizujesz pole conversationalSettings, musisz podać wartości wszystkich pól w obiekcie ConversationalSetting. Żądania aktualizacji zastępują zawartość wszystkich edytowanych pól, w tym pól podrzędnych. Jeśli na przykład poprosisz o zmianę wiadomości powitalnej, ale nie dodasz propozycji rozpoczęcia rozmowy, żądanie spowoduje usunięcie wszystkich poprzednich propozycji.
Wymagania wstępne
Zanim zaktualizujesz ustawienia konwersacyjne, musisz mieć:
- Ścieżka do klucza konta usługi projektu GCP na komputerze deweloperskim
- Język, dla którego chcesz zaktualizować ustawienia.
W przypadku ustawień na poziomie agenta agent
name(np. „brands/12345/agents/67890”)Jeśli nie znasz
nameagenta, zapoznaj się z artykułem Wyświetlanie listy wszystkich agentów marki.W przypadku ustawień na poziomie lokalizacji: lokalizacja
name(np. „brands/12345/locations/67890”)Jeśli nie znasz
namelokalizacji, zapoznaj się z artykułem Wyświetlanie listy wszystkich lokalizacji marki.Lokalizacja do zaktualizowania w postaci dwuznakowego kodu języka ISO 639-1.
Nowa wiadomość powitalna
URL Polityki prywatności
(Opcjonalnie) Tekst pomysłów na rozpoczęcie rozmowy
(Opcjonalnie) Dane wywołania zwrotnego dotyczące pomysłów na rozpoczęcie rozmowy
(Opcjonalnie) Nowa wiadomość offline
Jeśli nie znasz bieżących wartości conversationalSettings, zapoznaj się z artykułami Uzyskiwanie informacji o agencie i Uzyskiwanie informacji o lokalizacji.
Wysyłanie prośby o aktualizację
Aby zaktualizować agenta lub lokalizację, uruchom to polecenie. Zastąp zmienne wartościami określonymi w sekcji Wymagania wstępne.
Jeśli nie chcesz korzystać z funkcji rozpoczęcia rozmowy, 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(); } } }
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',
},
},
},
},
],
},
},
}"