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
- 1Marque a origem no formulário, antes de contar
- 2Exporte a lista com data e tags
- 3Recorte a semana e conte por tag
- 4Por que a soma por tag não bate com o total de contatos da conta?
- 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
- Uma tag de origem em cada formulário, no padrão
origem-nome, aplicada no ato do cadastro. - Um CSV exportado da conta com e-mail, tags e data de criação de cada contato.
- Um resultado de três linhas (total da semana, maior origem e quantos entraram sem origem) que você lê em um minuto na segunda-feira.
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.
KeyError: 'Tags': o nome da coluna no seu arquivo é outro. Troque o texto entre aspas, na linha que lê as tags, pelo nome que está no cabeçalho do seu CSV.ValueError: time data '03/11/2026 14:22' does not match format '%Y-%m-%d %H:%M:%S': a data vem em outro formato. Ajuste a constanteFORMATOe o corte de 19 caracteres na mesma linha.
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.
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ê olha | O que ele conta | Onde engana |
|---|---|---|
| Total de contatos da conta | todo contato que existe hoje | soma importação e teste, e não tem recorte de data |
| Soma das tags de origem | quem passou por um formulário com tag no período | não vê contato criado à mão nem por integração |
Linha sem-origem | quem 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 apareceu | O que o número está dizendo | Ação de segunda |
|---|---|---|
| Total igual a zero | a página não recebeu visita | conferir de onde vem o tráfego antes de mexer no texto |
| Uma origem com mais da metade | o esforço da semana está concentrado ali | repetir o que gerou aquele ponto, sem abrir outro |
sem-origem maior que zero | tem formulário entrando sem tag | achar o formulário, marcar a tag e testar de novo |
| Muitas origens com 1 ou 2 cada | pontos demais para pouco volume | fechar 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
- Não afirmo quantos contatos você vai receber por semana nem qual origem converte melhor. O guia mede o que entrou; ele não prevê resultado.
- Não afirmo que a tag de origem substitui parâmetro de campanha. Ela diz por qual formulário a pessoa entrou, não qual anúncio ela viu antes.
- Não afirmo que a exportação traz sempre os mesmos nomes de coluna. Confira o cabeçalho do seu arquivo antes de rodar o script.
- Não afirmo que a soma das tags fecha com o total da conta. Importação e cadastro manual nunca passam por formulário.
- Não cubro a contagem pela API neste guia. Ela existe, está na documentação oficial da API e devolve o mesmo recorte por outro caminho.
- Não afirmo preço nem limite de plano da Systeme.io. O que este guia mostra é a tarefa: exportar, recortar a semana e ler o número.
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.
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.