Test results in a Google Chat space
Paste an incoming webhook URL, pick the events that matter, and results arrive as a card carrying the device, the duration, the reason and a button straight back to the run.
No Chat app to install · outbound webhook only
Automate test failed
Checkout suite
- Product
- Automate · Chrome 152 on Windows 11
- Started
- 4 Sep 2026, 12:48 UTC · by [email protected]
- Reason
- assertion failed on the payment step
- No Chat app
- paste an incoming webhook URL
- Failures-only preset
- or every result, per product
- A real button
- the only one of the four channels with one
- 5 retries
- before a delivery is marked exhausted
What lands in the space
Every message is a Google Chat cards array built from one neutral description of what happened.
A title, no colour to scan past
The header is the plain-English name of what happened — “Automate test failed”, “Live session dropped”, “Accessibility scan finished” — worded exactly as the event picker worded it. There is no severity emoji or colour, so severity lives only in the wording of the title.
The project as the subtitle
A test-management event belongs to a project, and that project becomes the header subtitle. A Live session, an Automate test and an accessibility scan have none, so the subtitle is dropped rather than padded.
The facts as labelled widgets
One keyValue widget per fact — who ran it, when it started, how long it took, and a plain-English reason when a session ended for one. A fact with no value is left out, never printed as N/A.
Times in readable UTC
The start time is a readable UTC string such as “4 Sep 2026, 12:48 UTC”, built from a fixed month table so the wording cannot drift with where the code runs. Only the Slack card renders a viewer-local time.
A real VIEW DETAILS button
The card carries a proper textButton that opens the session or the scan — the recording, console output and network log for that test are waiting there. Google Chat is the only one of the four channels where the way back is a button.
Reliable delivery
The webhook URL is re-validated before every dispatch, redirects are refused, and sending is fire-and-forget so a slow space 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 gives up
- 10s
- Delivered rows are swept after a week
- 7 days
- Unsuccessful rows are swept after a month
- 30 days
Sending is fire-and-forget — a slow space never holds up the run. Retries are spaced a minute, five minutes, half an hour, two hours and eight hours apart, then the delivery is marked exhausted; turn the integration off part-way through and the pending delivery is cancelled instead. 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. The same rules cover a raw JSON webhook.
Frequently asked questions
An incoming webhook on the space you want the cards to land in. Webhooks are created by a space manager, and a Google Workspace admin policy can switch that ability off across the domain — worth checking before you go looking for the menu. Then you paste the URL into TestKase, name the integration and choose its events.
Because the Google Chat card payload we send carries no severity colour. Slack marks severity with an emoji, Teams with a theme colour and Discord with a coloured stripe down the embed; Google Chat gets none of that, so severity is visible only in the wording of the title — 'Automate test failed' or 'Accessibility scan could not run'. It is the one honest disadvantage of this channel against the other three.
No. The start time is a readable UTC string such as '4 Sep 2026, 12:48 UTC'. Only the Slack card renders a viewer-local time, using a Slack-specific date token that has no equivalent here. The upside is that two people describing the same run always agree about when it started.
No. There is no TestKase Chat app, no slash command and no dialog. The integration posts to a webhook URL and nothing reads the space or answers in it. A full Chat app could open a dialog and take an action from the card; ours gives you a button to the run. Each card is a new message rather than a thread reply, nothing pings a person or the space, and screenshots, recordings and logs stay with the run.
Only the events you subscribe to. Per product you can pick individual events or take a preset of all results or failures only. A Live session simply ending is neutral rather than a success, because a tick on every closed tab is noise and noise is what gets a space muted. A Google Chat webhook belongs to a single space, so routing different events to different spaces means more than one integration — there is no digest, batching or quiet hours.
The delivery is retried up to five times, spaced a minute, five minutes, half an hour, two hours and eight hours apart, and then marked exhausted. Switch the integration off between attempts and the pending delivery is cancelled rather than posted into a space you have stopped using.
Put the failures where your Workspace already lives
Create a webhook on the space, paste the URL, choose failures only. It takes about a minute and there is no Chat app to approve.