Nelle conversazioni con gli agenti Business Messages, il messaggio di benvenuto definisce il tono dell'interazione. Inoltre, consente agli utenti di sapere cosa può fare l'agente, il che influenza le domande e le aspettative dell'utente.
L'agente invia un messaggio di benvenuto ogni volta che l'utente apre una conversazione. L'agente può anche mostrare spunti di conversazione per guidare gli utenti lungo percorsi noti o frequenti.
Se un utente tenta di avviare una conversazione al di fuori dell'orario di apertura di un agente, l'agente visualizza un messaggio offline che puoi utilizzare per condividere canali alternativi o suggerire i passaggi successivi. Sfruttando queste impostazioni, puoi aumentare l'affidabilità e l'usabilità del tuo agente.
Impostazioni a livello di agente e posizione
Puoi specificare le impostazioni conversazionali a livello di agente o sede.
A livello di agente:Queste impostazioni conversazionali si applicano a tutte le conversazioni con l'agente su tutti i punti di accesso.
Un messaggio di benvenuto a livello di agente potrebbe iniziare con "Grazie per aver contattato Bridgepoint Runners..." Gli spunti di conversazione possono concentrarsi su azioni o informazioni a livello aziendale.
A livello di sede:queste impostazioni sostituiscono quelle a livello di agente e si applicano solo alle conversazioni con quella sede tramite i
PLACESHEETe i punti di accessoMAPS.Un messaggio di benvenuto a livello di località potrebbe iniziare con "Grazie per aver contattato Bridgepoint Runners su Amphitheatre Pkwy..." Gli spunti di conversazione possono concentrarsi su attività o informazioni basate sulla posizione. Un messaggio offline potrebbe indicare quando la sede sarà aperta la prossima volta.
Impostazioni internazionali
Gli agenti e le sedi possono specificare impostazioni separate per le impostazioni internazionali che supportano. Ad esempio, un agente potrebbe specificare un messaggio di benvenuto in inglese per il locale "en" e avere lo stesso messaggio di benvenuto in spagnolo per il locale "es". Business Messages risolve una corrispondenza tra le impostazioni internazionali segnalate del dispositivo dell'utente e le impostazioni internazionali per cui un agente o una sede dispone di impostazioni conversazionali.
Questa corrispondenza delle impostazioni internazionali viene riportata nel campo resolvedLocale di ogni messaggio. Puoi specificare il defaultLocale di un agente o di una sede, che pondera la corrispondenza delle impostazioni internazionali risolte. Consulta la sezione Localizzazione e
località.
Business Messages utilizza le impostazioni internazionali risolte per determinare quali impostazioni conversazionali applicare.
Messaggio di benvenuto
Il primo messaggio in una conversazione tra un agente e un utente è il messaggio di benvenuto dell'agente. Il messaggio di benvenuto viene visualizzato automaticamente dopo che un utente avvia una nuova conversazione. Un buon messaggio di benvenuto definisce le aspettative dell'utente per l'interazione con l'agente. Per modificare un messaggio di benvenuto, consulta Aggiornare le impostazioni conversazionali.
Spunti di conversazione
Un buon messaggio di benvenuto descrive a grandi linee la funzionalità di un agente ed è aperto, mentre i buoni spunti di conversazione guidano gli utenti verso domande frequenti o funzionalità note.
Gli spunti di conversazione vengono visualizzati come risposte suggerite incolonnate verticalmente subito dopo il messaggio di benvenuto. Quando un utente tocca un suggerimento di conversazione, l'agente riceve contenuti predefiniti e dati di postback che hai impostato quando hai specificato il suggerimento.
Se un agente supporta la funzionalità automatizzata per determinate richieste, gli spunti di conversazione potrebbero essere mappati a queste richieste, consentendoti di fare affidamento su input noti per l'automazione e inviare domande degli utenti in formato libero agli agenti live pronti a rispondere.
Un agente può avere un massimo di 5 frasi di avvio della conversazione e ognuna può contenere un massimo di 35 caratteri.
Per aggiungere o modificare gli spunti di conversazione, vedi Aggiornare le impostazioni conversazionali.
Messaggi offline
Quando un utente avvia una conversazione con un agente fuori dall'orario di apertura dell'agente (come definito da MessagingAvailability), l'utente riceve il messaggio offline dell'agente. Quando viene attivato un messaggio offline, viene presa in considerazione solo la disponibilità di un rappresentante umano. Gli agenti che hanno solo
rappresentanti bot inviano sempre un messaggio di benvenuto. Un buon messaggio offline
- Spiega perché l'agente non è disponibile
- Fornisce all'utente le istruzioni sui passaggi successivi appropriati o sui canali di contatto alternativi
- Corrisponde al tono del messaggio di benvenuto e degli spunti di conversazione
Bad offline message
"Spiacenti, siamo chiusi."
Buon messaggio offline
"Al momento siamo chiusi, ma puoi trovarci domani alle ore 08:00. Se hai bisogno di assistenza urgente, contatta l'assistenza al numero +12223334444 o all'indirizzo support@gtb.com."
Per modificare un messaggio offline, consulta Aggiornare le impostazioni conversazionali.
Aggiornare le impostazioni conversazionali
Per gestire un messaggio di benvenuto o gli spunti di conversazione, invia una richiesta PATCH
con l'API Business Communications
per aggiornare il campo conversationalSettings di un agente o di una sede.
Quando aggiorni il campo conversationalSettings, devi includere i valori per tutti i campi nell'oggetto
ConversationalSetting. Le richieste di aggiornamento sovrascrivono i contenuti di tutti i campi che modifichi, inclusi
i campi secondari. Ad esempio, se invii una richiesta di modifica di un messaggio di benvenuto
ma non includi spunti di conversazione, la richiesta rimuove eventuali
spunti di conversazione precedenti.
Prerequisiti
Prima di aggiornare le impostazioni conversazionali, devi disporre di quanto segue:
- Percorso della chiave del service account del progetto GCP sulla macchina di sviluppo
- Le impostazioni locali per cui vuoi aggiornare le impostazioni
Per le impostazioni a livello di agente, agente
name(ad esempio "brands/12345/agents/67890")Se non conosci l'
namedell'agente, consulta Elenco di tutti gli agenti per un brand.Per le impostazioni a livello di sede, posizione
name(ad esempio, "brands/12345/locations/67890")Se non conosci il
namedella sede, consulta Elenco di tutte le sedi di un brand.Le impostazioni internazionali da aggiornare, come codice lingua ISO 639-1 di due caratteri
Nuovo messaggio di benvenuto
URL Norme sulla privacy
(Facoltativo) Testo per gli spunti di conversazione
(Facoltativo) Dati di postback per gli spunti di conversazione
(Facoltativo) Nuovo messaggio offline
Se non conosci i valori attuali di conversationalSettings, consulta Recuperare le informazioni
dell'agente
e Recuperare i dati sulla
posizione.
Inviare la richiesta di aggiornamento
Per aggiornare l'agente o la posizione, esegui questo comando. Sostituisci le variabili con i valori che hai identificato in Prerequisiti.
Se non vuoi suggerimenti per iniziare una conversazione, ometti conversationStarters e tutti i relativi
campi secondari.
Impostazioni a livello di agente
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)
Impostazioni a livello di località
# 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" } } } ] } } }'
Per informazioni su formattazione e valori, vedi
brands.agents.patch,
brands.locations.patch,
e
ConversationalSetting.
Esempi
Impostazioni a livello di agente
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',
},
},
},
],
},
},
},
}"Impostazioni a livello di località
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',
},
},
},
},
],
},
},
}"