Dados de eventos da sessão de chat da QM

Nesta página, descrevemos os dados de eventos da sessão de chat que a Contact Center AI Platform (CCAI Platform) pode exportar para seu aplicativo de gestão da qualidade (QM). Os dados de eventos de chat da QM são compatíveis com o SDK da Web e os SDKs para dispositivos móveis. Para mais informações sobre como integrar a plataforma de CCAI ao seu aplicativo de QM, consulte Integração de QM e SIPREC.

Para dados de eventos de sessão de chamada, consulte Dados de eventos de sessão de chamada da QM.

Eventos e gatilhos de sessão de chat

Alguns eventos de sessão acionam a exportação de dados de sessão de chat para seu aplicativo QM. Esta seção lista os tipos de eventos de chat e inclui um exemplo de payload de evento de sessão para cada um deles.

O chat foi iniciado

Esse evento é acionado quando um agente humano ou agente virtual inicia um chat. O payload do evento contém o estado inicial do chat, incluindo informações sobre a fila, os participantes e o iniciador.

O exemplo de código a seguir mostra o payload do evento:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "support_number": null,
  "session_type_v2": "In-web",
  "chat_id": 138,
  "state": "waiting",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "dn": "end_user_5"
    }
  ]
}

Chat aguardando atribuição

Esse evento é acionado quando uma sessão de chat entra em uma fila e aguarda atribuição.

O exemplo de código a seguir mostra o payload do evento:

{
  "queue_path_ids": "7/23",
  "queue_path_names": "Test/virtual",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 196,
  "state": "waiting",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "dn": "end_user_5"
    }
  ]
}

Chat aceito

Esse evento é acionado quando um atendente humano ou agente virtual aceita um chat. Esse é um evento intermediário opcional antes de um agente se conectar a um chat.

A exemplo de código a seguir mostra um payload de evento para um agente humano:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 167,
  "state": "connected",
  "direction": "incoming",
  "initiator": "agent_1",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "media_id": "MB0d0540e638354714a43d64e9be9677b6",
      "dn": "end_user_5"
    },
    {
      "state": "accepted",
      "type": "agent",
      "media_id": "MBd9670cb0cddd424c814194795527ae3a",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    }
  ]
}

O exemplo de código a seguir mostra um payload de evento para um agente virtual:

{
  "queue_path_ids": "7/23",
  "queue_path_names": "Test/virtual",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 196,
  "state": "connected",
  "direction": "incoming",
  "initiator": "virtual_agent_2",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "media_id": "MBdfcdab9220f94f1486008a165db3f31a",
      "dn": "end_user_5"
    },
    {
      "state": "accepted",
      "type": "virtual_agent",
      "media_id": "MBea10421d150b4d22b675de17070bc383",
      "dn": "virtual_agent_2"
    }
  ]
}

Chat conectado

Esse evento é acionado quando um chat é conectado a um agente humano ou virtual. Isso pode ser uma conexão automática ou um agente humano conectando manualmente.

A exemplo de código a seguir mostra um payload de evento para um agente humano:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 114,
  "state": "connected",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "media_id": "MB7a504ce7f418447bb4a48b8f3fa609d0",
      "dn": "end_user_5"
    },
    {
      "state": "connected",
      "type": "agent",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    }
  ]
}

O exemplo de código a seguir mostra um payload de evento para um agente virtual:

{
  "queue_path_ids": "7/23",
  "queue_path_names": "Test/virtual",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 196,
  "state": "connected",
  "direction": "incoming",
  "initiator": "virtual_agent_2",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "dn": "end_user_5"
    },
    {
      "state": "connected",
      "type": "virtual_agent",
      "dn": "virtual_agent_2"
    }
  ],
  "connected_at": "2024-09-13T14:04:17.000-07:00"
}

Chat dispensado

Esse evento é acionado quando uma sessão de chat é cancelada ou encerrada antes de uma conexão completa ser estabelecida. Por exemplo, se ela não foi aceita ou terminou prematuramente.

