TestKase
TestKase
|Docs
Organization & AccountIntegrationsNotifications

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

  1. Open Organization → Integrations → Notifications and click Connect on the Custom Webhook card.
  2. Enter a name, paste the endpoint URL, choose the events, and save.

Test it without writing code

  1. Open webhook.site. It shows Your unique URL — copy it.
  2. Connect that URL as a custom webhook.
  3. Start a Live session and click End.
  4. 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.