Webhook automatizacije
Automatizacije zahtijevaju Basic ili viši plan. Basic: 1 automatizacija, Pro: 3, Ultra: 10. Na Free planu red prikazuje Nadogradi na Pro za otključavanje automatizacija.
Webhook je web adresa koja automatski prima podatke. Uz Automatizacije TellDone šalje svaku novu bilješku s njenim zadacima i događajima na tu adresu čim je bilješka spremna, a svaki novi izvještaj čim je izvještaj spreman, tako da alati poput Zapiera, Makea ili n8n-a mogu reagirati na njih. Svaki zadatak i događaj šalje se kao zasebna isporuka.
Odabir šta se šalje
Svaka automatizacija ima vlastite postavke pod Šta poslati. Odaberi jedno ili bilo koju kombinaciju:
- Bilješka - cijela obrađena bilješka (naslov, transkript, sažetak, vrsta, oznake, prioritet, jezik i datum nastanka)
- Bilješka + zvuk - na Ultra planu svakoj isporuci bilješke dodaje link za preuzimanje audiozapisa koji važi 24 sata. Ostavi uključeno Bilješka: bez toga se bilješka ne šalje
- Zadaci - jedna isporuka po izdvojenom zadatku
- Događaji - jedna isporuka po izdvojenom događaju u kalendaru
- Izvještaji - jedna isporuka po svakom napravljenom dnevnom, sedmičnom, mjesečnom ili godišnjem izvještaju (vrste izvještaja koje tvoj plan uključuje). Zamjenski izvještaji za mirne dane i kratki izvještaji za mirne sedmice se ne šalju
Ovo možeš promijeniti bilo kada u postavkama automatizacije - promjene važe samo za nove isporuke.
Odabir kada se šalje
Ispod izbora podataka četiri zasebna prekidača određuju koje promjene pokreću isporuku: Stvoreno, Ažurirano, Dovršeno i Izbrisano. Okidač radi samo zajedno s odgovarajućim prekidačem podataka iznad njega. Na primjer, Dovršeno šalje dovršene zadatke samo ako je uključeno Zadaci.
Stvoreno se šalje za bilješke koje TellDone napravi iz snimka ili tekstualne bilješke, te za zadatke i događaje pronađene u njima. Zadaci i događaji koje dodaš ručno ili pomoću AI asistenta, kao i nove stavke iz funkcije Dodaj glasom, ne šalju se kao Stvoreno. Ažurirano, Dovršeno i Izbrisano šalju se kad promijeniš stavku u aplikaciji ili pomoću funkcije Dodaj glasom. Promjene koje naprave Smart Context, AI asistent ili Todoist, Notion ili Microsoft To Do ne šalju isporuku.
Polje event svake isporuke imenuje šta se desilo, na primjer task.created, task.completed ili calendar_event.updated.
Postavljanje webhooka

- Idi na Podešavanja > Integracije > Automatizacije
- Dodirni Nova automatizacija

