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