Après vous être inscrit auprès de Business Messages vous pouvez recevoir des messages au nom de votre agent de test. Vous pouvez recevoir des messages pour les marques que vous gérez create, valider et lancement des agents de ces marques.
Lorsqu'un client envoie un message à un agent que vous gérez, Business Messages envoie à votre webhook une charge utile JSON contenant différents ID, le contenu du message et des informations de localisation.
Utiliser les journaux de la console pour les développeurs Business Communications pour déboguer les problèmes de distribution des messages.
Gérer les messages entrants
La manière dont votre agent traite les messages des utilisateurs et y répond dépend fortement de votre logique métier. En général, les étapes à suivre pour répondre à un utilisateur sont cohérents.
Confirmer le message
Pour accuser réception d'un message reçu par votre webhook, renvoyez une réponse HTTP valide aux messages envoyés à votre webhook.
Si un message échoue en raison du délai de distribution, de la joignabilité du webhook, les problèmes de redirection ou d'autorisation, Google stocke et transfère le message plusieurs tentatives pendant 7 jours ou jusqu'à ce que le webhook reçoive .
Vérifier que le message provient bien de Google
Vous devez vérifier que Google a envoyé le message avant de le traiter contenus.
Pour vérifier que Google a envoyé un message que vous avez reçu,
- Analyse l'en-tête
X-Goog-Signature
du message. Il s'agit d'une valeur hachée, de la charge utile du corps du message, encodée en base64. À l'aide de votre jeton client (présenté lors de la configuration de votre webhook) en tant que clé, créez un HMAC SHA512 des octets de la charge utile du message et Encodez le résultat en base64.
Comparez le hachage
X-Goog-Signature
à celui que vous avez créé.- Si les hachages correspondent, vous avez confirmé que Google a envoyé le message.
- Si les valeurs de hachage ne correspondent pas, vérifiez votre processus de hachage sur une propriété connue . Si votre processus de hachage fonctionne correctement et que vous recevez une qui vous a été envoyé de manière frauduleuse, nous contacter (vous devez signer dans avec un compte Google Business Messages).
Consultez l'exemple de vérification de message dans les dépôts GitHub pour les bots Echo. en Java, Node.js et Python.
Identifier les paramètres régionaux
Les utilisateurs communiquent depuis de nombreux pays et dans de nombreuses langues. Business Messages
représente l'expérience utilisateur préférences linguistiques avec les resolvedLocale
et
Champs userDeviceLocale
, basés sur les performances des appareils paramètres régionaux.
Voir la section Localisation et
paramètres régionaux.
Dans la mesure du possible, acheminez les messages et rédigez des réponses en fonction des besoins langue préférences.
Acheminer le message en fonction de son contexte
Le contexte du message permet de déterminer le type d'informations que l'utilisateur est susceptible de rechercher.
Par exemple, si un utilisateur envoie un message avec
placeId
il a envoyé un message à un lieu spécifique (identifié par placeId
) et
susceptibles de poser des questions
spécifiques au lieu. De même, si un message contient
nearPlaceId
, qui identifie un emplacement à proximité de l'utilisateur, celui-ci est probablement
souhaite connaître des informations spécifiques au lieu, mais l'agent doit confirmer
lieu avec lequel l'utilisateur souhaite discuter avant de démarrer la conversation.
Avec les informations contextuelles du message, acheminez-le vers l'emplacement le plus adapté adaptés pour répondre:
- Si le message se trouve dans une nouvelle conversation et s'il s'agit d'une question fréquente, vous pouvez grâce à l'automatisation.
- Si l'automatisation ne parvient pas à répondre à la question, transmettez-la à un agent.
- Si les paramètres régionaux du message ne correspondent pas aux paramètres régionaux par défaut de votre agent, routez à un agent qui prend en charge ces paramètres régionaux.
- Si la question concerne un lieu spécifique, transmettez-la à une personne ayant des informations sur ce lieu.
- Si le message se trouve dans une conversation en cours, acheminez-le vers l'agent réel. participer à la conversation.
Identifier le type de message envoyé par l'utilisateur
Les utilisateurs peuvent envoyer trois types de messages:
- Les SMS sont des réponses au format libre.
- Les messages de type Image contiennent une URL signée pour une image que l'utilisateur importées.
- Les messages de suggestion incluent les données de postback et le texte des l'action suggérée ou la réponse suggérée sur laquelle l'utilisateur a appuyé.
Traiter le contenu du message
Si votre agent utilise l'automatisation, le contenu du message utilisateur doit guider votre la logique de l'agent et la réponse suivante dans la conversation.
Le moyen le plus simple d'identifier l'intention de l'utilisateur est d'utiliser les données de postback d'une une suggestion de réponse ou d'action. Indépendamment du texte associé à la suggestion, les données de postback sont lisibles par un ordinateur.
Si un utilisateur envoie un SMS, votre agent peut analyser la réponse pour des mots clés pris en charge ou si vous utilisez la compréhension du langage naturel (par exemple, Dialogflow intégration pour traiter le message de l'utilisateur et identifier une voie à suivre.
Si votre agent ne sait pas comment répondre au message de l'utilisateur, il doit répondre avec un état d'erreur et essayer de poursuivre la conversation en en invitant l'utilisateur à fournir des informations supplémentaires, en lui demandant de saisir une d'une manière différente, ou en transmettant la conversation à un agent.
Répondre à l'utilisateur
Une fois que l'agent a identifié la bonne réponse, soit de façon automatisée, soit un agent réel qui envoie une message et poursuit la conversation avec l'utilisateur.
Lorsque vous rédigez une réponse, tenez compte des paramètres régionaux de l'utilisateur. Vous pouvez également
personnaliser les réponses en récupérant des valeurs de l'objet userInfo
dans chaque
message que vous recevez.
Types de messages
Le code suivant montre comment votre agent reçoit les messages.
Pour obtenir des informations sur la mise en forme et les valeurs, consultez
UserMessage
Texte
La façon la plus courante de répondre consiste à utiliser du texte brut. Les SMS contiennent au format suivant.
{ "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", }
Pour connaître les options de mise en forme et de valeur, consultez
Message
Image
En plus d'envoyer du texte, les utilisateurs peuvent envoyer des images à votre agent sous forme de messages.
Business Messages stocke les images partagées pendant sept jours à l'adresse
URL
et inclut ces URL dans le champ text
de la charge utile du message.
Si votre agent inclut une automatisation, assurez-vous qu'elle sait comment répondre si un utilisateur partage une image. Pour les agents humains, assurez-vous que les images sont transmises ou que les URL dans les messages sont cliquables.
...
"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"
}
...
Pour connaître les options de mise en forme et de valeur, consultez
Message
Suggestion
Les réponses et actions suggérées permettent aux utilisateurs de répondre ou d'effectuer d'un simple geste. Lorsqu'un utilisateur appuie sur une suggestion, l'agent reçoit une charge utile avec le texte des suggestions et les données de postback.
Les messages de suggestion se présentent comme suit.
{ "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", }
Pour connaître les options de mise en forme et de valeur, consultez
SuggestionResponse
Demande d'authentification
La suggestion de requête d'authentification permet aux utilisateurs de se connecter avec un de fournir des informations d'identité à l'agent ou de lui permettre d'effectuer des actions sur les données au nom de l'utilisateur. Consultez la section S'authentifier avec OAuth.
Si un utilisateur se connecte avec le fournisseur OAuth spécifié, l'agent reçoit une charge utile avec le code d'autorisation. Si un utilisateur ne parvient pas à lors de la connexion, l'agent reçoit une charge utile contenant les détails de l'erreur.
Les messages de demande d'authentification sont au format suivant.
{ "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", }
Pour connaître les options de mise en forme et de valeur, consultez
AuthenticationResponse
Contexte du message
Chaque message contient des informations contextuelles sur son origine.
... "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", }, }, ...
Champ | Description |
---|---|
customContext |
Données de contexte spécifiées par le partenaire. |
entryPoint |
Surface de messagerie à partir de laquelle l'utilisateur a commencé la conversation, telle que définie par EntryPoint. |
placeId |
Identifiant unique de l'emplacement issu de la base de données Google Places envoyé par l'utilisateur. Il apparaît uniquement dans les messages associés à un lieu spécifique. les points d'entrée. |
nearPlaceId |
Un identifiant unique issu de la base de données Google Places pour le premier
dans un pack local. Confirmer les établissements avec lesquels les utilisateurs souhaitent discuter
lorsque vous recevez des valeurs nearPlaceId . |
deflectedPhoneNumber |
Numéro de téléphone que l'utilisateur a refusé d'appeler à Business Messages quand la conversation a commencé. |
resolvedLocale |
La meilleure correspondance calculée pour les paramètres régionaux de l'utilisateur (indiquée dans
La valeur des paramètres régionaux correspond à un tag de langue IETF BCP 47 valide. |
userInfo.displayName |
Nom de l'utilisateur ayant envoyé le message. Si l'utilisateur désactive partage d'identité, ce champ est vide. |
userInfo.userDeviceLocale |
Les paramètres régionaux de l'utilisateur, indiqués par l'appareil, sont au format Balise de langue IETF BCP 47. |
widget.url |
URL du site Web sur lequel la surface de conversation a été lancée. |
widget.widgetContext |
Le
Valeur de l'attribut data-bm-widget-context du widget utilisé
pour engager la conversation. |
Historique de la conversation
Google ne fournit pas d'historique des conversations. Conservez votre propre historique tout en respectant vos règles de confidentialité et vos bonnes pratiques, afin que vous puissiez envoyer des réponses éclairées aux futurs messages des utilisateurs.