Zum Inhalt springen

Senden an (Webhook / n8n)

„Senden an” schickt ein Dokument an einen konfigurierten Endpunkt (allgemeiner Webhook oder ein n8n-/Zapier-/Make-Trigger). Es ist das dokumentbasierte Gegenstück zu Ordnerfreigaben: wo eine Ordnerfreigabe einen ganzen Ordner ziehen lässt, schiebt „Senden an” ein einzelnes Dokument nach außen, um eine Automation anzustoßen.

  • Ein Endpunkt ist nur URL + HMAC-Signatur-Secret + Label. Er hat keinen Scope — du wählst pro Dokument, was gesendet wird.
  • Manuell: aus dem Menü eines Dokuments → „Senden an…” → Endpunkt wählen.
  • Automatisch bei Veröffentlichung: ein Dokument einmalig aktivieren, dann wird es bei jeder Veröffentlichung gesendet.
  • Endpunkte konfigurieren (Einstellungen → Senden-an-Endpunkte) erfordert die Capability publishing.manage (standardmäßig Admin).
  • Ein Dokument senden (manuell oder Auto aktivieren) erfordert die Capability document.send (standardmäßig Admins + Editors) und Leserecht auf das Dokument.
  1. Einstellungen → Senden-an-Endpunkte → Neuer Endpunkt. Label und Ziel-URL angeben (z. B. die URL deines n8n-Webhook-Nodes).
  2. Optional ein eigenes Signatur-Secret einfügen (≥16 Zeichen); sonst wird eines generiert. Das Secret wird einmalig angezeigt — in deinem Automations-Tool hinterlegen, um Signaturen zu prüfen.

Die URL wird SSRF-validiert (keine internen/Loopback-/Metadata-Hosts; HTTPS in Produktion).

Im Kontext-/Kebab-Menü eines Dokuments „Senden an…” wählen, Endpunkt auswählen, bestätigen. Die Bestätigung kann pro Nutzer unterdrückt werden („Nicht mehr fragen”). Das Senden wird eingereiht — es blockiert die UI nicht; Retries mit Backoff laufen automatisch, und ein dauerhaft fehlschlagender Endpunkt wird automatisch pausiert.

Im selben Dialog „Automatisch bei Veröffentlichung” für einen Endpunkt aktivieren. Ab dann wird das Dokument bei jeder Veröffentlichung gesendet (auch erneut).

Jede Zustellung ist ein POST mit JSON-Body:

{
"event": "document.send", // bzw. "document.published" bei Auto
"delivery_id": "<uuid>", // stabile ID für Empfänger-Dedup
"trigger": "manual", // bzw. "auto_publish"
"timestamp": "<iso8601>",
"document": {
"id", "title", "emoji", "slug",
"collection_id", "collection_name", "collection_slug",
"published_at", "updated_at",
"markdown": "<serialisierter Rumpf>"
}
}

Header:

HeaderBedeutung
X-Orimora-Signaturet=<unix>,v=<hex> — HMAC-SHA256 von <t>.<rawBody> mit dem Endpunkt-Secret
X-Orimora-Eventder Event-Name
X-Orimora-Delivery-Idwie delivery_id (Dedup)
X-Orimora-Timestampder signierte Unix-Zeitstempel

Prüfen: HMAC_SHA256(secret, "<t>.<rawBody>") neu berechnen und (timing-safe) mit dem v=-Teil vergleichen. Ablehnen, wenn der Zeitstempel zu alt ist (Replay-Schutz).