World-class Slack integration
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
*This page may contain information related to upcoming products, features and functionality.
It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes.
Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.*
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
## Background
Slack notifications are our most popular integration, and are used on over 1M projects today. This shouldn't be surprising -- Slack is widely used, and it's extremely valuable to have tactical notification of activity happening within GitLab inside of your Slack workspace. For example, a common usecase is to post pipeline status updates, allowing someone to see what's happening in their pipeline in real time, without having to keep a GitLab UI window open.
Today, our Slack integration is through the [Incoming Webhooks](https://gitlab.slack.com/apps/A0F7XDUAZ-incoming-webhooks?next_id=0) application in their Marketplace. By using this app, and pointing a project webhook at that application, it simply parses the webhook and passes the data to Slack.
We also have an [application in the Slack app directory](https://gitlab.slack.com/apps/A676ADMV5-gitlab?next_id=0), though it's not commonly used. It adds slash commands that allow you to primarily interact with issues, but also allows running ChatOps jobs and supports deployments ([docs here](https://gitlab.com/help/integration/slash_commands.md)).
Because of the popularity of this tool, we should consider what a _best case_ integration with Slack would look like.
- What would an ideal Slack application look like?
- What workflows and notifications would it support?
- What [shortcuts](https://api.slack.com/interactivity/shortcuts) could we support globally in a workspace?
- What [interactivity and content](https://api.slack.com/reference/block-kit/blocks) could we add to our workflows to make them more efficient?
## Proposal
To start mapping out a plan for this, we should
- Document the workflows that are supported by the [GitLab app](https://gitlab.slack.com/apps/A676ADMV5-gitlab?next_id=0)
- Document the workflows that are supported by the [Incoming Webhooks app](https://gitlab.slack.com/apps/A0F7XDUAZ-incoming-webhooks?next_id=0) (based on common usage with GitLab)
- Document key workflows that could be connected from each Group
- What notifications would be valuable
- What actions could be taken from each notification
- If there are relevant global shortcuts
epic