Skip to main content
Este guia monta um workflow de reativação no n8n usando só o nó HTTP Request: busca contatos sem a tag “reativado”, dispara um flow do FlowBuilder pra cada um e aplica a tag ao final.

Credencial

Crie uma credencial do tipo Header Auth (Settings → Credentials → New) com:
  • Name: Authorization
  • Value: Bearer wtx_live_SEU_TOKEN
Reaproveite essa credencial em todos os nós HTTP Request do workflow — evita colar o token em cada nó e facilita rotacionar depois (veja Autenticação).
1

Buscar contatos sem a tag

Nó HTTP Request — GET, com a credencial Header Auth criada acima:
Sem tagId, isso traz todos os contatos da sua conta. O objetivo é quem não tem a tag “reativado” (13) — filtre no workflow com um nó Filter: {{$json.tags.some(t => t.id === 13)}} deve ser false.A resposta vem com o array em contacts (não na raiz) — adicione um nó Split Out logo depois, no campo contacts, pra transformar isso numa lista de itens que o resto do workflow processa um por um.
pageSize=100 traz só a primeira página. Se a conta tem mais de 100 contatos que batem o filtro, monte um loop de paginação (nó Loop Over Items ou uma segunda chamada incrementando pageNumber) até hasMore: false — veja Paginação e filtros.
2

Disparar o flow pra cada contato

Nó Split In Batches (tamanho 1, pra não estourar o rate limit) seguido de HTTP Request — POST:
Body (JSON):
Veja os detalhes de variables, a guarda de atendimento humano (409) e a janela de 24h em Disparar flows.
3

Aplicar a tag de reativado

Depois do disparo aceito (202), outro nó HTTP Request — PUT:
Body:
Esse endpoint substitui todas as tags do contato. Se o contato tinha outras tags, busque-as antes (GET /v1/contacts/{contactId}) e inclua os IDs delas no array — senão elas são removidas.

Tratando 429 com o nó Wait

Com Split In Batches de tamanho 1 e um workflow que roda centenas de contatos, é fácil passar de 120 requisições/minuto. Trate o 429 assim:
1

Capture o erro e peça os headers no HTTP Request

Nas opções do nó HTTP Request, marque “Continue On Fail” (deixa o 429 passar como saída normal, em vez de abortar o workflow) e “Include Response Headers and Status” — sem essa segunda opção, statusCode e os headers da resposta não aparecem no item de saída.
2

Verifique o status code

Nó IF: {{$json.statusCode}} == 429.
3

Espere o tempo do Retry-After

No ramo verdadeiro, nó Wait configurado para ler o header Retry-After da resposta ({{$json.headers['retry-after']}} segundos) e depois voltar pro mesmo nó HTTP Request — reconecte a saída do Wait de volta na entrada do HTTP Request pra formar o retry.
Se o workflow processa muitos contatos, prefira reduzir a velocidade de disparo (um pequeno delay fixo entre execuções do Split In Batches) a depender só do retry — isso evita empurrar toda a fila pra rajadas de 429 repetidas. Veja o backoff de referência em Erros e limites.

Erros comuns

Veja o catálogo completo de erros.