v2.4 CURRENT PROTOCOLWebhook

Notification Triggers

Detector turns the result of a check into one of three events and delivers it to the channels you pick on the monitor: e-mail, mobile push, in-app notification and your team's webhook endpoint. Nothing is sent unless the change crosses the threshold; a "no change" result only shows up in the monitor's history.

Events

EventWhen it is sentDefault channels
page.changedWhen the change score crosses the monitor's sensitivity thresholdE-mail, in-app, webhook
price.changedWhen a value marked as a price changes (with the previous and new value)E-mail, mobile, webhook
monitor.failedAfter three consecutive failed checks, as the monitor is pausedE-mail, webhook

A price change is also a page change. In that case Detector does not send both events: price.changed goes out and page.changed is suppressed, so you do not get two notifications for the same change.

1

Mark the Price Field

For price.changed, add a price_selector to the monitor. Detector parses that element's text into a number (1.249,90 TL β†’ 1249.90, currency TRY) and only triggers when the numeric value changes; formatting changes are ignored.

2

Choose the Channels

In the dashboard, open the monitor β†’ Notifications tab and switch channels on or off per event. Channels add to your team-level notification preferences; if a team member has turned e-mail off, the monitor setting does not override that.

3

Verify the Webhook

Webhook calls are signed with the X-Incapon-Signature header. Verify the signature before processing, as shown in Webhook Signature Verification, and drop duplicate deliveries using X-Incapon-Event-Id.

Sample Webhook Payload

{
  "event_type": "price.changed",
  "event_id": "evt_live_5c1e9a",
  "created_at": "2026-10-29T08:14:03Z",
  "payload": {
    "monitor_id": "mon_8f2c",
    "url": "https://supplier.example.com/prices",
    "previous": { "amount": 1249.90, "currency": "TRY" },
    "current": { "amount": 1399.00, "currency": "TRY" },
    "snapshot_url": "https://app.incapon.com/detector/mon_8f2c/snapshots/snp_77"
  }
}
The 10-second rule

If your endpoint does not return a 2xx within 10 seconds, delivery is retried with exponential backoff (1 min, 5 min, 30 min ... 24 h; 8 attempts in total). Push heavy work onto a queue and return 200 right away.

Next Steps & Guides

Was this guide helpful?

Your feedback helps us improve our documentation.