Gửi và nhận sự kiện để làm phong phú thêm các cuộc trò chuyện

Trong các cuộc trò chuyện trên Business Messages, các sự kiện cung cấp thông tin và làm phong phú thêm trải nghiệm trò chuyện của cả người dùng và nhân viên hỗ trợ bằng cách truyền đạt nội dung không phải tin nhắn. Đối với người dùng, sự kiện xuất hiện dưới dạng thông báo trong cuộc trò chuyện của họ và kích hoạt dựa trên nhiều hành động mà người dùng có thể thực hiện. Nhân viên hỗ trợ nhận các sự kiện tại webhook và gửi sự kiện bằng lệnh gọi API.

Nhân viên hỗ trợ cần nhận biết được các sự kiện do người dùng khởi tạo và có thể phản hồi theo cách phù hợp. Ví dụ: nếu người dùng yêu cầu một nhân viên hỗ trợ trực tiếp nhưng nhân viên hỗ trợ không thể phản hồi tích cực hoặc tiêu cực với yêu cầu, thì sẽ dẫn đến trải nghiệm người dùng kém.

Loại sự kiện

Mỗi sự kiện thuộc một loại cụ thể:

  • Sự kiện Tác nhân trực tiếp được yêu cầu cho biết rằng người dùng muốn nói chuyện trực tiếp với nhân viên hỗ trợ.

    Nếu nhân viên hỗ trợ có thể chuyển đổi cuộc trò chuyện cho người đại diện do con người thực hiện, hãy gửi một sự kiện Đại diện đã tham gia, sau đó gửi tin nhắn tiếp theo từ một người đại diện.

    Nếu nhân viên hỗ trợ không thể chuyển đổi cuộc trò chuyện sang người đại diện của con người, hãy gửi tin nhắn để thông báo cho người dùng và thông báo cho họ thời điểm có nhân viên hỗ trợ trực tiếp.

  • Sự kiện đã tham gia/trái cho người dùng biết thời điểm nhân viên hỗ trợ trực tiếp tham gia hoặc rời khỏi một cuộc trò chuyện. Những sự kiện này hiển thị thông báo trong cuộc trò chuyện và giúp người dùng có kỳ vọng hợp lý về mức độ phản hồi và các loại câu hỏi mà họ có thể đặt ra.

    Người đại diện đã tham gia/trái

  • Các sự kiện Nhập cho biết người dùng hoặc nhân viên hỗ trợ đang nhập.

    Đối với người dùng, boolean isTyping cho biết trạng thái nhập của họ. Mỗi thay đổi trạng thái sẽ kích hoạt một sự kiện mới.

    Nhân viên hỗ trợ có thể gửi các sự kiện TYPING_STARTEDTYPING_STOPPED để hiển thị các chỉ báo nhập trong cuộc trò chuyện. Việc nhập các sự kiện từ nhân viên hỗ trợ cho người dùng biết rằng một người đại diện là người đang soạn phản hồi, hoặc tính năng tự động hoá phụ trợ đang xử lý câu hỏi hoặc yêu cầu của họ.

    Chỉ báo nhập

Gửi sự kiện

Để gửi một sự kiện, hãy chạy lệnh sau. Thay thế các mục sau:

  • CONVERSATION_ID với giá trị nhận dạng của cuộc trò chuyện mà bạn muốn gửi khảo sát
  • EVENT_ID có giá trị nhận dạng duy nhất cho sự kiện
  • PATH_TO_SERVICE_ACCOUNT_KEY có đường dẫn đến khóa tài khoản dịch vụ của bạn trên máy
  • EVENT_TYPE có giá trị từ EventType
  • REPRESENTATIVE_NAME có tên giao diện người dùng của nhân viên hỗ trợ trực tiếp hoặc tính năng tự động hoá tạo sự kiện
  • REPRESENTATIVE_TYPE có giá trị từ 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',
  },
}"

Để biết các tuỳ chọn định dạng và giá trị, hãy xem conversations.events.

Ví dụ: Gửi một người đại diện đã tham gia sự kiện

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

Nhận sự kiện

Khi người dùng kích hoạt một sự kiện trên thiết bị, nhân viên hỗ trợ của bạn sẽ nhận được sự kiện tại webhook của mình. Nhận và xử lý các sự kiện giống như cách bạn nhận tin nhắn.

Sự kiện do người dùng tạo có định dạng sau.

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

Để biết các tuỳ chọn định dạng và giá trị, hãy xem UserMessage.