Pular para o conteúdo

Conte quantos contatos entraram na semana e de onde vieram

Resposta curta

Você exporta a lista de contatos da Systeme.io em CSV, roda um script curto com as duas datas da semana e sai com o total de contatos e a contagem por tag de origem. Na segunda, esse número vira uma ação escrita, não uma impressão.

Assunto: E-mail automático

Por Alan Victor · · · 8 min de leitura

  1. 1Marque a origem no formulário, antes de contar
  2. 2Exporte a lista com data e tags
  3. 3Recorte a semana e conte por tag
  4. 4Por que a soma por tag não bate com o total de contatos da conta?
  5. 5O que fazer na segunda com esse número

No fim deste guia você tem um número fechado: quantos contatos entraram na sua conta entre segunda e domingo e quantos vieram de cada ponto de entrada. Esse número sai de um CSV que você exporta e de um script curto que roda na sua máquina. Eu monto esse ciclo na Systeme.io porque a página que capta, o formulário que marca e a lista que guarda ficam no mesmo painel.

Sai um guia por dia, e o canal do Telegram avisa quando sai. A ferramenta que eu uso para a página, a captura e o e-mail automático no mesmo lugar é a Systeme.io, que tem plano gratuito.

O que você vai ter no fim

Etapa 1: Marque a origem no formulário, antes de contar

Resposta direta: cada formulário que capta contato precisa aplicar uma tag própria no cadastro; sem essa tag o contato entra e você não tem como saber de onde ele veio.

Na Systeme.io, abra o funil, entre no passo onde está o formulário e edite esse formulário. Nas configurações dele existe o campo de tags aplicadas ao envio: escreva uma tag por formulário ali e salve. Como a página, o formulário e a lista são da mesma conta, o que você salva nesse campo é o que aparece no contato, sem etapa intermediária.

Use sempre o mesmo padrão: minúsculas, sem acento, sem espaço, começando por origem-. Exemplos: origem-bio, origem-ads-frio, origem-lista-espera. Três formulários, três tags: a contagem só separa aquilo que está separado na origem.

Confira sozinho: faça um cadastro de teste com um e-mail seu e abra Contatos para ver se a tag apareceu no contato. Se não apareceu, o campo de tags não foi salvo — salve o formulário de novo e repita o teste. Apague o contato de teste antes de exportar, senão ele entra na conta da semana.

Etapa 2: Exporte a lista com data e tags

Resposta direta: a exportação de contatos em CSV é a fonte do recorte, porque traz uma linha por contato com a data de criação e as tags.

Na Systeme.io, abra Contatos e use a opção de exportar para baixar o CSV. Salve com a data da segunda no nome do arquivo, por exemplo contatos-2026-11-02.csv. O nome é o que impede você de rodar o script no arquivo da semana passada.

Antes de rodar qualquer coisa, abra o arquivo num editor de texto e olhe a primeira linha, o cabeçalho. Você precisa de três colunas: e-mail, tags e data de criação. Anote o nome exato que está escrito nelas, com maiúsculas e espaços, porque o script usa esses nomes ao pé da letra. A central de ajuda da Systeme.io descreve a exportação campo por campo.

Se você já automatiza pela API, o mesmo recorte sai da listagem de contatos descrita na documentação oficial da API. Para quem faz isso uma vez por semana, o CSV é o caminho mais curto, e é o que este guia ensina.

Etapa 3: Recorte a semana e conte por tag

Resposta direta: o script abaixo lê o CSV, descarta o que foi criado fora do período e imprime o total da semana e uma linha por tag de origem, da maior para a menor.

import csv, sys
from datetime import datetime

INICIO  = datetime(2026, 11, 2)   # segunda, 00:00
FIM     = datetime(2026, 11, 9)   # segunda seguinte, 00:00 (nao entra)
FORMATO = "%Y-%m-%d %H:%M:%S"     # usa os 19 primeiros caracteres da data

contagem = {}
total = 0

for linha in csv.DictReader(open(sys.argv[1], encoding="utf-8-sig")):
    quando = datetime.strptime(linha["Created at"][:19], FORMATO)
    if not (INICIO <= quando < FIM):
        continue
    total += 1
    tags = [t.strip() for t in linha.get("Tags", "").split(",") if t.strip()]
    origem = [t for t in tags if t.startswith("origem-")]
    chave = origem[0] if origem else "sem-origem"
    contagem[chave] = contagem.get(chave, 0) + 1

print("contatos na semana:", total)
for chave, n in sorted(contagem.items(), key=lambda par: -par[1]):
    print(chave, n)

Salve como conta-semana.py e rode python3 conta-semana.py contatos-2026-11-02.csv. As duas datas do topo são o período: INICIO entra e FIM não entra, então a segunda seguinte fica de fora e você não conta contato duas vezes.

Duas falhas são comuns, e as duas têm mensagem própria.

A saída começa com contatos na semana: N e, embaixo, traz uma linha por tag. Se a coluna de tags vier separada por ponto e vírgula em vez de vírgula, troque o separador dentro do split.

Para fazer isso sem montar servidor