- Unesi ime (na primjer „Moj Zapier webhook”)
- Zalijepi URL webhooka iz svoje usluge za automatizaciju
- Odaberi koje podatke šalješ (Bilješka, Bilješka + zvuk na Ultra planu, Zadaci, Događaji, Izvještaji) i koje okidače koristiš (Stvoreno, Ažurirano, Dovršeno, Izbrisano)
- Po želji dodaj auth zaglavlje - token koji se šalje kao zaglavlje
Authorizationza zaštićene krajnje tačke - Dodirni Sačuvaj
- Kopiraj tajni ključ za potpisivanje - prikazuje se u cijelosti samo kad prvi put napraviš automatizaciju ili nakon što ga promijeniš. Treba ti da provjeriš da isporuke zaista dolaze iz TellDonea (pogledaj Provjera potpisa webhooka)
- Dodirni Testno slanje da pošalješ probni sadržaj na svoju krajnju tačku bez mijenjanja ijednog tvog podatka. Vidjet ćeš Uspjeh s HTTP kodom i vremenom odgovora, ili Greška s razlogom. Testna slanja se ne pojavljuju u dnevniku isporuka
Šta se šalje
Svaka isporuka je JSON objekt s tri polja: event (vrsta događaja), timestamp i data (stvarni sadržaj). Testna slanja uključuju i "test": true. Evo kako izgleda svaka vrsta događaja.
Bilješke (note.created)
Sadrži AI naslov, cijeli transkript, sažetak, vrstu bilješke, oznake, prioritet, jezik i datum nastanka.
{
"event": "note.created",
"timestamp": "2026-02-27T14:38:00.512345+00:00",
"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:00.284117+00:00"
}
}
Na Ultra planu isporuke bilješki mogu uključivati i link na audiozapis (audio_url, audio_format, duration_seconds). Link ističe nakon 24 sata. Ovo uključuješ opcijom Bilješka + zvuk u automatizaciji.
Zadaci (task.created)
Jedna isporuka po zadatku. Bilješka s 3 zadatka šalje 3 zasebne isporuke.
{
"event": "task.created",
"timestamp": "2026-02-27T14:38:01.204718+00:00",
"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:00+00:00",
"tags": ["work"],
"status": "todo",
"cancel_reason": null,
"cancelled_at": null,
"created_at": "2026-02-27T10:00:00.284117+00:00"
}
}
Događaji (calendar_event.created)
Jedna isporuka po događaju u kalendaru.
{
"event": "calendar_event.created",
"timestamp": "2026-02-27T14:38:02.093361+00:00",
"data": {
"note_id": "550e8400-...",
"note_title": "Meeting notes",
"event_id": "770a0622-...",
"title": "Team standup",
"description": "Weekly sync",
"start": "2026-03-03T07:00:00+00:00",
"end": "2026-03-03T07:30:00+00:00",
"location": "Zoom",
"is_all_day": false,
"attendees": ["alice@example.com"],
"tags": ["work"],
"created_at": "2026-02-27T10:00:00.284117+00:00",
"timezone": "Europe/Istanbul",
"start_local": "2026-03-03T10:00:00+03:00",
"end_local": "2026-03-03T10:30:00+03:00",
"start_date": "2026-03-03",
"end_date": "2026-03-03"
}
}
start i end su u UTC-u. start_local, end_local, start_date i end_date koriste tvoju vremensku zonu (timezone). Za cjelodnevni događaj end_date je posljednji dan događaja.
Izvještaji (report.created)
Šalje se kad se napravi dnevni, sedmični, mjesečni ili godišnji izvještaj.
{
"event": "report.created",
"timestamp": "2026-02-28T00:05:00.731902+00:00",
"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": "planning",
"tasks_created": 5,
"tasks_completed": 3
},
"created_at": "2026-02-28T00:05:00.418253+00:00"
}
}
Sigurnost
Svaka isporuka je potpisana pomoću HMAC-SHA256 tajnim ključem za potpisivanje tvoje automatizacije. Uz svaku isporuku šalju se sljedeća zaglavlja:
X-LP-Signature- HMAC-SHA256 potpis (sha256=...)X-LP-Timestamp- Unix vremenska oznaka korištena za potpisivanjeX-LP-Event- vrsta događaja (na primjernote.created,task.completed,calendar_event.updated,report.created)X-LP-Delivery-Id- jedinstveni ID isporuke (koristan za uklanjanje duplikata)User-Agent- uvijekTellDone-Webhooks/1.0
TellDone šalje zaglavlje Authorization samo ako u automatizaciji dodaš auth zaglavlje. Možeš koristiti dva formata: Header-Name: value šalje imenovano zaglavlje, a obična vrijednost šalje Authorization: <value>. Tvoj tajni ključ za potpisivanje nikada se ne šalje u zaglavlju.
Svaka automatizacija ima vlastiti tajni ključ za potpisivanje, pa promjena jednog ne utiče ni na jedan tvoj drugi webhook. Ključ se prikazuje u cijelosti samo kad prvi put napraviš automatizaciju ili nakon što ga promijeniš. U svim ostalim trenucima prikazuje se samo pregled (whsec_...last4). Da ga zamijeniš novim, dodirni Promijeni tajni ključ u postavkama automatizacije - to pravi novi HMAC ključ bez mijenjanja URL-a ili auth zaglavlja. Stari ključ odmah prestaje važiti.
Prihvataju se samo HTTPS URL-ovi s imenom domene. HTTP, IP adrese (javne ili privatne), URL-ovi s korisničkim imenom ili lozinkom i domene koje upućuju na adrese privatne mreže se odbijaju. TellDone ponovo provjerava adresu pri svakom slanju. Ako ta provjera ne uspije, na primjer jer se domena u tom trenutku ne razrješava, isporuka se zaustavlja i ne ponavlja.
Provjera potpisa webhooka
Svaki webhook je potpisan da možeš potvrditi da zaista dolazi iz TellDonea. Potpis se računa ovako:
HMAC-SHA256(signing_secret, timestamp + "." + raw_body)
Rezultat je kodiran heksadecimalno i u zaglavlju potpisa ima prefiks sha256=.
TellDone serijalizira JSON s razmacima poslije separatora (na primjer {"event": "note.created"}). Ako tijelo parsiraš i ponovo serijaliziraš, potpis se neće poklapati. Uvijek provjeravaj prema sirovim bajtovima tijela zahtjeva.
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");
const a = Buffer.from(signature);
const b = Buffer.from(expected);
// timingSafeEqual throws if the lengths differ, e.g. when the header is missing
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
// 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štita od ponavljanja (opcionalno)
Da spriječiš napade ponavljanjem, provjeri da je vremenska oznaka svježa:
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
Česte greške
| Greška | Rješenje |
|---|---|
| Korištenje parsiranog i ponovo serijaliziranog tijela | Koristi sirovo tijelo zahtjeva |
JSON.stringify() u JS-u (kompaktno, bez razmaka) | Koristi sirovo tijelo zahtjeva |
| Zaboravljen prefiks vremenske oznake | Format sadržaja je timestamp + "." + body |
| Direktno poređenje stringova | Koristi hmac.compare_digest ili timingSafeEqual |
Pravila ponovnog pokušaja
Ako tvoja krajnja tačka zataji, TellDone ponavlja svaku isporuku prema ovom rasporedu:
| Pokušaj | Odgoda |
|---|---|
| 1. ponavljanje | 30 sekundi |
| 2. ponavljanje | 2 minute |
| 3. ponavljanje | 15 minuta |
| 4. ponavljanje | 1 sat |
| 5. ponavljanje | 4 sata |
Ako i 5. ponavljanje ne uspije, isporuka se označava kao neuspjela i više se ne ponavlja. U aplikaciji se prikazuje s crvenim križićem. I dalje je možeš ponovo poslati iz punog dnevnika isporuka: otvori Sve isporuke (link se pojavljuje kad automatizacija ima više od 5 isporuka) i dodirni Pokušaj ponovo na neuspjeloj isporuci. Kratka lista Nedavne isporuke ne nudi ponovni pokušaj.
Kako TellDone postupa s različitim odgovorima:
- 2xx - uspješno dostavljeno
- 4xx (osim 429) - odmah se označava kao neuspjelo i ne ponavlja se (tvoja krajnja tačka je izričito odbila podatke)
- 429 (Too Many Requests) - ponavlja se nakon broja sekundi iz
Retry-After(60 sekundi ako ga nema). Ova ponavljanja nisu ograničena na 5, ali se svako računa u 20 neuspjeha nakon kojih se automatizacija isključuje - 5xx ili istek vremena - ponavlja se prema gornjem rasporedu
Kad isporuke više puta zaredom ne uspijevaju
Ako isporuke stalno ne uspijevaju, TellDone te obavještava i na kraju isključuje automatizaciju.
Nakon 3 neuspjela pokušaja: upozorenje u Sandučiću
Nakon 3 neuspjela pokušaja zaredom (ponavljanja se računaju), TellDone šalje poruku u tvoj Sandučić s naslovom Tvoja automatizacija „Naziv” ne radi, s imenom tvoje automatizacije u navodnicima. Zatim je možeš otvoriti u Podešavanja > Integracije > Automatizacije, provjeriti njene isporuke i odlučiti šta dalje.
Nakon 20 neuspjelih pokušaja: automatsko isključivanje
Ako 20 pokušaja zaredom ne uspije za istu automatizaciju (ponavljanja se računaju), TellDone isključuje automatizaciju da prestane slati na adresu koja ne radi. Riješi problem u svom alatu za automatizaciju, zatim ponovo uključi prekidač Aktivno u Podešavanja > Integracije > Automatizacije. Ponovno uključivanje ne briše broj neuspjeha, pa dok jedna isporuka ne uspije, samo jedan neuspjeli pokušaj ponovo je isključuje.
Svaki neuspjeli pokušaj se računa, pa jedna isporuka koja ne uspije ni u svih 5 ponavljanja dodaje 6 u brojač. Automatizacija se zato može sama isključiti nakon otprilike 4 isporuke koje ne uspijevaju. Brojač se vraća na nulu pri sljedećoj uspješnoj isporuci.
Upravljanje webhookovima
- Aktivno - isključi ovaj prekidač da zaustaviš automatizaciju bez brisanja, a uključi ga ponovo bilo kada. Dok je isključena, ništa se ne šalje: bilješke i izvještaji iz tog vremena ne šalju se naknadno, a isporuke koje čekaju ponovni pokušaj se odbacuju
- Isporuke - Nedavne isporuke prikazuju posljednjih 5 sa statusom, HTTP kodom i vremenom odgovora. Kad ih ima više, Sve isporuke otvara dnevnik posljednjih 30 dana, gdje možeš filtrirati po Sve, Dostavljeno ili Greške i dodirnuti Pokušaj ponovo na neuspjeloj isporuci da je ponovo pošalješ bez čekanja sljedećeg planiranog ponavljanja
- Testno slanje - šalje probnu bilješku (
note.created, s"test": trueu tijelu), bez obzira na odabrane vrste podataka, bez mijenjanja ijednog tvog podatka. Dostupno kad se automatizacija sačuva. Testna slanja se ne računaju u tvoje mjesečno ograničenje - Promijeni tajni ključ - napravi svjež HMAC tajni ključ za potpisivanje bez mijenjanja URL-a ili auth zaglavlja
- Uredi - ažuriraj URL, auth zaglavlje, izbor podataka (Bilješka / Bilješka + zvuk / Zadaci / Događaji / Izvještaji) ili okidače (Stvoreno / Ažurirano / Dovršeno / Izbrisano). Promjene stupaju na snagu odmah
- Izbriši automatizaciju - trajno uklanja automatizaciju i sve njene dnevnike isporuka
Svaka isporuka prikazuje svoj status kao ikonu:
| Ikona | Značenje |
|---|---|
| Zelena kvačica | Dostavljeno |
| Žuti sat | Čeka ili se šalje |
| Crveni trougao | Nije uspjelo, TellDone će ponoviti |
| Crveni križić | Nije uspjelo, nema više automatskih ponavljanja |
Na isporukama s crvenim trouglom ili crvenim križićem u punom dnevniku možeš dodirnuti Pokušaj ponovo.
Ograničenja isporuke
Postoje dva ograničenja: mjesečno, koje zavisi od tvog plana, i satno od 100 isporuka na svakom plaćenom planu, koje štiti od naglih skokova.
| Plan | Automatizacije | Mjesečne isporuke | Satno ograničenje |
|---|---|---|---|
| Free | 0 | 0 | - |
| Basic | 1 | 300 | 100 |
| Pro | 3 | 3.000 | 100 |
| Ultra | 10 | 15.000 | 100 |
Kako se ograničenja ponašaju:
- Mjesečno ograničenje dostignuto - isporuka čeka. Prikazuje se kao neuspjela („Monthly webhook limit exceeded”), a TellDone pokušava ponovo svakih 5 minuta. Šalje se nakon što se tvoje ograničenje resetuje 1. u 00:00 UTC, osim ako je do tada starija od 30 dana. Isporuke poslane nakon resetovanja računaju se u novi mjesec.
- Satno ograničenje dostignuto - isporuka se odgađa i ponavlja nakon otprilike 5 minuta, pa kratki nalet neće izgubiti podatke.
U mjesečno ograničenje računaju se samo uspješne isporuke. Satno ograničenje računa svaki pokušaj, uključujući ponavljanja. Testna slanja se ne računaju ni u jedno ograničenje.
Ako promijeniš plan, tvoje automatizacije i njihove postavke se zadržavaju. Na Free planu prestaju slati i ne možeš ih otvoriti dok ne pređeš na viši plan. Na Basic planu automatizacije koje su već postojale nastavljaju slati u okviru 300 isporuka mjesečno, ali ne možeš dodati niti uključiti više od jedne.
Filtriranje testnih događaja
Kad dodirneš Testno slanje, sadržaj na najvišem nivou uključuje "test": true. U svom alatu za automatizaciju možeš provjeriti ovo polje i preskočiti obradu kad je prisutno.
Vodiči za platforme
Upute korak po korak za tvoj alat za automatizaciju:
- Zapier - poveži TellDone s hiljadama aplikacija pomoću Zapova
- Make - pravi vizuelne scenarije automatizacije (ranije Integromat)
- n8n - koristi TellDone webhookove u tokovima rada koje sam hostuješ ili u oblaku
- Prilagođene krajnje tačke - radi svaka usluga koja prihvata HTTPS POST zahtjeve
Ideje
- Šalji zadatke u Google tabelu preko Zapiera
- Pravi Slack poruke iz bilješki preko Makea
- Bilježi događaje u vlastiti CRM preko n8n-a
- Pravi sigurnosnu kopiju svih bilješki u oblaku
- Proslijedi izvještaje na timsku kontrolnu tablu
Pogledaj također
- Sandučić i podrška - ako webhook više puta zaredom ne uspije, vidjet ćeš poruku u Sandučiću
- Zapier - postavljanje Zapiera korak po korak
- Make - postavljanje Makea korak po korak
- n8n - postavljanje n8n-a korak po korak
- Todoist - posebna dvosmjerna sinhronizacija zadataka (webhookovi nisu potrebni)
- Notion - posebna Notion integracija
- Prosljeđivanje e-poštom - primaj podatke bilješki e-poštom