O exemplo de código a seguir mostra o payload do evento:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 197,
  "state": "dismissed",
  "direction": "incoming",
  "initiator": "agent_1",
  "participants": [
    {
      "state": "dismissed",
      "type": "external",
      "media_id": "MB444f542e9b9c4f89a8369bb2430357ad",
      "dn": "end_user_5"
    },
    {
      "state": "dismissed",
      "type": "agent",
      "media_id": "MB7e657411b2284f95b2cf31ef5e6dc83c",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    }
  ]
}

Chat retomado

Esse evento é acionado quando uma sessão de chat pausada ou suspensa é retomada. O payload contém o estado da conversa quando ela é retomada.

O exemplo de código a seguir mostra o payload do evento:

{
  "session_type_v2": "In-web",
  "chat_id": 198,
  "state": "resumed",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "resumed",
      "type": "external",
      "media_id": "MB320da61121bc4fc48ea099759f679333",
      "dn": "end_user_5"
    },
    {
      "state": "resumed",
      "type": "agent",
      "media_id": "MBbe5db89a01ab4814a8e7830daf3d30fa",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    }
  ]
}

O participante saiu do chat

Esse evento é acionado quando um ou mais participantes saem de uma sessão de chat. Pode ser um usuário final, um agente humano ou um agente virtual saindo da conversa. O payload contém o estado do chat quando os participantes saíram.

O exemplo de código a seguir mostra o payload de evento para um usuário final que sai de uma conversa:

{
  "session_type_v2": "In-web",
  "chat_id": 169,
  "state": "participantDisconnect",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "disconnected",
      "type": "external",
      "media_id": "MB4dd73370bc564cf18f5347233523ef44",
      "dn": "end_user_5"
    },
    {
      "state": "disconnected",
      "type": "agent",
      "media_id": "MBba370f84cf914992b05e9aab03730c4b",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    }
  ]
}

O exemplo de código a seguir mostra o payload de evento para um atendente humano que sai de uma conversa:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 169,
  "state": "participantDisconnect",
  "direction": "incoming",
  "initiator": "agent_1",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "media_id": "MB4dd73370bc564cf18f5347233523ef44",
      "dn": "end_user_5"
    },
    {
      "state": "disconnected",
      "type": "agent"
      "media_id": "MBba370f84cf914992b05e9aab03730c4b",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    }
  ]
}

O exemplo de código a seguir mostra o payload de evento para um agente virtual que sai de uma conversa:

{
  "queue_path_ids": "7/23",
  "queue_path_names": "Test/virtual",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 196,
  "state": "participantDisconnect",
  "direction": "incoming",
  "initiator": "virtual_agent_2",
  "participants": [
    {
      "state": "disconnected",
      "type": "external",
      "media_id": "MBdfcdab9220f94f1486008a165db3f31a",
      "dn": "end_user_5"
    },
    {
      "state": "disconnected",
      "type": "virtual_agent",
      "media_id": "MBea10421d150b4d22b675de17070bc383",
      "dn": "virtual_agent_2"
    }
  ]
}

Chat encerrado

Esse evento é acionado quando uma sessão de chat termina. Pode ser um usuário final, um agente humano ou um agente virtual encerrando a conversa. O payload contém o estado do chat quando ele termina, incluindo os participantes e os carimbos de data/hora de quando o chat foi conectado e encerrado.

O exemplo de código a seguir mostra o payload de evento para um agente humano e um usuário final que saem de uma conversa:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "support_number": null,
  "session_type_v2": "In-web",
  "chat_id": 127,
  "state": "disconnected",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "disconnected",
      "type": "external",
      "media_id": "MB4a0a435e759c43369098ee7f2d0271f0",
      "dn": "end_user_5"
    },
    {
      "state": "disconnected",
      "type": "agent",
      "media_id": "MBa4afeafb5bcc4a279f51db76f3b98deb",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    }
  ],
  "connected_at": "2024-08-27T17:06:37.000-07:00",
  "ends_at": "2024-08-27T17:06:59.000-07:00"
}

O exemplo de código a seguir mostra a carga útil do evento para um agente virtual e um usuário final saindo de uma conversa:

