Webhook automatizácie
Webhooky vyžadujú platený plán. Basic: 1 webhook, Pro: 3, Ultra: 10.
Webhooky ti umožňujú prepojiť TellDone s akoukoľvek externou službou. Keď vytvoríš hlasovú poznámku, TellDone ju spracuje a automaticky pošle extrahované dáta - poznámky, úlohy, udalosti a reporty - na URL, ktorú zadáš. Každá úloha a udalosť sa posiela ako samostatné doručenie, takže tvoj automatizačný nástroj ich môže spracovať individuálne.
Čo poslať
Každá automatizácia má vlastné prepínače payloadu. Vyber jeden alebo akúkoľvek kombináciu:
- Poznámky - plná spracovaná poznámka (názov, prepis, zhrnutie, tagy, jazyk)
- Audio - v pláne Ultra priloží 24-hodinový download link na audio súbor popri payloade poznámky
- Úlohy - jedno doručenie na extrahovanú úlohu
- Udalosti - jedno doručenie na extrahovanú kalendárovú udalosť
- Reporty - jedno doručenie na vygenerovaný denný, týždenný, mesačný alebo ročný report
Prepínače môžeš kedykoľvek zmeniť v nastaveniach automatizácie - zmeny sa aplikujú iba na nové udalosti.
Nastavenie webhooku

- Choď do Nastavenia > Integrácie > Webhook automatizácie
- Klepni na Nová automatizácia

