Docs

Veröffentlichungs-Integrationen

Next.js und eigene Websites (Webhook)

Zuletzt aktualisiert:

Empfangen Sie veröffentlichte Artikel als JSON an Ihrem eigenen Endpunkt – Aufbau der Payload, Signaturprüfung und ein Next.js-Beispiel.

Ist Ihre Website eine Next.js-App, ein Headless-Frontend oder irgendetwas anderes ohne Content-API, kann Clodix jeden veröffentlichten Artikel als JSON per POST an eine URL senden, die Sie kontrollieren. Das ist die richtige Integration für selbst gebaute Websites – und sie eignet sich auch gut als Auslöser für Zapier oder Make.

Verbinden

  1. Öffnen Sie Settings → Publishing integrations und klicken Sie auf Next.js / Webhook.
  2. Füllen Sie aus:
    • Webhook URL – eine https://-Adresse auf Ihrem Server, die eine POST-Anfrage annimmt.
    • Signing secret (optional) – wenn Sie eines setzen, signiert Clodix jede Anfrage, sodass Sie prüfen können, dass sie wirklich von uns kommt.
  3. Klicken Sie auf Connect. Clodix sendet sofort einen Test-Ping – Ihr Endpunkt muss mit einem 2xx-Status antworten, damit die Verbindung gelingt.

Die Payload

Jede Anfrage wird als JSON mit dem Header content-type: application/json per POST gesendet. Der Umschlag enthält immer ein Feld event; der Aufbau des Body hängt vom Ereignis ab.

article.published – wird gesendet, wenn ein Artikel live geht:

{
  "event": "article.published",
  "article": {
    "title": "Best pour over coffee makers in 2026",
    "slug": "best-pour-over",
    "bodyHtml": "<p>...</p>",
    "metaDescription": "A guide to the best pour over coffee makers.",
    "imageUrl": "https://cdn.clodix.ai/covers/best-pour-over.jpg",
    "publishedAt": "2026-08-01T10:00:00.000Z"
  }
}

metaDescription, imageUrl und publishedAt sind nur enthalten, wenn der Artikel sie hat.

article.unpublished – wird gesendet, wenn Sie die Veröffentlichung eines Artikels zurücknehmen:

{ "event": "article.unpublished", "article": { "slug": "best-pour-over" } }

clodix.ping – der Verbindungstest, der einmal gesendet wird, wenn Sie auf Connect klicken:

{ "event": "clodix.ping" }
HeaderWert
content-typeapplication/json
x-clodix-eventDerselbe Wert wie das Feld event im Body.
x-clodix-signatureWird nur gesendet, wenn Sie ein Signing secret gesetzt haben – siehe unten.

Die Signatur prüfen

Wenn Sie ein Signing secret setzen, signiert Clodix den exakten rohen Request-Body mit HMAC-SHA256, mit Ihrem Secret als Schlüssel, und sendet das Ergebnis als x-clodix-signature: sha256=<hex digest>.

// app/api/clodix/route.ts
import { createHmac, timingSafeEqual } from "crypto";
import { NextRequest, NextResponse } from "next/server";

const SECRET = process.env.CLODIX_WEBHOOK_SECRET!;

export async function POST(req: NextRequest) {
  const rawBody = await req.text(); // read as text BEFORE parsing JSON
  const signature = req.headers.get("x-clodix-signature") ?? "";

  const expected =
    "sha256=" + createHmac("sha256", SECRET).update(rawBody).digest("hex");

  const ok =
    signature.length === expected.length &&
    timingSafeEqual(Buffer.from(signature), Buffer.from(expected));

  if (!ok) {
    return NextResponse.json({ error: "invalid signature" }, { status: 401 });
  }

  const payload = JSON.parse(rawBody);
  // payload.event is "article.published" | "article.unpublished" | "clodix.ping"
  // ... upsert payload.article into your database/CMS by slug ...

  return NextResponse.json({ ok: true });
}

Mit 2xx antworten

Ihr Endpunkt muss mit einem Erfolgsstatus (200–299) antworten, damit Clodix die Veröffentlichung als erfolgreich zählt – auch beim Verbindungstest. Eine Antwort ohne 2xx (oder gar keine Antwort) gilt als fehlgeschlagene Veröffentlichung: Der Artikel bleibt in Clodix ein Entwurf, und der Verbindungsbildschirm (oder der Publish-Button des Artikels) zeigt den Status an, den Ihr Endpunkt tatsächlich zurückgegeben hat.

Der Endpunkt muss eine öffentliche Adresse auf den üblichen Web-Ports haben (https://… oder http://… ohne :port). Eine Adresse in einem lokalen oder privaten Netzwerk oder eine, die dorthin weiterleitet, wird mit „This address isn't reachable from Clodix“ abgelehnt, bevor etwas dorthin gesendet wird.

Eine Live-URL zurückgeben (optional)

Antwortet Ihr Endpunkt mit { "url": "https://yoursite.com/blog/best-pour-over" }, speichert Clodix diese als veröffentlichte URL des Artikels und nutzt sie, um Suchmaschinen mitzuteilen, dass die Seite neu ist. Das ist optional – Ihr Endpunkt kann auch einfach { "ok": true } ohne URL zurückgeben.

FAQ

Brauche ich ein Signing secret?

Es ist optional, wird aber für alles Öffentliche empfohlen – nur so kann Ihr Endpunkt bestätigen, dass eine Anfrage wirklich von Clodix kommt und nicht von jemandem, der Ihre URL erraten hat.

Was passiert, wenn mein Server ausgefallen ist, während Clodix veröffentlichen will?

Die Veröffentlichung schlägt fehl, und der Artikel bleibt ein Entwurf. Was Clodix danach tut und wie Sie sicher erneut versuchen, steht unter Probleme beim Veröffentlichen.

Kann ich das mit Zapier oder Make statt mit meinem eigenen Server nutzen?

Ja – fügen Sie die Webhook-URL, die Zapier oder Make für einen „Catch Hook“- bzw. „Custom Webhook“-Auslöser vergibt, in das Feld Webhook URL ein und bauen Sie Ihre Automatisierung von dort aus auf.

Verwandte Themen

Sie kommen nicht weiter? Schreiben Sie an support@clodix.ai – ein Mensch antwortet.

Next.js und eigene Websites (Webhook) — Clodix Docs