Skip to main content
Webhooks let your system react to interview lifecycle events in real time — session.completed is the most-listened event, but you can subscribe to anything from session creation through scorecard finalization.

Registering an endpoint

1

Open Developer settings

Settings → Developer → Webhooks inside your workspace.
2

Add an endpoint

Paste your URL. Pick the events you want delivered. Save.
3

Copy the signing secret

A 32-byte secret is generated for your endpoint. Store it in your secret manager — you’ll use it to verify HMAC signatures on every incoming request.
Webhook endpoints are managed in the dashboard under Developer → Webhooks — add the URL, choose the events, and copy the signing secret.

Event types

Payload shape

Every webhook delivers a JSON body with a consistent envelope:
The data shape varies by event — for participant.* events, you get the participant; for application.*, the application.
Idempotency: deduplicate by id. The same logical event may be delivered more than once during retry storms.

Verifying the signature

Every request carries a intervyo-signature header with an HMAC-SHA256 signature of the raw body, signed with your endpoint’s secret:
Verify before trusting the payload — anyone could post to your URL otherwise:
Verify against the raw body — don’t deserialize, re-serialize, and hash. JSON whitespace changes break the signature. In Express, capture the raw body with express.raw({ type: "application/json" }) before parsing.

Retries

If your endpoint returns a non-2xx status (or times out at 10 seconds), the platform retries with exponential backoff: After 7 failed attempts the event is dropped and a webhook.delivery_failed metric is incremented on your workspace. Subsequent events are still attempted — failures don’t suspend the endpoint.

Ordering

Events are delivered in order per session. You’re guaranteed to see session.created before session.started, and session.scored after session.completed. Across sessions there’s no global ordering — events for session A can arrive interleaved with events for session B.

Testing your endpoint

The webhook settings page has a Send test event button that fires a session.scored payload with synthetic data. Useful for verifying your endpoint + signature verification before live traffic hits it. You can also re-deliver any past event from the Logs tab on the endpoint detail page — useful when you’ve fixed a bug and want to backfill the events you missed.
Last modified on June 30, 2026