Отправляйте и получайте события, чтобы обогатить беседы

В беседах Business Messages события информируют и обогащают общение как пользователей, так и агентов, передавая содержимое, не связанное с сообщениями. Для пользователей события отображаются в виде уведомлений в их беседах и запускаются в зависимости от различных действий, которые могут совершать пользователи. Агенты получают события через свои веб-перехватчики и отправляют события с помощью вызовов API.

Агенты должны знать о событиях, инициированных пользователем, и иметь возможность реагировать соответствующим образом. Например, если пользователь запрашивает живого агента, но агент не может ответить положительно или отрицательно на запрос, это приведет к плохому взаимодействию с пользователем.

Типы событий

Каждое событие относится к определенному типу:

  • События, запрошенные оперативным агентом , указывают на то, что пользователь хочет напрямую поговорить с активным агентом.

    Если агент может передать разговор представителю-человеку, отправить событие « Присоединение представителя », а затем отправить последующие сообщения от представителя-человека.

    Если агент не может передать разговор представителю-человеку, отправьте сообщение, чтобы уведомить пользователя и сообщить ему, когда активный агент будет доступен.

  • Репрезентативные события присоединения/ отключения сообщают пользователям, когда живые агенты присоединяются к беседе или покидают ее. Эти события отображают уведомления в беседе и помогают установить ожидания пользователей в отношении скорости реагирования и типов вопросов, которые они могут задавать.

    Представитель присоединился/ушел

  • События ввода указывают на то, что пользователь или агент печатает.

    Для пользователей логическое значение isTyping указывает их статус ввода. Каждое изменение статуса вызывает новое событие.

    Агенты могут отправлять TYPING_STARTED и TYPING_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 .