Webhook Integration Guide
Set up real-time notifications to keep your team informed about test activities across Slack, Discord, Teams, Google Chat, or any custom endpoint.
Overview
TestKase webhook notifications deliver real-time updates about your testing activities directly to your team's communication channels. When events occur -- like a test case being created, a test cycle completing, or a bulk execution finishing -- TestKase sends a formatted notification to the webhook URL you configure.
Real-time delivery
Notifications sent instantly when events occur
5 platforms supported
Slack, Discord, Teams, Google Chat & Custom
9 event types
Cover test cases, cycles, plans & executions
Auto-retries
Up to 5 retry attempts with exponential backoff
Prerequisites
Before setting up webhook notifications, make sure you have:
- A TestKase account with an active project
- Admin or project-level permissions to manage notification integrations
- A webhook URL from your target platform (see setup guides below)
Platform Setup Guides
Follow the guide for your platform to obtain a webhook URL. TestKase automatically formats notifications for each platform.
Slack
- Go to api.slack.com/apps and click Create New App -> From scratch.
- Name your app (e.g. "TestKase Notifications") and select your workspace.
- Navigate to Incoming Webhooks in the sidebar and toggle it On.
- Click Add New Webhook to Workspace, select the target channel, and authorize.
- Copy the generated Webhook URL.
Your Slack webhook URL will look like: https://hooks.slack.com/services/T00000/B00000/XXXXXXXX
Discord
- Open Discord and navigate to your target channel.
- Click the gear icon (Edit Channel) -> Integrations -> Webhooks.
- Click New Webhook, give it a name (e.g. "TestKase"), and optionally set an avatar.
- Click Copy Webhook URL.
Your Discord webhook URL will look like: https://discord.com/api/webhooks/000000/XXXXXXXX
Microsoft Teams
- In Microsoft Teams, navigate to the target channel.
- Click the ... menu -> Connectors (or Workflows in new Teams).
- Search for Incoming Webhook and click Configure.
- Give the webhook a name and optionally upload an icon, then click Create.
- Copy the generated Webhook URL.
Your Teams webhook URL will look like: https://outlook.office.com/webhook/... or https://your-org.webhook.office.com/...
Google Chat
- Open the Google Chat space where you want notifications.
- Click the space name at the top -> Apps & integrations.
- Click Webhooks -> Add webhook.
- Enter a name (e.g. "TestKase") and optionally set an avatar URL, then click Save.
- Copy the generated Webhook URL.
Your Google Chat webhook URL will look like: https://chat.googleapis.com/v1/spaces/XXXXX/messages?key=...&token=...
Custom Webhook
You can send notifications to any HTTPS endpoint that accepts POST requests with a JSON body.
This is useful for integrating with monitoring tools, custom dashboards, or internal systems.
TestKase will send a JSON payload in the following format:
{
"event": "test_case.created",
"timestamp": "2026-03-01T12:00:00Z",
"project": {
"id": "PRJ-123",
"name": "My Project"
},
"data": {
"id": "TC-456",
"title": "Login page validation",
"createdBy": "john@example.com"
}
}Your endpoint must respond with a 2xx status code within 10 seconds,
or the delivery will be marked as failed and retried.
Configure in TestKase
Once you have your webhook URL, follow these steps to connect it in TestKase:
Connect a New Webhook
- Log in to TestKase and open your project dashboard.
- Navigate to Notification Integration from the sidebar.
- Click Connect on the platform card you want to set up (Slack, Discord, Teams, Google Chat, or Custom).
- Enter a name for the integration (e.g. "#engineering-alerts").
- Paste the webhook URL you copied from your platform.
- Select the events you want to be notified about.
- Click Save. TestKase will validate the URL and create the integration.
Edit an Existing Integration
Click the Edit button on any connected integration card to update the name, URL, or subscribed events. Changes take effect immediately.
Reset / Disconnect
To disconnect an integration, click the Reset button on the integration card. This will stop all notifications to that webhook. You can reconnect at any time.
Events Reference
TestKase supports the following webhook events. You can subscribe to any combination when configuring your integration.
| Event | Description |
|---|---|
test_case.created | New test case created in the project |
test_case.deleted | A test case was deleted from the project |
test_cycle.created | New test cycle created |
test_cycle.deleted | A test cycle was deleted |
test_cycle.completed | All executions in a test cycle have finished |
test_plan.created | New test plan created |
test_plan.deleted | A test plan was deleted |
test_plan.completed | A test plan was marked as complete |
test_execution.completed | A bulk execution run has finished |
Delivery & Retries
TestKase tracks the delivery status of every notification:
| Status | Meaning |
|---|---|
| Pending | Notification is queued for delivery |
| Delivered | Successfully delivered (received 2xx response) |
| Failed | Delivery attempt failed, will be retried |
| Exhausted | All retry attempts have been used |
| Cancelled | Delivery was cancelled (e.g. integration was reset) |
Retry Schedule
When a delivery fails, TestKase automatically retries up to 5 times with exponential backoff:
| Attempt | Delay |
|---|---|
| Retry 1 | 1 min |
| Retry 2 | 5 min |
| Retry 3 | 30 min |
| Retry 4 | 2 hr |
| Retry 5 | 8 hr |
Each delivery attempt has a 10-second timeout. If your endpoint does not respond within 10 seconds, the attempt is marked as failed.
Troubleshooting
Common questions and solutions for webhook integration issues:
▶I'm not receiving any notifications
Check these common causes:
- Verify the webhook URL is correct and the integration is connected (not reset).
- Make sure you've subscribed to the correct events.
- Check if the platform channel still exists and hasn't been archived.
- Look at the integration card in TestKase for any error indicators.
▶I see an 'HTTPS required' error
TestKase requires all webhook URLs to use HTTPS for security. Plain HTTP URLs (http://)
are not accepted. If you're testing locally, use a tunneling service like ngrok to get an HTTPS URL.
▶My URL is being blocked (SSRF protection)
TestKase blocks webhook URLs that resolve to private/internal IP addresses (e.g. 127.0.0.1,
10.x.x.x, 192.168.x.x) to prevent SSRF attacks.
Use a publicly-accessible URL for your webhook endpoint.
▶Notifications stopped after multiple failures
After 5 consecutive failed delivery attempts, the notification status becomes "exhausted" and no further retries are attempted for that specific notification. New events will still trigger new delivery attempts. If your endpoint was temporarily down, notifications will resume automatically for new events once it's back online.
▶How can I test without triggering real events?
Create a test project and perform actions like creating a test case or test cycle. These will trigger real notifications to your webhook, letting you verify the setup works end-to-end.
▶What format are notifications sent in for each platform?
TestKase automatically formats notifications for each platform:
- Slack -- Block Kit format with rich text sections
- Discord -- Embed format with colored sidebars
- Teams -- Adaptive Card format
- Google Chat -- Card v2 format
- Custom -- Raw JSON payload (see example above)