Pular para o conteúdo principal

Relatórios da jornada: o que aconteceu com cada lead

Cada jornada gera dois arquivos por dia, que mostram o que aconteceu com cada lead e o que foi dito na conversa:

ArquivoO que temUma linha é
EventosOs passos de cada lead: entrada na jornada, envio, entrega, resposta, resultado, encerramento.um acontecimento
MensagensO texto trocado, com remetente, status de entrega e telefones.uma mensagem

Os dois saem em Parquet, JSONL ou CSV (veja os formatos), com nomes de coluna em inglês. O formato é o mesmo para todas as organizações: o de-para para o seu sistema (por exemplo, qual resultado vira qual código) fica com você. O que a jornada declara, como os nomes dos resultados e dos campos, aparece no arquivo exatamente como você escreveu.

Quem pode pedir e como​

Os relatórios saem pela Aura e só para administradores da organização, porque cobrem todos os leads da jornada:

Exporte os eventos da jornada Boas-vindas de ontem em CSV.

Exporte as mensagens da jornada Boas-vindas de ontem em JSONL.

Exporte os eventos da jornada Boas-vindas de ontem em Parquet.

A Aura devolve um arquivo para baixar, com o número de linhas, o dia e o aviso de arquivo parcial, quando for o caso. O formato vai no parâmetro formato, que aceita parquet, jsonl e csv. O formato padrão é csv; para cargas automatizadas, peça parquet.

Dia no fuso da organização e arquivo parcial​

Cada arquivo cobre um dia no fuso da organização. O administrador define o fuso no painel de regras de contato, no mesmo campo usado na janela de ligação. Organização sem fuso configurado usa UTC. "Ontem" e "hoje" também valem no fuso da organização. Num dia de horário de verão, o dia pode ter 23 ou 25 horas.

Os horários nas colunas continuam em UTC (ISO 8601 com Z): só a divisão em dias muda. O nome do arquivo leva o fuso, por exemplo eventos_<jornada>_2026-10-04_America-Sao_Paulo.csv (ou .jsonl, .parquet, conforme o formato); sem fuso, o nome termina em _UTC antes da extensão.

Um dia que ainda não fechou, ou que acabou de fechar, sai como parcial (o dia local em curso): o nome do arquivo ganha o sufixo _parcial e a resposta traz o instante até onde os dados estão definitivos. Trate esse arquivo como sujeito a ganhar linhas depois. Um dia fechado tem sempre o mesmo conjunto de linhas, mas veja o que pode mudar depois.

Relatório periódico​

Para receber todo dia, peça o agendamento:

Todo dia às 7h, gere os relatórios da jornada Boas-vindas.

O relatório agendado gera os dois arquivos do dia anterior e os entrega numa conversa própria do agendamento. Só administradores agendam. O agendamento vale para aquela jornada e aquele formato (o parâmetro formato do agendamento também aceita parquet): para mudar, agende de novo. Veja também Tarefas agendadas.

Formatos: Parquet, JSONL e CSV​

FormatoQuando usar
Parquet (.parquet)Recomendado para cargas automatizadas. Os dados saem tipados e comprimidos com zstd.
JSONL (.jsonl)Continua disponível: uma linha por registro, com fields e attributes em objetos.
CSV (.csv)Desaconselhado para cargas automatizadas e para colunas dinâmicas: as colunas fields.* e attributes.* mudam conforme a configuração da jornada. Serve para abrir numa planilha.

Tipos no Parquet​

  • Horários (occurred_at, recorded_at, sent_at, delivered_at, read_at, failed_at e os demais) saem como timestamp em UTC.
  • journey_version, followup_step e media_count saem como inteiro.
  • As colunas fields.* seguem o tipo do campo na jornada: inteiro vira inteiro de 64 bits, decimal vira decimal com 2 casas, data vira data, e lista de opções e texto viram texto.
  • As colunas attributes.* saem como texto.
  • O esquema é o mesmo em todas as linhas do arquivo: uma coluna sem valor numa linha continua com o seu tipo.

Valor que não cabe no tipo​

