Custom webhook
Send every event as raw JSON to any HTTPS endpoint — your own service, Zapier, n8n, or a request catcher for testing.
Overview
The Custom Webhook card posts the event as JSON, not a formatted card. Use it to drive your own automation, a dashboard, or a tool we don't have a card for.
What TestKase sends
An HTTP POST with Content-Type: application/json:
{
"event": "live.session.ended",
"timestamp": "2026-09-07T06:50:42.909Z",
"data": {
"session_id": "1001b7b0-2de0-4b4a-a9bd-c239dbcf67fa",
"product": "live-browser",
"build_name": null,
"name": null,
"device": null,
"platform": "win11",
"started_at": "2026-09-07T06:31:11.068Z",
"ended_at": "2026-09-07T06:31:35.842Z",
"duration_seconds": 24,
"ended_reason": "ended",
"run_by": "[email protected]",
"url": "https://app.testkase.com/live/sessions/1001b7b0-…"
}
}Event names: live.session.ended, live.session.failed, automate.session.completed, automate.session.failed, automate.session.errored, accessibility.scan.completed, accessibility.scan.failed. Accessibility payloads carry scan_id, urls, wcag, browser, total_issues, score and message instead of the session fields.
Requirements for the endpoint
- Public HTTPS.
localhost, private addresses and plain HTTP are refused when you save — TestKase's servers must be able to reach it. - Answer 2xx within a few seconds. Anything else is retried five times over about eleven hours, then marked exhausted.
- Unsigned. Requests carry no signature header; treat the URL itself as the secret and rotate it if it leaks.
Connect it in TestKase
- Open Organization → Integrations → Notifications and click Connect on the Custom Webhook card.
- Enter a name, paste the endpoint URL, choose the events, and save.
Test it without writing code
- Open webhook.site. It shows Your unique URL — copy it.
- Connect that URL as a custom webhook.
- Start a Live session and click End.
- Back on the webhook.site dashboard tab, the request appears in the left list within a few seconds. Click it to see the JSON body.
Opening the unique URL itself in a browser shows "This URL has no default content configured" — that's the receiving address, not the dashboard. The requests are listed on the dashboard page (https://webhook.site/#!/view/<your-id>).
webhook.site URLs are public. Use them to test, then Reset the rule — don't leave real session data flowing to one.
