Rozpocznij rozmowę

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.

Pomysły na rozpoczęcie rozmowy

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 PLACESHEETMAPS punktó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 name agenta, 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 name lokalizacji, 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 agencieUzyskiwanie 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();
    }
  }
}
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.patchConversationalSetting.

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