Se um valor não cabe no tipo da coluna (por exemplo, texto num campo inteiro, ou decimal com mais de 2 casas), a coluna sai vazia naquela linha e o valor original fica na coluna invalid_values, da mesma linha, em JSON. A resposta da exportação avisa quantos valores foram assim.

Fórmulas de planilha

No CSV, a plataforma protege o arquivo contra fórmulas de planilha. No Parquet essa proteção não é aplicada, porque o dado é tipado: um texto que começa com = sai literal. Quem converter o Parquet para CSV ou planilha deve tratar isso.

Arquivo de eventos​

As colunas fixas vêm sempre, nesta ordem. Depois delas vêm as colunas fields.* e attributes.*, descritas mais abaixo. Em CSV, uma coluna sem valor naquela linha fica vazia; em Parquet, ela continua com o seu tipo. Em JSONL, fields e attributes são objetos dentro de cada linha.

ColunaTipoO que éExemplo
event_idtextoIdentificador único do evento.<id-do-evento>
event_typetextoO tipo do evento. Veja a tabela.first_reply
occurred_atdata e hora (UTC)Quando o acontecimento ocorreu.2026-01-15T13:04:05Z
recorded_atdata e hora (UTC)Quando a plataforma registrou.2026-01-15T13:04:06Z
external_lead_idtextoO ID do lead no seu sistema, vindo da lista.<id-do-lead-no-seu-sistema>
journey_idtextoIdentificador da jornada.<id-da-jornada>
journey_nametextoNome atual da jornada.Boas-vindas
journey_versioninteiroVersão da jornada no momento do evento.3
enrollment_idtextoA inscrição: o lote do disparo em que o lead entrou na jornada.<id-da-inscricao>
conversation_idtextoA conversa do lead com o agente. Vazio antes de existir conversa.<id-da-conversa>
channeltextoCanal. Hoje, whatsapp.whatsapp
providertextoProvedor do número: meta_cloud ou twilio.meta_cloud
actor_typetextoQuem causou o evento: ai_agent, human_agent, rule, auto_disposition, lead ou system.ai_agent
actor_idtextoO atendente ou o agente, quando actor_type é human_agent ou ai_agent. Vazio nos demais.<id-do-atendente>
templatetextoNome do template enviado, nos eventos de envio.<nome-do-template>
followup_stepinteiroNúmero do passo do acompanhamento, em followup_sent.1
provider_message_idtextoIdentificador da mensagem no provedor.<id-da-mensagem-no-provedor>
delivery_statustextoStatus de entrega, em delivery_update.delivered
error_codetextoCódigo de erro, quando o envio falha.<codigo-de-erro>
error_messagetextoDescrição curta do erro.<descricao-do-erro>
dispositiontextoO resultado escolhido, em disposition_recorded.<nome-do-resultado>
notestextoObservação que quem registrou o resultado escreveu. Pode ser texto livre.<observacao>
reasontextoMotivo, em eventos como lead_suppressed.<motivo>
O texto da mensagem não está aqui

O arquivo de eventos não traz telefone nem o texto das mensagens. Eles estão no arquivo de mensagens.

Tipos de evento​

event_typeQuando
lead_enrolledO lead entrou num disparo com jornada.
lead_suppressedO lead ficou de fora: ID bloqueado, prazo de "não mandar de novo", ID repetido, já na fila de outro disparo, ou sem um atributo obrigatório. O motivo vai em reason.
initial_message_sentA primeira mensagem saiu.
send_failedO envio falhou, com o código de erro.
delivery_updateO WhatsApp informou entregue, lida ou com falha, em delivery_status.
followup_sentUm passo do acompanhamento saiu (followup_step).
first_replyO lead respondeu pela primeira vez.
handoff_requestedA conversa entrou na fila de atendimento humano, antes de ter um atendente.
handoff_assignedUm atendente assumiu a conversa.
handoff_returnedO atendente devolveu a conversa ao agente.
disposition_recordedUm resultado foi registrado, com quem registrou em actor_type.
opt_outO lead pediu para sair.
conversation_closedA conversa foi encerrada.

