DiffHook/Docs
PlatformIntegrations

Integrations

Connect DiffHook to your existing tools and workflows.

n8n

n8n is an open-source workflow automation platform. Use DiffHook as a webhook trigger to start any n8n workflow when a page changes.

Setup

  1. In n8n, create a new workflow and add a Webhook node
  2. Set the method to POST and copy the generated webhook URL
  3. In DiffHook, paste that URL as the webhookUrl when creating a monitor (or update an existing one)
  4. Add downstream nodes to process the diff payload — send a Slack message, create a Notion entry, update a spreadsheet, etc.

Verifying the signature in n8n

Add a Function node before your main logic:

const crypto = require('crypto')
const secret = $env.DIFFHOOK_SIGNING_SECRET
const sig = $input.first().headers['x-diffhook-signature']
const body = JSON.stringify($input.first().body)
const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(body).digest('hex')
if (sig !== expected) throw new Error('Invalid DiffHook signature')
return $input.all()

Zapier

Connect DiffHook to 6,000+ apps via Zapier.

Setup

  1. In Zapier, create a new Zap and choose Webhooks by Zapier as the trigger
  2. Select Catch Hook and copy the webhook URL
  3. Paste it as the webhookUrl in DiffHook
  4. Trigger the monitor once (use Trigger now in the dashboard) so Zapier captures a sample payload
  5. Map the fields — diff.summary, url, triggered_at, etc. — to your action step

Useful Zap ideas

  • DiffHook → Slack — post change summaries to a dedicated channel
  • DiffHook → Google Sheets — log every change to a spreadsheet for tracking
  • DiffHook → Gmail — email a custom report to stakeholders
  • DiffHook → Jira — auto-create a ticket when a competitor's pricing page changes

Make (formerly Integromat)

Setup

  1. In Make, create a new scenario and add a Webhooks → Custom webhook module
  2. Copy the webhook URL and paste it into DiffHook as the webhookUrl
  3. Run Trigger now on the monitor so Make can determine the data structure
  4. Add further modules to route the payload to your desired destination

Slack (native integration)

DiffHook has a native Slack integration that doesn't require a webhook URL. See Notification Channels for setup instructions.


Discord (native integration)

Same as Slack — see Notification Channels for the native Discord integration.


Custom webhook endpoint

If you're building your own integration, DiffHook posts a JSON payload to any public HTTPS URL you configure per-monitor.

See Receiving Webhooks for the full payload schema and Verifying Signatures for authentication.

Example: save changes to a database

app.post('/diffhook', express.raw({ type: 'application/json' }), (req, res) => {
  res.status(200).send('OK')                    // respond immediately

  const sig = req.headers['x-diffhook-signature']
  if (!verifySignature(req.body, sig, process.env.SECRET)) return

  const event = JSON.parse(req.body)
  db.insert('page_changes', {
    monitor_id:   event.monitor_id,
    url:          event.url,
    summary:      event.diff.summary,
    changed_at:   event.triggered_at,
  })
})

Coming soon

The following integrations are on the roadmap:

  • Notion — write change records directly to a Notion database
  • Airtable — append rows to a base on each detected change
  • Linear — auto-create issues for monitored changes
  • PagerDuty / OpsGenie — alert on-call for critical page changes

If you need an integration not listed here, contact support@diffhook.com or vote on the roadmap.