O que você vai montar
O ClickHunt entrega cada artigo publicado no nó Webhook do n8n. O n8n recebe, e nos nós seguintes você escolhe para onde ele vai: Google Sheets, Notion, WordPress, HubSpot, Slack, e-mail, um banco de dados ou qualquer API, pelo nó HTTP Request.
ClickHunt → Webhook (nó Webhook do n8n) → Destino que você escolher
Você não precisa programar. O caminho é montado arrastando nós, e o artigo de teste do ClickHunt serve para você ver os campos antes de publicar de verdade. O n8n tem uma vantagem sobre o Zapier: ele pode devolver o link do artigo para o ClickHunt, e aí o botão "Ver no Blog" funciona (veja "Devolva o link do artigo").
Antes de começar
- ClickHunt no plano Pro. O webhook é um destino de publicação do plano Pro. Se você ainda não conhece o webhook, o artigo Webhook: mande os artigos para o seu próprio sistema explica tudo o que ele envia.
- Uma conta no n8n. O n8n Cloud tem 14 dias de teste grátis e depois é pago. A versão auto-hospedada (Community Edition) é gratuita. O nó Webhook existe nas duas.
- Se for auto-hospedado, o n8n precisa estar numa URL
https://pública. O ClickHunt recusalocalhost, IP privado ehttp://. Um n8n rodando só na sua máquina não recebe nada. - Uma conta no destino (a planilha, o CMS, o canal do Slack, o que for).
Passo 1: crie o workflow com o nó Webhook
- No n8n, crie um workflow novo e clique em Add first step. Busque e escolha Webhook.
- Configure o nó: HTTP Method =
POST. Path: pode deixar o valor gerado. Authentication =Nonepor enquanto (veja "Assinatura" mais abaixo para proteger). Respond =Immediately. - No topo do nó há duas URLs: Test URL e Production URL. Copie a Production URL. Ela tem o formato
https://<seu-espaco>.app.n8n.cloud/webhook/<path>no n8n Cloud, ou o seu domínio se for auto-hospedado. A Test URL só fica ativa por 120 segundos enquanto o botão "Listen for test event" está ligado, tempo curto demais para o fluxo que vem a seguir. - Salve o workflow e clique em Publish (em versões anteriores do n8n é o interruptor Active no canto superior direito). Sem isso a Production URL responde 404 e o ClickHunt não consegue conectar.
Por enquanto o workflow é só o nó Webhook. Está certo assim: você vai montar o resto com o artigo de teste em mãos.
Passo 2: conecte o ClickHunt à URL do n8n
- No ClickHunt, abra Integrações no projeto e escolha Webhook. Se o projeto ainda está sendo criado, escolha "Meu próprio sistema (webhook)" no wizard.
- Em URL, cole a Production URL do n8n exatamente como ela veio.
- Deixe Cabeçalhos em branco (se você ligar a autenticação por cabeçalho no n8n, é aqui que o valor entra; veja "Assinatura").
- Em Eventos, marque só o que você quer que chegue no n8n. Se a sua automação só trata artigo novo, deixe apenas publicado marcado. Desmarcar aqui é mais simples do que filtrar no n8n depois.
- Em Formatos, marque HTML para destinos que aceitam texto formatado (WordPress, HubSpot, e-mail) e Markdown para destinos que preferem texto puro (Notion, GitHub, Slack). Deixe Blocos desmarcado, a menos que você vá programar em cima do JSON.
- Clique em Conectar. O ClickHunt envia um
pingpara o n8n, o n8n responde na hora e a conexão fica pronta. - O ClickHunt mostra a chave de assinatura (
whsec_…) uma única vez. Guarde: ela serve para verificar a assinatura no n8n, se você quiser. - Ainda no painel do webhook, clique em Enviar artigo de teste. Isso manda um artigo completo de exemplo para o n8n, e é com ele que você vai montar o mapeamento dos campos.
Passo 3: traga o artigo de teste para o editor
- No n8n, abra a aba Executions do workflow. Vão aparecer duas execuções: a do
pinge a do artigo de teste (a mais recente). - Abra a execução do artigo de teste e clique em Copy to editor. O n8n copia os dados recebidos para o editor e fixa (pin) no nó Webhook.
- Volte à aba Editor. Ao abrir o nó Webhook, o painel de saída mostra o artigo inteiro, pronto para ser usado nos nós seguintes.
No n8n, o que chega fica dentro de body, e os cabeçalhos ficam em headers. Os campos mais úteis, como expressão:
| Campo no payload | Expressão no n8n | O que traz |
|---|---|---|
event |
{{ $json.body.event }} |
article.published, article.updated, article.archived, article.deleted ou article.test |
article.title |
{{ $json.body.article.title }} |
Título do artigo |
article.slug |
{{ $json.body.article.slug }} |
Slug (o final da URL) |
article.excerpt |
{{ $json.body.article.excerpt }} |
Resumo curto |
article.body.html |
{{ $json.body.article.body.html }} |
Corpo em HTML (se marcado) |
article.body.markdown |
{{ $json.body.article.body.markdown }} |
Corpo em Markdown (se marcado) |
article.seo.metaTitle |
{{ $json.body.article.seo.metaTitle }} |
Título para SEO |
article.seo.metaDescription |
{{ $json.body.article.seo.metaDescription }} |
Descrição para SEO |
article.cover.url |
{{ $json.body.article.cover.url }} |
Imagem de capa |
article.author.name |
{{ $json.body.article.author.name }} |
Nome do autor |
article.publishedAt |
{{ $json.body.article.publishedAt }} |
Data de publicação (ISO) |
article.taxonomy.categories |
{{ $json.body.article.taxonomy.categories.join(", ") }} |
Categorias (lista) |
article.taxonomy.tags |
{{ $json.body.article.taxonomy.tags.join(", ") }} |
Tags (lista) |
project.name |
{{ $json.body.project.name }} |
Nome do projeto no ClickHunt |
cabeçalho X-ClickHunt-Event |
{{ $json.headers["x-clickhunt-event"] }} |
O mesmo evento, pelo cabeçalho |
Listas continuam listas no n8n (o JSON chega inteiro). Para colar numa célula ou num campo de texto, use .join(", ") como na tabela. O payload completo, com todos os campos, está no artigo do webhook.
Passo 4: escolha o destino
- Clique no + à direita do nó Webhook e busque o app de destino. Para uma API que não tem nó próprio, use HTTP Request.
- Escolha a operação. Exemplos: Append Row no Google Sheets, Create a Database Page no Notion, Create a Post no WordPress, Send a Message no Slack, Send a Message no Gmail.
- Em Credential to connect with, conecte a sua conta do destino (ou escolha uma que já esteja conectada).
- Preencha os campos do destino. Você pode arrastar um campo do painel de entrada (à esquerda) para dentro do campo, ou digitar a expressão da tabela acima. Dá para misturar texto fixo com expressão no mesmo campo.
- Clique em Execute step. O n8n executa a ação de verdade, com o artigo de teste fixado: a linha aparece na planilha, o post aparece no WordPress como rascunho, a mensagem chega no Slack. Confira lá.
- Se ficou como você queria, salve e clique em Publish de novo para a versão nova entrar no ar.
A partir daí, cada artigo publicado no ClickHunt percorre o caminho inteiro sozinho, em segundos. Os dados fixados no nó Webhook valem só dentro do editor: em produção o n8n usa o que chega de verdade.
Exemplos de mapeamento
| Destino | Operação no n8n | Mapeamento sugerido |
|---|---|---|
| Google Sheets | Append Row | uma coluna por campo: title, slug, excerpt, publishedAt, cover.url |
| Notion | Create a Database Page | Title = article.title; um bloco de texto = article.body.markdown; uma propriedade de data = article.publishedAt |
| WordPress | Create a Post | Title = article.title; Content = article.body.html; Status = draft ou publish |
| Slack | Send a Message | texto "Artigo novo: " + article.title + article.excerpt |
| Gmail | Send a Message | Subject = article.title; Message (HTML) = article.body.html |
| Qualquer API | HTTP Request | Method POST; Body JSON montado com os campos que a sua API espera |
Para o WordPress, o ClickHunt já tem uma integração nativa, que traz o link do artigo de volta e cuida de imagens e categorias. Use o n8n para o WordPress só se você precisar de algum passo intermediário que a integração nativa não faz.
Devolva o link do artigo
Com Respond = Immediately, o n8n responde ao ClickHunt só com "Workflow was started", sem o endereço do artigo, e o botão "Ver no Blog" fica desativado. Para ele funcionar:
- No nó Webhook, mude Respond para Using 'Respond to Webhook' Node.
- No fim do workflow, adicione o nó Respond to Webhook. Respond With =
JSON. Em Response Body, monte o JSON com o identificador e o endereço que o destino devolveu. Exemplo com o nó do WordPress antes dele:
{ "id": "{{ $json.id }}", "url": "{{ $json.link }}" }
- Publique de novo.
O ClickHunt guarda esse id como identificador do artigo no seu sistema e essa url como link público. O workflow inteiro precisa responder em até 15 segundos; se algum nó for lento, deixe o Respond to Webhook logo depois do nó que cria o artigo e o resto depois dele.
Vários eventos, vários caminhos
O caminho mais simples é marcar no ClickHunt só o evento que interessa (passo 2, item 4). Se você precisa tratar mais de um evento de forma diferente:
- Nó If: condição
{{ $json.body.event }}is equal toarticle.published. A saída "true" segue para a ação; a "false" fica sem nada. - Nó Switch: uma saída por evento (publicado cria, atualizado edita, excluído remove). Lembre que o
article.deletedchega enxuto, só comid,slugepreviousSlugs, sem o resto do artigo.
Se você quer mandar o mesmo artigo para dois destinos, não precisa de dois webhooks: ligue dois nós em paralelo ao Webhook. O ClickHunt tem um webhook por projeto, e o n8n faz a distribuição.
Assinatura
Diferente do Zapier, o n8n mantém os cabeçalhos da requisição, então você tem duas formas de garantir que só o ClickHunt fala com o seu workflow:
Simples: cabeçalho fixo. No nó Webhook, Authentication = Header Auth; crie uma credencial com um nome (por exemplo X-Api-Key) e um valor longo que você inventa. No ClickHunt, em Cabeçalhos, digite a mesma linha: X-Api-Key: <o valor>. Como a URL e os cabeçalhos só são definidos ao conectar, se o webhook já estiver conectado, desconecte e conecte de novo com o cabeçalho. Nomes começando com X-ClickHunt- não podem ser usados aqui.
Completa: verificar a assinatura HMAC. Toda entrega traz X-ClickHunt-Signature no formato t=<timestamp>,v1=<hmac sha256 hex>, calculado sobre "${t}.${corpo bruto}" com a sua chave de assinatura. Para conferir no n8n: no nó Webhook, em Options, ligue Raw Body; depois adicione um nó Code com a função verificar do artigo do webhook (Node.js), lendo a chave de uma variável de ambiente ou credencial. É um caminho para quem programa.
Limites e detalhes
- "Ver no Blog" no ClickHunt. Desativado com Respond
Immediately; ativo quando o Respond to Webhook devolveurl. - Workflow despublicado. Se você despublicar o workflow, a Production URL passa a responder 404. O ClickHunt registra falha, tenta de novo (5 minutos, 15 minutos, 1 hora, 6 horas) e para na 5ª. Depois de publicar de novo, use Reenviar na aba Histórico do webhook no ClickHunt.
- Retentativas. Toda retentativa vai com o mesmo
deliveryId. Se o seu destino não tolera duplicata, use{{ $json.body.deliveryId }}como chave de deduplicação. - Tamanho. O n8n aceita até 16 MB por requisição por padrão. Um artigo do ClickHunt, mesmo com os três formatos marcados, fica muito abaixo disso.
- Edições em rajada. Várias edições do mesmo artigo em menos de 15 segundos geram um único
article.updated. - Redirecionamento. A URL configurada precisa responder direto. Se o seu n8n auto-hospedado redireciona
httpparahttpsou um domínio para outro, use sempre a URL final.
Perguntas frequentes
Funciona com o Zapier ou o Make? Sim. Para o Zapier há um artigo próprio, Zapier: leve os artigos do ClickHunt para qualquer sistema. No Make os passos são os mesmos deste artigo, com o módulo "Webhooks".
Posso testar sem publicar um artigo de verdade? Sim. O botão Enviar artigo de teste do painel do webhook entrega um artigo completo de exemplo com event igual a article.test. O n8n trata ele como qualquer outro, então dá para testar o caminho inteiro. Se a sua ação cria algo no destino (uma linha, um post), lembre de apagar o item de teste depois.
Os artigos que eu já tinha publicado antes de conectar vão para o n8n? Não. O webhook só entrega o que acontece a partir da conexão.
Posso usar a Test URL do n8n no ClickHunt? Não vale a pena. Ela só fica ativa por 120 segundos, e a URL do webhook no ClickHunt não pode ser trocada sem desconectar. Use a Production URL desde o começo e traga o artigo de teste pela aba Executions, como no passo 3.