Slack Integration
What you'll learn​
- How to install the Cypress integration for Slack
- How to configure Slack notifications for run results, flaky tests, and test muting
- How to customize message content and display
- How to filter notifications by tag, run group, or run status
- How to manage Slack notifications at the organization and project level
Cypress's Slack integration provides real-time results for your Cypress tests, all in one place — improving remote collaboration and giving wider visibility into test failures and flake, UI Coverage, and Cypress Accessibility results.
The Cypress integration for Slack allows you to:
- Improve cross-team collaboration by instantly surfacing Cypress results to the teams that need visibility
- Confirm that key tests pass prior to launching new products or features
- Reduce the time it takes to catch failed tests
- Monitor flaky tests as they appear, even on passing runs
Getting Started​
You need three things to get started:
- A Cypress Cloud account
- The ability to configure Cypress Cloud integrations — you must be an admin or the owner of your Cypress Cloud organization.
- The ability to authorize Slack apps — by default, Slack allows any workspace member to authorize apps, however workspace owners may require app approvals before installation. See this Slack help article for more details.
Install the Cypress app for Slack​
- In Cypress Cloud, visit the Integrations page for the organization you wish to integrate with Slack.
- Click the Enable button in the Slack section.
- A popup window will be displayed requesting permission for Cypress to access your workspace.
- After you approve the app permissions, choose your Slack workspace and channel to associate with the installation.
Cypress Cloud will now post run results for all projects in your organization to the specified Slack channel.
Slack configuration​
You can tailor Slack messages to match your teams' needs. Options include:
- Sending results to one or more public or private Slack channels, or directly to a specific user.
- Setting notification preferences for which run statuses trigger messages.
- Choosing which content sections appear in each message.
- Switching between stacked and compact display modes.
- Configuring at the organization-level and/or project-level to support multiple teams working on separate projects.
Per-organization vs per-project configuration​
You can configure the Slack integration at two levels: for an entire organization (covering all projects) or for a specific project. Both can coexist — an organization-level channel and a project-level channel can both receive notifications for the same run, each with their own settings. See Example configurations for ways to combine these levels.
Organization settings​
Configure Slack for the organization:
- Navigate to the Integrations page for the organization you wish to configure.
- Within the Slack integration, click Configure.
- Configure the app.
Project settings​
Configure Slack for a project:
- Navigate to the Project Settings page for the project you wish to configure.
- Click on the Integrations tab within the Project Settings page.
- Configure the app within the Slack Integration section.
Slack channels​
You can have Cypress Cloud post run results to specific channels. To add a channel:
- Navigate to the Slack configuration page.
- Click Add Slack Channel.
- You'll see a popup window that allows you to choose the channel or individual to associate with the organization.
- Search for and select the channel messages should post to.
Cypress Cloud will begin to post run results to the channel.
Direct messages​
You can have Cypress Cloud post run results as a direct message to a single user. To post to a direct message:
- Navigate to the Slack configuration page.
- Click Add Slack Channel.
- You'll see a popup window that allows you to choose the channel or individual to associate with the organization.
- Search for and select the user that messages should be sent to.
Cypress Cloud will begin to send run results to this user.
Notification preferences​
By default, Cypress Cloud will post a Slack message to each configured channel only for failing runs. You can select any combination of the following preferences:
- Failed runs: notifies on runs with a failed or errored status.
- Passed runs: notifies on runs with a passed status.
- Canceled runs: notifies on runs with a canceled status.
- Timed out runs: notifies on runs with a timed out status.
- Flaky tests: notifies on runs that contain an identified flaky test.
To set notification preferences:
- Navigate to the Slack configuration page.
- Select the notification preferences for each channel.
Flaky test alerts​
The Flaky tests preference works independently from the run status preferences. This means you can configure a channel to receive notifications only when flaky tests are detected — even if you don't subscribe to passed or failed runs. See Example configurations for a concrete setup.
When flaky test alerts are enabled, the Slack message includes flaky test counts in the test results section and lists flaky specs alongside failed specs in the specs for review section.
Premium Cypress Cloud Feature
Flaky test detection requires the flaky test management feature to be enabled for your organization. See Flaky Test Management for more details.
Filter notifications by tag or run group​
When configuring at the project-level, you can filter notifications posted to Slack based on a tag or group the run was recorded with. This is helpful for posting notifications only for certain runs, like those to a staging or release environment.
- Navigate to the Slack configuration page.
- Under Tags, select the Tag dropdown for the desired integration and select which tag(s) to filter. If more than one tag is selected, the Slack message will be sent if any of the tags were associated with the run.
- Under Run Groups, select the Run Group dropdown for the desired integration and select which run group(s) to filter. If more than one run group is selected, the Slack message will be sent if any of the run groups were associated with the run.
If both a tag and run group are selected, only a run associated with both criteria will trigger a message to be sent to Slack.
Message content​
Each Slack notification includes run metadata and up to six configurable content sections. You can choose which sections appear in your messages and how they're displayed.
What's included in every message​
Every run completion message includes the following run properties:
- Run title: The run number and commit message, linked to the run in Cypress Cloud.
- Run status: A color-coded status indicator (passed, failed, errored, timed out, or canceled).
- Project: The project name, linked to the project in Cypress Cloud.
- Branch: The branch name where the run was recorded.
- Commit author: The author of the commit that triggered the run.
- CI build: The CI provider and build number, linked to the CI build.
Configurable content sections​
You can enable or disable any of the following content sections for each Slack channel:
- Test results: Shows pass, fail, skip, pending, and flaky counts. Each count links directly to the filtered view in Cypress Cloud.
- UI Coverage results: Shows the coverage percentage along with counts of tested and untested elements and links. Only appears when UI Coverage data is available.
- Accessibility results: Shows the accessibility pass percentage, failed rules broken down by severity (critical, serious, moderate, minor), and failed elements. Only appears when Cypress Accessibility data is available.
- Specs for review: Lists up to 10 failed and flaky spec files with clickable links, the count of failed or flaky tests in each, and the run group name. If there are more than 10, a link to see all specs is included.
- Run tags: Displays the tags associated with the run.
- Run groups: Displays the run groups associated with the run.
To configure message content:
- Navigate to the Slack configuration page.
- Adjust the content sections for each channel.
Display modes​
You can choose between two display modes for your Slack messages:
- Stacked (default): Each test result status appears on its own line with an icon and count. This is easier to scan when there are many statuses.
- Compact: All status counts appear on a single line, saving vertical space in your Slack channel.
The display mode applies to the test results, UI Coverage, and accessibility sections.
Example configurations​
The options above — notification preferences, tag and run group filters, content sections, display modes, and org-vs-project scoping — can be combined to build notification setups tailored to how your team works. Below are some common configurations.
Route notifications by environment​
Create separate project-level channels for each environment and use tag filters to route runs to the right place. For example, a #staging-tests channel filtered to the staging tag with Failed runs and Passed runs enabled gives your QA team full visibility into staging health, while a #prod-alerts channel filtered to the production tag with only Failed runs enabled keeps production notifications focused on breakages.
Dedicated flaky test triage​
Add a channel like #flaky-triage with only the Flaky tests preference enabled and no run status preferences selected. This channel will only receive a notification when a run contains flaky tests — regardless of whether the run passed or failed — so your team can triage new flake without the noise of every run result.
Slim CI bridge for high-volume projects​
For projects with frequent CI runs, set up a channel with only the Test results content section enabled in Compact display mode. This gives your team a single-line pass/fail summary per run with a direct link to the CI build, keeping the channel scannable even at high volume.
Cross-team visibility with focused project channels​
Configure an organization-level #cypress-results channel with Failed runs enabled so leadership and stakeholders can monitor test health across all projects. Then add project-level channels like #team-checkout-tests with additional content sections (specs for review, run tags) and extra notification preferences (passed runs, flaky tests) so individual teams get the detail they need for the projects they own.
Managing channels​
Mute a channel​
If you want Cypress Cloud to temporarily stop posting Slack messages to a certain channel, you can Mute that channel. This allows you to easily pause and resume notifications for a specific channel without losing the configuration you've put in place.
- Navigate to the Slack configuration page.
- Toggle the Active selector for each Slack channel you want muted.
Per-project muting for organization channels​
If you have an organization-level Slack channel, you can mute it for specific projects without affecting other projects. This is useful when you want most projects to post to a shared channel but need to silence notifications for a particular project temporarily.
- Navigate to the Project Settings page for the project you want to mute.
- Click the Integrations tab.
- Toggle the mute setting for the organization-level Slack channel.
Toggling the mute on an organization-level install will clear all project-level mute overrides for that channel. If you're using per-project muting, be aware that changing the global mute state resets those overrides.
Remove a Slack channel​
You can have Cypress Cloud stop posting notifications to a channel. You can remove all Slack channels if you'd prefer to disable global notifications altogether in favor of per-project notifications.
- Navigate to the Slack configuration page.
- Under Actions, select Delete for each Slack channel you want deleted.
Remove the integration​
You can completely remove the Cypress integration for Slack from your workspace.
This will remove the @cypress bot from your workspace and will delete all of the
Slack configurations you've set in Cypress Cloud. You cannot undo this, but you
will be able to install the Cypress integration for Slack again in the future.
- Navigate to the Integrations page for the organization with the installed integration.
- Within the Slack Integration, click Configure.
- Click Uninstall Slack Integration to uninstall the Cypress integration for Slack.
Security and compliance​
Review our Privacy Policy for information about how the Cypress app for Slack collects and manages your information.
Authorizations​
When authorized, Cypress can:
- View information about a user's identity
- Post messages to specific channels in Slack & direct message conversations
- Show previews of cloud.cypress.io URLs in messages
- View URLs from cloud.cypress.io
App scopes​
- User token scopes:
links:read,links:write - Bot token scopes:
chat:write,incoming-webhook,links:read,links:write