Resultados automáticos​

Quando a conversa encerra sem que ninguém escolha um resultado, a plataforma registra um automático, com actor_type igual a rule. Esses nomes são reservados: nenhuma jornada pode declarar um resultado com eles.

dispositionQuando
no_responseA conversa encerrou sozinha e o lead nunca respondeu.
abandonedA conversa encerrou sozinha depois de o lead responder, ou de passar por um atendente.
undeterminedQuem estava na conversa a encerrou sem escolher um resultado.
opt_outO lead pediu para sair.

Quando o automático seria undetermined, a plataforma ainda lê a conversa. Se ela mostrar com clareza um dos resultados da jornada, esse resultado passa a valer e o evento aparece com actor_type igual a auto_disposition. Esse registro pode sair marcado para revisão.

Campos do resultado: colunas fields.*​

Cada resultado que a jornada declara pode ter campos, as informações que o agente ou o atendente preenchem junto com o resultado (por exemplo, o produto contratado e o valor). Cada campo tem uma chave e um tipo:

TipoO que guardaFormato no arquivo
picklistUma opção de uma lista fechada.O texto da opção como a jornada declarou.
textTexto curto, até 120 caracteres.Texto.
integerNúmero inteiro, com mínimo e máximo opcionais.3
decimalNúmero com duas casas, com unidade opcional (como BRL).1250.00
dateUma data.2026-01-31

No arquivo de eventos, cada chave vira uma coluna fields.<chave>. Um resultado com os campos produto e valor gera as colunas fields.produto e fields.valor, preenchidas só nas linhas disposition_recorded daquele resultado. As colunas aparecem em ordem alfabética e incluem as chaves declaradas na versão atual da jornada e as que aparecem nas linhas do dia. Em JSONL, os campos vêm no objeto fields.

Atributos do lead: colunas attributes.*​

Os atributos são colunas da sua lista de leads que você quer ver no relatório (por exemplo, uma faixa ou segmento do lead). A jornada declara quais, na lista Atributos exportados: até 20 nomes. Cada um vira uma coluna attributes.<nome>, na ordem declarada, com o valor que veio na lista para aquele lead. Sem essa declaração, nenhum atributo sai. Em JSONL, vêm no objeto attributes.

Arquivo de mensagens​

Uma linha por mensagem, de entrada ou de saída. Cada parte de uma resposta dividida em vários balões é uma linha própria. A mensagem entra no arquivo quando a conversa está ligada à jornada, a partir do primeiro evento da jornada nessa conversa.

ColunaTipoO que éExemplo
message_idtextoIdentificador único da mensagem.<id-da-mensagem>
conversation_idtextoA conversa.<id-da-conversa>
conversation_started_atdata e hora (UTC)Início da parte retida da conversa. Veja retenção.2026-01-14T10:00:00Z
external_lead_idtextoO ID do lead no seu sistema.<id-do-lead-no-seu-sistema>
journey_idtextoIdentificador da jornada.<id-da-jornada>
enrollment_idtextoA inscrição do lead na jornada.<id-da-inscricao>
channeltextoCanal.whatsapp
providertextoProvedor do número: meta_cloud ou twilio.twilio
directiontextoinbound (do lead) ou outbound (para o lead).outbound
sender_typetextoQuem enviou: lead, ai_agent, human_agent ou system (template de disparo e acompanhamento).ai_agent
sender_idtextoO agente ou o atendente. Vazio nas demais.<id-do-agente>
recorded_atdata e hora (UTC)Quando a mensagem foi registrada. Define o dia local da organização a que a linha pertence.2026-01-15T13:04:05Z
content_typetextotext, audio, image, video, document, template ou other.text
bodytextoO texto. Em áudio, a transcrição. Em template, o texto já com as variáveis preenchidas; vazio se não foi possível resolver.<texto-da-mensagem>
templatetextoNome do template, nas mensagens de template.<nome-do-template>
media_countinteiroQuantos anexos a mensagem trouxe.0
media_typestextoTipos dos anexos, separados por ;. Não há link do anexo.image/jpeg
provider_message_idtextoIdentificador da mensagem no provedor.<id-da-mensagem-no-provedor>
delivery_statustextoreceived (entrada), sent, delivered, read ou failed.read
sent_atdata e hora (UTC)Quando o provedor confirmou o envio.2026-01-15T13:04:06Z
delivered_atdata e hora (UTC)Quando foi entregue.2026-01-15T13:04:09Z
read_atdata e hora (UTC)Quando foi lida.2026-01-15T13:10:00Z
failed_atdata e hora (UTC)Quando falhou, se falhou.vazio
error_codetextoCódigo de erro da falha.<codigo-de-erro>
error_messagetextoDescrição curta do erro.<descricao-do-erro>
lead_phonetextoTelefone do lead, com + e código do país.<telefone-do-lead>
business_phonetextoTelefone do número da empresa.<telefone-da-empresa>

