In Unterhaltungen mit Business Messages-Agents gibt die Begrüßungsnachricht den Ton für die Interaktion vor. Außerdem erfahren Nutzer, was der Agent kann, was ihre Fragen und Erwartungen beeinflusst.
Der Agent sendet jedes Mal eine Begrüßungsnachricht, wenn der Nutzer eine Unterhaltung öffnet. Der Agent kann auch Gesprächseinstiege anzeigen, um Nutzer auf bekannten oder häufigen Pfaden zu führen.
Wenn ein Nutzer versucht, eine Unterhaltung außerhalb der Öffnungszeiten eines Agenten zu starten, wird eine Offlinenachricht angezeigt, mit der Sie alternative Kanäle oder nächste Schritte vorschlagen können. Mit diesen Einstellungen können Sie die Zuverlässigkeit und Nutzerfreundlichkeit Ihres Agents erhöhen.
Einstellungen auf Agent- und Standortebene
Sie können Konversationseinstellungen auf Agenten- oder Standortebene festlegen.
KI-Agent-Ebene:Diese Einstellungen für Unterhaltungen gelten für alle Unterhaltungen mit dem KI-Agenten an allen Einstiegspunkten.
Eine Willkommensnachricht auf Agent-Ebene könnte so beginnen: „Vielen Dank, dass Sie sich an Bridgepoint Runners gewendet haben…“ Gesprächseinstiege können sich auf unternehmensweite Aktionen oder Informationen konzentrieren.
Standortebene:Diese Einstellungen überschreiben die Einstellungen auf Agent-Ebene und gelten nur für Unterhaltungen mit diesem Standort über die
PLACESHEET- undMAPS-Einstiegspunkte.Eine Willkommensnachricht auf Standortebene könnte so beginnen: „Vielen Dank, dass Sie Bridgepoint Runners am Amphitheatre Pkwy kontaktiert haben…“ Gesprächseinstiege können sich auf standortbezogene Aufgaben oder Informationen konzentrieren. In einer Offlinenachricht wird möglicherweise angegeben, wann der Standort wieder geöffnet wird.
Sprachen
Für jede unterstützte Sprache können separate Einstellungen für Kundenservicemitarbeiter und Standorte angegeben werden. Ein Kundenservicemitarbeiter kann beispielsweise eine Willkommensnachricht auf Englisch für das Gebietsschema „en“ und dieselbe Willkommensnachricht auf Spanisch für das Gebietsschema „es“ angeben. Bei Business Messages wird ein Abgleich zwischen dem gemeldeten Gebietsschema des Nutzergeräts und den Gebietsschemas durchgeführt, für die ein Agent oder Standort Gesprächseinstellungen hat.
Diese Übereinstimmung wird im Feld resolvedLocale jeder Nachricht gemeldet. Sie können die defaultLocale eines Agents oder Standorts angeben, um die Gewichtung von aufgelösten Sprachübereinstimmungen festzulegen. Weitere Informationen finden Sie unter Lokalisierung und Gebietsschemas.
Business Messages verwendet das aufgelöste Gebietsschema, um zu bestimmen, welche Konversationseinstellungen angewendet werden sollen.
Willkommensnachricht
Die erste Nachricht in einer Unterhaltung zwischen einem Agent und einem Nutzer ist die Willkommensnachricht des Agents. Die Willkommensnachricht wird automatisch angezeigt, nachdem ein Nutzer eine neue Unterhaltung gestartet hat. Eine gute Willkommensnachricht weckt die Erwartungen des Nutzers an die Interaktion mit dem Agent. Informationen zum Bearbeiten einer Begrüßungsnachricht finden Sie unter Konversationseinstellungen aktualisieren.
Gesprächseinstiege
Eine gute Begrüßungsnachricht deckt die Funktionen eines Agents auf hoher Ebene ab und ist offen formuliert. Gute Gesprächseinstiege führen Nutzer zu häufig gestellten Fragen oder bekannten Funktionen.
Vorschläge für den Unterhaltungsbeginn werden als gestapelte Antwortmöglichkeiten angezeigt und folgen direkt auf die Willkommensnachricht. Wenn ein Nutzer auf einen Gesprächsstarter tippt, erhält der Agent vordefinierte Inhalte und Postback-Daten, die Sie beim Festlegen des Starters angeben.
Wenn ein Kundenservicemitarbeiter automatisierte Funktionen für bestimmte Anfragen unterstützt, können Gesprächsanfänge diesen Anfragen zugeordnet werden. So können Sie sich auf bekannte Eingaben für die Automatisierung verlassen und Fragen von Nutzern in Freiform an Kundenservicemitarbeiter senden, die bereit sind, sie zu beantworten.
Ein Agent kann maximal fünf Gesprächsanfänge haben. Jeder Gesprächsanfang darf maximal 35 Zeichen lang sein.
Informationen zum Hinzufügen oder Bearbeiten von Gesprächseinstiegen finden Sie unter Einstellungen für Unterhaltungen aktualisieren.
Offlinenachrichten
Wenn ein Nutzer außerhalb der Zeiten, in denen der Agent verfügbar ist (wie in MessagingAvailability definiert), eine Unterhaltung mit ihm beginnt, erhält er die Offlinenachricht des Agents. Beim Auslösen einer Offline-Nachricht wird nur die Verfügbarkeit von Kundenservicemitarbeitern berücksichtigt. Bei Agents, die nur Bot-Vertreter haben, wird immer eine Willkommensnachricht gesendet. Eine gute Offlinenachricht
- Gibt an, warum der KI-Agent nicht verfügbar ist
- Der Nutzer wird über die nächsten Schritte oder alternative Kontaktkanäle informiert.
- Der Ton der Begrüßungsnachricht und der Gesprächsstarter ist angemessen.
Falsche Offlinenachricht
„Leider sind wir geschlossen.“
Gute Offline-Nachricht
„Wir haben gerade geschlossen, sind aber morgen ab 8 Uhr wieder für Sie da. Wenn Sie dringend Hilfe benötigen, wenden Sie sich bitte unter +12223334444 oder support@gtb.com an den Support.“
Informationen zum Bearbeiten einer Offline-Nachricht finden Sie unter Konversationseinstellungen aktualisieren.
Einstellungen für Unterhaltungen aktualisieren
Wenn Sie eine Begrüßungsnachricht oder Gesprächseinstiege verwalten möchten, senden Sie eine PATCH-Anfrage mit der Business Communications API, um das Feld conversationalSettings eines Kundenservicemitarbeiters oder Standorts zu aktualisieren.
Wenn Sie das Feld conversationalSettings aktualisieren, müssen Sie Werte für alle Felder im ConversationalSetting-Objekt angeben. Bei Aktualisierungsanfragen werden die Inhalte aller Felder, die Sie bearbeiten, überschrieben, einschließlich aller untergeordneten Felder. Wenn Sie beispielsweise eine Anfrage zum Ändern einer Begrüßungsnachricht stellen, aber keine Gesprächsanfänge angeben, werden alle vorherigen Gesprächsanfänge entfernt.
Vorbereitung
Bevor Sie die Einstellungen für Unterhaltungen aktualisieren, benötigen Sie Folgendes:
- Pfad zum Schlüssel des Dienstkontos Ihres GCP-Projekts auf Ihrer Entwicklungsmaschine
- Das Gebietsschema, für das Sie die Einstellungen aktualisieren möchten
Für Einstellungen auf Agent-Ebene: Agent
name(z. B. „brands/12345/agents/67890“)Wenn Sie die
namedes Kundenservicemitarbeiters nicht kennen, lesen Sie den Abschnitt Alle Kundenservicemitarbeiter für eine Marke auflisten.Für Einstellungen auf Standortebene: Standort
name(z. B. „brands/12345/locations/67890“)Wenn Sie die
namedes Standorts nicht kennen, lesen Sie den Abschnitt Alle Standorte für eine Marke auflisten.Die zu aktualisierende Sprache als zweistelliger ISO 639-1-Sprachcode
Neue Willkommensnachricht
URL der Datenschutzerklärung
(Optional) Text für Gesprächseinstiege
Optional: Postback-Daten für Gesprächseinstiege
(Optional) Neue Offlinenachricht
Wenn Sie die aktuellen conversationalSettings-Werte nicht kennen, lesen Sie die Informationen unter Agenteninformationen abrufen und Standortinformationen abrufen.
Aktualisierungsanfrage senden
Führen Sie den folgenden Befehl aus, um den Agent oder den Standort zu aktualisieren. Ersetzen Sie die Variablen durch die Werte, die Sie unter Voraussetzungen ermittelt haben.
Wenn Sie keine Gesprächsanfänge möchten, lassen Sie conversationStarters und alle untergeordneten Felder weg.
Einstellungen auf Agentenebene
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)
Einstellungen auf Standortebene
# 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" } } } ] } } }'
Informationen zur Formatierung und zu Werten finden Sie unter brands.agents.patch, brands.locations.patch und ConversationalSetting.
Beispiele
Einstellungen auf Agentenebene
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',
},
},
},
],
},
},
},
}"Einstellungen auf Standortebene
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',
},
},
},
},
],
},
},
}"