Árvore de decisão

Verifique os backlinks do seu site no n8n ou em Python puro?

Um canvas com 25 nós para um job de três etapas é um arrependimento comum. Um script que ninguém mais consegue editar é o outro. Use a árvore.

Uma árvore de decisão de madeira com dois caminhos distintos em uma floresta

Árvore de decisão, de cima para baixo

  • Alguém não técnico editará o fluxo ou lerá suas execuções? Escolha n8n ou Make.
  • O job cabe em menos de 60 linhas e já vive em um repositório? Escolha Python.
  • Você precisa de uma postagem no Slack e uma linha em planilha, mas sem comparação (diff)? Escolha n8n com um único nó HTTP Request.
  • Você compara dezenas de domínios, mantém histórico ou testa unitariamente o parser? Escolha Python com SQLite.
  • A equipe já está pagando por execuções no n8n cloud? Conte-as: um loop de 40 domínios pode consumir um plano.
  • Nenhum dos anteriores se encaixa? Comece com curl em um script shell e veja o que dói.

Quando um fluxo visual ganha seu lugar

Um canvas vale o seu clutter em alguns jobs. Se uma pessoa não técnica precisa ver cada etapa e sua última execução, um fluxo visual vence um repositório que ela nunca abrirá. Mantenha-o curto.

A maioria dos jobs de backlink é buscar, verificar e gravar. Quatro nós fazem isso bem. Se o seu job é verificar os backlinks do seu site mensalmente para um cliente, essa forma se encaixa em um canvas. O problema começa quando alguém adiciona paginação, retries e diff, porque cada um traz sua própria ramificação.

Escolha o canvas para o leitor, não para o escritor.

Quem lê o fluxo

Pessoas de marketing e vendas leem um fluxo pelos seus outputs, e querem a última execução em plena vista. Um canvas dá isso a elas sem um ticket. Elas leem o output, não o código. Um script dá a elas um arquivo de log que elas não abrirão.

Dê ao fluxo um nome claro e uma descrição de uma linha, para que o próximo leitor saiba o que ele promete antes de abri-lo. Um nó com um rótulo vago custa mais tempo do que qualquer funcionalidade faltando.

Ramificações que você vê de relance

Um nó IF em ok é fácil de seguir. Três deles em uma página ainda são legíveis, se cada ramo tiver um nome simples. Passando disso, as linhas se cruzam, e um revisor precisa de dez minutos para ter certeza de qual ramo é acionado em um resultado vazio.

Onde um canvas se torna uma passivo

Loops sobre muitos domínios, estado compartilhado entre execuções e testes unitários são os pontos de pressão usuais. Um canvas lida com cada um com uma solução alternativa, e cada solução alternativa é um lugar onde o fluxo pode se desviar do que você pretendia.

Se você se vê exportando JSON para consertar um fluxo, o job superou o canvas. Mova a lógica para código e mantenha o canvas para a notificação.

Uma chave de latão com uma fita vermelha inserida em uma fechadura de porta de madeira

A configuração do n8n em quatro linhas

Um nó HTTP Request, método GET, URL https://linkzoid.pro/api.php. Adicione parâmetros de query action, q, key. Qualquer um que queira verificar os backlinks do seu site dessa forma pode copiar em cinco minutos.

Armazene a key em credentials, não no nó. Adicione um nó IF em ok, e envie o ramo false para um workflow de erro que te notifique.

Divida o array rows com um nó Item Lists ou Split Out, então grave no Google Sheets ou Postgres. Observe as contagens de execução, porque cada item pode ser cobrado como um passo em alguns planos.

Esse é o job inteiro. Ele quebra quando a paginação chega: loops no n8n funcionam, mas ficam confusos além de cerca de dez nós.

Construa o fluxo n8n em cinco nós

Cada nó faz um job, e cada um pode ser testado sozinho antes que o próximo seja adicionado.

01

Crie o nó HTTP Request

Método GET e a URL https://linkzoid.pro/api.php. Adicione action, q e per como parâmetros de query, e deixe a key para o próximo passo.

02

Anexe a key como credential

Armazene-a nas credentials do n8n e referencie-a na query. Uma key digitada diretamente no campo URL pode acabar nos logs e exports.

03

Bloqueie na flag ok

Adicione um nó IF que lê ok. Envie o ramo false para um workflow de erro que publique o corpo da resposta em algum lugar onde você possa vê-lo.

04

Divida as rows

Use Split Out no array rows para que cada domínio se torne seu próprio item. Grave esses itens em uma planilha ou tabela, não a resposta inteira em uma única célula.

05

Teste primeiro na ação gratuita

Aponte o nó para overview, que não precisa de key, e confirme a forma da resposta antes de mudar para uma ação paga.

Tabela de solução de problemas

