Transfert du bot à l'agent réel

Lorsque les utilisateurs communiquent avec des agents, leurs attentes sont définies par la manière dont l'agent se présente et qui compose les messages qu'il reçoit. Chaque fois qu'un agent envoie un message, il peut déterminer si un agent automatisé (BOT) ou actif (HUMAN) est représenté. Les utilisateurs voient ces informations dans la conversation et permettent de comprendre les types d'interactions auxquels ils peuvent s'attendre à un moment donné.

Si un agent est compatible à la fois avec les représentants BOT et HUMAN, il est important de fournir du contexte lors du basculement entre les deux. Lorsque vous passez d'un représentant BOT à un représentant HUMAN, envoyez un événement REPRESENTATIVE_JOINED avant d'envoyer des messages du représentant HUMAN et attribuez un libellé approprié à tous les messages suivants en provenance des agents en direct comme provenant de représentants HUMAN. Lorsque l'agent en direct quitte la conversation, envoyez un événement REPRESENTATIVE_LEFT. Ces événements de cadrage informent les utilisateurs qu'ils peuvent poser des questions plus complexes et s'attendre à des réponses de forme plus libre.

Dans ce flux de conversation, les premières interactions de l'utilisateur sont avec un répondeur automatisé qui envoie des messages en tant que représentant BOT, tandis qu'un agent en direct rejoint la conversation et envoie des messages en tant que représentant HUMAN. Les messages de l'agent en direct sont encadrés par des événements REPRESENTATIVE_JOINED et REPRESENTATIVE_LEFT.

  1. L'utilisateur commence la conversation avec l'agent.
  2. Une fois que l'utilisateur commence à saisir une réponse, il envoie un événement de saisie à l'agent.

    {
      "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'utilisateur envoie un message de type "Bonjour, j'ai un problème".

    {
      "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'agent envoie "Merci de nous avoir contactés. Nous le transmettrons lorsqu'un agent en direct sera disponible pour discuter avec vous sous la forme d'un message d'un représentant 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 agent actif devient disponible.

  6. L'agent envoie un événement REPRESENTATIVE_JOINED avant d'envoyer le premier message de l'agent en direct.

    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'agent envoie un message indiquant que vous avez un problème. Comment puis-je vous aider en tant que message d'un représentant 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'agent en direct et l'utilisateur échangent des messages jusqu'à ce que la requête de l'utilisateur soit traitée. Tous les messages composés par l'agent en direct sont envoyés à partir d'un représentant HUMAN.

  9. L'agent envoie un événement REPRESENTATIVE_LEFT lorsque l'agent en direct quitte la conversation.

    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'agent envoie tous les messages suivants avec des représentants BOT, sauf si un autre agent actif rejoint la conversation.