Transferência do bot para o agente em tempo real

Quando os usuários se comunicam com agentes, as expectativas deles são definidas pela forma como o agente se apresenta e quem escreve as mensagens recebidas. Cada vez que um agente envia uma mensagem, ele pode identificar se um agente (BOT) ativo ou automatizado (HUMAN) representativo criou a mensagem. Os usuários veem essas informações na conversa, o que ajuda a entender que tipos de interações eles podem esperar em um determinado momento.

Se um agente for compatível com representantes BOT e HUMAN, é importante fornecer contexto ao alternar entre os dois. Ao mudar de um BOT para um representante HUMAN, envie um evento REPRESENTATIVE_JOINED antes de enviar mensagens do representante HUMAN e rotule corretamente todas as mensagens a seguir dos agentes ativos como de representantes HUMAN. Quando o agente em tempo real sair da conversa, envie um evento REPRESENTATIVE_LEFT. Esses eventos de enquadramento informam aos usuários que eles podem fazer perguntas mais complicadas e podem esperar mais respostas em formato livre.

Nesse fluxo de conversa, as primeiras interações dos usuários são com uma resposta automática que envia mensagens como um representante BOT, mas um agente em tempo real participa da conversa e envia mensagens como um representante HUMAN. As mensagens do agente em tempo real são enquadradas por eventos REPRESENTATIVE_JOINED e REPRESENTATIVE_LEFT.

  1. O usuário inicia a conversa com o agente.
  2. Quando o usuário começa a digitar uma resposta, ele envia um evento de digitação para o agente.

    {
      "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",
    }
    
  3. O usuário envia "Oi, eu tenho um problema" como uma mensagem.

    {
      "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",
    }
    
  4. O agente envia "Agradecemos seu contato. Transmitirei isso quando um agente ativo estiver disponível para conversar com você." como uma mensagem de um representante 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'
      }
    }"
    
  5. Um agente em tempo real fica disponível.

  6. O agente envia um evento REPRESENTATIVE_JOINED antes de enviar a primeira mensagem do agente em tempo real.

    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',
      },
    }"
    
  7. O agente envia "Vejo que você está com um problema. Como posso ajudar? Como mensagem de um representante do 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'
      }
    }"
    
  8. O agente em tempo real e o usuário trocam mensagens até que a solicitação do usuário seja atendida. Todas as mensagens compostas pelo agente em tempo real são enviadas de um representante HUMAN.

  9. O agente envia um evento REPRESENTATIVE_LEFT quando o agente em tempo real sai da conversa.

    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',
      },
    }"
    
  10. O agente envia todas as mensagens subsequentes com representantes BOT, a menos que outro agente ativo participe da conversa.