n8n
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
- Dodaj węzeł Webhook do workflow
- Ustaw HTTP Method na POST
- Ustaw ścieżkę (np.
telldone) - (Opcjonalnie) Włącz Header Auth: Name =
Authorization, Value = twój sekretny token - Skopiuj Production URL (nie URL testowy)
W TellDone
- Wejdź w Ustawienia > Integracje > Automatyzacje webhookami
- Naciśnij Nowa automatyzacja i wklej production URL n8n
- Jeśli włączyłeś Header Auth w n8n, wpisz ten sam token jako nagłówek auth w TellDone
- Wybierz, jakie typy danych wysyłać
- 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ść
eventz 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żenie | Opis |
|---|---|
{{ $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.
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ż
- Automatyzacje webhookami - format ładunku, limity dostaw i bezpieczeństwo
- Zapier - alternatywa w chmurze
- Make - alternatywa w chmurze