Preskočiť na hlavný obsah

Webhook automatizácie

Plán Basic a vyšší

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

Nastavenia automatizácií pre Zapier, Make a n8n

  1. Choď do Nastavenia > Integrácie > Webhook automatizácie
  2. Klepni na Nová automatizácia

Nastavenie nového webhook automatizácie

  1. Zadaj názov (napr. "Môj Zapier webhook")
  2. Vlož URL webhooku zo svojej automatizačnej služby
  3. Vyber, aké dáta posielať: poznámky, úlohy, udalosti, reporty (alebo akúkoľvek kombináciu)
  4. Voliteľne pridaj auth header - token posielaný ako hlavička Authorization pre zabezpečené endpointy
  5. Klepni na Uložiť
  6. 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
  7. Klepni na "Test" a pošli vzorový payload na svoj endpoint bez vytvorenia reálnej udalosti
tip

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 podpisovanie
  • X-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ždy TellDone-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

Over HMAC

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=.

Použi raw telo požiadavky

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

ChybaOprava
Použitie parsovaného + znova serializovaného telaPouži raw telo požiadavky
JSON.stringify() v JS (kompaktný, bez medzier)Použi raw telo alebo zladi sa s Python medzerami
Zabudnutie prefixu timestampFormát payloadu je timestamp + "." + body
Priame porovnávanie reťazcovPouž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):

PokusOneskorenie
1. retry30 sekúnd
2. retry2 minúty
3. retry15 minút
4. retry1 hodina
5. retry4 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ť.

tip

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

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": true v 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ánWebhookyMesačné doručeniaBurst za hodinu
Free00-
Basic1300100
Pro33 000100
Ultra1015 000100

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