이벤트를 주고받아 대화를 풍부하게 하세요.

Business Messages 대화에서 이벤트는 메시지가 아닌 콘텐츠를 전달하여 사용자와 에이전트의 대화형 환경에 정보를 제공하고 강화합니다. 사용자의 경우 이벤트는 대화 내에서 알림으로 표시되고 사용자가 실행할 수 있는 다양한 작업을 기반으로 트리거됩니다. 에이전트는 웹훅에서 이벤트를 수신하고 API 호출을 사용하여 이벤트를 전송합니다.

에이전트는 사용자가 시작한 이벤트를 인식하고 그에 따라 응답할 수 있어야 합니다. 예를 들어 사용자가 실제 에이전트를 요청했지만 에이전트가 요청에 긍정적으로 또는 부정적으로 응답할 수 없는 경우 사용자 환경이 저하됩니다.

이벤트 유형

각 이벤트는 특정 유형에 속합니다.

  • 실시간 에이전트 요청 이벤트는 사용자가 실제 상담사와 직접 대화하고 싶다는 것을 나타냅니다.

    상담사가 대화를 담당자로 전환할 수 있는 경우 담당자가 참석한 이벤트를 보낸 다음 실제 담당자로부터 후속 메시지를 보냅니다.

    상담사가 대화를 담당자로 전환할 수 없는 경우 사용자에게 알림을 보내고 실시간 에이전트를 사용할 수 있을 때 이를 알리는 메시지를 전송합니다.

  • 대표 참여/왼쪽 이벤트는 실시간 상담사가 대화에 참여하거나 나가면 사용자에게 알립니다. 이러한 이벤트는 대화에 알림을 표시하고 응답 가능성과 질문할 수 있는 질문 유형에 관한 사용자 기대치를 설정하는 데 도움이 됩니다.

    담당자 참여/왼쪽

  • 입력 이벤트는 사용자 또는 상담사가 입력 중임을 나타냅니다.

    사용자의 경우 부울 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를 참고하세요.