Preskoči na glavno vsebino

Avtomatizacije z webhooki

Paket Basic in višji

Webhooki zahtevajo plačljiv paket. Basic: 1 webhook, Pro: 3, Ultra: 10.

Webhooki ti omogočajo povezavo TellDone s katero koli zunanjo storitvijo. Ko ustvariš glasovni zapisek, ga TellDone obdela in samodejno pošlje izluščene podatke - zapiske, opravila, dogodke in poročila - na URL, ki ga določiš. Vsako opravilo in dogodek se pošlje kot ločena dostava, tako da jih tvoje orodje za avtomatizacijo lahko obravnava posamično.

Izbira, kaj poslati

Vsaka avtomatizacija ima svoje preklope vsebine (payload). Izberi enega ali katero koli kombinacijo:

  • Zapiski - celoten obdelan zapisek (naslov, prepis, povzetek, oznake, jezik)
  • Zvok - na paketu Ultra priloži 24-urno povezavo za prenos zvočne datoteke poleg vsebine zapiska
  • Opravila - ena dostava na izluščeno opravilo
  • Dogodki - ena dostava na izluščen koledarski dogodek
  • Poročila - ena dostava na ustvarjeno dnevno, tedensko, mesečno ali letno poročilo

Preklope lahko kadar koli spremeniš v nastavitvah avtomatizacije - spremembe veljajo samo za nove dogodke.

Nastavitev webhooka

Nastavitve avtomatizacij za Zapier, Make in n8n

  1. Pojdi v Nastavitve > Integracije > Avtomatizacije z webhooki
  2. Tapni Nova avtomatizacija

Nastavitev nove avtomatizacije webhooka

  1. Vnesi ime (npr. "Moj webhook Zapier")
  2. Prilepi URL webhooka iz svoje storitve za avtomatizacijo
  3. Izberi, katere podatke poslati: zapiske, opravila, dogodke, poročila (ali katero koli kombinacijo)
  4. Po želji dodaj glavo za avtentikacijo - žeton, poslan kot glava Authorization za varne končne točke
  5. Tapni Shrani
  6. Kopiraj podpisno skrivnost - v celoti je prikazana samo, ko prvič ustvariš avtomatizacijo ali po tem, ko jo zamenjaš. Potreboval jo boš, če želiš preveriti pristnost webhooka
  7. Tapni "Test", da pošlješ vzorčno vsebino na svojo končno točko brez ustvarjanja pravega dogodka
nasvet

URL webhooka mora uporabljati HTTPS. Naslovi HTTP in IP-ji zasebnih omrežij niso sprejeti.

Kaj se pošlje

Vsaka dostava je objekt JSON s tremi polji: event (vrsta dogodka), timestamp in data (dejanska vsebina). Tukaj je videti, kako izgleda vsaka vrsta dogodka.

Zapiski (note.created)

Vsebuje naslov, ki ga ustvari AI, celoten prepis, povzetek, vrsto zapiska, oznake, prioriteto, jezik in datum ustvarjanja.

{
"event": "note.created",
"timestamp": "2026-02-27T14:38:00Z",
"data": {
"note_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Meeting notes - Project Alpha",
"transcript": "Full transcript text...",
"summary": "Brief AI-generated summary...",
"type": "meeting",
"tags": ["work", "project-alpha"],
"priority": "high",
"language": "en",
"created_at": "2026-02-27T10:00:00Z"
}
}

Na paketu Ultra lahko dostave zapiskov vključujejo tudi povezavo do zvočnega posnetka (audio_url, audio_format, duration_seconds). Povezava poteče po 24 urah. Omogoči to z možnostjo "Note + Audio" pri ustvarjanju avtomatizacije.

Opravila (task.created)

Ena dostava na opravilo. En sam zapisek s 3 opravili pošlje 3 ločene webhooke.

{
"event": "task.created",
"timestamp": "2026-02-27T14:38:01Z",
"data": {
"note_id": "550e8400-...",
"note_title": "Meeting notes - Project Alpha",
"task_id": "660f9511-...",
"title": "Send proposal to client",
"description": "Include pricing for Q2",
"priority": "high",
"due_date": "2026-03-01",
"reminder_at": "2026-02-28T09:00:00Z",
"tags": ["work"],
"status": "todo",
"created_at": "2026-02-27T10:00:00Z"
}
}

