Introdução
A tabela csr_time_events armazena as janelas de tempo de cada atendimento, do modelo antigo (legado) do Headless BI: os períodos em que o atendimento ficou com um atendente, com o bot ou na fila de um time, com o tempo de espera e de atendimento de cada período. Ela não aparece com o nome csr_time_events: o nome real leva o código da loja, como csr_time_events_abc123xyz, dentro da pasta client_legacy_abc123xyz. Cada linha é uma janela de um atendimento. Com dados atualizados a cada 30 minutos, entre 6h e 22h (horário de Brasília); de madrugada não há atualização.
Exemplo
Um atendimento que começa com um atendente e é transferido para outro time gera uma linha por janela, todas com o mesmo csr_id:
• Janela 1: start_at às 10:00, replied_at às 10:02 e end_at às 10:30, com user_id preenchido. waitingTime = 120000 (2 minutos) e attendenceTime = 1680000 (28 minutos, da resposta até o fim).
• Janela 2: o atendimento entra na fila do time às 10:30, com team_id preenchido e user_id vazio.
• Janela 3: um atendente do novo time assume às 10:30 e responde às 10:41, então waitingTime = 660000 (11 minutos). Enquanto o atendimento continua aberto, end_at e attendenceTime ficam vazios.
Os tempos estão em milissegundos e chegam como texto: converta antes de somar (ex.: cast(tb.waitingTime as bigint) / 60000 para ver em minutos). Quando a janela termina sem resposta, waitingTime vai do início ao fim da janela e attendenceTime fica 0.
A tabela não tem uma coluna de ordem dos eventos: ordene as janelas de um atendimento por start_at. As colunas status, closingReason, contacted_at e finished_at são do atendimento e se repetem em todas as janelas dele. As janelas incluem o bot e a fila do time (user_id vazio); para ver só o atendimento humano, cruze user_id com a tabela dim_user e filtre is_bot = false.
Use sempre o filtro de partição year_month, no formato AAAAMM (ex.: year_month = 202610). A mesma loja também tem, no modelo atual, a tabela fact_time_events_csr, com as janelas dos mesmos atendimentos.
Evento extraído da tabela csr (CustomerSupportRequest).
Atenção: Os registros desta tabela utilizam o fuso horário UTC, ou seja, para que as datas sejam referentes ao fuso horário brasileiro, é preciso inserir nas queries o fuso horário brasileiro.
Ex:
SET TIME ZONE '-03:00'
Dicionário de dados
Variável | Tipo | Descrição |
csr_id | string | id do atendimento (csr) |
created_at | timestamp | Data de criação do Atendimento |
chat_id | string | identificador do chat |
start_at | timestamp | Início da janela do evento do atendimento |
end_at | timestamp | Fim da janela do evento do atendimento |
replied_at | timestamp | Data da 1° resposta da janela de eventos do atendimento |
team_id | string | Id do time do usuário |
teamFetched | string | Json (Dados completos do time) |
user_id | string | identificador do usuário que fez o atendimento |
userFetched | string | Json (Dados completos do usuário) |
replied_by_id | string | Id do usuário que respondeu o atendimento |
repliedByFetched | String | Json (Dados do usuário que respondeu o atendimento) |
waitingTime | bigint | Tempo de espera total da janela de eventos do atendimento (milisegundos) |
attendenceTime | bigint | Tempo de atendimento total da janela de eventos do atendimento (milisegundos) |
waitingTimeAttendenceHours | bigint | Tempo de espera total da janela de eventos do atendimento, considerando o horário de atendimento (milisegundos) |
attendenceTimeAttendenceHours | bigint | Tempo de espera total da janela de eventos do atendimento, considerando o horário de atendimento (milisegundos) |
tradingHours | string | Horário de atendimento configurado |
status | string | status do atendimento |
closingReason | string | motivo de finalização do atendimento |
contacted_at | timestamp | Data que o vendedor atendeu. |
contacted_by_id | string | Identificador do usuário que fez o atendimento |
contactedByFetched | string | Json (Dados completo do usuário / time que fez o atendimento) |
finished_at | timestamp | Data de finalização do atendimento |
finished_by_id | string | Identificador do usuário que finalizou o atendimento |
finishedByFetched | string | Json (Dados completo do finalizador do atendimento) |
assigned_to_team_id | string | identificador do time que o atendimento está relacionado |
assignedToTeamFetched | string | Json (Dados completos do time) |
origin | string | Origem da mensagem |
created_date | string | Data truncada yyyy-mm-dd retirada do campo created_at |
Part0 | year_month int | Ao fazer uma consulta nessa base, deve-se sempre utilizar a partition — campo year_month no formato YYYYMM, ex: 202207. |
