Dans les conversations avec les agents Business Messages, le message de bienvenue donne le ton de l'interaction. Il permet également aux utilisateurs de savoir ce que l'agent peut faire, ce qui influence leurs questions et leurs attentes.
L'agent envoie un message de bienvenue chaque fois que l'utilisateur ouvre une conversation. L' agent peut également afficher des amorces de conversation pour guider les utilisateurs vers des chemins connus ou fréquents.
Si un utilisateur tente de démarrer une conversation en dehors des heures d'ouverture d'un agent, celui-ci affiche un message d'état hors connexion que vous pouvez utiliser pour partager d'autres canaux ou suggérer des étapes à suivre. En tirant parti de ces paramètres, vous pouvez améliorer la fiabilité et la facilité d'utilisation de votre agent.
Paramètres au niveau de l'agent et de l'établissement
Vous pouvez spécifier des paramètres de conversation au niveau de l'agent ou de l'établissement.
Au niveau de l'agent : ces paramètres de conversation s'appliquent à toutes les conversations avec l'agent sur tous les points d'entrée.
Un message de bienvenue au niveau de l'agent peut commencer par "Merci d'avoir contacté Bridgepoint Runners..." Les amorces de conversation peuvent se concentrer sur des actions ou des informations à l'échelle de l'entreprise.
Au niveau de l'établissement : ces paramètres remplacent ceux au niveau de l'agent et ne s'appliquent qu'aux conversations avec cet établissement sur les points d'entrée
PLACESHEETetMAPS.Un message de bienvenue au niveau de l'établissement peut commencer par "Merci d'avoir contacté Bridgepoint Runners sur Amphitheatre Pkwy..." Les amorces de conversation peuvent se concentrer sur des tâches ou des informations basées sur l'établissement. Un message d'état hors connexion peut indiquer quand l'établissement sera à nouveau ouvert.
Paramètres régionaux
Les agents et les établissements peuvent spécifier des paramètres distincts pour les paramètres régionaux qu'ils prennent en charge. Par exemple, un agent peut spécifier un message de bienvenue en anglais pour les paramètres régionaux "en" et le même message de bienvenue en espagnol pour les paramètres régionaux "es". Business Messages résout une correspondance entre les paramètres régionaux signalés par l'appareil de l'utilisateur et ceux pour lesquels un agent ou un établissement dispose de paramètres de conversation.
Cette correspondance de paramètres régionaux est signalée dans le champ resolvedLocale de chaque message. Vous pouvez spécifier le defaultLocale d'un agent ou d'un établissement, ce qui pondère la correspondance des paramètres régionaux résolus. Consultez Localisation et
paramètres régionaux.
Business Messages utilise les paramètres régionaux résolus pour déterminer les paramètres de conversation à appliquer.
Message de bienvenue
Le premier message d'une conversation entre un agent et un utilisateur est le message de bienvenue de l'agent. Le message de bienvenue s'affiche automatiquement après qu'un utilisateur a démarré une nouvelle conversation. Un bon message de bienvenue définit les attentes de l'utilisateur concernant l'interaction avec l'agent. Pour modifier un message de bienvenue, consultez Modifier les paramètres de conversation.
Amorces de conversation
Alors qu'un bon message de bienvenue couvre les fonctionnalités d'un agent à un niveau élevé et est ouvert, de bonnes amorces de conversation guident les utilisateurs vers des questions fréquentes ou des fonctionnalités connues.
Les amorces de conversations sont des propositions de réponse qui apparaissent empilées verticalement, directement à la suite du message de bienvenue. Lorsqu'un utilisateur appuie sur une amorce de conversation, l'agent reçoit le contenu prédéfini et les données de postback que vous avez définis lorsque vous avez spécifié l'amorce.
Si un agent prend en charge une fonctionnalité automatisée pour certaines requêtes, les amorces de conversation peuvent être associées à ces requêtes, ce qui vous permet de vous appuyer sur des entrées connues pour l'automatisation et d'envoyer des questions utilisateur en texte libre à des agents humains prêts à répondre.
Un agent peut comporter jusqu'à cinq amorces de conversation, et chaque amorce peut comporter jusqu'à 35 caractères.
Pour ajouter ou modifier des amorces de conversation, consultez Modifier les paramètres de conversation.
Messages d'état hors connexion
Lorsqu'un utilisateur démarre une conversation avec un agent en dehors des heures d'ouverture de cet agent (telles que définies par
MessagingAvailability),
il reçoit le message d'état hors connexion de l'agent. Seule la disponibilité d'un représentant humain est prise en compte lors du déclenchement d'un message d'état hors connexion. Les agents qui n'ont que des représentants de bot envoient toujours un message de bienvenue. Un bon message d'état hors connexion
- indique pourquoi l'agent n'est pas disponible ;
- indique à l'utilisateur les prochaines étapes appropriées ou les autres canaux de contact ;
- correspond au ton du message de bienvenue et des amorces de conversation.
Mauvais message d'état hors connexion
"Désolé, nous sommes fermés."
Bon message d'état hors connexion
"Nous sommes actuellement fermés, mais nous serons à nouveau disponibles demain à 8h. Si vous avez besoin d'aide urgente, contactez l'assistance au +12223334444 ou à l'adresse support@gtb.com."
Pour modifier un message d'état hors connexion, consultez Modifier les paramètres de conversation.
Modifier les paramètres de conversation
Pour gérer un message de bienvenue ou des amorces de conversation, envoyez une requête PATCH
avec l'API
Business Communications afin de modifier le champ conversationalSettings d'un agent ou d'un établissement.
Lorsque vous modifiez le champ conversationalSettings, vous devez inclure des valeurs pour
tous les champs de l'
ConversationalSetting
objet. Les requêtes de mise à jour écrasent le contenu de tous les champs que vous modifiez, y compris les champs enfants. Par exemple, si vous envoyez une requête pour modifier un message de bienvenue, mais que vous n'incluez pas d'amorces de conversation, la requête supprime toutes les amorces de conversation précédentes.
Prérequis
Avant de modifier les paramètres de conversation, vous avez besoin des éléments suivants :
- Chemin d'accès à la clé du compte de service de votre projet GCP sur votre ordinateur de développement
- Paramètres régionaux pour lesquels vous souhaitez modifier les paramètres
Pour les paramètres au niveau de l'agent,
namede l'agent (par exemple, "brands/12345/agents/67890")Si vous ne connaissez pas le
namede l'agent, consultez la section Lister tous les agents d'une marque.Pour les paramètres au niveau de l'établissement,
namede l'établissement (par exemple, "brands/12345/locations/67890")Si vous ne connaissez pas le
namede l'établissement, consultez la section Lister tous les établissements d'une marque.Paramètres régionaux à modifier, sous la forme d'un code de langue ISO 639-1 à deux caractères
Nouveau message de bienvenue
URL des règles de confidentialité
(Facultatif) Texte des amorces de conversation
(Facultatif) Données de postback pour les amorces de conversation
(Facultatif) Nouveau message d'état hors connexion
Si vous ne connaissez pas les valeurs conversationalSettings actuelles, consultez Obtenir des informations sur l'agent et Obtenir des informations sur l'établissement.
Envoyer la requête de mise à jour
Pour modifier l'agent ou l'établissement, exécutez la commande suivante. Remplacez les variables par les valeurs que vous avez identifiées dans Prérequis.
Si vous ne souhaitez pas d'amorces de conversation, omettez conversationStarters et tous ses champs enfants.
Paramètres au niveau de l'agent
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)
Paramètres au niveau de l'établissement
# 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" } } } ] } } }'
Pour obtenir des informations sur la mise en forme et les valeurs, consultez
brands.agents.patch,
brands.locations.patch,
et
ConversationalSetting.
Exemples
Paramètres au niveau de l'agent
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',
},
},
},
],
},
},
},
}"Paramètres au niveau de l'établissement
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',
},
},
},
},
],
},
},
}"