Skip to content
The docs are now organized by product area. Old links still work. Report a broken link

Integration events

Every event Qualflare integrations send: what triggers it, which integrations offer it, the message each one posts, and how to read Recent deliveries.

Last updated

Qualflare integrations send seven events, from Defect Created to Flaky Test Detected, and each project picks which of them reach each integration; every attempt, delivered or not, is listed under Recent deliveries on the project's Integrations page.

Webhooks are separate and send their own two events.

Events and when they are sent

EventKeySent whenOffered by
Defect Createddefect_createdA defect is created, or flaky detection opens oneGitHub, GitLab, Jira, Linear, Slack, Microsoft Teams, Discord, PagerDuty
Defect Resolveddefect_resolvedA defect is closed or marked False positiveSlack, Microsoft Teams, Discord, PagerDuty
Launch Completedlaunch_completedAn upload has no failed, error, timed-out or aborted testSlack, Microsoft Teams, Discord, PagerDuty
Launch Failedlaunch_failedAn upload has at least one failed, error, timed-out or aborted testAll eight integrations
Cluster Createdcluster_createdA new failure cluster gets its nameAll eight integrations
Milestone Completedmilestone_completedA milestone is saved with Is Completed onSlack, Microsoft Teams, Discord, PagerDuty
Flaky Test Detectedflaky_test_detectedQualflare opens a defect for a flaky caseGitHub, GitLab, Jira, Linear, Slack, Microsoft Teams, Discord

Defect Created

Qualflare sends Defect Created when someone creates a defect with Create Defect on the Defects page, through the API or through MCP, and when flaky detection opens a defect for a test case. Defects that Qualflare opens for a failure cluster, and defects created from a redundant-case notification, never send it. See How defects are created.

Defect Resolved

Qualflare sends Defect Resolved when a defect's status changes from Active or Action Required to Closed or False positive, and when it closes a flaky-detection defect because the case is stable again. Issue trackers have nothing to file for it, so GitHub, GitLab, Jira and Linear don't offer it. See Defect statuses.

Launch Completed

Qualflare sends Launch Completed when results uploaded with the CLI, a reporter or the API contain no failed, error, timed-out or aborted test. Manual runs never send it. In its message the counts currently always read Passed: 0, Failed: 0. See Upload results with qf collect.

Launch Failed

Qualflare sends Launch Failed when an upload contains at least one failed, error, timed-out or aborted test: one event per upload, however many tests failed. Manual runs never send it.

Cluster Created

Qualflare sends Cluster Created once per cluster, when a new failure cluster gets its name. Clustering needs Enable AI Features in the project's AI Features settings and a plan with AI failure clustering. See How failure clustering works.

Milestone Completed

Qualflare sends Milestone Completed when you save a milestone in Edit with Is Completed on. Saving the milestone again with Is Completed on sends it again, even when it was already completed. See Complete or reopen a milestone.

Flaky Test Detected

Qualflare sends Flaky Test Detected each time it opens a flaky-detection defect for a test case: when the case becomes flaky, and again if that defect is closed or marked False positive while the case is still flaky. The new defect also sends Defect Created, so a tracker with both events selected files two issues for one flaky test. PagerDuty doesn't offer Flaky Test Detected for this reason. See How Qualflare flags a flaky test.

Chat and alert messages

EventMessage text
Defect CreatedNew defect created: #<number> <name> (Severity: <severity>)
Defect ResolvedDefect resolved: #<number> <name>
Launch CompletedLaunch #<number> completed with status: <status> (Passed: <count>, Failed: <count>)
Launch FailedLaunch #<number> failed with status: <status> (Failed: <failed>/<total>)
Cluster CreatedFailure cluster detected: <cluster name> (<count> affected cases)
Milestone CompletedMilestone completed: <milestone name>
Flaky Test DetectedFlaky test detected: <test case name> (<rate>% flaky rate)

Slack and Discord post the text as it is, Microsoft Teams wraps it in a card, and PagerDuty uses it as the incident summary.

Issues that trackers file

EventIssue title
Defect Created[Defect #12] <defect name>
Launch Failed[Launch #48] Failed — <status>
Cluster Created[Cluster] <cluster name>
Flaky Test Detected[Flaky] <test case name>

GitHub, GitLab, Jira and Linear use these titles. The body lists the event's details, such as a defect's severity and description or a launch's status, branch and failed count, and ends with Created automatically by Qualflare. See What the issue contains.

Recent deliveries

In the project sidebar, open Integrations: Recent deliveries is below the cards once the project has a configured integration, with 10 rows a page. Until an event is sent, it reads No deliveries recorded yet. Anyone who can open the project can read it Viewer+ · project (requires the Viewer role or higher in the project).

A project lists only the integrations enabled in its workspace, and each card shows whether this project has a configuration.
ColumnWhat it shows
WhenWhen the attempt was made; hover it for how long ago
OutcomeDelivered, Failed or Dropped
IntegrationThe integration's key with a capital letter, for example Teams for Microsoft Teams
EventThe event key, for example launch_failed
DetailThe provider's error on one line; hover it for the full text

Each row is one attempt, so a delivery that Qualflare retries has a row for each attempt. The <n> not delivered badge next to the title counts the project's Failed and Dropped rows.

The Outcome column shows one of three values:

OutcomeMeaning
DeliveredThe provider accepted the delivery
FailedA temporary error, such as a timeout. Qualflare may still retry it
DroppedA permanent error, such as a revoked token or a deleted channel. It is never retried
Each row is one delivery attempt; Dropped means it failed for good and will not be retried.

Retries

Qualflare retries timeouts, network errors, and 429 and 5xx responses, up to 10 attempts in total, 10 seconds to 5 minutes apart. A 4xx response other than 429 is permanent, so the attempt is Dropped and never retried. Each integration is delivered and retried on its own, so a failure in one doesn't hold back or resend another. Events that happen while an integration is disabled are not sent, then or later.

Linked issues

When GitHub, GitLab, Jira or Linear files an issue for Defect Created, Qualflare records it on the defect, under Linked issues. Issues filed for Launch Failed, Cluster Created or Flaky Test Detected aren't linked to any defect. See Linked issues.

An issue filed for Defect Created is linked from the defect.