Pipedream+DiffHook

Trigger de webhook Pipedream — movido pelo DiffHook

Coloque uma entrega webhook do DiffHook numa URL de trigger HTTP do Pipedream e o fluxo só roda quando a página, API JSON ou feed observado mudar de verdade. Sem Scheduled Source, sem diff escrito à mão, sem queimar créditos de workflow.

O Pipedream é um ótimo host para lógica em Node ou Python, mas transformar «quando esta página mudar» em trigger do Pipedream normalmente significa Scheduled Source + requisição HTTP + diff-em-código + $.service.db para o estado. É muito JavaScript para manter só para evitar rodar o fluxo a cada minuto. O DiffHook tira o monitoramento de dentro do Pipedream para que o fluxo só acorde no sinal real.

Fluxo

Conecte o DiffHook ao Pipedream em 5 passos

Sem Scheduled Source, sem chave de estado, sem código de diff. Um POST cria o pipeline.

01

Crie um workflow Pipedream com trigger HTTP

No Pipedream, comece um novo workflow e escolha o trigger HTTP / Webhook. O Pipedream entrega uma URL tipo https://eoXXX.m.pipedream.net — copie-a para o passo 3.

02

Escolha a fonte que o DiffHook deve observar

Decida o que se move: URL com seletor CSS, API JSON com JSONPath ou feed RSS. O DiffHook cuida do fetch, cache e diff — o Pipedream só precisa receber eventos.

03

POST de um monitor com entrega Pipedream

Registre o monitor com uma entrega webhook cuja URL é seu endpoint do Pipedream. O DiffHook começa as checagens no intervalo que você definir e faz POST só nas mudanças reais.

04

Verifique a assinatura HMAC num code step

Adicione um code step em Node.js que recalcule HMAC-SHA256 sobre steps.trigger.event.body com seu signing secret do DiffHook, compare com o header X-DiffHook-Signature e finalize o fluxo se não bater.

05

Rode a lógica real do seu fluxo

Agora você está em território Pipedream normal: consultar um banco, chamar um LLM, postar no Slack, atualizar um CRM. O workflow só roda quando o DiffHook diz que algo mudou — sem throttling, sem execuções ociosas.

Exemplo de API

Monitor alimentado pelo Pipedream num POST

O endpoint do Pipedream vai direto em deliveries[0].url. O DiffHook cuida de retry, replay e entrega cross-região.

POST /v1/monitors
POST https://api.diffhook.com/v1/monitors
Authorization: Bearer $DIFFHOOK_API_KEY
Content-Type: application/json

{
  "type": "html_css",
  "url": "https://target.example.com/changelog",
  "css_selector": ".entry:first-child",
  "interval_seconds": 300,
  "deliveries": [
    {
      "type": "webhook",
      "url": "https://eoabc123.m.pipedream.net"
    }
  ]
}

Fluxo importável

Comece com um workflow Pipedream pronto

Um Gist no GitHub com o step de verificação HMAC, parser de corpo JSON e destino Slack / Discord. Dê fork, cole seu signing secret do DiffHook, faça deploy.

Perguntas frequentes

Webhook Pipedream — perguntas comuns

Por que não usar a Scheduled Source do Pipedream e fazer polling da URL eu mesmo?
Pode — mas você acaba reconstruindo o DiffHook num code step. Estado (para dedup), retry (para 5xx), backoff (para 429) e lógica de diff («o que mudou de fato») viram sua responsabilidade. O DiffHook resolve tudo em um POST. O workflow do Pipedream continua focado na lógica de negócio a jusante.
Como verifico a assinatura HMAC no Pipedream?
Um code step Node.js de seis linhas: calcule crypto.createHmac('sha256', secret).update(steps.trigger.event.body).digest('hex') e compare com steps.trigger.event.headers['x-diffhook-signature']. Em caso de mismatch, chame $.flow.exit(). O template do Pipedream no GitHub traz o código exato.
O que vem no corpo do webhook?
Um objeto JSON plano: monitor_id, event ("change"), url, selector ou json_path, previous_value, current_value, detected_at e delivery_id. Para monitores renderizados você também recebe render_engine e render_status. O esquema completo é versionado e documentado.
O Pipedream aguenta a rajada quando crio um monitor?
O DiffHook throttla a primeira entrega para que um monitor recém-criado não inunde o Pipedream no fetch inicial de baseline. Mudanças depois da baseline vão chegando como acontecem — você sempre pode definir um filtro de entrega no DiffHook para agrupá-las por hora se o workflow tem limites de throughput sustentado.
Funciona com o Pipedream Connect / workflows server-side?
Sim — o webhook do DiffHook é um POST HTTP assinado, então qualquer produto do Pipedream que exponha um endpoint HTTP aceita. Connect, Sources e Workflows se comportam igual; basta colocar a URL do endpoint em deliveries[0].url no monitor.

Fluxos relacionados

Também ótimos com o DiffHook

Pare de escrever código de diff e dedup no Pipedream

Plano gratuito, webhooks assinados com HMAC, checagens a cada 60 segundos, API REST completa. O workflow Pipedream só roda em mudanças reais.