Skip to main content

Webhook Settings

Webhook Settings is where Org Admins configure HTTP event subscriptions — outgoing POST requests to your external systems when Kazinex events occur. Access: SettingsWebhooks.

Webhooks list

The list shows all configured webhooks with their current state.

ColumnMeaning
NameThe label you gave this webhook
Endpoint URLThe external URL receiving events
StatusActive / Inactive
EventsNumber of subscribed event types
Last deliveryTimestamp of most recent delivery attempt
Last statusSuccess or Failed

Adding a webhook

  1. Click New Webhook.
  2. 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
  3. Click Save.

After saving, the Event Subscriptions panel appears below. Click Add Subscription to select which events trigger this webhook.

Subscribed events

EventDescription
workflow.createdNew workflow instance started
workflow.completedWorkflow instance completed (all steps done)
workflow.step_completedA single workflow step completed
document.createdNew document record created
document.status_changedDocument status changed (e.g. draft → approved)
transmittal.issuedTransmittal issued to recipients
transmittal.acknowledgedTransmittal 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:

ColumnMeaning
EventEvent type that triggered the delivery
TimestampWhen the event occurred
Statussuccess (2xx response) or failed
Response codeHTTP status code returned by your endpoint
DurationResponse 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:

  1. The endpoint URL is publicly accessible (not localhost or behind a firewall)
  2. Your endpoint returns 200 OK quickly — process events asynchronously if needed
  3. 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