Extraia leads imobiliários com Snapshot Site e n8n

O que é e por que usar

Extrair leads de sites imobiliários manualmente é ineficiente: envolve abrir dezenas de páginas, copiar dados e inseri-los em planilhas ou CRMs. Erros de digitação, informações desatualizadas e tempo perdido são comuns. Ferramentas de automação como o Snapshot Site combinadas com o n8n resolvem esse problema – você captura o estado atual de anúncios (preço, contato, características) e os processa em um fluxo de trabalho padronizado.

O Snapshot Site é um serviço que tira “fotografias” de páginas web (HTML, CSS, dados estruturados) sob demanda ou em intervalos programados. Diferente de um scraping simples, ele preserva o layout e facilita a extração de campos específicos via selectors CSS ou XPath. O n8n, por sua vez, orquestra a automação: dispara a captura, transforma os dados e os envia para seu CRM, planilha ou e-mail. O resultado é um pipeline que funciona 24/7, sem supervisão constante, liberando seu tempo para negociação e relacionamento com clientes.

Segundo dados do setor, corretores que automatizam a captura de leads economizam em média 8 horas por semana – tempo que pode ser reinvestido em follow‑ups e visitas. Com a combinação Snapshot Site + n8n, você não apenas coleta dados, mas também pode aplicar regras de negócio, como pontuar leads por orçamento ou localização, antes mesmo de entrar em contato.

A stunning cityscape at sunset featuring towering high-rise buildings in an urban environment.

Pré-requisitos

  • Conta ativa no Snapshot Site (plano que permita acesso à API REST).
  • Instância do n8n rodando (self‑hosted, cloud ou via Docker).
  • Conhecimento básico de JSON e seletores CSS ou XPath para extrair dados das páginas.
  • (Opcional) Chave de API de um CRM, como HubSpot, ou acesso a uma planilha Google Sheets para armazenar os leads.
  • Entendimento sobre limites de requisição e políticas de uso do site-alvo (respeitar robots.txt).

Exemplo Prático: Captura automática de leads do VivaReal para planilha

Cenário concreto

Imagine que você atua como corretor em uma imobiliária e recebe alertas de novos imóveis do VivaReal toda manhã. Em vez de acessar cada anúncio manualmente – cerca de 30 por dia – você quer um sistema que, a cada duas horas, verifique novos anúncios, extraia dados como endereço, preço, número de quartos, nome do proprietário e telefone, e os armazene em uma planilha compartilhada.

O que será automatizado

  1. Agendamento: o n8n dispara o fluxo a cada 2 horas.
  2. Captura por Snapshot Site: para cada URL de busca (ex.: “apartamentos à venda em São Paulo”), o Snapshot Site retorna um JSON com o HTML processado e dados extraídos via seletores customizados.
  3. Filtragem e transformação: o n8n separa os itens que ainda não estão na planilha (comparando por ID único do anúncio).
  4. Saída: novos leads são inseridos em uma planilha Google Sheets, com colunas de data/hora, preço, link e contato.

Resultado esperado

Ao final do primeiro dia, você terá uma planilha contendo todos os anúncios recentes sem nenhum clique manual. O tempo gasto com coleta cai de 1h30 para menos de 5 minutos de revisão. Os leads mais quentes (preço abaixo do mercado, por exemplo) podem ser identificados com um campo “Prioridade” calculado no próprio n8n.

Illuminated skyscrapers at night in Pasig City, Philippines, showcasing modern architecture.

Configuração Passo a Passo

1. Configurar o Snapshot Site para extrair os dados

