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:
- Analiza el encabezado
X-Goog-Signature
del mensaje. Esto es un hash, copia codificada en base64 de la carga útil del cuerpo del mensaje. 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.
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
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.