Pipedream+DiffHook

Trigger webhook Pipedream — potenziato da DiffHook

Appoggia una consegna webhook DiffHook a un URL di trigger HTTP Pipedream e il flusso gira solo quando la pagina, l'API JSON o il feed osservato cambia davvero. Niente Scheduled Source, niente diff scritto a mano, nessun credito di workflow sprecato.

Pipedream è un ottimo host per logica Node o Python, ma trasformare «quando questa pagina cambia» in un trigger Pipedream di solito significa Scheduled Source + richiesta HTTP + diff-in-codice + $.service.db per lo stato. È tanto JavaScript da mantenere solo per evitare di far partire il flusso ogni minuto. DiffHook sposta il monitoraggio fuori da Pipedream, così il flusso si sveglia solo sul segnale vero.

Flusso

Collega DiffHook a Pipedream in 5 passi

Niente Scheduled Source, niente state key, niente codice di diff. Un POST crea la pipeline.

01

Crea un workflow Pipedream con un trigger HTTP

In Pipedream avvia un nuovo workflow e scegli il trigger HTTP / Webhook. Pipedream ti dà un URL tipo https://eoXXX.m.pipedream.net — copialo per il passo 3.

02

Scegli la sorgente che DiffHook deve osservare

Decidi cosa si muove: un URL con selettore CSS, una API JSON con un JSONPath o un feed RSS. DiffHook gestisce fetch, cache e diff — Pipedream deve solo ricevere eventi.

03

POST di un monitor con consegna Pipedream

Registra il monitor con una consegna di tipo webhook il cui URL è il tuo endpoint Pipedream. DiffHook avvia i controlli nell'intervallo scelto e fa POST solo su cambiamenti reali.

04

Verifica la firma HMAC in un code step

Aggiungi un code step Node.js che ricalcola HMAC-SHA256 su steps.trigger.event.body con il tuo signing secret DiffHook, confronta con l'header X-DiffHook-Signature e termina il workflow in caso di discordanza.

05

Esegui la tua logica vera e propria

Sei in territorio Pipedream classico: interrogare un database, chiamare un LLM, pubblicare su Slack, aggiornare un CRM. Il workflow gira solo quando DiffHook dice che qualcosa si è mosso — niente throttling, niente esecuzioni a vuoto.

Esempio API

Monitor gestito da Pipedream in un POST

L'endpoint Pipedream va dritto in deliveries[0].url. DiffHook gestisce retry, replay e consegna cross-regione.

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"
    }
  ]
}

Flusso importabile

Parti da un workflow Pipedream pronto

Un Gist GitHub con lo step di verifica HMAC, un parser del body JSON e una destinazione Slack / Discord. Forkalo, incolla il tuo signing secret DiffHook, deploya.

FAQ

Webhook Pipedream — domande frequenti

Perché non usare la Scheduled Source di Pipedream e sondare io stesso l'URL?
Puoi — ma finisci per ricostruire DiffHook in un code step. Lo stato (per deduplicare), i retry (per i 5xx), il backoff (per i 429) e la logica di diff (per «cosa è davvero cambiato») diventano responsabilità tua. DiffHook fa tutto in un POST. Il workflow Pipedream resta concentrato sulla logica di business a valle.
Come verifico la firma HMAC in Pipedream?
Un code step Node.js di sei righe: calcola crypto.createHmac('sha256', secret).update(steps.trigger.event.body).digest('hex') e confronta con steps.trigger.event.headers['x-diffhook-signature']. In caso di mismatch chiudi con $.flow.exit(). Il template Pipedream su GitHub ha il codice esatto.
Cosa c'è nel body del webhook?
Un oggetto JSON piatto: monitor_id, event ("change"), url, selector o json_path, previous_value, current_value, detected_at e delivery_id. Per i monitor renderizzati ottieni anche render_engine e render_status. Lo schema completo è versionato e documentato.
Pipedream regge la raffica quando creo un monitor?
DiffHook throttla la prima consegna perché un monitor appena creato non inondi Pipedream sul fetch iniziale di baseline. I cambiamenti successivi alla baseline partono come capita — puoi sempre mettere un filtro di consegna in DiffHook per raggrupparli a ora se il workflow ha limiti di throughput sostenuti.
Funziona con Pipedream Connect / workflow server-side?
Sì — il webhook DiffHook è un POST HTTP firmato, quindi qualsiasi prodotto Pipedream che esponga un endpoint HTTP lo accetta. Connect, Sources e Workflows si comportano in modo identico; basta mettere l'URL dell'endpoint in deliveries[0].url sul monitor.

Flussi correlati

Perfetti anche con DiffHook

Smetti di scrivere codice di diff e dedup in Pipedream

Piano gratuito, webhook firmati HMAC, check ogni 60 secondi, API REST completa. Il workflow Pipedream gira solo sui cambiamenti reali.