Kirim dan terima peristiwa untuk memperkaya percakapan

Dalam percakapan Business Messages, peristiwa memberi tahu dan memperkaya percakapan pengalaman pengguna dan agen dengan mengomunikasikan konten non-pesan. Sebagai pengguna, peristiwa ditampilkan sebagai notifikasi dalam percakapan mereka dan pemicu berdasarkan berbagai tindakan yang mungkin dilakukan pengguna. Agen menerima acara di webhook dan mengirim peristiwa dengan panggilan API.

Agen harus menyadari peristiwa yang dimulai oleh pengguna dan dapat merespons sebagaimana mestinya. Misalnya, jika pengguna meminta agen langsung, tetapi agen tidak dapat merespons secara positif atau negatif terhadap permintaan tersebut, hal ini akan mengakibatkan pengguna yang pengalaman yang lancar bagi developer.

Jenis peristiwa

Setiap peristiwa dimiliki oleh jenis tertentu:

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

    Jika agen dapat mengalihkan percakapan ke perwakilan manusia, kirimkan peristiwa Penggabungan perwakilan, lalu mengirim pesan berikutnya dari yang mewakili manusia.

    Jika agen tidak dapat mengalihkan percakapan kepada perwakilan manusia, kirim pesan untuk memberi tahu pengguna dan memberi tahu mereka saat agen langsung akan yang tersedia.

  • Peristiwa Perwakilan bergabung/keluar memberi tahu pengguna saat agen langsung bergabung atau meninggalkan percakapan. Acara ini menampilkan notifikasi dalam percakapan dan membantu menetapkan ekspektasi pengguna seputar responsivitas dan jenis yang dapat mereka ajukan.

    Perwakilan bergabung/keluar

  • Peristiwa Mengetik menunjukkan bahwa pengguna atau agen sedang mengetik.

    Untuk pengguna, boolean isTyping menunjukkan status pengetikan mereka. Setiap status {i>changelog<i} akan memicu peristiwa baru.

    Agen dapat mengirim peristiwa TYPING_STARTED dan TYPING_STOPPED untuk ditampilkan indikator pengetikan dalam percakapan. Mengetik peristiwa dari agen akan memberi tahu pengguna perwakilan manusia menyusun respons atau bahwa backend otomatisasi memproses pertanyaan atau permintaan mereka.

    Indikator pengetikan

Mengirim peristiwa

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

  • CONVERSATION_ID dengan ID percakapan yang Anda inginkan untuk mengirim survei
  • EVENT_ID dengan ID unik untuk acara
  • PATH_TO_SERVICE_ACCOUNT_KEY dengan jalur ke akun layanan Anda kunci di komputer Anda
  • EVENT_TYPE dengan nilai dari EventType
  • REPRESENTATIVE_NAME dengan nama agen langsung yang dapat dilihat pengguna 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 bergabung ke perwakilan

# 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 akan menerima peristiwa tersebut di webhook-nya. 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