Zum Hauptinhalt springen

n8n

Basic-Plan und höher

Webhooks erfordern einen kostenpflichtigen Plan. Limits und Details unter Webhook-Automationen.

n8n ist eine Automations-Plattform, die du selbst hosten oder in der Cloud nutzen kannst. Verbinde TellDone mit n8n über einen Webhook-Node. Deine n8n-Instanz braucht eine HTTPS-URL, die aus dem Internet erreichbar ist.

Einrichtung

In n8n

  1. Füg deinem Workflow einen Webhook-Node hinzu
  2. Setz die HTTP-Methode auf POST
  3. Setz einen Pfad (z. B. telldone)
  4. (Optional) Aktiviere Header Auth: Name = Authorization, Value = dein Geheim-Token
  5. Kopier die Production URL (nicht die Test-URL)

In TellDone

  1. Geh zu Einstellungen > Integrationen > Webhook-Automationen
  2. Tippe auf Neue Automation und füg die n8n-Production-URL ein
  3. Wenn du in n8n Header Auth aktiviert hast, gib denselben Token als Auth-Header in TellDone ein
  4. Wähle, welche Datentypen gesendet werden sollen
  5. Tippe auf Speichern, dann auf Test, um eine Beispiel-Payload zu senden

Schau ins n8n-Ausführungs-Log - du solltest eine Payload mit "test": true sehen.

Routing nach Ereignistyp

Füg nach dem Webhook-Node einen Switch-Node hinzu, um Daten nach Ereignistyp zu routen:

  • Routing-Feld: der event-Wert aus den eingehenden Daten
  • Regel 1: gleich note.created - zu deinen Notizen-Aktionen
  • Regel 2: gleich task.created - zu deinen Aufgaben-Aktionen
  • Regel 3: gleich calendar_event.created - zu deinen Kalender-Aktionen
  • Regel 4: gleich report.created - zu deinen Berichts-Aktionen

Verbinde jeden Switch-Ausgang mit dem passenden Action-Node (Todoist, Google Calendar, Slack etc.).

Nützliche Ausdrücke

Beim Konfigurieren von Action-Nodes nutz diese n8n-Ausdrücke, um auf TellDone-Daten zuzugreifen:

AusdruckBeschreibung
{{ $json.data.title }}Titel der Notiz, Aufgabe oder des Termins
{{ $json.data.tags.join(', ') }}Tags als kommagetrennter String
{{ $json.data.priority }}Prioritätsstufe
{{ $json.data.due_date }}Fälligkeitsdatum (Aufgaben)
{{ $json.data.summary }}KI-generierte Zusammenfassung (Notizen)
{{ $json.event }}Ereignistyp

Die vollständige Liste der Felder pro Datentyp findest du unter Webhook-Automationen - Was gesendet wird.

Test-Ereignisse filtern

Füg gleich nach dem Webhook-Node einen IF-Node hinzu:

  • Bedingung: {{ $json.test }} ist nicht true
  • True-Pfad: Rest deines Workflows
  • False-Pfad: No Operation (Test-Ereignisse verwerfen)

Beispiel-Workflows

  • Webhook - Switch - Todoist: Aufgaben mit Priorität und Fälligkeitsdatum erstellen
  • Webhook - Switch - Google Calendar: Termine mit Uhrzeit, Ort und Teilnehmern erstellen
  • Webhook - Switch - Slack: Tagesberichte in einen Kanal posten
  • Webhook - Switch - Google Sheets: alle Notizen als Tabellenzeilen loggen
  • Webhook - Switch - Notion: Notizen mit Tags und Zusammenfassung speichern

Webhook-Signaturen verifizieren (optional)

Einschränkung des rohen Body in n8n

Der n8n Code-Node stellt nur das geparste JSON-Objekt bereit, nicht den rohen Request-Body. Signatur-Verifikation erfordert die exakten rohen Bytes, die TellDone signiert hat. In der Praxis verlassen sich die meisten n8n-Nutzer auf den Standard-Authorization: <signing_secret>-Header zur Authentifizierung statt auf HMAC-Verifikation.

Im produktiven Einsatz kannst du prüfen, dass Webhook-Daten wirklich von TellDone kommen, indem du die HMAC-SHA256-Signatur überprüfst. Füg gleich nach dem Webhook-Node einen Code-Node hinzu:

const crypto = require('crypto');

const secret = 'whsec_your_signing_secret_here';
const signature = $input.first().headers['x-lp-signature'];
const timestamp = $input.first().headers['x-lp-timestamp'];
const body = JSON.stringify($input.first().json);

const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(timestamp + '.' + body)
.digest('hex');

if (signature !== expected) {
throw new Error('Invalid webhook signature');
}

// Reject timestamps older than 5 minutes
const age = Math.floor(Date.now() / 1000) - parseInt(timestamp);
if (age > 300) {
throw new Error('Webhook timestamp too old');
}

return $input.all();

Ersetz whsec_your_signing_secret_here durch das Signing-Secret, das du beim Anlegen der Automation in TellDone kopiert hast.

Trennen

Um keine Daten mehr an n8n zu senden:

  • Deaktiviere den Workflow in n8n, oder
  • Deaktiviere oder lösche die Automation in TellDone-Einstellungen > Integrationen > Webhook-Automationen

Siehe auch