---
title: Webhooky
image: /images/docs/getting-started/webhooks.png
info: Zjistěte, jak používat naše Webhooky.
---

<Frame>
  <img src="/images/docs/getting-started/webhooks.png" alt="Header" />
</Frame>

## Přehled

Webhooky v Twenty doplňují API tím, že umožňují **oznámení v reálném čase** do vašich aplikací, když se události stanou ve vašem CRM. Místo neustálého dotazování API na změny můžete nastavit webhooky, které umožní aplikaci Twenty **odesílat** data do vašeho systému vždy, když dojde ke specifickým událostem (například když je vytvořen nový záznam nebo aktualizován stávající). To pomůže udržet externí systémy synchronizované s Twenty okamžitě a efektivně.

S využitím webhooků Twenty odešle požadavek HTTP POST na URL, které určíte, a to včetně podrobností o události. Můžete pak tato data zpracovat ve vaší aplikaci (např. pro aktualizaci vaší externí databáze, spuštění pracovních postupů nebo odesílání upozornění).

## Nastavení Webhooku

Chcete-li vytvořit webhook v Twenty, použijte nastavení **API & Webhooks** ve vaší aplikaci Twenty:

1. **Přejděte do Nastavení:** V aplikaci Twenty přejděte do **Nastavení → API & Webhooks**.
2. **Vytvořit Webhook:** Pod **Webhooky** klikněte na **+ Vytvořit webhook**.
3. **Zadejte URL:** Poskytněte koncovou URL na vašem serveru, kam chcete, aby Twenty zasílalo požadavky webhooků. Toto by měla být veřejně přístupná URL, která zvládne POST požadavky.
4. **Uložit:** Klikněte na **Uložit** pro vytvoření webhooku. Nový webhook bude aktivní okamžitě.

Můžete vytvořit více webhooků, pokud potřebujete odesílat různé události na různé koncové body. Každý webhook je v podstatě předplatné pro všechny relevantní události (v současné době Twenty odesílá všechny typy událostí na danou URL; filtrování specifických typů událostí může být konfigurovatelné v uživatelském prostředí). Pokud někdy potřebujete odstranit webhook, můžete jej odstranit ze stejné stránky nastavení (vyberte webhook a zvolte smazání).

## Události a Zatížení

Jakmile je webhook nastaven, Twenty pošle HTTP POST požadavek na vámi specifikovanou URL vždy, když dojde ke spouštěcí události ve vašich CRM datech. Běžné události, které spouští webhooky, zahrnují:

- **Záznam Vytvořen:** např. je přidána nová osoba (`person.created`), vytvořena nová firma (`company.created`), nebo vytvořen záznam (`note.created`), atd.
- **Záznam Aktualizován:** např. jsou aktualizovány informace stávající osoby (`person.updated`), editován záznam firmy (`company.updated`), atd.
- **Záznam Smazán:** např. osoba nebo firma je smazána (`person.deleted`, `company.deleted`).
- **Další Události:** pokud je to relevantní, jiné události objektů nebo vlastní spouštěče (například pokud jsou úkoly nebo jiné objekty aktualizovány, budou použity podobné typy událostí jako `task.created`, `note.updated`, atd.).

Webhook POST požadavek obsahuje JSON payload ve svém těle. Payload obecně zahrnuje alespoň dvě věci: typ události a údaje vztahující se k této události (často záznam, který byl vytvořen/aktualizován). Například webhook pro nově vytvořenou osobu může odeslat payload jako:

```
{
  "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"
}
```

V tomto příkladu:

- `"událost"` specifikuje, co se stalo (`person.created`).
- `"data"` obsahuje detaily nového záznamu (stejné informace, které byste získali, pokud byste požádali o danou osobu přes API).
- `"časová značka"` je kdy daná událost nastala (v UTC).

Vaše koncová URL by měla být připravena přijímat taková JSON data přes POST. Obvykle budete parsovat JSON, podívat se na typ `"událost"`, abyste pochopili, co se stalo, a pak podle potřeby použít `"data"` (např. vytvořit nový kontakt ve vašem systému nebo aktualizovat stávající).

**Poznámka:** Je důležité reagovat z vašeho webhookového koncového bodu s **2xx HTTP statusem**, aby bylo potvrzeno úspěšné přijetí. Pokud Twenty webhook sender nedostane odpověď 2xx, může považovat doručení za neúspěšné. (V budoucnu může logika pokusů o nové odeslání pokusit se znovu odeslat neúspěšné webhooky, proto se vždy snažte vrátit 200 OK co nejrychleji po zpracování dat.)

## Ověření Webhooku

Pro zajištění bezpečnosti vašich webhookových koncových bodů obsahuje Twenty podpis v hlavičce `X-Twenty-Webhook-Signature`.

Tento podpis je HMAC SHA256 hash payloadu požadavku, vypočítaný pomocí vašeho webhookového tajemství.

Pro ověření podpisu budete potřebovat:

1. Spojte časovou značku (z hlavičky `X-Twenty-Webhook-Timestamp`), dvojtečku a JSON řetězec payloadu
2. Vypočítejte HMAC SHA256 hash pomocí vašeho webhookového tajemství jako klíče
3. Porovnejte vzniklý hex digest s hlavičkou podpisu

Zde je příklad v Node.js:

```javascript
const crypto = require("crypto");
const timestamp = "1735066639761";
const payload = JSON.stringify({...});
const secret = "your-secret";
const stringToSign = `${timestamp}:${JSON.stringify(payload)}`;
const signature = crypto.createHmac("sha256", secret)
  .update(stringToSign)
  .digest("hex");
```