Comenzar la conversación

En las conversaciones con los agentes de Business Messages, el mensaje de bienvenida establece el tono de la interacción. También permite a los usuarios saber qué puede hacer el agente, lo que da forma a las preguntas y expectativas del usuario.

El agente envía un mensaje de bienvenida cada vez que el usuario abre una conversación. El agente también puede mostrar activadores de conversación para guiar a los usuarios por rutas de acceso conocidas o frecuentes.

Si un usuario intenta iniciar una conversación fuera del horario de atención de un agente, el agente muestra un mensaje sin conexión que puedes usar para compartir canales alternativos o sugerir próximos pasos. Si aprovechas esta configuración, puedes aumentar la confiabilidad y la usabilidad de tu agente.

Temas de conversación

Configuración a nivel del agente y de la ubicación

Puedes especificar la configuración de la conversación a nivel del agente o la ubicación.

  • Nivel de agente:Esta configuración de conversación se aplica a todas las conversaciones con el agente en todos los puntos de entrada.

    Un mensaje de bienvenida a nivel del agente puede comenzar con “Gracias por comunicarse con los corredores de puente...”. Los temas de conversación pueden enfocarse en información o acciones de toda la empresa.

  • Nivel de ubicación: Esta configuración anula la configuración a nivel del agente y solo se aplica a las conversaciones con esa ubicación en los puntos de entrada PLACESHEET y MAPS.

    Un mensaje de bienvenida a nivel de la ubicación puede comenzar con “Gracias por comunicarte con Bridgepoint Runners en Amphitheatre Pkwy...”. Los temas de conversación pueden enfocarse en información o tareas basadas en la ubicación. Un mensaje sin conexión puede mencionar cuándo se abrirá la ubicación.

Configuración regional

Los agentes y las ubicaciones pueden especificar configuraciones independientes para las configuraciones regionales que admiten. Por ejemplo, un agente podría especificar un mensaje de bienvenida en inglés para la configuración regional “en” y tener el mismo mensaje de bienvenida en español para la configuración regional “es”. Business Messages resuelve una coincidencia entre la configuración regional informada del dispositivo del usuario y las configuraciones regionales para las que un agente o ubicación tiene una configuración de conversación.

Esta coincidencia de configuración regional se informa en el campo resolvedLocale de cada mensaje. Puedes especificar el defaultLocale de un agente o de la ubicación, lo que resuelve la coincidencia de la configuración regional. Consulta Localización y configuración regional.

Business Messages usa la configuración regional resuelta para determinar qué configuración de conversación se debe aplicar.

Mensaje de bienvenida

El primer mensaje de una conversación entre un agente y un usuario es el mensaje de bienvenida del agente. El mensaje de bienvenida aparece automáticamente después de que un usuario inicia una conversación nueva. Un buen mensaje de bienvenida establece las expectativas del usuario para interactuar con el agente. Para editar un mensaje de bienvenida, consulta Actualiza la configuración de conversación.

Temas de conversación

Si bien un buen mensaje de bienvenida abarca la funcionalidad de un agente en un nivel alto y es abierto, los buenos inicios de conversación guían a los usuarios a preguntas frecuentes o a funcionalidades conocidas.

Los temas de conversación aparecen como respuestas sugeridas apiladas de forma vertical inmediatamente después del mensaje de bienvenida. Cuando un usuario presiona un activador de conversación, el agente recibe contenido predefinido y datos de notificación de conversión que configuras cuando especificas el activador.

Si un agente admite una funcionalidad automatizada para ciertas solicitudes, los iniciadores de conversación pueden asignarse a esas solicitudes, lo que te permite confiar en entradas conocidas para la automatización y enviar preguntas de usuarios de formato libre a los agentes humanos listos para responder.

Un agente puede tener un máximo de 5 activadores de conversación, y cada activador puede tener un máximo de 35 caracteres.

Para agregar o editar temas de conversación, consulta Actualiza la configuración de conversación.

Mensajes sin conexión

Cuando un usuario inicia una conversación con un agente fuera de su horario de atención (según se define en MessagingAvailability), el usuario recibe el mensaje sin conexión del agente. Cuando se activa un mensaje sin conexión, solo se considera la disponibilidad representativa humana. Los agentes que solo tienen representantes de bots siempre envían un mensaje de bienvenida. Un buen mensaje sin conexión

  • Comparte por qué el agente no está disponible
  • Indica al usuario los próximos pasos adecuados o canales de contacto alternativos.
  • Coincide con el tono del mensaje de bienvenida y los temas de conversación.

Mensaje de error sin conexión

"Lo sentimos, estamos cerrados".

Mensaje sin conexión correcto

"En este momento, estamos cerrados, pero volveremos a estar disponibles mañana a las 8 a.m. Si necesitas ayuda urgente, comunícate con el equipo de asistencia al +12223334444 o envía un correo a support@gtb.com".

Para editar un mensaje sin conexión, consulta Actualiza la configuración de la conversación.

Actualiza la configuración de la conversación

Para administrar un mensaje de bienvenida o temas de conversación, realiza una solicitud PATCH con la API de Business Communications a fin de actualizar el campo conversationalSettings de un agente o una ubicación.

Cuando actualizas el campo conversationalSettings, debes incluir valores para todos los campos del objeto ConversationalSetting. Las solicitudes de actualización reemplazan el contenido de todos los campos que editas, incluidos los campos secundarios. Por ejemplo, si realizas una solicitud para modificar un mensaje de bienvenida, pero no incluyes temas de conversación, la solicitud quita los temas de conversación anteriores.

Requisitos previos

Antes de actualizar la configuración de la conversación, necesitas los siguientes elementos:

  • Ruta de acceso a la clave de la cuenta de servicio del proyecto de GCP en la máquina de desarrollo
  • La configuración regional para la que quieres actualizar la configuración
  • Para la configuración a nivel del agente, el agente name (por ejemplo, "brands/12345/agents/67890")

    Si no conoces la name del agente, consulta Enumera todos los agentes de una marca.

  • Para la configuración a nivel de la ubicación, la ubicación name (por ejemplo, "brands/12345/locations/67890")

    Si no conoces la name de la ubicación, consulta Cómo enumerar todas las ubicaciones de una marca.

  • La configuración regional que se actualizará, como un código de idioma ISO 639-1 de dos caracteres.

  • Nuevo mensaje de bienvenida

  • URL de la Política de Privacidad

  • (Opcional) Texto para los temas de conversación

  • (Opcional) Datos de notificación de conversión para los temas de conversación

  • (Opcional) Nuevo mensaje sin conexión

Si no conoces los valores actuales de conversationalSettings, consulta Obtén información del agente y Obtén información de la ubicación.

Envía la solicitud de actualización

Para actualizar el agente o la ubicación, ejecuta el siguiente comando. Reemplaza las variables por los valores que identificaste en Requisitos previos.

Si no quieres temas de conversación, omite conversationStarters y todos sus campos secundarios.

Configuración a nivel del 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();
    }
  }
}
Este código se basa en la biblioteca cliente de 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)

Configuración a nivel de la ubicación


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

Para obtener información sobre el formato y los valores, consulta brands.agents.patch, brands.locations.patch y ConversationalSetting.

Ejemplos

Configuración a nivel del 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',
                            },
                        },
                    },
                ],
            },
        },
    },
}"

Configuración a nivel de la ubicación

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