--- title: Webhooky description: Dostávejte oznámení v reálném čase, když ve vašem CRM dojde k událostem. --- import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; Webhooky posílají data do vašich systémů v reálném čase, když v Twenty dojde k událostem — bez potřeby průběžného dotazování. Použijte je k udržování externích systémů v synchronizaci, spouštění automatizací nebo zasílání upozornění. ## Vytvořit Webhook 1. Přejděte na **Nastavení → API & Webhooks → Webhooks** 2. Klikněte na **+ Vytvořit webhook** 3. Zadejte adresu URL svého webhooku (musí být veřejně přístupná) 4. Klikněte na **Uložit** Webhook se aktivuje okamžitě a začne odesílat oznámení. ### Spravovat Webhooky **Upravit**: Klikněte na webhook → Aktualizovat adresu URL → **Uložit** **Odstranit**: Klikněte na webhook → **Odstranit** → Potvrdit ## Události Twenty odesílá webhooky pro tyto typy událostí: | Událost | Příklad | | -------------------------- | ---------------------------------------------------------- | | **Záznam je vytvořen** | `person.created`, `company.created`, `note.created` | | **Záznam je aktualizován** | `person.updated`, `company.updated`, `opportunity.updated` | | **Záznam je odstraněn** | `person.deleted`, `company.deleted` | Všechny typy událostí jsou odesílány na adresu URL vašeho webhooku. Filtrování událostí může být přidáno v budoucích verzích. ## Formát payloadu Každý webhook odesílá HTTP POST s tělem ve formátu JSON: ```json { "event": "person.created", "data": { "id": "abc12345", "firstName": "Alice", "lastName": "Doe", "email": "alice@example.com", "createdAt": "2025-02-10T15:30:45Z", "createdBy": "user_123" }, "timestamp": "2025-02-10T15:30:50Z" } ``` | Pole | Popis | | ---------------- | ------------------------------------------------------ | | `událost` | Co se stalo (např. `person.created`) | | `data` | Celý záznam, který byl vytvořen/aktualizován/odstraněn | | `časové razítko` | Kdy k události došlo (UTC) | Odpovězte se **stavem HTTP 2xx** (200–299) pro potvrzení přijetí. Odpovědi mimo 2xx se zaznamenávají jako selhání doručení. ## Ověření Webhooku Twenty kvůli bezpečnosti podepisuje každý požadavek webhooku. Ověřujte podpisy, abyste zajistili, že požadavky jsou autentické. ### Záhlaví | Hlavička | Popis | | ---------------------------- | ------------------------ | | `X-Twenty-Webhook-Signature` | Podpis HMAC SHA256 | | `X-Twenty-Webhook-Timestamp` | Časové razítko požadavku | ### Kroky ověření 1. Získejte časové razítko z `X-Twenty-Webhook-Timestamp` 2. Vytvořte řetězec: `{timestamp}:{JSON payload}` 3. Vypočítejte HMAC SHA256 pomocí vašeho tajného klíče webhooku 4. Porovnejte s `X-Twenty-Webhook-Signature` ### Příklad (Node.js) ```javascript const crypto = require("crypto"); const timestamp = req.headers["x-twenty-webhook-timestamp"]; const payload = JSON.stringify(req.body); const secret = "your-webhook-secret"; const stringToSign = `${timestamp}:${payload}`; const expectedSignature = crypto .createHmac("sha256", secret) .update(stringToSign) .digest("hex"); const isValid = expectedSignature === req.headers["x-twenty-webhook-signature"]; ``` ## Webhooky vs. pracovní postupy | Metoda | Směr | Případ použití | | ----------------------------------------- | ---- | --------------------------------------------------------------- | | **Webhooky** | OUT | Automaticky informujte externí systémy o jakékoli změně záznamu | | **Pracovní postup + požadavek HTTP** | OUT | Odesílejte data ven s vlastní logikou (filtry, transformace) | | **Spouštěč webhooku v pracovním postupu** | IN | Přijímejte data do Twenty z externích systémů | Pro příjem externích dat viz [Nastavení spouštěče webhooku](/l/cs/user-guide/workflows/how-tos/connect-to-other-tools/set-up-a-webhook-trigger).