> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qa.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Notifications

QA.tech notifies your team when test runs complete and provides weekly summaries of testing activity. Configure notifications at the project level for defaults, at the test plan level for customization, or per-run via API for CI/CD workflows.

## Understanding Notifications

### Notification Types

| Type           | Purpose                      | Timing                | Channels                      |
| -------------- | ---------------------------- | --------------------- | ----------------------------- |
| Run Completion | Alert team when tests finish | Immediately after run | Slack, Email, Microsoft Teams |
| Weekly Summary | Summarize testing activity   | Mondays 6 AM CET      | Email only                    |

### Delivery Channels

| Channel         | Project Level   | Test Plan Level  | Per-Run API                          |
| --------------- | --------------- | ---------------- | ------------------------------------ |
| Slack           | Default channel | Override channel | Override channels                    |
| Email           | -               | Add recipients   | Override recipients                  |
| Microsoft Teams | Webhook URL     | Webhook URL      | notifyOn / disable (project webhook) |

### Configuration Levels

```
Project Settings (defaults for all runs)
└── Test Plan Settings (override per test plan)
    └── Per-Run API / Run with Options (override per individual run)
```

* **Project Level** - Set default Slack channel and Teams webhook. All runs use these unless overridden.
* **Test Plan Level** - Override Slack channel, add email recipients, configure Teams webhook per test plan.
* **Per-Run** - Override Slack, email, or Teams when triggering a run via API or **Run with Options**. Use `type: "none"` to suppress all notifications for that run.

## What You Receive

### Run Completion Notifications

All run completion notifications (Slack, Email, Teams) include:

| Content        | Description                                         |
| -------------- | --------------------------------------------------- |
| Run status     | Pass or fail with visual indicators                 |
| Test plan name | If run was part of a test plan                      |
| Timing         | When started and total duration                     |
| Test summary   | Total tests, failed count, error count              |
| Failed tests   | Up to 5 failed tests with names and failure reasons |
| Results link   | Direct link to full test report                     |

You receive a notification for every completed run - whether triggered manually, through CI/CD, or via schedule.

### Weekly Summary Reports

Weekly summaries are separate from run completion notifications. They provide organization-wide metrics to all members.

**When**: Every Monday at 6 AM Central European Time\
**Who**: All organization members (unsubscribe via email footer)

**Contents**:

* Tests executed count
* Pass percentage
* Time saved estimate
* Suggested new tests to add
* Summary of test runs

## Common Patterns

### Team-Wide Slack Alerts

**Goal**: Everyone on the project sees test results in a shared channel.

**Setup**: Configure default Slack channel at Project Settings → Integrations → Slack. All runs notify this channel automatically.

### Stakeholder Email Notifications

**Goal**: Product managers or executives receive email updates for specific test plans.

**Setup**: Open test plan → Notification settings → Add email recipients. Choose "Only on failure" to reduce email volume.

### CI/CD-Triggered Notifications

**Goal**: Tests triggered via GitHub Actions or GitLab CI notify the team automatically.

**Setup**: Runs triggered via API use project defaults. No additional configuration needed - notifications flow to configured channels.

**Guides**: [GitHub Actions](/configuration/github-actions) | [GitLab CI](/configuration/gitlab) | [Start Run API](/api-reference/runs/start-test-run)

### PR-Specific Slack Channels

**Goal**: Route notifications for a specific PR to a dedicated Slack channel.

**Setup**: Use per-run API overrides to specify channels dynamically:

```json theme={null}
{
  "testPlanShortId": "abc123",
  "notifications": [
    { "type": "slack", "channel": "C0478ABCDEF", "notifyOn": "always" }
  ]
}
```

### Failure-Only Routing

**Goal**: Reduce noise by only notifying on failures.

**Setup**:

* **Email/Teams**: Set "Only on failure" in test plan notification settings, or pass `"notifyOn": "failure"` in a per-run override
* **Slack**: Use `"notifyOn": "failure"` in the notifications array

## Decision Guide

Use this flowchart to determine where to configure notifications:

```mermaid theme={null}
flowchart TD
    START(["I want notifications"]) --> Q1{Which channel?}

    Q1 -->|Slack| Q2{Same channel for all runs?}
    Q1 -->|Email| Q_EMAIL{Same recipients every run?}
    Q1 -->|Teams| Q_TEAMS{Same webhook behavior every run?}

    Q2 -->|"Yes - project default"| SLACK_PROJECT["Project Settings"]
    Q2 -->|"No - varies by test plan"| SLACK_PLAN["Test Plan Settings"]
    Q2 -->|"No - varies per run/PR"| SLACK_API["Per-Run Override"]

    Q_EMAIL -->|Yes| EMAIL["Test Plan Settings"]
    Q_EMAIL -->|No - per run| EMAIL_API["Per-Run Override"]
    Q_TEAMS -->|Yes| TEAMS["Test Plan or Project Settings"]
    Q_TEAMS -->|No - per run| TEAMS_API["Per-Run Override"]

    EMAIL --> NOTE1["Add recipients"]
    EMAIL_API --> NOTE1B["Pass email in notifications array"]
    TEAMS --> NOTE2["Configure webhook URL"]
    TEAMS_API --> NOTE2B["Pass teams notifyOn or enabled false"]
    SLACK_PROJECT --> NOTE3["Set default channel"]
    SLACK_PLAN --> NOTE4["Override channel per plan"]
    SLACK_API --> NOTE5["Pass notifications array in API call"]
```

