How to connect GitLab to Slack (and avoid notification spam)
The native path is the GitLab for Slack app: install it, subscribe per project, get per-event notifications. You can also wire webhooks yourself, or use a digest tool for one filtered daily message. On busy projects the native app is exactly why channels get muted - digests exist to fix that.
Method 1: the GitLab for Slack app
In GitLab, go to your project or group Settings > Integrations > GitLab for Slack app and install it into your workspace. Then subscribe the events you want per project: merge requests, pipelines, issues, pushes. This is the supported path on GitLab.com. The trade-off is the same as GitHub's native app: a message per subscribed event, which active projects turn into spam.
Method 2: incoming webhooks
Create an incoming webhook in Slack and point GitLab's Slack notifications integration (or a CI job) at the URL. Full control over which events post, but note: the legacy Slack Notifications integration is deprecated by GitLab, and you own the maintenance. Best for pipeline-only alerts into a deploys channel.
Method 3: a digest tool like HotBot
Connect GitLab read-only, pick a Slack channel and schedule, and get one filtered daily message: open merge requests, CI pipeline results, review status, with escalation for MRs sitting too long. WIP, drafts, and bot MRs are filtered before posting. Trade-off: not real-time, so incident alerts stay in your monitoring stack.
Why is my GitLab Slack integration so noisy?
Because the default is per-event: every push, every pipeline stage, every comment. Fixes, in order of effort: subscribe to fewer events, route event types to separate channels (deploys vs MRs vs everything else), or collapse to a digest. Most teams that muted the channel should have started with the third option.
Does this work with self-managed GitLab?
The GitLab for Slack app works on GitLab.com and on self-managed instances where an administrator has configured the Slack app integration. Raw webhooks work on any instance with outbound network access. Digest tools like HotBot work with both via the API - check that your instance allows outbound API access.