Dogodki (calendar_event.created)

Ena dostava na koledarski dogodek.

{
"event": "calendar_event.created",
"timestamp": "2026-02-27T14:38:02Z",
"data": {
"note_id": "550e8400-...",
"note_title": "Meeting notes",
"event_id": "770a0622-...",
"title": "Team standup",
"description": "Weekly sync",
"start": "2026-03-03T10:00:00+03:00",
"end": "2026-03-03T10:30:00+03:00",
"location": "Zoom",
"is_all_day": false,
"attendees": ["alice@example.com"],
"tags": ["work"],
"created_at": "2026-02-27T10:00:00Z"
}
}

Poročila (report.created)

Poslano, ko se ustvari dnevno, tedensko, mesečno ali letno poročilo.

{
"event": "report.created",
"timestamp": "2026-02-28T00:05:00Z",
"data": {
"report_id": "880b1733-...",
"report_type": "daily",
"period_start": "2026-02-27",
"period_end": "2026-02-27",
"content_md": "# Daily Report\n\n...",
"content_json": {
"productivity_score": 72,
"day_type": "productive",
"tasks_created": 5,
"tasks_completed": 3
},
"created_at": "2026-02-28T00:05:00Z"
}
}

Varnost

Vsaka dostava je podpisana s HMAC-SHA256 z uporabo podpisne skrivnosti tvoje avtomatizacije. Z vsako dostavo so vključene naslednje glave:

  • X-LP-Signature - podpis HMAC-SHA256 (sha256=...)
  • X-LP-Timestamp - časovni žig Unix, uporabljen za podpisovanje
  • X-LP-Event - vrsta dogodka (note.created, task.created, calendar_event.created, report.created)
  • X-LP-Delivery-Id - enolični ID dostave (uporaben za odstranjevanje podvojitev)
  • User-Agent - vedno TellDone-Webhooks/1.0

Glave s podpisom se pošljejo z vsako dostavo, ne glede na druge nastavitve.

Privzeto vsaka dostava vključuje podpisno skrivnost tvoje avtomatizacije v glavi Authorization - tako orodja, kot je n8n Header Auth, delujejo takoj, če skrivnost prilepiš kot vrednost za avtentikacijo. Če v nastavitvah nastaviš glavo za avtentikacijo po meri, ta nadomesti to privzeto. Uporabiš lahko dve obliki: Header-Name: value (pošlje poimenovano glavo) ali navadno vrednost (pošlje jo kot Authorization: <value>).

Vsaka avtomatizacija ima svojo podpisno skrivnost, tako da menjava ene ne vpliva na druge webhooke. Skrivnost je v celoti prikazana samo, ko prvič ustvariš avtomatizacijo ali po tem, ko jo zamenjaš. Ob vseh drugih časih je prikazan samo predogled (whsec_...last4). Za zamenjavo z novo tapni "Rotate secret" v nastavitvah avtomatizacije - to ustvari nov ključ HMAC, ne da bi spremenil URL ali glavo za avtentikacijo. Stara skrivnost takoj preneha delovati.

Sprejeti so samo URL-ji HTTPS. HTTP, naslovi IP in naslovi zasebnih omrežij so zavrnjeni.

Preverjanje podpisov webhooka

Preveri HMAC

Vsaka dostava vključuje glavo s podpisom v obliki X-LP-Signature: sha256=<hex>. Spodnji primer prikazuje, kako to preveriti v Pythonu.

Vsak webhook je podpisan, da lahko potrdiš, da je dejansko prišel iz TellDone. Podpis se izračuna kot:

HMAC-SHA256(signing_secret, timestamp + "." + raw_body)

Rezultat je šestnajstiško kodiran in ima predpono sha256= v glavi s podpisom.

Uporabi surovo telo zahteve

TellDone serializira JSON s presledki za ločili (npr. {"event": "note.created"}). Če telo razčleniš in znova serializiraš, se podpis ne bo ujemal. Vedno preverjaj glede na surove bajte telesa zahteve.

Python

import hmac
import hashlib