O que este guia faz por API, a Systeme.io faz por formulário: página, lista, etiqueta e e-mail automático na mesma conta. É a conta em que eu testo o que aparece aqui, e o plano gratuito já dá para publicar e capturar.

Ver o plano gratuito

Etapa 4: Por que a soma por tag não bate com o total de contatos da conta?

Resposta direta: porque o total da conta soma tudo o que já entrou (importação, cadastro manual, contato antigo) e a tag só marca quem passou por um formulário marcado dentro do período.

O que você olhaO que ele contaOnde engana
Total de contatos da contatodo contato que existe hojesoma importação e teste, e não tem recorte de data
Soma das tags de origemquem passou por um formulário com tag no períodonão vê contato criado à mão nem por integração
Linha sem-origemquem entrou no período sem nenhuma tag origem-se passar de zero, existe formulário entrando sem tag

Faça a prova: some as tags e a linha sem-origem. Tem que dar exatamente o número de contatos na semana. Se não der, você rodou o script em dois arquivos diferentes.

Essa diferença não é defeito da conta: é o retrato de que boa parte da sua lista pode ter entrado por outro caminho. Com a tag no formulário, você passa a saber qual caminho é esse.

Etapa 5: O que fazer na segunda com esse número

Resposta direta: o número serve para escolher uma ação só, e a escolha depende de qual das quatro situações abaixo apareceu.

O que apareceuO que o número está dizendoAção de segunda
Total igual a zeroa página não recebeu visitaconferir de onde vem o tráfego antes de mexer no texto
Uma origem com mais da metadeo esforço da semana está concentrado alirepetir o que gerou aquele ponto, sem abrir outro
sem-origem maior que zerotem formulário entrando sem tagachar o formulário, marcar a tag e testar de novo
Muitas origens com 1 ou 2 cadapontos demais para pouco volumefechar os que não têm tráfego

Anote o resultado em três linhas num arquivo com a data da segunda no nome: total, maior origem e sem-origem. A revisão da semana que vem é a subtração entre dois arquivos, e não uma nova opinião.

E a ação que a tabela escolhe acontece dentro da Systeme.io: corrigir a tag no formulário, desligar um ponto de entrada, montar a automação de boas-vindas para a origem que mais trouxe gente. É a mesma conta que já capta e guarda o contato, então você não abre outra ferramenta para consertar o que a contagem apontou.

Se a sua conta ainda não existe, criar a conta grátis da Systeme.io pelo botão desta página leva alguns minutos e coloca a Etapa 1 ao seu alcance hoje: um funil, um formulário e a tag de origem salvos antes de você fechar o guia. Cada dia sem tag de origem é um dia de contato que entra e não conta.

O que eu não vou afirmar

Travou em alguma etapa?

Abra uma discussão em github.com/alanvito1/funil-simples dizendo em que passo parou. Dúvida que aparece mais de uma vez tem boa chance de virar guia, e o código deste site está no mesmo lugar, aberto.

Se ainda não tem onde publicar o que montou, a conta gratuita da Systeme.io resolve a página e a lista.

Perguntas frequentes

Dá para contar os contatos por origem sem rodar script?

Dá, filtrando a lista de contatos da Systeme.io por uma tag de origem de cada vez no painel, mas você faz uma passada por tag e não enxerga o total da semana junto. O CSV responde tudo numa passada só e deixa o número registrado para comparar na semana seguinte.

O que acontece se um contato tiver duas tags de origem?

Conta só a primeira que começa com origem-, na ordem em que ela aparece na coluna de tags. Se um contato pode receber duas origens, decida antes qual vale, normalmente a do cadastro, e mantenha a regra igual toda semana para os números serem comparáveis.

O total por tag tem que bater com o número de contatos da conta?

Não tem, e a diferença é esperada: o total da conta inclui importação, cadastro manual e contatos antigos, que nunca passaram por formulário marcado. O que tem que fechar é a soma das tags mais a linha sem-origem contra o total do período.

Esse recorte pode ser feito toda semana?

Pode, e leva poucos minutos depois da primeira vez: o script não muda, só as duas datas do topo e o nome do arquivo. Guardar o resultado de cada semana é o que transforma a contagem em comparação.

Preciso de outra ferramenta além da Systeme.io para fazer essa contagem?

Não: o formulário que aplica a tag, a lista que guarda o contato e a exportação em CSV ficam todos na Systeme.io. O único pedaço fora dela é o script, que roda na sua máquina e não manda dado para lugar nenhum.

Leve isto com você

A sequência de boas-vindas, em três e-mails

É os três e-mails de boas-vindas que eu escrevi para este site, em texto, com o assunto, o atraso de cada um e o objetivo de cada um.

Baixar (TXT, 3.7 kB)

Cole cada um numa campanha da sua ferramenta de e-mail, na ordem. Troque a assinatura e o endereço, e a variável do link de saída pela que a sua ferramenta usa. Sem cadastro, sem e-mail: o arquivo baixa direto.

Receba o resto por e-mail

Eu testo ferramenta de funil e e-mail e mando o que descubro.