Skip to content
Allure report logoAllure Report
Main Navigation ModulesDocumentationStarter Project

English

Español

English

Español

Appearance

Sidebar Navigation

Allure 3

Install & Upgrade

Install Allure

Upgrade Allure

Configure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Reading Allure charts

Migrate from Allure 2

Allure 2

Install & Upgrade

Install for Windows

Install for macOS

Install for Linux

Install for Node.js

Upgrade Allure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Features

Agent Mode

Test steps

Attachments

Test statuses

Assertion diffs

Sorting and filtering

Environments

Multistage Builds

Categories

Visual analytics

Test stability analysis

History and retries

Self-hosted storage

Quality Gate

Resolutions

Global Errors and Attachments

Timeline

Performance Metrics

Export to CSV

Export metrics

Guides

Migrating to Allure Java 3

JUnit 5 parametrization

JUnit 5 & Selenide: screenshots and attachments

JUnit 5 & Selenium: screenshots and attachments

Setting up JUnit 5 with GitHub Actions

Pytest parameterization

Pytest & Selenium: screenshots and attachments

Pytest & Playwright: screenshots and attachments

Pytest & Playwright: videos

Playwright parameterization

Publishing Reports to GitHub Pages

Deploying Self-Hosted Storage with Docker

Deploying Self-Hosted Storage on Cloudflare Workers

Allure Report 3: XCResults Reader

How it works

Overview

Glossary

Test result file

Container file

Categories file

Environment file

Executor file

History files

Test Identifiers

Integrations

Azure DevOps

Bamboo

GitHub Action

Gradle

Jenkins

JetBrains IDEs

Maven

Slack

TeamCity

Visual Studio Code

Xray

Frameworks

AVA

Getting started

Configuration

Reference

Axios

Getting started

Configuration

Reference

Behat

Getting started

Configuration

Reference

Behave

Getting started

Configuration

Reference

Bun

Getting started

Configuration

Reference

Chai

Getting started

Reference

Codeception

Getting started

Configuration

Reference

CodeceptJS

Getting started

Configuration

Reference

Cucumber.js

Getting started

Configuration

Reference

Cucumber-JVM

Getting started

Configuration

Reference

Cucumber.rb

Getting started

Configuration

Reference

Cypress

Getting started

Configuration

Reference

Dart and Flutter

Getting started

Configuration

Reference

Diesel

Getting started

Configuration

Reference

Fetch

Getting started

Configuration

Reference

Go

Getting started

Configuration

Reference

Jasmine

Getting started

Configuration

Reference

JBehave

Getting started

Configuration

Reference

Jest

Getting started

Configuration

Reference

JUnit 4

Getting started

Configuration

Reference

JUnit Jupiter

Getting started

Configuration

Reference

Mocha

Getting started

Configuration

Reference

Newman

Getting started

Configuration

Reference

Node.js Test Runner

Getting started

Configuration

Reference

NUnit

Getting started

Configuration

Reference

PHPUnit

Getting started

Configuration

Reference

Playwright

Getting started

Configuration

Reference

Playwright Java

Getting started

Configuration

Reference

pytest

Getting started

Configuration

Reference

Pytest-BDD

Getting started

Configuration

Reference

Reqnroll

Getting started

Configuration

Reference

Reqwest

Getting started

Configuration

Reference

REST Assured

Getting started

Configuration

Robot Framework

Getting started

Configuration

Reference

Rust Cargo Test

Getting started

Configuration

Reference

RSpec

Getting started

Configuration

Reference

Selenide

Getting started

Configuration

Reference

Selenium BiDi

Getting started

Configuration

Reference

SpecFlow

Getting started

Configuration

Reference

Spock

Getting started

Configuration

Reference

TestCafe

Getting started

Configuration

Reference

TestNG

Getting started

Configuration

Reference

Tinybench

Getting started

Reference

Vitest

Getting started

Configuration

Reference

WebdriverIO

Getting started

Configuration

Reference

xUnit.net

Getting started