SintomaCausa no n8nCausa no Python
Apenas 10 rows chegamParâmetro per não definido no nóIgual, verifique a query string
Execução bem-sucedida, planilha vaziaRows não divididas em itemsGravou o dict em vez de rows
402 após uma semanaWorkflow faz loop em um triggerCron dispara duas vezes
Key vaza para logsColada no campo URLImprimiu a URL completa
Lacunas mês a mêsRetenção de execução apagou execuções antigasNunca armazenou histórico

Custo por execução

Do nosso lado, o custo é o mesmo em ambos os casos: 2 créditos para uma página de refdomains. O builder é onde os custos diferem.

Um n8n self-hosted é gratuito para executar. Planos cloud contam execuções. Um script puro no cron não custa nada.

Independentemente da escolha, mantenha uma cópia datada de cada execução fora da ferramenta. Snapshots semanais em Actions são um lugar organizado para isso, e a comparação de suites explica por que seu próprio histórico vale a pena ter.

Conte execuções por domínio

Um loop sobre quarenta domínios são quarenta execuções em um plano que conta execuções. Verifique como seu plano conta um loop antes de colocá-lo em um schedule, porque a conta segue a contagem, não os créditos.

Escreva a contagem esperada ao lado do schedule. Uma surpresa na conta é mais fácil de explicar quando a estimativa já estava no arquivo.

Self-hosting tem sua própria conta

Um n8n self-hosted custa o servidor, os upgrades e os backups. O banco de dados é seu para manter vivo. Um script puro em uma máquina pequena tem menos partes móveis, que é uma razão para escolhê-lo para um job mensal fixo.

Duas balanças equilibrando uma planta em vaso contra uma pilha de pedras soltas

O que geralmente quebra primeiro

No n8n é paginação e contagens de items. No Python é a coisa que ninguém testou: um rows vazio, um timeout, um campo com nome diferente do que você assumiu.

Nenhuma ferramenta está errada. Escolha por quem mantém a coisa em seis meses. Se for você, sozinho, código é mais fácil de grep. Se for uma equipe de marketing que já vive no canvas, um fluxo pequeno que eles podem ver vence um repositório que eles temem.

Configurações mistas também funcionam. Deixe o Python gravar o CSV em um schedule e deixe o n8n ler o arquivo e postar no Slack. Cada ferramenta faz a parte que lida melhor, e nenhum fluxo cresce além de dez etapas.

Mantendo a versão Python legível

O caso usual para código é que outra pessoa precise mudá-lo em seis meses. Torne isso fácil. Um script curto com nomes claros e uma resposta salva vence um one-liner esperto que ninguém ousa tocar.

Teste o parser em uma resposta salva

Salve uma resposta real em um arquivo e aponte um unit test para ela. O parser então executa sem gastar um crédito, e um campo renomeado falha no teste em vez de na segunda-feira de manhã.

Mantenha a resposta salva pequena, já que uma dúzia de rows é suficiente. Anote a data em que você a tirou, para saber quando os nomes dos campos mudaram pela última vez.

Mantenha as configurações em um só lugar

Domínios, ações e o tamanho da página pertencem a um pequeno bloco de config, não espalhados pelo script. Um colega pode então mudar a lista de alvos sem tocar na lógica que parseia as rows.

Mantenha secrets fora desse bloco também. Carregue-os do environment, da mesma forma que a key é carregada.

Execute um trial de duas semanas antes de se comprometer

Não resolva isso no papel. Construa a versão mais mínima do job em cada ferramenta, execute-a todos os dias por duas semanas e veja qual você abre sem ser solicitado.

Observe o que quebra. Conte as vezes que você teve que editar algo à mão, e as vezes que o output estava errado sem um erro. A ferramenta que pede menos correções manuais é a que deve ser mantida.

Logue cada correção manual

Mantenha uma nota simples de cada vez que você tocou no fluxo ou no script à mão. Uma lista curta após duas semanas diz mais do que qualquer tabela de features jamais dirá.

Anote quem pediu mudanças

Se as solicitações vieram de pessoas que não conseguem ler código, o canvas pode vencer. Se vieram de você, o repo é mais fácil de conviver.

Qualquer resposta está bem desde que você possa apontar para ela. Escreva o motivo ao lado do fluxo ou do repo, e revisite-o quando o job crescer.

Respostas curtas para builders

Make ou Zapier funcionam com esta API?
Sim. Qualquer coisa que possa enviar um HTTPS GET com parâmetros de query funciona, incluindo Make, Zapier, Pipedream e Apps Script. Use o módulo HTTP genérico, coloque a key em uma conexão armazenada e leia o array JSON rows no próximo passo.
Um agente de IA pode chamá-lo em vez disso?
Tecnicamente sim, já que é uma API HTTP simples. Para um job mensal fixo, um script é mais barato e previsível, e um agente adiciona uma conta de modelo e uma chance de parâmetro errado. Use um agente apenas para perguntas ad hoc.
Qual é a maneira mais barata de começar?
Um script shell com curl e a ação gratuita overview, executado do cron. Sem key, sem custo, e você aprende a forma da resposta. Mova para Python quando o primeiro parsing de JSON estranho aparecer.