def verify_signature(raw_body: bytes, signature: str, timestamp: str, secret: str) -> bool:
payload = f"{timestamp}.".encode() + raw_body
expected = "sha256=" + hmac.new(
secret.encode(), payload, hashlib.sha256
).hexdigest()
return hmac.compare_digest(signature, expected)

# Flask example
@app.route("/webhook/telldone", methods=["POST"])
def telldone_webhook():
raw_body = request.get_data() # raw bytes, NOT request.json
signature = request.headers.get("X-LP-Signature", "")
timestamp = request.headers.get("X-LP-Timestamp", "")

if not verify_signature(raw_body, signature, timestamp, SIGNING_SECRET):
abort(403)

data = request.json
# process webhook...

Node.js

const crypto = require("crypto");

function verifySignature(rawBody, signature, timestamp, secret) {
const payload = `${timestamp}.${rawBody}`;
const expected =
"sha256=" +
crypto.createHmac("sha256", secret).update(payload).digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}

// Express example (use express.raw to get the raw body)
app.post("/webhook/telldone", express.raw({ type: "application/json" }), (req, res) => {
const rawBody = req.body.toString();
const signature = req.headers["x-lp-signature"] || "";
const timestamp = req.headers["x-lp-timestamp"] || "";

if (!verifySignature(rawBody, signature, timestamp, SIGNING_SECRET)) {
return res.status(403).send("Invalid signature");
}

const data = JSON.parse(rawBody);
// process webhook...
});

Zaščita pred ponovnim predvajanjem (izbirno)

Za preprečevanje napadov s ponovnim predvajanjem preveri, da je časovni žig nedaven:

import time

def verify_timestamp(timestamp: str, tolerance_seconds: int = 300) -> bool:
try:
return abs(time.time() - int(timestamp)) < tolerance_seconds
except (ValueError, TypeError):
return False

Pogoste napake

NapakaPopravek
Uporaba razčlenjenega + znova serializiranega telesaUporabi surovo telo zahteve
JSON.stringify() v JS (strnjeno, brez presledkov)Uporabi surovo telo ali se ujemaj s presledki Pythona
Pozabljena predpona časovnega žigaOblika vsebine je timestamp + "." + body
Neposredna primerjava nizovUporabi hmac.compare_digest ali timingSafeEqual

Politika ponovnih poskusov

Če tvoja končna točka ne uspe, TellDone vsako dostavo znova poskuša z eksponentnim zamikom (nekaj minut, nato daljši intervali):

PoskusZamik
1. ponovni poskus30 sekund
2. ponovni poskus2 minuti
3. ponovni poskus15 minut
4. ponovni poskus1 ura
5. ponovni poskus4 ure

Po 5 neuspelih poskusih je dostava označena kot mrtva. Še vedno jo lahko ročno znova poskusiš iz Dnevnika dostav.

Kako TellDone obravnava različne odzive:

  • 2xx - uspešno dostavljeno
  • 4xx (razen 429) - takoj označeno kot mrtvo, brez ponovnega poskusa (tvoja končna točka je izrecno zavrnila podatke)
  • 429 (Too Many Requests) - znova poskuša, upošteva glavo Retry-After
  • 5xx ali časovna prekoračitev - znova poskuša z zgornjim urnikom

Ko dostave večkrat zaporedoma ne uspejo

Ni ti treba spremljati Dnevnika dostav, da bi vedel, kdaj je nekaj pokvarjeno. TellDone namesto tebe spremlja zaporedne napake in te opozori v dveh stopnjah.

Po 3 napakah: opozorilo v Prejeto

Po 3 zaporednih neuspelih dostavah TellDone ustvari sporočilo v tvojem Prejeto pod kategorijo "Neuspeli webhooki". Sporočilo poimenuje prizadeto avtomatizacijo in te poveže naravnost z Nastavitve > Integracije > Avtomatizacije > [neuspela avtomatizacija] > Dnevnik dostav, da lahko pregledaš odziv in se odločiš, kaj storiti.

nasvet

Opozorila v Prejeto pomenijo, da za pokvarjene avtomatizacije izveš iz značke na ikoni aplikacije, namesto da bi jih tedne pozneje odkril iz manjkajočih podatkov v svojem nadaljnjem orodju.

Po 20 napakah: samodejni izklop

Samodejni izklop

