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
- In n8n, create a new workflow and add a Webhook node
- Set the method to
POSTand copy the generated webhook URL - In DiffHook, paste that URL as the
webhookUrlwhen creating a monitor (or update an existing one) - 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
- In Zapier, create a new Zap and choose Webhooks by Zapier as the trigger
- Select Catch Hook and copy the webhook URL
- Paste it as the
webhookUrlin DiffHook - Trigger the monitor once (use Trigger now in the dashboard) so Zapier captures a sample payload
- 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
- In Make, create a new scenario and add a Webhooks → Custom webhook module
- Copy the webhook URL and paste it into DiffHook as the
webhookUrl - Run Trigger now on the monitor so Make can determine the data structure
- 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.