Recibir mensajes

Después de registrarte en Business Mensajes, puedes recibir mensajes en nombre de tu agente de prueba. Puedes recibir mensajes para las marcas que administras crear, Verificar lanzamiento agentes de esas marcas.

Cuando un cliente envía un mensaje a un agente que administras, Business Messages envía una carga útil de JSON a tu webhook que incluye varios ID, contenido del mensaje, e información de ubicación.

Usar los registros de Business Communications Developer Console página para depurar problemas de entrega de mensajes.

Administra los mensajes entrantes

La forma en que tu agente maneja y responde los mensajes de los usuarios depende en gran medida en tu lógica empresarial. Sin embargo, generalmente, los pasos para responder a un usuario mensaje sean coherentes.

Cómo confirmar el mensaje

Para confirmar un mensaje recibido por tu webhook, muestra una respuesta HTTP válida. a los mensajes enviados a tu webhook.

Si un mensaje no se puede entregar debido al tiempo de espera, la accesibilidad del webhook redireccionamiento o problemas de permisos, Google almacena y reenvía el mensaje, con varios reintentos, durante 7 días o hasta que tu webhook reciba correctamente el mensaje.

Verifica que el mensaje sea de Google

Debes verificar que Google haya enviado el mensaje antes de procesarlo contenidos.

Para verificar que Google envió un mensaje que recibiste, sigue estos pasos:

  1. Analiza el encabezado X-Goog-Signature del mensaje. Esto es un hash, copia codificada en base64 de la carga útil del cuerpo del mensaje.
  2. Usar tu token de cliente (que se presentó cuando configuraste tu webhook). como clave, crea una HMAC SHA512 de los bytes de la carga útil del mensaje y para codificar el resultado en base64.

  3. Compara el hash X-Goog-Signature con el hash que creaste.

    • Si los hashes coinciden, confirmaste que Google envió el mensaje.
    • Si los hashes no coinciden, verifique su proceso en un hash mensaje. Si el proceso de generación de hash funciona correctamente y recibe un mensaje que crees que se te envió de forma fraudulenta comunícate con nosotros (debes firmar en con una Cuenta de Google de Business Messages).

Consulta el ejemplo de verificación de mensajes en los repositorios de GitHub de Echo Bots. en Java, Node.js, y Python.

Identifica la configuración regional

Los usuarios se comunican desde muchas ubicaciones y en muchos idiomas. Business Messages que representa las interacciones de idioma con los métodos resolvedLocale y Campos userDeviceLocale, que se basan en la memoria configuración regional. Consulta Localización e regionales.

Siempre que sea posible, enruta los mensajes y redacta respuestas según idioma preferencias.

Enrutar el mensaje según el contexto

El contexto del mensaje indica qué tipo de información podría buscar el usuario. Por ejemplo, si un usuario envía un mensaje con un placeId mensaje, envió un mensaje a una ubicación específica (identificada por placeId) y se hacer preguntas específicas de una ubicación. Del mismo modo, si un mensaje tiene una nearPlaceId, que identifica una ubicación cerca del usuario, es probable que este desea conocer información específica de la ubicación, pero el agente debe confirmar la ubicación con la que el usuario desea chatear antes de iniciar la conversación.

Con la información de contexto del mensaje, dirígelo a la ubicación que mejor más adecuado para responder:

  • Si el mensaje está en una conversación nueva y es una pregunta habitual, podrías con la automatización.
  • Si la automatización no puede responder la pregunta, dirígela a un agente humano.
  • Si la configuración regional del mensaje no coincide con la predeterminada de tu agente, enruta el a un agente humano que pueda brindar asistencia con esa configuración regional.
  • Si la pregunta es sobre una ubicación específica, enviársela a alguien que tenga información sobre esa ubicación.
  • Si el mensaje está en una conversación en curso, envíalo al agente humano. participa en la conversación.

Identifica el tipo de mensaje que envió el usuario

