Transferencia del bot a un agente humano

Cuando los usuarios se comunican con los agentes, sus expectativas se establecen según la forma en que se presentan y quién redacta los mensajes que reciben. Cada vez que un agente envía un mensaje, puede identificar si un representante automatizado (BOT) o activo (HUMAN) compuso el mensaje. Los usuarios ven esta información dentro de la conversación y ayuda a entender qué tipo de interacciones podrían esperar en un momento determinado.

Si un agente admite representantes BOT y HUMAN, es importante proporcionar contexto cuando se cambia entre los dos. Cuando cambies de un BOT a un representante de HUMAN, envía un evento de REPRESENTATIVE_JOINED antes de enviar mensajes desde el representante de HUMAN y etiqueta correctamente todos los mensajes que se muestran a continuación como agentes de HUMAN. Cuando el agente humano abandona la conversación, envía un evento REPRESENTATIVE_LEFT. Estos eventos de marco informan a los usuarios que pueden hacer preguntas más complicadas y pueden esperar más respuestas de formato libre.

En este flujo de conversación, las primeras interacciones del usuario son con una respuesta automática que envía mensajes como un representante de BOT, pero un agente en vivo se une a la conversación y envía mensajes como un representante de HUMAN. Los mensajes del agente en vivo se enmarcan en los eventos REPRESENTATIVE_JOINED y REPRESENTATIVE_LEFT.

  1. El usuario inicia la conversación con el agente.
  2. Una vez que el usuario comienza a escribir una respuesta, envía un evento de escritura al 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. El usuario envía un mensaje con el mensaje "Hola, tengo un problema".

    {
      "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. El agente envía "Gracias por comunicarte con nosotros. Transmitiré esto cuando un agente en vivo esté disponible para chatear contigo, como un mensaje de un representante de 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. Hay un agente humano disponible.

  6. El agente envía un evento REPRESENTATIVE_JOINED antes de enviar el primer mensaje desde el agente en vivo.

    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. El agente envía "Veo que tienes un problema. ¿Cómo puedo ayudarte? Como mensaje de un representante de 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. El agente humano y el usuario intercambian mensajes hasta que se completa la solicitud del usuario. Todos los mensajes compuestos por el agente en vivo se envían desde un representante de HUMAN.

  9. El agente envía un evento REPRESENTATIVE_LEFT cuando el agente en vivo abandona la conversación.

    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. El agente envía todos los mensajes posteriores con los representantes de BOT, a menos que otro agente humano se una a la conversación.