| I want to...                                   | Configure at                            |
| ---------------------------------------------- | --------------------------------------- |
| Set default Slack channel for all runs         | Project Settings → Integrations → Slack |
| Add email recipients for a test plan           | Test Plan → Notification Settings       |
| Send to different Slack channels per test plan | Test Plan → Notification Settings       |
| Send to different Slack channels per PR/run    | Per-Run API / Run with Options          |
| Override email recipients for one run          | Per-Run API / Run with Options          |
| Change Teams notifyOn or disable for one run   | Per-Run API / Run with Options          |
| Set up Microsoft Teams notifications           | Project Settings or Test Plan Settings  |
| Disable all notifications for one run          | Per-Run API (`type: "none"`) / UI       |
| Receive weekly summaries                       | Automatic for all org members           |

## Setup by Channel

### Slack

<Steps>
  <Step title="Connect Slack to Organization">
    Go to Organization Settings → Connections and connect your Slack workspace.
  </Step>

  <Step title="Set Project Default Channel">
    Go to Project Settings → Integrations → Slack and select a default channel.
  </Step>

  <Step title="(Optional) Override Per Test Plan">
    Open a test plan → Click settings icon (gear) next to Notifications → Select
    a different Slack channel.
  </Step>
</Steps>

The QA.tech bot must be invited to any channels you want to use.

### Email

Email notifications are configured per test plan - there is no project-level default.

<Steps>
  <Step title="Open Test Plan">
    Navigate to your test plan from the Test Plans page.
  </Step>

  <Step title="Open Notification Settings">
    Click the settings icon (gear) next to **Notifications** on the test plan
    page.
  </Step>

  <Step title="Add Recipients">
    Search for organization members by name or email and add them as recipients.
  </Step>

  <Step title="Choose Frequency">
    Select **Every completion** (all runs) or **Only on failure** (failures
    only).
  </Step>
</Steps>

<Note>
  In test plan settings, email recipients are selected from organization
  members. Per-run API and Run with Options overrides accept any valid email
  address.
</Note>

### Microsoft Teams

Teams notifications use incoming webhooks. See [Microsoft Teams Integration](/integrations/microsoft-teams) for detailed webhook setup instructions.

<Steps>
  <Step title="Create Incoming Webhook in Teams">
    Follow Microsoft's guide to create an incoming webhook for your Teams
    channel.
  </Step>

  <Step title="Add Webhook URL">
    Go to Project Settings → Integrations → Microsoft Teams, or configure at the
    test plan level via Notification Settings.
  </Step>

  <Step title="(Optional) Configure Frequency">
    Choose **Every completion** or **Only on failure** in test plan settings.
  </Step>
</Steps>

## Advanced Configuration

### Per-Test-Plan Settings

Access test plan notification settings by clicking the settings icon (gear) next to **Notifications** on any test plan page. You can configure:

| Setting          | Description                                 |
| ---------------- | ------------------------------------------- |
| Slack channel    | Override project default for this test plan |
| Email recipients | Add organization members to receive emails  |
| Email frequency  | Every completion or only on failure         |
| Teams webhook    | Add Teams webhook URL for this test plan    |
| Teams frequency  | Every completion or only on failure         |

Each test plan can have different notification settings, allowing you to:

* Route critical test plans to dedicated alert channels
* Add stakeholders to specific test plans
* Use different Teams channels for different test plans

### Per-Run Overrides

When triggering runs via the [Start Run API](/api-reference/runs/start-test-run) or **Run with Options** in the UI, you can override notifications for that specific run.

```json theme={null}
{
  "testPlanShortId": "abc123",
  "notifications": [
    { "type": "slack", "channel": "C0478ABCDEF", "notifyOn": "always" },
    {
      "type": "email",
      "recipients": ["qa@example.com"],
      "notifyOn": "failure"
    },
    { "type": "teams", "notifyOn": "failure" }
  ]
}
```

Suppress all notifications (including project defaults):

```json theme={null}
{
  "testPlanShortId": "abc123",
  "notifications": [{ "type": "none" }]
}
```

**Key points**:

| Behavior              | Description                                                                |
| --------------------- | -------------------------------------------------------------------------- |
| Slack channel format  | Use Slack channel ID (e.g., `C0478ABCDEF`), not channel name               |
| Email recipients      | Any valid email addresses; replaces test-plan email settings for the run   |
| Teams                 | Uses the project Teams webhook; set `notifyOn` or `enabled: false`         |
| `type: "none"`        | Suppresses Slack, email, and Teams for the run, including project defaults |
| `notifyOn: "always"`  | Receive start (Slack) and finish notifications (default)                   |
| `notifyOn: "failure"` | Receive finish notifications only when result is not `PASSED`              |
| Bot access            | QA.tech Slack bot must be invited to specified channels                    |

For complete API documentation, see [Start Run API Reference](/api-reference/runs/start-test-run).
