How to Integrate GitLab with Slack
Integrating GitLab with Slack keeps your team informed about merge requests, pipeline runs, deployments, and issues β all without leaving your chat workspace. This guide covers every method to connect GitLab to Slack: the official GitLab for Slack app, legacy webhook integration, and third-party tools. Whether you're on GitLab.com or a self-managed instance, you'll find step-by-step instructions, slash command references, and troubleshooting tips to get GitLab notifications flowing into Slack in minutes.
Table of Contents
Quick Comparison: GitLabβSlack Integration Methods
There are three main ways to integrate GitLab with Slack. Here's how they compare at a glance:
| Feature | GitLab for Slack App | Slack Webhook | Third-Party Tools |
|---|---|---|---|
| Setup | One-click install from GitLab settings | Manual webhook URL configuration | Varies by tool |
| Notifications | Rich, interactive messages with actions | Basic text notifications | Varies β some offer rich formatting |
| Slash Commands | Full slash command support (/gitlab) | None | Limited or none |
| Filtering | Per-event, branch, and label filters | All-or-nothing per event type | Varies β Zapier offers custom filters |
| Cost | Free on all GitLab tiers | Free | Free tiers available; paid for volume |
| Best For | Most teams β recommended default | Simple, one-way notifications | Complex workflows or multi-tool setups |
Method 1: GitLab for Slack App (Recommended)
The official GitLab for Slack app is the recommended way to integrate GitLab with Slack. It provides interactive notifications, slash commands, and granular control over which events are sent to which channels.
Check Prerequisites
- You need Maintainer or Owner role on the GitLab project (or group).
- You need permission to install apps in your Slack workspace (or an admin who can approve the request).
- For self-managed GitLab, your instance must be accessible from the public internet for Slack to reach it.
Install from GitLab Settings
Navigate to your GitLab project and go to Settings > Integrations. Find GitLab for Slack app in the list and click Install. For group-level setup, go to the group's Settings > Integrations instead.
You can also install from the Slack App Directory by searching for "GitLab".
Authorize in Slack
After clicking Install, you'll be redirected to Slack to approve the app's permissions. Click Allow to authorize GitLab to post messages and register slash commands in your workspace.
Subscribe a Channel
In the Slack channel where you want notifications, type:
/gitlab <namespace/project> subscribeReplace <namespace/project> with your project path, for example /gitlab my-org/my-app subscribe.
Configure Events
By default, the app subscribes to a standard set of events. To customize, use:
/gitlab <namespace/project> subscribe merges issues pipelinesYou can subscribe to specific events like merges, issues, pipelines, pushes, deployments, tags, and more.
Run /gitlab <namespace/project> subscribe list to see your current subscriptions at any time.
Test the Integration
Push a commit, open a merge request, or trigger a pipeline in your GitLab project. Within a few seconds, you should see a notification appear in the subscribed Slack channel. If nothing arrives, check the troubleshooting section below.
Method 2: Slack Webhook Integration (Legacy)
Slack webhooks are considered a legacy integration method. GitLab recommends using the native GitLab for Slack app instead. Webhooks lack slash commands, interactive messages, and granular filtering.
If you need a simple, one-way notification setup or your organization restricts app installations, Slack incoming webhooks still work:
Create an Incoming Webhook in Slack
Go to your Slack workspace settings, navigate to Apps > Incoming Webhooks, and create a new webhook. Select the channel where notifications should be posted and copy the webhook URL.
Add the Webhook URL in GitLab
In your GitLab project, go to Settings > Integrations > Slack notifications. Paste the webhook URL from the previous step.
Select Events
Check the boxes for the events you want to trigger Slack notifications: push, merge request, issue, pipeline, etc. You can also specify a custom channel name.
Save and Test
Click Save changes, then use the Test settings button to send a test notification to verify the connection works.
Method 3: Third-Party Integration Tools
Third-party tools can bridge GitLab and Slack with additional customization, conditional logic, or multi-platform workflows:
- Zapier β Create custom "Zaps" that trigger Slack messages from specific GitLab events. Useful when you need conditional logic (e.g., only notify on failed pipelines for the main branch).
- Axolo β Focuses on merge request collaboration by creating temporary Slack channels per MR. Good for teams that want threaded discussions tied to code reviews.
- n8n / Make β Open-source or low-code automation platforms that support GitLab-to-Slack workflows alongside hundreds of other integrations.
Using GitHub instead of GitLab? PullNotifier provides purpose-built pull request notifications for Slack β real-time alerts for reviews, merges, CI status, and more. No webhooks to configure.
GitLab Slack Event Types Reference
The GitLab for Slack app supports notifications for the following event types. Events marked as "Default" are included when you first subscribe a channel.
| Event | Description | Default |
|---|---|---|
| Push | Commits pushed to a branch | Yes |
| Issue | Issues opened, closed, or updated | Yes |
| Merge Request | MRs opened, merged, closed, or updated | Yes |
| Pipeline | CI/CD pipeline started, succeeded, or failed | No |
| Deployment | Deployments to any environment | No |
| Tag Push | New tags pushed to the repository | No |
| Note / Comment | Comments on issues, MRs, commits, or snippets | Yes |
| Confidential Issue | Confidential issues opened or updated | No |
| Wiki Page | Wiki pages created or updated | No |
| Build | Individual CI job status changes | No |
GitLab Slack Slash Commands Reference
The GitLab for Slack app registers the /gitlab slash command in your workspace. Here are the most useful commands:
| Command | Description | |
|---|---|---|
/gitlab <project> subscribe | Subscribe the current channel to project notifications | |
/gitlab <project> unsubscribe | Unsubscribe the current channel from a project | |
/gitlab <project> subscribe list | Show current subscriptions and active events | |
/gitlab issue new <title> | Create a new issue in the linked project | |
/gitlab issue show <id> | Display details of a specific issue | |
/gitlab deploy <environment> | Trigger a deployment to the specified environment | |
/gitlab help | Show all available GitLab slash commands |
Branch & Label Filtering
You can filter GitLab Slack notifications by branch or label to reduce noise in busy channels:
Branch filtering: Only receive push and merge request notifications for specific branches:
/gitlab <project> subscribe pushes --branch mainLabel filtering: Only receive issue and merge request notifications with specific labels:
/gitlab <project> subscribe issues --label bugCombining filters: You can apply multiple filters at once:
/gitlab <project> subscribe merges --branch main --label criticalFiltering is only available with the GitLab for Slack app. Webhook integrations do not support granular filtering.
GitLab.com vs Self-Managed
The Slack integration experience differs slightly depending on whether you use GitLab.com (SaaS) or a self-managed GitLab instance:
| Feature | GitLab.com (SaaS) | Self-Managed |
|---|---|---|
| GitLab for Slack App | Available out of the box | Requires instance-level configuration by admin |
| Slack Webhooks | Available | Available |
| Network Requirements | None β GitLab.com is already public | Instance must be reachable from the internet |
| Slash Commands | Full support | Full support (once app is configured) |
| Setup Complexity | Low β project maintainer can set up | Medium β admin must configure app first |
Troubleshooting
Common issues when integrating GitLab with Slack and how to fix them:
Best Practices for GitLab Slack Notifications
Use dedicated channels per project or team.
Avoid dumping all notifications into a single channel. Create channels like#proj-frontend-cior#team-platform-mrsso people can subscribe to what's relevant to them.Subscribe only to events that require action.
Start with merge requests, pipeline failures, and deployments. Add push notifications and issue updates only if the team finds them useful β too many notifications lead to alert fatigue.Use branch filters on high-activity repositories.
For repos with dozens of daily pushes, filter notifications tomain,develop, or release branches. This keeps the signal-to-noise ratio manageable.Use label filters for issue triage.
Subscribe to issues labeledurgentorbugin your on-call channel so critical issues get immediate visibility without flooding the channel with feature requests.Migrate from webhooks to the native app.
If you're still using Slack webhooks, plan a migration to the GitLab for Slack app. It's more reliable, supports slash commands, and receives updates and improvements from GitLab.Document your channel-to-project mapping.
Keep a simple table in your team's wiki or README that maps which Slack channels receive notifications from which GitLab projects. This prevents confusion when onboarding new team members.Review subscriptions quarterly.
Projects get archived, teams restructure, and notification needs change. Set a recurring reminder to audit your GitLabβSlack subscriptions and remove stale ones.
Using GitHub Instead? Try PullNotifier
This guide covers GitLab, but if your team uses GitHub, you don't need to cobble together webhooks or generic automation tools. PullNotifier is purpose-built to send GitHub pull request notifications directly to Slack β real-time alerts for new PRs, review requests, approvals, CI status changes, and merges.
It takes 30 seconds to set up, works with private and public repositories, and gives every developer on your team personalized PR notifications without the noise.
FAQ
How do I integrate GitLab with Slack?
The recommended way is to install the official GitLab for Slack app. Go to your GitLab project Settings > Integrations > GitLab for Slack app, click Install, authorize in Slack, then use /gitlab <project> subscribe in your desired channel. See the step-by-step guide above for full instructions.
Is the GitLab Slack integration free?
Yes. The official GitLab for Slack app is free on all GitLab tiers including Free, Premium, and Ultimate. Slack webhooks are also free to use. Some third-party integration tools like Zapier may have their own pricing for higher-volume usage.
Can I get GitLab merge request notifications in Slack?
Yes. Once you subscribe a Slack channel to a GitLab project, you will receive notifications for merge request events including new MRs, approvals, comments, and merges. You can customize which events trigger notifications using /gitlab <project> subscribe merges. See the event types reference for all available events.
What is the difference between the GitLab Slack app and webhook?
The GitLab for Slack app is the modern, recommended integration that supports slash commands, interactive notifications, and granular filtering by event, branch, and label. Slack webhooks are the legacy method that only sends one-way text notifications with limited customization. GitLab recommends migrating from webhooks to the native app. See the comparison table for a detailed breakdown.
Does the GitLab Slack integration work with self-managed GitLab?
Yes. The GitLab for Slack app works with both GitLab.com (SaaS) and self-managed instances. For self-managed, your instance must be accessible from the internet and an admin needs to configure the Slack app at the instance level first. See the GitLab.com vs Self-Managed section for details.
How do I filter GitLab notifications in Slack by branch or label?
Use the --branch and --label flags with the subscribe command. For example: /gitlab <project> subscribe merges --branch main --label critical. This is only available with the native GitLab for Slack app, not webhooks. See the filtering section for more examples.
Can I use GitLab slash commands in Slack?
Yes. The GitLab for Slack app provides slash commands including /gitlab issue new, /gitlab issue show, /gitlab deploy, and /gitlab subscribe. These let you interact with GitLab projects directly from Slack without switching context. See the slash commands reference for the full list.
Can I use this integration with GitHub too?
The GitLab for Slack app only works with GitLab. If your team uses GitHub, PullNotifier is a purpose-built tool that sends real-time GitHub pull request notifications to Slack β including new PRs, review requests, approvals, CI status, and merges. It takes 30 seconds to set up and works with both public and private repositories.
Built byPullNotifierβ get GitHub pull request notifications directly on Slack.
Never miss a PR review, merge, or CI failure again.
PullNotifier
Β© 2026 PullNotifier. All rights reserved