{
  "queue_path_ids": "7/23",
  "queue_path_names": "Test/virtual",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 190,
  "state": "disconnected",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "disconnected",
      "type": "external",
      "media_id": "MB6ea6204b6a0448428d88e9976fd856d4",
      "dn": "end_user_5"
    },
    {
      "state": "disconnected",
      "type": "virtual_agent",
      "media_id": "MBc6a2b72c99534a68990caf622b65571a",
      "dn": "virtual_agent_2"
    }
  ],
  "connected_at": "2024-09-12T10:50:51.000-07:00",
  "ends_at": "2024-09-12T11:54:08.000-07:00"
}

O exemplo de código a seguir mostra o payload de evento para um chat encerrado enquanto esperava na fila:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "support_number": null,
  "session_type_v2": "In-web",
  "chat_id": 141,
  "state": "disconnected",
  "direction": "incoming",
  "initiator": "end_user_5",
  "participants": [
    {
      "state": "disconnected",
      "type": "external",
      "media_id": "MB65670b2c44534af3860fad35be88ac41",
      "dn": "end_user_5"
    }
  ],
  "connected_at": "",
  "ends_at": "2024-08-29T14:41:16.000-07:00"
}

Campos de evento da sessão de chat

As tabelas a seguir descrevem os campos nos dados da sessão que a Contact Center AI Platform exporta para seu aplicativo de QM.

Campos gerais

Nome do campo

Valores

Descrição

Condição

type

  • AgentState
  • ChatState

O tipo de evento do payload JSON geral.

  • Transmite AgentState para eventos relacionados ao agente.
  • Transmite ChatState para eventos relacionados ao chat.

item

O objeto com informações do evento.

Campos de estado do chat

Nome do campo

Valores

Descrição

Condição

chat_id

  • O ID do chat

Disponível no objeto item.

O identificador da sessão de chat no sistema da Contact Center AI Platform.

  • Transmite o valor do campo ID no objeto principal nos metadados da sessão da Contact Center AI Platform.

state

  • waiting
  • connected
  • disconnected
  • dismissed
  • resumed
  • participantDisconnect
  • transferred

Disponível no objeto item.

O estado atual da sessão de chat.

direction

  • incoming

Disponível no objeto item.

A direção da sessão de chat do ponto de vista da central de atendimento.

  • Transmite incoming quando a sessão de chat é de entrada.

initiator

  • agent_1
  • virtual_agent_2
  • end_user_5

Disponível no objeto item.

O identificador da parte que inicializa o estado do chat.

  • Para agentes humanos

    Transmite o valor do campo "ID" no objeto agent_info nos metadados da sessão.

  • Para agentes virtuais

    Transmite o valor do campo virtual_agent_id no objeto participants nos metadados da sessão.

  • Para usuários finais

    Transmite o valor do campo "ID" no objeto end_user nos metadados da sessão.

queue_path_ids

  • Um caminho de IDs de fila

Disponível no objeto item.

O caminho da fila percorrido pelo usuário final antes de chegar ao primeiro agente da chamada.

Esse valor é criado usando os IDs da fila navegada.

  • Isso se aplica apenas aos chats recebidos.

queue_path_names

  • Um caminho de nomes de filas

Disponível no objeto item.

O caminho da fila percorrido pelo usuário final antes de chegar ao primeiro agente da ligação.

Esse valor é criado usando os nomes das filas navegadas.

  • Isso se aplica apenas aos chats recebidos.

language

  • O código do idioma

Disponível no objeto item.

O código do idioma selecionado pelo usuário final.

  • Isso se aplica apenas aos chats recebidos.

queue_uuid

  • O ID da fila

Disponível no objeto item.

O UUID da fila para onde o chat foi encaminhado.

  • Isso só é válido para chats recebidos e transferidos da fila.

tenant

  • O nome da instância

Disponível no objeto item.

O nome da instância que hospeda o chat.

event_id

  • O ID do evento

Disponível no objeto item.

Um identificador para a sessão de chat.

timestamp

  • Um carimbo de data/hora do UNIX

Disponível no objeto item.

Um carimbo de data/hora para a conversa no tempo da época Unix.

session_type_v2

  • In-web

Disponível no objeto item.

