사용자가 에이전트와 통신할 때 에이전트가 자신을 표현하는 방법과 수신하는 메시지를 작성하는 사람에 대한 기대치가 설정됩니다. 에이전트가 메시지를 전송할 때마다 자동(BOT
) 또는 실시간 에이전트(HUMAN
) 대표가 메시지를 작성했는지 식별할 수 있습니다. 사용자는 대화 내에서 이 정보를 볼 수 있으며 이를 통해 사용자는 특정 시점에 어떤 상호작용을 기대할 수 있는지 이해할 수 있습니다.
상담사가 BOT
및 HUMAN
담당자를 모두 지원하는 경우 둘을 전환할 때 컨텍스트를 제공하는 것이 중요합니다. BOT
에서 HUMAN
담당자로 전환할 때는 HUMAN
담당자로부터 메시지를 전송하기 전에 REPRESENTATIVE_JOINED
이벤트를 전송하고, 실시간 에이전트의 모든 메시지에 HUMAN
담당자로부터 라벨을 지정합니다. 실제 상담사가 대화를 종료하면 REPRESENTATIVE_LEFT
이벤트를 전송합니다. 이러한 프레이밍 이벤트는 사용자에게 보다 복잡한 질문을 하고 더 많은 자유 형식 응답을 기대할 수 있음을 알립니다.
이 대화 흐름에서 사용자의 첫 번째 상호작용은 자동 응답자와 상호작용하여 메시지를 BOT
담당자로 보내지만, 실시간 상담사가 대화에 참여하여 HUMAN
담당자로 메시지를 전송합니다. 실시간 에이전트 메시지는 REPRESENTATIVE_JOINED
및 REPRESENTATIVE_LEFT
이벤트로 프레이밍됩니다.
- 사용자가 상담사와 대화를 시작합니다.
사용자가 응답을 입력하기 시작하면 에이전트에 입력 이벤트가 전송됩니다.
{ "agent": "brands/1111/agents/2222", "conversationId": "3333", "customAgentId": "live-agent-handoff", "requestId": "1234567890", "userStatus": { "isTyping": "true", "createTime": "2020-10-02T15:01:23.045123456Z", }, "sendTime": "2020-10-02T15:01:24.045123456Z", }
사용자가 '안녕하세요. 문제가 있습니다.'라는 메시지를 보냅니다.
{ "agent": "brands/1111/agents/2222", "conversationId": "3333", "customAgentId": "live-agent-handoff", "requestId": "123123123", "message": { "messageId": "4444", "name": "conversations/12345/messages/67890", "text": "Hi, I have a problem", "createTime": "2020-10-02T15:05:23.045123456Z", }, "context": { "entryPoint": "PLACESHEET", "userInfo": { "displayName": "Michael", "userDeviceLocale": "en", }, "resolvedLocale": "en", } "sendTime": "2020-10-02T15:05:24.045123456Z", }
상담사가 문의해 주셔서 감사합니다. 실제 상담사가 나와 채팅할 수 있는 경우에는
BOT
담당자의 메시지로 이를 전달합니다.curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \ -H "Content-Type: application/json" \ -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \ -d "{ 'messageId': '5555', 'text': 'Thanks for contacting us. I'll pass this along when a live agent is available to chat with you.', 'representative': { 'avatarImage': 'https://live.agent/bot-avatar.jpg', 'displayName': 'Hello World Agent', 'representativeType': 'BOT' } }"
실제 상담사가 통화 상태가 됩니다.
에이전트는 실시간 에이전트에서 첫 번째 메시지를 보내기 전에
REPRESENTATIVE_JOINED
이벤트를 전송합니다.curl -X POST "https://businessmessages.googleapis.com/v1/conversations/12345/events?eventId=6666" \ -H "Content-Type: application/json" \ -H "`oauth2l header --json /path/to/service/account/key.json businessmessages`" \ -d "{ 'eventType': 'REPRESENTATIVE_JOINED', 'representative': { 'avatarImage': 'https://live.agent/human-avatar.jpg', 'displayName': 'Jane Doe', 'representativeType': 'HUMAN', }, }"
상담사가 문제가 발생한 것 같습니다.
HUMAN
담당자의 메시지로 어떻게 도움을 주면 좋을까요?curl -X POST "https://businessmessages.googleapis.com/v1/conversations/3333/messages" \ -H "Content-Type: application/json" \ -H "`oauth2l header --json path/to/service/account/key.json businessmessages`" \ -d "{ 'messageId': '7777', 'text': 'I see you have a problem. How can I help?', 'representative': { 'avatarImage': 'https://live.agent/human-avatar.jpg', 'displayName': 'Jane Doe', 'representativeType': 'HUMAN' } }"
사용자의 요청이 처리될 때까지 실제 에이전트와 사용자가 메시지를 교환합니다. 실시간 에이전트가 작성한 모든 메시지는
HUMAN
담당자에서 전송됩니다.실시간 에이전트가 대화에서 나가는 경우 에이전트는
REPRESENTATIVE_LEFT
이벤트를 전송합니다.curl -X POST "https://businessmessages.googleapis.com/v1/conversations/12345/events?eventId=6666" \ -H "Content-Type: application/json" \ -H "`oauth2l header --json /path/to/service/account/key.json businessmessages`" \ -d "{ 'eventType': 'REPRESENTATIVE_LEFT', 'representative': { 'avatarImage': 'https://live.agent/human-avatar.jpg', 'displayName': 'Jane Doe', 'representativeType': 'HUMAN', }, }"
다른 실시간 에이전트가 대화에 참여하지 않는 한 에이전트는
BOT
담당자와 모든 후속 메시지를 보냅니다.