Introdução
A tabela csr armazena os atendimentos da loja, do modelo antigo (legado) do Headless BI. Ela não aparece com o nome csr: o nome real leva o código da loja, como csr_abc123xyz, dentro da pasta client_legacy_abc123xyz. Cada linha é um atendimento, identificado pela coluna id. 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 consumidor fala com o bot, é encaminhado para um atendente e tem o atendimento finalizado. Na tabela csr_abc123xyz isso vira uma linha só:
• id = abc123, chat_id = chat789, created_at às 10:00 e status = FINISHED.
• bot_fowarded_at às 10:05, quando o bot passa o atendimento, e replied_at às 10:08, na primeira resposta do atendente. Então waiting_time = 180000 (3 minutos).
• finished_at às 10:30, então total_time = 1800000 (30 minutos), contados desde a criação.
• Se o mesmo consumidor voltar a falar no dia seguinte, a conversa chat789 ganha um novo atendimento, com outro id.
Os tempos estão em milissegundos: divida por 60000 para ver em minutos. O waiting_time conta até a primeira resposta do atendente (replied_at), a partir do encaminhamento do bot quando ele existe, ou da criação do atendimento quando não existe. A coluna status traz os valores WAITING, CONTACTED e FINISHED, em maiúsculas.
Use sempre o filtro de partição year_month, no formato AAAAMM (ex.: year_month = 202610). Para identificar o canal, prefira a coluna source: as colunas platform, platform_id e labels ficam vazias quando a conversa não tem nenhuma etiqueta. Uma conversa (chat_id) pode ter vários atendimentos ao longo do tempo, então conte atendimentos pelo id.
A mesma loja também tem, no modelo atual, a tabela dim_customer_support_request, com os mesmos atendimentos.
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'
SELECT * FROM csr_123
Dicionário de dados
Variável | Tipo | Descrição | Observação |
id | string | Identificador único do atendimento. | |
created_at | timestamp | Data de criação do atendimento. | |
_p_assignedToTeam | string | Identifica qual time está em posse do atendimento. | |
bot_contacted_id | string | Identificador do bot que teve o primeiro contato com o consumidor neste atendimento. | |
bot_forwarded_to_sales_person_id | string | Identificador do atendente para o qual o bot redirecionou o atendimento após a triagem. | |
bot_forwarded_to_sales_person_name | string | Nome do atendente para o qual o bot redirecionou o atendimento após a triagem. | |
bot_forwarded_to_team_id | string | Identificador do time para o qual o bot redirecionou o atendimento após a triagem. | |
_p_campaign | string | Identifica a campanha de SMS que originou o atendimento, quando aplicável. | |
chat_id | string | Identificador da conversa à qual pertence este atendimento. | |
contacted_by | string | Identificador do atendente que realizou o primeiro contato humano com o consumidor. | Esse campo será descontinuado. Utilizar: contacted_by_id e contacted_by_name |
contacted_by_id | string | Identificador do atendente que realizou o primeiro contato humano com o consumidor. | |
contacted_by_name | string | Nome do atendente que realizou o primeiro contato humano com o consumidor. | |
_p_customer | string | Identifica o consumidor que está sendo atendido. | |
finished_id | string | Identifica o atendente que finalizou o atendimento. | Esse campo será descontinuado. Utilizar: finished_by_id e finished_by_name |
finished_by_id | string | Identificador do atendente que finalizou o atendimento. | |
finished_by_name | string | Nome do atendente que finalizou o atendimento. | |
_p_order | string | Identifica o último pedido gerado durante o atendimento. | |
_p_originTeamFinishedBy | string | Identifica a qual time pertence o atendente que finalizou o atendimento. | |
_p_user | string | Atual atendente responsável pelo atendimento. | |
_updated_at | timestamp | Última data de atualização do atendimento. | |
analyticsTracking | string | JSON dos campos de tracking do OmniTracking. Quando preenchido, indica que o atendimento foi rastreado. | |
bot_contacted_at | timestamp | Data e hora do primeiro contato do bot com o consumidor. | |
bot_fowarded_at | timestamp | Data e hora do primeiro encaminhamento do atendimento para um atendente. | |
platform | string | Plataforma utilizada pelo consumidor. Valores possíveis: FBMessenger, SMS, WebChat, WAB-OMNICHAT (WhatsApp), Instagram. | |
source | string | Plataforma utilizada pelo consumidor para conversar com a loja. Mesmos valores do campo platform. | |
clientPlatform | string | Plataforma que criou o atendimento. | |
platform_id | string | Identificador da plataforma de atendimento (número do telefone). | |
platform_profile_name | string | Nome do responsável pela plataforma. | |
closing_reason | string | Motivo da finalização. Obrigatório quando STATUS = FINISHED. | |
contacted_at | timestamp | Data em que o atendente atendeu o lead. Obrigatório quando STATUS != WAITING. | |
contactedByFetched | string | JSON completo do atendente responsável por atender o lead. | |
events | json | Eventos de histórico do atendimento desde a sua criação. Cada objeto Event contém: eventType, eventDate, from, fromFetched, to, toFetched, requestingUser, requestingUserFetched, clientPlatform, clientPlatformVersion. | |
finished_at | timestamp | Data de finalização do atendimento. | |
finished_by_api | boolean | Identifica se o atendimento foi finalizado de forma automática por API. | |
isSupportRated | boolean | Identifica se o atendimento foi avaliado. | |
massiveFinishing | boolean | Identifica se o atendimento foi finalizado de forma massiva. | |
name | string | Nome do cliente. | |
notes | string | Anotações feitas pelo vendedor durante o atendimento. | |
status | string | Status do atendimento: Waiting, contacted, finished. | |
support_rate_score | int | Nota da avaliação do atendimento. | |
support_rate_comment | string | Comentário da avaliação de atendimento. | |
total_time | double | Tempo total do atendimento: FinishedAt - CreatedAt. (Milissegundos) | |
total_time_bot | double | Tempo de atendimento do bot: botForwardedAt - botContactedAt. (Milissegundos) | |
waiting_time | double | Tempo de espera: ContactedAt - CreatedAt. (Milissegundos) | |
waitingTimeBot | double | Tempo de espera desconsiderando o bot: ContactedAt - botForwardAt. (Milissegundos) | |
replied_at | timestamp | Data em que o atendimento foi respondido por um atendente humano. | |
labels | string | Rótulos personalizados do consumidor (concatenados por "|"). | |
Part0 | year_month | Ao fazer uma consulta nessa base, deve-se sempre utilizar a partition — campo year_month no formato YYYYMM, ex: 202207. |
