Guia de Dados Históricos
Este material foi elaborado para facilitar o entendimento daqueles que desejarem consumir os dados históricos gerados pela plataforma cVortex e replicados para banco de dados externo à plataforma.
Visão geral do Banco de Dados
Engines SQL suportadas
Os dados históricos da plataforma são replicados para bancos de dados SQL. São suportadas as seguintes engines:
Microsoft SQL Server 2012 ou superior
Postgresql 8.0 ou superior
Oracle Database 11g ou superior
Como o dado é replicado
Os registros são gerados automaticamente no banco de dados histórico conforme ocorrem eventos referentes ao uso da plataforma.
Observação:
Os dados são replicados de forma automática, com delay mínimo (near real time) entre a gravação de dados na plataforma e a replicação no banco de dados de destino.
Relação das tabelas disponíveis
As tabelas aqui relacionadas representam entidades nativas da plataforma, catalogadas no Entity Manager e mapeadas como relevantes para a vertical Customer Service. Essas entidades são replicadas para o banco de dados relacional seguindo a mesma estrutura de dados visível pelo ambiente de administração.
Table | Description |
|---|---|
| Cadastro de agentes |
| Cadastro de status de agente |
| Detalhamento das mudanças de status dos agentes |
| Consolidado de tempos operacionais dos agentes |
| Cadastro de unidades de negócio |
| Casos registrados na plataforma |
| Cadastro de ações possíveis de execução sobre casos |
| Lote de casos importados |
| Relatório de importação de casos em lote |
| Histórico de casos quanto às transições de status e ações realizadas em geral sobre os casos |
| Motivos de abertura ou encerramento de casos |
| Cadastro de status de casos |
| Cadastro de empresas |
| Cadastro de tipos de empresa |
| Contato de pessoas |
| Histórico de interações com o caso conforme o canal de atendimento utilizado |
| Cadastro de definições de mailing |
| Cadastro de pessoas |
| Cadastro de canais de atendimento |
| Cadastro de listas de casos |
| Cadastro de equipes de agentes |
| Associação entre equipes |
| Cadastro de usuários da plataforma |
| Relacionamento entre usuários e unidades de negócio |
| Segue a mesma estrutura da entidade personalizada Case Detail no Entity Manager da plataforma. É dinâmica conforme necessidade da operação de Customer Service e pode ter sua estrutura alterada sempre que necessário. |
Detalhamento de atributos por tabela
Considerações gerais sobre atributos
Column/Type | Description |
|---|---|
Identificadores como chaves alfanuméricas | Os atributos identificadores nas tabelas são sempre chaves alfanuméricas extensas |
Datas em formato bigint | Os campos de data representam Unix Timestamp, que é uma maneira de rastrear o tempo como um total de segundos em execução. Esta contagem começa no Unix Epoch em 1º de janeiro de 1970 no UTC. |
tb_agent
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Status corrente do agente |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Ramal do agente |
|
| Identificador único do registro |
|
| Identificador da Pessoa vinculada ao registro de agente |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
tb_agentstatus
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Ignorar |
|
| Ignorar |
|
| Indica se o status é nativo na plataforma ou criado pelo usuário. 0: PERSONALIZADO 1: NATIVO |
|
| Identificador da unidade de negócio associada ao status |
|
| Descrição do status |
|
| Duração máxima em milisegundos |
|
| Nome do status |
|
| Tipo do status e o que ele representa na plataforma Valores possíveis: ACW NOT_READY BREAK IDLE UNAVAILABLE |
tb_agentstatuscontrol
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador do Agente |
|
| Identificador do Status do agente |
|
| Data/hora da solicitação de cancelamento da requisição |
|
| Id do caso vinculado ao Agente durante o status |
|
| Duração em milissegundos do status |
|
| Data/hora de finalização do status |
|
| Nome do evento que iniciou o status |
|
| |
|
| Data/hora de solicitação do status |
|
| Data/hora de início do status |
tb_agentstatussummary
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Tempo médio trabalhando em casos em milissegundos |
|
| Id do último caso fechado |
|
| Data de referência do registro |
|
| Tempo total de ACW em milissegundos |
|
| Tempo total de pausa em milissegundos |
|
| Tempo total de atendimento em milissegundos |
|
| Total de casos fechados |
|
| Tempo total trabalhando em casos em milissegundos |
|
| Tempo total ocioso em milissegundos |
|
| Tempo total logado em milissegundos |
|
| Tempo total não disponível em milissegundos |
tb_businessunit
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Id da empresa vinculada a Unidade de negócios |
|
| Id amigável da unidade de negócios |
|
| Identificador da unidade de neǵocios à qual esta unidade de negócios está relacionada (se houver) |
|
| Nome da Unidade de negócios |
|
| Tipo da Unidade de neǵocios |
tb_case
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUÍDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócio associada |
|
| Identificador do lote de casos |
|
| Identificador amigável do caso |
|
| Origem do caso |
|
| Status do caso |
|
| Tipo do caso |
|
| Indica se o caso está ou não encerrado 0: ABERTO 1: ENCERRADO |
|
| Data e hora em que o caso foi encerrado |
|
| Identificador do usuário que encerrou o caso. Se foi encerrado pelo sistema o valor é default-user |
|
| Motivo de encerramento do caso |
|
| Identificador da empresa (cliente ou não) que demandante do caso quando se tratar de um caso de Pessoa Jurídica |
|
| Usuário atualmente designado para o caso |
|
| Canal vinculado ao caso |
|
| |
|
| |
|
| |
|
| Indica se o caso está ou não expirado 0: NÃO EXPIRADO 1: EXPIRADO |
|
| Indicador externo de um caso para rastreabilidade |
|
| Indica o status do caso dentro do fluxo 0: PARADO 1: EM PROGRESSO |
|
| Última ação executada no caso |
|
| Motivo de abertura do caso |
|
| Data e hora da abertura do caso na origem |
|
| Identificador da pessoa (cliente ou não) que demandante do caso quando se tratar de um caso de Pessoa Física |
|
| Prioridade do caso LOWEST LOW MEDIUM HIGH HIGHEST |
|
| Identificador atual da fila de classificação do caso |
|
| |
|
| |
|
| Data e hora de reabertura do caso |
|
| Responsável pela reabertura do caso. Quando reaberto automaticamente pelo sistema este valor é default-user |
|
| Data e hora de agendamento do caso |
|
| Data e hora em que iniciou o progresso do caso dentro do fluxo |
|
| Assunto do caso |
tb_caseaction
Column | Type | Description |
|---|---|---|
_id | varchar | Identificador único do registro |
_version | varchar | Ignorar |
active | bit | Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
createdAt | bigint | Data e hora de criação do registro |
createdBy | varchar | Identificador do usuário que criou o registro |
deleted | bit | Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
id | varchar | Identificador único do registro |
updatedAt | bigint | Data e hora de atualização do registro |
updatedBy | varchar | Identificador do usuário que atualizou o registro |
builtIn | bit | Indica se o status é nativo na plataforma ou criado pelo usuário. 0: PERSONALIZADO 1: NATIVO |
businessUnit | varchar | Unidade de negócios vinculada a ação |
description | varchar | Descrição da ação |
dispositionCode | varchar | Código vinculado a ação quando integrado a plataforma externa de discagem. Este campo possui valor apenas integrado à plataforma Aspect UIP. |
easyId | varchar | Id amigável da ação |
name | varchar | Nome da ação |
tb_casebatch
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Data/hora de importação do lote de arquivos |
|
| Identificador do mailing |
|
| Nome do lote de casos |
|
| Quantidade de casos criados |
|
| Quantidade de casos ignorados |
|
| Quantidade de casos reabertos |
|
| Quantidade de casos rejeitados |
|
| Quantidade total de registros do lote |
|
| Quantidade total de registros inválidos |
|
| |
|
| Data e hora de encerramento do processo de importação |
|
| Data e hora de início do processo de importação |
|
| Status da importação |
tb_casebatchreport
Column | Type | Description |
|---|---|---|
_id | varchar | Identificador único do registro |
_version | varchar | Ignorar |
active | bit | Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
createdAt | bigint | Data e hora de criação do registro |
createdBy | varchar | Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócio associada |
|
| Identificador do lote de casos |
|
| Identificador do registro rejeitado |
tb_casehistory
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Nome do agente responsável pelo histórico |
|
| Nome de usuário do agente responsável pelo histórico |
|
| Identificador amigável do caso |
|
| Identificador amigável da unidade de negócio associada |
|
| Identificador da unidade de negócio associada |
|
| Nome da unidade de negócio associada |
|
| Total da duração da ligação (quando houver) em milisegundos |
|
| Identificador amigável da ação que gerou o histórico |
|
| Nome da ação que gerou o histórico |
|
| Identificador do lote de casos vinculado ao caso |
|
| Data e hora de criação do caso |
|
| Identificador do Caso |
|
| Identificador da origem do caso |
|
| Identificador amigável do status do caso |
|
| Identificador do status do caso |
|
| Nome do status do caso |
|
| Identificador amigável do tipo do caso |
|
| Identificador do tipo do caso |
|
| Nome do tipo do caso |
|
| Identificador da motivação do histórico: CREATED: Caso criado ASSIGNED: Caso designado para um usuário REOPENED: Caso reaberto CHANGE_STATUS: Alteração de status do caso CHANGE_PROGRESS: Alteração do progresso do caso UPDATED: Atualização de dados do caso CLASSIFICATION: Caso classificado em fila DELIVERED: Caso entregue para atendimento CLOSED: Caso encerrado EXPIRED: Caso expirado EXECUTED_ACTION: Ação executada sobre o caso CONTACT_SUCCESS: Contato durante o atendimento realizado com sucesso CONTACT_NOT_SUCCESS: Tentativa de contato sem sucesso |
|
| Data e hora que ocorreu a mudança no caso que gerou o histórico. Essa é a data apresentada no histórico do caso na AGW e MGW e que deve ser considerada para visões e relatórios. |
|
| Descrição da mudança no caso que gerou o histórico |
|
| Canal vinculado ao caso quando ocorreu o histórico |
|
| Indica se o caso está ou não encerrado 0: ABERTO 1: ENCERRADO |
|
| Data e hora em que o caso foi encerrado |
|
| Identificador do usuário que encerrou o caso. Se foi fechado pelo sistema o valor é default-user |
|
| Identificador amigável do motivo de encerramento do caso |
|
| Identificador do motivo de encerramento do caso |
|
| Nome do motivo de encerramento do caso |
|
| Identificador da empresa (cliente ou não) que demandante do caso quando se tratar de um caso de Pessoa Jurídica |
|
| Contato utilizado no caso que gerou o histórico. Exemplo: número de telefone, e-mail |
|
| Data e hora em que foi estabelecido o contato no canal correspondente que gerou o histórico |
|
| Data e hora em que o contato foi encerrado no canal correspondente que gerou o histórico |
|
| Motivo de encerramento do contato |
|
| Identificador interno da plataforma para relacionamento do canal utilizado no histórico do contato |
|
| Data e hora em que o contato foi estabelecido na central de atendimento |
|
| Identificador do usuário que gerou o histórico |
|
| Login do usuário que gerou o histórico (REVISAR) |
|
| Indica se o caso está ou não expirado 0: NÃO EXPIRADO 1: EXPIRADO |
|
| Ramal do usuário que gerou o histórico |
|
| Identificador externo do caso |
|
| Data e hora em que o caso foi importado |
|
| Indica o status do caso dentro do fluxo 0: PARADO 1: EM PROGRESSO |
|
| Última ação executada no caso |
|
| Motivo de abertura do caso |
|
| Data e hora da abertura do caso na origem |
|
| Nome vinculado a pessoa do usuário que gerou o histórico |
|
| Documento da pessoa (cliente ou não) demandante do caso quando se tratar de um caso de Pessoa Física |
|
| Identificador amigável da pessoa (cliente ou não) demandante do caso quando se tratar de um caso de Pessoa Física |
|
| Identificador da pessoa (cliente ou não) demandante do caso quando se tratar de um caso de Pessoa Física |
|
| Nome da pessoa (cliente ou não) demandante do caso quando se tratar de um caso de Pessoa Física |
|
| Prioridade do caso LOWEST LOW MEDIUM HIGH HIGHEST |
|
| Tipo do provedor do canal utilizado no momento em que o histórico foi gerado VOICE WEBCHAT |
|
| Descrição da fila do caso no momento de geração do histórico |
|
| Identificador da fila do caso no momento de geração do histórico |
|
| Nome da fila do caso no momento de geração do histórico |
|
| Data e hora de reabertura do caso |
|
| Responsável pela reabertura do caso. Quando reaberto automaticamente pelo sistema este valor é default-user |
|
| Indica se é pessoa física ou jurídica PERSON: pessoa física COMPANY: pessoa jurídica |
|
| Data de hora de agendamento do caso |
|
| Identificador do serviço em plataforma externa vinculado ao canal que gerou o histórico |
|
| Assunto do caso |
|
| Identificador da equipe do agente que gerou o histórico |
|
| Identificador do lider da equipe do agente que gerou o histórico |
|
| Nome do lider da equipe do agente que gerou o histórico |
|
| Nome de usuário do lider da equipe do agente que gerou o histórico |
|
| Nome da equipe do agente que gerou o histórico |
|
| Identificador do usuário do agente que gerou o histórico |
|
| Nome de usuário do agente que gerou o histórico |
tb_casereason
Column | Type | Description |
|---|---|---|
_id | varchar | Identificador único do registro |
_version | varchar | Ignorar |
active | bit | Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
createdAt | bigint | Data e hora de criação do registro |
createdBy | varchar | Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Tipo do motivo do caso OPENING_REASON: indica motivo de abertura CLOSING_REASON: indica motivo de encerramento |
|
| Identificador do tipo do caso para o qual o motivo pode ser utilizado |
|
| Descrição do motivo do caso |
|
| Identificador amigável do motivo do caso |
|
| Nome do motivo do caso |
|
| Identificador do motivo pai |
tb_casestatus
Column | Type | Description |
|---|---|---|
|
|
|
|
|
|
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócio associada |
|
| Indica se o status é o padrão para o caso 0: NÃO É STATUS PADRÃO 1: É STATUS PADRÃO |
|
| Data e hora em que o registro foi excluído |
|
| Descrição do status do caso |
|
| Identificador amigável do status do caso |
|
| Nome do status do caso |
|
| Indica o tipo do status para progresso do caso INITIAL: status inicial INTERMEDIATE: status intermediário FINAL: status progresso encerrado EXPIRED: caso expirado |
tb_company
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Indica se é a empresa principal responsável pela conta na plataforma (cliente cVortex) 0: NÃO 1: SIM |
|
| Nome da empresa |
|
| Identificador do tipo de empresa |
tb_companytype
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Nome do tipo de empresa |
tb_digitalhistory
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador do usuário conectado na plataforma e vinculado ao histórico |
|
| Duração do contato em segundos |
|
| Evento que causou o registro do histórico |
|
| Data e hora da emissão do evento |
|
| Componente da plataforma responsável pela emissão do evento |
|
| Identificador do ramal interno na plataforma que recebeu ou originou a chamada |
|
| Identificador do caso |
|
| Código do motivo de encerramento do contato. Normalmente utilizado para rastreabilidade de eventos vinculados a plataformas de telefonia integradas |
|
| |
|
| |
|
| Número externo do telefone da chamada sainte ou entrante |
|
| |
|
| Tempo de ring em segundos |
|
| IGNORAR |
|
| Tempo de fala em segundos |
|
| IGNORAR |
|
| Tipo do provedor do canal VOICE WEBCHAT |
|
| Tipo do provedor do canal VOICE WEBCHAT |
|
| Indica o sentido do contato I: Contato entrante (Inbound) O: Contato sainte (Outbound) |
tb_mailing
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócios |
|
| |
|
| |
|
| |
|
| Data e hora em que o registro foi excluído |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
tb_person
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Data e hora em que o registro foi excluído |
|
| Documento identificador da pessoa |
|
| Identificador amigável da pessoa |
|
| Endereço de e-mail da pessoa |
|
| Nome completo da pessoa |
tb_provideraccountkey
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identifica o canal utilizado no provedor VOICE WEBCHAT |
|
| Data e hora em que o registro foi excluído |
|
| Nome do canal |
|
| Conta vinculada ao canal |
tb_queue
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócio associada |
|
| Data e hora em que o registro foi excluído |
|
| Descrição da fila |
|
| Nome da fila |
tb_team
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócio |
|
| Nome da equipe |
|
| Identificador da pessoa lider da equipe |
tb_teammember
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Data e hora em que o registro foi excluído |
|
| Identificador da pessoa membra da equipe |
|
| Identificador da equipe |
tb_user
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Data e hora em que o registro foi excluído |
|
| Endereço de e-mail do usuário |
|
| |
|
| Identificador da pessoa vinculada ao usuário |
|
| Nome de usuário |
|
| Identificador do espaço de trabalho default do usuário |
tb_userbusinessunit
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócio associada |
|
| Data e hora em que o registro foi excluído |
|
| Identificador do usuário vinculado a unidade de negócio |
tb_consolidateslareport
O tempo do SLA na tabela de report pode demorar alguns minutos ou até mesmo horas para serem atualizados no report dependendo da quantidade de casos abertos, em atendimento na plataforma. A atualização dos SLAs tem uma maior prioridade para SLA com menor tempo para SLA de maior tempo. Por exemplo, um SLA de 1 hora será atualizado mais vezes durante 1 hora que um SLA de 24 horas.
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Nome do SLA para o caso |
|
| Tempo gasto para o SLA |
|
| Se o SLA está Iniciado ou Finalizado "START" , "FINISH" |
|
| Unidade de negócio que o SLA pertence |
|
| Id do atendimento relacionado a esse SLA |
|
| Tempo cadastrado para o SLA |
|
| Qual o % do SLA gasto até o momento |
|
| Id de controle da plataforma para o SLA |
tb_messagehistory
Column | Type | Description |
|---|---|---|
|
| Identificador único do registro |
|
| Ignorar |
|
| Flag identificadora do status do registro 0: INATIVO 1: ATIVO |
|
| Data e hora de criação do registro |
|
| Identificador do usuário que criou o registro |
|
| Indica se o registro foi excluído logicamente da plataforma 0: NÃO EXCLUIDO 1: EXCLUIDO |
|
| Identificador único do registro |
|
| Data e hora de atualização do registro |
|
| Identificador do usuário que atualizou o registro |
|
| Identificador da unidade de negócio associada |
|
| Data e hora em que o registro foi excluído |
|
| Identificador do usuário vinculado a unidade de negócio |
|
| Para o canal de voz irá informar o usuário que fez ou recebeu a ligação; (Futuramente terá as informações dos usuários que enviaram mensagens de chat, sms, whatsapp) |
|
| Representa o ID do caso atendido. |
|
| Quando a mensagem é do tipo e-mail os Carbon Copy (CC) serão informados aqi |
|
| Informa qual o canal de envio da mensagem |
|
| Informa a conta do canal que foi feita a mensagem |
|
| ID que agrupa várias mensagens em uma mesma conversa |
|
| Normalmente usado para o identificador do destinatário (Número de telefone, email, etc...) |
|
| Tempo em segundos de uma ligação no canal de voz |
|
| Quando enviada uma mensagem estruturada para Whatsapp o id do template será informado aqui |
|
| Atributo contido na coleção providerAccountKey |
|
| Conteúdo da mensagem que foi enviada |
|
| Status da mensagem. Pode ser NEW, READ ou REPLIED READ quer dizer que o email foi visualizado na AGW, isto é, clicado na listagem REPLIED (Não implementado) |
|
| Data que a mensagem foi recebida |
|
| Título da conversa, utilizado quando o canal é email |
|
| Uso interno da plataforma |
|
| Uso interno da plataforma |
|
| Para o canal de email são os destinatários de um email |
|
| Árvore de MessageId (Header de email) até a mensagem atual |
|
| Campo de email que indica o MessageId (Header de email) da conversação inicial |
|
| Se a mensagem foi enviada ou recebida |
O Asset ID, que é o ID do caso na MessageHistory e por lá, na entidade Case conseguirá pegar o Current Assignee, que é a pessoa que fez o atendimento e os envios das mensagens.
Na entidade Case, conseguimos chegar também no cliente pegando o Person Requester ID. Que é o ID do cliente na entidade Person.
tb_case_detail
A tabela case_detail segue a mesma estrutura da entidade personalizada Case Detail no Entity Manager da plataforma. É dinâmica conforme necessidade da operação de Customer Service e pode ter sua estrutura alterada sempre que necessário. Por esse motivo não são relacionados atributos neste documento, mas é listada aqui por ter sido padronizada para extensão dos dados do caso.
Expurgo de dados
Não há mecanismos para expurgo de dados na plataforma. Dessa forma é de total responsabilidade do administrador de banco de dados SQL no destino que recebe os dados cuidar da devida manutenção para disponibilidade e desempenho no acesso aos dados.
Consultas de exemplo
Tempo em que um caso esteve em atendimento por um Agente
Para saber o tempo em que um caso esteve em atendimento por um Agente basta recuperar os registros de mudanças de status do tipo BUSY.
Query: Recupera tempo de atendimento Caso x Agente
SELECT
TO_TIMESTAMP(CASO.createdat / 1000.0)::date AS data_criacao_caso,
CASO.CASEID id_do_caso,
caso.currentchannel as canal,
TU.USERNAME,
TO_CHAR(
make_interval(secs => sum(CON.duration) / 1000),
'HH24:MI:SS'
) AS tempo_em_antendimento,
CASO."_id" as case_uuid
FROM
TB_AGENTSTATUSCONTROL CON
LEFT JOIN TB_AGENTSTATUS STA ON CON.AGENTSTATUSID = STA.ID
LEFT JOIN TB_AGENT AGE ON CON.agentId = AGE.id
LEFT JOIN TB_USER TU ON (AGE.PERSONID = TU.PERSONID and TU.deleted=FALSE)
LEFT JOIN TB_CASE CASO ON CON.CASEID = CASO._id
where
1=1
and TU.username not like '%cvortex%'
and STA.type = 'BUSY'
AND CON.caseId IS NOT NULL
AND EVENTNAME NOT IN (
'LoggedUserEvent',
'LogoffUserEvent',
'ExecutedCaseActionEvent',
'CreatedAgentEvent'
)
and caso.createdat between -- FILTRO DE data DE CRIACAO do CASO
FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-02 00:00:00' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint AND
FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-02 23:59:59' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint
and con.startedstatusat between -- FILTRO DE data EM QUE O CASO FOI ATENDIDO POR AGENTE
FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-04 00:00:00' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint AND
FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-04 23:59:59' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint
group by
caso.createdat, id_do_caso,canal,username,case_uuid
ORDER BY
caso.createdat, CASO.CASEID;
Histórico de Mensagens Enviadas
Recuperando todas as mensagens enviadas pelos clientes/recebidas para um caso incluindo as informações do atendente que enviou e o cliente.
Query: Recupera as mensagens enviadas pelos clientes e pelos atendentes (sintaxe MSSQL)
CODE
|
Buscar por HSM enviados
É possível pegar todos as mensagens ativas HSM que foram enviadas por Caso para cada cliente. Segue query abaixo:
Para saber se a mensagem é HSM você deve olhar o templateid na entidade Message History.
SELECT TOP (1000) me.channel Canal, me.message Mensagem, me.way, me.templateId, me.assetId,
DATEADD(MILLISECOND, CAST(me.createdAt AS BIGINT) % 86400000, DATEADD(day, CAST(me.createdAt AS BIGINT) / 86400000, '19700101' ))AS DataMSG,
ca.caseId CaseID, cli.fullName Cliente
FROM [DB_CVORTEX_VR].[dbo].[tb_messagehistory] me with(nolock)
inner join [DB_CVORTEX_VR].[dbo].[tb_case] ca with(nolock) on me.assetId =ca._id
inner join tb_person cli on ca.personRequesterId = cli._id
--left join tb_person pe with(nolock) on pe._id = ca.currentAssigneeId
where me.channel = 'WHATSAPP'
and me.way = 'SENT' and me.templateId is not null
order by me.createdAt
Recuperar todos os casos que tiveram interações Whatsapp
Com a query abaixo é possível buscar todos os casos que tiveram interações com o canal Whatsapp na plataforma cVortex. A consulta está especificando o canal Whatsapp , porém se for necessário buscar por outros canais é possível replicar e adicionar os canais WEBCHAT, EMAIL e criar visões para esses canais também.
Na consulta estamos trazendo apenas o caso e relacionando com case type e message history. Porém se for necessário, pelo caso é possível relacionar com a entidade Case Reason, Status e pegar as tabulações e o Status do caso, bem como com a entidade Case Detail e pegar os dados extras do caso e demais dados que forem necessários para o relatório.
select distinct ca._id,ca.caseId, (select count(*) from tb_messagehistory me with(nolock) where me.assetId = ca._id and me.channel = 'WHATSAPP') as Whatsapp ,ct.name
from tb_case ca with(nolock)
inner join tb_casetype ct with(nolock) on ca.caseType = ct._id
inner join tb_messagehistory me with(nolock) on ca._id = me.assetId and me.channel = 'WHATSAPP'
order by ca.caseId
Buscar os casos com dados do SLA
Com a query abaixo, o usuário conseguirá buscar os dados de SLA de um caso. Lembrando que um mesmo caso pode ter vários SLAs , poderemos ter várias linhas para o mesmo caso para SLAs diferentes.
Entidade que possui os dados de SLA dos atendimentos: tb_consolidatedslareport
SELECT ca.caseid as "ID_CASO" ,tipo."name" as "TIPO CASO", sla.slaname as "SLA NAME", sla.timespent as "TEMPO GASTO",
sla.currentslastep as "SLA STATUS", sla.sladuration as "SLA DURACAO", sla.progress as "PROGRESSO SLA",
timeleft as "SLA TEMPO RESTANTE"
FROM
tb_case ca,
tb_consolidatedslareport sla,
tb_casetype tipo
where ca.id = sla.caseid
and ca.createdat > 1671505200000
SELECT
c.caseid AS “Id Caso”,
ct.description as “Case Type”,
p.fullname as “Nome do Solicitante”,
pa.fullname as “Atendente”,
to_char(
TO_TIMESTAMP(c.updatedat / 1000),
‘DD/MM/YYYY HH24:MI:SS’
) as “Data atualização”,
cs.name AS “Status”,
cd.numero_telefone as “Telefone”,
cd.numero_atendimento_ouvidorsus as “Numero atendimento ouvidor SUS”,
cd.numero_atendimento_ouvidorsus2 as “Numero atendimento ouvidor SUS2”,
cd.numero_protocolo_manifestacao2 as “Numero protocolo manifestacao”,
cr.description as “Description”
,
case
when tc.timeleft < 0 then date_trunc(‘minute’,((tc.timeleft / -60 * -60 + -60) * interval ‘1 sec’ ))
else date_trunc(‘minute’,((tc.timeleft / 60 * 60 + 60) * interval ‘1 sec’ ))
end AS “Indicador SLA”
FROM tb_case c
INNER JOIN tb_casetype ct ON ct.id = c.casetype
INNER JOIN tb_casestatus cs ON cs._id = c.casestatus
INNER JOIN tb_person p ON p._id = c.personrequesterid
LEFT JOIN tb_person pa ON pa._id = c.currentassignee
LEFT JOIN tb_custom_case_detail cd ON cd.caseid = c._id
LEFT JOIN tb_casereason cr ON cr._id = c.closingreason
left join tb_consolidatedslareport tc on tc.caseid = cd.caseid
WHERE
cs.easyid = ‘3’
AND c.updatedat BETWEEN extract(
epoch
from
TIMESTAMP ‘2023-04-05 00:00:00’
) * 1000
AND extract(
epoch
from
TIMESTAMP ‘2023-05-04 23:59:59’
) * 1000
ORDER BY c.caseid ASC
Buscar as respostas de questionários dos atendimentos
Com a query abaixo, o usuário conseguirá buscar todas as respostas de questionários dos casos. Lembrando que um mesmo caso pode ter várias respostas para o mesmo questionário ou para questionários diferentes, poderemos ter várias linhas para o mesmo caso e para respostas de opções selecionadas.
select
tc.caseid as "ID Atendimento",
tq."_id" as "ID da Resposta" ,
tq.createdat as "Data da Respsoat",
tq.description as "Nome do Questionario",
tq2."label" as "Pergunta",
tq2."type" as "Tipo da Pergunta",
tq2.answer as "Resposta Texto",
tq3."label" as "Resposta Escolhida"
from "6230f2f5bd3a69548491bc37".tb_questionnaireanswer tq
inner join "6230f2f5bd3a69548491bc37".tb_case tc on tq.caseid = tc._id
left join "6230f2f5bd3a69548491bc37".tb_questionnairequestionanswer tq2 on tq."id" = tq2.questionnaireanswerid
left join "6230f2f5bd3a69548491bc37".tb_questionnairequestionoptionanswer tq3 on tq2."_id" = tq3.questionanswerid and tq3.chosenoption = true
order by tc.caseid desc
A busca acima retorna todas as questões de um questionário que foi respondido, mesmo que a pergunta em si não tenha sido respondida.
A busca abaixo retorna apenas questões respondidas e também o usuário que respondeu o questionário:
select p.fullname as Pessoa,
tc.caseid as "ID Atendimento",
tp.username as "Usuario",
tq."_id" as "ID da Resposta" ,
TO_TIMESTAMP(tq.createdat / 1000)::date as "Data da Resposta",
tq."name" as "Nome do Questionario",
tq2."label" as "Pergunta",
tq2."type" as "Tipo da Pergunta",
tq2.answer as "Resposta Texto"
, tq3."label" as "Resposta Escolhida"
from tb_questionnaireanswer tq
inner join tb_case tc on tq.caseid = tc._id
inner join tb_person p on tc.personrequesterid = p.id
inner join tb_casehistory tc2 on tc2.questionnaireanswerid = tq."_id"
left join tb_user tp on tc2.userid = tp."_id"
left join tb_questionnairequestionanswer tq2 on tq."id" = tq2.questionnaireanswerid
left join tb_questionnairequestionoptionanswer tq3 on tq2."_id" = tq3.questionanswerid and tq3.chosenoption = true
where 1=1
--and tc.caseid = 511542 -- informe o número do caso para filtrar
and TO_TIMESTAMP(tq.createdat / 1000)::date >'2025-06-01'
and ((tq2."type" = 'TEXT' and tq2.answer is not null) or (tq2."type" != 'TEXT' and tq3."label" is not null))
order by tq.createdat asc
Volumetria de casos fechados
A consulta abaixo traz os dados de casos fechados durante o mês de junho/2025.
select tc.caseid as id_do_caso, tc.currentchannel as canal, tc2."name" as tipo_de_caso, tcs."name" as status, to_timestamp(tc.createdat / 1000) as criado_em, to_timestamp(tc.closedat / 1000) as fechado_em, u.username as fechado_por , t."name" as equipe, tc.id as case_uuid
from tb_case tc
left outer join tb_casetype tc2 on (tc.casetype = tc2.id)
left outer join tb_user u on (tc.closedby = u.id)
left outer join tb_teammember tm on (u.personid = tm.personid)
left outer join tb_team t on (tm.teamid = t.id)
left outer join tb_casestatus tcs on (tc.casestatus = tcs.id)
where 1=1
and closed = true
and tc.createdat between FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-01 00:00:00' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint AND
FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-30 23:59:59' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint
order by id_do_caso asc
Tempo de atribuição dos casos aos Agentes
A consulta abaixo traz o tempo em que o caso ficou atribuído a cada Agente durante o dia 01/06/2025. Pode também ser interpretado como o TMA por Agente.
-- TEMPO DE ATRIBUICAO DE CASOS POR AGENTE
WITH casos_filtrados AS (
SELECT
id AS case_uuid,
to_timestamp(createdat / 1000) AS data_criacao_caso,
createdat,
caseid AS caseid,
currentchannel as canal
FROM tb_case
WHERE 1=1
and createdat BETWEEN
FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-01 00:00:00' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint AND
FLOOR(EXTRACT(EPOCH FROM TIMESTAMP '2025-06-01 23:59:59' AT TIME ZONE 'America/Sao_Paulo') * 1000)::bigint
),
historico_ordenado AS (
SELECT
ch.caseid AS case_uuid,
ch.agentusername AS user_name,
to_timestamp(ch.createdat / 1000) AS data_do_historico,
LEAD(to_timestamp(ch.createdat / 1000)) OVER (
PARTITION BY ch.caseid
ORDER BY ch.createdat
) AS proxima_data
FROM tb_casehistory ch
JOIN casos_filtrados c ON c.case_uuid = ch.caseid
),
duracoes AS (
SELECT
case_uuid,
user_name,
data_do_historico,
proxima_data,
proxima_data - data_do_historico AS tempo_atribuido
FROM historico_ordenado
WHERE user_name IS NOT NULL
)
select
d.case_uuid,
c.caseid,
c.data_criacao_caso,
c.canal,
d.user_name,
TO_CHAR(SUM(d.tempo_atribuido), 'HH24:MI:SS') AS tempo_total_atribuido
FROM duracoes d
JOIN casos_filtrados c ON c.case_uuid = d.case_uuid
GROUP BY d.case_uuid, c.caseid, c.data_criacao_caso, c.canal, d.user_name
ORDER BY c.data_criacao_caso, c.caseid, d.case_uuid, tempo_total_atribuido DESC;