Comenzar la conversación

En las conversaciones con los agentes de Business Messages, el mensaje de bienvenida establece la para la interacción. También permite que los usuarios sepan lo que el agente puede hacer, 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 El agente también puede mostrar activadores de conversación. para guiar a los usuarios por rutas conocidas o frecuentes.

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

Temas de conversación

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

Puedes especificar la configuración de 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 en todos los puntos de entrada.

    Es posible que comience un mensaje de bienvenida a nivel del agente "Gracias por comunicarte con nosotros Ejecutores de punto de puente..." Los temas de conversación pueden enfocarse en acciones o información en toda la empresa.

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

    Es posible que comience un mensaje de bienvenida a nivel de la ubicación "Gracias por comunicarte con nosotros Bridgepoint Runners en Amphitheatre Pkwy...” Los disparadores de conversación pueden enfocarse en tareas o información basadas en la ubicación. Es posible que un mensaje sin conexión mencione cuándo se abrirá la ubicación próximamente.

Configuraciones regionales

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

Esta coincidencia de configuración regional se informa en cada mensaje resolvedLocale. Tú puede especificar el defaultLocale de un agente o una ubicación, que se resolvieron coincidencia de configuración regional. Consulta Localización e regionales.

Business Messages usa la configuración regional resuelta para determinar el tipo de conversación de configuración que se aplique.

Mensaje de bienvenida

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

Temas de conversación

Si bien un buen mensaje de bienvenida abarca la funcionalidad de un agente a un alto nivel Es abierta, buenas preguntas para iniciar conversaciones guiar a los usuarios a preguntas frecuentes o a funciones conocidas.

Los temas de conversación aparecen como sugerencias apiladas verticalmente respuestas y sigue directamente el mensaje de bienvenida. Cuando un usuario presiona una conversación el agente recibe contenido predefinido y datos de notificación de conversión cuando especificas el activador.

Si un agente admite la funcionalidad automatizada para ciertas solicitudes, de conversaciones pueden asignarse a esas solicitudes, lo que te permite confiar en entradas de automatización y enviar preguntas de usuario de formato libre a los agentes humanos que estén listos para una respuesta en particular.

Un agente puede tener un máximo de 5 temas de conversación tener un máximo de 35 caracteres.

Para agregar o editar disparadores de conversación, consulta Actualizar conversaciones Configuración.

Mensajes sin conexión

Cuando un usuario inicia una conversación con un agente fuera de las operaciones del agente horas (según lo define MessagingAvailability), el usuario recibe el mensaje sin conexión del agente. Solo el representante humano disponibilidad se tiene en cuenta cuando se activa un mensaje sin conexión. Los agentes que solo pedir a los representantes de bots que envíen siempre un mensaje de bienvenida Un buen mensaje sin conexión

  • Comparte el motivo por el que 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 de los disparadores de conversación.

Mensaje de error sin conexión

"Lo sentimos, cerramos".

Mensaje sin conexión correcto

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

Para editar un mensaje sin conexión, consulta Cómo actualizar la configuración de conversaciones.

Actualiza la configuración de conversaciones

Para administrar un mensaje de bienvenida o temas de conversación, debes realizar una solicitud PATCH. en el curso Business Communications API para actualizar el campo conversationalSettings de un agente o una ubicación.

Cuando actualices el campo conversationalSettings, debes incluir valores de todos los campos del ConversationalSetting . Las solicitudes de actualización reemplazan el contenido de todos los campos que edites, incluido cualquier campo secundario. Por ejemplo, si solicitas modificar un mensaje de bienvenida, pero no incluyes disparadores de conversación, la solicitud quita cualquier anterior temas de conversación.

Requisitos previos

Antes de actualizar la configuración de conversaciones, 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 es name (por ejemplo, "brands/12345/agents/67890")

    Si no conoces la name del agente, consulta Enumerar todos los agentes de un brand [marca].

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

    Si no conoces la name de la ubicación, consulta Enumerar todas las ubicaciones para un brand [marca].

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

  • Nuevo mensaje de bienvenida

  • URL de la Política de Privacidad

  • Texto para iniciar conversaciones (opcional)

  • Datos de notificación de conversión para disparadores de conversación (opcional)

  • Nuevo mensaje sin conexión (opcional)

Si no conoces los valores actuales de conversationalSettings, consulta Obtener agentes información y Obtener ubicación información.

Cómo enviar la solicitud de actualización

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

Si no quieres disparadores 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 el Java Business Biblioteca cliente de comunicaciones.

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