Recevoir des messages

Les agents RBM reçoivent les messages et les événements via un webhook. Lorsqu'un utilisateur envoie un message à votre agent, le service RBM de Google envoie le au webhook configuré. Votre agent peut alors décoder le message, le traiter et envoyer une réponse à l'utilisateur.

L'utilisateur envoie un message à l'agent.

Les utilisateurs peuvent envoyer n'importe quel texte, emplacements ou fichiers autorisés par leur client RCS. Votre agent doit gérer le texte, les emplacements ou les fichiers que l'utilisateur est susceptible d'envoyer, car ainsi que tous les états d'erreur que ces messages pourraient déclencher.

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.

Étape 1: Identifiez le type de message envoyé par l'utilisateur

Les utilisateurs peuvent envoyer quatre types de messages:

  • Les SMS sont des réponses au format libre.
  • 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é.
  • Les messages de localisation incluent des valeurs de latitude et de longitude.

  • Les messages File incluent l'URI d'un fichier et les données associées.

Étape 2: Traitez le contenu du message

Le contenu du message utilisateur doit guider la logique de votre 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 mots clés pris en charge ou utiliser le NLU (comme Dialogflow) pour traiter le message de l'utilisateur et à identifier la voie à suivre.

Les messages d'emplacement et de fichier n'incluent pas de texte ni de données de postback. Par conséquent, votre l'agent doit tenir compte du contexte de la conversation et des messages récents avant de répondre.

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 différentes manières, ou en présentant des suggestions de réponses et d'actions qui l'agent sait comment répondre.

Étape 3: Appliquez la logique métier pour l'interaction

Une fois que l'agent a identifié la réponse correcte au message de l'utilisateur, recueille les informations nécessaires à partir de votre infrastructure avec d'autres systèmes, si nécessaire, pour appliquer la logique métier d'interaction.

Étape 4: Répondez à l'utilisateur

Une fois que l'agent a mis en œuvre la logique métier pour l'interaction, il envoie les un autre message et poursuit la conversation avec l'utilisateur.

Exemples

Le code suivant montre comment votre agent reçoit les messages. Pour le formatage et des informations sur la valeur, consultez UserMessage

L'agent reçoit le texte

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "text": "Hello, world!"
}

L'agent reçoit un message d'une suggestion

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "suggestionResponse": {
    "postbackData": "suggestion_1",
    "text": "Suggestion #1"
  }
}

L'agent reçoit un emplacement

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "location": {
    "latitude": 37.422000,
    "longitude": -122.084056
  }
}

L'agent reçoit un fichier

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "userFile": {
    "thumbnail": {
      "mimeType": "image/jpeg",
      "fileSizeBytes": 1280,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8",
      "fileName": "4_animated.jpeg"
    },
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  }
}

Gérer les événements entrants

Votre agent reçoit des notifications lorsque les messages qu'il envoie aux utilisateurs sont livré et lu.

Le code suivant montre comment votre agent reçoit les messages. Pour le formatage et des informations sur la valeur, consultez UserEvent.

Message envoyé à l'utilisateur

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "DELIVERED"
}

Message lu par l'utilisateur

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "READ"
}

L'utilisateur rédige un message…

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "agentId": "AGENT_ID"
}