Когда пользователи общаются с агентами, их ожидания определяются тем, как агент представляет себя и кто составляет сообщения, которые они получают. Каждый раз, когда агент отправляет сообщение, он может определить, кто из представителей автоматизированного ( BOT
) или живого агента ( HUMAN
) составил сообщение. Пользователи видят эту информацию в ходе разговора, и она помогает пользователям понять, какого рода взаимодействия они могут ожидать в любой момент времени.
Если агент поддерживает представителей как BOT
, так и HUMAN
, важно предоставить контекст при переключении между ними. При переключении с BOT
на представителя HUMAN
отправьте событие REPRESENTATIVE_JOINED
перед отправкой сообщений от представителя HUMAN
и правильно пометьте все последующие сообщения от живых агентов как от представителей 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
, если к разговору не присоединяется другой живой агент.