Zum Inhalt

Aufgaben

Webhooks einrichten

Ein Webhook ist eine Meldung, die knowmind an eine Adresse Ihrer Wahl schickt, sobald in Ihrem Arbeitsbereich eine Erinnerung angelegt oder geändert wird. Ein eigenes Programm oder ein Automatisierungsdienst wie n8n nimmt sie entgegen. Diese Anleitung führt durch das Anlegen, die Prüfung der Signatur und das Verhalten bei Fehlern.

Zielgruppe
Entwicklerinnen und Entwickler. Webhooks stehen in jedem Tarif zur Verfügung. Kenntnisse in HTTP, JSON und HMAC-Signaturen helfen.

Voraussetzungen

  • knowmind-Konto, in jedem Tarif
  • Eine per HTTPS erreichbare Adresse unter Ihrer Kontrolle, zum Beispiel eine eigene Anwendung oder ein Webhook-Knoten in n8n
  • Ein sicherer Ablageort für das Geheimnis, mit dem Sie die Signatur prüfen

Schritte

  1. 1

    Webhook im Cockpit anlegen

    Öffnen Sie im Cockpit Webhooks und legen Sie einen Webhook an: Adresse eintragen (HTTPS ist Pflicht), Ereignisse auswählen, speichern.

    Ergebnis: knowmind zeigt das Geheimnis für die Signatur einmal an. Kopieren Sie es sofort und legen Sie es sicher ab; später lässt es sich nicht mehr abrufen.

  2. 2

    Testmeldung auslösen

    Klicken Sie in der Liste der Webhooks auf den Test-Knopf neben dem neuen Eintrag. knowmind sendet eine Meldung vom Typ webhook.test.

    Ergebnis: Im Protokoll Ihrer Adresse erscheint die Testanfrage.

  3. 3

    Signatur prüfen

    Jeder Webhook enthält im Header X-knowmind-Signature den Wert sha256=<hex>. Das ist der HMAC-SHA256 über den unveränderten Inhalt der Anfrage, gerechnet mit Ihrem Geheimnis. Prüfen Sie die Signatur, bevor Sie den Inhalt verarbeiten: Ohne Prüfung kann jeder gefälschte Meldungen an Ihre Adresse schicken.

    ts
    // Node.js / Next.js Beispiel
    import { createHmac, timingSafeEqual } from "node:crypto";
    
    export function verifyKnowmindSignature(
      body: string,
      header: string,
      secret: string,
    ): boolean {
      const mac = createHmac("sha256", secret).update(body).digest("hex");
      const expected = "sha256=" + mac;
      if (header.length !== expected.length) return false;
      return timingSafeEqual(Buffer.from(header), Buffer.from(expected));
    }
    python
    import hmac, hashlib
    
    def verify_knowmind_signature(body: bytes, header: str, secret: str) -> bool:
        mac = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
        expected = "sha256=" + mac
        return hmac.compare_digest(header, expected)
  4. 4

    Wiederholungen einplanen

    knowmind erwartet innerhalb von 15 Sekunden eine Antwort mit einem Status 2xx. Bleibt sie aus oder kommt ein Fehler zurück, wiederholt knowmind die Zustellung in wachsenden Abständen: sofort, nach 1 Minute, 5 Minuten, 30 Minuten, 2 Stunden und 12 Stunden. Nach sechs erfolglosen Versuchen gilt die Meldung als nicht zustellbar. Nach 20 Fehlern in Folge schaltet knowmind den Webhook ab; im Cockpit schalten Sie ihn wieder ein.

    Antworten Sie deshalb sofort mit 2xx und verarbeiten Sie die Meldung danach. Der Header X-knowmind-Delivery ist je Meldung eindeutig: Merken Sie sich seinen Wert, dann verarbeiten Sie eine wiederholte Meldung nicht doppelt.

Ereignisse

EreignisWann
memory.createdEine Erinnerung wurde angelegt, über ein KI-Werkzeug, die Kommandozeile oder das Cockpit
memory.updatedEine Erinnerung wurde durch einen neuen Stand abgelöst
webhook.testTestmeldung aus dem Cockpit

Aufbau einer Meldung

Jede Meldung ist ein POST mit JSON-Inhalt und festen Headern. Sie enthält Kennungen, Zeitpunkt und Ereignistyp. Den vollen Text einer Erinnerung holen Sie bei Bedarf über die Schnittstelle nach.

http
POST /ihr-empfaenger HTTP/1.1
Content-Type: application/json
X-knowmind-Event: memory.created
X-knowmind-Delivery: 8b1f4f2e-3c4d-4e5a-9c2b-7f8e9d0a1b2c
X-knowmind-Signature: sha256=2a8f3b…

{
  "event": "memory.created",
  "tenantId": "00000000-0000-0000-0000-0000000050c1",
  "occurredAt": "2026-05-22T15:42:11.123Z",
  "data": {
    "documentId": "ab72ddfc-5f50-46d9-90d1-5849c96e01c0",
    "title": "Quartalsmeeting Müller",
    "chunksWritten": 4
  }
}

Prüfung des Ergebnisses

  • Im Cockpit zeigt der Webhook einen aktuellen Zeitpunkt für die letzte erfolgreiche Zustellung.
  • Ihre Adresse hat die Testanfrage protokolliert.
  • Die Prüfung der Signatur in Ihrem Programm ergibt „gültig“.

Fehlerbehebung

FehlermeldungUrsacheAuflösung
Signatur stimmt nicht übereinIhr Programm hat den Inhalt der Meldung vor der Prüfung verändert, etwa durch Einlesen als JSON und erneutes Ausgeben.Die Signatur über den unveränderten Inhalt der Anfrage rechnen. In Express: bodyParser.raw({ type: 'application/json' }). In Next.js: req.text() vor dem Einlesen als JSON.
Meldungen kommen verspätet oder mehrfach anIhre Adresse antwortet nicht innerhalb von 15 Sekunden mit 2xx; knowmind wiederholt die Zustellung.Sofort mit 2xx antworten und danach verarbeiten. Den Wert des Headers X-knowmind-Delivery merken, um Wiederholungen zu erkennen.
Der Webhook ist abgeschaltet20 Fehler in Folge.Ursache an der eigenen Adresse beheben und den Webhook im Cockpit wieder einschalten.

Weiterführend