Przejdź do głównej zawartości

n8n

Plan Basic i wyższe

Webhooki wymagają płatnego planu. Zobacz Automatyzacje webhookami, gdzie znajdziesz limity i szczegóły.

n8n to platforma automatyzacji, którą możesz hostować samodzielnie albo używać w chmurze. Połącz TellDone z n8n za pomocą węzła Webhook. Twoja instancja n8n musi mieć adres HTTPS dostępny z internetu.

Konfiguracja

W n8n

  1. Dodaj węzeł Webhook do workflow
  2. Ustaw HTTP Method na POST
  3. Ustaw ścieżkę (np. telldone)
  4. (Opcjonalnie) Włącz Header Auth: Name = Authorization, Value = twój sekretny token
  5. Skopiuj Production URL (nie URL testowy)

W TellDone

  1. Wejdź w Ustawienia > Integracje > Automatyzacje webhookami
  2. Naciśnij Nowa automatyzacja i wklej production URL n8n
  3. Jeśli włączyłeś Header Auth w n8n, wpisz ten sam token jako nagłówek auth w TellDone
  4. Wybierz, jakie typy danych wysyłać
  5. Naciśnij Zapisz, potem Test, by wysłać przykładowy payload

Sprawdź log wykonania n8n - powinieneś zobaczyć ładunek z "test": true.

Routing według typu zdarzenia

Dodaj węzeł Switch za węzłem Webhook, by kierować dane według typu zdarzenia:

  • Routing field: wartość event z przychodzących danych
  • Reguła 1: równa się note.created - kieruj do akcji dla notatek
  • Reguła 2: równa się task.created - kieruj do akcji dla zadań
  • Reguła 3: równa się calendar_event.created - kieruj do akcji kalendarzowych
  • Reguła 4: równa się report.created - kieruj do akcji dla raportów

Połącz każde wyjście Switch z odpowiednim węzłem akcji (Todoist, Google Calendar, Slack itd.).

Przydatne wyrażenia

Konfigurując węzły akcji, używaj tych wyrażeń n8n, by odwoływać się do danych TellDone:

WyrażenieOpis
{{ $json.data.title }}Tytuł notatki, zadania lub wydarzenia
{{ $json.data.tags.join(', ') }}Tagi jako ciąg rozdzielony przecinkami
{{ $json.data.priority }}Poziom priorytetu
{{ $json.data.due_date }}Termin (zadania)
{{ $json.data.summary }}Podsumowanie wygenerowane przez AI (notatki)
{{ $json.event }}Typ zdarzenia

Pełna lista pól dla każdego typu danych w Automatyzacje webhookami - Co jest wysyłane.

Filtrowanie zdarzeń testowych

Dodaj węzeł IF zaraz za węzłem Webhook:

  • Warunek: {{ $json.test }} nie jest true
  • Ścieżka True: reszta workflow
  • Ścieżka False: No Operation (odrzuć zdarzenia testowe)

Przykładowe workflow

  • Webhook - Switch - Todoist: tworzenie zadań z priorytetem i terminem
  • Webhook - Switch - Google Calendar: tworzenie wydarzeń z czasem, lokalizacją i uczestnikami
  • Webhook - Switch - Slack: publikowanie raportów dziennych na kanale
  • Webhook - Switch - Google Sheets: logowanie wszystkich notatek jako wierszy arkusza
  • Webhook - Switch - Notion: zapisywanie notatek z tagami i podsumowaniem

Weryfikacja podpisów webhooków (opcjonalnie)

Do produkcji możesz weryfikować, że dane webhooka faktycznie pochodzą z TellDone, sprawdzając podpis HMAC-SHA256. Dodaj węzeł Code zaraz za węzłem Webhook:

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();

Zastąp whsec_your_signing_secret_here sekretem podpisu, który skopiowałeś przy tworzeniu automatyzacji w TellDone.

uwaga

Węzeł Code w n8n nie ma dostępu do surowego ciała żądania HTTP. Powyższy przykład odczytuje $input.first().json, który jest ciałem już sparsowanym przez n8n. Podpis HMAC jest obliczany na podstawie niezmienionego surowego ciała, więc to podejście zadziała tylko wtedy, gdy n8n zachowuje kolejność kluczy JSON (co nie jest gwarantowane). W praktyce rozważ weryfikację podpisów poza n8n lub ustaw sekretny token nagłówka auth (krok 4) zamiast podpisu HMAC.

Rozłączenie

Aby przestać wysyłać dane do n8n:

  • Dezaktywuj workflow w n8n, albo
  • Wyłącz lub usuń automatyzację w Ustawienia TellDone > Integracje > Automatyzacje webhookami

Zobacz też