- Zadaj názov (napr. "Môj Zapier webhook")
- Vlož URL webhooku zo svojej automatizačnej služby
- Vyber, aké dáta posielať: poznámky, úlohy, udalosti, reporty (alebo akúkoľvek kombináciu)
- Voliteľne pridaj auth header - token posielaný ako hlavička
Authorizationpre zabezpečené endpointy - Klepni na Uložiť
- Skopíruj signing secret - zobrazí sa v plnom znení iba pri prvom vytvorení automatizácie alebo po jeho rotácii. Budeš ho potrebovať, ak chceš overovať autenticitu webhooku
- Klepni na "Test" a pošli vzorový payload na svoj endpoint bez vytvorenia reálnej udalosti
URL webhooku musí používať HTTPS. HTTP adresy a IP súkromnej siete nie sú akceptované.
Čo sa posiela
Každé doručenie je JSON objekt s tromi poľami: event (typ udalosti), timestamp a data (samotný obsah). Tu je, ako vyzerá každý typ udalosti.
Poznámky (note.created)
Obsahuje názov vygenerovaný AI, plný prepis, zhrnutie, typ poznámky, tagy, prioritu, jazyk a dátum vytvorenia.
{
"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"
}
}
V pláne Ultra môžu doručenia poznámok obsahovať aj odkaz na audio nahrávku (audio_url, audio_format, duration_seconds). Odkaz expiruje po 24 hodinách. Zapni to možnosťou "Note + Audio" pri vytváraní automatizácie.
Úlohy (task.created)
Jedno doručenie na úlohu. Jedna poznámka s 3 úlohami pošle 3 samostatné webhooky.
{
"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"
}
}
Udalosti (calendar_event.created)
Jedno doručenie na kalendárovú udalosť.
{
"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"
}
}
Reporty (report.created)
Posiela sa, keď sa vygeneruje denný, týždenný, mesačný alebo ročný report.
{
"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"
}
}
Bezpečnosť
Každé doručenie je podpísané pomocou HMAC-SHA256 s použitím signing secret tvojej automatizácie. S každým doručením sa posielajú tieto hlavičky:
X-LP-Signature- HMAC-SHA256 podpis (sha256=...)X-LP-Timestamp- Unix timestamp použitý na podpisovanieX-LP-Event- typ udalosti (note.created,task.created,calendar_event.created,report.created)X-LP-Delivery-Id- unikátne ID doručenia (užitočné na deduplikáciu)User-Agent- vždyTellDone-Webhooks/1.0
Hlavičky podpisu sa posielajú s každým doručením, bez ohľadu na iné nastavenia.
Štandardne každé doručenie obsahuje signing secret tvojej automatizácie v hlavičke Authorization - takže nástroje ako n8n Header Auth fungujú hneď po vybalení, stačí vložiť secret ako hodnotu autentifikácie. Ak v nastaveniach nastavíš vlastný auth header, nahradí toto predvolené správanie. Môžeš použiť dva formáty: Nazov-Hlavicky: hodnota (odošle pomenovanú hlavičku) alebo čistú hodnotu (odošle ju ako Authorization: <hodnota>).
Každá automatizácia má vlastný signing secret, takže rotácia jedného neovplyvní žiadne iné webhooky. Secret sa zobrazí v plnom znení iba pri prvom vytvorení automatizácie alebo po jeho rotácii. V ostatných prípadoch sa zobrazuje iba náhľad (whsec_...posledné4). Ak ho chceš vymeniť za nový, klepni na "Rotovať secret" v nastaveniach automatizácie - vygeneruje sa nový HMAC kľúč bez zmeny URL alebo auth header. Starý secret prestane fungovať okamžite.
Akceptujú sa iba HTTPS URL. HTTP, IP adresy a adresy súkromnej siete sú odmietané.
Overovanie podpisov webhookov
Každé doručenie obsahuje hlavičku podpisu vo forme X-LP-Signature: sha256=<hex>. Príklad nižšie ukazuje, ako ho overiť v Pythone.
Každý webhook je podpísaný, takže si môžeš potvrdiť, že skutočne prišiel z TellDone. Podpis sa počíta ako:
HMAC-SHA256(signing_secret, timestamp + "." + raw_body)
Výsledok je hex-kódovaný a v hlavičke podpisu má prefix sha256=.
TellDone serializuje JSON s medzerami za separátormi (napr. {"event": "note.created"}). Ak telo parseuješ a znova serializuješ, podpis sa nezhoduje. Vždy over voči raw bajtom tela požiadavky.
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...
});
Ochrana proti replay (voliteľné)
Aby si predchádzal replay útokom, skontroluj, že timestamp je čerstvý:
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
Bežné chyby
| Chyba | Oprava |
|---|---|
| Použitie parsovaného + znova serializovaného tela | Použi raw telo požiadavky |
JSON.stringify() v JS (kompaktný, bez medzier) | Použi raw telo alebo zladi sa s Python medzerami |
| Zabudnutie prefixu timestamp | Formát payloadu je timestamp + "." + body |
| Priame porovnávanie reťazcov | Použi hmac.compare_digest alebo timingSafeEqual |
Politika opakovaní
Ak tvoj endpoint zlyhá, TellDone každé doručenie opakuje s exponential backoff (pár minút, potom dlhšie intervaly):
| Pokus | Oneskorenie |
|---|---|
| 1. retry | 30 sekúnd |
| 2. retry | 2 minúty |
| 3. retry | 15 minút |
| 4. retry | 1 hodina |
| 5. retry | 4 hodiny |
Po 5 zlyhaných pokusoch je doručenie označené ako mŕtve. Stále ho môžeš ručne zopakovať z Logu doručení.
Ako TellDone spracováva rôzne odpovede:
- 2xx - úspešne doručené
- 4xx (okrem 429) - okamžite označené ako mŕtve, žiaden retry (tvoj endpoint dáta výslovne odmietol)
- 429 (Too Many Requests) - opakuje, rešpektuje hlavičku
Retry-After - 5xx alebo timeout - opakuje podľa rozvrhu vyššie
Keď doručenia opakovane zlyhávajú
Nemusíš si dávať pozor na Log doručení, aby si vedel, kedy je niečo pokazené. TellDone sleduje po sebe idúce zlyhania za teba a ozve sa v dvoch fázach.
Po 3 zlyhaniach: varovanie v Schránke
Po 3 po sebe idúcich zlyhaných doručeniach TellDone vytvorí správu v tvojej Schránke v kategórii "Zlyhania webhookov". Správa pomenuje ovplyvnenú automatizáciu a pošle ťa rovno na Nastavenia > Integrácie > Automatizácie > [zlyhaná automatizácia] > Log doručení, takže môžeš preveriť odpoveď a rozhodnúť sa, čo robiť.
Alerty v Schránke znamenajú, že o pokazených automatizáciách sa dozvieš z odznaka ikony aplikácie namiesto toho, aby si ich objavil týždne neskôr z chýbajúcich dát v cieľovom nástroji.
Po 20 zlyhaniach: auto-vypnutie
Ak 20 po sebe idúcich doručení pre tú istú automatizáciu zlyhá (počítané po varovaní v Schránke), TellDone automatizáciu automaticky vypne, aby prestal pingnúť pokazený endpoint a chránil tvoju mesačnú kvótu doručení. Oprav problém v cieli a potom automatizáciu znova zapni v Nastavenia > Integrácie > Automatizácie.
Počítadlo po sebe idúcich zlyhaní sa pri ďalšom úspešnom doručení resetuje na nulu.
Správa webhookov
- Pauza/spustenie - vypni akúkoľvek automatizáciu bez jej zmazania, kedykoľvek znova zapni
- Log doručení - prezri všetky doručenia so stavom, HTTP kódom a časom odpovede. Filtruj podľa Doručené alebo Chyby. Klepni na akékoľvek zlyhané doručenie a zvoľ "Retry" na opätovné odoslanie bez čakania na ďalší naplánovaný retry
- Test - klepni na "Test" a pošli vzorový payload (s
"test": truev tele) na tvoj endpoint bez vytvorenia reálnej udalosti. Test odoslania sa nepočítajú do tvojej mesačnej kvóty - Rotovať secret - vygeneruj čerstvý HMAC signing secret bez zmeny URL alebo auth header
- Editovať - aktualizuj URL, auth header alebo prepínače payloadu (poznámky / audio / úlohy / udalosti / reporty). Zmeny sú účinné okamžite
- Zmazať - natrvalo odstráni automatizáciu a všetky jej logy doručení
Limity doručení
Doručovanie webhookov má dva limity: mesačnú kvótu (tvrdý limit, líši sa podľa plánu) a hodinový anti-burst limit (mäkký limit, rovnaký vo všetkých platených plánoch).
| Plán | Webhooky | Mesačné doručenia | Burst za hodinu |
|---|---|---|---|
| Free | 0 | 0 | - |
| Basic | 1 | 300 | 100 |
| Pro | 3 | 3 000 | 100 |
| Ultra | 10 | 15 000 | 100 |
Plán Ultra tiež podporuje audio odkazy v payloadoch poznámok (24-hodinová expirácia).
Ako sa limity správajú:
- Prekročená mesačná kvóta: doručenie sa označí ako neúspešné bez opakovania. Nové doručenia sa obnovia 1. dňa nasledujúceho mesiaca, keď sa počítadlo resetuje.
- Prekročený hodinový limit: doručenie sa odloží a zopakuje približne o 5 minút, takže krátky burst nestratí dáta. Ide o mäkkú anti-burst ochranu, nie o trvalé odmietnutie.
Testovacie odoslania a manuálne opätovné doručenia z denníka doručení sa nezapočítavajú do žiadneho z týchto limitov.
Filtrovanie testovacích udalostí
Keď klepneš na "Test", payload obsahuje "test": true na top úrovni. V tvojom automatizačnom nástroji môžeš toto pole skontrolovať a preskočiť spracovanie, keď je prítomné.
Návody pre platformy
Pre krok-po-kroku inštrukcie nastavenia s tvojím automatizačným nástrojom:
- Zapier - prepoj TellDone s tisíckami aplikácií cez Zaps
- Make - postav vizuálne automatizačné scenáre (predtým Integromat)
- n8n - použi TellDone webhooky v self-hosted alebo cloud workflowoch
- Vlastné endpointy - akákoľvek služba, ktorá prijíma HTTPS POST požiadavky, funguje s TellDone webhookmi
Obľúbené use cases
- Posielaj úlohy do Google Sheet cez Zapier
- Vytváraj Slack správy z poznámok cez Make
- Loguj udalosti do vlastného CRM cez n8n
- Zálohuj všetky poznámky do cloud storage
- Preposielaj reporty na tímový dashboard
Pozri tiež
- Schránka a podpora - ak webhook opakovane zlyháva, uvidíš správu v Schránke
- Zapier - krok-po-kroku Zapier nastavenie
- Make - krok-po-kroku Make nastavenie
- n8n - krok-po-kroku n8n nastavenie
- Todoist - vyhradená obojsmerná synchronizácia úloh (žiadne webhooky netreba)
- Notion - vyhradená Notion integrácia
- Preposielanie e-mailom - prijímaj dáta poznámok cez e-mail