Če 20 zaporednih dostav za isto avtomatizacijo ne uspe (šteto po opozorilu v Prejeto), TellDone avtomatizacijo samodejno izklopi, da preneha pošiljati na pokvarjeno končno točko in zaščiti tvojo mesečno kvoto dostav. Odpravi težavo na cilju, nato znova omogoči avtomatizacijo v Nastavitve > Integracije > Avtomatizacije.

Števec zaporednih napak se ob naslednji uspešni dostavi ponastavi na nič.

Upravljanje webhookov

  • Zaustavi/nadaljuj - onemogoči katero koli avtomatizacijo, ne da bi jo izbrisal, jo kadar koli znova omogoči
  • Dnevnik dostav - poglej vse dostave s stanjem, kodo HTTP in odzivnim časom. Filtriraj po Dostavljeno ali Napake. Tapni katero koli neuspelo dostavo in izberi "Retry", da jo pošlješ znova, ne da bi čakal na naslednji načrtovani ponovni poskus
  • Test - tapni "Test", da pošlješ vzorčno vsebino (z "test": true v telesu) na svojo končno točko brez ustvarjanja pravega dogodka. Testne pošiljke se ne štejejo v tvojo mesečno kvoto
  • Rotate secret - ustvari svežo podpisno skrivnost HMAC, ne da bi spremenil URL ali glavo za avtentikacijo
  • Uredi - posodobi URL, glavo za avtentikacijo ali preklope vsebine (zapiski / zvok / opravila / dogodki / poročila). Spremembe začnejo veljati takoj
  • Izbriši - trajno odstrani avtomatizacijo in vse njene dnevnike dostav

Omejitve dostave

Dostava webhookov ima dve zgornji meji: mesečno kvoto (trda meja, se razlikuje glede na paket) in urno protisunkovno mejo (mehka meja, enaka pri vseh plačljivih paketih).

PaketWebhookiMesečne dostaveUrni sunek
Free00-
Basic1300100
Pro33.000100
Ultra1015.000100

Paket Ultra podpira tudi zvočne povezave v vsebini zapiskov (24-urni potek).

Kako se obnašajo meje:

  • Presežena mesečna meja - dostava je označena kot neuspešna brez ponovnega poskusa. Nove dostave se nadaljujejo prvega dne naslednjega meseca, ko se števec ponastavi.
  • Presežena urna sunkovna meja - dostava je odložena in znova poskušena po približno 5 minutah, tako da kratek sunek ne izgubi podatkov. To je mehka protisunkovna zaščita, ne trajna zavrnitev.

Testne pošiljke in ročne ponovne dostave iz Dnevnika dostav se ne štejejo v nobeno mejo.

Filtriranje testnih dogodkov

Ko tapneš "Test", vsebina vključuje "test": true na najvišji ravni. V svojem orodju za avtomatizacijo lahko preveriš to polje in preskočiš obdelavo, ko je prisotno.

Vodniki po platformah

Za navodila za nastavitev korak za korakom z orodjem za avtomatizacijo:

  • Zapier - poveži TellDone s tisoči aplikacij z Zaps
  • Make - gradi vizualne scenarije avtomatizacije (prej Integromat)
  • n8n - uporabi webhooke TellDone v samostojno gostovanih ali oblačnih potekih dela
  • Končne točke po meri - vsaka storitev, ki sprejema zahteve HTTPS POST, deluje z webhooki TellDone

Priljubljeni primeri uporabe

  • Pošlji opravila v Google Preglednice prek Zapier
  • Ustvari sporočila Slack iz zapiskov prek Make
  • Zabeleži dogodke v CRM po meri prek n8n
  • Varnostno kopiraj vse zapiske v oblačno shrambo
  • Posreduj poročila na ekipno nadzorno ploščo

Glej tudi

  • Prejeto in podpora - če webhook večkrat ne uspe, boš videl sporočilo v svojem Prejeto
  • Zapier - nastavitev Zapier korak za korakom
  • Make - nastavitev Make korak za korakom
  • n8n - nastavitev n8n korak za korakom
  • Todoist - namenska dvosmerna sinhronizacija opravil (brez webhookov)
  • Notion - namenska integracija Notion
  • Posredovanje e-pošte - prejemaj podatke zapiskov po e-pošti