Webhook Settings
Webhook Settings is where Org Admins configure HTTP event subscriptions — outgoing POST requests to your external systems when Kazinex events occur. Access: Settings → Webhooks.
Webhooks list
The list shows all configured webhooks with their current state.
| Column | Meaning |
|---|---|
| Name | The label you gave this webhook |
| Endpoint URL | The external URL receiving events |
| Status | Active / Inactive |
| Events | Number of subscribed event types |
| Last delivery | Timestamp of most recent delivery attempt |
| Last status | Success or Failed |
Adding a webhook
- Click New Webhook.
- Fill in:
- Name — descriptive label (e.g. "ERP Integration — Document Events")
- Endpoint URL — the publicly accessible URL that will receive events
- Secret — a random string you choose; used for payload signature verification
- Active — toggle on to enable immediately
- Click Save.
After saving, the Event Subscriptions panel appears below. Click Add Subscription to select which events trigger this webhook.
Subscribed events
| Event | Description |
|---|---|
workflow.created | New workflow instance started |
workflow.completed | Workflow instance completed (all steps done) |
workflow.step_completed | A single workflow step completed |
document.created | New document record created |
document.status_changed | Document status changed (e.g. draft → approved) |
transmittal.issued | Transmittal issued to recipients |
transmittal.acknowledged | Transmittal acknowledged by a recipient |
See Webhook Events Reference for the full payload schema for each event.
Delivery log
Click Delivery Log on any webhook to see recent delivery history:
| Column | Meaning |
|---|---|
| Event | Event type that triggered the delivery |
| Timestamp | When the event occurred |
| Status | success (2xx response) or failed |
| Response code | HTTP status code returned by your endpoint |
| Duration | Response time in milliseconds |
Click any row to see the full request payload sent and the response body.
Retry: Click Retry on a failed delivery to resend the exact same payload without needing to trigger a new event.
Failure handling
Kazinex marks a delivery as failed if:
- The endpoint returns a non-2xx HTTP status code
- The endpoint does not respond within 10 seconds
Kazinex does not automatically retry failed deliveries. Use the manual Retry button or re-trigger the event from the source.
If deliveries consistently fail, check:
- The endpoint URL is publicly accessible (not
localhostor behind a firewall) - Your endpoint returns
200 OKquickly — process events asynchronously if needed - Your server is not returning 500 errors — check your server logs
Signature verification
Each payload includes an X-Kazinex-Signature header (format: sha256=<hex-digest>). Verify it in your endpoint to confirm the request is genuine:
import hmac, hashlib
def verify(payload_body: bytes, header: str, secret: str) -> bool:
expected = hmac.new(secret.encode(), payload_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header.replace("sha256=", ""))
See Webhook Events Reference for more verification examples.
Tutorial
See Set Up Webhooks tutorial for a full walkthrough including testing with webhook.site.
What's next
- Webhook Events Reference — full payload schema for all 7 events
- Set Up Webhooks tutorial — end-to-end setup guide
- Settings Overview — all settings sections