Invia e ricevi eventi per arricchire le conversazioni

Nelle conversazioni Business Messages, gli eventi informano e arricchiscono l'esperienza di conversazione tra utenti e agenti comunicando contenuti che non sono messaggi. Per gli utenti, gli eventi vengono visualizzati come notifiche all'interno delle conversazioni e si attivano in base a varie azioni che gli utenti potrebbero eseguire. Gli agenti ricevono eventi nei propri webhook e inviano eventi con chiamate API.

Gli agenti devono essere a conoscenza degli eventi avviati dall'utente e essere in grado di rispondere di conseguenza. Ad esempio, se un utente richiede un operatore, ma l'agente non può rispondere in modo positivo o negativo alla richiesta, l'esperienza utente ne risulterebbe negativa.

Tipi di eventi

Ogni evento appartiene a un determinato tipo:

  • Gli eventi Richiesta di operatore indicano che l'utente vuole parlare direttamente con un operatore.

    Se l'agente può eseguire la transizione della conversazione a un rappresentante umano, invia un evento Rappresentante che ha partecipato, quindi invia i messaggi successivi di un rappresentante umano.

    Se l'agente non può eseguire la transizione della conversazione a un rappresentante umano, invia un messaggio per avvisare l'utente e informarlo quando sarà disponibile un operatore.

  • Gli eventi rappresentati nel gruppo/a sinistra indicano agli utenti quando gli agenti partecipano a una conversazione o la lasciano. Questi eventi mostrano notifiche nella conversazione e aiutano a definire le aspettative degli utenti in merito alla reattività e al tipo di domande che possono porre.

    Rappresentante entrato/a sinistra

  • Gli eventi di digitazione indicano che l'utente o l'agente sta digitando.

    Per gli utenti, il valore booleano isTyping indica lo stato di digitazione. Ogni modifica dello stato attiva un nuovo evento.

    Gli agenti possono inviare eventi TYPING_STARTED e TYPING_STOPPED per visualizzare gli indicatori di digitazione nella conversazione. Gli eventi di digitazione degli agenti indicano agli utenti che un rappresentante umano sta scrivendo una risposta o che l'automazione backend sta elaborando la propria domanda o richiesta.

    Indicatore di digitazione

Invia un evento

Per inviare un evento, esegui il comando seguente. Sostituisci i seguenti elementi:

  • CONVERSATION_ID con l'identificatore della conversazione a cui vuoi inviare il sondaggio
  • EVENT_ID con un identificatore univoco per l'evento
  • PATH_TO_SERVICE_ACCOUNT_KEY con il percorso della chiave dell'account di servizio sulla macchina
  • EVENT_TYPE con un valore di EventType
  • REPRESENTATIVE_NAME con il nome lato utente dell'agente dal vivo o dell'automazione che crea l'evento
  • REPRESENTATIVE_TYPE con un valore di 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',
  },
}"

Per le opzioni di formattazione e valore, consulta conversations.events.

Esempio: inviare un rappresentante che ha partecipato all'evento

# 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'
  }
}"

Ricevi un evento

Quando un utente attiva un evento sul proprio dispositivo, l'agente riceve l'evento nel suo webhook. Ricevi ed elabora gli eventi nello stesso modo in cui ricevi i messaggi.

Gli eventi avviati dall'utente hanno il seguente formato.

{
  "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",
  }
}

Per le opzioni di formattazione e valore, consulta UserMessage.