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
를 참고하세요.