Enrichissez les conversations en envoyant et en recevant des événements

Dans les conversations Business Messages, les événements informent et enrichissent l'expérience de conversation des utilisateurs et des agents en communiquant le contenu autre que les messages. Pour les utilisateurs, les événements s'affichent en tant que notifications dans leurs conversations et se déclenchent en fonction de diverses actions qu'ils peuvent effectuer. Les agents reçoivent des événements au niveau de leurs webhooks et envoient des événements via des appels d'API.

Les agents doivent être informés des événements déclenchés par l'utilisateur et être en mesure d'y répondre en conséquence. Par exemple, si un utilisateur demande un agent en direct, mais que celui-ci ne peut pas répondre de manière positive ou négative à la requête, cela nuit à l'expérience utilisateur.

Types d'événement

Chaque événement appartient à un type particulier:

  • Les événements Live agent requested (Demande d'agent en direct) indiquent que l'utilisateur souhaite parler directement à un agent en direct.

    Si l'agent peut effectuer la transition de la conversation vers un représentant humain, envoyez un événement Représentant rejoint, puis envoyez les messages ultérieurs d'un représentant humain.

    Si l'agent ne peut pas transférer la conversation à un représentant humain, envoyez un message pour avertir l'utilisateur et l'informer lorsqu'un agent en direct sera disponible.

  • Les événements de type rejoint ou gauche indiquent aux utilisateurs quand des agents en direct rejoignent ou quittent une conversation. Ces événements affichent des notifications dans la conversation et permettent de définir les attentes des utilisateurs concernant la réactivité et les types de questions qu'ils peuvent poser.

    Représentant rejoint/gauche

  • Les événements de typage indiquent que l'utilisateur ou l'agent est en train d'écrire.

    Pour les utilisateurs, la valeur booléenne isTyping indique leur état de saisie. Chaque changement d'état déclenche un nouvel événement.

    Les agents peuvent envoyer des événements TYPING_STARTED et TYPING_STOPPED pour afficher les indicateurs de saisie dans la conversation. La saisie d'événements à partir d'agents indique aux utilisateurs qu'un représentant humain est en train de rédiger une réponse ou que l'automatisation du backend traite sa question ou sa requête.

    Indicateur de saisie

Envoyer un événement

Pour envoyer un événement, exécutez la commande suivante. Remplacez les éléments suivants:

  • CONVERSATION_ID par l'identifiant de la conversation à laquelle vous souhaitez envoyer l'enquête ;
  • EVENT_ID par un identifiant unique pour l'événement ;
  • PATH_TO_SERVICE_ACCOUNT_KEY par le chemin d'accès à la clé de votre compte de service sur votre ordinateur ;
  • EVENT_TYPE avec une valeur de EventType
  • REPRESENTATIVE_NAME par le nom visible par l'utilisateur de l'agent en direct ou de l'automatisation créant l'événement ;
  • REPRESENTATIVE_TYPE avec une valeur de RepresentativeType
curl -X POST "https://businessmessages.googleapis.com/v1/conversations/CONVERSATION_ID/events?eventId=EVENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-messages" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businessmessages`" \
-d "{
  'eventType': 'EVENT_TYPE',
  'representative': {
    'avatarImage': 'REPRESENTATIVE_AVATAR_URL',
    'displayName': 'REPRESENTATIVE_NAME',
    'representativeType': 'REPRESENTATIVE_TYPE',
  },
}"

Pour en savoir plus sur les options de mise en forme et de valeurs, consultez conversations.events.

Exemple: Envoyer un événement rejoint par un représentant

# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

#     https://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This code sends a REPRESENTATIVE_JOINED event to the user.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/message/events#send

# Replace the __CONVERSATION_ID__ with a conversation id that you can send messages to
# Make sure a service account key file exists at ./service_account_key.json

curl -X POST "https://businessmessages.googleapis.com/v1/conversations/__CONVERSATION_ID__/events?eventId=6a0af2c6-787d-4097-870d-93fe20351747" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-messages" \
-H "$(oauth2l header --json ./service_account_key.json businessmessages)" \
-d "{
  'eventType': 'REPRESENTATIVE_JOINED',
  'representative': {
    'avatarImage': 'https://developers.google.com/identity/images/g-logo.png',
    'displayName': 'Chatbot',
    'representativeType': 'HUMAN'
  }
}"

Recevoir un événement

Lorsqu'un utilisateur déclenche un événement sur son appareil, votre agent reçoit l'événement sur son webhook. Recevoir et traiter les événements de la même manière que vous recevez des messages.

Les événements déclenchés par l'utilisateur se présentent comme suit :

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "requestId": "REQUEST_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "sendTime": "SEND_TIME",
  "userStatus": {
    "isTyping": "BOOLEAN",
    "requestedLiveAgent": "BOOLEAN",
    "createTime": "CREATION_TIME",
  }
}

Pour en savoir plus sur les options de mise en forme et de valeurs, consultez UserMessage.