> For the complete documentation index, see [llms.txt](https://learning.contextqa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learning.contextqa.com/integrations/slack.md).

# Slack

Connect Slack, choose an organization or workspace notification channel, and recover missing permissions or private-channel access safely.

## Quick answer

Connect Slack from **Settings → Integrations**, then open **Slack Details** and choose the channel that should receive ContextQA notifications. A workspace can use the organization default or select its own channel. ContextQA can join a public channel when you save it; for a private channel, invite the ContextQA Slack app first. Reconnect Slack when the picker says the connection needs additional permission.

## What this page covers

{% hint style="info" %}
**Who is this for?** Workspace administrators and QA or engineering leads who want execution findings and activity routed to the Slack channel their team already monitors.
{% endhint %}

Slack routing has two separate decisions:

1. **Connection** — authorize the approved Slack workspace.
2. **Destination** — choose the channel that receives notifications for the ContextQA organization or workspace.

```mermaid
flowchart LR
    A[Connect Slack workspace] --> B{Choose routing scope}
    B -- Organization default --> C[Default notification channel]
    B -- Workspace override --> D[Workspace notification channel]
    C --> E[ContextQA findings and activity]
    D --> E
    E --> F[Team opens linked ContextQA evidence]
```

## Connect Slack

1. Open **Settings → Integrations**.
2. Find **Slack** and start the connection.
3. Review the Slack authorization screen and confirm that the intended Slack workspace is selected.
4. Approve only if the requested access matches your organization's integration policy.
5. Return to ContextQA and open **Slack Details**.

The Slack authorization is not the notification destination by itself. Continue to the channel picker and save a channel before depending on Slack delivery.

{% hint style="warning" %}
Do not paste Slack tokens, webhook URLs, or authorization responses into test steps, requirements, screenshots, or support messages. Complete the connection through the supported authorization flow.
{% endhint %}

## Choose the notification channel

In **Slack Details**, find **Notification channel** and select **Choose a channel** or **Change**.

1. Search by channel name. You can include or omit the leading `#`.
2. Select the intended channel and review whether the ContextQA app is already a member.
3. Save the selection.
4. Return to **Slack Details** and confirm that the saved channel is displayed.

The picker can show a partial list when a Slack workspace has many channels. Search for the specific channel instead of treating the initial list as complete.

### Organization default and workspace override

When a workspace has no specific selection, **Slack Details** can show that it is using the organization default. Choosing a channel there creates a destination for that workspace. Record whether the routing is inherited or overridden so an administrator can explain why two workspaces post to different channels.

### Public channels

ContextQA can join a public channel when the selection is saved. If the picker labels the app as not yet in the channel, save the channel and then verify delivery with an approved notification-producing run.

### Private channels

Slack does not allow an app to add itself to a private channel. If saving reports that an invitation is required:

1. Open the private channel in Slack.
2. Invite the ContextQA Slack app using the instruction shown by the picker.
3. Return to ContextQA.
4. Check access and save the channel again.

Do not switch to an unrelated public channel merely to make the warning disappear; confirm the intended audience and channel ownership first.

## Configure Slack during self-serve onboarding

When Slack is connected during self-serve onboarding, a **Default channel** section appears below the Slack row. Choose and save the destination there. A missing channel is marked **Action required**, but it does not silently invent a destination.

The same recovery rules apply during onboarding:

* use **Refresh channels** when a recently created or renamed channel is absent;
* choose **Reconnect Slack** when ContextQA reports that the current authorization cannot read channels;
* invite the app before selecting a private channel.

See [Self-serve onboarding](/getting-started/self-serve-onboarding.md) for the complete workspace setup sequence.

### Join the ContextQA support channel

An eligible workspace dashboard can show a card for joining its ContextQA support channel. The invitation is sent to the organization owner shown by the card, even when another authorized member selects the action. After the owner accepts the invitation, reopen or refresh the dashboard and use **Open Slack Channel** when it appears.

This support-channel invitation is separate from the notification channel configured in **Slack Details**. Joining the support channel does not choose a destination for run notifications.

## Verify notification delivery

After saving the channel:

1. Use a non-production test plan whose notification setting is enabled.
2. Run it once with a recognizable name and preserve the ContextQA run ID.
3. Confirm that the Slack message lands in the selected channel.
4. Open the result link and verify that it resolves to the same organization, plan, and run.
5. Confirm that the message does not expose secret values or production customer data.

A saved channel proves routing configuration, not delivery. The controlled run provides the end-to-end evidence.

## Troubleshooting

| Symptom                                             | What to do                                                                                                              |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **No channel chosen — nothing will be posted**      | Open the picker, select the intended channel, and save it.                                                              |
| ContextQA asks to reconnect Slack                   | Select **Reconnect Slack**, review the updated permission request, finish authorization, and reopen the picker.         |
| The integration card says the Slack app was removed | Reconnect the intended Slack workspace, then reselect and verify the notification channel.                              |
| A private channel cannot be saved                   | Invite the ContextQA Slack app to that private channel, then check access and save again.                               |
| A channel is missing                                | Search by its exact name, use **Refresh channels**, and confirm the connected Slack workspace.                          |
| The list says it is partial                         | Search for the destination rather than relying on the first page of channels.                                           |
| The channel was archived or renamed                 | Choose an active replacement and verify it with a controlled run.                                                       |
| No notification arrives                             | Confirm the plan's notification setting, saved channel, Slack app membership, and the run's result before reconnecting. |

## Use Slack with a defect tracker

Slack is the awareness channel; Jira, Linear, or Azure DevOps remains the durable defect record. A safe failure workflow is:

1. ContextQA posts the run notification to the selected Slack channel.
2. A reviewer opens the linked execution and checks the captured evidence.
3. The reviewer classifies the failure before creating a defect.
4. The resulting tracker link is shared with the team without copying secrets or sensitive evidence into Slack.

## Related documentation

* [Integrations overview](/integrations/integrations.md)
* [Self-serve onboarding](/getting-started/self-serve-onboarding.md)
* [Test plan scheduling](/execution/scheduling.md)
* [Failure analysis](/reporting/failure-analysis.md)
* [Jira integration](/integrations/jira.md)

{% hint style="info" %}
**See ContextQA fit your existing delivery workflow.** [**Book a Demo →**](https://contextqa.com/book-a-demo/?utm_source=learning.contextqa.com\&utm_medium=referral\&utm_campaign=docs_demand_gen\&utm_content=slack_notifications) — Review notification routing, execution evidence, and defect handoff with your team.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://learning.contextqa.com/integrations/slack.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
