Passaggio da bot ad operatore

Quando gli utenti comunicano con gli agenti, le loro aspettative sono determinate dal modo in cui l'agente si presenta e da chi scrive i messaggi. Ogni volta che un agente invia un messaggio, può identificare se un messaggio (BOT) o un agente automatico (HUMAN) rappresentativo è stato composto. Gli utenti vedono queste informazioni nella conversazione e aiutano a capire quali tipi di interazioni potrebbero aspettarsi in un determinato momento.

Se un agente supporta sia i rappresentanti BOT che HUMAN, è importante fornire contesto nel passaggio tra i due. Quando passi da un rappresentante BOT a un rappresentante HUMAN, invia un evento REPRESENTATIVE_JOINED prima di inviare messaggi dal rappresentante HUMAN ed etichetta correttamente tutti i messaggi seguenti dagli agenti in tempo reale come provenienti dai rappresentanti HUMAN. Quando l'agente in tempo reale abbandona la conversazione, invia un evento REPRESENTATIVE_LEFT. Questi eventi di inquadratura informano gli utenti che possono fare domande più complesse e possono aspettarsi risposte più in formato libero.

In questa procedura di conversazione, le prime interazioni dell'utente avvengono con un risponditore automatico che invia messaggi come rappresentante BOT, ma un operatore dal vivo si aggiunge alla conversazione e invia messaggi come rappresentante HUMAN. I messaggi del live agent vengono racchiusi tra frame in eventi REPRESENTATIVE_JOINED e REPRESENTATIVE_LEFT.

  1. L'utente inizia la conversazione con l'agente.
  2. Quando l'utente inizia a digitare una risposta, invia un evento di digitazione all'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. L'utente invia un messaggio "Ciao, ho 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. L'agente invia un "Grazie per averci contattato. Passerò questo messaggio quando un agente in tempo reale sarà disponibile per chattare con te. Come messaggio da parte di un rappresentante 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. Un operatore diventa disponibile.

  6. L'agente invia un evento REPRESENTATIVE_JOINED prima di inviare il primo messaggio dall'agente.

    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. L'agente invia il messaggio "Ho visto che hai un problema. Come posso aiutarti?" come messaggio di un rappresentante di 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. L'operatore e l'utente scambiano messaggi finché la richiesta dell'utente non viene completata. Tutti i messaggi composti dall'agente in tempo reale vengono inviati da un rappresentante di HUMAN.

  9. L'agente invia un evento REPRESENTATIVE_LEFT quando l'agente in tempo reale lascia la conversazione.

    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. L'agente invia tutti i messaggi successivi con BOT rappresentanti, a meno che un altro operatore non partecipi alla conversazione.