Unterhaltung beginnen

Bei Unterhaltungen mit Business Messages-Agents legt die Begrüßungsnachricht den Ton der Interaktion fest. Außerdem erfahren die Nutzer, was der Agent tun kann, was die Fragen und Erwartungen des Nutzers bestimmt.

Der Agent sendet jedes Mal eine Willkommensnachricht, wenn der Nutzer eine Unterhaltung öffnet. Der Agent kann auch Unterhaltungsstarter anzeigen, um Nutzer zu bekannten oder häufigen Pfaden zu führen.

Wenn ein Nutzer versucht, eine Unterhaltung außerhalb der Geschäftszeiten des Agents zu beginnen, zeigt der Agent eine Offlinenachricht an, mit der Sie alternative Kanäle teilen oder die nächsten Schritte vorschlagen können. Mit diesen Einstellungen können Sie die Zuverlässigkeit und Nutzerfreundlichkeit des Agents erhöhen.

Gesprächseinstiege

Einstellungen auf Agent- und Standortebene

Sie können Konversationseinstellungen auf Agent- oder Standortebene festlegen.

  • Agent-Ebene:Diese Konversationseinstellungen gelten für alle Unterhaltungen mit dem Agent an allen Einstiegspunkten.

    Eine Willkommensnachricht auf Agent-Ebene könnte 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 Einstiegspunkte PLACESHEET und MAPS.

    Eine Willkommensnachricht auf Standortebene kann beginnen: „Vielen Dank, dass Sie sich an Bridgepoint Runners auf Amphitheatre Pkwy gewendet haben...“ Gesprächseinstiege können sich auf standortbasierte Aufgaben oder Informationen konzentrieren. In einer Offline-Nachricht wird vielleicht angegeben, wann der Standort das nächste Mal geöffnet wird.

Sprachen

Agents und Standorte können für die unterstützten Sprachen separate Einstellungen festlegen. Ein Agent kann beispielsweise eine Begrüßungsnachricht auf Englisch für die Sprache „en“ und dieselbe Begrüßungsnachricht auf Spanisch für die Sprache „es“ angeben. Business Messages löst eine Übereinstimmung zwischen der vom Nutzergerät angegebenen Sprache und den Sprachen auf, für die ein Agent oder Standort Konversationseinstellungen hat.

Diese Übereinstimmung mit dem Gebietsschema wird im Feld resolvedLocale der einzelnen Nachrichten angegeben. Sie können den defaultLocale eines Agents oder Standorts angeben, wodurch die Gewichtung die Länderübereinstimmung aufgelöst hat. Weitere Informationen finden Sie unter Lokalisierung und Sprachen.

Business Messages verwendet die aufgelöste Sprache, um zu bestimmen, welche Konversationseinstellungen angewendet werden sollen.

Willkommensnachricht

Die erste Nachricht in einer Unterhaltung zwischen einem Agent und einem Nutzer ist die Begrüßungsnachricht des Agents. Die Willkommensnachricht wird automatisch angezeigt, wenn ein Nutzer eine neue Unterhaltung startet. Mit einer guten Willkommensnachricht werden die Erwartungen des Nutzers an die Interaktion mit dem Agent bestimmt. Informationen zum Bearbeiten einer Willkommensnachricht finden Sie unter Unterhaltungseinstellungen aktualisieren.

Gesprächseinstiege

Während eine gute Willkommensnachricht die Funktionalität eines Agents allgemein behandelt und offen ist, leitet gute Gesprächseinstiege Nutzer zu häufig gestellten Fragen oder bekannten Funktionen.

Gesprächseinstiege werden als senkrecht gestapelte Antwortvorschläge angezeigt und folgen direkt auf die Willkommensnachricht. Wenn ein Nutzer auf einen Unterhaltungsstarter tippt, erhält der Agent vordefinierte Inhalts- und Postback-Daten, die Sie beim Angeben des Auslösers festlegen.

Wenn ein Agent automatisierte Funktionen für eine bestimmte Anfrage unterstützt, können Unterhaltungsstarter diesen Anfragen zugeordnet werden. So können Sie sich auf bekannte Eingaben für die Automatisierung verlassen und frei formulierte Nutzerfragen an Live-Kundenservicemitarbeiter senden, die diese beantworten können.