No painel do Snapshot Site, crie um projeto apontando para a URL de busca do VivaReal (ex.: https://www.vivareal.com.br/venda/sp/sao-paulo/apartamento/…). Adicione seletores CSS para os campos desejados:

  • Preço: .property-card__price
  • Título: .property-card__title
  • Telefone do proprietário: .contact-phone (ajuste conforme o seletor real)
  • ID do anúncio: [data-id]

Ative a opção “Retornar dados estruturados” (JSON). Salve e obtenha o endpoint da API do Snapshot Site. Ele será algo como:

POST https://api.snapshot.site/v1/snapshot
Headers:
  Authorization: Bearer SEU_TOKEN
Body:
  {
    "url": "https://www.vivareal.com.br/...",
    "selectors": {
      "price": ".property-card__price",
      "title": ".property-card__title",
      "phone": "a.contact-phone",
      "id_anuncio": "[data-id]"
    },
    "timeout": 30000
  }

A resposta conterá um array de objetos, um para cada anúncio na página.

2. Criar o workflow no n8n

Adicione os seguintes nós na ordem:

  1. Nó: Schedule – disparo a cada 2 horas (cron: 0 */2 * * *).
  2. Nó: HTTP Request – chamada à API do Snapshot Site. Método POST, URL e headers conforme acima. O body conterá a URL da busca e os seletores.
  3. Nó: Code – transforme o JSON recebido em uma lista plana. Exemplo de código JavaScript no n8n:
// Código para extrair os itens do objeto retornado
const snapshots = $input.all();
const leads = [];
for (const snap of snapshots) {
  // Supondo que a resposta tenha campo "data" com array
  for (const item of snap.json.data) {
    leads.push({
      id: item.id_anuncio,
      titulo: item.title,
      preco: parseFloat(item.price.replace(/[^\d,]/g, '').replace(',', '.')),
      telefone: item.phone,
      url: snap.json.requested_url,
      capturado_em: new Date().toISOString()
    });
  }
}
return leads;
  • Nó: Google Sheets (ou outro destino) – modo Insert, apontando para a planilha onde você quer acumular os leads. Certifique-se de que as colunas da planilha correspondam aos campos do array leads.
  • Nó: IF (opcional) – antes de inserir, verifique se o ID já existe. Use um nó Read from Google Sheets para obter os IDs existentes e comparar com includes.

3. Testar e ativar o workflow

Clique em Execute Workflow no editor do n8n. Verifique o nó HTTP Request se retorna status 200 e os dados aparecem no Code. Depois confira se a planilha foi preenchida com pelo menos um lead. Feito isso, ative o fluxo com o botão Active.

Dicas e Variações

  • Use paginação: se o site listar mais de 20 resultados, configure o Snapshot Site para navegar pelas páginas (recurso “Next page selector”). No n8n, você pode fazer um loop usando o nó SplitInBatches e chamando a API repetidamente com a URL da próxima página.
  • Combine com Webhooks: em vez de agendar, coloque um nó Webhook no início. Assim você pode disparar a captura manualmente ou via um alerta externo (ex.: um e‑mail com link).
  • Enriqueça os leads: depois de extrair o telefone, use um nó HTTP Request para consultar uma API de validação de WhatsApp, por exemplo, e anotar se o número é válido.
  • Múltiplas fontes: crie um workflow central que recebe URLs de diferentes sites (Zap Imóveis, OLX, etc.) via um nó Webhook ou uma planilha de entrada. O nó Set pode ajustar os seletores conforme a origem.
  • Envie notificações: conecte um nó Email ou Telegram para avisar quando um lead com preço muito baixo for capturado – ideal para oportunidades de negociação rápida.

Erros Comuns e Como Evitá-los

  • Timeout na captura – páginas imobiliárias costumam ter muitos scripts e imagens. Aumente o timeout no Snapshot Site para 30 s ou mais. No n8n, configure o nó HTTP Request com timeout: 60000.
  • Seletores quebram com mudanças de layout – monitore o workflow semanalmente. Uma boa prática é usar seletores por atributos data-* ou por ID em vez de classes CSS genéricas. Se o site mudar, ajuste os seletores no projeto do Snapshot Site.
  • Bloqueio de IP ou CAPTCHA – evite requisições em alta frequência. Use um delay entre chamadas (nó Wait de 5 segundos) e, para sites mais restritivos, considere usar proxies ou a função “resolução de CAPTCHA” do Snapshot Site (se disponível).
  • Dados duplicados – sempre deduplicar antes de inserir no destino. No exemplo, usamos o ID do anúncio. Caso o site não forneça ID, use uma chave composta (URL + preço + quartos).
  • Erro de parsing de preço – moedas e separadores variam. Use expressões regulares no nó Code para limpar o campo: item.price.replace(/[R$\s.]/g, '').replace(',', '.').

Próximos Passos

1. Implemente o workflow descrito com seus próprios sites de imóveis e uma planilha de testes. Verifique o funcionamento com 2 ou 3 URLs manuais antes de ativar o agendamento.

2. Expanda a automação: adicione um nó HubSpot (ou outro CRM) para criar contatos automaticamente, já com o campo “Fonte = Snapshot Site”. Configure um pipeline que mova esses contatos para uma etapa “Lead novo”.

3. Crie um dashboard simples no Google Data Studio ou Metabase conectado à sua planilha para visualizar a evolução dos preços e a quantidade de leads por bairro.

4. Compartilhe este fluxo com sua equipe e documente os seletores para cada site – isso facilita manutenções futuras e evita que o conhecimento fique apenas com você.

Gostou do conteúdo? Inscreva-se para receber as novidades:

CATEGORIES:

rotinas

Tags:

Comments are closed