Prezentare generală a webhookurilor
Sursa înregistrează un eveniment pentru fiecare modificare importantă: o fișă este publicată, verificată sau arhivată, un anunț este citit, o întrebare rămâne fără răspuns. Puteți primi evenimentele în două moduri și le puteți folosi pe amândouă împreună:
| Webhookuri | Fluxul de evenimente | |
|---|---|---|
| Cum | Sursa trimite fiecare eveniment la adresa HTTPS indicată, în momentul în care se produce. | Citiți GET /v1/webhook-events când doriți. |
| Întârziere | Secunde. | Cât de des interogați. |
| Necesită | Un receptor HTTPS public. | Doar o cheie API cu rolul admin și domeniul webhooks:manage. |
| Potrivit pentru | Reacția la modificări: notificări, sincronizare, pornirea unui workflow. | Joburi pe loturi, recuperarea după o întrerupere, reconciliere. |
Ambele transportă aceleași evenimente, cu aceiași identificatori. Fiecare eveniment se păstrează în flux 30 de zile, indiferent dacă vreun webhook era abonat la el sau nu.
Evenimentul
{
"id": "evt_0123456789abcdef0123456789abcdef",
"type": "card.updated",
"created_at": "2026-10-24T10:00:03Z",
"org_id": 1,
"api_version": "1.60.0",
"sequence": 1042,
"object": {"type": "card", "id": "3f2c9a7e-5b1d-4c8e-9f0a-1b2c3d4e5f60"},
"payload": "full",
"data": {
"card": {"id": "3f2c9a7e-5b1d-4c8e-9f0a-1b2c3d4e5f60", "title": "Refund policy", "collection": "support", "version": 4},
"actor_id": 7,
"previous_attributes": {"title": "Refunds"}
},
"test": false
}
| Câmp | Semnificație |
|---|---|
id | Identificatorul evenimentului, evt_ urmat de 32 de caractere hexazecimale. Același la fiecare încercare de livrare și în flux. |
type | Ce s-a întâmplat, sub forma <object>.<past-tense verb>: card.updated, access_request.resolved. |
created_at | Momentul modificării, în UTC. |
api_version | Versiunea API-ului a cărei schemă o urmează data. |
object | Tipul și identificatorul obiectului la care se referă evenimentul. |
data | Detaliile. Forma lor depinde de tip și este descrisă în catalogul evenimentelor. |
data.previous_attributes | În evenimentele *.updated: valorile anterioare ale câmpurilor care s-au schimbat. |
sequence, payload, test | Doar în livrările webhookurilor: poziția în ordinea livrărilor webhookului, modul conținutului și dacă este un eveniment de test. |
data conține doar ce ar putea vedea prin API orice cititor al obiectului. Nu conține niciodată liste de acces,
permisiunile altor persoane sau câmpuri ascunse. Motivele din evenimente sunt coduri neutre scurte, cum ar fi
no_hits, restricted sau index_failed.
Tipuri de evenimente
Evenimentele acoperă aceste domenii:
| Domeniu | Exemple |
|---|---|
| Fișe | card.created, card.updated, card.published, card.archived, card.deleted, card.indexed, card.index_failed |
| Verificare | card.verified, card.unverified, verification.expired, verification.requested |
| Structură | collection.created, folder.updated |
| Colaborare | comment.created, draft.publish_requested, announcement.sent, announcement.read |
| Răspunsuri | question.unanswered, question.feedback_created, access_request.created |
| Persoane și acces | user.created, user.deactivated, group.member_added, api_key.expiring |
| Surse și import | source.sync_completed, import.sync_completed, import.document_failed |
| Joburi | job.completed, job.failed, export.ready |
| Webhookuri | webhook.endpoint_disabled, webhook.ping |
Lista completă, cu schema și un exemplu pentru fiecare eveniment, se află în catalogul evenimentelor din
referința API. GET /v1/webhooks/catalog returnează
tipurile disponibile în instalarea dumneavoastră.
În timp se adaugă tipuri noi de evenimente, iar evenimentele existente primesc câmpuri noi. Tipurile de evenimente nu sunt niciodată redenumite sau eliminate. Receptorul trebuie să ignore tipurile și câmpurile pe care nu le cunoaște.
Cine ce primește
Un webhook primește un eveniment doar dacă obiectul evenimentului îi este vizibil, la fel ca unei chei API: după
rolul, profilul de date și colecțiile lui. Un webhook limitat la colecția support nu primește niciodată evenimente
despre fișele din finance. Evenimentele despre persoane, chei, surse, importuri, joburi, exporturi, facturare,
aplicații și despre webhookurile înseși ajung doar la webhookurile cu rolul admin.
În aceste limite, fiecare webhook își alege evenimentele:
- după tip, cu măști:
card.*pentru fiecare eveniment al fișelor,*pentru fiecare eveniment; - după colecție și după etichetă, pentru evenimentele fișelor.
Modul conținutului unui webhook este full (evenimentul cu data, valoarea implicită) sau thin (evenimentul fără
data: receptorul citește obiectul prin API cu propria cheie și vede întotdeauna starea lui curentă).
Livrarea pe scurt
- Un
POSTHTTPS cu evenimentul în format JSON, semnat cu secretul webhookului în două formate: Standard Webhooks (webhook-signature) și formatul anteriorX-KB-Signature. - Orice răspuns
2xxîn cel mult 10 secunde este un succes. - O livrare eșuată este reîncercată aproape trei zile, cu pauze din ce în ce mai lungi.
Retry-Afterdintr-un răspuns429sau503este respectat;410dezactivează webhookul; 10 eșecuri consecutive îl pun în pauză până când este reluat. - Livrările către un webhook sunt trimise strict în ordine. Un webhook lent nu întârzie alte webhookuri.
- Același eveniment poate sosi de mai multe ori: eliminați dublurile după
webhook-id.
Primiți webhookuri prezintă pas cu pas un receptor complet, cu verificarea semnăturilor în Node.js, Python și Go.
Gestionarea webhookurilor
| Sarcină | Endpoint |
|---|---|
| Creați un webhook și primiți secretul lui | POST /v1/webhooks |
| Modificați adresa, evenimentele sau starea | PATCH /v1/webhooks/{webhook_id} |
| Trimiteți un eveniment de test | POST /v1/webhooks/{webhook_id}/test |
| Reînnoiți secretul | POST /v1/webhooks/{webhook_id}/rotate-secret |
| Reluați un webhook pus în pauză | POST /v1/webhooks/{webhook_id}/resume |
| Vedeți livrările și răspunsurile | GET /v1/webhooks/{webhook_id}/deliveries |
| Trimiteți din nou o livrare | POST /v1/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliver |
Gestionarea webhookurilor necesită o cheie cu rolul admin și domeniul webhooks:manage sau un administrator în
interfața de administrare. O organizație poate avea cel mult 20 de webhookuri. Webhookurile fac parte din planul organizației; fără
ele, aceste endpointuri răspund 403 cu codul webhooks.feature_disabled.