Ein Agent kann maximal 5 Gesprächseinstiege haben, wobei jeder Auslöser maximal 35 Zeichen haben darf.

Informationen zum Hinzufügen oder Bearbeiten von Gesprächseinstiegen finden Sie unter Unterhaltungseinstellungen aktualisieren.

Offlinenachrichten

Wenn ein Nutzer außerhalb der in MessagingAvailability definierten Geschäftszeiten eine Unterhaltung mit einem Agent startet, erhält der Nutzer die Offlinenachricht des Agents. Beim Auslösen einer Offlinenachricht wird nur die Verfügbarkeit von Mitarbeitern berücksichtigt. Agents, die nur Bot-Mitarbeiter haben, senden immer eine Willkommensnachricht. Eine gute Offline-Nachricht

  • Teilt mit, warum der Agent nicht verfügbar ist
  • Der Nutzer wird über die nächsten Schritte informiert oder über alternative Kontaktmöglichkeiten informiert.
  • Stimmt mit dem Ton der Willkommensnachricht und dem Gesprächseinstieg überein

Schlechte Offlinenachricht

„Wir haben geschlossen.“

Gute Offline-Nachricht

„Wir haben momentan geschlossen, sind aber morgen um 08:00 Uhr wieder für Sie da. Wenn Sie dringend Hilfe benötigen, wenden Sie sich an den Support unter +12223334444 oder [email protected].“

Informationen zum Bearbeiten einer Offlinenachricht finden Sie unter Unterhaltungseinstellungen aktualisieren.

Konversationseinstellungen aktualisieren

Wenn Sie eine Willkommensnachricht oder Gesprächseinstiege verwalten möchten, stellen Sie mit der Business Communications API eine PATCH-Anfrage, um das Feld conversationalSettings eines Agents oder Standorts zu aktualisieren.

Wenn Sie das Feld conversationalSettings aktualisieren, müssen Sie Werte für alle Felder im Objekt ConversationalSetting angeben. Aktualisierungsanfragen überschreiben den Inhalt aller von Ihnen bearbeiteten Felder, einschließlich etwaiger untergeordneter Felder. Wenn Sie beispielsweise eine Anfrage zum Ändern einer Willkommensnachricht stellen, aber keine Gesprächseinstiege einschließen, werden alle vorherigen Unterhaltungsstarter entfernt.

Voraussetzungen

Bevor Sie die Konversationseinstellungen aktualisieren, benötigen Sie Folgendes:

  • Pfad zum Dienstkontoschlüssel Ihres GCP-Projekts auf Ihrem Entwicklungscomputer
  • Die Sprache, für die Sie die Einstellungen aktualisieren möchten
  • Bei Einstellungen auf Agent-Ebene: Agent name (z. B. „brands/12345/agents/67890“).

    Wenn Sie die name des Agents nicht kennen, lesen Sie Alle Agents für eine Marke auflisten.

  • Bei Einstellungen auf Standortebene: Standort name (z. B. „brands/12345/locations/67890“)

    Wenn Sie den name des Standorts nicht kennen, lesen Sie 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 den Gesprächseinstieg

  • (Optional) Postback-Daten für Gesprächseinstiege

  • Optional: Neue Offlinenachricht

Wenn Sie die aktuellen conversationalSettings-Werte nicht kennen, lesen Sie Agent-Informationen abrufen und Standortinformationen abrufen.

Aktualisierungsanfrage senden

Führen Sie den folgenden Befehl aus, um den Agent oder den Standort zu aktualisieren. Ersetzen Sie Variablen durch Werte, die Sie unter Voraussetzungen ermittelt haben.

Wenn Sie keine Gesprächseinstiege wünschen, lassen Sie conversationStarters und alle untergeordneten Felder weg.

Einstellungen auf Agent-Ebene

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 zu Formatierung und Werten finden Sie unter brands.agents.patch, brands.locations.patch und ConversationalSetting.

Beispiele

Einstellungen auf Agent-Ebene

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