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
- Přejděte na Nastavení → API & Webhooks → Webhooks
- Klikněte na + Vytvořit webhook
- Zadejte adresu URL svého webhooku (musí být veřejně přístupná)
- 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.
Každý webhook odesílá HTTP POST s tělem ve formátu 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í
- Získejte časové razítko z
X-Twenty-Webhook-Timestamp
- Vytvořte řetězec:
{timestamp}:{JSON payload}
- Vypočítejte HMAC SHA256 pomocí vašeho tajného klíče webhooku
- Porovnejte s
X-Twenty-Webhook-Signature
Příklad (Node.js)
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.