Mengirim dan menerima peristiwa untuk memperkaya percakapan

Dalam percakapan Business Messages, peristiwa akan menginformasikan dan memperkaya pengalaman percakapan bagi pengguna dan agen dengan menyampaikan konten non-pesan. Untuk pengguna, peristiwa ditampilkan sebagai notifikasi dalam percakapan dan dipicu berdasarkan berbagai tindakan yang mungkin dilakukan pengguna. Agen menerima peristiwa di webhook mereka dan mengirim peristiwa dengan panggilan API.

Agen harus mengetahui peristiwa yang dimulai pengguna dan dapat merespons dengan tepat. Misalnya, jika pengguna meminta agen langsung, tetapi agen tidak dapat merespons positif atau negatif terhadap permintaan tersebut, hal ini akan menyebabkan pengalaman pengguna yang buruk.

Jenis peristiwa

Setiap peristiwa termasuk dalam jenis tertentu:

  • Peristiwa agen yang diminta menunjukkan bahwa pengguna ingin berbicara langsung dengan agen langsung.

    Jika agen dapat mentransisikan percakapan ke perwakilan manusia, kirim peristiwa Perwakilan yang bergabung, lalu kirim pesan berikutnya dari perwakilan manusia.

    Jika agen tidak dapat mentransisikan percakapan ke perwakilan manusia, kirim pesan untuk memberi tahu pengguna dan memberi tahu mereka kapan agen langsung akan tersedia.

  • Peristiwa representatif bergabung/kiri memberi tahu pengguna saat agen aktif bergabung atau keluar dari percakapan. Peristiwa ini menampilkan notifikasi dalam percakapan dan membantu menetapkan ekspektasi pengguna mengenai tingkat respons, serta jenis pertanyaan yang dapat mereka ajukan.

    Perwakilan bergabung/kiri

  • Peristiwa Mengetik menunjukkan bahwa pengguna atau agen sedang mengetik.

    Untuk pengguna, boolean isTyping menunjukkan status pengetikan mereka. Setiap perubahan status akan memicu peristiwa baru.

    Agen dapat mengirim peristiwa TYPING_STARTED dan TYPING_STOPPED untuk menampilkan indikator mengetik dalam percakapan. Peristiwa pengetikan dari agen memberi tahu pengguna bahwa perwakilan manusia sedang menulis respons atau bahwa otomatisasi backend sedang memproses pertanyaan atau permintaan mereka.

    Indikator pengetikan

Mengirim peristiwa

Untuk mengirim peristiwa, jalankan perintah berikut. Ganti item berikut:

  • CONVERSATION_ID dengan ID percakapan yang ingin Anda kirim surveinya
  • EVENT_ID dengan ID unik untuk peristiwa
  • PATH_TO_SERVICE_ACCOUNT_KEY dengan jalur ke kunci akun layanan di mesin Anda
  • EVENT_TYPE dengan nilai dari EventType
  • REPRESENTATIVE_NAME dengan nama yang dilihat pengguna dari agen langsung atau otomatisasi yang membuat peristiwa
  • REPRESENTATIVE_TYPE dengan nilai dari 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',
  },
}"

Untuk opsi pemformatan dan nilai, lihat conversations.events.

Contoh: Mengirim acara perwakilan yang diikuti

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

Menerima peristiwa

Saat pengguna memicu peristiwa di perangkatnya, agen Anda menerima peristiwa tersebut di webhooknya. Menerima dan memproses peristiwa dengan cara yang sama seperti Anda menerima pesan.

Peristiwa yang dimulai pengguna memiliki format berikut.

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

Untuk opsi pemformatan dan nilai, lihat UserMessage.