← Zurück zum Hilfezentrum

Jede Plattform per Webhook verbinden

Der Webhook ist das generische Ziel von Siggmund. Sie geben eine URL an, Siggmund sendet jeden freigegebenen Artikel dorthin, und Ihr Empfänger veröffentlicht — auf der Plattform Ihrer Wahl, über ein Automatisierungstool wie n8n, Make oder Zapier oder über Ihr eigenes Backend.

Es sind weder ein Plugin noch ein zu verbindendes Konto noch eine Freigabe durch einen Marktplatz nötig.

Was der Webhook tut und was nicht

Der Webhook veröffentlicht neue Inhalte. Er liefert nur in eine Richtung: Siggmund übermittelt Ihnen den Artikel und fragt Ihre Website nie zurück ab.

Er kann daher keine bereits veröffentlichte Seite ändern und auch kein automatisches Zurücksetzen anbieten. Beide Funktionen brauchen einen Einhängepunkt auf Plattformseite, den heute nur der WordPress-Connector bietet.

Schritt 1 — Ihre URL angeben

Geben Sie unter Verbindungen → Website / WordPress → Webhook (alle Plattformen) die URL ein, die die Artikel empfangen soll. Sie muss öffentlich sein, über HTTPS laufen und direkt antworten — Weiterleitungen werden abgelehnt.

Siggmund zeigt dann ein Signatur-Secret an. Kopieren Sie es: Es wird nie wieder angezeigt. Wenn Sie es verlieren, erzeugt die Schaltfläche Secret erneuern ein neues und macht das alte sofort ungültig.

Schritt 2 — Die Anfrage empfangen

Siggmund sendet eine POST-Anfrage als application/json mit drei Headern:

HeaderInhalt
X-Shoggo-DeliveryKennung der Lieferung. Das ist Ihr Deduplizierungsschlüssel.
X-Shoggo-TimestampUnix-Zeitstempel in Sekunden, zum Zeitpunkt des Versands
X-Shoggo-Signaturesha256= gefolgt von der Signatur in Hexadezimal

Das Timeout beträgt 10 Sekunden. Antworten Sie mit 2xx, sobald Sie die Nachricht angenommen haben; dauert Ihre Verarbeitung lange, bestätigen Sie zuerst den Empfang und arbeiten Sie danach weiter.

Eine 3xx-Antwort gilt als Fehler: Siggmund folgt keinen Weiterleitungen.

Schritt 3 — Die Signatur prüfen

Die Signatur ist ein HMAC-SHA256 der Zeichenfolge <Timestamp>.<roher Body>, berechnet mit Ihrem Secret und in Hexadezimal ausgegeben.

Der rohe Body ist genau die empfangene Bytefolge — nicht das Ergebnis eines JSON.parse mit anschließendem JSON.stringify, das die Schlüssel umordnen und die Signatur ungültig machen würde.

JavaScript
import crypto from "node:crypto";

function verifie(secret, rawBody, headers) {
  const timestamp = headers["x-shoggo-timestamp"];
  const recue = headers["x-shoggo-signature"];

  const attendue =
    "sha256=" +
    crypto.createHmac("sha256", secret).update(`${timestamp}.${rawBody}`).digest("hex");

  // Vergleich in konstanter Zeit: Ein `===` verrät die Signatur Zeichen für
  // Zeichen an einen Angreifer, der die Antwortzeit misst.
  const a = Buffer.from(attendue);
  const b = Buffer.from(recue ?? "");
  if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) return false;

  // Der Timestamp geht in die Signatur ein, um Replays zu verhindern.
  // Weisen Sie Zu-Altes zurück — fünf Minuten sind ein vernünftiger Wert.
  const ageSecondes = Math.abs(Date.now() / 1000 - Number(timestamp));
  return ageSecondes < 300;
}

Der Timestamp ist genau deshalb Teil der signierten Zeichenfolge, damit dieselbe Anfrage nicht endlos wieder eingespielt werden kann. Wer die Signatur prüft, ohne das Alter zu prüfen, lässt diese Tür offen.

Der Body der Anfrage

JSON
{
  "version": 1,
  "event": "craft.article.published",
  "deliveryId": "...",
  "clientId": "...",
  "runRef": "...",
  "attemptId": "...",
  "publishedAt": "2026-08-10T09:15:00.000Z",
  "article": {
    "slug": "...",
    "title": "...",
    "status": "...",
    "qcScore": 0,
    "blocks": [],
    "metaTitle": "...",
    "metaDescription": "...",
    "wordCount": 0,
    "thumbImage": null,
    "heroImage": null
  }
}

Zwei Punkte, die Sie nicht verwechseln sollten:

  • deliveryId ist der Deduplizierungsschlüssel. Erhalten Sie zweimal dieselbe deliveryId, ist es derselbe Artikel: Veröffentlichen Sie ihn nur einmal.
  • attemptId ändert sich bei jedem Versuch. Sie dient nur dazu, im Supportfall den Bezug zu den Protokollen von Siggmund herzustellen. Verwenden Sie sie nie zur Deduplizierung.

Das Feld version wird erhöht, wenn sich die Form des Bodys ändert. Prüfen Sie es, wenn Sie über eine Änderung des Vertrags lieber vorab informiert werden, als sie in der Produktion zu entdecken.

Ihren Empfänger testen

Der Verbindungsbildschirm bietet die Schaltfläche Testereignis senden, die eine Schein-Lieferung sendet, signiert mit Ihrem echten Secret. Das ist der schnellste Weg, Ihre Signaturprüfung vor dem ersten echten Artikel zu validieren.

Die Verbindung trennen

Die Schaltfläche Trennen löscht URL und Secret auf Seiten von Siggmund, sofort. Sie können auch einseitig auf Ihrer Seite trennen, indem Sie nicht mehr auf die URL antworten oder sie ändern: Anders als ein Schreibzugriff gibt ein Signatur-Secret keinerlei Rechte an Ihrer Website.

Zuletzt aktualisiert: · Erstveröffentlichung: