Webhook Integration: Send Change Data to Any External ServiceDeveloper

Webhooks allow PageCrawl to send HTTP POST requests to any external URL whenever a page change is detected or an error occurs. Use webhooks to connect PageCrawl with custom applications, automation platforms, databases, or any service that accepts HTTP requests.

Setting Up a Webhook

  1. Go to Settings > Webhooks (found under "Other" in the sidebar)
  2. Click New webhook
  3. Enter your target URL and configure the options below
  4. Click Save
Webhooks settings page with the Configured Webhooks list and the New webhook button

Configuration Options

Target URL: The HTTP endpoint that will receive the POST request.

Event Triggers: Choose which events fire the webhook:

  • Change detected - Fires when page content changes
  • Error - Fires when a check fails (timeout, blocked, 404, etc.)
  • Or both

Page Filter: Optionally limit which pages trigger the webhook. You can filter by:

  • All pages in workspace (default)
  • By tag
  • By folder
  • By website/domain
  • Specific monitors

If no filter is set, the webhook fires for all pages in the workspace.

Active/Inactive Toggle: Disable a webhook without deleting it.

Payload Fields

By default, webhooks send all available fields. You can customize the payload by selecting only the fields you need:

Category Fields
Basic id, title, status, event_type, changed_at, visual_diff, difference, human_difference, short_summary
Tracked Elements content_type, elements (array of tracked element data)
Differences markdown_difference, html_difference
Images text_difference_image, page_screenshot_image
Page Info page metadata, page_elements array
Content contents, original (for extracted values)
Comparison previous_check data
JSON json, json_patch
AI ai_summary, ai_priority_score

Testing Webhooks

After saving a webhook, click the Test button to send a sample payload to your endpoint. This verifies the connection works before relying on it for real notifications.

Example Payload

{
  "id": 12345,
  "title": "Product Page - Example.com",
  "status": "ok",
  "event_type": "change_detected",
  "content_type": "fullpage",
  "changed_at": "2026-01-15T10:30:00Z",
  "visual_diff": 12.5,
  "difference": 3,
  "human_difference": "3 lines changed",
  "short_summary": "Price updated from $99 to $89",
  "ai_summary": "The product price was reduced by 10%.",
  "ai_priority_score": 85
}

The page_elements Array

When you include the Page Info fields, the payload contains a page_elements array with one entry per tracked element on the monitor. Each entry includes two identifiers:

  • element_id - the stable id of the tracked element. This id stays the same across every check, so use it to match a value to a specific tracked element in your own system.
  • id - the id of this particular reading (the per-check record). This changes on every check, so do not use it as a stable key.
{
  "id": 12345,
  "title": "Product Page - Example.com",
  "page_elements": [
    {
      "id": 998877,
      "element_id": 4012,
      "label": "Price",
      "type": "price",
      "contents": "89.00",
      "original": "Price: $89.00",
      "difference": -10,
      "human_difference": "Price dropped 10%",
      "hash": "ab12cd34",
      "changed": true,
      "short_summary": "Price updated from $99 to $89"
    }
  ]
}

The previous_check.page_elements array (when included) uses the same shape, so you can pair an element's current and prior values by element_id.

Use Cases

  • Custom dashboards - Feed change data into your own monitoring dashboard
  • Database logging - Store all detected changes in your own database
  • Automation workflows - Trigger actions in tools like n8n, Make, or custom scripts
  • Alerting systems - Forward high-priority changes to PagerDuty, Opsgenie, or similar tools

Notes

  • Webhooks send data as HTTP POST with a JSON body
  • If you need Slack, Discord, or Teams notifications, use the dedicated integrations instead, as they format messages correctly for those platforms
  • Webhooks are available on all plans

Ready to Track Changes?

Set up monitoring in under 60 seconds and never miss important updates again.

Track a New Page