Los usuarios pueden enviar tres tipos de mensajes:

  • Los mensajes de texto son respuestas de formato libre.
  • Los mensajes de imagen incluyen una URL firmada para una imagen del usuario. cargado.
  • Los mensajes de sugerencia incluyen los datos de notificación de conversión y el texto del la acción sugerida o la respuesta sugerida que presionó el usuario

Procesa el contenido del mensaje

Si tu agente usa la automatización, el contenido del mensaje la lógica del agente y la siguiente respuesta en la conversación.

La forma más sencilla de identificar la intención del usuario es con datos de notificación de conversión de un respuesta sugerida o acción sugerida. Independientemente del texto asociado con la sugerencia, los datos de notificación de conversión son legibles por máquina.

Si un usuario envía un mensaje de texto, tu agente puede analizar la respuesta para palabras clave admitidas o usan la comprensión del lenguaje natural (como con el Dialogflow integración para procesar el mensaje del usuario e identificar una ruta a seguir.

Si tu agente no sabe cómo responder al mensaje del usuario, debería responder con un estado de error e intentar continuar la conversación solicitarle al usuario información adicional pidiéndole información de un de una manera diferente o transmitiendo la conversación a un agente humano.

Responde al usuario

Una vez que el agente identifica la respuesta correcta, ya sea a través de la automatización o una agente humano que envía un mensaje y continúa la conversación con el usuario.

Cuando redactes una respuesta, ten en cuenta la configuración regional del usuario. Además, puedes personaliza las respuestas recuperando los valores del objeto userInfo en cada que recibas.

Tipos de mensajes

El siguiente código muestra cómo tu agente recibe los mensajes.

Para obtener información sobre el formato y los valores, consulta UserMessage

Texto

La forma más común de responder es con texto sin formato. Los mensajes de texto tienen el siguiente formato.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "message": {
    "messageId": "MESSAGE_ID",
    "name": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "text": "MESSAGE_TEXT",
    "createTime": "MESSAGE_CREATE_TIME",
  },
  "dialogflowResponse": {
    "autoResponded": "BOOLEAN",
    "faqResponse": {
      "userQuestion": "USER_QUESTION",
      "answers": [{
        "faqQuestion": "FAQ_QUESTION",
        "faqAnswer": "FAQ_ANSWER",
        "matchConfidenceLevel": "CONFIDENCE_LEVEL",
        "matchConfidence": "CONFIDENCE_NUMERIC",
      }],
    },
  },
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Para ver las opciones de formato y valor, consulta Message

Imagen

Además de enviar texto, los usuarios pueden enviar imágenes a tu agente como mensajes. Business Messages almacena las imágenes compartidas durante 7 días en la firma URLs e incluye esas URLs en el campo text de la carga útil del mensaje.

Si tu agente incluye automatización, asegúrate de que esta sepa cómo responder si un usuario comparte una imagen. Si eres un agente humano, asegúrate de que las imágenes se pasen o que se pueda hacer clic en las URL de los mensajes.

...
"message": {
    "text": "https://storage.googleapis.com/business-messages-us/936640919331/jzsu6cdguNGsBhmGJGuLs1DS?x-goog-algorithm\u003dGOOG4-RSA-SHA256\u0026x-goog-credential\u003duranium%40rcs-uranium.iam.gserviceaccount.com%2F20190826%2Fauto%2Fstorage%2Fgoog4_request\u0026x-goog-date\u003d20190826T201038Z\u0026x-goog-expires\u003d604800\u0026x-goog-signedheaders\u003dhost\u0026x-goog-signature\u003d89dbf7a74d21ab42ad25be071b37840a544a43d68e67270382054e1442d375b0b53d15496dbba12896b9d88a6501cac03b5cfca45d789da3e0cae75b050a89d8f54c1ffb27e467bd6ba1d146b7d42e30504c295c5c372a46e44728f554ba74b7b99bd9c6d3ed45f18588ed1b04522af1a47330cff73a711a6a8c65bb15e3289f480486f6695127e1014727cac949e284a7f74afd8220840159c589d48dddef1cc97b248dfc34802570448242eac4d7190b1b10a008404a330b4ff6f9656fa84e87f9a18ab59dc9b91e54ad11ffdc0ad1dc9d1ccc7855c0d263d93fce6f999971ec79879f922b582cf3bb196a1fedc3eefa226bb412e49af7dfd91cc072608e98"
  }
...

Para ver las opciones de formato y valor, consulta Message

Sugerencia

Las respuestas sugeridas y las acciones sugeridas permiten a los usuarios responder o realizar acciones con un toque. Cuando un usuario presiona una sugerencia, el agente recibe una carga útil con el texto de la sugerencia y los datos de notificación de conversión.

Los mensajes de sugerencia tienen el siguiente formato.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "suggestionResponse": {
    "message": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "postbackData": "POSTBACK_DATA",
    "createTime": "RESPONSE_CREATE_TIME",
    "text": "SUGGESTION_TEXT",
    "suggestionType": "SUGGESTION_TYPE",
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Para ver las opciones de formato y valor, consulta SuggestionResponse

Solicitud de autenticación

La sugerencia de solicitud de autenticación permite que los usuarios accedan con un OAuth de datos para proporcionar detalles de identidad al agente o realizar acciones en la infraestructura nombre. Consulta Autenticación con OAuth

Si un usuario accede correctamente con el proveedor de OAuth especificado, el agente recibe una carga útil con el código de autorización. Si un usuario no logra cuando accedes, el agente recibe una carga útil con detalles del error.

Los mensajes de solicitud de autenticación tienen el siguiente formato.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "authenticationResponse": {
    "code": "AUTHORIZATION_CODE",
    "redirect_uri": "REDIRECT_URI",
    "errorDetails": {
      "error": "ERROR",
      "errorDescription": "ERROR_DESCRIPTION",
    },
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Para ver las opciones de formato y valor, consulta AuthenticationResponse

Contexto del mensaje

Cada mensaje contiene información contextual sobre dónde se originó.

...
  "context": {
    "customContext": "CUSTOM_CONTEXT",
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "nearPlaceId": "NEARBY_LOCATION_PLACE_ID",
    "deflectedPhoneNumber": "DEFLECTED_PHONE_NUMBER",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
    "widget": {
      "url": "WEBSITE_URL",
      "widgetContext": "WIDGET_CONTEXT",
    },
  },
...
Campo Descripción
customContext Datos contextuales que especifica el socio.
entryPoint La plataforma de mensajería desde la que el usuario inició la conversación, según lo definido de EntryPoint.
placeId Un identificador único de la base de datos de Google Places para la ubicación que el usuario envió. Solo aparecen en mensajes de ubicaciones específicas puntos de entrada.
nearPlaceId Un identificador único de la base de datos de Google Places para el primer ubicación en un paquete local. Confirma las ubicaciones con las que los usuarios desean chatear. cuando recibes valores nearPlaceId.
deflectedPhoneNumber El número de teléfono al que Business Messages no pudo llamar el usuario cuando comenzó la conversación.
resolvedLocale

La mejor coincidencia calculada con la configuración regional del usuario (informada en userDeviceLocale) y las configuraciones regionales que admite el agente (determinada por la configuración de conversación especificada). Consulta Localización y Comenzar la conversación.

El valor de configuración regional es una etiqueta de idioma IETF BCP 47 con formato correcto.

userInfo.displayName El nombre del usuario que envió el mensaje. Si el usuario rechaza identidad compartida, este campo está vacío.
userInfo.userDeviceLocale La configuración regional del usuario, informada por su dispositivo, como un formato Etiqueta de idioma IETF BCP 47.
widget.url Es la URL del sitio web en el que se lanzó la plataforma de conversación.
widget.widgetContext El Valor del atributo data-bm-widget-context del widget usado para iniciar la conversación.

Historial de conversaciones

Google no proporciona historiales de conversaciones. Mantén tu propio historial conversaciones, de una manera que satisfaga su política de privacidad y las prácticas recomendadas para que puedas enviar respuestas informadas a futuros mensajes de los usuarios.