A webhook is an HTTPS URL Assess calls when something happens. Your tool (n8n, Zapier, Make, or your backend) listens and reacts — no need to refresh the dashboard.
Destinations (HTTPS, Slack, Teams) are the same Public API surface: /webhooks/. There is no separate /destinations/ path.
If you are recruiting / ops
You usually do not configure webhooks by hand. Instead:
- Ask engineering to register your automation URL, or
- Use the n8n Assess node, Zapier, or Make app — they register the webhook when the scenario/workflow is active, or
- Follow Automations for a custom catch hook
Useful events to ask for:
For engineers
Register an HTTPS endpoint. You receive a whsec_… secret once to verify X-Praxicraft-Signature.
Live destinations only receive live events. Create a separate destination in Test mode (or with a ct_test_ key) while you debug — test candidate.passed never hits a live URL. See Live and Test mode.
Endpoints
Create and verify
Body uses events (not event_types):
Store secret_key. Then:
HTTP 2xx on the test ping sets is_verified and is_active.
Slack or Teams (no HMAC)
For “candidate passed → hiring channel”, use a chat destination instead of a signed HTTPS URL:
Assess posts a formatted chat message (not the signed JSON envelope). HTTPS destinations still use whsec_… and X-Praxicraft-Signature.
Failed deliveries can be resent from Developer → Events (filter Failed) or:
Signature
HMAC-SHA256 of the raw body with whsec_…. Helpers: SDK webhooks.
Debugging deliveries
Failed rows live in Developer → Events (filter Failed) and on each destination’s delivery log.
GET /webhooks/{id}/deliveries/ now includes payload, last_error, response_status_code, and a truncated response_body.
Full event list
assessment.started, assessment.completed, candidate.passed, candidate.failed, candidate.violation, invitation.created, invitation.expired, pipeline.enrolled, pipeline.advanced, pipeline.completed, pipeline.rejected, pipeline.held, pipeline.unheld, interview.scheduled, interview.started, interview.completed, interview.cancelled, interview.no_show, interview.analysis_ready, webhook.test.
Delivery behaviour
- Retries on 5xx/timeout: up to 3 (~1m, 2m, 4m)
- 4xx = no retry
- Deduplicate with delivery
id / event_id
Next
SDK verification · Slack · Teams · Integrations · Automations Last modified on August 24, 2026