Skip to main content
Integrations · Notifications

Test results in Discord, without a bot

Paste an incoming webhook URL, pick the events that matter, and a failed test, a dropped session or a finished accessibility scan arrives as a single embed carrying the device, the duration, the reason and a markdown link straight back to the run.

No app to install · outbound webhook only

TestKaseAPP· #qa-alerts

Automate test failed — Checkout suite

Chrome 152 on Windows 11 · assertion failed on the payment step

Duration
2m 41s
Started
28 Sep 2026, 02:14 UTC
Product
Automate

View details →

No bot
paste an incoming webhook URL
Failures-only preset
or every result, per product
Colour by severity
green pass, red fail, grey neutral
5 retries
before a delivery is marked exhausted

What lands in the channel

Every message is a single Discord embed built from one neutral description of what happened.

A severity you can scan past

The embed's colour stripe is set from the severity of the event — green for a pass, red for a failure, grey for anything neutral — so a reader tells a bad card from a good one down the side of the channel without reading a word.

The facts, not a status word

One embed per event: the build or test name where there is one, otherwise the product and the device it ran on, who started it, when, how long it took, and a plain-English reason when a session ended for one. Fields are sent inline, so Discord lays them across the embed as a compact grid.

A readable start time

Discord receives the start time as a readable UTC string built from a fixed month table, so the wording never depends on where the server runs. Slack is the only one of the four channels that renders the run's start time on the reader's own clock.

No 'N/A' clutter

A field with no value is dropped rather than printed as N/A. A test-management event carries its project as the embed footer; a Live session, an Automate test and an accessibility scan have no project, so the footer is simply omitted.

A link straight back to the run

The way back is a markdown “View details” link inside the embed description, not a button — an embed posted through an incoming webhook cannot carry an interactive component. It opens the session or scan, where the recording, console output and network log are waiting.

Reliable delivery

The webhook URL is re-validated before every dispatch, redirects are refused, and a slow channel never holds up the test that triggered it.

Every event you can subscribe to

Pick events per product — by hand, or with a preset (all results, or failures only). These are the only events that exist.

Device farm & accessibility

  • Automate test passed, failed or errored
  • Live session ended (neutral) or failed
  • Accessibility scan completed or failed

Test management

  • Test case created or deleted
  • Cycle created, completed or deleted
  • Plan created, completed or deleted
  • Bulk execution completed

Deliberately absent

  • Visual — appears in the picker with an empty list; nothing emits a visual event yet.
  • No automate.build.completed — a build is a label, not an object with a lifecycle.
Attempts before a delivery is marked exhausted
5
After which an incomplete send is abandoned
10s
Delivered records are swept after a week
7 days
Unsuccessful records are swept after a month
30 days

Sending is fire-and-forget — a slow channel never holds up the run. Retries are spaced a minute, five minutes, half an hour, two hours and eight hours apart. The webhook URL is re-validated before every dispatch; loopback, private, link-local, carrier-grade NAT and multicast addresses are refused, and redirects are not followed.

FAQ

Frequently asked questions

No. You create an incoming webhook on a Discord channel, paste the URL into TestKase, name the integration and choose its events. There is no OAuth flow, no bot user and no slash command — nothing reads the channel and nothing answers in it. The traffic only goes one way: TestKase posts to Discord and Discord never calls us.

Put the failures where your team already is

Create a webhook on a channel, paste the URL, choose failures only. It takes about a minute and there is nothing to install.