Sari la conținutul principal

n8n

Planul Basic și superior

Webhook-urile necesită un plan plătit. Vezi Automatizări prin webhook pentru limite și detalii.

n8n este o platformă de automatizare pe care o poți găzdui singur (self-host) sau folosi în cloud. Conectează TellDone la n8n folosind un nod Webhook. Instanța ta n8n trebuie să aibă o adresă URL HTTPS accesibilă de pe internet.

Configurare

În n8n

  1. Adaugă un nod Webhook în fluxul tău de lucru
  2. Setează metoda HTTP la POST
  3. Setează o cale (de exemplu, telldone)
  4. (Opțional) Activează Header Auth: Name = Authorization, Value = tokenul tău secret
  5. Copiază Production URL (nu adresa URL de test)

În TellDone

  1. Mergi la Setări > Integrări > Automatizări prin webhook
  2. Atinge Automatizare nouă și lipește adresa URL de producție n8n
  3. Dacă ai activat Header Auth în n8n, introdu același token ca antet de autentificare în TellDone
  4. Alege ce tipuri de date să trimiți
  5. Atinge Salvează, apoi Testează pentru a trimite un payload de probă

Verifică jurnalul de execuție n8n - ar trebui să vezi un payload cu "test": true.

Direcționare după tipul de eveniment

Adaugă un nod Switch după nodul Webhook pentru a direcționa datele după tipul de eveniment:

  • Câmp de direcționare: valoarea event din datele primite
  • Rule 1: egal cu note.created - direcționează către acțiunile tale pentru note
  • Rule 2: egal cu task.created - direcționează către acțiunile tale pentru sarcini
  • Rule 3: egal cu calendar_event.created - direcționează către acțiunile tale pentru calendar
  • Rule 4: egal cu report.created - direcționează către acțiunile tale pentru rapoarte

Conectează fiecare ieșire Switch la nodul de acțiune potrivit (Todoist, Google Calendar, Slack etc.).

Expresii utile

Când configurezi noduri de acțiune, folosește aceste expresii n8n pentru a accesa datele TellDone:

ExpresieDescriere
{{ $json.data.title }}Titlul notei, sarcinii sau evenimentului
{{ $json.data.tags.join(', ') }}Etichetele ca șir separat prin virgulă
{{ $json.data.priority }}Nivelul de prioritate
{{ $json.data.due_date }}Data scadentă (sarcini)
{{ $json.data.summary }}Rezumatul generat de AI (note)
{{ $json.event }}Tipul de eveniment

Pentru lista completă a câmpurilor din fiecare tip de date, vezi Automatizări prin webhook - Ce se trimite.

Filtrarea evenimentelor de test

Adaugă un nod IF imediat după nodul Webhook:

  • Condiție: {{ $json.test }} nu este true
  • Calea true: restul fluxului tău de lucru
  • Calea false: No Operation (elimină evenimentele de test)

Exemple de fluxuri de lucru

  • Webhook - Switch - Todoist: creează sarcini cu prioritate și dată scadentă
  • Webhook - Switch - Google Calendar: creează evenimente cu oră, locație și participanți
  • Webhook - Switch - Slack: postează rapoarte zilnice într-un canal
  • Webhook - Switch - Google Sheets: înregistrează toate notele ca rânduri de foaie de calcul
  • Webhook - Switch - Notion: salvează note cu etichete și rezumat

Verificarea semnăturilor webhook (opțional)

Limitarea corpului brut în n8n

Nodul Code din n8n expune doar obiectul JSON parsat, nu corpul brut al cererii. Verificarea semnăturii necesită exact octeții bruți pe care i-a semnat TellDone. În practică, majoritatea utilizatorilor n8n se bazează pe antetul implicit Authorization: <signing_secret> pentru autentificare, în loc de verificarea HMAC.

Pentru utilizare în producție, poți verifica dacă datele webhook au venit cu adevărat de la TellDone verificând semnătura HMAC-SHA256. Adaugă un nod Code imediat după nodul 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();

Înlocuiește whsec_your_signing_secret_here cu secretul de semnare pe care l-ai copiat când ai creat automatizarea în TellDone.

Deconectare

Pentru a opri trimiterea de date către n8n:

  • Dezactivează fluxul de lucru în n8n, sau
  • Dezactivează sau șterge automatizarea în Setări TellDone > Integrări > Automatizări prin webhook

Vezi și

  • Automatizări prin webhook - formatul payloadului, limitele de livrare și securitatea
  • Zapier - alternativă de automatizare în cloud
  • Make - alternativă de automatizare în cloud