Zum Hauptinhalt springen
DiffHook/Dokumente
AnleitungenEmpfangen von Webhooks

Empfangen von Webhooks

Wenn DiffHook eine Änderung erkennt, sendet es einen HTTP-POST an die aufgelöste Bereitstellungs-URL: pro Monitor notification_config.webhook_url, falls festgelegt, andernfalls an Ihren Workspace-Standard-Webhook von Integrationen. Der JSON-Körper unten ist die Nutzlast, die DiffHook sendet (nicht die Monitorkonfiguration).

Webhook-Nutzlast

{
  "event": "page.changed",
  "monitor_id": "mon_abc123",
  "url": "https://competitor.com/pricing",
  "triggered_at": "2026-03-16T14:22:00Z",
  "content": "Pro plan: $59/month — …"
}

Feldreferenz

event – Immer page.changed für Inhaltsänderungsereignisse.

monitor_id – Die ID des Monitors, der das Ereignis ausgelöst hat.

url – Die überwachte URL für dieses Ereignis.

triggered_at – ISO 8601-Zeitstempel, wann die Änderung erkannt wurde.

content – Der neue Seiteninhalt nach der Änderung (normalisierter/extrahierter Text zur Überwachung – der Snapshot, den DiffHook mit der vorherigen Version verglichen hat).

Liefergarantien

  • Bei jeder erkannten Änderung führt DiffHook einen sofortigen HTTP-POST durch. Wenn dies fehlschlägt (nicht 2xx, Netzwerkfehler oder Zeitüberschreitung), werden bis zu 10 weitere Versuche geplant – insgesamt 11 Zustellungsversuche, wenn Ihr Endpunkt nie erfolgreich ist.
  • Die Verzögerung zwischen Versuchen ist in Minuten exponentiell: Nach jedem Fehlschlag ist der nächste Versuch nach 1, 2, 4, 8, 16, 32, 64, 128, 256 und dann 512 Minuten zulässig (jede Verzögerung ist doppelt so groß wie die vorherige). Wiederholungsversuche werden nach einem Zeitplan ungefähr einmal pro Minute abgearbeitet, sodass das Timing nicht auf eine Sekunde genau ist.
  • Eine Zustellung gilt als erfolgreich, wenn Ihr Endpunkt innerhalb von 10 Sekunden 2xx zurückgibt.
  • Nachdem alle Versuche aufgebraucht sind, stoppt die Zustellung; Die Zeile in App → Protokolle zeigt je nach Kanalstatus failed oder exhausted an.

Auf Webhooks reagieren

Ihr Endpunkt sollte so schnell wie möglich 200 OK zurückgeben. Verarbeiten Sie die Nutzlast asynchron:

app.post('/webhook', (req, res) => {
  res.status(200).send('OK')       // Respond first
  processChangeAsync(req.body)     // Then process
})

Wiederholungsverhalten

VersuchWann er ausgeführt wird
1.Sofort, wenn die Änderung erkannt wird
2.1 Minute nach dem 1. Fehlschlag
3.2 Minuten nach dem 2. Fehlschlag
4.4 Minuten nach dem 3. Fehlschlag
5.8 Minuten nach dem 4. Fehlschlag
6.16 Minuten nach dem 5. Fehlschlag
7.32 Minuten nach dem 6. Fehlschlag
8.64 Minuten (~1 Stunde) nach dem 7. Fehlschlag
9.128 Minuten (~2 Stunden) nach dem 8. Fehlschlag
10.256 Minuten (~4 Stunden) nach dem 9. Fehlschlag
11.512 Minuten (~8,5 Stunden) nach dem 10. Fehlschlag

Nach 11 erfolglosen Versuchen (1 erster Versuch + 10 Wiederholungsversuche) erfolgt für dieses Ereignis keine weitere automatische Zustellung. Reparieren Sie Ihren Endpunkt und verwenden Sie Jetzt auslösen auf dem Monitor, wenn Sie einen weiteren Trigger benötigen.