O que pode mudar depois​

  • O estado de entrega avança. O conjunto de linhas de um dia fechado não muda, mas a mesma mensagem pode ser vista em estados diferentes em dias diferentes. Uma mensagem exportada hoje como sent pode, amanhã, ter delivered_at e read_at preenchidos, ou virar failed. Se você baixa o mesmo dia mais de uma vez, o que vale é o arquivo mais recente. Quem junta os relatórios de vários dias deve ficar com a versão mais nova de cada message_id.
  • O resultado de um atendimento pode ser corrigido. Escolher um resultado de novo substitui o anterior: o novo vale, e o evento anterior continua no histórico. Num relatório mais novo, o resultado de um lead pode ser diferente do que você recebeu antes. Por isso, em disposition_recorded, o último evento do lead na conversa é o que vale.
  • A atribuição de uma conversa à inscrição pode mudar. Se o lead for inscrito de novo na mesma conversa, external_lead_id e enrollment_id das mensagens seguem a inscrição mais recente.

Retenção de 90 dias​

O texto das mensagens fica guardado por 90 dias. Depois disso, as mensagens saem do arquivo de mensagens e não podem mais ser exportadas.

Por isso, conversation_started_at mostra o início da parte retida da conversa, e não o início real dela. Numa conversa longa, esse valor avança conforme as mensagens mais antigas saem. Se você precisa guardar o texto por mais tempo, baixe os arquivos dentro do prazo, tratando-os como descrito abaixo.

O arquivo de eventos tem os dados de negócio da jornada, sem telefone e sem texto das mensagens, e não tem esse prazo.

Dados pessoais e LGPD​

O arquivo de mensagens contém dados pessoais

Ele traz o telefone do lead e o texto que ele escreveu. Trate-o como dado pessoal, conforme a LGPD: guarde só onde for necessário, restrinja o acesso, não encaminhe por canais abertos e apague quando não precisar mais.

  • O arquivo gerado fica disponível sem prazo de expiração. Quem o baixou deve removê-lo quando terminar o uso.
  • Apagar a organização apaga os arquivos gerados. Apagar um lead individualmente não apaga os arquivos que já foram gerados com os dados dele.
  • O arquivo de eventos também pode ter dados pessoais: o notes e os campos text são texto livre, e os attributes.* vêm da sua lista de leads.
  • Só administradores geram os arquivos e criam o agendamento.

Analisar com a Aura​

Em vez de abrir os arquivos numa planilha, o administrador pode pedir à Aura que os analise: funil da jornada, resultados por jornada ou inscrição, distribuição por campo de um resultado, soma de um campo de valor, tempo até a primeira resposta, falhas de entrega por tipo de erro e desempenho por atendente. Ela entrega gráficos, dashboards e o recorte em CSV.

Monte um dashboard com o funil da jornada Boas-vindas na última semana.

A análise cobre até 31 dias de uma vez, vale as mesmas regras de acesso (só administradores) e, por padrão, traz resultados agregados. Telefone e texto de mensagem só entram na análise quando o administrador pede explicitamente. Um relatório agendado gera os arquivos, mas não faz análises.