Unterhaltung beginnen

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.

Gesprächseinstiege

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- und MAPS-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 name des 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 name des 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();
    }
  }
}
Dieser Code basiert auf der Java Business Communications-Clientbibliothek.

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',
                            },
                        },
                    },
                },
            ],
        },
    },
}"