Démarrer la conversation

Dans les conversations avec des agents Business Messages, le message de bienvenue donne le ton de l'interaction. Elle permet également aux utilisateurs de savoir ce que l'agent peut faire, ce qui façonne ses questions et ses 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 sur 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 hors connexion que vous pouvez utiliser pour partager d'autres canaux ou suggérer des étapes à suivre. En exploitant ces paramètres, vous pouvez améliorer la fiabilité et la facilité d'utilisation de votre agent.

Amorces de conversation

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'emplacement.

  • Niveau 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 : "Merci d'avoir contacté les exécuteurs Bridge". Les amorces de conversation peuvent se concentrer sur des actions ou des informations à l’échelle de l’entreprise.

  • Au niveau de l'emplacement:ces paramètres remplacent les paramètres au niveau de l'agent et ne s'appliquent qu'aux conversations avec cet emplacement sur les points d'entrée PLACESHEET et MAPS.

    Un message de bienvenue au niveau de l'emplacement peut commencer : "Merci d'avoir contacté Bridgepoint Runners on Amphitheatre Pkwy..." Les amorces de conversation peuvent se concentrer sur des tâches ou des informations liées au lieu. Un message hors connexion peut indiquer la prochaine ouverture de l'établissement.

Paramètres régionaux

Les agents et les emplacements peuvent spécifier des paramètres distincts pour les paramètres régionaux qu'ils acceptent. Par exemple, un agent peut spécifier un message de bienvenue en anglais pour les paramètres régionaux "en" et avoir le même message de bienvenue en espagnol pour les paramètres régionaux "es". Business Messages résout la correspondance entre les paramètres régionaux signalés par l'appareil de l'utilisateur et ceux pour lesquels un agent ou un établissement possède des paramètres de conversation.

Cette correspondance est indiquée dans le champ resolvedLocale de chaque message. Vous pouvez spécifier le defaultLocale d'un agent ou d'un emplacement, qui pondère la correspondance des paramètres régionaux résolues. Consultez la section 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 apparaît automatiquement lorsqu'un utilisateur commence une nouvelle conversation. Un message de bienvenue de qualité définit les attentes de l'utilisateur concernant l'interaction avec l'agent. Pour modifier un message de bienvenue, consultez Mettre à jour les paramètres de conversation.

Amorces de conversation

Même si un bon message de bienvenue couvre les fonctionnalités d'un agent de manière générale et est ouvert, de bonnes amorces de conversation guident les utilisateurs vers des questions fréquentes ou des fonctionnalités connues.

Les amorces de conversation apparaissent sous forme de réponses suggérées empilées verticalement et suivent directement le message de bienvenue. Lorsqu'un utilisateur appuie sur un déclencheur de conversation, l'agent reçoit le contenu et les données de postback prédéfinis que vous avez définis lorsque vous spécifiez le déclencheur.

Si un agent est compatible avec une fonctionnalité automatisée pour certaines requêtes, les amorces de conversation peuvent correspondre à ces requêtes, ce qui vous permet de vous appuyer sur des entrées connues pour l'automatisation et d'envoyer des questions utilisateur de forme libre aux agents humains prêts à y répondre.

Un agent peut avoir jusqu'à cinq amorces de conversation, chacun comportant un maximum de 35 caractères.

Pour ajouter ou modifier des amorces de conversation, consultez Mettre à jour les paramètres de conversation.

Messages hors connexion

Lorsqu'un utilisateur entame une conversation avec un agent en dehors des heures d'ouverture de l'agent (telles que définies par MessagingAvailability), il reçoit le message hors connexion de l'agent. Seule la disponibilité représentée par un humain est prise en compte lors du déclenchement d'un message hors connexion. Les agents qui ne sont dotés que de représentants de bots envoient toujours un message de bienvenue. Un message efficace hors connexion

  • Explique pourquoi l'agent n'est pas disponible
  • Il indique à l'utilisateur les prochaines étapes à suivre ou d'autres moyens de contact.
  • Correspond au ton du message de bienvenue et aux amorces de conversation

Message hors connexion incorrect

"Désolé, nous sommes fermés."

Message d'état hors connexion

"Nous sommes fermés pour le moment, mais nous serons de nouveau disponibles demain à 8h. Si vous avez besoin d'une aide urgente, contactez l'assistance au +12223334444 ou à l'adresse support@gtb.com."

Pour modifier un message hors connexion, consultez Mettre à jour les paramètres de conversation.

Modifier les paramètres de conversation

Pour gérer un message de bienvenue ou des amorces de conversation, vous devez envoyer une requête PATCH à l'aide de l'API Business Communications afin de mettre à jour le champ conversationalSettings d'un agent ou d'un établissement.

Lorsque vous mettez à jour le champ conversationalSettings, vous devez inclure des valeurs pour tous les champs de l'objet ConversationalSetting. 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 tous les amorces de conversation précédents.

Prérequis

Pour pouvoir modifier les paramètres de conversation, vous devez disposer des éléments suivants:

  • Chemin d'accès à la clé de compte de service de votre projet GCP sur votre ordinateur de développement
  • Paramètres régionaux dont vous souhaitez mettre à jour les paramètres
  • Pour les paramètres au niveau de l'agent, agent name (par exemple, "brands/12345/agents/67890")

    Si vous ne connaissez pas la propriété name de l'agent, consultez la section Répertorier tous les agents d'une marque.

  • Pour les paramètres de localisation, lieu name (par exemple, "brands/12345/locations/67890")

    Si vous ne connaissez pas la valeur name de l'établissement, consultez Répertorier tous les établissements d'une marque.

  • Paramètres régionaux à mettre à jour, 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 pour amorcer la conversation

  • (Facultatif) Données de postback pour les amorces de conversation

  • (Facultatif) Nouveau message hors connexion

Si vous ne connaissez pas les valeurs conversationalSettings actuelles, consultez les sections Obtenir des informations sur l'agent et Obtenir des informations de localisation.

Envoyer la demande de mise à jour

Pour mettre à jour l'agent ou l'emplacement, exécutez la commande suivante. Remplacez les variables par les valeurs que vous avez identifiées dans la section Conditions préalables.

Si vous ne voulez 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();
    }
  }
}
Ce code est basé sur la bibliothèque cliente 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)

Paramètres de localisation


# 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 en savoir plus 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 de localisation

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