Indica uma sessão de chat do SDK da Web.

support_number

  • NULL

  • Não aplicável ao chat.

connected_at

  • A data e a hora

Disponível no objeto item.

A data e a hora em que a sessão de chat começou.

ends_at

  • A data e a hora

Disponível no objeto item.

A data e a hora em que a sessão de chat terminou.

participants

Disponível no objeto item.

Um objeto que contém as informações do participante da chamada.

participant_id

  • agent_id
  • virtual_agent_id

Disponível no objeto participants.

O identificador do participante do chat.

  • Para agentes humanos

    Transmite o valor do campo "ID" no objeto agent_info nos metadados da sessão.

  • Para agentes virtuais

    Transmite o valor no campo virtual_agent_id do objeto participants nos metadados da sessão.

  • Para usuários finais

    Transmite o valor do campo "ID" no objeto end_user nos metadados da sessão.

  • Para terceiros

    Transmite o número de telefone do terceiro, se disponível.

    Caso contrário, transmite o valor null.

type

  • external
  • agent
  • virtual_agent

Disponível no objeto participants.

O tipo de participante da chamada.

  • Transmite agent quando o participante do chat é um agente.
  • Transmite external quando o participante do chat é um usuário final ou um terceiro.
  • Transmite virtual_agent quando o participante do chat é um agente virtual.

state

  • connected
  • disconnected
  • accepted
  • dismissed
  • resumed

Disponível no objeto participants.

O estado atual do participante na conferência por chat.

media_id

  • twilio_mediaID
  • nexmo_mediaID

Disponível no objeto participants.

O identificador da mídia da sessão de chat da operadora.

  • Transmite o twilio_mediaID quando o iniciador conversa em ou de um número do Twilio.
  • Transmite o nexmo_mediaID quando o iniciador conversa em ou de um número da Nexmo.

dn

  • end_user_1
  • agent_1

Disponível no objeto participants.

O número de diretório do participante.

agent_number

Disponível no objeto participants. O número do agente.

name

Disponível no objeto participants. O nome do agente.

alias

Disponível no objeto participants. O alias do agente.

Transferências de sessões de chat

As transferências de sessão de chat não são eventos de chat distintos. Em vez disso, eles são payloads que indicam que uma transferência de sessão de chat ocorreu. Esta seção mostra uma carga útil de transferência de sessão de chat que é acionada quando um agente sai de um chat. Neste exemplo, o valor do campo initiator é agent_1, indicando que o agente 1 iniciou a transferência. Na matriz participants, agent_1 tem um estado de disconnected e agent_2 tem um estado de connected. Isso indica que a sessão foi transferida do agente 1 para o agente 2, com o agente 1 saindo do chat e o agente 2 entrando. O valor do campo state geral neste exemplo é participantDisconnect, mas você pode modelar seu sistema para ter um estado geral de transferred ou connected, se preferir. Você também pode modelar seu sistema para ter campos adicionais que representem mais explicitamente uma transferência de sessão, por exemplo, transfer_id ou um tipo de evento de transferência dedicado.

O exemplo de código a seguir mostra um payload de evento para uma transferência de sessão:

{
  "queue_path_ids": "7/26",
  "queue_path_names": "Test/calls",
  "language": "en",
  "session_type_v2": "In-web",
  "chat_id": 208,
  "state": "participantDisconnect",
  "direction": "incoming",
  "initiator": "agent_1",
  "participants": [
    {
      "state": "connected",
      "type": "external",
      "media_id": "MBed9193af0a82486cbad069925b5a0b18",
      "dn": "end_user_5"
    },
    {
      "state": "disconnected",
      "type": "agent",
      "media_id": "MB05685c80e6af444faa1de5c5e48a26c7",
      "agent_number": "Uno numero",
      "name": "Admin UJET",
      "alias": "super_agent",
      "dn": "agent_1"
    },
    {
      "state": "connected",
      "type": "agent",
      "media_id": "MB5caad80c7d94477d9db9c5f1c3662768",
      "agent_number": "420",
      "name": "ajay1 ujet",
      "alias": "ajay1-alias",
      "dn": "agent_2"
    }
  ]
}