发送和接收事件以丰富对话内容

在 Business Messages 对话中,事件可为对话提供信息并丰富对话内容 从而提升用户体验和用户体验。对于 用户,事件会在其对话中以通知的形式显示并触发 根据用户可能执行的各种操作代理会在其 网络钩子以及通过 API 调用发送事件的方法。

代理应该了解用户发起的事件,并能够响应 。例如,如果用户请求人工客服,但客服人员却无法 对请求做出积极或否定的回应,会导致不良用户 体验

事件类型

每个事件都属于特定的类型:

  • “请求人工客服”事件表示用户想要发言 直接联系人工客服。

    如果客服人员可以将对话转给人工代表,请发送 代表加入事件,然后通过 真人代表。

    如果客服人员无法将对话转给人工代表, 发送消息以通知用户,并告知他们人工客服何时有空 可用。

  • 代表人员加入/退出活动会告知用户人工客服加入或退出的时间 离开会话。这些事件会在对话中显示通知 并帮助用户就响应速度和 可以提出哪些问题。

    代表已加入/离开

  • Typing(输入)事件表示用户或代理正在输入。

    对于用户,布尔值 isTyping 表示用户的输入状态。每种状态 会触发新事件。

    代理可以发送 TYPING_STARTEDTYPING_STOPPED 事件进行显示 输入指示。通过代理输入事件会告知用户 人工代表正在撰写响应或后端 自动化操作正在处理他们的问题或请求。

    输入状态指示器

发送事件

如需发送事件,请运行以下命令。替换以下内容:

  • CONVERSATION_ID 替换为所需对话的标识符 发送调查问卷
  • EVENT_ID 替换为事件的唯一标识符
  • PATH_TO_SERVICE_ACCOUNT_KEY 替换为您的服务账号的路径 密钥
  • EVENT_TYPE,值来自 EventType
  • REPRESENTATIVE_NAME 替换为面向用户的人工客服名称 或自动化操作来创建事件
  • REPRESENTATIVE_TYPE,值来自 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',
  },
}"

如需了解格式设置和值选项,请参阅 conversations.events

示例:发送代表加入的活动

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

接收事件

当用户在其设备上触发事件时,您的代理会在以下位置收到该事件: 其网络钩子。以与接收事件相同的方式接收和处理事件 消息

用户发起的事件采用以下格式。

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

如需了解格式设置和值选项,请参阅 UserMessage