Welche Webhook-Ereignisse gibt es?
Kurzantwort
Abschnitt betitelt „Kurzantwort“Notory löst derzeit ein produktives Ereignis aus: asset.created. Es feuert,
sobald ein Asset angelegt wurde (GUI, API oder Import). Dazu kommt das Test-Ereignis
ping, das du über „Test senden” selbst auslöst. Die Ereignisliste eines Webhooks ist
technisch frei befüllbar. Abonniere aber nur tatsächlich existierende Events, sonst wird
der Webhook schlicht nie aufgerufen.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“Ereignis-Referenz
Abschnitt betitelt „Ereignis-Referenz“| Ereignis | Auslöser | Payload (data) |
|---|---|---|
asset.created | Ein Asset wurde angelegt (Weboberfläche, POST /api/v1/assets, Import) | das angelegte Asset (u. a. id, name, asset_type, status, tenant_id) |
ping | Manuell über „Test senden” bzw. POST /api/v1/webhooks/{id}/test | { "message": "test delivery" } |
Aufbau einer Zustellung
Abschnitt betitelt „Aufbau einer Zustellung“-
Ereignisse abonnieren. Trage im Feld „Ereignisse (kommagetrennt)” des Webhooks die gewünschten Events ein, für den Produktivbetrieb heute:
asset.created. -
Auslösen beobachten. Lege testweise ein Asset an (Wie lege ich ein Asset an?). Kurz darauf erscheint die Zustellung im Zustellprotokoll des Webhooks, inklusive Status-Code deines Servers.
So sieht der HTTP-POST aus, den dein Endpunkt empfängt:
POST /hooks/notory HTTP/1.1Host: tickets.acme.exampleContent-Type: application/jsonX-Webhook-Event: asset.createdX-Webhook-Signature: sha256=76b2d1a9c0e4f5…
{ "event": "asset.created", "data": { "id": "a2f1c9e4-7b3d-4a11-9c2e-8f6b1d0a7e55", "tenant_id": "3d9b0c12-4e5a-4f88-b1c7-2a9e6d4f0011", "asset_type": "hardware", "name": "ThinkPad T14 – Vertrieb", "status": "active", "created_at": "2026-07-08T09:14:22Z" }}Der Umschlag ist immer gleich: {"event": "<name>", "data": { … }}. Den Ereignisnamen
findest du doppelt: im Header X-Webhook-Event und im Feld event des Bodys. Ein
minimaler Empfänger:
@app.post("/hooks/notory")def notory_hook(): verify_signature(request) # siehe Signatur-Seite! payload = request.get_json() if payload["event"] == "asset.created": handle_new_asset(payload["data"]) return "", 204 # 2xx innerhalb von 10 sWas passiert dabei?
Abschnitt betitelt „Was passiert dabei?“- Filterung je Webhook. Beim Auslösen ermittelt Notory alle aktiven Webhooks des Mandanten, deren Ereignisliste das Event enthält. Nur diese werden aufgerufen. Unbekannte/abweichende Einträge in der Liste stören nicht, sie matchen nur nie.
- Best-effort nach der Aktion.
asset.createdwird nach der API-Antwort im Hintergrund verschickt. Das Anlegen des Assets schlägt also nie fehl, weil dein Empfänger down ist. Fehler landen im Zustellprotokoll. - Mandanten-Grenze. Ereignisse tragen die Daten eines Mandanten und erreichen nur Webhooks desselben Mandanten. Die Isolation gilt auch hier.
- Jede Zustellung ist signiert. Auch
ping. Verifiziere grundsätzlich per HMAC-Signatur, bevor du den Inhalt verarbeitest.
Verwandte Themen
Abschnitt betitelt „Verwandte Themen“- Webhook anlegen
- Signatur prüfen
- Asset anlegen: der Auslöser von
asset.created