Configuration

Reference

On this page

Slack integration Allure 3 ​

Allure Report 3 can post a summary of each run to a Slack channel. The slack plugin that does this is included in the allure package.

The message contains the number of tests with each status and the list of failed and broken tests, by their full names. Statuses without tests are not listed.

There are two ways to post the message:

  • with an incoming webhook - the simplest setup, the message always goes to the channel selected for the webhook;
  • with a bot token - the message goes to the channel set in the Allure configuration, and the Slack app must be a member of the channel.

Post with an incoming webhook ​

  1. In Slack API: Applications, create a new app for your workspace.

  2. In the settings of the app, open Incoming Webhooks, turn on Activate Incoming Webhooks, and click Add New Webhook. Select the channel for the messages and copy the webhook URL.

  3. Pass the URL to Allure in the ALLURE_SLACK_WEBHOOK environment variable, for example, as a secret of your CI pipeline.

    Anyone who knows the URL can post to the channel, so don't keep it in the configuration file or anywhere else under version control.

  4. Add the slack plugin to the plugins section of the configuration file, next to the plugin of your report:

    javascript
    import { defineConfig } from "allure";
    
    export default defineConfig({
      plugins: {
        awesome: {},
        slack: {},
      },
    });
    json
    {
      "plugins": {
        "awesome": {},
        "slack": {}
      }
    }
    yaml
    plugins:
      awesome: {}
      slack: {}

After generating the report, Allure posts the message to the channel.

Post with a bot token ​

  1. In Slack API: Applications, create a new app for your workspace.

  2. In the settings of the app, open OAuth & Permissions and add the chat:write scope to Bot Token Scopes. Then install the app to your workspace and copy the Bot User OAuth Token.

  3. In Slack, add the app to the channel for the messages, for example, by typing /invite @app-name in the channel.

  4. Pass the token and the channel to Allure in the ALLURE_SLACK_TOKEN and ALLURE_SLACK_CHANNEL environment variables. The channel can be set by its ID, such as C0123456789, or by its name, such as test-results or #test-results.

  5. Add the slack plugin to the configuration file, the same way as for the incoming webhook.

If both a webhook URL and a token are provided, Allure uses the webhook.

Options ​

All options can also be provided via environment variables. If an option is set in the configuration file, the environment variable is not used.

OptionEnvironment variableDescription
webhookALLURE_SLACK_WEBHOOKIncoming webhook URL. If set, token and channel are not used.
tokenALLURE_SLACK_TOKENBot token of the Slack app.
channelALLURE_SLACK_CHANNELID or name of the channel to post to with the bot token.

For example, to set the channel in the configuration file and keep only the token in the environment:

javascript
import { defineConfig } from "allure";

export default defineConfig({
  plugins: {
    awesome: {},
    slack: {
      options: {
        channel: "test-results",
      },
    },
  },
});
json
{
  "plugins": {
    "awesome": {},
    "slack": {
      "options": {
        "channel": "test-results"
      }
    }
  }
}
yaml
plugins:
  awesome: {}
  slack:
    options:
      channel: test-results

Troubleshooting ​

If Allure can't post the message, it prints the error to the console and generates the report anyway. The error contains the error code that Slack returned, for example:

plain
plugin slack error Error: slack error: not_in_channel
  • not_in_channel - the app is not a member of the channel. Add the app to the channel.
  • channel_not_found - there is no channel with this ID or name, or the app can't see it.
  • invalid_auth - the token is not valid.
  • invalid_arguments - the channel is not set.
Pager
Previous pageMaven
Next pageTeamCity
Powered by

Subscribe to our newsletter

Get product news you actually need, no spam.

Subscribe
Allure TestOps
  • Overview
  • Why choose us
  • Cloud
  • Self-hosted
  • Success Stories
Company
  • Documentation
  • Blog
  • About us
  • Contact
  • Events
© 2026 Qameta Software Inc. All rights reserved.
A Markdown version of this page is available at /docs/integrations-slack.md